NSRenderableEntity: Add RFX_GLOWSHELL effect. Note that .fatness doesn't
currently work on HL MDL.
This commit is contained in:
parent
dca95b5c45
commit
88a1984d09
4 changed files with 25 additions and 20 deletions
|
@ -37,6 +37,9 @@ font_s FONT_16;
|
|||
font_s FONT_20;
|
||||
font_s FONT_CON;
|
||||
|
||||
var string g_shellchrome;
|
||||
var float g_shellchromeshader;
|
||||
|
||||
/* clientside cvars */
|
||||
var float autocvar_zoom_sensitivity = 1.0f;
|
||||
var int autocvar_cl_smoothstairs = TRUE;
|
||||
|
@ -82,7 +85,6 @@ drawstring_r(vector p, string t, vector s, vector c, float a, float f)
|
|||
}
|
||||
|
||||
void GameMessage_Setup(string, int);
|
||||
void Game_Input(void);
|
||||
void View_SetMuzzleflash(int);
|
||||
|
||||
void Event_Callback(float mtime, __inout float btime);
|
||||
|
|
|
@ -117,6 +117,9 @@ CSQC_RendererRestarted(string rstr)
|
|||
Entities_RendererRestarted();
|
||||
DetailTex_Init();
|
||||
|
||||
g_shellchrome = spriteframe("sprites/shellchrome.spr", 0, 0.0f);
|
||||
g_shellchromeshader = shaderforname("shellchrome", sprintf("{\n{\nmap %s\ntcGen environment\nrgbGen entity\n}\n}", "textures/sfx/reflection.tga"));
|
||||
|
||||
/* end msg */
|
||||
print("Graphical resources reloaded\n");
|
||||
}
|
||||
|
|
|
@ -762,15 +762,6 @@ NSMonster::SendEntity(entity ePEnt, float fChanged)
|
|||
/*if (cvar("developer") == 0 && m_iRenderMode == RM_TRIGGER)
|
||||
return (0);*/
|
||||
|
||||
#ifdef GS_RENDERFX
|
||||
/* let's not waste networking power on certain render-modes where they would
|
||||
* not apply anyway. this seems sensible enough. */
|
||||
if (m_iRenderMode == RM_NORMAL || m_iRenderMode == RM_TRIGGER) {
|
||||
fChanged &= ~BASEFL_CHANGED_RENDERCOLOR;
|
||||
fChanged &= ~BASEFL_CHANGED_RENDERAMT;
|
||||
}
|
||||
#endif
|
||||
|
||||
/* broadcast how much data is expected to be read */
|
||||
WriteFloat(MSG_ENTITY, fChanged);
|
||||
|
||||
|
|
|
@ -105,6 +105,9 @@ NSRenderableEntity::EvaluateEntity(void)
|
|||
if (ATTR_CHANGED(m_iRenderMode)) {
|
||||
SetSendFlags(BASEFL_CHANGED_RENDERMODE);
|
||||
}
|
||||
if (ATTR_CHANGED(m_iRenderFX)) {
|
||||
SetSendFlags(BASEFL_CHANGED_RENDERMODE);
|
||||
}
|
||||
|
||||
if (ATTR_CHANGED(m_vecRenderColor)) {
|
||||
SetSendFlags(BASEFL_CHANGED_RENDERCOLOR);
|
||||
|
@ -168,16 +171,6 @@ NSRenderableEntity::SendEntity(entity ePEnt, float fChanged)
|
|||
/*if (cvar("developer") == 0 && m_iRenderMode == RM_TRIGGER)
|
||||
return (0);*/
|
||||
|
||||
#ifdef GS_RENDERFX
|
||||
/* let's not waste networking power on certain render-modes where they would
|
||||
* not apply anyway. this seems sensible enough. */
|
||||
if (m_iRenderMode == RM_NORMAL || m_iRenderMode == RM_TRIGGER) {
|
||||
if (!glowmod) /* FIXME: Get rid of this, network this hack on its own. */
|
||||
fChanged &= ~BASEFL_CHANGED_RENDERCOLOR;
|
||||
fChanged &= ~BASEFL_CHANGED_RENDERAMT;
|
||||
}
|
||||
#endif
|
||||
|
||||
/* broadcast how much data is expected to be read */
|
||||
WriteFloat(MSG_ENTITY, fChanged);
|
||||
|
||||
|
@ -434,6 +427,22 @@ NSRenderableEntity::RenderFXPass(void)
|
|||
drawflags = 7;
|
||||
abslight = 128;
|
||||
break;
|
||||
case RFX_GLOWSHELL:
|
||||
/* make this entity shellchrome */
|
||||
effects = EF_ADDITIVE;
|
||||
fatness = 0;
|
||||
colormod = m_vecRenderColor;
|
||||
forceshader = g_shellchromeshader;
|
||||
alpha = 1.0;
|
||||
/* copy entity into rendering queue */
|
||||
addentity(this);
|
||||
/* reset */
|
||||
forceshader = 0;
|
||||
fatness = 0;
|
||||
colormod = [1,1,1];
|
||||
alpha = 1.0f;
|
||||
effects = 0;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue