// team waypoints
if(self.rule == SPRITERULE_SPECTATOR)
{
+ if(!autocvar_sv_itemstime)
+ return FALSE;
if(!warmup_stage && e.classname == "player")
return FALSE;
}
// this is not in SendEntity because it shall run every frame, not just every update
// make spectators see what the player would see
- entity e;
- e = WaypointSprite_getviewentity(other);
+ entity e = WaypointSprite_getviewentity(other);
- if(MUTATOR_CALLHOOK(CustomizeWaypoint))
+ if(MUTATOR_CALLHOOK(CustomizeWaypoint, self, other))
return false;
return self.waypointsprite_visible_for_player(e);
WriteCoord(MSG_ENTITY, self.fade_time);
WriteCoord(MSG_ENTITY, self.teleport_time);
WriteShort(MSG_ENTITY, self.fade_rate); // maxdist
- float f;
- f = 0;
+ float f = 0;
if(self.currentammo)
f |= 1; // hideable
if(self.exteriormodeltoclient == to)
f |= 2; // my own
+ if(g_onslaught)
+ {
+ if(self.owner.classname == "onslaught_controlpoint")
+ {
+ entity wp_owner = self.owner;
+ entity e = WaypointSprite_getviewentity(to);
+ if(SAME_TEAM(e, wp_owner) && wp_owner.goalentity.health >= wp_owner.goalentity.max_health) { f |= 2; }
+ if(!ons_ControlPoint_Attackable(wp_owner, e.team)) { f |= 2; }
+ }
+ if(self.owner.classname == "onslaught_generator")
+ {
+ entity wp_owner = self.owner;
+ if(wp_owner.isshielded && wp_owner.health >= wp_owner.max_health) { f |= 2; }
+ if(wp_owner.health <= 0) { f |= 2; }
+ }
+ }
WriteByte(MSG_ENTITY, f);
}