}
}
+.float last_respawn;
void ctf_RespawnFlag(entity flag)
{
+ // check for flag respawn being called twice in a row
+ if(flag.last_respawn > time - 0.5)
+ { backtrace("flag respawn called twice quickly!"); }
+
+ flag.last_respawn = time;
+
// reset the player (if there is one)
if((flag.owner) && (flag.owner.flagcarried == flag))
{
else if(frag_target.flagcarried && (frag_target.deadflag == DEAD_NO) && IsDifferentTeam(frag_target, frag_attacker)) // if the target is a flagcarrier
{
if(autocvar_g_ctf_flagcarrier_auto_helpme_when_damaged > ('1 0 0' * healtharmor_maxdamage(frag_target.health, frag_target.armorvalue, autocvar_g_balance_armor_blockpercent)))
- WaypointSprite_HelpMePing(frag_target.wps_flagcarrier); // TODO: only do this if there is a significant loss of health?
+ WaypointSprite_HelpMePing(frag_target.wps_flagcarrier);
}
return FALSE;
}