player: Fix for server-side controlled rendermodes on player entities

This commit is contained in:
Marco Cawthorne 2023-04-30 11:24:49 -07:00
parent f0d7288871
commit f9798b48f9
Signed by: eukara
GPG Key ID: CE2032F0A2882A22
1 changed files with 26 additions and 28 deletions

View File

@ -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;