]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/commitdiff
Remove all scale modifiers (networking scale changes is too broken)
authorMario <mario.mario@y7mail.com>
Mon, 22 Apr 2013 13:11:18 +0000 (23:11 +1000)
committerMario <mario.mario@y7mail.com>
Mon, 22 Apr 2013 13:11:18 +0000 (23:11 +1000)
monsters.cfg
qcsrc/client/monsters.qc
qcsrc/server/autocvars.qh
qcsrc/server/monsters/lib/defs.qh
qcsrc/server/monsters/lib/monsters.qc
qcsrc/server/monsters/monster/shalrath.qc

index adbf4dc8f93fecd8ba13b5b2faa68f2db89a9c64..41585805c6466c3b82cd51c37f93a21c2e057788 100644 (file)
@@ -12,8 +12,6 @@ set g_monsters_teams 1
 set g_monster_spawnshieldtime 2 "Monsters will not take damage for this amount of seconds"
 set g_monsters_typefrag 1
 set g_monsters_healthbars 1 "Show health bars above monsters"
-set g_monsters_giants_only 0
-set g_monsters_nogiants 1
 set g_monsters_target_range 2000
 set g_monsters_respawn 1 "Enable monster respawning"
 set g_monsters_respawn_delay 20 "Monsters respawn in this amount of seconds"
index 39ef4e8a11038161f8e44a0e9b6fe1063d66679e..0e213b540f590be1d4e5e6a9178b082d18b7b731 100644 (file)
@@ -283,7 +283,6 @@ void ent_monster()
                self.angles_x = ReadAngle();
                self.angles_y = ReadAngle();
                
-               self.scale = ReadByte();
                self.skin = ReadByte();
                
                monster_precache(self.monsterid);
@@ -292,20 +291,6 @@ void ent_monster()
                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);
