From: Jakob MG <jakob_mg@hotmail.com>
Date: Wed, 15 Aug 2012 21:08:02 +0000 (+0200)
Subject: Handle force reduction by damageforcescale for vehicles
X-Git-Tag: xonotic-v0.7.0~283
X-Git-Url: https://git.rm.cloudns.org/?a=commitdiff_plain;h=a2b4401a27a572ead810da546690e47e1196f3e0;p=xonotic%2Fxonotic-data.pk3dir.git

Handle force reduction by damageforcescale for vehicles
---

diff --git a/qcsrc/server/vehicles/bumblebee.qc b/qcsrc/server/vehicles/bumblebee.qc
index 028aac66b..0d2538d77 100644
--- a/qcsrc/server/vehicles/bumblebee.qc
+++ b/qcsrc/server/vehicles/bumblebee.qc
@@ -800,6 +800,8 @@ void bumb_spawn(float _f)
 	self.solid          = SOLID_BBOX;
 	self.movetype 		= MOVETYPE_BOUNCEMISSILE;
 	self.vehicle_impact = bumb_impact;
+	self.damageforcescale = 0.025;
+	
 	setorigin(self, self.origin + '0 0 25');
 }
 
diff --git a/qcsrc/server/vehicles/racer.qc b/qcsrc/server/vehicles/racer.qc
index ff129a4e4..792be5850 100644
--- a/qcsrc/server/vehicles/racer.qc
+++ b/qcsrc/server/vehicles/racer.qc
@@ -623,6 +623,7 @@ void racer_spawn(float _spawnflag)
     self.bouncefactor = autocvar_g_vehicle_racer_bouncefactor;
     self.bouncestop = autocvar_g_vehicle_racer_bouncestop;
     self.vehicle_impact = racer_impact;
+    self.damageforcescale = 0.5;
     //self.destvec = autocvar_g_vehicle_racer_bouncepain;
 }
 
diff --git a/qcsrc/server/vehicles/raptor.qc b/qcsrc/server/vehicles/raptor.qc
index c47c0ca3a..a623bd540 100644
--- a/qcsrc/server/vehicles/raptor.qc
+++ b/qcsrc/server/vehicles/raptor.qc
@@ -876,6 +876,7 @@ void raptor_spawn(float _f)
     self.bouncefactor = autocvar_g_vehicle_raptor_bouncefactor;
     self.bouncestop = autocvar_g_vehicle_raptor_bouncestop;    
     self.vehicle_impact = raptor_impact;    
+    self.damageforcescale = 0.25;
 }
 
 void spawnfunc_vehicle_raptor()
diff --git a/qcsrc/server/vehicles/spiderbot.qc b/qcsrc/server/vehicles/spiderbot.qc
index 9906f5271..71e57a037 100644
--- a/qcsrc/server/vehicles/spiderbot.qc
+++ b/qcsrc/server/vehicles/spiderbot.qc
@@ -809,11 +809,12 @@ void spiderbot_spawn(float _f)
     self.movetype           = MOVETYPE_WALK;
     self.solid              = SOLID_SLIDEBOX;
     self.alpha              = self.tur_head.alpha = self.gun1.alpha = self.gun2.alpha = 1;
-    self.tur_head.angles    = '0 0 0';
+    self.tur_head.angles    = '0 0 0';    
 
     setorigin(self, self.pos1 + '0 0 128');
     self.angles = self.pos2;
     self.vehicle_impact = spider_impact;
+    self.damageforcescale = 0.03;
 }
 
 void spawnfunc_vehicle_spiderbot()
diff --git a/qcsrc/server/vehicles/vehicles.qc b/qcsrc/server/vehicles/vehicles.qc
index 663921b20..84de8f4a0 100644
--- a/qcsrc/server/vehicles/vehicles.qc
+++ b/qcsrc/server/vehicles/vehicles.qc
@@ -946,8 +946,11 @@ void vehicles_damage(entity inflictor, entity attacker, float damage, float deat
         if(sound_allowed(MSG_BROADCAST, attacker))
             spamsound (self, CH_PAIN, "onslaught/ons_hit2.wav", VOL_BASE, ATTN_NORM);  // FIXME: PLACEHOLDER
     }
-
-    self.velocity += force; // * (vlen(force) / self.mass);
+    
+	if(self.damageforcescale < 1 && self.damageforcescale > 0)
+		self.velocity += force * self.damageforcescale;
+	else
+		self.velocity += force;
 
     if(self.vehicle_health <= 0)
     {