From: Jakob MG Date: Sat, 2 Apr 2011 17:53:50 +0000 (+0200) Subject: Get rid of 240 tracelines / second for racer by disabelign swept colission code,... X-Git-Tag: xonotic-v0.5.0~199^2~11^2~93 X-Git-Url: https://git.rm.cloudns.org/?a=commitdiff_plain;h=983f44a22a3ab7b908e654173b939527691f4ba3;p=xonotic%2Fxonotic-data.pk3dir.git Get rid of 240 tracelines / second for racer by disabelign swept colission code, its bbox is large eougth to make it not cut so much into world now anyway. make upforce stabalizer a bit better, but longer springs for racer. better movetype (less bouncy) --- diff --git a/qcsrc/server/vehicles/racer.qc b/qcsrc/server/vehicles/racer.qc index d5466fc5e..70611e50b 100644 --- a/qcsrc/server/vehicles/racer.qc +++ b/qcsrc/server/vehicles/racer.qc @@ -70,29 +70,30 @@ void racer_align4point() vector push_vector, v_add; float fl_push, fr_push, bl_push, br_push; + push_vector = racer_force_from_tag("tag_engine_fr", autocvar_g_vehicle_racer_springlength, autocvar_g_vehicle_racer_hoverpower); fr_push = force_fromtag_normpower; - vehicles_sweap_collision(force_fromtag_origin, self.velocity, frametime, v_add, autocvar_g_vehicle_racer_collision_multiplier); + //vehicles_sweap_collision(force_fromtag_origin, self.velocity, frametime, v_add, autocvar_g_vehicle_racer_collision_multiplier); push_vector += racer_force_from_tag("tag_engine_fl", autocvar_g_vehicle_racer_springlength, autocvar_g_vehicle_racer_hoverpower); fl_push = force_fromtag_normpower; - vehicles_sweap_collision(force_fromtag_origin, self.velocity, frametime, v_add, autocvar_g_vehicle_racer_collision_multiplier); + //vehicles_sweap_collision(force_fromtag_origin, self.velocity, frametime, v_add, autocvar_g_vehicle_racer_collision_multiplier); push_vector += racer_force_from_tag("tag_engine_br", autocvar_g_vehicle_racer_springlength, autocvar_g_vehicle_racer_hoverpower); br_push = force_fromtag_normpower; - vehicles_sweap_collision(force_fromtag_origin, self.velocity, frametime, v_add, autocvar_g_vehicle_racer_collision_multiplier); + //vehicles_sweap_collision(force_fromtag_origin, self.velocity, frametime, v_add, autocvar_g_vehicle_racer_collision_multiplier); push_vector += racer_force_from_tag("tag_engine_bl", autocvar_g_vehicle_racer_springlength, autocvar_g_vehicle_racer_hoverpower); bl_push = force_fromtag_normpower; - vehicles_sweap_collision(force_fromtag_origin, self.velocity, frametime, v_add, autocvar_g_vehicle_racer_collision_multiplier); + //vehicles_sweap_collision(force_fromtag_origin, self.velocity, frametime, v_add, autocvar_g_vehicle_racer_collision_multiplier); self.velocity += (push_vector * frametime); // Anti ocilation if(self.velocity_z > 0) - self.velocity_z *= autocvar_g_vehicle_racer_upforcedamper; + self.velocity_z *= 1 - (autocvar_g_vehicle_racer_upforcedamper * frametime); - self.velocity += v_add; + self.velocity += v_add; self.velocity_z -= autocvar_sv_gravity * frametime; push_vector_x = (fl_push - bl_push); @@ -106,6 +107,7 @@ void racer_align4point() // Apply angle diffrance self.angles_z += push_vector_z * frametime; self.angles_x += push_vector_x * frametime; + // Apply stabilizer self.angles_x *= 1 - (autocvar_g_vehicle_racer_anglestabilizer * frametime); self.angles_z *= 1 - (autocvar_g_vehicle_racer_anglestabilizer * frametime); @@ -507,8 +509,6 @@ void racer_think() { float a, b, c; - self.nextthink = time; - a = autocvar_g_vehicle_racer_anglestabilizer; b = autocvar_g_vehicle_racer_springlength; c = autocvar_g_vehicle_racer_hoverpower; @@ -517,10 +517,10 @@ void racer_think() autocvar_g_vehicle_racer_springlength = 96; autocvar_g_vehicle_racer_hoverpower = 300; - racer_align4point(); + racer_align4point(); //time - self.nextthink); - if(self.velocity_z < 0) - self.velocity_z *= 0.95; + //if(self.velocity_z > 0) + // self.velocity_z *= 0.95; autocvar_g_vehicle_racer_anglestabilizer = a; autocvar_g_vehicle_racer_springlength = b; @@ -528,11 +528,13 @@ void racer_think() self.velocity_x *= 0.95; self.velocity_y *= 0.95; + + self.nextthink = time + 0.05; } void racer_enter() { - self.movetype = MOVETYPE_BOUNCEMISSILE; + self.movetype = MOVETYPE_BOUNCE; //MISSILE; self.owner.vehicle_health = (self.vehicle_health / autocvar_g_vehicle_racer_health); self.owner.vehicle_shield = (self.vehicle_shield / autocvar_g_vehicle_racer_shield); } diff --git a/qcsrc/server/vehicles/vehicles.qc b/qcsrc/server/vehicles/vehicles.qc index 13b52ce22..5c4845959 100644 --- a/qcsrc/server/vehicles/vehicles.qc +++ b/qcsrc/server/vehicles/vehicles.qc @@ -244,7 +244,6 @@ void vehicles_touch() Damage(other, self, self.owner, autocvar_g_vehicles_crush_dmg, DEATH_SBCRUSH, '0 0 0', normalize(other.origin - self.origin) * autocvar_g_vehicles_crush_force); } } - return; } diff --git a/vehicle_racer.cfg b/vehicle_racer.cfg index 8895746f3..63d7a78bc 100644 --- a/vehicle_racer.cfg +++ b/vehicle_racer.cfg @@ -21,10 +21,10 @@ set g_vehicle_racer_afterburn_cost 75 // energy consumed per second set g_vehicle_racer_hovertype 0 // 0 = hover, != 0 = maglev set g_vehicle_racer_hoverpower 3600 // NOTE!! x 4 (4 engines) -set g_vehicle_racer_upforcedamper 0.94 +set g_vehicle_racer_upforcedamper 4 set g_vehicle_racer_downforce 0.01 -set g_vehicle_racer_springlength 40 +set g_vehicle_racer_springlength 60 set g_vehicle_racer_collision_multiplier 0.05 set g_vehicle_racer_anglestabilizer 2