]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/commitdiff
Fix monster targets
authorMario <mario.mario@y7mail.com>
Sun, 14 Apr 2013 04:25:53 +0000 (14:25 +1000)
committerMario <mario.mario@y7mail.com>
Sun, 14 Apr 2013 04:25:53 +0000 (14:25 +1000)
qcsrc/server/monsters/lib/defs.qh
qcsrc/server/monsters/lib/monsters.qc

index ca25bb982245761dd6a7704d73452d65f52816f5..325e9f75c1ea0a86c1cbafe7276bf32c01c80139 100644 (file)
@@ -6,6 +6,7 @@
 
 .float candrop;
 
+.string oldtarget2;
 .string oldmessage;
 
 .float respawnflags;
index d4813cafde367351ff0f09776389519c413b53d8..5928051ef060d2d1640d520d46134ad8abb18839 100644 (file)
@@ -488,8 +488,8 @@ vector monster_pickmovetarget(entity targ)
 
 void monster_move(float runspeed, float walkspeed, float stopspeed, float manim_run, float manim_walk, float manim_idle)
 {
-       if(self.target)
-               self.goalentity = find(world, targetname, self.target);
+       if(self.target2)
+               self.goalentity = find(world, targetname, self.target2);
                
        entity targ;
 
@@ -682,7 +682,7 @@ float Monster_CheckAppearFlags(entity ent)
                return FALSE;
        
        ent.think = func_null;
-       ent.nextthink = -1;
+       ent.nextthink = 0;
        ent.use = Monster_Appear;
        ent.flags = FL_MONSTER; // set so this monster can get butchered
        
@@ -800,8 +800,6 @@ void monsters_corpse_damage (entity inflictor, entity attacker, float damage, fl
 
 void monsters_damage (entity inflictor, entity attacker, float damage, float deathtype, vector hitloc, vector force)
 {
-       string t1, t2;
-
        if(self.frozen && deathtype != DEATH_KILL)
                return;
                
@@ -850,13 +848,8 @@ void monsters_damage (entity inflictor, entity attacker, float damage, float dea
                // TODO: fix this?
                activator = attacker;
                other = self.enemy;
-               t1 = self.target;
-               t2 = self.target2;
-               self.target = self.target2;
-               self.target2 = "";
                SUB_UseTargets();
-               self.target = t1;
-               self.target2 = t2;
+               self.target2 = self.oldtarget2; // reset to original target on death, incase we respawn
        
                self.monster_die();
                
@@ -937,13 +930,6 @@ void monster_hook_spawn()
        else
                self.colormod = self.glowmod = '1 1 1';
        
-       // TODO: fix this...
-       if (self.target)
-       {
-               self.target2 = self.target;
-               self.goalentity = find(world, targetname, self.target);
-       }
-       
        self.sprite_height *= self.scale; // do this after setting the monster's scale
                
        if(autocvar_g_monsters_healthbars)
@@ -1030,6 +1016,7 @@ float monster_initialize(string  net_name, float mon_id,
        self.reset                              = monsters_reset;
        self.candrop                    = TRUE;
        self.view_ofs                   = '0 0 1' * (self.maxs_z * 0.5);
+       self.oldtarget2                 = self.target2;
        
        if not(self.ticrate)
                self.ticrate = autocvar_g_monsters_think_delay;