From 9f95fd11c2e9b7b76825a0e82389f57b0eb48381 Mon Sep 17 00:00:00 2001 From: Marco Hladik Date: Fri, 18 Sep 2020 14:57:52 +0200 Subject: [PATCH] func_wall: Clean up and make sure .frame is reset upon Respawn() --- src/gs-entbase/server/func_wall.cpp | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/src/gs-entbase/server/func_wall.cpp b/src/gs-entbase/server/func_wall.cpp index 67ecf399..f9ebc29e 100644 --- a/src/gs-entbase/server/func_wall.cpp +++ b/src/gs-entbase/server/func_wall.cpp @@ -24,6 +24,8 @@ On idTech 2 BSPs, it will change texture variants when triggered. class func_wall:CBaseTrigger { void(void) func_wall; + + virtual void(void) Respawn; virtual void(entity, int) Trigger; }; @@ -42,14 +44,23 @@ func_wall::Trigger(entity act, int state) } } +void +func_wall::Respawn(void) +{ + /* reset the visual parameters */ + CBaseEntity::Respawn(); + + /* func_wall specifics */ + SetAngles([0,0,0]); + SetMovetype(MOVETYPE_PUSH); + SetSolid(SOLID_BSP); + SetModel(m_oldModel); + SetOrigin(m_oldOrigin); + SetFrame(0); +} + void func_wall::func_wall(void) { - precache_model(model); - //angles = [0,0,0]; - movetype = MOVETYPE_PUSH; - solid = SOLID_BSP; - SetModel(model); - SetOrigin(origin); CBaseTrigger::CBaseTrigger(); }