From f5556655d20b2a899b89adf50613649b9ae8b4c1 Mon Sep 17 00:00:00 2001 From: Marco Cawthorne Date: Sun, 16 Apr 2023 10:42:53 -0700 Subject: [PATCH] player: Set render properties based on the artifact we're carrying (with priority on invisibility) --- src/server/item_artifact.qc | 4 ---- src/shared/player.qc | 27 ++++++++++++++++++++++++++- 2 files changed, 26 insertions(+), 5 deletions(-) diff --git a/src/server/item_artifact.qc b/src/server/item_artifact.qc index 75874af..27af593 100644 --- a/src/server/item_artifact.qc +++ b/src/server/item_artifact.qc @@ -49,10 +49,6 @@ item_artifact::Touch(entity eToucher) } pl.g_items |= m_itemID; - pl.SetRenderMode(GetRenderMode()); - pl.SetRenderFX(GetRenderFX()); - pl.SetRenderColor(GetRenderColor()); - pl.SetRenderAmt(GetRenderAmt()); /* TODO: if deathmatch is 4 and player invincible, don't pick up */ if (cvar("deathmatch") == 0 || cvar("deathmatch") == 2) { diff --git a/src/shared/player.qc b/src/shared/player.qc index ccd2a93..2354520 100644 --- a/src/shared/player.qc +++ b/src/shared/player.qc @@ -335,8 +335,33 @@ player::ReceiveEntity(float new, float flChanged) HUD_AmmoNotify_Check(this); } - if (flChanged & PLAYER_ITEMS || flChanged & PLAYER_HEALTH) + 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(0.45f); + } else if (HasInvulnerability()) { + SetRenderFX(RFX_GLOWSHELL); + SetRenderColor([1.0, 0.5, 0.0]); + SetRenderAmt(0.5f); + } else if (HasEnviroSuit()) { + SetRenderFX(RFX_GLOWSHELL); + SetRenderColor([0.5, 1.0, 0.5]); + SetRenderAmt(0.45f); + } + + p_model.SetRenderMode(GetRenderMode()); + p_model.SetRenderFX(GetRenderFX()); + p_model.SetRenderColor(GetRenderColor()); + p_model.SetRenderAmt(GetRenderAmt()); + } } /*