]> git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/commitdiff
Remove freezetag_revive_progress
authorMario <mario.mario@y7mail.com>
Thu, 18 Apr 2013 11:06:22 +0000 (21:06 +1000)
committerMario <mario.mario@y7mail.com>
Thu, 18 Apr 2013 11:06:22 +0000 (21:06 +1000)
qcsrc/server/cl_client.qc
qcsrc/server/defs.qh
qcsrc/server/g_damage.qc
qcsrc/server/g_world.qc
qcsrc/server/monsters/lib/monsters.qc
qcsrc/server/monsters/monster/spider.qc
qcsrc/server/mutators/gamemode_freezetag.qc

index 4fbe81304e6c6de8e51afb114f05734dfa3f2fec..e7daae5f4974c8dc47d49a513eddd5eba64a76f4 100644 (file)
@@ -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);
index f98b68d2a9b01837187613e4a12ad8f830913b27..570185cb5242b25e77f555aa7424adf2cc253fe4 100644 (file)
@@ -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)
index 2f25e5d2d2baa9f4385523238c6567b85fee4eee..383105222f03194d3a7591e1dfb5339c1331eb4d 100644 (file)
@@ -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;
index 54d5d75143cda7e026aec74e9cf83406f9a60629..45c004177fd61f0a8a1b7a0ce6a4649117602656 100644 (file)
@@ -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)
        {
index d5d63de0db2d86519f4e49d5f3484d63d97cbd78..fb7db139fd95357f4b6cb10bd20e24373fe648de 100644 (file)
@@ -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;
 }
index 4c9edb1899c93103546e3760a5ca5ec747765d37..d6ce296c36817c2a76a68155b93315d63c436def 100644 (file)
@@ -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);
index 7e23c0bfe3bfaaf616ca2874319f4c4dae912530..0251a5b3acf7074b96a353066ced913b5210fd91 100644 (file)
@@ -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;