]> git.rm.cloudns.org Git - xonotic/xonotic-data.pk3dir.git/commitdiff
Fix racer rockets, reset lock on spawn, zero avelocity on exit
authorJakob MG <jakob_mg@hotmail.com>
Fri, 1 Apr 2011 18:56:39 +0000 (20:56 +0200)
committerJakob MG <jakob_mg@hotmail.com>
Fri, 1 Apr 2011 18:56:39 +0000 (20:56 +0200)
qcsrc/server/vehicles/racer.qc
qcsrc/server/vehicles/vehicles.qc

index d0a4165864baa45268c51356d8ad7f6bcce178a1..69177137e95e78d645cb8aa7f16a154a2aa76967 100644 (file)
@@ -464,16 +464,14 @@ float racer_frame()
         if(self.misc_bulletcounter == 1)
             racer_fire_rocket("tag_rocket_r", (self.lock_strength == 1 && self.lock_target) ? self.lock_target : world);
         else if(self.misc_bulletcounter == 2)
-            racer_fire_rocket("tag_rocket_l", (self.lock_strength == 1 && self.lock_target) ? self.lock_target : world);
-        else
         {
+            racer_fire_rocket("tag_rocket_l", (self.lock_strength == 1 && self.lock_target) ? self.lock_target : world);
             self.lock_strength  = 0;
             self.lock_target    = world;
             self.misc_bulletcounter = 0;
 
             racer.delay = time + autocvar_g_vehicle_racer_rocket_refire;
             racer.lip = time;
-
         }
     }
 
index 14957cf9397bbed6c52900690d4766edb6091119..1ec83dabbe3ab12f0429ce837256ad23b53b011e 100644 (file)
@@ -181,6 +181,7 @@ void vehicles_spawn()
 {
     dprint("Spawning vehicle: ", self.netname, "\n");
 
+    // De-own & reset
     self.vehicle_hudmodel.viewmodelforclient = self;
     self.owner              = world;
     self.touch              = vehicles_touch;
@@ -192,9 +193,17 @@ void vehicles_spawn()
        self.deadflag           = DEAD_NO;
     self.bot_attack         = TRUE;
     self.flags              = FL_NOTARGET;
-    self.angles             = self.pos2;
+    self.avelocity          = '0 0 0';
+
+    // Reset locking
+    self.lock_strength      = 0;
+    self.lock_target        = world;
+    self.misc_bulletcounter = 0;
 
+    // Return to spawn
+    self.angles             = self.pos2;
     setorigin(self, self.pos1 + '0 0 128');
+    // Show it
     pointparticles(particleeffectnum("teleport"), self.origin + '0 0 64', '0 0 0', 1);
 
     vehicles_reset_colors();
@@ -363,6 +372,9 @@ void vehicles_exit(float eject)
         self.owner.switchweapon   = self.switchweapon;
     }
 
+    if(self.deadflag == DEAD_NO)
+        self.avelocity          = '0 0 0';
+
     self.vehicle_hudmodel.viewmodelforclient = self;
        self.tur_head.nodrawtoclient             = self;
     vehicles_setreturn();