]> git.rm.cloudns.org Git - xonotic/xonotic-data.pk3dir.git/commitdiff
Use STAT(FROZEN, e) instead of e.frozen
authorMario <mario@smbclan.net>
Fri, 1 Jan 2016 11:15:28 +0000 (21:15 +1000)
committerMario <mario@smbclan.net>
Fri, 1 Jan 2016 11:15:28 +0000 (21:15 +1000)
28 files changed:
qcsrc/common/gamemodes/gamemode/nexball/nexball.qc
qcsrc/common/gamemodes/gamemode/onslaught/onslaught.qc
qcsrc/common/monsters/monster/mage.qc
qcsrc/common/monsters/sv_monsters.qc
qcsrc/common/mutators/mutator/buffs/buffs.qc
qcsrc/common/mutators/mutator/campcheck/campcheck.qc
qcsrc/common/mutators/mutator/nades/nades.qc
qcsrc/common/mutators/mutator/overkill/overkill.qc
qcsrc/common/mutators/mutator/spawn_near_teammate/spawn_near_teammate.qc
qcsrc/common/mutators/mutator/touchexplode/touchexplode.qc
qcsrc/common/mutators/mutator/vampirehook/vampirehook.qc
qcsrc/common/t_items.qc
qcsrc/common/turrets/sv_turrets.qc
qcsrc/common/vehicles/sv_vehicles.qc
qcsrc/common/weapons/weapon/arc.qc
qcsrc/common/weapons/weapon/minelayer.qc
qcsrc/server/bot/aim.qc
qcsrc/server/cl_client.qc
qcsrc/server/cl_player.qc
qcsrc/server/command/common.qc
qcsrc/server/command/vote.qc
qcsrc/server/g_damage.qc
qcsrc/server/g_hook.qc
qcsrc/server/mutators/mutator/gamemode_ctf.qc
qcsrc/server/mutators/mutator/gamemode_freezetag.qc
qcsrc/server/mutators/mutator/gamemode_keepaway.qc
qcsrc/server/weapons/accuracy.qc
qcsrc/server/weapons/weaponsystem.qc

index d8be44d0dc2a260b2b7ae53dee7e3c41ba5100b2..90de6aea7389f2ade7406cb92879110a2655e8aa 100644 (file)
@@ -331,7 +331,7 @@ void basketball_touch()
                football_touch();
                return;
        }
