]> git.rm.cloudns.org Git - xonotic/xonotic-data.pk3dir.git/commitdiff
Fix fish not swimming upwards
authorMario <mario.mario@y7mail.com>
Sun, 16 Jun 2013 04:56:58 +0000 (14:56 +1000)
committerMario <mario.mario@y7mail.com>
Sun, 16 Jun 2013 04:56:58 +0000 (14:56 +1000)
qcsrc/server/command/cmd.qc
qcsrc/server/monsters/lib/monsters.qc

index 010800950701db060b400307ff05fa0e81df54b9..f8e27bb469b283e8ec69f92e8a65206edcaf7eb3 100644 (file)
@@ -291,7 +291,8 @@ void ClientCommand_mobspawn(float request, float argc)
                                totalspawned += 1;
                        
                                makevectors(self.v_angle);
-                               WarpZone_TraceLine(self.origin + self.view_ofs, self.origin + self.view_ofs + v_forward * 150, MOVE_NORMAL, self);
+                               WarpZone_TraceBox (CENTER_OR_VIEWOFS(self), PL_MIN, PL_MAX, CENTER_OR_VIEWOFS(self) + v_forward * 150, TRUE, self);
+                               //WarpZone_TraceLine(self.origin + self.view_ofs, self.origin + self.view_ofs + v_forward * 150, MOVE_NORMAL, self);
                        
                                e = spawnmonster(tospawn, 0, self, self, trace_endpos, FALSE, moveflag);
                                if(mname) e.netname = strzone(mname);
index 497429fec52219792a0fb0d65a383422cbaa592e..8a3c1d32cc2161786ed0b75be6c09214340a84e7 100644 (file)
@@ -600,8 +600,6 @@ void monster_move(float runspeed, float walkspeed, float stopspeed, float manim_
                self.state = 0;
                self.touch = MonsterTouch;
        }
-        
-       //v_forward = normalize(self.moveto - self.origin);
        
        //self.steerto = steerlib_attract2(self.moveto, 0.5, 500, 0.95);
        
@@ -611,7 +609,7 @@ void monster_move(float runspeed, float walkspeed, float stopspeed, float manim_
        if(self.state != MONSTER_STATE_ATTACK_LEAP && self.state != MONSTER_STATE_ATTACK_MELEE)
                turny = 20;
                
-       if(g_td)
+       if(g_td || self.flags & FL_SWIM)
                turny = vlen(self.angles - self.moveto);
        
        if(turny)
@@ -625,13 +623,16 @@ void monster_move(float runspeed, float walkspeed, float stopspeed, float manim_
        else if(self.enemy)
                self.moveto = self.moveto * 0.9 + ((self.origin + v_forward * 500) + randomvec() * 400) * 0.1;
        
-       if(!(self.flags & FL_FLY || self.flags & FL_SWIM))
+       if not(self.flags & FL_FLY || self.flags & FL_SWIM)
                self.moveto_z = self.origin_z; 
        
        float l = vlen(self.moveto - self.origin);
        float t1 = trace_path(self.origin+'0 0 10', self.moveto+'0 0 10');
        float t2 = trace_path(self.origin-'0 0 15', self.moveto-'0 0 15'); 
        
+       if(self.flags & FL_FLY || self.flags & FL_SWIM)
+               v_forward = normalize(self.moveto - self.origin);
+       
        if(t1*l-t2*l>50 && (t1*l > 100 || t1 > 0.8))
        if(self.flags & FL_ONGROUND)
                movelib_jump_simple(100);