30#define PHYS_BUGRIGS(s) STAT(BUGRIGS, s)
31#define PHYS_BUGRIGS_ACCEL(s) STAT(BUGRIGS_ACCEL, s)
32#define PHYS_BUGRIGS_AIR_STEERING(s) STAT(BUGRIGS_AIR_STEERING, s)
33#define PHYS_BUGRIGS_ANGLE_SMOOTHING(s) STAT(BUGRIGS_ANGLE_SMOOTHING, s)
34#define PHYS_BUGRIGS_CAR_JUMPING(s) STAT(BUGRIGS_CAR_JUMPING, s)
35#define PHYS_BUGRIGS_FRICTION_AIR(s) STAT(BUGRIGS_FRICTION_AIR, s)
36#define PHYS_BUGRIGS_FRICTION_BRAKE(s) STAT(BUGRIGS_FRICTION_BRAKE, s)
37#define PHYS_BUGRIGS_FRICTION_FLOOR(s) STAT(BUGRIGS_FRICTION_FLOOR, s)
38#define PHYS_BUGRIGS_PLANAR_MOVEMENT(s) STAT(BUGRIGS_PLANAR_MOVEMENT, s)
39#define PHYS_BUGRIGS_REVERSE_SPEEDING(s) STAT(BUGRIGS_REVERSE_SPEEDING, s)
40#define PHYS_BUGRIGS_REVERSE_SPINNING(s) STAT(BUGRIGS_REVERSE_SPINNING, s)
41#define PHYS_BUGRIGS_REVERSE_STOPPING(s) STAT(BUGRIGS_REVERSE_STOPPING, s)
42#define PHYS_BUGRIGS_SPEED_POW(s) STAT(BUGRIGS_SPEED_POW, s)
43#define PHYS_BUGRIGS_SPEED_REF(s) STAT(BUGRIGS_SPEED_REF, s)
44#define PHYS_BUGRIGS_STEER(s) STAT(BUGRIGS_STEER, s)
46#define PHYS_BUGRIGS(s) g_bugrigs
47#define PHYS_BUGRIGS_ACCEL(s) g_bugrigs_accel
48#define PHYS_BUGRIGS_AIR_STEERING(s) g_bugrigs_air_steering
49#define PHYS_BUGRIGS_ANGLE_SMOOTHING(s) g_bugrigs_angle_smoothing
50#define PHYS_BUGRIGS_CAR_JUMPING(s) g_bugrigs_planar_movement_car_jumping
51#define PHYS_BUGRIGS_FRICTION_AIR(s) g_bugrigs_friction_air
52#define PHYS_BUGRIGS_FRICTION_BRAKE(s) g_bugrigs_friction_brake
53#define PHYS_BUGRIGS_FRICTION_FLOOR(s) g_bugrigs_friction_floor
54#define PHYS_BUGRIGS_PLANAR_MOVEMENT(s) g_bugrigs_planar_movement
55#define PHYS_BUGRIGS_REVERSE_SPEEDING(s) g_bugrigs_reverse_speeding
56#define PHYS_BUGRIGS_REVERSE_SPINNING(s) g_bugrigs_reverse_spinning
57#define PHYS_BUGRIGS_REVERSE_STOPPING(s) g_bugrigs_reverse_stopping
58#define PHYS_BUGRIGS_SPEED_POW(s) g_bugrigs_speed_pow
59#define PHYS_BUGRIGS_SPEED_REF(s) g_bugrigs_speed_ref
60#define PHYS_BUGRIGS_STEER(s) g_bugrigs_steer
94 float ret =
vectoyaw(
'0 1 0' * down +
'1 0 0' * forward);
96 float angle_mult = forward / (800 + forward);
99 return ret * angle_mult + 360 * (1 - angle_mult);
101 return ret * angle_mult;
183 this.
angles_y += steer * dt * steerfactor;
186 myspeed += accel * accelfactor * dt;
188 rigvel = myspeed *
v_forward +
'0 0 1' * upspeed;
196 float steerfactor = -myspeed * f;
197 this.
angles_y += steer * dt * steerfactor;
210 vector rigvel_xy, neworigin, up;
214 rigvel_xy =
vec2(rigvel);
234 neworigin = this.origin;
257 this.
velocity = (neworigin - this.origin) * (1.0 / dt);
271 this.
angles = vectoangles2(
285 vel_local.y =
v_right * this.velocity;
286 vel_local.z =
v_up * this.velocity;
293 vector vf1, vu1, smoothangles;
302 vu1 = vu1 +
v_up * (1 - f);
303 smoothangles = vectoangles2(vf1, vu1);
304 this.angles_x = -smoothangles.x;
305 this.angles_z = smoothangles.z;
314 float dt =
M_ARGV(2,
float);
319 player.angles = player.bugrigs_prevangles;
331 player.bugrigs_prevangles = player.angles;
333 player.disableclientprediction = 2;
343 stuffcmd(player,
"cl_cmd settemp chase_active 1\n");
#define REGISTER_MUTATOR(...)
#define MUTATOR_HOOKFUNCTION(...)
#define PHYS_BUGRIGS_REVERSE_SPINNING(s)
#define PHYS_BUGRIGS_FRICTION_FLOOR(s)
#define PHYS_BUGRIGS_SPEED_POW(s)
#define PHYS_BUGRIGS_STEER(s)
#define PHYS_BUGRIGS_REVERSE_SPEEDING(s)
void RaceCarPhysics(entity this, float dt)
float racecar_angle(float forward, float down)
#define PHYS_BUGRIGS_FRICTION_BRAKE(s)
#define PHYS_BUGRIGS_FRICTION_AIR(s)
#define PHYS_BUGRIGS_ACCEL(s)
#define PHYS_BUGRIGS_CAR_JUMPING(s)
vector bugrigs_prevangles
#define PHYS_BUGRIGS_SPEED_REF(s)
#define PHYS_BUGRIGS_REVERSE_STOPPING(s)
#define PHYS_BUGRIGS_ANGLE_SMOOTHING(s)
#define PHYS_BUGRIGS_AIR_STEERING(s)
#define PHYS_BUGRIGS_PLANAR_MOVEMENT(s)
var entity(vector mins, vector maxs,.entity tofield) findbox_tofield_OrFallback
float g_bugrigs_angle_smoothing
float g_bugrigs_reverse_speeding
float g_bugrigs_reverse_spinning
float g_bugrigs_reverse_stopping
float g_bugrigs_friction_air
float g_bugrigs_friction_floor
float g_bugrigs_air_steering
bool g_bugrigs_planar_movement
float g_bugrigs_speed_ref
float g_bugrigs_friction_brake
bool g_bugrigs_planar_movement_car_jumping
float g_bugrigs_speed_pow
const float MOVE_NOMONSTERS
vector trace_plane_normal
void set_movetype(entity this, int mt)
#define UNSET_ONGROUND(s)
const int MOVETYPE_NOCLIP
strcat(_("^F4Countdown stopped!"), "\n^BG", _("Teams are too unbalanced."))