Add get/set methods for rendermodes so we can issue network-updates

directly instead of wasting attributes to keep track of changes.
This commit is contained in:
Marco Cawthorne 2020-04-22 20:33:15 +02:00
parent fa8304f70d
commit 61ea2dfe6c
8 changed files with 49 additions and 48 deletions

View file

@ -14,6 +14,10 @@
* OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
/* a lot of the rendering info is assembled with the following url:
* https://sites.google.com/site/svenmanor/rendermodes
* for reference. I thank thee fellow soldiers at sven manor! */
var int autocvar_cl_showtriggers = FALSE;
string __fullspawndata;

View file

@ -44,11 +44,6 @@ class CBaseEntity
float m_flRenderAmt;
vector m_vecRenderColor;
int m_old_iRenderFX;
float m_old_iRenderMode;
float m_old_flRenderAmt;
vector m_old_vecRenderColor;
int m_spawn_iRenderFX;
float m_spawn_iRenderMode;
float m_spawn_flRenderAmt;
@ -66,8 +61,42 @@ class CBaseEntity
virtual float(entity, float) SendEntity;
virtual void(int iHitBody) Pain;
virtual void(int iHitBody) Death;
#ifdef GS_RENDERFX
virtual void(int) SetRenderFX;
virtual void(float) SetRenderMode;
virtual void(float) SetRenderAmt;
virtual void(vector) SetRenderColor;
#endif
};
#ifdef GS_RENDERFX
void
CBaseEntity::SetRenderFX(int newFX)
{
m_iRenderFX = newFX;
SendFlags |= BASEFL_CHANGED_RENDERFX;
}
void
CBaseEntity::SetRenderMode(float newMode)
{
m_iRenderMode = newMode;
SendFlags |= BASEFL_CHANGED_RENDERMODE;
}
void
CBaseEntity::SetRenderAmt(float newAmt)
{
m_flRenderAmt = newAmt;
SendFlags |= BASEFL_CHANGED_RENDERAMT;
}
void
CBaseEntity::SetRenderColor(vector newColor)
{
m_vecRenderColor = newColor;
SendFlags |= BASEFL_CHANGED_RENDERCOLOR;
}
#endif
/* Make sure StartFrame calls this */
float
CBaseEntity::SendEntity(entity ePEnt, float fChanged)
@ -206,22 +235,7 @@ CBaseEntity::ParentUpdate(void)
oldnet_body = m_iBody;
}
#ifdef GS_RENDERFX
if (m_old_iRenderFX != m_iRenderFX) {
SendFlags |= BASEFL_CHANGED_RENDERFX;
m_old_iRenderFX = m_iRenderFX;
}
if (m_old_iRenderMode != m_iRenderMode) {
SendFlags |= BASEFL_CHANGED_RENDERMODE;
m_old_iRenderMode = m_iRenderMode;
}
if (m_old_flRenderAmt != m_flRenderAmt) {
SendFlags |= BASEFL_CHANGED_RENDERAMT;
m_old_flRenderAmt = m_flRenderAmt;
}
if (m_old_vecRenderColor != m_vecRenderColor) {
SendFlags |= BASEFL_CHANGED_RENDERCOLOR;
m_old_vecRenderColor = m_vecRenderColor;
}
#else
if (alpha != oldnet_alpha) {
SendFlags |= BASEFL_CHANGED_ALPHA;

View file

@ -133,7 +133,7 @@ CBaseTrigger::InitBrushTrigger(void)
setmodel(this, m_oldModel);
movetype = MOVETYPE_NONE;
solid = SOLID_BSPTRIGGER;
m_iRenderMode = RM_TRIGGER;
SetRenderMode(RM_TRIGGER);
}
void

View file

@ -24,7 +24,7 @@
Decorative, does nothing yet.
*/
class cycler_sprite:CBaseTrigger
class cycler_sprite:CBaseEntity
{
};

View file

@ -47,26 +47,22 @@ env_render::Trigger(void)
CBaseEntity trigger = (CBaseEntity)e;
dprint(sprintf("^2env_render::^3Trigger^7: with spawnflags %d\n", spawnflags));
print(sprintf("\tTarget: %s\n", m_strTarget));
dprint(sprintf("\tTarget: %s\n", m_strTarget));
if (!(spawnflags & SF_NORENDERMODE)) {
dprint(sprintf("\tMode change from %d to %d\n", trigger.m_iRenderMode, m_iRenderMode));
trigger.m_iRenderMode = m_iRenderMode;
trigger.SendFlags |= BASEFL_CHANGED_RENDERMODE;
trigger.SetRenderMode(m_iRenderMode);
}
if (!(spawnflags & SF_NORENDERCOLOR)) {
dprint(sprintf("\tColor change from %v to %v\n", trigger.m_vecRenderColor, m_vecRenderColor));
trigger.m_vecRenderColor = m_vecRenderColor;
trigger.SendFlags |= BASEFL_CHANGED_RENDERCOLOR;
trigger.SetRenderColor(m_vecRenderColor);
}
if (!(spawnflags & SF_NORENDERAMT)) {
dprint(sprintf("\tAmt change from %d to %d\n", trigger.m_flRenderAmt, m_flRenderAmt));
trigger.m_flRenderAmt = m_flRenderAmt;
trigger.SendFlags |= BASEFL_CHANGED_RENDERAMT;
trigger.SetRenderAmt(m_flRenderAmt);
}
if (!(spawnflags & SF_NORENDERFX)) {
dprint(sprintf("\tFX change from %i to %i\n", trigger.m_iRenderFX, m_iRenderFX));
trigger.m_iRenderFX = m_iRenderFX;
trigger.SendFlags |= BASEFL_CHANGED_RENDERFX;
trigger.SetRenderFX(m_iRenderFX);
}
}
}

View file

@ -41,14 +41,7 @@ void func_ladder::Respawn(void)
movetype = MOVETYPE_NONE;
skin = CONTENT_LADDER;
solid = SOLID_BSP;
#ifdef GS_DEVELOPER
m_iRenderMode = RM_SOLID;
m_flRenderAmt = 0.25f;
#else
m_iRenderMode = RM_SOLID;
m_flRenderAmt = 0.0f;
#endif
SetRenderMode(RM_TRIGGER);
}
void func_ladder::func_ladder(void)

View file

@ -59,13 +59,7 @@ void
trigger_once::Respawn(void)
{
solid = SOLID_TRIGGER;
#ifdef GS_DEVELOPER
m_iRenderMode = RM_SOLID;
m_flRenderAmt = 0.25f;
#else
m_iRenderMode = RM_SOLID;
m_flRenderAmt = 0.0f;
#endif
SetRenderMode(RM_TRIGGER);
}
void

View file

@ -34,5 +34,5 @@ trigger_transition::trigger_transition(void)
setmodel(this, model);
model = __NULL__;
modelindex = 0;
m_iRenderMode = RM_TRIGGER;
SetRenderMode(RM_TRIGGER);
}