]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/server/tturrets/units/unit_walker.qc
change ALL sound calls AGAIN (damn Spike)
[xonotic/xonotic-data.pk3dir.git] / qcsrc / server / tturrets / units / unit_walker.qc
index afb5d26ec0d5477fb2f6e5673512f39ae3bf8c9d..71c25cf80a348eb224c3c439391dad4805880c40 100644 (file)
@@ -194,7 +194,7 @@ void walker_fire_rocket(vector org)
     rocket = spawn ();
     setorigin(rocket, org);
 
-    sound (self, CHAN_WEAPON, "weapons/hagar_fire.wav", VOL_BASE, ATTN_NORM);
+    asound (self, CH_WEAPON_A, "weapons/hagar_fire.wav", VOL_BASE, ATTN_NORM);
     setsize (rocket, '-3 -3 -3', '3 3 3'); // give it some size so it can be shot
 
     rocket.classname          = "walker_rocket";
@@ -259,8 +259,11 @@ void walker_move_to(vector _target, float _dist)
     }
 }
 
+//#define WALKER_FANCYPATHING
+
 void walker_move_path()
 {
+#ifdef WALKER_FANCYPATHING
     // Are we close enougth to a path node to switch to the next?
     if (vlen(self.origin  - self.pathcurrent.origin) < 64)
         if (self.pathcurrent.path_next == world)
@@ -290,6 +293,17 @@ void walker_move_path()
     self.steerto = steerlib_attract2(self.moveto,0.5,500,0.95);
     walker_move_to(self.moveto, 0);
 
+#else
+    if (vlen(self.origin - self.pathcurrent.origin) < 64)    
+        self.pathcurrent = self.pathcurrent.enemy;
+    
+    if(!self.pathcurrent)
+        return;
+    
+    self.moveto = self.pathcurrent.origin;
+    self.steerto = steerlib_attract2(self.moveto, 0.5, 500, 0.95);
+    walker_move_to(self.moveto, 0);
+#endif
 }
 
 .float idletime;
@@ -343,7 +357,7 @@ void walker_postthink()
                 
                 if(self.idletime < time)
                 {
-                    if(random() < 0.5)
+                    if(random() < 0.5 || !(self.spawnflags & TSL_ROAM))
                     {
                         self.idletime = time + 1 + random() * 5;
                         self.moveto = self.origin;
@@ -511,7 +525,7 @@ void walker_postthink()
 
 void walker_attack()
 {
-    sound (self, CHAN_WEAPON, "weapons/uzi_fire.wav", VOL_BASE, ATTN_NORM);
+    asound (self, CH_WEAPON_A, "weapons/uzi_fire.wav", VOL_BASE, ATTN_NORM);
     fireBallisticBullet (self.tur_shotorg, self.tur_shotdir_updated, self.shot_spread, self.shot_speed, 5, self.shot_dmg, 0, self.shot_force, DEATH_TURRET_WALKER_GUN, 0, 1, autocvar_g_balance_uzi_bulletconstant);
     endFireBallisticBullet();
     pointparticles(particleeffectnum("laser_muzzleflash"), self.tur_shotorg, self.tur_shotdir_updated * 1000, 1);
@@ -550,8 +564,10 @@ void walker_respawnhook()
 
 void walker_diehook()
 {
+#ifdef self.pathcurrent
     if (self.pathcurrent)
         pathlib_deletepath(self.pathcurrent.owner);
+#endif
 
     self.pathcurrent = world;
 }
@@ -608,7 +624,7 @@ void turret_walker_dinit()
 
     if (self.target != "")
     {
-        e = find(world,targetname,self.target);
+        e = find(world, targetname, self.target);
         if (!e)
         {
             dprint("Initital waypoint for walker does NOT exsist, fix your map!\n");
@@ -619,8 +635,12 @@ void turret_walker_dinit()
             dprint("Warning: not a turrret path\n");
         else
         {
-            self.pathcurrent = WALKER_PATH(self.origin,e.origin);
+#ifdef WALKER_FANCYPATHING
+            self.pathcurrent = WALKER_PATH(self.origin, e.origin);
             self.pathgoal = e;
+#else
+            self.pathcurrent = e;
+#endif
         }
     }
 }