]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/commitdiff
Fix choppy monster movement
authorMario <mario.mario@y7mail.com>
Sat, 13 Apr 2013 13:35:19 +0000 (23:35 +1000)
committerMario <mario.mario@y7mail.com>
Sat, 13 Apr 2013 13:35:19 +0000 (23:35 +1000)
monsters.cfg
qcsrc/client/monsters.qc
qcsrc/server/monsters/lib/monsters.qc

index 2822f108b46982ea8355352d5ac8b92c2caacbc4..efef254c49cf660e9cd9bd44af9644799a116a86 100644 (file)
@@ -1,6 +1,6 @@
 // Misc
 set g_monsters 1 "Enable monsters (master switch)"
-set g_monsters_think_delay 0.05 "Delay between monster think frames"
+set g_monsters_think_delay 0.1 "Delay between monster think frames"
 set g_monsters_skill 1 "Monster skill (affecting some of their attributes). 1 - easy, 2 - medium, 3 - hard, 4 - insane, 5 - nightmare"
 set g_monsters_miniboss_chance 5
 set g_monsters_miniboss_healthboost 100
index 6dd5657feefb8ff10cd60cd17733778b827b5d29..80f1b991a5e8b1409f90fee048e21fceac50975a 100644 (file)
@@ -262,6 +262,21 @@ void monster_changeteam()
                self.colormap = 1024 + (self.team - 1) * 17;
 }
 
+void monster_draw()
+{        
+    float dt;
+            
+    dt = time - self.move_time;
+    self.move_time = time;
+    if(dt <= 0)
+        return;
+    
+    fixedmakevectors(self.angles);
+    movelib_groundalign4point(300, 100, 0.25, 45);
+    setorigin(self, self.origin + self.velocity * dt);
+    self.angles_y = self.move_angles_y;  
+}
+
 void monster_construct()
 {      
        monster_mid2info(self.monsterid);
@@ -279,6 +294,7 @@ void monster_construct()
        self.move_time          = time;
        self.drawmask           = MASK_NORMAL;  
        self.alpha                      = 1;
+       self.draw                       = monster_draw;
 }
 
 void ent_monster()
index 4af941e5ce1139c5ffd431cff25813c41b87f79d..96cebcd2124c3d43fa73962b1762d282d1dce937 100644 (file)
@@ -636,8 +636,7 @@ void monster_move(float runspeed, float walkspeed, float stopspeed, float manim_
                self.checkattack();
                
        self.SendFlags |= MSF_ANG;
-       if(vlen(self.velocity) > 0)
-               self.SendFlags |= MSF_MOVE;
+       self.SendFlags |= MSF_MOVE;
 }
 
 void monsters_setstatus()