From: Mario Date: Fri, 1 Jan 2016 11:15:28 +0000 (+1000) Subject: Use STAT(FROZEN, e) instead of e.frozen X-Git-Tag: xonotic-v0.8.2~1330 X-Git-Url: https://git.rm.cloudns.org/?a=commitdiff_plain;h=77e31eddd2bfdf218d5b2199c12ad43553094cbb;p=xonotic%2Fxonotic-data.pk3dir.git Use STAT(FROZEN, e) instead of e.frozen --- diff --git a/qcsrc/common/gamemodes/gamemode/nexball/nexball.qc b/qcsrc/common/gamemodes/gamemode/nexball/nexball.qc index d8be44d0d..90de6aea7 100644 --- a/qcsrc/common/gamemodes/gamemode/nexball/nexball.qc +++ b/qcsrc/common/gamemodes/gamemode/nexball/nexball.qc @@ -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); diff --git a/qcsrc/common/gamemodes/gamemode/onslaught/onslaught.qc b/qcsrc/common/gamemodes/gamemode/onslaught/onslaught.qc index d75003346..7cdefd906 100644 --- a/qcsrc/common/gamemodes/gamemode/onslaught/onslaught.qc +++ b/qcsrc/common/gamemodes/gamemode/onslaught/onslaught.qc @@ -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); diff --git a/qcsrc/common/monsters/monster/mage.qc b/qcsrc/common/monsters/monster/mage.qc index 14d30cd27..2541de0a9 100644 --- a/qcsrc/common/monsters/monster/mage.qc +++ b/qcsrc/common/monsters/monster/mage.qc @@ -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); diff --git a/qcsrc/common/monsters/sv_monsters.qc b/qcsrc/common/monsters/sv_monsters.qc index 684d1615f..f0c8c0833 100644 --- a/qcsrc/common/monsters/sv_monsters.qc +++ b/qcsrc/common/monsters/sv_monsters.qc @@ -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... diff --git a/qcsrc/common/mutators/mutator/buffs/buffs.qc b/qcsrc/common/mutators/mutator/buffs/buffs.qc index e16dc8f93..889b0db2f 100644 --- a/qcsrc/common/mutators/mutator/buffs/buffs.qc +++ b/qcsrc/common/mutators/mutator/buffs/buffs.qc @@ -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) { diff --git a/qcsrc/common/mutators/mutator/campcheck/campcheck.qc b/qcsrc/common/mutators/mutator/campcheck/campcheck.qc index 0c4a88d61..01d388577 100644 --- a/qcsrc/common/mutators/mutator/campcheck/campcheck.qc +++ b/qcsrc/common/mutators/mutator/campcheck/campcheck.qc @@ -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) { diff --git a/qcsrc/common/mutators/mutator/nades/nades.qc b/qcsrc/common/mutators/mutator/nades/nades.qc index 6b0b1f5a3..387a95d89 100644 --- a/qcsrc/common/mutators/mutator/nades/nades.qc +++ b/qcsrc/common/mutators/mutator/nades/nades.qc @@ -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) diff --git a/qcsrc/common/mutators/mutator/overkill/overkill.qc b/qcsrc/common/mutators/mutator/overkill/overkill.qc index 758437ef0..3645053c3 100644 --- a/qcsrc/common/mutators/mutator/overkill/overkill.qc +++ b/qcsrc/common/mutators/mutator/overkill/overkill.qc @@ -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) diff --git a/qcsrc/common/mutators/mutator/spawn_near_teammate/spawn_near_teammate.qc b/qcsrc/common/mutators/mutator/spawn_near_teammate/spawn_near_teammate.qc index 80bf57a3e..51c598f17 100644 --- a/qcsrc/common/mutators/mutator/spawn_near_teammate/spawn_near_teammate.qc +++ b/qcsrc/common/mutators/mutator/spawn_near_teammate/spawn_near_teammate.qc @@ -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); diff --git a/qcsrc/common/mutators/mutator/touchexplode/touchexplode.qc b/qcsrc/common/mutators/mutator/touchexplode/touchexplode.qc index d7ba22216..56fc45736 100644 --- a/qcsrc/common/mutators/mutator/touchexplode/touchexplode.qc +++ b/qcsrc/common/mutators/mutator/touchexplode/touchexplode.qc @@ -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)) diff --git a/qcsrc/common/mutators/mutator/vampirehook/vampirehook.qc b/qcsrc/common/mutators/mutator/vampirehook/vampirehook.qc index f669f6a96..d2ba668e5 100644 --- a/qcsrc/common/mutators/mutator/vampirehook/vampirehook.qc +++ b/qcsrc/common/mutators/mutator/vampirehook/vampirehook.qc @@ -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) diff --git a/qcsrc/common/t_items.qc b/qcsrc/common/t_items.qc index f78c8d134..936788178 100644 --- a/qcsrc/common/t_items.qc +++ b/qcsrc/common/t_items.qc @@ -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) diff --git a/qcsrc/common/turrets/sv_turrets.qc b/qcsrc/common/turrets/sv_turrets.qc index 02655d6b2..1ca91e0a8 100644 --- a/qcsrc/common/turrets/sv_turrets.qc +++ b/qcsrc/common/turrets/sv_turrets.qc @@ -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 diff --git a/qcsrc/common/vehicles/sv_vehicles.qc b/qcsrc/common/vehicles/sv_vehicles.qc index c72c60807..6b2f32881 100644 --- a/qcsrc/common/vehicles/sv_vehicles.qc +++ b/qcsrc/common/vehicles/sv_vehicles.qc @@ -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; } diff --git a/qcsrc/common/weapons/weapon/arc.qc b/qcsrc/common/weapons/weapon/arc.qc index f34006b67..e21df3699 100644 --- a/qcsrc/common/weapons/weapon/arc.qc +++ b/qcsrc/common/weapons/weapon/arc.qc @@ -245,7 +245,7 @@ void W_Arc_Beam_Think() || (!self.owner.BUTTON_ATCK && !burst ) || - self.owner.frozen + STAT(FROZEN, self.owner) || self.owner.vehicle || diff --git a/qcsrc/common/weapons/weapon/minelayer.qc b/qcsrc/common/weapons/weapon/minelayer.qc index 872568817..029ce460f 100644 --- a/qcsrc/common/weapons/weapon/minelayer.qc +++ b/qcsrc/common/weapons/weapon/minelayer.qc @@ -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) { diff --git a/qcsrc/server/bot/aim.qc b/qcsrc/server/bot/aim.qc index d8d7d1b92..069265937 100644 --- a/qcsrc/server/bot/aim.qc +++ b/qcsrc/server/bot/aim.qc @@ -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; diff --git a/qcsrc/server/cl_client.qc b/qcsrc/server/cl_client.qc index 637530cbf..20068e013 100644 --- a/qcsrc/server/cl_client.qc +++ b/qcsrc/server/cl_client.qc @@ -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 diff --git a/qcsrc/server/cl_player.qc b/qcsrc/server/cl_player.qc index e194b026f..9449ada41 100644 --- a/qcsrc/server/cl_player.qc +++ b/qcsrc/server/cl_player.qc @@ -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; diff --git a/qcsrc/server/command/common.qc b/qcsrc/server/command/common.qc index b8e396682..bdfbd4e19 100644 --- a/qcsrc/server/command/common.qc +++ b/qcsrc/server/command/common.qc @@ -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; } diff --git a/qcsrc/server/command/vote.qc b/qcsrc/server/command/vote.qc index 2053d74ea..76f08bdc9 100644 --- a/qcsrc/server/command/vote.qc +++ b/qcsrc/server/command/vote.qc @@ -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 diff --git a/qcsrc/server/g_damage.qc b/qcsrc/server/g_damage.qc index 61ece1f59..32cd8c184 100644 --- a/qcsrc/server/g_damage.qc +++ b/qcsrc/server/g_damage.qc @@ -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)) diff --git a/qcsrc/server/g_hook.qc b/qcsrc/server/g_hook.qc index 54cca3e95..e6c583baa 100644 --- a/qcsrc/server/g_hook.qc +++ b/qcsrc/server/g_hook.qc @@ -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; diff --git a/qcsrc/server/mutators/mutator/gamemode_ctf.qc b/qcsrc/server/mutators/mutator/gamemode_ctf.qc index a753ec102..589e172dd 100644 --- a/qcsrc/server/mutators/mutator/gamemode_ctf.qc +++ b/qcsrc/server/mutators/mutator/gamemode_ctf.qc @@ -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) diff --git a/qcsrc/server/mutators/mutator/gamemode_freezetag.qc b/qcsrc/server/mutators/mutator/gamemode_freezetag.qc index 6f904a1c9..a8287335a 100644 --- a/qcsrc/server/mutators/mutator/gamemode_freezetag.qc +++ b/qcsrc/server/mutators/mutator/gamemode_freezetag.qc @@ -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 } diff --git a/qcsrc/server/mutators/mutator/gamemode_keepaway.qc b/qcsrc/server/mutators/mutator/gamemode_keepaway.qc index 9925cf5ca..8659a9807 100644 --- a/qcsrc/server/mutators/mutator/gamemode_keepaway.qc +++ b/qcsrc/server/mutators/mutator/gamemode_keepaway.qc @@ -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); diff --git a/qcsrc/server/weapons/accuracy.qc b/qcsrc/server/weapons/accuracy.qc index 17bf12218..944811029 100644 --- a/qcsrc/server/weapons/accuracy.qc +++ b/qcsrc/server/weapons/accuracy.qc @@ -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; diff --git a/qcsrc/server/weapons/weaponsystem.qc b/qcsrc/server/weapons/weaponsystem.qc index c6a8faeb2..d58e19148 100644 --- a/qcsrc/server/weapons/weaponsystem.qc +++ b/qcsrc/server/weapons/weaponsystem.qc @@ -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; }