]> git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/server/generator.qc
Add a new model for tarbaby
[xonotic/xonotic-data.pk3dir.git] / qcsrc / server / generator.qc
index aaac33a5fe86afb8db91d99a675d332f8aaf3930..891b82039063b0485a658237701088acd2698cd9 100644 (file)
@@ -1,10 +1,13 @@
 #ifdef CSQC
+float generator_precached;
+
 void generator_precache()
 {
+       if(generator_precached)
+               return; // already precached
+               
        precache_model("models/onslaught/generator.md3");
        precache_model("models/onslaught/generator_dead.md3");
-       precache_sound("onslaught/generator_underattack.wav");
-       
        precache_model("models/onslaught/generator_dmg1.md3");
        precache_model("models/onslaught/generator_dmg2.md3");
        precache_model("models/onslaught/generator_dmg3.md3");
@@ -15,6 +18,8 @@ void generator_precache()
        precache_model("models/onslaught/generator_dmg8.md3");
        precache_model("models/onslaught/generator_dmg9.md3");
        precache_model("models/onslaught/generator_dead.md3");
+       
+       generator_precached = TRUE;
 }
 
 void generator_draw() { } // TODO
@@ -42,6 +47,8 @@ void generator_damage(float hp)
                setmodel(self, "models/onslaught/generator_dmg2.md3");
        else if(hp < self.max_health * 0.90)
                setmodel(self, "models/onslaught/generator_dmg1.md3");
+       else if(hp <= self.max_health || hp >= self.max_health)
+               setmodel(self, "models/onslaught/generator.md3");
                
        setsize(self, GENERATOR_MIN, GENERATOR_MAX);
 }
@@ -66,34 +73,9 @@ void generator_construct()
 
 .vector glowmod;
 void generator_changeteam()
-{      
-       switch(self.team - 1)
-       {
-               case NUM_TEAM_1: // Red
-               {
-                       self.glowmod = '2 0 0';
-                       self.teamradar_color = '1 0 0';
-                       break;
-               }
-               case NUM_TEAM_2: // Blue
-               {
-                       self.glowmod = '0 0 2';
-                       self.teamradar_color = '0 0 1';
-                       break;
-               }
-               case NUM_TEAM_3: // Yellow
-               {
-                       self.glowmod = '1 1 0';
-                       self.teamradar_color = '1 1 0';
-                       break;
-               }
-               case NUM_TEAM_4: // Pink
-               {
-                       self.glowmod = '1 0 1';
-                       self.teamradar_color = '1 0 1';
-                       break;
-               }
-       }
+{
+       self.glowmod = Team_ColorRGB(self.team - 1);
+       self.teamradar_color = Team_ColorRGB(self.team - 1);
        
        if(self.team)
                self.colormap = 1024 + (self.team - 1) * 17;