-       if(!self.cnt && IS_PLAYER(other) && !other.frozen && !other.deadflag && (other != self.nb_dropper || time > self.nb_droptime + autocvar_g_nexball_delay_collect))
+       if(!self.cnt && IS_PLAYER(other) && !STAT(FROZEN, other) && !IS_DEAD(other) && (other != self.nb_dropper || time > self.nb_droptime + autocvar_g_nexball_delay_collect))
        {
                if(other.health <= 0)
                        return;
@@ -726,7 +726,7 @@ void W_Nexball_Touch()
 
        PROJECTILE_TOUCH;
        if(attacker.team != other.team || autocvar_g_nexball_basketball_teamsteal)
-               if((ball = other.ballcarried) && !other.frozen && !other.deadflag && (IS_PLAYER(attacker)))
+               if((ball = other.ballcarried) && !STAT(FROZEN, other) && !other.deadflag && (IS_PLAYER(attacker)))
                {
                        other.velocity = other.velocity + normalize(self.velocity) * other.damageforcescale * autocvar_g_balance_nexball_secondary_force;
                        UNSET_ONGROUND(other);
index d75003346d688cf0f58ea8428382a763ed014ac5..7cdefd906167b5615cb0eb1320ef61ec30e62c99 100644 (file)
@@ -799,7 +799,7 @@ void ons_ControlPoint_Touch()
                return;
 
        if(!IS_PLAYER(toucher)) { return; }
-       if(toucher.frozen) { return; }
+       if(STAT(FROZEN, toucher)) { return; }
        if(IS_DEAD(toucher)) { return; }
 
        if ( SAME_TEAM(self,toucher) )
@@ -2060,7 +2060,7 @@ MUTATOR_HOOKFUNCTION(ons, SV_ParseClientCommand)
 
                if ( IS_PLAYER(self) )
                {
-                       if ( !self.frozen )
+                       if ( !STAT(FROZEN, self) )
                        {
                                entity source_point = ons_Nearest_ControlPoint(self.origin, autocvar_g_onslaught_teleport_radius);
 
index 14d30cd27e67d3b27c923f249ece2db92b27e7e4..2541de0a9b68ff2281adc31fcbb82ea3da0630d4 100644 (file)
@@ -125,7 +125,7 @@ float M_Mage_Defend_Heal_Check(entity e)
                return false;
        if(DIFF_TEAM(e, self) && e != self.monster_follow)
                return false;
-       if(e.frozen)
+       if(STAT(FROZEN, e))
                return false;
        if(!IS_PLAYER(e))
                return (IS_MONSTER(e) && e.health < e.max_health);
index 684d1615f3966a4e9adf6e90d1c94f01ae739b9e..f0c8c083329865574ee615a60936bf8ec9c70fe8 100644 (file)
@@ -96,7 +96,7 @@ bool Monster_ValidTarget(entity mon, entity player)
        || (!IS_VEHICLE(player) && (player.flags & FL_NOTARGET))
        || (!autocvar_g_monsters_typefrag && player.BUTTON_CHAT)
        || (SAME_TEAM(player, mon))
-       || (player.frozen)
+       || (STAT(FROZEN, player))
        || (player.alpha != 0 && player.alpha < 0.5)
        )
        {
@@ -565,7 +565,7 @@ vector Monster_Move_Target(entity targ)
 
                if((self.enemy == world)
                        || (IS_DEAD(self.enemy) || self.enemy.health < 1)
-                       || (self.enemy.frozen)
+                       || (STAT(FROZEN, self.enemy))
                        || (self.enemy.flags & FL_NOTARGET)
                        || (self.enemy.alpha < 0.5 && self.enemy.alpha != 0)
                        || (self.enemy.takedamage == DAMAGE_NO)
@@ -702,7 +702,7 @@ void Monster_Move(float runspeed, float walkspeed, float stpspeed)
 
        entity targ;
 
-       if(self.frozen == 2)
+       if(STAT(FROZEN, self) == 2)
        {
                self.revive_progress = bound(0, self.revive_progress + self.ticrate * self.revive_speed, 1);
                self.health = max(1, self.revive_progress * self.max_health);
@@ -722,7 +722,7 @@ void Monster_Move(float runspeed, float walkspeed, float stpspeed)
 
                return;
        }
-       else if(self.frozen == 3)
+       else if(STAT(FROZEN, self) == 3)
        {
                self.revive_progress = bound(0, self.revive_progress - self.ticrate * self.revive_speed, 1);
                self.health = max(0, autocvar_g_nades_ice_health + (self.max_health-autocvar_g_nades_ice_health) * self.revive_progress );
@@ -990,7 +990,7 @@ void Monster_Dead(entity attacker, float gibbed)
        self.nextthink = time;
        self.monster_lifetime = time + 5;
 
-       if(self.frozen)
+       if(STAT(FROZEN, self))
        {
                Unfreeze(self); // remove any icy remains
                self.health = 0; // reset by Unfreeze
@@ -1043,7 +1043,7 @@ void Monster_Damage(entity inflictor, entity attacker, float damage, int deathty
        if((self.spawnflags & MONSTERFLAG_INVINCIBLE) && deathtype != DEATH_KILL.m_id && !ITEM_DAMAGE_NEEDKILL(deathtype))
                return;
 
-       if(self.frozen && deathtype != DEATH_KILL.m_id && deathtype != DEATH_NADE_ICE_FREEZE.m_id)
+       if(STAT(FROZEN, self) && deathtype != DEATH_KILL.m_id && deathtype != DEATH_NADE_ICE_FREEZE.m_id)
                return;
 
        //if(time < self.pain_finished && deathtype != DEATH_KILL.m_id)
@@ -1198,7 +1198,7 @@ void Monster_Anim()
                deadbits = 0;
        }
        int animbits = deadbits;
-       if(self.frozen)
+       if(STAT(FROZEN, self))
                animbits |= ANIMSTATE_FROZEN;
        if(self.crouch)
                animbits |= ANIMSTATE_DUCK; // not that monsters can crouch currently...
index e16dc8f933c4703f5eab8b3557b13fc8146de0f6..889b0db2f28149beb01ec0717c03ee9647fad852 100644 (file)
@@ -237,7 +237,7 @@ void buff_Touch()
        }
 
        if((self.team && DIFF_TEAM(other, self))
-       || (other.frozen)
+       || (STAT(FROZEN, other))
        || (other.vehicle)
        || (!self.buff_active)
        )
@@ -334,7 +334,7 @@ void buff_Think()
        }
 
        if(!self.buff_active && !self.buff_activetime)
-       if(!self.owner || self.owner.frozen || IS_DEAD(self.owner) || !self.owner.iscreature || !(self.owner.buffs & self.buffs))
+       if(!self.owner || STAT(FROZEN, self.owner) || IS_DEAD(self.owner) || !self.owner.iscreature || !(self.owner.buffs & self.buffs))
        {
                buff_SetCooldown(autocvar_g_buffs_cooldown_respawn + frametime);
                self.owner = world;
@@ -589,7 +589,7 @@ MUTATOR_HOOKFUNCTION(buffs, PlayerDamage_Calculate)
        if(!IS_DEAD(frag_target))
        if(IS_PLAYER(frag_target) || IS_MONSTER(frag_target))
        if(frag_attacker != frag_target)
-       if(!frag_target.frozen)
+       if(!STAT(FROZEN, frag_target))
        if(frag_target.takedamage)
        if(DIFF_TEAM(frag_attacker, frag_target))
        {
@@ -698,7 +698,7 @@ MUTATOR_HOOKFUNCTION(buffs, ForbidThrowCurrentWeapon)
                float best_distance = autocvar_g_buffs_swapper_range;
                entity closest = world;
                FOREACH_CLIENT(IS_PLAYER(it), LAMBDA(
-                       if(!IS_DEAD(it) && !it.frozen && !it.vehicle)
+                       if(!IS_DEAD(it) && !STAT(FROZEN, it) && !it.vehicle)
                        if(DIFF_TEAM(it, self))
                        if(vlen(self.origin - it.origin) <= best_distance)
                        {
@@ -848,7 +848,7 @@ MUTATOR_HOOKFUNCTION(buffs, PlayerPreThink)
        if(time >= self.buff_time)
                buff_lost = 2;
 
-       if(self.frozen) { buff_lost = 1; }
+       if(STAT(FROZEN, self)) { buff_lost = 1; }
 
        if(buff_lost)
        {
index 0c4a88d61416c2177fefe5a8b3fa9ff9cc54e9dc..01d3885770b2b870279e4ca6466b952085311e2e 100644 (file)
@@ -36,7 +36,7 @@ MUTATOR_HOOKFUNCTION(campcheck, PlayerPreThink)
        if(IS_PLAYER(self))
        if(IS_REAL_CLIENT(self)) // bots may camp, but that's no reason to constantly kill them
        if(!IS_DEAD(self))
-       if(!self.frozen)
+       if(!STAT(FROZEN, self))
        if(!self.BUTTON_CHAT)
        if(autocvar_g_campcheck_interval)
        {
index 6b0b1f5a38891b60478f4f61b264abe898f2153f..387a95d89c30cd6a5127809dd2e7a9c22a46da39 100644 (file)
@@ -175,7 +175,7 @@ void napalm_damage(float dist, float damage, float edgedamage, float burntime)
                if(e.takedamage == DAMAGE_AIM)
                if(self.realowner != e || autocvar_g_nades_napalm_selfdamage)
                if(!IS_PLAYER(e) || !self.realowner || DIFF_TEAM(e, self))
-               if(!e.frozen)
+               if(!STAT(FROZEN, e))
                {
                        p = e.origin;
                        p.x += e.mins.x + random() * (e.maxs.x - e.mins.x);
@@ -406,7 +406,7 @@ void nade_ice_think()
        if(e.takedamage && !IS_DEAD(e))
        if(e.health > 0)
        if(!e.revival_time || ((time - e.revival_time) >= 1.5))
-       if(!e.frozen)
+       if(!STAT(FROZEN, e))
        if(current_freeze_time > 0)
                nade_ice_freeze(self, e, current_freeze_time);
 }
@@ -510,7 +510,7 @@ void nade_heal_touch()
        float health_factor;
        if(IS_PLAYER(other) || IS_MONSTER(other))
        if(!IS_DEAD(other))
-       if(!other.frozen)
+       if(!STAT(FROZEN, other))
        {
                health_factor = autocvar_g_nades_heal_rate*frametime/2;
                if ( other != self.realowner )
@@ -851,7 +851,7 @@ void nades_GiveBonus(entity player, float score)
        if (autocvar_g_nades_bonus)
        if (IS_REAL_CLIENT(player))
        if (IS_PLAYER(player) && player.bonus_nades < autocvar_g_nades_bonus_max)
-       if (player.frozen == 0)
+       if (STAT(FROZEN, player) == 0)
        if (!IS_DEAD(player))
        {
                if ( player.bonus_nade_score < 1 )
@@ -1133,20 +1133,20 @@ MUTATOR_HOOKFUNCTION(nades, PlayerPreThink)
                n = 0;
                FOREACH_CLIENT(IS_PLAYER(it) && it != self, LAMBDA(
                        if(!IS_DEAD(it))
-                       if(it.frozen == 0)
+                       if(STAT(FROZEN, it) == 0)
                        if(SAME_TEAM(it, self))
                        if(boxesoverlap(self.absmin - revive_extra_size, self.absmax + revive_extra_size, it.absmin, it.absmax))
                        {
                                if(!o)
                                        o = it;
-                               if(self.frozen == 1)
+                               if(STAT(FROZEN, self) == 1)
                                        it.reviving = true;
                                ++n;
                        }
                ));
        }
 
-       if(n && self.frozen == 3) // OK, there is at least one teammate reviving us
+       if(n && STAT(FROZEN, self) == 3) // OK, there is at least one teammate reviving us
        {
                self.revive_progress = bound(0, self.revive_progress + frametime * max(1/60, autocvar_g_freezetag_revive_speed), 1);
                self.health = max(1, self.revive_progress * start_health);
@@ -1200,7 +1200,7 @@ MUTATOR_HOOKFUNCTION(nades, PlayerSpawn)
 MUTATOR_HOOKFUNCTION(nades, PlayerDies, CBC_ORDER_LAST)
 {
        if(frag_target.nade)
-       if(!frag_target.frozen || !autocvar_g_freezetag_revive_nade)
+       if(!STAT(FROZEN, frag_target) || !autocvar_g_freezetag_revive_nade)
                toss_nade(frag_target, '0 0 100', max(frag_target.nade.wait, time + 0.05));
 
        float killcount_bonus = ((frag_attacker.killcount >= 1) ? bound(0, autocvar_g_nades_bonus_score_minor * frag_attacker.killcount, autocvar_g_nades_bonus_score_medium) : autocvar_g_nades_bonus_score_minor);
@@ -1233,7 +1233,7 @@ MUTATOR_HOOKFUNCTION(nades, PlayerDies, CBC_ORDER_LAST)
 
 MUTATOR_HOOKFUNCTION(nades, PlayerDamage_Calculate)
 {
-       if(frag_target.frozen)
+       if(STAT(FROZEN, frag_target))
        if(autocvar_g_freezetag_revive_nade)
        if(frag_attacker == frag_target)
        if(frag_deathtype == DEATH_NADE.m_id)
index 758437ef02a9a3a3ce0d1f0f70ecea12bdda68b4..3645053c3841286bfc33c67ccb25447e55593e55 100644 (file)
@@ -101,7 +101,7 @@ MUTATOR_HOOKFUNCTION(ok, PlayerDamage_Calculate, CBC_ORDER_LAST)
 
                if(frag_attacker != frag_target)
                if(frag_target.health > 0)
-               if(frag_target.frozen == 0)
+               if(STAT(FROZEN, frag_target) == 0)
                if(!IS_DEAD(frag_target))
                {
                        Send_Notification(NOTIF_ONE, frag_attacker, MSG_CENTER, CENTER_SECONDARY_NODAMAGE);
@@ -152,7 +152,7 @@ MUTATOR_HOOKFUNCTION(ok, MonsterDropItem) { ok_PlayerDies(); }
 MUTATOR_HOOKFUNCTION(ok, PlayerRegen)
 {SELFPARAM();
        // overkill's values are different, so use custom regen
-       if(!self.frozen)
+       if(!STAT(FROZEN, self))
        {
                self.armorvalue = CalcRotRegen(self.armorvalue, autocvar_g_balance_armor_regenstable, autocvar_g_balance_armor_regen, autocvar_g_balance_armor_regenlinear, 1 * frametime * (time > self.ok_pauseregen_finished), 0, 0, 1, 1 * frametime * (time > self.pauserotarmor_finished), autocvar_g_balance_armor_limit);
                self.health = CalcRotRegen(self.health, autocvar_g_balance_health_regenstable, 0, 100, 1 * frametime * (time > self.ok_pauseregen_finished), 200, 0, autocvar_g_balance_health_rotlinear, 1 * frametime * (time > self.pauserothealth_finished), autocvar_g_balance_health_limit);
@@ -178,7 +178,7 @@ MUTATOR_HOOKFUNCTION(ok, PlayerPreThink)
        if(intermission_running || gameover)
                return false;
 
-       if(IS_DEAD(self) || !IS_PLAYER(self) || self.frozen)
+       if(IS_DEAD(self) || !IS_PLAYER(self) || STAT(FROZEN, self))
                return false;
 
        if(self.ok_lastwep)
index 80bf57a3ee4e18e4919a6452f0c8df199aaff184..51c598f17f6846c803b5f84ff3687e440fbd9785 100644 (file)
@@ -67,7 +67,7 @@ MUTATOR_HOOKFUNCTION(spawn_near_teammate, PlayerSpawn)
                        if(it.msnt_timer < time)
                        if(SAME_TEAM(self, it))
                        if(time > it.spawnshieldtime) // spawn shielding
-                       if(it.frozen == 0)
+                       if(STAT(FROZEN, it) == 0)
                        if(it != self)
                        {
                                tracebox(it.origin, STAT(PL_MIN, NULL), STAT(PL_MAX, NULL), it.origin - '0 0 100', MOVE_WORLDONLY, it);
index d7ba22216b06fa5e20ffc3b3c522e797d6b4c631..56fc4573673eeac551f5b49d4cca1ed5e467b824 100644 (file)
@@ -26,13 +26,13 @@ MUTATOR_HOOKFUNCTION(touchexplode, PlayerPreThink)
 {SELFPARAM();
        if(time > self.touchexplode_time)
        if(!gameover)
-       if(!self.frozen)
+       if(!STAT(FROZEN, self))
        if(IS_PLAYER(self))
        if(!IS_DEAD(self))
        if(!IS_INDEPENDENT_PLAYER(self))
                FOREACH_CLIENT(IS_PLAYER(it) && it != self, LAMBDA(
                        if(time > it.touchexplode_time)
-                       if(!it.frozen)
+                       if(!STAT(FROZEN, it))
                        if(!IS_DEAD(it))
                        if (!IS_INDEPENDENT_PLAYER(it))
                        if(boxesoverlap(self.absmin, self.absmax, it.absmin, it.absmax))
index f669f6a96263ea4b993b7b24e54173a40f4f26db..d2ba668e51380b910036acfaaf5391a23c4c0b63 100644 (file)
@@ -14,7 +14,7 @@ MUTATOR_HOOKFUNCTION(vh, GrappleHookThink)
 
        if(IS_PLAYER(self.aiment))
        if(self.last_dmg < time)
-       if(!self.aiment.frozen)
+       if(!STAT(FROZEN, self.aiment))
        if(time >= game_starttime)
        if(DIFF_TEAM(self.owner, self.aiment) || autocvar_g_vampirehook_teamheal)
        if(self.aiment.health > 0)
index f78c8d1340cc3d166af3ba818eec5c3e9306ccd9..9367881782cc97d7dd2b02a189299886208204cc 100644 (file)
@@ -767,7 +767,7 @@ void Item_Touch()
        }
 
        if(!(other.flags & FL_PICKUPITEMS)
-       || other.frozen
+       || STAT(FROZEN, other)
        || other.deadflag
        || (this.solid != SOLID_TRIGGER)
        || (this.owner == other)
index 02655d6b2d0e47c0f4e13063c25b3a6a911861d2..1ca91e0a8b30623abea2670624e79ea0afde91dd 100644 (file)
@@ -726,7 +726,7 @@ float turret_validate_target(entity e_turret, entity e_target, float validate_fl
        }
        else if (e_target.health <= 0)
                return -6;
-       else if(e_target.frozen > 0)
+       else if(STAT(FROZEN, e_target) > 0)
                return -6;
 
        // player
index c72c60807c2cdd3cccf9625f67c79216f3d92f1f..6b2f3288145b791a0f8c7ef17f41c3040276d226 100644 (file)
@@ -979,7 +979,7 @@ void vehicles_enter(entity pl, entity veh)
        if((!IS_PLAYER(pl))
        || (veh.phase >= time)
        || (pl.vehicle_enter_delay >= time)
-       || (pl.frozen)
+       || (STAT(FROZEN, pl))
        || (IS_DEAD(pl))
        || (pl.vehicle)
        ) { return; }
index f34006b670a65530bba663ab330ccf64600ec95f..e21df3699929e660fac27ad1a04c2d2084785882 100644 (file)
@@ -245,7 +245,7 @@ void W_Arc_Beam_Think()
                ||
                (!self.owner.BUTTON_ATCK && !burst )
                ||
-               self.owner.frozen
+               STAT(FROZEN, self.owner)
                ||
                self.owner.vehicle
                ||
index 8725688173f5521e0973d5a101872bd8dde81dd5..029ce460f91b6f765082e23feb462d7c09e0fa87 100644 (file)
@@ -235,7 +235,7 @@ void W_MineLayer_Think()
 
        // a player's mines shall explode if he disconnects or dies
        // TODO: Do this on team change too -- Samual: But isn't a player killed when they switch teams?
-       if(!IS_PLAYER(self.realowner) || IS_DEAD(self.realowner) || self.realowner.frozen)
+       if(!IS_PLAYER(self.realowner) || IS_DEAD(self.realowner) || STAT(FROZEN, self.realowner))
        {
                other = world;
                self.projectiledeathtype |= HITTYPE_BOUNCE;
@@ -247,7 +247,7 @@ void W_MineLayer_Think()
        head = findradius(self.origin, WEP_CVAR(minelayer, proximityradius));
        while(head)
        {
-               if(IS_PLAYER(head) && !IS_DEAD(head) && !head.frozen)
+               if(IS_PLAYER(head) && !IS_DEAD(head) && !STAT(FROZEN, head))
                if(head != self.realowner && DIFF_TEAM(head, self.realowner)) // don't trigger for team mates
                if(!self.mine_time)
                {
index d8d7d1b92b346f5864f0f43ade890387551dcc25..0692659370063b1789b2de2e0d39fe698b48f5a1 100644 (file)
@@ -117,7 +117,7 @@ float bot_shouldattack(entity e)
                        return false;
        }
 
-       if(e.frozen)
+       if(STAT(FROZEN, e))
                return false;
 
        if(teamplay)
@@ -131,7 +131,7 @@ float bot_shouldattack(entity e)
 
        if (!e.takedamage)
                return false;
-       if (e.deadflag)
+       if (IS_DEAD(e))
                return false;
        if (e.BUTTON_CHAT)
                return false;
index 637530cbfe630f9ecaeaf3ae4ce49ac11f41683c..20068e0131a760305aff8d8e0db77abc539e5f5d 100644 (file)
@@ -916,7 +916,7 @@ void ClientKill ()
 {SELFPARAM();
        if(gameover) return;
        if(self.player_blocked) return;
-       if(self.frozen) return;
+       if(STAT(FROZEN, self)) return;
 
        ClientKill_TeamChange(0);
 }
@@ -1523,7 +1523,7 @@ void player_regen ()
        regen_health_stable = autocvar_g_balance_health_regenstable;
        regen_health_rotstable = autocvar_g_balance_health_rotstable;
        if(!MUTATOR_CALLHOOK(PlayerRegen))
-       if(!self.frozen)
+       if(!STAT(FROZEN, self))
        {
                float mina, maxa, limith, limita;
                maxa = autocvar_g_balance_armor_rotstable;
@@ -1640,7 +1640,7 @@ void SpectateCopy(entity this, entity spectatee)
        self.dmg_inflictor = spectatee.dmg_inflictor;
        self.v_angle = spectatee.v_angle;
        self.angles = spectatee.v_angle;
-       self.frozen = spectatee.frozen;
+       STAT(FROZEN, self) = STAT(FROZEN, spectatee);
        self.revive_progress = spectatee.revive_progress;
        if(!self.BUTTON_USE)
                self.fixangle = true;
@@ -2049,7 +2049,7 @@ void PlayerUseKey()
        }
        else if(autocvar_g_vehicles_enter)
        {
-               if(!self.frozen)
+               if(!STAT(FROZEN, self))
                if(!IS_DEAD(self))
                if(!gameover)
                {
@@ -2177,7 +2177,7 @@ void PlayerPreThink ()
                self.max_armorvalue = 0;
        }
 
-       if(self.frozen == 2)
+       if(STAT(FROZEN, self) == 2)
        {
                self.revive_progress = bound(0, self.revive_progress + frametime * self.revive_speed, 1);
                self.health = max(1, self.revive_progress * start_health);
@@ -2186,7 +2186,7 @@ void PlayerPreThink ()
                if(self.revive_progress >= 1)
                        Unfreeze(self);
        }
-       else if(self.frozen == 3)
+       else if(STAT(FROZEN, self) == 3)
        {
                self.revive_progress = bound(0, self.revive_progress - frametime * self.revive_speed, 1);
                self.health = max(0, autocvar_g_nades_ice_health + (start_health-autocvar_g_nades_ice_health) * self.revive_progress );
@@ -2207,7 +2207,7 @@ void PlayerPreThink ()
        if(time > self.last_vehiclecheck)
        if(IS_PLAYER(self))
        if(!gameover)
-       if(!self.frozen)
+       if(!STAT(FROZEN, self))
        if(!self.vehicle)
        if(!IS_DEAD(self))
        {
@@ -2333,7 +2333,7 @@ void PlayerPreThink ()
                        do_crouch = 0;
                if(self.vehicle)
                        do_crouch = 0;
-               if(self.frozen)
+               if(STAT(FROZEN, self))
                        do_crouch = 0;
 
                // WEAPONTODO: THIS SHIT NEEDS TO GO EVENTUALLY
index e194b026f9dd1b802e115a6b67f389c9d1c97798..9449ada4116d3098c2c0dac21305cf1e95782082 100644 (file)
@@ -147,7 +147,7 @@ void player_anim ()
                deadbits = 0;
        }
        int animbits = deadbits;
-       if(self.frozen)
+       if(STAT(FROZEN, self))
                animbits |= ANIMSTATE_FROZEN;
        if(self.movetype == MOVETYPE_FOLLOW)
                animbits |= ANIMSTATE_FOLLOW;
index b8e396682f43e41c001698515cf16f6e7c1bf48a..bdfbd4e199238f9aeb3c16d1fc15365e4b6e0015 100644 (file)
@@ -377,7 +377,7 @@ void CommonCommand_editmob(int request, entity caller, int argc)
                                        if (!IS_PLAYER(caller)) { print_to(caller, "You must be playing to spawn a monster"); return; }
                                        if (MUTATOR_CALLHOOK(AllowMobSpawning)) { print_to(caller, ret_string); return; }
                                        if (caller.vehicle) { print_to(caller, "You can't spawn monsters while driving a vehicle"); return; }
-                                       if (caller.frozen) { print_to(caller, "You can't spawn monsters while frozen"); return; }
+                                       if (STAT(FROZEN, caller)) { print_to(caller, "You can't spawn monsters while frozen"); return; }
                                        if (IS_DEAD(caller)) { print_to(caller, "You can't spawn monsters while dead"); return; }
                                        if (tmp_moncount >= autocvar_g_monsters_max) { print_to(caller, "The maximum monster count has been reached"); return; }
                                        if (tmp_moncount >= autocvar_g_monsters_max_perplayer) { print_to(caller, "You can't spawn any more monsters"); return; }
index 2053d74ea99f7e3026b5a6bac1e406215e44c1dc..76f08bdc9f4453f56e471406bc6b2cd92f6ab61c 100644 (file)
@@ -356,7 +356,7 @@ void reset_map(bool dorespawn)
                if (it.reset2) WITH(entity, self, it, it.reset2());
        ));
 
-       FOREACH_CLIENT(IS_PLAYER(it) && it.frozen, LAMBDA(WITH(entity, self, it, Unfreeze(it))));
+       FOREACH_CLIENT(IS_PLAYER(it) && STAT(FROZEN, it), LAMBDA(WITH(entity, self, it, Unfreeze(it))));
 
        // Moving the player reset code here since the player-reset depends
        // on spawnpoint entities which have to be reset first --blub
index 61ece1f59c9b05daf250ba25378979f91c0e53a5..32cd8c18450b5fbed3ddf73c7804406500926b17 100644 (file)
@@ -496,7 +496,7 @@ void Obituary(entity attacker, entity inflictor, entity targ, int deathtype)
 
 void Ice_Think()
 {SELFPARAM();
-       if(!self.owner.frozen || self.owner.iceblock != self)
+       if(!STAT(FROZEN, self.owner) || self.owner.iceblock != self)
        {
                remove(self);
                return;
@@ -510,12 +510,12 @@ void Freeze (entity targ, float freeze_time, float frozen_type, float show_waypo
        if(!IS_PLAYER(targ) && !IS_MONSTER(targ)) // only specified entities can be freezed
                return;
 
-       if(targ.frozen)
+       if(STAT(FROZEN, targ))
                return;
 
        float targ_maxhealth = ((IS_MONSTER(targ)) ? targ.max_health : start_health);
 
-       targ.frozen = frozen_type;
+       STAT(FROZEN, targ) = frozen_type;
        targ.revive_progress = ((frozen_type == 3) ? 1 : 0);
        targ.health = ((frozen_type == 3) ? targ_maxhealth : 1);
        targ.revive_speed = freeze_time;
@@ -547,13 +547,13 @@ void Freeze (entity targ, float freeze_time, float frozen_type, float show_waypo
 
 void Unfreeze (entity targ)
 {
-       if(!targ.frozen)
+       if(!STAT(FROZEN, targ))
                return;
 
-       if(targ.frozen && targ.frozen != 3) // only reset health if target was frozen
+       if(STAT(FROZEN, targ) && STAT(FROZEN, targ) != 3) // only reset health if target was frozen
                targ.health = ((IS_PLAYER(targ)) ? start_health : targ.max_health);
 
-       targ.frozen = 0;
+       STAT(FROZEN, targ) = 0;
        targ.revive_progress = 0;
        targ.revival_time = time;
        self.bot_attack = true;
@@ -696,7 +696,7 @@ void Damage (entity targ, entity inflictor, entity attacker, float damage, int d
                mirrordamage = frag_mirrordamage;
                force = frag_force;
 
-               if(targ.frozen)
+               if(STAT(FROZEN, targ))
                if(deathtype != DEATH_HURTTRIGGER.m_id && deathtype != DEATH_TEAMCHANGE.m_id && deathtype != DEATH_AUTOTEAMCHANGE.m_id)
                {
                        if(autocvar_g_frozen_revive_falldamage > 0)
@@ -714,7 +714,7 @@ void Damage (entity targ, entity inflictor, entity attacker, float damage, int d
                        force *= autocvar_g_frozen_force;
                }
 
-               if(targ.frozen && deathtype == DEATH_HURTTRIGGER.m_id && !autocvar_g_frozen_damage_trigger)
+               if(STAT(FROZEN, targ) && deathtype == DEATH_HURTTRIGGER.m_id && !autocvar_g_frozen_damage_trigger)
                {
                        Send_Effect(EFFECT_TELEPORT, targ.origin, '0 0 0', 1);
 
@@ -791,7 +791,7 @@ void Damage (entity targ, entity inflictor, entity attacker, float damage, int d
 
                        if(IS_PLAYER(victim) || (IS_TURRET(victim) && victim.active == ACTIVE_ACTIVE) || IS_MONSTER(victim) || MUTATOR_CALLHOOK(PlayHitsound, victim))
                        {
-                               if(DIFF_TEAM(victim, attacker) && !victim.frozen)
+                               if(DIFF_TEAM(victim, attacker) && !STAT(FROZEN, victim))
                                {
                                        if(damage > 0)
                                        {
@@ -1211,7 +1211,7 @@ void Fire_ApplyDamage(entity e)
                e.fire_endtime = 0;
 
        // ice stops fire
-       if(e.frozen)
+       if(STAT(FROZEN, e))
                e.fire_endtime = 0;
 
        t = min(frametime, e.fire_endtime - time);
@@ -1228,7 +1228,7 @@ void Fire_ApplyDamage(entity e)
        e.fire_hitsound = true;
 
        if(!IS_INDEPENDENT_PLAYER(e))
-       if(!e.frozen)
+       if(!STAT(FROZEN, e))
                FOREACH_CLIENT(IS_PLAYER(it) && it != e, LAMBDA(
                        if(!IS_DEAD(it))
                        if(!IS_INDEPENDENT_PLAYER(it))
index 54cca3e95da7810c57b3a4990ba67db3d15160dd..e6c583baac580514c54f91bb745d93c7e20c077f 100644 (file)
@@ -240,7 +240,7 @@ void GrapplingHookThink()
                                        {
                                                entity aim_ent = ((IS_VEHICLE(self.aiment) && self.aiment.owner) ? self.aiment.owner : self.aiment);
                                                v = v - dv * 0.5;
-                                               if((frozen_pulling && self.aiment.frozen) || !frozen_pulling)
+                                               if((frozen_pulling && STAT(FROZEN, self.aiment)) || !frozen_pulling)
                                                {
                                                        self.aiment.velocity = self.aiment.velocity - dv * 0.5;
                                                        UNSET_ONGROUND(self.aiment);
@@ -261,7 +261,7 @@ void GrapplingHookThink()
                        if(!frozen_pulling && !(self.aiment.flags & FL_PROJECTILE))
                                pull_entity.velocity = WarpZone_RefSys_TransformVelocity(self, pull_entity, v * velocity_multiplier);
 
-                       if(frozen_pulling && autocvar_g_balance_grapplehook_pull_frozen == 2 && !self.aiment.frozen)
+                       if(frozen_pulling && autocvar_g_balance_grapplehook_pull_frozen == 2 && !STAT(FROZEN, self.aiment))
                        {
                                RemoveGrapplingHook(self.realowner);
                                return;
index a753ec102b7009adf7c8e9b966603785e903add4..589e172dd7a049b0aa4831c09571dab22c4cde6e 100644 (file)
@@ -1192,7 +1192,7 @@ METHOD(Flag, giveTo, bool(Flag this, entity flag, entity toucher))
        FOREACH_CLIENT(IS_PLAYER(it) && SAME_TEAM(toucher, it), LAMBDA(++num_perteam));
 
        // special touch behaviors
-       if(toucher.frozen) { return; }
+       if(STAT(FROZEN, toucher)) { return; }
        else if(IS_VEHICLE(toucher))
        {
                if(autocvar_g_ctf_allow_vehicle_touch && toucher.owner)
index 6f904a1c9487ad1c1fe7e59b2b44cb57d7644e95..a8287335a913b0995e3a9d87a64f1f226b44e773 100644 (file)
@@ -74,10 +74,10 @@ void freezetag_count_alive_players()
        FOREACH_CLIENT(IS_PLAYER(it), LAMBDA(
                switch(it.team)
                {
-                       case NUM_TEAM_1: ++total_players; if(it.health >= 1 && it.frozen != 1) ++redalive; break;
-                       case NUM_TEAM_2: ++total_players; if(it.health >= 1 && it.frozen != 1) ++bluealive; break;
-                       case NUM_TEAM_3: ++total_players; if(it.health >= 1 && it.frozen != 1) ++yellowalive; break;
-                       case NUM_TEAM_4: ++total_players; if(it.health >= 1 && it.frozen != 1) ++pinkalive; break;
+                       case NUM_TEAM_1: ++total_players; if(it.health >= 1 && STAT(FROZEN, it) != 1) ++redalive; break;
+                       case NUM_TEAM_2: ++total_players; if(it.health >= 1 && STAT(FROZEN, it) != 1) ++bluealive; break;
+                       case NUM_TEAM_3: ++total_players; if(it.health >= 1 && STAT(FROZEN, it) != 1) ++yellowalive; break;
+                       case NUM_TEAM_4: ++total_players; if(it.health >= 1 && STAT(FROZEN, it) != 1) ++pinkalive; break;
                }
        ));
        FOREACH_CLIENT(IS_REAL_CLIENT(it), LAMBDA(
@@ -188,7 +188,7 @@ entity freezetag_LastPlayerForTeam()
        entity last_pl = world;
        FOREACH_CLIENT(IS_PLAYER(it) && it != self, LAMBDA(
                if(it.health >= 1)
-               if(!it.frozen)
+               if(!STAT(FROZEN, it))
                if(SAME_TEAM(it, self))
                if(!last_pl)
                        last_pl = it;
@@ -229,7 +229,7 @@ void freezetag_Add_Score(entity attacker)
 
 void freezetag_Freeze(entity attacker)
 {SELFPARAM();
-       if(self.frozen)
+       if(STAT(FROZEN, self))
                return;
 
        if(autocvar_g_freezetag_frozen_maxtime > 0)
@@ -252,7 +252,7 @@ void freezetag_Unfreeze(entity attacker)
 
 float freezetag_isEliminated(entity e)
 {
-       if(IS_PLAYER(e) && (e.frozen == 1 || IS_DEAD(e)))
+       if(IS_PLAYER(e) && (STAT(FROZEN, e) == 1 || IS_DEAD(e)))
                return true;
        return false;
 }
@@ -270,7 +270,7 @@ void havocbot_goalrating_freeplayers(float ratingscale, vector org, float sradiu
        float distance;
 
        FOREACH_CLIENT(IS_PLAYER(it) && it != self && SAME_TEAM(it, self), LAMBDA(
-               if (it.frozen == 1)
+               if (STAT(FROZEN, it) == 1)
                {
                        distance = vlen(it.origin - org);
                        if (distance > sradius)
@@ -296,10 +296,10 @@ void havocbot_role_ft_offense()
 
        // Count how many players on team are unfrozen.
        int unfrozen = 0;
-       FOREACH_CLIENT(IS_PLAYER(it) && SAME_TEAM(it, self) && !(it.frozen != 1), LAMBDA(unfrozen++));
+       FOREACH_CLIENT(IS_PLAYER(it) && SAME_TEAM(it, self) && !(STAT(FROZEN, it) != 1), LAMBDA(unfrozen++));
 
        // If only one left on team or if role has timed out then start trying to free players.
-       if (((unfrozen == 0) && (!self.frozen)) || (time > self.havocbot_role_timeout))
+       if (((unfrozen == 0) && (!STAT(FROZEN, self))) || (time > self.havocbot_role_timeout))
        {
                LOG_TRACE("changing role to freeing\n");
                self.havocbot_role = havocbot_role_ft_freeing;
@@ -357,7 +357,7 @@ void havocbot_role_ft_freeing()
 void ft_RemovePlayer()
 {SELFPARAM();
        self.health = 0; // neccessary to update correctly alive stats
-       if(!self.frozen)
+       if(!STAT(FROZEN, self))
                freezetag_LastPlayerForTeam_Notify();
        freezetag_Unfreeze(world);
        freezetag_count_alive_players();
@@ -380,7 +380,7 @@ MUTATOR_HOOKFUNCTION(ft, PlayerDies)
        if(round_handler_IsActive())
        if(round_handler_CountdownRunning())
        {
-               if(self.frozen)
+               if(STAT(FROZEN, self))
                        freezetag_Unfreeze(world);
                freezetag_count_alive_players();
                return 1; // let the player die so that he can respawn whenever he wants
@@ -392,7 +392,7 @@ MUTATOR_HOOKFUNCTION(ft, PlayerDies)
                || frag_deathtype == DEATH_TEAMCHANGE.m_id || frag_deathtype == DEATH_AUTOTEAMCHANGE.m_id)
        {
                // let the player die, he will be automatically frozen when he respawns
-               if(self.frozen != 1)
+               if(STAT(FROZEN, self) != 1)
                {
                        freezetag_Add_Score(frag_attacker);
                        freezetag_count_alive_players();
@@ -405,7 +405,7 @@ MUTATOR_HOOKFUNCTION(ft, PlayerDies)
                return 1;
        }
 
-       if(self.frozen)
+       if(STAT(FROZEN, self))
                return 1;
 
        freezetag_Freeze(frag_attacker);
@@ -476,7 +476,7 @@ MUTATOR_HOOKFUNCTION(ft, PlayerPreThink, CBC_ORDER_FIRST)
        if(gameover)
                return 1;
 
-       if(self.frozen == 1)
+       if(STAT(FROZEN, self) == 1)
        {
                // keep health = 1
                self.pauseregen_finished = time + autocvar_g_balance_pause_health_regen;
@@ -490,7 +490,7 @@ MUTATOR_HOOKFUNCTION(ft, PlayerPreThink, CBC_ORDER_FIRST)
 
        entity o;
        o = world;
-       //if(self.frozen)
+       //if(STAT(FROZEN, self))
        //if(self.freezetag_frozen_timeout > 0 && time < self.freezetag_frozen_timeout)
                //self.iceblock.alpha = ICE_MIN_ALPHA + (ICE_MAX_ALPHA - ICE_MIN_ALPHA) * (self.freezetag_frozen_timeout - time) / (self.freezetag_frozen_timeout - self.freezetag_frozen_time);
 
@@ -501,14 +501,14 @@ MUTATOR_HOOKFUNCTION(ft, PlayerPreThink, CBC_ORDER_FIRST)
                vector revive_extra_size = '1 1 1' * autocvar_g_freezetag_revive_extra_size;
                n = 0;
                FOREACH_CLIENT(IS_PLAYER(it) && it != self, LAMBDA(
-                       if(it.frozen == 0)
+                       if(STAT(FROZEN, it) == 0)
                        if(!IS_DEAD(it))
                        if(SAME_TEAM(it, self))
                        if(boxesoverlap(self.absmin - revive_extra_size, self.absmax + revive_extra_size, it.absmin, it.absmax))
                        {
                                if(!o)
                                        o = it;
-                               if(self.frozen == 1)
+                               if(STAT(FROZEN, self) == 1)
                                        it.reviving = true;
                                ++n;
                        }
@@ -516,7 +516,7 @@ MUTATOR_HOOKFUNCTION(ft, PlayerPreThink, CBC_ORDER_FIRST)
 
        }
 
-       if(n && self.frozen == 1) // OK, there is at least one teammate reviving us
+       if(n && STAT(FROZEN, self) == 1) // OK, there is at least one teammate reviving us
        {
                self.revive_progress = bound(0, self.revive_progress + frametime * max(1/60, autocvar_g_freezetag_revive_speed), 1);
                self.health = max(1, self.revive_progress * ((warmup_stage) ? warmup_start_health : start_health));
@@ -550,12 +550,12 @@ MUTATOR_HOOKFUNCTION(ft, PlayerPreThink, CBC_ORDER_FIRST)
                        it.reviving = false;
                ));
        }
-       else if(!n && self.frozen == 1) // only if no teammate is nearby will we reset
+       else if(!n && STAT(FROZEN, self) == 1) // only if no teammate is nearby will we reset
        {
                self.revive_progress = bound(0, self.revive_progress - frametime * autocvar_g_freezetag_revive_clearspeed, 1);
                self.health = max(1, self.revive_progress * ((warmup_stage) ? warmup_start_health : start_health));
        }
-       else if(!n && !self.frozen)
+       else if(!n && !STAT(FROZEN, self))
        {
                self.revive_progress = 0; // thawing nobody
        }
index 9925cf5cafb313ae726eb73f084752118e52cb7a..8659a98070255d2c009b7966a266fac12a696815 100644 (file)
@@ -133,7 +133,7 @@ void ka_TouchEvent() // runs any time that the ball comes in contact with someth
                return;
        }
        if(IS_DEAD(other)) { return; }
-       if(other.frozen) { return; }
+       if(STAT(FROZEN, other)) { return; }
        if (!IS_PLAYER(other))
        {  // The ball just touched an object, most likely the world
                Send_Effect(EFFECT_BALL_SPARKS, self.origin, '0 0 0', 1);
index 17bf1221890cde38edf309debefab72a3070fce4..944811029bb5abfdda7384fda8ebe002d01d7308 100644 (file)
@@ -94,7 +94,7 @@ bool accuracy_isgooddamage(entity attacker, entity targ)
 
        if (warmup_stage) return false;
        if (IS_DEAD(targ)) return false;
-       if (targ.frozen) return false;
+       if (STAT(FROZEN, targ)) return false;
        if (SAME_TEAM(attacker, targ)) return false;
 
        if (mutator_check == MUT_ACCADD_INVALID) return true;
index c6a8faeb2f3d8a0534f5510ac4cada1fe791bb4c..d58e19148ca4872ca9df61eab68a64c6ef1e2b16 100644 (file)
@@ -402,7 +402,7 @@ bool forbidWeaponUse(entity player)
        if (time < game_starttime && !autocvar_sv_ready_restart_after_countdown) return true;
        if (round_handler_IsActive() && !round_handler_IsRoundStarted()) return true;
        if (player.player_blocked) return true;
-       if (player.frozen) return true;
+       if (STAT(FROZEN, player)) return true;
        if (player.weapon_blocked) return true;
        return false;
 }