]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/server/waypointsprites.qc
Fix a bug in CA where if the round starts with one player in each team and one player...
[xonotic/xonotic-data.pk3dir.git] / qcsrc / server / waypointsprites.qc
index eccc6cdf27e055b147ea88de221af3bd299dc201..836a853570bef941b74612a13d03d84e2d774cfc 100644 (file)
@@ -82,6 +82,7 @@ void WaypointSprite_UpdateTeamRadar(entity e, float icon, vector col)
 }
 
 .float waypointsprite_pingtime;
+.float waypointsprite_helpmetime;
 void WaypointSprite_Ping(entity e)
 {
        // anti spam
@@ -93,6 +94,15 @@ void WaypointSprite_Ping(entity e)
        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)
@@ -115,7 +125,6 @@ void WaypointSprite_FadeOutIn(entity e, float t)
        e.SendFlags |= 16;
 }
 
-float waypointsprite_limitedrange, waypointsprite_deployed_lifetime, waypointsprite_deadlifetime;
 void WaypointSprite_Init()
 {
        waypointsprite_limitedrange = autocvar_g_waypointsprite_limitedrange;
@@ -280,6 +289,13 @@ float WaypointSprite_SendEntity(entity to, float sendflags)
                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;
@@ -344,10 +360,11 @@ entity WaypointSprite_SpawnFixed(
        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;