X-Git-Url: https://de.git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fclient%2Fmonsters.qc;h=ff2a3d00e13d066580d3fa8882ef2031d32c313e;hb=530cf677ae1785b47188c83b6d01ca71b46b98f3;hp=53292d28ea1e74d3907a428dbc40ca7256641c9f;hpb=d66ea2d8815be3f28405930ee58fbc7b276bbc06;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/client/monsters.qc b/qcsrc/client/monsters.qc index 53292d28e..ff2a3d00e 100644 --- a/qcsrc/client/monsters.qc +++ b/qcsrc/client/monsters.qc @@ -24,9 +24,9 @@ void monster_precache(float _mid) precache_model(OGRE_MODEL); break; } - case MONSTER_DEMON: + case MONSTER_ANIMUS: { - precache_model(DEMON_MODEL); + precache_model(ANIMUS_MODEL); break; } case MONSTER_SHAMBLER: @@ -34,40 +34,30 @@ 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: @@ -77,7 +67,7 @@ void monster_precache(float _mid) } case MONSTER_MAGE: { - precache_model(SHALRATH_MODEL); + precache_model(MAGE_MODEL); break; } case MONSTER_SPIDER: @@ -93,7 +83,7 @@ void monster_precache(float _mid) 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); } @@ -117,12 +107,13 @@ void monster_mid2info(float _mid) mid2info_max = OGRE_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,54 +122,50 @@ 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: - { - mid2info_model = KNIGHT_MODEL; - mid2info_name = "Knight"; - mid2info_min = KNIGHT_MIN; - mid2info_max = KNIGHT_MAX; - break; - } - case MONSTER_MARINE: + case MONSTER_BRUISER: { - mid2info_model = SOLDIER_MODEL; - mid2info_name = "Marine"; - mid2info_min = SOLDIER_MIN; - mid2info_max = SOLDIER_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_SCRAG: + case MONSTER_WYVERN: { - mid2info_model = WIZARD_MODEL; - mid2info_name = "Scrag"; - mid2info_min = WIZARD_MIN; - mid2info_max = WIZARD_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_DOG: + case MONSTER_CERBERUS: { - 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: @@ -187,14 +174,15 @@ void monster_mid2info(float _mid) mid2info_name = "Rotfish"; mid2info_min = FISH_MIN; mid2info_max = FISH_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: @@ -216,36 +204,13 @@ void monster_mid2info(float _mid) .vector glowmod; void monster_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; + else + self.colormap = 1024; } void monster_die() @@ -297,7 +262,7 @@ void ent_monster() sf = ReadByte(); if(sf & MSF_SETUP) - { + { self.monsterid = ReadByte(); self.origin_x = ReadCoord(); @@ -308,27 +273,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) @@ -374,6 +324,10 @@ void ent_monster() monster_changeteam(); } + _tmp = ReadByte(); + if(_tmp == 4) // respawning + setmodel(self, "null"); + _tmp = ReadByte(); if(_tmp == 0 && self.health != 0)