From 156cbee1fee9942e5018fee2cdc90e836637fd47 Mon Sep 17 00:00:00 2001 From: div0 Date: Mon, 25 Jan 2010 17:05:43 +0000 Subject: [PATCH] get rid of all cheat stuff from other files; make sv_cheats global not used outside when compiling with -DNOCHEATS, cheat code is not even compiled in git-svn-id: svn://svn.icculus.org/nexuiz/trunk@8555 f962a42d-fe04-0410-a3ab-8c8b0445ebaa --- data/qcsrc/server/campaign.qc | 4 +- data/qcsrc/server/cheats.qc | 82 ++++++++++++++++++++++++++++- data/qcsrc/server/cheats.qh | 6 +++ data/qcsrc/server/cl_client.qc | 2 +- data/qcsrc/server/clientcommands.qc | 36 ------------- data/qcsrc/server/defs.qh | 4 -- data/qcsrc/server/ent_cs.qc | 2 +- data/qcsrc/server/gamecommand.qc | 6 --- data/qcsrc/server/miscfunctions.qc | 1 - 9 files changed, 90 insertions(+), 53 deletions(-) diff --git a/data/qcsrc/server/campaign.qc b/data/qcsrc/server/campaign.qc index f14d6cfe4..8a01a23b2 100644 --- a/data/qcsrc/server/campaign.qc +++ b/data/qcsrc/server/campaign.qc @@ -186,7 +186,7 @@ void CampaignPreIntermission() head = head.chain; } - if(won == 1 && lost == 0 && checkrules_equality == 0) + if(won == 1 && lost == 0 && checkrules_equality == 0 && cheatcount_total == 0) { campaign_won = 1; bprint("The current level has been WON.\n"); @@ -241,8 +241,6 @@ void CampaignPostIntermission() void CampaignLevelWarp(float n) { - if(!sv_cheats) - return; CampaignFile_Unload(); CampaignFile_Load(n, 1); if(campaign_entries) diff --git a/data/qcsrc/server/cheats.qc b/data/qcsrc/server/cheats.qc index 19bfc5a6a..3012732b2 100644 --- a/data/qcsrc/server/cheats.qc +++ b/data/qcsrc/server/cheats.qc @@ -1,5 +1,18 @@ void CopyBody(float keepvelocity); +#ifdef NOCHEATS + +float CheatImpulse(float i) { return 0; } +float CheatCommand(float argc) { return 0; } +float CheatFrame() { return 0; } +void CheatInit() { cheatcount_total = world.cheatcount; } +void CheatShutdown() { } +void CheatInitClient() { } +void CheatShutdownClient() { } +void Drag_MoveDrag(entity from, entity to) { } + +#else + .float maycheat; float sv_cheats; float autocvar_sv_cheats; @@ -14,11 +27,28 @@ float autocvar_sv_cheats; #define CHRAME_DRAG 1 +void CheatInit() +{ + sv_cheats = cvar("sv_cheats"); +} + +void CheatShutdown() +{ +} + +void CheatInitClient() +{ +} + +void CheatShutdownClient() +{ +} + float CheatsAllowed(float i, float argc, float fr) // the cheat gets passed as argument for possible future ACL checking { if(i == CHIMPULSE_CLONE_MOVING || i == CHIMPULSE_CLONE_STANDING) if(self.lip < sv_clones) - goto allow; + return 1; if(self.maycheat) return 1; if(sv_cheats && autocvar_sv_cheats) @@ -213,6 +243,8 @@ float CheatImpulse(float i) return 1; } +void DragBox_Think(); +float drag_lastcnt; float CheatCommand(float argc) { if not(CheatsAllowed(0, argc, 0)) @@ -530,6 +562,13 @@ float CheatCommand(float argc) for(e = world; (e = find(e, classname, "drag_digit")); ) remove(e); goto cheated; + case "warp": + if(argc == 2) if(cvar("g_campaign")) + { + CampaignLevelWarp(stof(argv(1))); + goto cheated; + } + break; case "god": BITXOR_ASSIGN(self.flags, FL_GODMODE); if(self.flags & FL_GODMODE) @@ -842,3 +881,44 @@ void Drag_MoveDrag(entity from, entity to) } } + + + + + +void DragBox_Think() +{ + if(self.aiment && self.enemy) + { + self.origin_x = (self.aiment.origin_x + self.enemy.origin_x) * 0.5; + self.origin_y = (self.aiment.origin_y + self.enemy.origin_y) * 0.5; + self.origin_z = (self.aiment.origin_z + self.enemy.origin_z) * 0.5; + self.maxs_x = fabs(self.aiment.origin_x - self.enemy.origin_x) * 0.5; + self.maxs_y = fabs(self.aiment.origin_y - self.enemy.origin_y) * 0.5; + self.maxs_z = fabs(self.aiment.origin_z - self.enemy.origin_z) * 0.5; + self.mins = -1 * self.maxs; + setorigin(self, self.origin); setsize(self, self.mins, self.maxs); // link edict + } + + if(self.cnt == -1) // actually race_place -1 + { + // show "10 10" for qualifying spawns + setmodel(self.killindicator, "models/sprites/10.spr32"); + setmodel(self.killindicator.killindicator, "models/sprites/10.spr32"); + } + else if(self.cnt == -2) // actually race_place 0 + { + // show "10 0" for loser spawns + setmodel(self.killindicator, "models/sprites/10.spr32"); + setmodel(self.killindicator.killindicator, "models/sprites/0.spr32"); + } + else + { + setmodel(self.killindicator, strcat("models/sprites/", ftos(mod(self.cnt, 10)), ".spr32")); + setmodel(self.killindicator.killindicator, strcat("models/sprites/", ftos(floor(self.cnt / 10)), ".spr32")); + } + + self.nextthink = time; +} + +#endif diff --git a/data/qcsrc/server/cheats.qh b/data/qcsrc/server/cheats.qh index 1288c6143..cb365a3ba 100644 --- a/data/qcsrc/server/cheats.qh +++ b/data/qcsrc/server/cheats.qh @@ -1,5 +1,11 @@ float cheatcount_total; .float cheatcount; +void CheatInit(); +void CheatShutdown(); +void CheatInitClient(); +void CheatShutdownClient(); float CheatImpulse(float i); float CheatCommand(float argc); float CheatFrame(); + +void Drag_MoveDrag(entity from, entity to); // call this from CopyBody diff --git a/data/qcsrc/server/cl_client.qc b/data/qcsrc/server/cl_client.qc index d56691126..73fb1d676 100644 --- a/data/qcsrc/server/cl_client.qc +++ b/data/qcsrc/server/cl_client.qc @@ -1447,7 +1447,7 @@ void ClientConnect (void) ctf_clientconnect(); }*/ - if(teams_matter || sv_cheats) + if(teams_matter || radar_showennemies) attach_entcs(); bot_relinkplayerlist(); diff --git a/data/qcsrc/server/clientcommands.qc b/data/qcsrc/server/clientcommands.qc index 93630c437..883e83f88 100644 --- a/data/qcsrc/server/clientcommands.qc +++ b/data/qcsrc/server/clientcommands.qc @@ -94,42 +94,6 @@ entity GetPlayer(string name) return world; } -float drag_lastcnt; -void DragBox_Think() -{ - if(self.aiment && self.enemy) - { - self.origin_x = (self.aiment.origin_x + self.enemy.origin_x) * 0.5; - self.origin_y = (self.aiment.origin_y + self.enemy.origin_y) * 0.5; - self.origin_z = (self.aiment.origin_z + self.enemy.origin_z) * 0.5; - self.maxs_x = fabs(self.aiment.origin_x - self.enemy.origin_x) * 0.5; - self.maxs_y = fabs(self.aiment.origin_y - self.enemy.origin_y) * 0.5; - self.maxs_z = fabs(self.aiment.origin_z - self.enemy.origin_z) * 0.5; - self.mins = -1 * self.maxs; - setorigin(self, self.origin); setsize(self, self.mins, self.maxs); // link edict - } - - if(self.cnt == -1) // actually race_place -1 - { - // show "10 10" for qualifying spawns - setmodel(self.killindicator, "models/sprites/10.spr32"); - setmodel(self.killindicator.killindicator, "models/sprites/10.spr32"); - } - else if(self.cnt == -2) // actually race_place 0 - { - // show "10 0" for loser spawns - setmodel(self.killindicator, "models/sprites/10.spr32"); - setmodel(self.killindicator.killindicator, "models/sprites/0.spr32"); - } - else - { - setmodel(self.killindicator, strcat("models/sprites/", ftos(mod(self.cnt, 10)), ".spr32")); - setmodel(self.killindicator.killindicator, strcat("models/sprites/", ftos(floor(self.cnt / 10)), ".spr32")); - } - - self.nextthink = time; -} - //float ctf_clientcommand(); float readyrestart_happened; .float lms_spectate_warning; diff --git a/data/qcsrc/server/defs.qh b/data/qcsrc/server/defs.qh index b8f9e65d7..f18fcb908 100644 --- a/data/qcsrc/server/defs.qh +++ b/data/qcsrc/server/defs.qh @@ -42,7 +42,6 @@ float g_pickup_respawntimejitter_powerup; float g_jetpack; float sv_clones; -float sv_cheats; float sv_gentle; float sv_foginterval; @@ -575,8 +574,6 @@ vector debug_shotorg; // if non-zero, overrides the shot origin of all weapons float servertime, serverprevtime, serverframetime; -void Drag_MoveDrag(entity from, entity to); - .entity soundentity; .float ammo_fuel; @@ -608,7 +605,6 @@ string matchid; FTEQCC_YOU_SUCK_THIS_IS_NOT_UNREFERENCED(stats_hit); FTEQCC_YOU_SUCK_THIS_IS_NOT_UNREFERENCED(stats_fired); -.float maycheat; .float stat_leadlimit; float radar_showennemies; diff --git a/data/qcsrc/server/ent_cs.qc b/data/qcsrc/server/ent_cs.qc index 3e7f490af..bee79d682 100644 --- a/data/qcsrc/server/ent_cs.qc +++ b/data/qcsrc/server/ent_cs.qc @@ -32,7 +32,7 @@ float entcs_customize() return FALSE; if(other.classname == "player") if(o.team != other.team) - if not (sv_cheats || radar_showennemies) + if not (radar_showennemies) return FALSE; return TRUE; } diff --git a/data/qcsrc/server/gamecommand.qc b/data/qcsrc/server/gamecommand.qc index 316f5b82b..cf2ae4034 100644 --- a/data/qcsrc/server/gamecommand.qc +++ b/data/qcsrc/server/gamecommand.qc @@ -683,12 +683,6 @@ void GameCommand(string command) return; } - if(argv(0) == "warp") if(argc == 2) if(cvar("g_campaign")) - { - CampaignLevelWarp(stof(argv(1))); - return; - } - if(argv(0) == "gotomap") if(argc == 2) { print(GotoMap(argv(1)), "\n"); diff --git a/data/qcsrc/server/miscfunctions.qc b/data/qcsrc/server/miscfunctions.qc index 65155f2a9..3a8cf78c3 100644 --- a/data/qcsrc/server/miscfunctions.qc +++ b/data/qcsrc/server/miscfunctions.qc @@ -1230,7 +1230,6 @@ void readlevelcvars(void) sv_loddistance2 = 1073741824; // enough to turn off LOD 2 reliably sv_clones = cvar("sv_clones"); - sv_cheats = cvar("sv_cheats"); sv_gentle = cvar("sv_gentle"); sv_foginterval = cvar("sv_foginterval"); g_cloaked = cvar("g_cloaked"); -- 2.39.2