From 6a658c52686730039cb47fb970696213aa3e834e Mon Sep 17 00:00:00 2001 From: Marco Hladik Date: Fri, 15 Apr 2022 10:19:22 -0700 Subject: [PATCH] NSVehicle: Add the following methods - HidePlayermodel (for the self-driver) and DriverAnimation. The latter is a gentle request and the mod doesn't have to respect it, but should be used as a fallback. --- src/client/player.qc | 8 +++++++- src/gs-entbase/shared/NSMonster.qc | 2 +- src/gs-entbase/shared/NSVehicle.h | 2 ++ src/gs-entbase/shared/NSVehicle.qc | 11 +++++++++++ 4 files changed, 21 insertions(+), 2 deletions(-) diff --git a/src/client/player.qc b/src/client/player.qc index a1e7131c..31dc8a24 100644 --- a/src/client/player.qc +++ b/src/client/player.qc @@ -62,12 +62,18 @@ player::predraw(void) } } + if (this_us && flags & FL_INVEHICLE) { + NSVehicle veh = (NSVehicle)vehicle; + if (veh) + this_us = veh.HidePlayermodel(); + } + if (autocvar_cl_thirdperson == TRUE || !this_us) { Voice_Draw3D(this); Player_PreDraw(this, TRUE); if (p_model) addentity(p_model); - addentity(this); + //addentity(this); } else { Player_PreDraw(this, FALSE); if (p_model) diff --git a/src/gs-entbase/shared/NSMonster.qc b/src/gs-entbase/shared/NSMonster.qc index ea3929c2..bf4d3041 100644 --- a/src/gs-entbase/shared/NSMonster.qc +++ b/src/gs-entbase/shared/NSMonster.qc @@ -208,7 +208,7 @@ NSMonster::SeeThink(void) traceline(origin, w.origin, MOVE_EVERYTHING, this); /* we have line of sight with the player */ - if (trace_fraction == 1.0f) { + if (trace_fraction == 1.0f || trace_ent == w) { if (m_eEnemy != w) { m_eEnemy = w; AlertNearby(); diff --git a/src/gs-entbase/shared/NSVehicle.h b/src/gs-entbase/shared/NSVehicle.h index c1b5c6e9..b8239fac 100644 --- a/src/gs-entbase/shared/NSVehicle.h +++ b/src/gs-entbase/shared/NSVehicle.h @@ -45,6 +45,7 @@ class NSVehicle:NSSurfacePropEntity virtual void(void) UpdateView; virtual bool(void) HideViewWeapon; virtual bool(void) HideCrosshair; + virtual bool(void) HidePlayermodel; #else virtual vector(void) GetExitPos; virtual void(void) EvaluateEntity; @@ -57,6 +58,7 @@ class NSVehicle:NSSurfacePropEntity virtual void(base_player) PlayerEnter; virtual void(base_player) PlayerLeave; virtual void() PlayerInput; + virtual float(void) DriverAnimation; }; enumflags diff --git a/src/gs-entbase/shared/NSVehicle.qc b/src/gs-entbase/shared/NSVehicle.qc index 4297f0a3..709ee70a 100644 --- a/src/gs-entbase/shared/NSVehicle.qc +++ b/src/gs-entbase/shared/NSVehicle.qc @@ -14,6 +14,12 @@ * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ +float +NSVehicle::DriverAnimation(void) +{ + return (-1); +} + entity NSVehicle::GetDriver(void) { @@ -31,6 +37,11 @@ NSVehicle::HideCrosshair(void) { return true; } +bool +NSVehicle::HidePlayermodel(void) +{ + return true; +} void NSVehicle::DriverRelink(void)