]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/client/monsters.qc
Don't align monster with ground
[xonotic/xonotic-data.pk3dir.git] / qcsrc / client / monsters.qc
index d5b7ca7f1875c8df2b559b1f88213ee4422b0dac..c3eef3c1666970e58083edd2c99de72128ac96d5 100644 (file)
@@ -19,14 +19,14 @@ void monster_precache(float _mid)
                        precache_model(ZOMBIE_MODEL);
                        break;
                }
-               case MONSTER_OGRE:
+               case MONSTER_BRUTE:
                {
-                       precache_model(OGRE_MODEL);
+                       precache_model(BRUTE_MODEL);
                        break;
                }
-               case MONSTER_DEMON:
+               case MONSTER_ANIMUS:
                {
-                       precache_model(DEMON_MODEL);
+                       precache_model(ANIMUS_MODEL);
                        break;
                }
                case MONSTER_SHAMBLER:
@@ -34,50 +34,40 @@ void monster_precache(float _mid)
                        precache_model(SHAMBLER_MODEL);
                        break;
                }
-               case MONSTER_KNIGHT:
-               {
-                       precache_model(KNIGHT_MODEL);
-                       break;
-               }
-               case MONSTER_MARINE:
+               case MONSTER_BRUISER:
                {
-                       precache_model(SOLDIER_MODEL);
-                       precache_sound("weapons/shotgun_fire.wav");
-                       precache_sound("weapons/uzi_fire.wav");
-                       precache_sound("weapons/laser_fire.wav");
-                       precache_sound("weapons/reload.wav");
-                       precache_model("models/weapons/v_seeker.md3");
+                       precache_model(BRUISER_MODEL);
                        break;
                }
-               case MONSTER_SCRAG:
+               case MONSTER_WYVERN:
                {
-                       precache_model(WIZARD_MODEL);
+                       precache_model(WYVERN_MODEL);
                        break;
                }
-               case MONSTER_DOG:
+               case MONSTER_CERBERUS:
                {
-                       precache_model(DOG_MODEL);
+                       precache_model(CERBERUS_MODEL);
                        break;
                }
-               case MONSTER_TARBABY:
+               case MONSTER_SLIME:
                {
-                       precache_model(TARBABY_MODEL);
+                       precache_model(SLIME_MODEL);
                        precache_sound("weapons/rocket_impact.wav");
                        break;
                }
-               case MONSTER_HELLKNIGHT:
+               case MONSTER_KNIGHT:
                {
-                       precache_model(HELLKNIGHT_MODEL);
+                       precache_model(KNIGHT_MODEL);
                        break;
                }
-               case MONSTER_FISH:
+               case MONSTER_STINGRAY:
                {
-                       precache_model(FISH_MODEL);
+                       precache_model(STINGRAY_MODEL);
                        break;
                }
                case MONSTER_MAGE:
                {
-                       precache_model(SHALRATH_MODEL);
+                       precache_model(MAGE_MODEL);
                        break;
                }
                case MONSTER_SPIDER:
@@ -86,14 +76,15 @@ void monster_precache(float _mid)
 
                        break;
                }
-    }    
+    }
+       
     monster_precached[_mid] = TRUE;
 }
 
 void Monsters_Precache()
 {
        float i;
-       for(i = MONSTER_FIRST; i <= MONSTER_LAST; ++i)
+       for(i = MONSTER_FIRST + 1; i < MONSTER_LAST; ++i)
                monster_precache(i);
 }
 
@@ -109,20 +100,21 @@ void monster_mid2info(float _mid)
                        mid2info_max = ZOMBIE_MAX;
                        break;
                }
-               case MONSTER_OGRE:
+               case MONSTER_BRUTE:
                {
-                       mid2info_model = OGRE_MODEL;
-                       mid2info_name = "Ogre";
-                       mid2info_min = OGRE_MIN;
-                       mid2info_max = OGRE_MAX;
+                       mid2info_model = BRUTE_MODEL;
+                       mid2info_name = "Brute";
+                       mid2info_min = BRUTE_MIN;
+                       mid2info_max = BRUTE_MAX;
                        break;
                }
-               case MONSTER_DEMON:
+               case MONSTER_ANIMUS:
                {
-                       mid2info_model = DEMON_MODEL;
-                       mid2info_name = "Fiend";
-                       mid2info_min = DEMON_MIN;
-                       mid2info_max = DEMON_MAX;
+                       mid2info_model = ANIMUS_MODEL;
+                       mid2info_name = "Animus";
+                       mid2info_min = ANIMUS_MIN;
+                       mid2info_max = ANIMUS_MAX;
+                       if(self) self.scale = 1.3;
                        break;
                }
                case MONSTER_SHAMBLER:
@@ -131,70 +123,67 @@ void monster_mid2info(float _mid)
                        mid2info_name = "Shambler";
                        mid2info_min = SHAMBLER_MIN;
                        mid2info_max = SHAMBLER_MAX;
+                       if(self) self.scale = 1.3;
                        break;
                }
-               case MONSTER_KNIGHT:
+               case MONSTER_BRUISER:
                {
-                       mid2info_model = KNIGHT_MODEL;
-                       mid2info_name = "Knight";
-                       mid2info_min = KNIGHT_MIN;
-                       mid2info_max = KNIGHT_MAX;
+                       mid2info_model = BRUISER_MODEL;
+                       mid2info_name = "Bruiser";
+                       mid2info_min = BRUISER_MIN;
+                       mid2info_max = BRUISER_MAX;
+                       if(self) self.scale = 1.3;
                        break;
                }
-               case MONSTER_MARINE:
+               case MONSTER_WYVERN:
                {
-                       mid2info_model = SOLDIER_MODEL;
-                       mid2info_name = "Marine";
-                       mid2info_min = SOLDIER_MIN;
-                       mid2info_max = SOLDIER_MAX;
+                       mid2info_model = WYVERN_MODEL;
+                       mid2info_name = "Wyvern";
+                       mid2info_min = WYVERN_MIN;
+                       mid2info_max = WYVERN_MAX;
+                       if(self) self.scale = 1.3;
                        break;
                }
-               case MONSTER_SCRAG:
+               case MONSTER_CERBERUS:
                {
-                       mid2info_model = WIZARD_MODEL;
-                       mid2info_name = "Scrag";
-                       mid2info_min = WIZARD_MIN;
-                       mid2info_max = WIZARD_MAX;
-                       break;
-               }
-               case MONSTER_DOG:
-               {
-                       mid2info_model = DOG_MODEL;
+                       mid2info_model = CERBERUS_MODEL;
                        mid2info_name = "Cerberus";
-                       mid2info_min = DOG_MIN;
-                       mid2info_max = DOG_MAX;
+                       mid2info_min = CERBERUS_MIN;
+                       mid2info_max = CERBERUS_MAX;
                        break;
                }
-               case MONSTER_TARBABY:
+               case MONSTER_SLIME:
                {
-                       mid2info_model = TARBABY_MODEL;
-                       mid2info_name = "Spawn";
-                       mid2info_min = TARBABY_MIN;
-                       mid2info_max = TARBABY_MAX;
+                       mid2info_model = SLIME_MODEL;
+                       mid2info_name = "Slime";
+                       mid2info_min = SLIME_MIN;
+                       mid2info_max = SLIME_MAX;
                        break;
                }
-               case MONSTER_HELLKNIGHT:
+               case MONSTER_KNIGHT:
                {
-                       mid2info_model = HELLKNIGHT_MODEL;
-                       mid2info_name = "Hell-Knight";
-                       mid2info_min = HELLKNIGHT_MIN;
-                       mid2info_max = HELLKNIGHT_MAX;
+                       mid2info_model = KNIGHT_MODEL;
+                       mid2info_name = "Knight";
+                       mid2info_min = KNIGHT_MIN;
+                       mid2info_max = KNIGHT_MAX;
+                       if(self) self.scale = 1.3;
                        break;
                }
-               case MONSTER_FISH:
+               case MONSTER_STINGRAY:
                {
-                       mid2info_model = FISH_MODEL;
-                       mid2info_name = "Rotfish";
-                       mid2info_min = FISH_MIN;
-                       mid2info_max = FISH_MAX;
+                       mid2info_model = STINGRAY_MODEL;
+                       mid2info_name = "Stingray";
+                       mid2info_min = STINGRAY_MIN;
+                       mid2info_max = STINGRAY_MAX;
+                       if(self) self.scale = 1.3;
                        break;
                }
                case MONSTER_MAGE:
                {
-                       mid2info_model = SHALRATH_MODEL;
+                       mid2info_model = MAGE_MODEL;
                        mid2info_name = "Mage";
-                       mid2info_min = SHALRATH_MIN;
-                       mid2info_max = SHALRATH_MAX;
+                       mid2info_min = MAGE_MIN;
+                       mid2info_max = MAGE_MAX;
                        break;
                }
                case MONSTER_SPIDER:
@@ -215,12 +204,14 @@ void monster_mid2info(float _mid)
 
 .vector glowmod;
 void monster_changeteam()
-{      
+{
        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;
+       else
+               self.colormap = 1024;
 }
 
 void monster_die()
@@ -233,17 +224,17 @@ void monster_die()
 
 void monster_draw()
 {        
-    float dt;
+       float dt;
             
-    dt = time - self.move_time;
-    self.move_time = time;
-    if(dt <= 0)
-        return;
+       dt = time - self.move_time;
+       self.move_time = time;
+       if(dt <= 0)
+               return;
     
-    fixedmakevectors(self.angles);
-    //movelib_groundalign4point(300, 100, 0.25, 45);
-    setorigin(self, self.origin + self.velocity * dt);
-    self.angles_y = self.move_angles_y;  
+       fixedmakevectors(self.angles);
+       //movelib_groundalign4point(50, 25, 0.25, 45);
+       setorigin(self, self.origin + self.velocity * dt);
+       self.angles_y = self.move_angles_y;
 }
 
 void monster_construct()
@@ -272,7 +263,7 @@ void ent_monster()
        sf = ReadByte();
 
        if(sf & MSF_SETUP)
-       {               
+       {
                self.monsterid = ReadByte();
                                
                self.origin_x = ReadCoord();
@@ -283,27 +274,12 @@ void ent_monster()
                self.angles_x = ReadAngle();
                self.angles_y = ReadAngle();
                
-               self.scale = ReadByte();
                self.skin = ReadByte();
+               self.team = ReadByte();
                
                monster_precache(self.monsterid);
                monster_construct();
-               self.colormap = 1024;
-               self.glowmod = '0 1 1'; 
-       }
-       
-       if(sf & MSF_SIZE)
-       {
-               self.scale = ReadByte();
-               self.mins_x = ReadCoord();
-               self.mins_y = ReadCoord();
-               self.mins_z = ReadCoord();
-               
-               self.maxs_x = ReadCoord();
-               self.maxs_y = ReadCoord();
-               self.maxs_z = ReadCoord();
-
-               setsize(self, self.mins, self.maxs);
+               monster_changeteam();
        }
        
        if(sf & MSF_ANG)
@@ -330,7 +306,7 @@ void ent_monster()
                self.move_velocity = self.velocity;
                self.move_origin   = self.origin;
        }
-               
+       
        if(sf & MSF_ANIM)
        {
                self.frame1time = ReadCoord();