-       }
-       
        if(sf & MSF_ANG)
        {
                self.move_angles_x = ReadShort();
index 977f6221f06563306c9edeb04daef8ca8e915243..5237ebe9b02ee874cb8cffdcc3ac51b4acb628a7 100644 (file)
@@ -1251,7 +1251,6 @@ float autocvar_g_monsters;
 float autocvar_g_monsters_think_delay;
 float autocvar_g_monsters_max;
 float autocvar_g_monsters_max_perplayer;
-float autocvar_g_monsters_giants_only;
 float autocvar_g_monsters_target_range;
 float autocvar_g_monsters_typefrag;
 float autocvar_g_monsters_owners;
@@ -1264,7 +1263,6 @@ float autocvar_g_monsters_teams;
 float autocvar_g_monsters_healthbars;
 float autocvar_g_monsters_respawn_delay;
 float autocvar_g_monsters_respawn;
-float autocvar_g_monsters_nogiants;
 float autocvar_g_monsters_skill_easy;
 float autocvar_g_monsters_skill_normal;
 float autocvar_g_monsters_skill_hard;
index 8ebea2ebecfa147f7ae8144ef2146ad24827274f..f6f03ddc285068bf32719a63235ce32f7b0833c3 100644 (file)
@@ -27,8 +27,7 @@ const float MONSTERFLAG_NORESPAWN = 2;
 const float MONSTERFLAG_MINIBOSS = 64;  // monster spawns as mini-boss (also has a chance of naturally becoming one)
 const float MONSTERFLAG_NOWANDER = 128; // disable wandering around (currently unused)
 const float MONSTERFLAG_APPEAR = 256; // delay spawn until triggered
-const float MONSTERFLAG_GIANT = 512; // experimental giant monsters feature
-const float MONSTERFLAG_SPAWNED = 1024; // flag for spawned monsters
+const float MONSTERFLAG_SPAWNED = 512; // flag for spawned monsters
 
 .float msound_delay; // restricts some monster sounds
 .string msound_idle;
index 1ad2861cd85d290ffed565cf56b446ccfa271bb0..b477095f3a4b60efa020d89479218d30efadf1a5 100644 (file)
@@ -190,7 +190,7 @@ void monster_setupsounds(string mon)
 
 void monster_melee (entity targ, float damg, float er, float deathtype, float dostop)
 {
-       float bigdmg, dot, rdmg = damg * random();
+       float dot, rdmg = damg * random();
 
        if (self.health <= 0)
                return;
@@ -208,10 +208,8 @@ void monster_melee (entity targ, float damg, float er, float deathtype, float do
        makevectors (self.angles);
        dot = normalize (targ.origin - self.origin) * v_forward;
        
-       bigdmg = rdmg * self.scale;
-       
        if(dot > er)
-               Damage(targ, self, self, bigdmg * monster_skill, deathtype, targ.origin, normalize(targ.origin - self.origin));
+               Damage(targ, self, self, rdmg * monster_skill, deathtype, targ.origin, normalize(targ.origin - self.origin));
 }
 
 void Monster_CheckDropCvars (string mon)
@@ -239,30 +237,17 @@ void Monster_CheckDropCvars (string mon)
                Monster_DropItem("armor", "medium");
 }
 
-void ScaleMonster (float scle, vector min_s, vector max_s)
-{
-       // this should prevent monster from falling through floor when scale changes
-       self.scale = scle;
-       setsize(self, min_s * scle, max_s * scle);
-       setorigin(self, self.origin + ('0 0 30' * scle));
-       self.SendFlags |= MSF_SIZE | MSF_MOVE;
-}
-
 void Monster_CheckMinibossFlag ()
 {
        if(MUTATOR_CALLHOOK(MonsterCheckBossFlag))
                return;
                
-       if(self.spawnflags & MONSTERFLAG_GIANT)
-               return; // 1 size modifier at a time
-               
        float chance = random() * 100;
 
        // g_monsters_miniboss_chance cvar or spawnflags 64 causes a monster to be a miniboss
        if ((self.spawnflags & MONSTERFLAG_MINIBOSS) || (chance < autocvar_g_monsters_miniboss_chance))
        {
                self.health += autocvar_g_monsters_miniboss_healthboost;
-               ScaleMonster(1.5, self.mins, self.maxs);
                self.flags |= MONSTERFLAG_MINIBOSS;
                if not(self.weapon)
                        self.weapon = WEP_NEX;
@@ -375,7 +360,7 @@ float GenericCheckAttack ()
                return FALSE;
                
        if(self.attack_melee)
-       if(vlen(self.enemy.origin - self.origin) <= 100 * self.scale)
+       if(vlen(self.enemy.origin - self.origin) <= 100)
        {
                monster_sound(self.msound_attack_melee, 0, FALSE); // no delay for attack sounds
                self.attack_melee(); // don't wait for nextthink - too slow
@@ -625,7 +610,7 @@ void monster_move(float runspeed, float walkspeed, float stopspeed, float manim_
        if(self.flags & FL_ONGROUND)
                movelib_jump_simple(100);
 
-       if(vlen(self.origin - self.moveto) > 64 * self.scale)
+       if(vlen(self.origin - self.moveto) > 64)
        {
                if(self.flags & FL_FLY || self.flags & FL_SWIM)
                        movelib_move_simple(v_forward, ((self.enemy) ? runspeed : walkspeed), 0.6);
@@ -736,22 +721,8 @@ float monster_send(entity to, float sf)
            WriteAngle(MSG_ENTITY, self.angles_x);
            WriteAngle(MSG_ENTITY, self.angles_y);
                
-               WriteByte(MSG_ENTITY, self.scale);
                WriteByte(MSG_ENTITY, self.skin);
     }
-       
-       if(sf & MSF_SIZE)
-       {
-               WriteByte(MSG_ENTITY, self.scale);
-               
-               WriteCoord(MSG_ENTITY, self.mins_x);
-           WriteCoord(MSG_ENTITY, self.mins_y);
-           WriteCoord(MSG_ENTITY, self.mins_z);
-               
-               WriteCoord(MSG_ENTITY, self.maxs_x);
-           WriteCoord(MSG_ENTITY, self.maxs_y);
-           WriteCoord(MSG_ENTITY, self.maxs_z);
-       }
     
     if(sf & MSF_ANG)
     {
@@ -933,7 +904,7 @@ void monster_hook_spawn()
 {
        if not(self.monster_respawned)
                Monster_CheckMinibossFlag();
-
+       
        self.max_health = self.health;
        self.pain_finished = self.nextthink;
        self.anim_start_time = time;
@@ -986,15 +957,6 @@ float monster_initialize(string  net_name, float mon_id,
        if(self.netname == "")
                self.netname = ((net_name == "") ? self.classname : net_name);
        
-       if(autocvar_g_monsters_giants_only)
-               self.spawnflags |= MONSTERFLAG_GIANT;
-       
-       if not(self.scale)
-               self.scale = 1;
-               
-       if(self.spawnflags & MONSTERFLAG_GIANT && !autocvar_g_monsters_nogiants)
-               self.scale = 5;
-       
        if(self.team && !teamplay)
                self.team = 0;
 
@@ -1004,8 +966,7 @@ float monster_initialize(string  net_name, float mon_id,
        if not(self.monster_respawned)
                monsters_total += 1;
 
-       ScaleMonster(self.scale, min_s, max_s);
-
+       setsize(self, min_s, max_s);
        self.takedamage                 = DAMAGE_AIM;
        self.bot_attack                 = TRUE;
        self.iscreature                 = TRUE;
@@ -1018,6 +979,7 @@ float monster_initialize(string  net_name, float mon_id,
        self.touch                              = MonsterTouch;
        self.use                                = monster_use;
        self.solid                              = SOLID_BBOX;
+       self.scale                              = 1;
        self.movetype                   = MOVETYPE_WALK;
        self.delay                              = -1; // used in attack delay code
        monsters_spawned           += 1;
index 02097c010716e34e059d631dd3b3d0b48ca2a4b2..137104187e4f0b641db9916cde1c5d697b292021 100644 (file)
@@ -85,7 +85,6 @@ void shalrath_think ()
                shalrath_heal();
                
        if(self.enemy)
-       if not(self.spawnflags & MONSTERFLAG_GIANT) // giants are too big to hold a shield
        if(self.health < self.max_health)
        if(time >= self.lastshielded)
        if(random() < 0.5)