WriteByte(MSG_ENTITY, sendflags);
WriteByte(MSG_ENTITY, self.wp_extra);
+ int f = 0;
+ if(self.currentammo)
+ f |= 1; // hideable
+ if(self.exteriormodeltoclient == to)
+ f |= 2; // my own
+
+ MUTATOR_CALLHOOK(SendWaypoint, this, to, sendflags, f);
+
if (sendflags & 0x80)
{
if (self.max_health)
WriteCoord(MSG_ENTITY, self.fade_time);
WriteCoord(MSG_ENTITY, self.teleport_time);
WriteShort(MSG_ENTITY, self.fade_rate); // maxdist
- 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);
}
MUTATOR_HOOKABLE(AllowMobButcher, EV_NO_ARGS);
MUTATOR_HOOKABLE(ReadLevelCvars, EV_NO_ARGS);
+
+#define EV_SendWaypoint(i, o) \
+ /**/ i(entity, __self) \
+ /**/ i(entity, wp_sendto) \
+ /**/ i(int, wp_sendflags) \
+ /**/ i(int, wp_flag) \
+ /**/
+entity wp_sendto;
+int wp_sendflags;
+int wp_flag;
+MUTATOR_HOOKABLE(SendWaypoint, EV_SendWaypoint);
#endif
|| (frag_victim.classname == "onslaught_controlpoint_icon" && !frag_victim.owner.isshielded);
}
+MUTATOR_HOOKFUNCTION(ons, SendWaypoint)
+{
+ if(wp_sendflags & 16)
+ {
+ if(self.owner.classname == "onslaught_controlpoint")
+ {
+ entity wp_owner = self.owner;
+ entity e = WaypointSprite_getviewentity(wp_sendto);
+ if(SAME_TEAM(e, wp_owner) && wp_owner.goalentity.health >= wp_owner.goalentity.max_health) { wp_flag |= 2; }
+ if(!ons_ControlPoint_Attackable(wp_owner, e.team)) { wp_flag |= 2; }
+ }
+ if(self.owner.classname == "onslaught_generator")
+ {
+ entity wp_owner = self.owner;
+ if(wp_owner.isshielded && wp_owner.health >= wp_owner.max_health) { wp_flag |= 2; }
+ if(wp_owner.health <= 0) { wp_flag |= 2; }
+ }
+ }
+
+ return false;
+}
+
// ==========
// Spawnfuncs
// ==========