From e5a3f0880c86ccfc5de7bce6ea072cb2fd53f903 Mon Sep 17 00:00:00 2001 From: Marco Hladik Date: Mon, 30 Mar 2020 16:22:24 +0200 Subject: [PATCH] Starting to clean up more RenderFX stuff, shoving most of it to CGame --- src/client/entities.c | 7 - src/client/npc.c | 6 +- src/client/player.c | 9 +- src/client/view.c | 2 +- src/gs-entbase/baseentity.h | 71 +++++++++ src/gs-entbase/client.src | 1 + src/gs-entbase/client/baseentity.cpp | 91 ++++++++--- src/gs-entbase/server.src | 1 + src/gs-entbase/server/baseentity.cpp | 147 +++++++++--------- src/gs-entbase/server/basemonster.cpp | 81 ---------- src/gs-entbase/server/env_fade.cpp | 8 +- src/gs-entbase/server/env_render.cpp | 10 +- src/server/scihunt/monster_scientist.cpp | 10 +- src/server/valve/input.c | 1 - src/server/valve/item_suit.cpp | 1 - src/server/valve/monster_hevsuit_dead.cpp | 4 +- src/server/valve/monster_hgrunt_dead.cpp | 2 +- src/server/valve/monster_scientist.cpp | 10 +- src/server/valve/monster_scientist_dead.cpp | 2 +- .../valve/monster_sitting_scientist.cpp | 8 +- src/shared/entities.h | 1 - 21 files changed, 261 insertions(+), 212 deletions(-) create mode 100644 src/gs-entbase/baseentity.h diff --git a/src/client/entities.c b/src/client/entities.c index 86c7907e..806e2d86 100644 --- a/src/client/entities.c +++ b/src/client/entities.c @@ -37,13 +37,6 @@ void CSQC_Ent_Update(float new) case ENT_PLAYER: Player_ReadEntity(new); break; - case ENT_NPC: - CBaseNPC n = (CBaseNPC)self; - if (new) { - spawnfunc_CBaseNPC(); - } - n.ReadEntity(readfloat()); - break; case ENT_SPRITE: env_sprite spr = (env_sprite)self; if (new) { diff --git a/src/client/npc.c b/src/client/npc.c index 8ec2ad9c..00ad4d11 100644 --- a/src/client/npc.c +++ b/src/client/npc.c @@ -26,6 +26,10 @@ class CBaseNPC:CBaseEntity float CBaseNPC::predraw(void) { +#ifdef GS_RENDERFX + RenderFXPass(); +#endif + if (lerpfrac > 0) { lerpfrac -= frametime * 5; if (lerpfrac < 0) { @@ -43,7 +47,7 @@ CBaseNPC::predraw(void) frame2time += clframetime; frame1time += clframetime; - bonecontrol5 = getchannellevel(this, CHAN_VOICE) * 20; + ProcessWordQue(); diff --git a/src/client/player.c b/src/client/player.c index 796c23c2..821635b0 100644 --- a/src/client/player.c +++ b/src/client/player.c @@ -59,8 +59,7 @@ void player::draw(void) } this.subblendfrac = - this.subblend2frac = this.pitch / 90; - + this.subblend2frac = this.pitch; Animation_PlayerUpdate(); /*makevectors([0, this.angles[1], 0]); @@ -113,7 +112,7 @@ void player::draw(void) } /* Turn torso */ - this.bonecontrol2 = (a)/-120; + this.basesubblendfrac = (a)/-120; /* Correct the legs */ this.angles[1] -= a; @@ -139,9 +138,9 @@ float player::predraw(void) makevectors(ang); traceline(src, src + (v_forward * 8096), FALSE, self); - /*if (serverkeyfloat("*bspversion") == 30) { + if (serverkeyfloat("*bspversion") == 30) { dynamiclight_add(trace_endpos + (v_forward * -2), 128, [1,1,1]); - } else */{ + } else { float p = dynamiclight_add(src, 512, [1,1,1], 0, "textures/flashlight"); dynamiclight_set(p, LFIELD_ANGLES, ang); dynamiclight_set(p, LFIELD_FLAGS, 3); diff --git a/src/client/view.c b/src/client/view.c index b543211b..bb59e442 100644 --- a/src/client/view.c +++ b/src/client/view.c @@ -158,7 +158,7 @@ void View_DrawViewModel(void) } else { if (eViewModel.forceshader) { eViewModel.forceshader = 0; - eViewModel.renderflags -= RF_USEAXIS; + eViewModel.renderflags &= ~RF_USEAXIS; } } diff --git a/src/gs-entbase/baseentity.h b/src/gs-entbase/baseentity.h new file mode 100644 index 00000000..f7b45cdb --- /dev/null +++ b/src/gs-entbase/baseentity.h @@ -0,0 +1,71 @@ +/* + * Copyright (c) 2016-2019 Marco Hladik + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER + * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING + * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +#define GS_RENDERFX + +#ifdef GS_RENDERFX +enum +{ + RM_NORMAL, + RM_COLOR, + RM_TEXTURE, + RM_GLOW, + RM_SOLID, + RM_ADDITIVE +}; + +enum +{ + RFX_SLOWPULSE, + RFX_FASTPULSE, + RFX_SLOWWIDEPULSE, + RFX_FASTWIDEPULSE, + RFX_SLOWFADEAWAY, + RFX_FASTFADEAWAY, + RFX_SLOWBECOMESOLID, + RFX_FASTBECOMESOLID, + RFX_SLOWSTROBE, + RFX_FASTSTROBE, + RFX_FASTERSTROBE, + RFX_SLOWFLICKER, + RFX_FASTFLICKER, + RFX_CONSTANTGLOW, + RFX_DISTORT, + RFX_HOLOGRAM +}; +#endif + +enumflags +{ + BASEFL_CHANGED_ORIGIN, + BASEFL_CHANGED_ANGLES, + BASEFL_CHANGED_MODELINDEX, + BASEFL_CHANGED_SIZE, + BASEFL_CHANGED_SOLID, + BASEFL_CHANGED_FRAME, + BASEFL_CHANGED_SKIN, + BASEFL_CHANGED_MOVETYPE, + BASEFL_CHANGED_EFFECTS, + BASEFL_CHANGED_BODY, +#ifdef GS_RENDERFX + BASEFL_CHANGED_RENDERCOLOR, + BASEFL_CHANGED_RENDERAMT, + BASEFL_CHANGED_RENDERFX, + BASEFL_CHANGED_RENDERMODE, +#else + BASEFL_CHANGED_ALPHA, +#endif +}; diff --git a/src/gs-entbase/client.src b/src/gs-entbase/client.src index fbe82ccf..a6d71486 100644 --- a/src/gs-entbase/client.src +++ b/src/gs-entbase/client.src @@ -3,6 +3,7 @@ #endif #includelist +baseentity.h materials.h client/baseentity.cpp client/env_cubemap.cpp diff --git a/src/gs-entbase/client/baseentity.cpp b/src/gs-entbase/client/baseentity.cpp index b20f995e..8167b4d4 100644 --- a/src/gs-entbase/client/baseentity.cpp +++ b/src/gs-entbase/client/baseentity.cpp @@ -17,23 +17,16 @@ string __fullspawndata; string Sentences_GetSamples(string); -// keep in sync with client/baseentity.cpp -enumflags -{ - BASEFL_CHANGED_ORIGIN, - BASEFL_CHANGED_ANGLES, - BASEFL_CHANGED_MODELINDEX, - BASEFL_CHANGED_SIZE, - BASEFL_CHANGED_SOLID, - BASEFL_CHANGED_FRAME, - BASEFL_CHANGED_SKIN, - BASEFL_CHANGED_MOVETYPE, - BASEFL_CHANGED_ALPHA, - BASEFL_CHANGED_EFFECTS -}; - class CBaseEntity { +#ifdef GS_RENDERFX + int m_iRenderFX; + float m_iRenderMode; + float m_flRenderAmt; + vector m_vecRenderColor; +#endif + + int m_iBody; float m_flSentenceTime; sound_t *m_pSentenceQue; int m_iSentenceCount; @@ -51,11 +44,51 @@ class CBaseEntity virtual void() ProcessWordQue; virtual void(float flChanged) ReadEntity; virtual float(void) predraw; + +#ifdef GS_RENDERFX + virtual void() RenderFXPass; +#endif }; +#ifdef GS_RENDERFX +void +CBaseEntity::RenderFXPass(void) +{ + if (m_iRenderFX == RFX_HOLOGRAM) { + scale = 1.0 * random(); + } + + switch (m_iRenderMode) { + case RM_NORMAL: + break; + case RM_COLOR: + break; + case RM_TEXTURE: + break; + case RM_GLOW: + effects = EF_ADDITIVE | EF_FULLBRIGHT; + break; + case RM_SOLID: + break; + case RM_ADDITIVE: + effects = EF_ADDITIVE; + break; + } + + colormod = m_vecRenderColor; + alpha = m_flRenderAmt; +} +#endif + float CBaseEntity::predraw(void) { +#ifdef GS_RENDERFX + RenderFXPass(); +#endif + + /* mouth flapping action */ + bonecontrol5 = getchannellevel(this, CHAN_VOICE) * 20; frame1time += clframetime; ProcessWordQue(); addentity(this); @@ -154,12 +187,34 @@ void CBaseEntity::ReadEntity(float flChanged) if (flChanged & BASEFL_CHANGED_SKIN) { skin = readbyte() - 128; } - if (flChanged & BASEFL_CHANGED_ALPHA) { - alpha = readfloat(); - } if (flChanged & BASEFL_CHANGED_EFFECTS) { effects = readfloat(); } + if (flChanged & BASEFL_CHANGED_BODY) { + m_iBody = readbyte(); + setcustomskin(this, "", sprintf("geomset 1 %i\n", m_iBody)); + } + +#ifdef GS_RENDERFX + if (flChanged & BASEFL_CHANGED_RENDERFX) { + m_iRenderFX = readbyte(); + } + if (flChanged & BASEFL_CHANGED_RENDERMODE) { + m_iRenderMode = readbyte(); + } + if (flChanged & BASEFL_CHANGED_RENDERCOLOR) { + m_vecRenderColor[0] = readfloat(); + m_vecRenderColor[1] = readfloat(); + m_vecRenderColor[2] = readfloat(); + } + if (flChanged & BASEFL_CHANGED_RENDERAMT) { + m_flRenderAmt = readfloat(); + } +#else + if (flChanged & BASEFL_CHANGED_ALPHA) { + alpha = readfloat(); + } +#endif if (modelindex) { drawmask = MASK_ENGINE; diff --git a/src/gs-entbase/server.src b/src/gs-entbase/server.src index d67c15f6..3b10200f 100644 --- a/src/gs-entbase/server.src +++ b/src/gs-entbase/server.src @@ -3,6 +3,7 @@ #endif #includelist +baseentity.h materials.h server/defs.h server/baseentity.cpp diff --git a/src/gs-entbase/server/baseentity.cpp b/src/gs-entbase/server/baseentity.cpp index dfbde098..7005f93c 100644 --- a/src/gs-entbase/server/baseentity.cpp +++ b/src/gs-entbase/server/baseentity.cpp @@ -14,31 +14,6 @@ * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ -enum -{ - RM_NORMAL, - RM_COLOR, - RM_TEXTURE, - RM_GLOW, - RM_SOLID, - RM_ADDITIVE -}; - -// keep in sync with client/baseentity.cpp -enumflags -{ - BASEFL_CHANGED_ORIGIN, - BASEFL_CHANGED_ANGLES, - BASEFL_CHANGED_MODELINDEX, - BASEFL_CHANGED_SIZE, - BASEFL_CHANGED_SOLID, - BASEFL_CHANGED_FRAME, - BASEFL_CHANGED_SKIN, - BASEFL_CHANGED_MOVETYPE, - BASEFL_CHANGED_ALPHA, - BASEFL_CHANGED_EFFECTS -}; - class CBaseEntity { string m_strTarget; @@ -49,6 +24,9 @@ class CBaseEntity vector m_oldOrigin; vector m_oldAngle; + int m_iBody; + int oldnet_body; + vector oldnet_origin; vector oldnet_angles; float oldnet_modelindex; @@ -56,20 +34,29 @@ class CBaseEntity vector oldnet_maxs; float oldnet_solid; float oldnet_movetype; - float oldnet_alpha; float oldnet_frame; float oldnet_skin; float oldnet_effects; - - float m_rendermode; - float m_renderamt; - vector m_rendercolor; + +#ifdef GS_RENDERFX + int m_iRenderFX; + float m_iRenderMode; + float m_flRenderAmt; + vector m_vecRenderColor; + + int m_old_iRenderFX; + float m_old_iRenderMode; + float m_old_flRenderAmt; + vector m_old_vecRenderColor; +#else + float oldnet_alpha; +#endif + string m_parent; void() CBaseEntity; virtual void() Respawn; virtual void() Hide; - virtual void() RendermodeUpdate; virtual void() ParentUpdate; virtual float(entity, float) SendEntity; virtual void(int iHitBody) Pain; @@ -120,12 +107,33 @@ float CBaseEntity::SendEntity(entity ePEnt, float fChanged) if (fChanged & BASEFL_CHANGED_SKIN) { WriteByte(MSG_ENTITY, skin + 128); } - if (fChanged & BASEFL_CHANGED_ALPHA) { - WriteFloat(MSG_ENTITY, alpha); - } if (fChanged & BASEFL_CHANGED_EFFECTS) { WriteFloat(MSG_ENTITY, effects); } + if (fChanged & BASEFL_CHANGED_BODY) { + WriteByte(MSG_ENTITY, m_iBody); + } + +#ifdef GS_RENDERFX + if (fChanged & BASEFL_CHANGED_RENDERFX) { + WriteByte(MSG_ENTITY, m_iRenderFX); + } + if (fChanged & BASEFL_CHANGED_RENDERMODE) { + WriteByte(MSG_ENTITY, m_iRenderMode); + } + if (fChanged & BASEFL_CHANGED_RENDERCOLOR) { + WriteFloat(MSG_ENTITY, m_vecRenderColor[0]); + WriteFloat(MSG_ENTITY, m_vecRenderColor[1]); + WriteFloat(MSG_ENTITY, m_vecRenderColor[2]); + } + if (fChanged & BASEFL_CHANGED_RENDERAMT) { + WriteFloat(MSG_ENTITY, m_flRenderAmt); + } +#else + if (fChanged & BASEFL_CHANGED_ALPHA) { + WriteFloat(MSG_ENTITY, alpha); + } +#endif return TRUE; } @@ -180,15 +188,34 @@ void CBaseEntity::ParentUpdate(void) SendFlags |= BASEFL_CHANGED_SKIN; oldnet_skin = skin; } - if (alpha != oldnet_alpha) { - SendFlags |= BASEFL_CHANGED_ALPHA; - oldnet_alpha = alpha; - } if (effects != oldnet_effects) { SendFlags |= BASEFL_CHANGED_EFFECTS; oldnet_effects = effects; } - +#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; + oldnet_alpha = alpha; + } +#endif + if (m_parent) { entity p = find(world, CBaseEntity::m_strTargetName, m_parent); @@ -210,9 +237,9 @@ void CBaseEntity :: CBaseEntity ( void ) } } - /*m_renderamt = 255; - m_rendercolor = [1,1,1]; - m_rendermode = 0;*/ + /*m_flRenderAmt = 255; + m_vecRenderColor = [1,1,1]; + m_iRenderMode = 0;*/ gflags = GF_CANRESPAWN; effects |= EF_NOSHADOW; @@ -243,19 +270,22 @@ void CBaseEntity :: CBaseEntity ( void ) target = __NULL__; break; case "color": - m_rendercolor = stov( argv( i + 1 ) ); + m_vecRenderColor = stov( argv( i + 1 ) ); break; case "alpha": - m_renderamt = stof( argv( i + 1 ) ); + m_flRenderAmt = stof( argv( i + 1 ) ); break; case "renderamt": - m_renderamt = stof( argv( i + 1 ) ) / 255; + m_flRenderAmt = stof( argv( i + 1 ) ) / 255; break; case "rendercolor": - m_rendercolor = stov( argv( i + 1 ) ) / 255; + m_vecRenderColor = stov( argv( i + 1 ) ) / 255; break; case "rendermode": - m_rendermode = stof( argv( i + 1 ) ); + m_iRenderMode = stoi( argv( i + 1 ) ); + break; + case "renderfx": + m_iRenderFX = stoi( argv( i + 1 ) ); break; case "parentname": m_parent = argv(i+1); @@ -278,29 +308,6 @@ void CBaseEntity :: CBaseEntity ( void ) m_oldHealth = health; m_oldOrigin = origin; m_oldAngle = angles; - - RendermodeUpdate(); -} - -void CBaseEntity::RendermodeUpdate(void) -{ - if (m_rendermode == RM_NORMAL) { - return; - } - - if (m_rendermode == RM_SOLID && m_renderamt != 0) { - return; - } - - colormod = m_rendercolor; - alpha = bound(0.001, m_renderamt, 1.0); - - if ( m_rendermode == RM_ADDITIVE ) { - effects = EF_FLAG2; // SSQC: EF_ADDITIVE - } else if ( m_rendermode == RM_GLOW ) { - effects = EF_FLAG2 | EF_FULLBRIGHT; - } - } void CBaseEntity :: Respawn ( void ) diff --git a/src/gs-entbase/server/basemonster.cpp b/src/gs-entbase/server/basemonster.cpp index e6de6390..56e84081 100644 --- a/src/gs-entbase/server/basemonster.cpp +++ b/src/gs-entbase/server/basemonster.cpp @@ -56,8 +56,6 @@ enumflags { class CBaseMonster:CBaseEntity { - int body; - int oldnet_body; vector oldnet_velocity; float m_flPitch; int m_iFlags; @@ -92,8 +90,6 @@ class CBaseMonster:CBaseEntity virtual void() IdleNoise; virtual void() Gib; virtual void(string) Sound; - virtual float(entity, float) SendEntity; - virtual void() ParentUpdate; /* sequences */ virtual void() FreeState; @@ -133,45 +129,6 @@ void CBaseMonster::Sound(string msg) sound(this, CHAN_VOICE, msg, 1.0, ATTN_NORM); } -float CBaseMonster::SendEntity(entity ePEnt, float fChanged) -{ - if (modelindex == 0) { - return FALSE; - } - - WriteByte(MSG_ENTITY, ENT_NPC); - WriteFloat(MSG_ENTITY, fChanged); - - if (fChanged & NPC_MODELINDEX) - WriteShort(MSG_ENTITY, modelindex); - if (fChanged & NPC_ORIGIN_X) - WriteCoord(MSG_ENTITY, origin[0]); - if (fChanged & NPC_ORIGIN_Y) - WriteCoord(MSG_ENTITY, origin[1]); - if (fChanged & NPC_ORIGIN_Z) - WriteCoord(MSG_ENTITY, origin[2]); - if (fChanged & NPC_ANGLES_X) - WriteFloat(MSG_ENTITY, angles[0]); - if (fChanged & NPC_ANGLES_Y) - WriteFloat(MSG_ENTITY, angles[1]); - if (fChanged & NPC_ANGLES_Z) - WriteFloat(MSG_ENTITY, angles[2]); - if (fChanged & NPC_VELOCITY_X) - WriteCoord(MSG_ENTITY, velocity[0]); - if (fChanged & NPC_VELOCITY_Y) - WriteCoord(MSG_ENTITY, velocity[1]); - if (fChanged & NPC_VELOCITY_Z) - WriteCoord(MSG_ENTITY, velocity[2]); - if (fChanged & NPC_FRAME) - WriteByte(MSG_ENTITY, frame); - if (fChanged & NPC_SKIN) - WriteByte(MSG_ENTITY, skin); - if (fChanged & NPC_BODY) - WriteByte(MSG_ENTITY, body); - - return TRUE; -} - void CBaseMonster::Gib(void) { takedamage = DAMAGE_NO; @@ -383,44 +340,6 @@ void CBaseMonster::PlayerUse(void) } -void CBaseMonster::ParentUpdate(void) -{ - if (modelindex != oldnet_modelindex) - SendFlags |= NPC_MODELINDEX; - if (origin[0] != oldnet_origin[0]) - SendFlags |= NPC_ORIGIN_X; - if (origin[1] != oldnet_origin[1]) - SendFlags |= NPC_ORIGIN_Y; - if (origin[2] != oldnet_origin[2]) - SendFlags |= NPC_ORIGIN_Z; - if (angles[0] != oldnet_angles[0]) - SendFlags |= NPC_ANGLES_X; - if (angles[1] != oldnet_angles[1]) - SendFlags |= NPC_ANGLES_Y; - if (angles[2] != oldnet_angles[2]) - SendFlags |= NPC_ANGLES_Z; - if (velocity[0] != oldnet_velocity[0]) - SendFlags |= NPC_VELOCITY_X; - if (velocity[1] != oldnet_velocity[1]) - SendFlags |= NPC_VELOCITY_Y; - if (velocity[2] != oldnet_velocity[2]) - SendFlags |= NPC_VELOCITY_Z; - if (frame != oldnet_frame) - SendFlags |= NPC_FRAME; - if (skin != oldnet_skin) - SendFlags |= NPC_SKIN; - if (body != oldnet_body) - SendFlags |= NPC_BODY; - - oldnet_modelindex = modelindex; - oldnet_origin = origin; - oldnet_angles = angles; - oldnet_velocity = velocity; - oldnet_frame = frame; - oldnet_skin = skin; - oldnet_body = body; -} - void CBaseMonster::Pain(int iHitBody) { diff --git a/src/gs-entbase/server/env_fade.cpp b/src/gs-entbase/server/env_fade.cpp index 025baa61..e99f904e 100644 --- a/src/gs-entbase/server/env_fade.cpp +++ b/src/gs-entbase/server/env_fade.cpp @@ -47,10 +47,10 @@ void env_fade :: Trigger (void) { WriteByte(MSG_MULTICAST, SVC_CGAMEPACKET); WriteByte(MSG_MULTICAST, EV_FADE); - WriteByte(MSG_MULTICAST, m_rendercolor[0]); - WriteByte(MSG_MULTICAST, m_rendercolor[1]); - WriteByte(MSG_MULTICAST, m_rendercolor[2]); - WriteByte(MSG_MULTICAST, m_renderamt); + WriteFloat(MSG_MULTICAST, m_vecRenderColor[0]); + WriteFloat(MSG_MULTICAST, m_vecRenderColor[1]); + WriteFloat(MSG_MULTICAST, m_vecRenderColor[2]); + WriteFloat(MSG_MULTICAST, m_flRenderAmt); WriteFloat(MSG_MULTICAST, m_flFadeDuration); WriteFloat(MSG_MULTICAST, m_flFadeHold); WriteByte(MSG_MULTICAST, spawnflags); diff --git a/src/gs-entbase/server/env_render.cpp b/src/gs-entbase/server/env_render.cpp index 88061c22..dff71c7a 100644 --- a/src/gs-entbase/server/env_render.cpp +++ b/src/gs-entbase/server/env_render.cpp @@ -43,15 +43,17 @@ void env_render::Trigger(void) (eFind = find(eFind, CBaseTrigger::m_strTargetName, m_strTarget));) { CBaseEntity trigger = (CBaseEntity) eFind; if (!(spawnflags & SF_NORENDERMODE)) { - trigger.m_rendermode = m_rendermode; + trigger.m_iRenderMode = m_iRenderMode; } if (!(spawnflags & SF_NORENDERCOLOR)) { - trigger.m_rendercolor = m_rendercolor; + trigger.m_vecRenderColor = m_vecRenderColor; } if (!(spawnflags & SF_NORENDERAMT)) { - trigger.m_renderamt = m_renderamt; + trigger.m_flRenderAmt = m_flRenderAmt; + } + if (!(spawnflags & SF_NORENDERFX)) { + trigger.m_iRenderFX = m_iRenderFX; } - trigger.RendermodeUpdate(); } } diff --git a/src/server/scihunt/monster_scientist.cpp b/src/server/scihunt/monster_scientist.cpp index 39019ffa..9624c235 100644 --- a/src/server/scihunt/monster_scientist.cpp +++ b/src/server/scihunt/monster_scientist.cpp @@ -662,11 +662,11 @@ void monster_scientist::monster_scientist(void) precache_sound(sci_sndidle[i]); } - body = -1; + m_iBody = -1; for (int i = 1; i < (tokenize(__fullspawndata)-1); i += 2) { switch (argv(i)) { case "body": - body = stoi(argv(i+1)) + 1; + m_iBody = stoi(argv(i+1)) + 1; break; default: break; @@ -677,13 +677,13 @@ void monster_scientist::monster_scientist(void) CBaseEntity::CBaseEntity(); precache_model(m_oldModel); - if (body == -1) { + if (m_iBody == -1) { /* This stuff needs to be persistent because we can't guarantee that * the client-side geomset refresh happens. Don't shove this into Respawn */ - body = floor(random(1,5)); + m_iBody = floor(random(1,5)); } - switch (body) { + switch (m_iBody) { case 1: m_flPitch = 105; netname = "Walter"; diff --git a/src/server/valve/input.c b/src/server/valve/input.c index 8cbc29ac..cf9f3125 100644 --- a/src/server/valve/input.c +++ b/src/server/valve/input.c @@ -79,7 +79,6 @@ void Game_Input(void) BASEFL_CHANGED_FRAME | BASEFL_CHANGED_SKIN | BASEFL_CHANGED_MOVETYPE | - BASEFL_CHANGED_ALPHA | BASEFL_CHANGED_EFFECTS; } bprint(PRINT_HIGH, "Respawning all map entities...\n"); diff --git a/src/server/valve/item_suit.cpp b/src/server/valve/item_suit.cpp index 1dcd57b6..221969c8 100644 --- a/src/server/valve/item_suit.cpp +++ b/src/server/valve/item_suit.cpp @@ -69,5 +69,4 @@ void item_suit::item_suit(void) precache_sound("fvox/hev_logon.wav"); precache_sound("fvox/bell.wav"); CBaseTrigger::CBaseTrigger(); - Respawn(); } diff --git a/src/server/valve/monster_hevsuit_dead.cpp b/src/server/valve/monster_hevsuit_dead.cpp index 385e3b19..da4e48dd 100644 --- a/src/server/valve/monster_hevsuit_dead.cpp +++ b/src/server/valve/monster_hevsuit_dead.cpp @@ -67,7 +67,7 @@ void monster_hevsuit_dead::Respawn(void) void monster_hevsuit_dead::monster_hevsuit_dead(void) { model = "models/player.mdl"; - body = 2; + m_iBody = 2; for (int i = 1; i < (tokenize(__fullspawndata)-1); i += 2) { switch (argv(i)) { @@ -75,7 +75,7 @@ void monster_hevsuit_dead::monster_hevsuit_dead(void) m_iPose = stoi(argv(i+1)); break; case "body": - body = stoi(argv(i+1)) + 1; + m_iBody = stoi(argv(i+1)) + 1; break; case "skin": skin = stoi(argv(i+1)); diff --git a/src/server/valve/monster_hgrunt_dead.cpp b/src/server/valve/monster_hgrunt_dead.cpp index 31dd4344..7ab81542 100644 --- a/src/server/valve/monster_hgrunt_dead.cpp +++ b/src/server/valve/monster_hgrunt_dead.cpp @@ -74,7 +74,7 @@ void monster_hgrunt_dead::monster_hgrunt_dead(void) m_iPose = stoi(argv(i+1)); break; case "body": - body = stoi(argv(i+1)) + 1; + m_iBody = stoi(argv(i+1)) + 1; break; case "skin": skin = stoi(argv(i+1)); diff --git a/src/server/valve/monster_scientist.cpp b/src/server/valve/monster_scientist.cpp index d119fc09..d226b513 100644 --- a/src/server/valve/monster_scientist.cpp +++ b/src/server/valve/monster_scientist.cpp @@ -214,11 +214,11 @@ monster_scientist::monster_scientist(void) m_talkStopFollow = "!SC_STOP"; /* by default a random character etc. is chosen */ - body = -1; + m_iBody = -1; for (int i = 1; i < (tokenize(__fullspawndata)-1); i += 2) { switch (argv(i)) { case "body": - body = stoi(argv(i+1)) + 1; + m_iBody = stoi(argv(i+1)) + 1; break; default: break; @@ -231,11 +231,11 @@ monster_scientist::monster_scientist(void) base_health = Skill_GetValue("scientist_health"); /* has the body not been overriden, etc. choose a character for us */ - if (body == -1) { - body = floor(random(1,5)); + if (m_iBody == -1) { + m_iBody = floor(random(1,5)); } - switch (body) { + switch (m_iBody) { case 1: m_flPitch = 105; netname = "Walter"; diff --git a/src/server/valve/monster_scientist_dead.cpp b/src/server/valve/monster_scientist_dead.cpp index d16a629c..89942d93 100644 --- a/src/server/valve/monster_scientist_dead.cpp +++ b/src/server/valve/monster_scientist_dead.cpp @@ -106,7 +106,7 @@ void monster_scientist_dead::monster_scientist_dead(void) m_iPose = stoi(argv(i+1)); break; case "body": - body = stoi(argv(i+1)) + 1; + m_iBody = stoi(argv(i+1)) + 1; break; case "skin": skin = stoi(argv(i+1)); diff --git a/src/server/valve/monster_sitting_scientist.cpp b/src/server/valve/monster_sitting_scientist.cpp index 413e8a65..446b9fca 100644 --- a/src/server/valve/monster_sitting_scientist.cpp +++ b/src/server/valve/monster_sitting_scientist.cpp @@ -100,7 +100,7 @@ void monster_sitting_scientist::monster_sitting_scientist(void) m_iPose = stoi(argv(i+1)); break; case "body": - body = stoi(argv(i+1)) + 1; + m_iBody = stoi(argv(i+1)) + 1; break; case "skin": skin = stoi(argv(i+1)); @@ -110,13 +110,13 @@ void monster_sitting_scientist::monster_sitting_scientist(void) } } - if (body == -1) { + if (m_iBody == -1) { /* This stuff needs to be persistent because we can't guarantee that * the client-side geomset refresh happens. Don't shove this into Respawn */ - body = floor(random(1,5)); + m_iBody = floor(random(1,5)); } - switch (body) { + switch (m_iBody) { case 1: m_flPitch = 105; netname = "Walter"; diff --git a/src/shared/entities.h b/src/shared/entities.h index 03fa597f..36242c51 100644 --- a/src/shared/entities.h +++ b/src/shared/entities.h @@ -17,7 +17,6 @@ enum { ENT_ENTITY = 1, ENT_PLAYER, - ENT_NPC, ENT_AMBIENTSOUND, ENT_ENVLASER, ENT_SPRITE,