#include "racer.qh"
+#if defined(SVQC)
+ #include <common/gamemodes/gamemode/ctf/sv_ctf.qh>
+ #include <common/mapobjects/trigger/impulse.qh>
+#endif
+
#ifdef GAMEQC
#ifdef SVQC
-#include <common/mapobjects/trigger/impulse.qh>
-
bool autocvar_g_vehicle_racer = true;
float autocvar_g_vehicle_racer_thinkrate = 0.05; // TODO: any higher causes it to sink in liquids
vector autocvar_g_vehicle_racer_bouncepain = '200 0.15 150';
.float racer_watertime;
+.float racer_air_finished; // TODO: use a standard air meter for entities
var .vector(entity this, string tag_name, float spring_length, float max_power) racer_force_from_tag;
{
uforce = autocvar_g_vehicle_racer_water_upforcedamper;
- if(PHYS_INPUT_BUTTON_CROUCH(player) && time < this.air_finished)
+ if(PHYS_INPUT_BUTTON_CROUCH(player) && time < this.racer_air_finished)
this.velocity_z += 30;
else
this.velocity_z += 200;
void racer_fire_rocket_aim(entity this, entity player, string tagname, entity trg)
{
vector v = gettaginfo(this, gettagindex(this, tagname));
- racer_fire_rocket(player, v, v_forward, trg);
+ racer_fire_rocket(this, player, v, v_forward, trg);
}
bool racer_frame(entity this, float dt)
int cont = Mod_Q1BSP_SuperContentsFromNativeContents(pointcontents(vehic.origin));
if(!(cont & DPCONTENTS_WATER))
- vehic.air_finished = 0;
- else if (!vehic.air_finished)
- vehic.air_finished = time + autocvar_g_vehicle_racer_water_time;
+ vehic.racer_air_finished = 0;
+ else if (!vehic.racer_air_finished)
+ vehic.racer_air_finished = time + autocvar_g_vehicle_racer_water_time;
if(IS_DEAD(vehic))
{
}
}
- if(!weaponLocked(player))
+ if (!weaponLocked(player) && !weaponUseForbidden(player))
if(time > vehic.delay)
if(PHYS_INPUT_BUTTON_ATCK2(player))
{