]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/commitdiff
Stop using vehicles_customizeentityforclient, its expensive. (lets see how much break...
authorJakob MG <jakob_mg@hotmail.com>
Mon, 4 Apr 2011 02:49:55 +0000 (04:49 +0200)
committerJakob MG <jakob_mg@hotmail.com>
Mon, 4 Apr 2011 02:49:55 +0000 (04:49 +0200)
qcsrc/server/vehicles/racer.qc
qcsrc/server/vehicles/raptor.qc
qcsrc/server/vehicles/vehicles.qc

index b484fc76d695138a705867a299cf86d00081669b..453f0fa59f84b8157ab820163ed07b5568994855 100644 (file)
@@ -334,8 +334,10 @@ float racer_frame()
     racer.angles_x *= -1;
 #endif
 
+    ftmp = racer.velocity_z;
     df = racer.velocity * -autocvar_g_vehicle_racer_friction;
-
+    racer.velocity_z = ftmp;
+    
     if(player.movement_x != 0)
     {
         if(player.movement_x > 0)
@@ -619,8 +621,8 @@ void racer_dinit()
 
     // FIXME: this be hakkz, fix the models insted (scale body, add tag_viewport to the hudmodel).
     self.scale = 0.5;
-    //setattachment(self.vehicle_hudmodel, self, "");
-    //setattachment(self.vehicle_viewport, self, "tag_viewport");
+    setattachment(self.vehicle_hudmodel, self, "");
+    setattachment(self.vehicle_viewport, self, "tag_viewport");
 
     self.mass               = 900;
 }
index f1b7e861212bc891740dbc15fad2a093e54465d2..72511c964f12487c15e9af24619d80db08412dcf 100644 (file)
@@ -279,6 +279,7 @@ float raptor_takeoff()
     else
         player.PlayerPhysplug = raptor_frame;
 
+    player.BUTTON_ATCK = player.BUTTON_ATCK2 = player.BUTTON_CROUCH = 0;
     self = player;
     return 1;
 }
@@ -605,6 +606,15 @@ void raptor_spawn()
     self.delay = time;
 }
 
+// If we dont do this ever now and then, the raptors rotors
+// stop working, presumably due to angle overflow. cute.
+void raptor_rotor_anglefix()
+{
+    self.gun1.angles_y = anglemods(self.gun1.angles_y);
+    self.gun2.angles_y = anglemods(self.gun2.angles_y);
+    self.nextthink = time + 15;
+}
+
 void raptor_dinit()
 {
     entity spinner;
@@ -687,7 +697,11 @@ void raptor_dinit()
     spinner.movetype = MOVETYPE_NOCLIP;
     spinner.avelocity = '0 -90 0';
     self.bomb1.gun2 = spinner;
-
+    
+    // Sigh.
+    self.bomb1.think = raptor_rotor_anglefix;
+    self.bomb1.nextthink = time;
+    
     self.mass               = 1 ;
 }
 
index ba7f9a0eca26a68e0fa3a2aa13ceb24f8d760309..7dd30dca5fbb5fef965c5b46cfdd3119a9fbf697 100644 (file)
@@ -273,6 +273,7 @@ void vehicles_spawn()
 
     // De-own & reset
     self.vehicle_hudmodel.viewmodelforclient = self;
+    
     self.owner              = world;
     self.touch              = vehicles_touch;
     self.event_damage       = vehicles_damage;
@@ -375,8 +376,12 @@ void vehicles_enter()
 
     self.owner          = other;
     self.switchweapon   = other.switchweapon;
+    
+    // .viewmodelforclient works better.
+    //self.vehicle_hudmodel.drawonlytoclient = self.owner;
 
-    self.vehicle_hudmodel.viewmodelforclient = self.owner;
+    self.vehicle_hudmodel.viewmodelforclient = self.owner;        
+    
     self.event_damage         = vehicles_damage;
     self.nextthink            = 0;
     self.owner.angles         = self.angles;
@@ -470,7 +475,7 @@ void vehicles_exit(float eject)
         self.avelocity          = '0 0 0';
 
     self.vehicle_hudmodel.viewmodelforclient = self;
-       self.tur_head.nodrawtoclient             = self;
+       self.tur_head.nodrawtoclient             = world;
     vehicles_setreturn();
 
     self.phase = time + 1;
@@ -754,7 +759,7 @@ float vehicle_initialize(string  net_name,
     self.iscreature         = TRUE;
     self.hud                = vhud;
 
-    self.customizeentityforclient = vehicles_customizeentityforclient;
+    //self.customizeentityforclient = vehicles_customizeentityforclient;
     self.vehicle_die         = dieproc;
     self.vehicle_exit        = exitfunc;
     self.vehicle_enter       = enterproc;
@@ -797,7 +802,8 @@ float vehicle_initialize(string  net_name,
         tracebox(self.origin + '0 0 100', min_s, max_s, self.origin - '0 0 10000', MOVE_WORLDONLY, self);
         setorigin(self, trace_endpos);
     }
-
+    
+    //self.vehicle_hudmodel.effects = EF_NODEPTHTEST;
     self.pos1 = self.origin;
     self.pos2 = self.angles;