.float pain_frame; //"
.float crouch; // Crouching or not?
-.float strength_finished = _STAT(STRENGTH_FINISHED);
-.float invincible_finished = _STAT(INVINCIBLE_FINISHED);
.float superweapons_finished = _STAT(SUPERWEAPONS_FINISHED);
.float cnt; // used in too many places
.float dmgtime;
.float killcount;
-.float damage_dealt, typehitsound;
+.float damage_dealt, typehitsound, killsound;
.float watersound_finished;
.float iscreature;
// WEAPONTODO
.float autoswitch;
-bool client_hasweapon(entity this, Weapon wpn, float andammo, bool complain);
+bool client_hasweapon(entity this, Weapon wpn, .entity weaponentity, float andammo, bool complain);
void w_clear(Weapon thiswep, entity actor, .entity weaponentity, int fire);
void w_ready(Weapon thiswep, entity actor, .entity weaponentity, int fire);
// VorteX: standalone think for weapons, so normal think on weaponentity can be reserved by weaponflashes (which needs update even player dies)
void weapon_defaultspawnfunc(entity this, Weapon e);
-float gameover;
float intermission_running;
float intermission_exittime;
float alreadychangedlevel;
#else
#define ATTACK_FINISHED_FOR(ent, w, slot) ((ent).attack_finished_single[slot])
#endif
-#define ATTACK_FINISHED(ent, slot) ATTACK_FINISHED_FOR(ent, PS(ent).m_weapon.m_id, slot)
+#define ATTACK_FINISHED(ent, slot) ATTACK_FINISHED_FOR(ent, ent.(weaponentity).m_weapon.m_id, slot)
// assault game mode: Which team is attacking in this round?
float assault_attacker_team;
.float hit_time = _STAT(HIT_TIME);
.float typehit_time = _STAT(TYPEHIT_TIME);
+.float kill_time = _STAT(KILL_TIME);
.float damage_dealt_total = _STAT(DAMAGE_DEALT_TOTAL);
.float team_forced; // can be a team number to force a team, or 0 for default action, or -1 for forced spectator
.float player_blocked;
-.float weapon_blocked; // weapon use disabled
.float revive_progress = _STAT(REVIVE_PROGRESS);
.float revival_time; // time at which player was last revived