}
.float waypointsprite_pingtime;
+.float waypointsprite_helpmetime;
void WaypointSprite_Ping(entity e)
{
// anti spam
e.SendFlags |= 32;
}
+float waypointsprite_limitedrange, waypointsprite_deployed_lifetime, waypointsprite_deadlifetime;
+
+void WaypointSprite_HelpMePing(entity e)
+{
+ WaypointSprite_Ping(e);
+ e.waypointsprite_helpmetime = time + waypointsprite_deployed_lifetime;
+ e.SendFlags |= 32;
+}
+
void WaypointSprite_FadeOutIn(entity e, float t)
{
if(!e.fade_time)
e.SendFlags |= 16;
}
-float waypointsprite_limitedrange, waypointsprite_deployed_lifetime, waypointsprite_deadlifetime;
void WaypointSprite_Init()
{
waypointsprite_limitedrange = autocvar_g_waypointsprite_limitedrange;
WriteByte(MSG_ENTITY, self.colormod_x * 255.0);
WriteByte(MSG_ENTITY, self.colormod_y * 255.0);
WriteByte(MSG_ENTITY, self.colormod_z * 255.0);
+
+ dt = (self.waypointsprite_helpmetime - time) / 0.1;
+ if(dt < 0)
+ dt = 0;
+ if(dt > 255)
+ dt = 255;
+ WriteByte(MSG_ENTITY, dt);
}
return TRUE;
string spr,
vector ofs,
entity own,
- .entity ownfield
+ .entity ownfield,
+ float icon, vector rgb // initial icon and color
)
{
- return WaypointSprite_Spawn(spr, 0, 0, world, ofs, world, 0, own, ownfield, TRUE, 0, '0 0 0');
+ return WaypointSprite_Spawn(spr, 0, 0, world, ofs, world, 0, own, ownfield, TRUE, icon, rgb);
}
.entity waypointsprite_deployed_fixed;
.entity waypointsprite_deployed_personal;
entity WaypointSprite_DeployPersonal(
string spr,
- vector ofs
+ vector ofs,
+ float icon, vector rgb // initial icon and color
)
{
- return WaypointSprite_Spawn(spr, 0, 0, world, ofs, world, 0, self, waypointsprite_deployed_personal, FALSE, 0, '0 0 0');
+ return WaypointSprite_Spawn(spr, 0, 0, world, ofs, world, 0, self, waypointsprite_deployed_personal, FALSE, icon, rgb);
}
.entity waypointsprite_attached;
.entity waypointsprite_attachedforcarrier;
entity WaypointSprite_Attach(
string spr,
- float limited_range
+ float limited_range,
+ float icon, vector rgb // initial icon and color
)
{
float t, maxdistance;
maxdistance = waypointsprite_limitedrange;
else
maxdistance = 0;
- return WaypointSprite_Spawn(spr, waypointsprite_deployed_lifetime, maxdistance, self, '0 0 64', world, t, self, waypointsprite_attached, FALSE, RADARICON_NONE, '0 0 0');
+ return WaypointSprite_Spawn(spr, waypointsprite_deployed_lifetime, maxdistance, self, '0 0 64', world, t, self, waypointsprite_attached, FALSE, icon, rgb);
}
entity WaypointSprite_AttachCarrier(
string spr,
- entity carrier
+ entity carrier,
+ float icon, vector rgb // initial icon and color
)
{
entity e;
WaypointSprite_Kill(carrier.waypointsprite_attached); // FC overrides attached
- e = WaypointSprite_Spawn(spr, 0, 0, carrier, '0 0 64', world, carrier.team, carrier, waypointsprite_attachedforcarrier, FALSE, RADARICON_NONE, '0 0 0');
+ e = WaypointSprite_Spawn(spr, 0, 0, carrier, '0 0 64', world, carrier.team, carrier, waypointsprite_attachedforcarrier, FALSE, icon, rgb);
if(e)
{
WaypointSprite_UpdateMaxHealth(e, '1 0 0' * healtharmor_maxdamage(start_health, start_armorvalue, autocvar_g_balance_armor_blockpercent) * 2);