From 4c6800aa4fd0ec1a2f043ee02bd62fe45a58fbeb Mon Sep 17 00:00:00 2001 From: Marco Hladik Date: Thu, 3 Feb 2022 21:18:31 -0800 Subject: [PATCH] Some fixes/checks for prop_dynamic that I forgot to revert while testing. Also added some changes to NSVehicle/prop_vehicle_drivable. --- src/gs-entbase/server/prop_dynamic.qc | 3 --- src/gs-entbase/shared/NSVehicle.qc | 6 ++++++ src/gs-entbase/shared/prop_vehicle_driveable.qc | 6 ++++-- 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/src/gs-entbase/server/prop_dynamic.qc b/src/gs-entbase/server/prop_dynamic.qc index 5523df6e..b8ef58ca 100644 --- a/src/gs-entbase/server/prop_dynamic.qc +++ b/src/gs-entbase/server/prop_dynamic.qc @@ -43,12 +43,9 @@ prop_dynamic::Respawn(void) { super::Respawn(); SetModel(GetSpawnModel()); - //UpdateBounds(); if (spawnflags & PRPDYN_NONSOLID) SetSolid(SOLID_NOT); - - SetSolid(SOLID_BBOX); } void diff --git a/src/gs-entbase/shared/NSVehicle.qc b/src/gs-entbase/shared/NSVehicle.qc index bcc7bee4..f9da8620 100644 --- a/src/gs-entbase/shared/NSVehicle.qc +++ b/src/gs-entbase/shared/NSVehicle.qc @@ -200,6 +200,9 @@ NSVehicle::PlayerEnter(base_player pl) { vector offs; + if (!pl) + return; + /* cache the position */ offs = pl.origin - origin; @@ -218,6 +221,9 @@ NSVehicle::PlayerEnter(base_player pl) void NSVehicle::PlayerLeave(base_player pl) { + if (!pl) + return; + pl.movetype = MOVETYPE_WALK; pl.flags &= ~FL_INVEHICLE; diff --git a/src/gs-entbase/shared/prop_vehicle_driveable.qc b/src/gs-entbase/shared/prop_vehicle_driveable.qc index 7e910653..22cd6604 100644 --- a/src/gs-entbase/shared/prop_vehicle_driveable.qc +++ b/src/gs-entbase/shared/prop_vehicle_driveable.qc @@ -242,8 +242,11 @@ prop_vehicle_driveable_wheel::Accel(float flMoveTime, float m_flTurn) makevectors(vecAngle); if (m_flTurn) { + /* cripple turnrate by our current velocity */ + float turnbreak = bound(0, vlen(velocity), 100) * 0.5; + /* rotates v_forward */ - rotatevectorsbyangle([ 0, m_flTurn * 50, 0]); + rotatevectorsbyangle([ 0, m_flTurn * turnbreak, 0]); } tracebox(origin, mins, maxs, origin - v_up, MOVE_NOMONSTERS, owner); @@ -405,7 +408,6 @@ prop_vehicle_driveable::RunVehiclePhysics(void) angles[0] = bound(-45, angles[0], 45); angles[2] = bound(-45, angles[2], 45); - velocity[0] = bound(-1000, velocity[0], 1000); velocity[1] = bound(-1000, velocity[1], 1000); velocity[2] = bound(-1000, velocity[2], 1000);