From d13e4233360ac2bf3116ffe877d8f2aec25458bd Mon Sep 17 00:00:00 2001 From: Mario Date: Sun, 16 Jun 2013 14:56:58 +1000 Subject: [PATCH] Fix fish not swimming upwards --- qcsrc/server/command/cmd.qc | 3 ++- qcsrc/server/monsters/lib/monsters.qc | 9 +++++---- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/qcsrc/server/command/cmd.qc b/qcsrc/server/command/cmd.qc index 010800950..f8e27bb46 100644 --- a/qcsrc/server/command/cmd.qc +++ b/qcsrc/server/command/cmd.qc @@ -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); diff --git a/qcsrc/server/monsters/lib/monsters.qc b/qcsrc/server/monsters/lib/monsters.qc index 497429fec..8a3c1d32c 100644 --- a/qcsrc/server/monsters/lib/monsters.qc +++ b/qcsrc/server/monsters/lib/monsters.qc @@ -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); -- 2.39.2