From fa8304f70d878b93026cf15f72c5b3f501956b3b Mon Sep 17 00:00:00 2001
From: Marco Hladik <marco@icculus.org>
Date: Wed, 22 Apr 2020 20:04:01 +0200
Subject: [PATCH] CBaseEntity: Reset rendermode attributes upon Respawn()

---
 src/gs-entbase/server/baseentity.cpp | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)

diff --git a/src/gs-entbase/server/baseentity.cpp b/src/gs-entbase/server/baseentity.cpp
index c4e1cb29..4693682d 100644
--- a/src/gs-entbase/server/baseentity.cpp
+++ b/src/gs-entbase/server/baseentity.cpp
@@ -48,6 +48,11 @@ class CBaseEntity
 	float m_old_iRenderMode;
 	float m_old_flRenderAmt;
 	vector m_old_vecRenderColor;
+
+	int m_spawn_iRenderFX;
+	float m_spawn_iRenderMode;
+	float m_spawn_flRenderAmt;
+	vector m_spawn_vecRenderColor;
 #else
 	float oldnet_alpha;
 #endif
@@ -278,21 +283,27 @@ CBaseEntity::CBaseEntity(void)
 			break;
 		case "color":
 			m_vecRenderColor = stov(argv(i+1));
+			m_spawn_vecRenderColor = stov(argv(i+1));
 			break;
 		case "alpha":
 			m_flRenderAmt = stof(argv(i+1));
+			m_spawn_flRenderAmt = stof(argv(i+1));
 			break;
 		case "renderamt":
 			m_flRenderAmt = stof(argv(i+1)) / 255;
+			m_spawn_flRenderAmt = stof(argv(i+1)) / 255;
 			break;
 		case "rendercolor":
 			m_vecRenderColor = stov(argv(i+1)) / 255;
+			m_spawn_vecRenderColor = stov(argv(i+1)) / 255;
 			break;
 		case "rendermode":
 			m_iRenderMode = stoi(argv(i+1));
+			m_spawn_iRenderMode = stoi(argv(i+1));
 			break;
 		case "renderfx":
 			m_iRenderFX = stoi(argv(i+1));
+			m_spawn_iRenderFX = stoi(argv(i+1));
 			break;
 		case "parentname":
 			m_parent = argv(i+1);
@@ -325,6 +336,12 @@ CBaseEntity::Respawn(void)
 	health = m_oldHealth;
 	origin = m_oldOrigin;
 	angles = m_oldAngle;
+
+	m_iRenderFX = m_spawn_iRenderFX;
+	m_iRenderMode = m_spawn_iRenderMode;
+	m_flRenderAmt = m_spawn_flRenderAmt;
+	m_vecRenderColor = m_spawn_vecRenderColor;
+
 	setorigin(this, origin);
 
 	if (model != "") {