#include "command/common.qh"
#include "constants.qh"
#include "g_hook.qh"
+#include <server/gamelog.qh>
#include "ipban.qh"
#include <server/mutators/_mod.qh>
#include "../common/t_items.qh"
if (server_is_dedicated) print(input);
}
-string GameLog_ProcessIP(string s)
-{
- if(!autocvar_sv_eventlog_ipv6_delimiter)
- return s;
- return strreplace(":", "_", s);
-}
-
-void GameLogEcho(string s)
-{
- string fn;
- int matches;
-
- if (autocvar_sv_eventlog_files)
- {
- if (!logfile_open)
- {
- logfile_open = true;
- matches = autocvar_sv_eventlog_files_counter + 1;
- cvar_set("sv_eventlog_files_counter", itos(matches));
- fn = ftos(matches);
- if (strlen(fn) < 8)
- fn = strcat(substring("00000000", 0, 8 - strlen(fn)), fn);
- fn = strcat(autocvar_sv_eventlog_files_nameprefix, fn, autocvar_sv_eventlog_files_namesuffix);
- logfile = fopen(fn, FILE_APPEND);
- fputs(logfile, ":logversion:3\n");
- }
- if (logfile >= 0)
- {
- if (autocvar_sv_eventlog_files_timestamps)
- fputs(logfile, strcat(":time:", strftime(true, "%Y-%m-%d %H:%M:%S", "\n", s, "\n")));
- else
- fputs(logfile, strcat(s, "\n"));
- }
- }
- if (autocvar_sv_eventlog_console)
- {
- dedicated_print(strcat(s, "\n"));
- }
-}
-
-void GameLogInit()
-{
- logfile_open = 0;
- // will be opened later
-}
-
-void GameLogClose()
-{
- if (logfile_open && logfile >= 0)
- {
- fclose(logfile);
- logfile = -1;
- }
-}
-
entity findnearest(vector point, bool checkitems, vector axismod)
{
vector dist;
return wepent.m_weapon.m_name;
else if(wepent.m_switchweapon != WEP_Null)
return wepent.m_switchweapon.m_name;
- return "none"; //Weapons_from(wepent.cnt).m_name;
+ return "none"; //REGISTRY_GET(Weapons, wepent.cnt).m_name;
}
string formatmessage(entity this, string msg)
for (int j = 0; j < t; ++j)
{
s = argv(j);
- Weapon wep = Weapons_fromstr(s);
+ Weapon wep = Weapon_from_name(s);
if(wep != WEP_Null)
{
g_weaponarena_weapons |= (wep.m_wepset);
void precache_playermodel(string m)
{
- float globhandle, i, n;
+ int globhandle, i, n;
string f;
+ // remove :<skinnumber> suffix
+ int j = strstrofs(m, ":", 0);
+ if(j >= 0)
+ m = substring(m, 0, j);
+
if(substring(m, -9, 5) == "_lod1")
return;
if(substring(m, -9, 5) == "_lod2")
FOREACH_WORD(s, true, { precache_playermodel(it); });
}
-void precache()
+PRECACHE(PlayerModels)
{
- // gamemode related things
-
// Precache all player models if desired
if (autocvar_sv_precacheplayermodels)
{
precache_playermodels(autocvar_sv_defaultplayermodel_pink);
precache_playermodels(autocvar_sv_defaultplayermodel);
}
-
-#if 0
- // Disabled this code because it simply does not work (e.g. ignores bgmvolume, overlaps with "cd loop" controlled tracks).
-
- if (!this.noise && this.music) // quake 3 uses the music field
- this.noise = this.music;
-
- // plays music for the level if there is any
- if (this.noise)
- {
- precache_sound (this.noise);
- ambientsound ('0 0 0', this.noise, VOL_BASE, ATTEN_NONE);
- }
-#endif
}