From 235b58dbd496a17a35ddb832630594056f3e3051 Mon Sep 17 00:00:00 2001 From: Mario Date: Thu, 18 Apr 2013 21:06:22 +1000 Subject: [PATCH] Remove freezetag_revive_progress --- qcsrc/server/cl_client.qc | 6 +++--- qcsrc/server/defs.qh | 2 -- qcsrc/server/g_damage.qc | 10 +++++----- qcsrc/server/g_world.qc | 2 -- qcsrc/server/monsters/lib/monsters.qc | 15 +++++--------- qcsrc/server/monsters/monster/spider.qc | 2 +- qcsrc/server/mutators/gamemode_freezetag.qc | 22 ++++++++++----------- 7 files changed, 25 insertions(+), 34 deletions(-) diff --git a/qcsrc/server/cl_client.qc b/qcsrc/server/cl_client.qc index 4fbe81304..e7daae5f4 100644 --- a/qcsrc/server/cl_client.qc +++ b/qcsrc/server/cl_client.qc @@ -907,7 +907,7 @@ void PutClientInServer (void) activator = world; self = oldself; - Unfreeze(self, revive_progress); + Unfreeze(self); spawn_spot = spot; MUTATOR_CALLHOOK(PlayerSpawn); @@ -2593,13 +2593,13 @@ void PlayerPreThink (void) return; #endif - if(self.frozen) + if(self.frozen == 2) { self.revive_progress = bound(0, self.revive_progress + frametime * self.revive_speed, 1); self.health = max(1, self.revive_progress * autocvar_g_balance_health_start); if(self.revive_progress >= 1) - Unfreeze(self, revive_progress); + Unfreeze(self); } MUTATOR_CALLHOOK(PlayerPreThink); diff --git a/qcsrc/server/defs.qh b/qcsrc/server/defs.qh index f98b68d2a..570185cb5 100644 --- a/qcsrc/server/defs.qh +++ b/qcsrc/server/defs.qh @@ -590,8 +590,6 @@ float serverflags; .float player_blocked; -.float freezetag_revive_progress; - .float frozen; // for freeze attacks .float revive_progress; .float revive_speed; // NOTE: multiplier (anything above 1 is instaheal) diff --git a/qcsrc/server/g_damage.qc b/qcsrc/server/g_damage.qc index 2f25e5d2d..383105222 100644 --- a/qcsrc/server/g_damage.qc +++ b/qcsrc/server/g_damage.qc @@ -572,7 +572,7 @@ void Ice_Think() self.nextthink = time; } -void Freeze (entity targ, float freeze_time, float frozen_type, .float revive_flag) +void Freeze (entity targ, float freeze_time, float frozen_type) { float monster = (targ.flags & FL_MONSTER); float player = (targ.flags & FL_CLIENT); @@ -584,7 +584,7 @@ void Freeze (entity targ, float freeze_time, float frozen_type, .float revive_fl return; targ.frozen = frozen_type; - targ.revive_flag = 0; + targ.revive_progress = 0; targ.health = 1; targ.revive_speed = freeze_time; @@ -607,10 +607,10 @@ void Freeze (entity targ, float freeze_time, float frozen_type, .float revive_fl RemoveGrapplingHook(targ); } -void Unfreeze (entity targ, .float revive_flag) +void Unfreeze (entity targ) { targ.frozen = 0; - targ.revive_flag = 0; + targ.revive_progress = 0; targ.health = ((targ.classname == STR_PLAYER) ? autocvar_g_balance_health_start : targ.max_health); // remove the ice block @@ -810,7 +810,7 @@ void Damage (entity targ, entity inflictor, entity attacker, float damage, float mirrorforce *= g_weaponforcefactor; } - if(targ.frozen && attacker.monsterid != MONSTER_SPIDER && deathtype != DEATH_HURTTRIGGER) + if(((targ.frozen == 2 && attacker.monsterid != MONSTER_SPIDER) || (targ.frozen == 1)) && deathtype != DEATH_HURTTRIGGER) { damage = 0; force *= 0.2; diff --git a/qcsrc/server/g_world.qc b/qcsrc/server/g_world.qc index 54d5d7514..45c004177 100644 --- a/qcsrc/server/g_world.qc +++ b/qcsrc/server/g_world.qc @@ -813,8 +813,6 @@ void spawnfunc_worldspawn (void) addstat(STAT_YELLOWALIVE, AS_INT, yellowalive_stat); addstat(STAT_PINKALIVE, AS_INT, pinkalive_stat); } - if(g_freezetag) - addstat(STAT_REVIVE_PROGRESS, AS_FLOAT, freezetag_revive_progress); if(g_td) { diff --git a/qcsrc/server/monsters/lib/monsters.qc b/qcsrc/server/monsters/lib/monsters.qc index d5d63de0d..fb7db139f 100644 --- a/qcsrc/server/monsters/lib/monsters.qc +++ b/qcsrc/server/monsters/lib/monsters.qc @@ -302,8 +302,7 @@ void Monster_Fade () self.angles = self.pos2; self.health = self.max_health; // TODO: check if resetting to max_health is wise here - if(vlen(self.velocity) > 0) - self.SendFlags |= MSF_MOVE; + self.SendFlags |= MSF_MOVE; return; } @@ -497,7 +496,7 @@ void monster_move(float runspeed, float walkspeed, float stopspeed, float manim_ self.nextthink = time + 0.1; if(self.revive_progress >= 1) - Unfreeze(self, revive_progress); // wait for next think before attacking + Unfreeze(self); // wait for next think before attacking self.SendFlags |= MSF_MOVE; @@ -646,9 +645,7 @@ void monster_move(float runspeed, float walkspeed, float stopspeed, float manim_ self.checkattack(); self.SendFlags |= MSF_ANG; - - if(vlen(self.velocity) > 0) - self.SendFlags |= MSF_MOVE; + self.SendFlags |= MSF_MOVE; } void monster_dead_think() @@ -664,8 +661,7 @@ void monster_dead_think() return; } - if(vlen(self.velocity) > 0) - self.SendFlags |= MSF_MOVE; // keep up to date on the monster's location + self.SendFlags |= MSF_MOVE; // keep up to date on the monster's location } void monsters_setstatus() @@ -909,8 +905,7 @@ void monster_hook_death() if not(self.flags & FL_FLY) self.velocity = '0 0 0'; - if(vlen(self.velocity) > 0) - self.SendFlags |= MSF_MOVE; + self.SendFlags |= MSF_MOVE; totalspawned -= 1; } diff --git a/qcsrc/server/monsters/monster/spider.qc b/qcsrc/server/monsters/monster/spider.qc index 4c9edb189..d6ce296c3 100644 --- a/qcsrc/server/monsters/monster/spider.qc +++ b/qcsrc/server/monsters/monster/spider.qc @@ -65,7 +65,7 @@ void spider_web_touch () switch(self.realowner.spider_type) { case SPIDER_TYPE_ICE: - Freeze(other, 0.3, 2, revive_progress); + Freeze(other, 0.3, 2); break; case SPIDER_TYPE_FIRE: Fire_AddDamage(other, self.realowner, 5 * monster_skill, autocvar_g_monster_spider_attack_fire_time, DEATH_MONSTER_SPIDER_FIRE); diff --git a/qcsrc/server/mutators/gamemode_freezetag.qc b/qcsrc/server/mutators/gamemode_freezetag.qc index 7e23c0bfe..0251a5b3a 100644 --- a/qcsrc/server/mutators/gamemode_freezetag.qc +++ b/qcsrc/server/mutators/gamemode_freezetag.qc @@ -59,7 +59,7 @@ void freezetag_Freeze(entity attacker) self.health = 1; - Freeze(self, 0, 1, freezetag_revive_progress); + Freeze(self, 0, 1); // add waypoint WaypointSprite_Spawn("freezetag_frozen", 0, 0, self, '0 0 64', world, self.team, self, waypointsprite_attached, TRUE, RADARICON_WAYPOINT, '0.25 0.90 1'); @@ -85,7 +85,7 @@ void freezetag_Freeze(entity attacker) void freezetag_Unfreeze(entity attacker) { - Unfreeze(self, freezetag_revive_progress); + Unfreeze(self); // remove waypoint if(self.waypointsprite_attached) @@ -316,10 +316,10 @@ MUTATOR_HOOKFUNCTION(freezetag_PlayerPreThink) if(n && self.frozen == 1) // OK, there is at least one teammate reviving us { - self.freezetag_revive_progress = bound(0, self.freezetag_revive_progress + frametime * autocvar_g_freezetag_revive_speed, 1); - self.health = max(1, self.freezetag_revive_progress * autocvar_g_balance_health_start); + self.revive_progress = bound(0, self.revive_progress + frametime * autocvar_g_freezetag_revive_speed, 1); + self.health = max(1, self.revive_progress * autocvar_g_balance_health_start); - if(self.freezetag_revive_progress >= 1) + if(self.revive_progress >= 1) { freezetag_Unfreeze(self); @@ -347,24 +347,24 @@ MUTATOR_HOOKFUNCTION(freezetag_PlayerPreThink) // now find EVERY teammate within reviving radius, set their revive_progress values correct FOR_EACH_PLAYER(other) if(self != other) { - if(other.frozen != 1) + if(!other.frozen) { if(other.team == self.team) { if(boxesoverlap(self.absmin - revive_extra_size, self.absmax + revive_extra_size, other.absmin, other.absmax)) - other.freezetag_revive_progress = self.freezetag_revive_progress; + other.revive_progress = self.revive_progress; } } } } else if(!n && self.frozen == 1) // only if no teammate is nearby will we reset { - self.freezetag_revive_progress = bound(0, self.freezetag_revive_progress - frametime * autocvar_g_freezetag_revive_clearspeed, 1); - self.health = max(1, self.freezetag_revive_progress * autocvar_g_balance_health_start); + self.revive_progress = bound(0, self.revive_progress - frametime * autocvar_g_freezetag_revive_clearspeed, 1); + self.health = max(1, self.revive_progress * autocvar_g_balance_health_start); } - else if(!n) + else if(!n && !self.frozen) { - self.freezetag_revive_progress = 0; // thawing nobody + self.revive_progress = 0; // thawing nobody } return 1; -- 2.39.2