]> git.rm.cloudns.org Git - xonotic/xonotic-data.pk3dir.git/commitdiff
Fix generators not updating team colors on first load
authorMario <mario.mario@y7mail.com>
Sat, 18 May 2013 07:44:04 +0000 (17:44 +1000)
committerMario <mario.mario@y7mail.com>
Sat, 18 May 2013 07:44:04 +0000 (17:44 +1000)
qcsrc/server/generator.qc
qcsrc/server/mutators/gamemode_towerdefense.qc

index 1588aef6b61e040d3681ba27c52b19bb5421168c..62fd76e9a6f9e4bf6f8bb5b5e80d4b21146a1b29 100644 (file)
@@ -257,11 +257,18 @@ void generator_construct()
 .vector glowmod;
 void generator_changeteam()
 {
-       self.glowmod = Team_ColorRGB(self.team - 1);
-       self.teamradar_color = Team_ColorRGB(self.team - 1);
-       
        if(self.team)
+       {
+               self.glowmod = Team_ColorRGB(self.team - 1);
+               self.teamradar_color = Team_ColorRGB(self.team - 1);
                self.colormap = 1024 + (self.team - 1) * 17;
+       }
+       else
+       {
+               self.colormap = 1024;
+               self.glowmod = '1 1 0';
+               self.teamradar_color = '1 1 0';
+       }
 }
 
 void ent_generator()
@@ -279,14 +286,14 @@ void ent_generator()
                self.health = ReadByte();
                self.max_health = ReadByte();
                self.count = ReadByte();
+               self.team = ReadByte();
                
                if not(self.count)
                        self.count = 40;
                
+               generator_changeteam();
                generator_precache();
                generator_construct();
-               self.colormap = 1024;
-               self.glowmod = '1 1 0'; 
        }
 
        if(sf & GSF_STATUS)
@@ -323,6 +330,7 @@ float generator_send(entity to, float sf)
                WriteByte(MSG_ENTITY, self.health);
                WriteByte(MSG_ENTITY, self.max_health);
                WriteByte(MSG_ENTITY, self.count);
+               WriteByte(MSG_ENTITY, self.team);
     }
     
     if(sf & GSF_STATUS)
index 29f316f13cb6d94cbd73470c9b72595fedad72a6..49f8e5b74c15d16610f40326a318ca2313671dab 100644 (file)
@@ -139,7 +139,6 @@ void td_generator_setup()
        self.event_damage       = td_generator_damage;
        self.movetype           = MOVETYPE_NONE;
        self.monster_attack     = TRUE;
-       self.SendFlags          = GSF_SETUP;
        self.netname            = "Generator";
        self.reset                      = func_null;
        
@@ -300,6 +299,13 @@ void spawn_td_fuel(float fuel_size)
        self.velocity = randomvec() * 175 + '0 0 325';
 }
 
+void td_generator_delayed()
+{
+       generator_link(td_generator_setup);
+       
+       self.SendFlags = GSF_SETUP;
+}
+
 // round handling
 #define TD_ALIVE_TEAMS() ((redalive > 0) + (bluealive > 0))
 #define TD_ALIVE_TEAMS_OK() (TD_ALIVE_TEAMS() == 2)
@@ -440,7 +446,7 @@ void spawnfunc_td_generator()
        setorigin(self, self.origin + '0 0 20');
        droptofloor();
        
-       generator_link(td_generator_setup);
+       InitializeEntity(self, td_generator_delayed, INITPRIO_LAST);
 }
 
 void spawnfunc_td_waypoint()