#include "command/sv_cmd.qh"
#include "command/vote.qh"
#include "g_hook.qh"
+#include <server/gamelog.qh>
+#include <server/g_damage.qh>
#include "ipban.qh"
#include "mapvoting.qh"
#include <server/mutators/_mod.qh>
#include "race.qh"
#include "scores.qh"
#include "scores_rules.qh"
+#include "spawnpoints.qh"
#include "teamplay.qh"
#include "weapons/weaponstats.qh"
+#include <server/weapons/common.qh>
#include "../common/constants.qh"
#include <common/net_linked.qh>
#include "../common/deathtypes/all.qh"
+#include <common/gamemodes/_mod.qh>
#include "../common/gamemodes/sv_rules.qh"
#include "../common/mapinfo.qh"
#include "../common/monsters/_mod.qh"
#include "../common/playerstats.qh"
#include "../common/stats.qh"
#include "../common/teams.qh"
+#include <common/mapobjects/triggers.qh>
#include "../common/mapobjects/trigger/secret.qh"
#include "../common/mapobjects/target/music.qh"
#include "../common/util.qh"
BADCVAR("g_ca");
BADCVAR("g_ca_teams");
BADCVAR("g_conquest");
+ BADCVAR("g_conquest_teams");
BADCVAR("g_ctf");
BADCVAR("g_cts");
BADCVAR("g_dotc");
BADCVAR("g_runematch");
BADCVAR("g_shootfromeye");
BADCVAR("g_snafu");
+ BADCVAR("g_survival");
+ BADCVAR("g_survival_not_dm_maps");
BADCVAR("g_tdm");
BADCVAR("g_tdm_on_dm_maps");
BADCVAR("g_tdm_teams");
BADCVAR("nextmap");
BADCVAR("teamplay");
BADCVAR("timelimit");
+ BADCVAR("g_mapinfo_settemp_acl");
BADCVAR("g_mapinfo_ignore_warnings");
BADCVAR("g_maplist_ignore_sizes");
BADCVAR("g_maplist_sizes_count_bots");
BADCVAR("g_buffs_randomize");
BADCVAR("g_buffs_randomize_teamplay");
BADCVAR("g_campcheck_distance");
+ BADCVAR("g_chatsounds");
BADCVAR("g_ca_point_leadlimit");
BADCVAR("g_ca_point_limit");
BADCVAR("g_ctf_captimerecord_always");
BADCVAR("g_forced_respawn");
BADCVAR("g_freezetag_point_leadlimit");
BADCVAR("g_freezetag_point_limit");
+ BADCVAR("g_glowtrails");
BADCVAR("g_hats");
+ BADCVAR("g_casings");
BADCVAR("g_invasion_point_limit");
BADCVAR("g_jump_grunt");
+ BADCVAR("g_keepaway_ballcarrier_effects");
+ BADCVAR("g_keepawayball_effects");
BADCVAR("g_keyhunt_point_leadlimit");
BADCVAR("g_nexball_goalleadlimit");
BADCVAR("g_new_toys_autoreplace");
BADCVAR("sv_minigames");
BADCVAR("sv_namechangetimer");
BADCVAR("sv_precacheplayermodels");
+ BADCVAR("sv_radio");
BADCVAR("sv_stepheight");
BADCVAR("sv_timeout");
BADCVAR("sv_weapons_modeloverride");
BADCVAR("w_prop_interval");
+ BADPREFIX("chat_");
BADPREFIX("crypto_");
BADPREFIX("gameversion_");
BADPREFIX("g_chat_");
Nagger_Init();
- next_pingtime = time + 5;
-
// set up information replies for clients and server to use
maplist_reply = strzone(getmaplist());
lsmaps_reply = strzone(getlsmaps());
IL_EACH(g_moveables, true,
{
- if(IS_CLIENT(it) || it.classname == "" || it.move_movetype == MOVETYPE_PUSH || it.move_movetype == MOVETYPE_FAKEPUSH || it.move_movetype == MOVETYPE_PHYSICS)
+ if(IS_CLIENT(it) || it.classname == "" || it.move_movetype == MOVETYPE_PHYSICS)
continue;
//set_movetype(it, it.move_movetype);
// inline the set_movetype function, since this is called a lot
- it.movetype = (it.move_qcphysics) ? MOVETYPE_NONE : it.move_movetype;
-
- if(it.move_movetype == MOVETYPE_NONE)
- continue;
+ it.movetype = (it.move_qcphysics) ? MOVETYPE_QCENTITY : it.move_movetype;
- if(it.move_qcphysics)
+ if(it.move_qcphysics && it.move_movetype != MOVETYPE_NONE)
Movetype_Physics_NoMatchTicrate(it, PHYS_INPUT_TIMELENGTH, false);
if(it.movetype >= MOVETYPE_USER_FIRST && it.movetype <= MOVETYPE_USER_LAST) // these cases have no think handling
{
+ if(it.move_movetype == MOVETYPE_PUSH || it.move_movetype == MOVETYPE_FAKEPUSH)
+ continue; // these movetypes have no regular think function
// handle thinking here
if (getthink(it) && it.nextthink > 0 && it.nextthink <= time + frametime)
RunThink(it);
IL_EACH(g_moveables, it.move_qcphysics,
{
- if(IS_CLIENT(it) || is_pure(it) || it.classname == "" || it.move_movetype == MOVETYPE_NONE)
+ if(IS_CLIENT(it) || it.classname == "" || it.move_movetype == MOVETYPE_NONE)
continue;
Movetype_Physics_NoMatchTicrate(it, PHYS_INPUT_TIMELENGTH, false);
});
if(world_initialized > 0)
{
world_initialized = 0;
+
+ // if a timeout is active, reset the slowmo value to normal
+ if(timeout_status == TIMEOUT_ACTIVE)
+ cvar_set("slowmo", ftos(orig_slowmo));
+
LOG_TRACE("Saving persistent data...");
Ban_SaveBans();