From f9798b48f96a2147ee2012381f503ae18e4d1dfc Mon Sep 17 00:00:00 2001 From: Marco Cawthorne Date: Sun, 30 Apr 2023 11:24:49 -0700 Subject: [PATCH] player: Fix for server-side controlled rendermodes on player entities --- src/shared/player.qc | 54 +++++++++++++++++++++----------------------- 1 file changed, 26 insertions(+), 28 deletions(-) diff --git a/src/shared/player.qc b/src/shared/player.qc index 44a6953..c4d4330 100644 --- a/src/shared/player.qc +++ b/src/shared/player.qc @@ -340,31 +340,6 @@ player::ReceiveEntity(float new, float flChanged) if (flChanged & PLAYER_ITEMS || flChanged & PLAYER_HEALTH) { HUD_ItemNotify_Check(this); - - if (HasInvisibility()) { - SetRenderMode(RM_DONTRENDER); - SetRenderFX(RFX_GLOWSHELL); - SetRenderColor([0.5, 0.5, 0.5]); - SetRenderAmt(0.1f); - } else if (HasQuadDamage()) { - SetRenderFX(RFX_GLOWSHELL); - SetRenderColor([0.5, 0.5, 1.0]); - SetRenderAmt(1.0f); - } else if (HasInvulnerability()) { - SetRenderFX(RFX_GLOWSHELL); - SetRenderColor([1.0, 0.5, 0.0]); - SetRenderAmt(1.0f); - } else if (HasEnviroSuit()) { - SetRenderFX(RFX_GLOWSHELL); - SetRenderColor([0.5, 1.0, 0.5]); - SetRenderAmt(1.0f); - } else { - SetRenderMode(RM_NORMAL); - SetRenderFX(RM_NORMAL); - SetRenderColor([1.0, 1.0, 1.0]); - SetRenderAmt(1.0f); - } - p_model.SetRenderMode(GetRenderMode()); p_model.SetRenderFX(GetRenderFX()); p_model.SetRenderColor(GetRenderColor()); @@ -483,30 +458,53 @@ player::Restore(string strKey, string strValue) void player::EvaluateEntity(void) { + /* check artifacts for their effect time */ if (g_items & ITEM_QUAD) { if (m_quadFinishTime < time) { g_items &= ~ITEM_QUAD; } } - if (g_items & ITEM_INVIS) { if (m_invisFinishTime < time) { g_items &= ~ITEM_INVIS; } } - if (g_items & ITEM_INVULN) { if (m_invulnFinishTime < time) { g_items &= ~ITEM_INVULN; } } - if (g_items & ITEM_ENVIROSUIT) { if (m_enviroFinishTime < time) { g_items &= ~ITEM_ENVIROSUIT; } } + /* depending on who's left, set the appropriate rendering mode */ + if (HasInvisibility()) { + SetRenderMode(RM_DONTRENDER); + SetRenderFX(RFX_GLOWSHELL); + SetRenderColor([0.5, 0.5, 0.5]); + SetRenderAmt(0.1f); + } else if (HasQuadDamage()) { + SetRenderFX(RFX_GLOWSHELL); + SetRenderColor([0.5, 0.5, 1.0]); + SetRenderAmt(1.0f); + } else if (HasInvulnerability()) { + SetRenderFX(RFX_GLOWSHELL); + SetRenderColor([1.0, 0.5, 0.0]); + SetRenderAmt(1.0f); + } else if (HasEnviroSuit()) { + SetRenderFX(RFX_GLOWSHELL); + SetRenderColor([0.5, 1.0, 0.5]); + SetRenderAmt(1.0f); + } else { + SetRenderMode(RM_NORMAL); + SetRenderFX(RM_NORMAL); + SetRenderColor([1.0, 1.0, 1.0]); + SetRenderAmt(1.0f); + } + if (health > 100) { if (m_megaHealthTime < time) { health -= 1;