NSRenderableEntity: various tweaks to networking, env_glow

This commit is contained in:
Marco Cawthorne 2023-09-20 15:09:23 -07:00
parent b7126fbadb
commit d9d3220833
Signed by: eukara
GPG Key ID: CE2032F0A2882A22
13 changed files with 256 additions and 95 deletions

View File

@ -150,6 +150,7 @@ env_beam::Respawn(void)
/* keep it simple */
m_iBeamFlags = spawnflags | BEAM_SHADEEND;
pvsflags = PVSF_IGNOREPVS;
}
void
@ -428,12 +429,7 @@ float
env_beam::predraw(void)
{
vector vecPlayer;
NSClientPlayer pl;
int s = (float)getproperty(VF_ACTIVESEAT);
pSeat = &g_seats[s];
pl = (NSClientPlayer)pSeat->m_ePlayer;
vecPlayer = pl.GetEyePos();
vecPlayer = g_view.GetCameraOrigin();
/* only draw when active. */
if (!m_iActive)

View File

@ -102,11 +102,11 @@ env_glow::Respawn(void)
SetOrigin(GetSpawnOrigin());
AddEffects(EF_NOSHADOW);
if (GetRenderColor() == g_vec_null)
SetRenderColor([1.0, 1.0, 1.0]);
SetRenderFX(GetSpawnRenderFX());
SetRenderMode(GetSpawnRenderMode());
SetRenderAmt(GetSpawnRenderAmt());
SetRenderColor(GetSpawnRenderColor());
if (GetRenderMode() == RM_NORMAL)
SetRenderAmt(1.0);
/*
if (HasSpawnFlags(1)) {
hitcontentsmaski = CONTENTBIT_SOLID;
@ -216,33 +216,36 @@ env_glow::RendererRestarted(void)
void
env_glow::RenderGlow(vector forg, vector fsize)
{
float alphaTint = GetRenderAmt();
vector renderColor = m_vecRenderColor;
#ifndef FTE_QUADFIX
R_BeginPolygon(m_strMaterial, 1, 0);
R_PolygonVertex(forg + v_right * fsize[0] - v_up * fsize[1],
[1,1], m_vecRenderColor * m_flRenderAmt, m_flMaxAlpha);
[1,1], renderColor * alphaTint, m_flMaxAlpha);
R_PolygonVertex(forg - v_right * fsize[0] - v_up * fsize[1],
[0,1], m_vecRenderColor * m_flRenderAmt, m_flMaxAlpha);
[0,1], renderColor * alphaTint, m_flMaxAlpha);
R_PolygonVertex(forg - v_right * fsize[0] + v_up * fsize[1],
[0,0], m_vecRenderColor * m_flRenderAmt, m_flMaxAlpha);
[0,0], renderColor * alphaTint, m_flMaxAlpha);
R_PolygonVertex(forg + v_right * fsize[0] + v_up * fsize[1],
[1,0], m_vecRenderColor * m_flRenderAmt, m_flMaxAlpha);
[1,0], renderColor * alphaTint, m_flMaxAlpha);
R_EndPolygon();
#else
R_BeginPolygon(m_strMaterial, 1, 0);
R_PolygonVertex(forg + v_right * fsize[0] - v_up * fsize[1],
[1,1], m_vecRenderColor * m_flRenderAmt, m_flMaxAlpha);
[1,1], renderColor * alphaTint, m_flMaxAlpha);
R_PolygonVertex(forg - v_right * fsize[0] - v_up * fsize[1],
[0,1], m_vecRenderColor * m_flRenderAmt, m_flMaxAlpha);
[0,1], renderColor * alphaTint, m_flMaxAlpha);
R_PolygonVertex(forg - v_right * fsize[0] + v_up * fsize[1],
[0,0], m_vecRenderColor * m_flRenderAmt, m_flMaxAlpha);
[0,0], renderColor * alphaTint, m_flMaxAlpha);
R_EndPolygon();
R_BeginPolygon(m_strMaterial, 1, 0);
R_PolygonVertex(forg - v_right * fsize[0] - v_up * fsize[1],
[0,1], m_vecRenderColor * m_flRenderAmt, m_flMaxAlpha);
[0,1], renderColor * alphaTint, m_flMaxAlpha);
R_PolygonVertex(forg - v_right * fsize[0] + v_up * fsize[1],
[0,0], m_vecRenderColor * m_flRenderAmt, m_flMaxAlpha);
[0,0], renderColor * alphaTint, m_flMaxAlpha);
R_PolygonVertex(forg + v_right * fsize[0] + v_up * fsize[1],
[1,0], m_vecRenderColor * m_flRenderAmt, m_flMaxAlpha);
[1,0], renderColor * alphaTint, m_flMaxAlpha);
R_EndPolygon();
#endif
}
@ -250,33 +253,36 @@ env_glow::RenderGlow(vector forg, vector fsize)
void
env_glow::RenderNormal(vector forg, vector fsize)
{
float alphaTint = GetRenderAmt();
vector renderColor = GetRenderColor();
#ifndef FTE_QUADFIX
R_BeginPolygon(m_strMaterial, 0, 0);
R_PolygonVertex(forg + v_right * fsize[0] - v_up * fsize[1],
[1,1], m_vecRenderColor, m_flRenderAmt);
[1,1], renderColor, alphaTint);
R_PolygonVertex(forg - v_right * fsize[0] - v_up * fsize[1],
[0,1], m_vecRenderColor, m_flRenderAmt);
[0,1], renderColor, alphaTint);
R_PolygonVertex(forg - v_right * fsize[0] + v_up * fsize[1],
[0,0], m_vecRenderColor, m_flRenderAmt);
[0,0], renderColor, alphaTint);
R_PolygonVertex(forg + v_right * fsize[0] + v_up * fsize[1],
[1,0], m_vecRenderColor, m_flRenderAmt);
[1,0], renderColor, alphaTint);
R_EndPolygon();
#else
R_BeginPolygon(m_strMaterial, 0, 0);
R_PolygonVertex(forg + v_right * fsize[0] - v_up * fsize[1],
[1,1], m_vecRenderColor, m_flRenderAmt);
[1,1], renderColor, alphaTint);
R_PolygonVertex(forg - v_right * fsize[0] - v_up * fsize[1],
[0,1], m_vecRenderColor, m_flRenderAmt);
[0,1], renderColor, alphaTint);
R_PolygonVertex(forg - v_right * fsize[0] + v_up * fsize[1],
[0,0], m_vecRenderColor, m_flRenderAmt);
[0,0], renderColor, alphaTint);
R_EndPolygon();
R_BeginPolygon(m_strMaterial, 0, 0);
R_PolygonVertex(forg - v_right * fsize[0] - v_up * fsize[1],
[0,1], m_vecRenderColor, m_flRenderAmt);
[0,1], renderColor, alphaTint);
R_PolygonVertex(forg - v_right * fsize[0] + v_up * fsize[1],
[0,0], m_vecRenderColor, m_flRenderAmt);
[0,0], renderColor, alphaTint);
R_PolygonVertex(forg + v_right * fsize[0] + v_up * fsize[1],
[1,0], m_vecRenderColor, m_flRenderAmt);
[1,0], renderColor, alphaTint);
R_EndPolygon();
#endif
}
@ -290,6 +296,9 @@ env_glow::predraw(void)
vector vecAngle = g_view.GetCameraAngle();
float flDist = vlen(vecPlayer - origin);
if (GetRenderMode() == RM_GLOW)
scale = 1.0f;
if (GetRenderMode() == RM_GLOW) {
if (IsVisible(vecPlayer) == false)
return (PREDRAW_NEXT);

View File

@ -125,8 +125,9 @@ NSIO::CreateOutput(string outmsg)
string outname = "";
float c;
if not (outmsg)
if not (outmsg) {
error("Cannot assign EMPTY contents to CreateOutput!");
}
outname = sprintf("output_%i", outcount);
outcount++;
@ -190,11 +191,11 @@ NSIO::Input(entity eAct, string strInput, string strData)
break;
default:
if (strData != "")
print(sprintf("^2%s::^3Input^7: Receives input %s from %s with data %s\n",
this.classname, strInput, eAct.classname, strData));
NSLog("^2%s::^3Input^7: Receives input %s from %s with data %s\n",
this.classname, strInput, eAct.classname, strData);
else
print(sprintf("^2%s::^3Input^7: Receives input %s from %s\n",
this.classname, strInput, eAct.classname));
NSLog("^2%s::^3Input^7: Receives input %s from %s\n",
this.classname, strInput, eAct.classname);
}
}

View File

@ -1962,10 +1962,10 @@ NSMonster::SendEntity(entity ePEnt, float flChanged)
SENDENTITY_COORD(velocity[2], MONFL_CHANGED_VELOCITY)
SENDENTITY_BYTE(m_iRenderMode, MONFL_CHANGED_RENDERMODE)
SENDENTITY_BYTE(m_iRenderFX, MONFL_CHANGED_RENDERMODE)
SENDENTITY_ANGLE(m_vecRenderColor[0], MONFL_CHANGED_RENDERCOLOR)
SENDENTITY_ANGLE(m_vecRenderColor[1], MONFL_CHANGED_RENDERCOLOR)
SENDENTITY_ANGLE(m_vecRenderColor[2], MONFL_CHANGED_RENDERCOLOR)
SENDENTITY_ANGLE(m_flRenderAmt, MONFL_CHANGED_RENDERAMT)
SENDENTITY_COLOR(m_vecRenderColor[0], MONFL_CHANGED_RENDERCOLOR)
SENDENTITY_COLOR(m_vecRenderColor[1], MONFL_CHANGED_RENDERCOLOR)
SENDENTITY_COLOR(m_vecRenderColor[2], MONFL_CHANGED_RENDERCOLOR)
SENDENTITY_COLOR(m_flRenderAmt, MONFL_CHANGED_RENDERAMT)
SENDENTITY_FLOAT(bonecontrol1, MONFL_CHANGED_HEADYAW)
SENDENTITY_FLOAT(subblendfrac, MONFL_CHANGED_HEADYAW)
SENDENTITY_FLOAT(frame1time, MONFL_CHANGED_HEADYAW)
@ -2045,10 +2045,10 @@ NSMonster::ReceiveEntity(float flNew, float flChanged)
READENTITY_COORD(velocity[2], MONFL_CHANGED_VELOCITY)
READENTITY_BYTE(m_iRenderMode, MONFL_CHANGED_RENDERMODE)
READENTITY_BYTE(m_iRenderFX, MONFL_CHANGED_RENDERMODE)
READENTITY_ANGLE(m_vecRenderColor[0], MONFL_CHANGED_RENDERCOLOR)
READENTITY_ANGLE(m_vecRenderColor[1], MONFL_CHANGED_RENDERCOLOR)
READENTITY_ANGLE(m_vecRenderColor[2], MONFL_CHANGED_RENDERCOLOR)
READENTITY_ANGLE(m_flRenderAmt, MONFL_CHANGED_RENDERAMT)
READENTITY_COLOR(m_vecRenderColor[0], MONFL_CHANGED_RENDERCOLOR)
READENTITY_COLOR(m_vecRenderColor[1], MONFL_CHANGED_RENDERCOLOR)
READENTITY_COLOR(m_vecRenderColor[2], MONFL_CHANGED_RENDERCOLOR)
READENTITY_COLOR(m_flRenderAmt, MONFL_CHANGED_RENDERAMT)
READENTITY_FLOAT(bonecontrol1, MONFL_CHANGED_HEADYAW)
READENTITY_FLOAT(subblendfrac, MONFL_CHANGED_HEADYAW)
READENTITY_FLOAT(frame1time, MONFL_CHANGED_HEADYAW)
@ -2111,7 +2111,7 @@ NSMonster_AlertEnemyAlliance(vector pos, float radius, int alliance)
return;
if (autocvar_ai_alertdebug)
print(sprintf("AI alert from %v with radius %f and alliance %i\n", pos, radius, alliance));
NSMonster_Log("AI alert from %v with radius %f and alliance %i\n", pos, radius, alliance);
for (entity w = world; (w = findfloat(w, ::takedamage, DAMAGE_YES));) {
/* out of radius */
@ -2122,7 +2122,7 @@ NSMonster_AlertEnemyAlliance(vector pos, float radius, int alliance)
/* only target monsters */
if (!(w.flags & FL_MONSTER)) {
if (autocvar_ai_alertdebug)
print(sprintf("\t%S is not a monster\n", w.classname));
NSMonster_Log("\t%S is not a monster\n", w.classname);
continue;
}
@ -2131,26 +2131,26 @@ NSMonster_AlertEnemyAlliance(vector pos, float radius, int alliance)
/* they already got a target of some kind */
if (f.m_eEnemy) {
if (autocvar_ai_alertdebug)
print(sprintf("\t%S already has a target\n", w.classname));
NSMonster_Log("\t%S already has a target\n", w.classname);
continue;
}
/* if they're our friend... ignore*/
if (f.IsFriend(alliance)) {
if (autocvar_ai_alertdebug)
print(sprintf("\t%S is friend of alliance %i\n", w.classname, alliance));
NSMonster_Log("\t%S is friend of alliance %i\n", w.classname, alliance);
continue;
}
/* if the monster is dead... ignore */
if (f.health <= 0) {
if (autocvar_ai_alertdebug)
print(sprintf("\t%S is dead, cannot be alerted\n", w.classname));
NSMonster_Log("\t%S is dead, cannot be alerted\n", w.classname);
continue;
}
if (autocvar_ai_alertdebug)
print(sprintf("\twe're alerting %S to go to %v\n", w.classname, pos));
NSMonster_Log("\twe're alerting %S to go to %v\n", w.classname, pos);
/* we've heard a noise. investigate the location */
f.RouteClear();

View File

@ -213,7 +213,7 @@ NSMoverEntity::MoveAndRotateToPosition(vector vecDest, vector vecAngle, float fl
/* abort if no speed is defined whatsoever */
if (!flSpeed) {
objerror("NSMoverEntity::MoveToPosition: No speed defined!");
NSEntWarning("NSMoverEntity::MoveToPosition: No speed defined!");
return;
}

View File

@ -282,6 +282,6 @@ NSNavAI::RouteClear(void)
m_iCurNode = BOTROUTE_END;
m_iNodes = 0;
memfree(m_pRoute);
print(sprintf("%s cleared his route.\n", netname));
NSNavAI_Log("Actor %S (%s) cleared their route.", netname, classname);
}
#endif

View File

@ -214,14 +214,14 @@ NSPhysicsEntity::SendEntity(entity ePEnt, float flChanged)
SENDENTITY_COORD(avelocity[2], RDENT_CHANGED_ANGULARVELOCITY)
SENDENTITY_BYTE(m_iRenderMode, RDENT_CHANGED_RENDERMODE)
SENDENTITY_BYTE(m_iRenderFX, RDENT_CHANGED_RENDERMODE)
SENDENTITY_ANGLE(m_vecRenderColor[0], RDENT_CHANGED_RENDERCOLOR)
SENDENTITY_ANGLE(m_vecRenderColor[1], RDENT_CHANGED_RENDERCOLOR)
SENDENTITY_ANGLE(m_vecRenderColor[2], RDENT_CHANGED_RENDERCOLOR)
SENDENTITY_COLOR(m_vecRenderColor[0], RDENT_CHANGED_RENDERCOLOR)
SENDENTITY_COLOR(m_vecRenderColor[1], RDENT_CHANGED_RENDERCOLOR)
SENDENTITY_COLOR(m_vecRenderColor[2], RDENT_CHANGED_RENDERCOLOR)
/* these need more precision for shader hacks... */
SENDENTITY_FLOAT(glowmod[0], RDENT_CHANGED_RENDERCOLOR)
SENDENTITY_FLOAT(glowmod[1], RDENT_CHANGED_RENDERCOLOR)
SENDENTITY_FLOAT(glowmod[2], RDENT_CHANGED_RENDERCOLOR)
SENDENTITY_ANGLE(m_flRenderAmt, RDENT_CHANGED_RENDERAMT)
SENDENTITY_COLOR(m_flRenderAmt, RDENT_CHANGED_RENDERAMT)
SENDENTITY_ANGLE(m_flBoneControl1, RDENT_CHANGED_CONTROLLER)
SENDENTITY_ANGLE(m_flBoneControl2, RDENT_CHANGED_CONTROLLER)
SENDENTITY_ANGLE(m_flBoneControl3, RDENT_CHANGED_CONTROLLER)
@ -275,14 +275,14 @@ NSPhysicsEntity::ReceiveEntity(float flNew, float flChanged)
READENTITY_COORD(avelocity[2], RDENT_CHANGED_ANGULARVELOCITY)
READENTITY_BYTE(m_iRenderMode, RDENT_CHANGED_RENDERMODE)
READENTITY_BYTE(m_iRenderFX, RDENT_CHANGED_RENDERMODE)
READENTITY_ANGLE(m_vecRenderColor[0], RDENT_CHANGED_RENDERCOLOR)
READENTITY_ANGLE(m_vecRenderColor[1], RDENT_CHANGED_RENDERCOLOR)
READENTITY_ANGLE(m_vecRenderColor[2], RDENT_CHANGED_RENDERCOLOR)
READENTITY_COLOR(m_vecRenderColor[0], RDENT_CHANGED_RENDERCOLOR)
READENTITY_COLOR(m_vecRenderColor[1], RDENT_CHANGED_RENDERCOLOR)
READENTITY_COLOR(m_vecRenderColor[2], RDENT_CHANGED_RENDERCOLOR)
/* these need more precision for shader hacks... */
READENTITY_FLOAT(glowmod[0], RDENT_CHANGED_RENDERCOLOR)
READENTITY_FLOAT(glowmod[1], RDENT_CHANGED_RENDERCOLOR)
READENTITY_FLOAT(glowmod[2], RDENT_CHANGED_RENDERCOLOR)
READENTITY_ANGLE(m_flRenderAmt, RDENT_CHANGED_RENDERAMT)
READENTITY_COLOR(m_flRenderAmt, RDENT_CHANGED_RENDERAMT)
READENTITY_ANGLE(m_flBoneControl1, RDENT_CHANGED_CONTROLLER)
READENTITY_ANGLE(m_flBoneControl2, RDENT_CHANGED_CONTROLLER)
READENTITY_ANGLE(m_flBoneControl3, RDENT_CHANGED_CONTROLLER)

View File

@ -806,10 +806,10 @@ NSProjectile::SendEntity(entity ePEnt, float flChanged)
SENDENTITY_FLOAT(traileffectnum, PROJ_CHANGED_MODELINDEX)
SENDENTITY_BYTE(m_iRenderMode, PROJ_CHANGED_RENDERMODE)
SENDENTITY_BYTE(m_iRenderFX, PROJ_CHANGED_RENDERMODE)
SENDENTITY_ANGLE(m_vecRenderColor[0], PROJ_CHANGED_RENDERCOLOR)
SENDENTITY_ANGLE(m_vecRenderColor[1], PROJ_CHANGED_RENDERCOLOR)
SENDENTITY_ANGLE(m_vecRenderColor[2], PROJ_CHANGED_RENDERCOLOR)
SENDENTITY_ANGLE(m_flRenderAmt, PROJ_CHANGED_RENDERAMT)
SENDENTITY_COLOR(m_vecRenderColor[0], PROJ_CHANGED_RENDERCOLOR)
SENDENTITY_COLOR(m_vecRenderColor[1], PROJ_CHANGED_RENDERCOLOR)
SENDENTITY_COLOR(m_vecRenderColor[2], PROJ_CHANGED_RENDERCOLOR)
SENDENTITY_COLOR(m_flRenderAmt, PROJ_CHANGED_RENDERAMT)
return (1);
}
@ -831,10 +831,10 @@ NSProjectile::ReceiveEntity(float flNew, float flChanged)
READENTITY_FLOAT(traileffectnum, PROJ_CHANGED_MODELINDEX)
READENTITY_BYTE(m_iRenderMode, PROJ_CHANGED_RENDERMODE)
READENTITY_BYTE(m_iRenderFX, PROJ_CHANGED_RENDERMODE)
READENTITY_ANGLE(m_vecRenderColor[0], PROJ_CHANGED_RENDERCOLOR)
READENTITY_ANGLE(m_vecRenderColor[1], PROJ_CHANGED_RENDERCOLOR)
READENTITY_ANGLE(m_vecRenderColor[2], PROJ_CHANGED_RENDERCOLOR)
READENTITY_ANGLE(m_flRenderAmt, PROJ_CHANGED_RENDERAMT)
READENTITY_COLOR(m_vecRenderColor[0], PROJ_CHANGED_RENDERCOLOR)
READENTITY_COLOR(m_vecRenderColor[1], PROJ_CHANGED_RENDERCOLOR)
READENTITY_COLOR(m_vecRenderColor[2], PROJ_CHANGED_RENDERCOLOR)
READENTITY_COLOR(m_flRenderAmt, PROJ_CHANGED_RENDERAMT)
setmodelindex(this, modelindex);
setorigin(this, origin);
}

View File

@ -142,6 +142,7 @@ public:
virtual void RenderDebugSkeleton(void);
virtual void ReceiveEntity(float,float);
virtual float predraw(void);
virtual void postdraw(void);
virtual void RendererRestarted();
#endif
@ -177,6 +178,13 @@ public:
/** Sets the axial, anisotropic scale of an entity, affecting the individual axis (forward, right, up). */
nonvirtual void SetAxialScale(vector);
#ifdef SERVER
nonvirtual vector GetSpawnRenderColor(void);
nonvirtual float GetSpawnRenderAmt(void);
nonvirtual int GetSpawnRenderFX(void);
nonvirtual int GetSpawnRenderMode(void);
#endif
/** Returns the bodygroup of the entity. */
nonvirtual int GetBody(void);
/** Returns the body within a given group. */

View File

@ -626,6 +626,119 @@ NSRenderableEntity::predraw(void)
return (PREDRAW_NEXT);
}
void
NSRenderableEntity::postdraw(void)
{
if not (autocvar(r_showRenderInfo, 0))
return;
if not (PointMessage_Visible(origin, g_view.GetCameraOrigin(), g_view.GetCameraAngle()))
return;
string renderMode;
string renderFX;
switch (GetRenderMode()) {
case RM_NORMAL:
renderMode = "RM_NORMAL";
break;
case RM_COLOR:
renderMode = "RM_COLOR";
break;
case RM_TEXTURE:
renderMode = "RM_TEXTURE";
break;
case RM_GLOW:
renderMode = "RM_GLOW";
break;
case RM_SOLID:
renderMode = "RM_SOLID";
break;
case RM_ADDITIVE:
renderMode = "RM_ADDITIVE";
break;
case RM_FULLBRIGHT:
renderMode = "RM_FULLBRIGHT";
break;
case RM_ADDFRAC:
renderMode = "RM_ADDFRAC";
break;
case RM_WORLDGLOW:
renderMode = "RM_WORLDGLOW";
break;
case RM_DONTRENDER:
renderMode = "RM_DONTRENDER";
break;
}
switch (GetRenderFX()) {
case RFX_NORMAL:
renderFX = "RFX_NORMAL";
break;
case RFX_SLOWPULSE:
renderFX = "RFX_SLOWPULSE";
break;
case RFX_FASTPULSE:
renderFX = "RFX_FASTPULSE";
break;
case RFX_SLOWWIDEPULSE:
renderFX = "RFX_SLOWWIDEPULSE";
break;
case RFX_FASTWIDEPULSE:
renderFX = "RFX_FASTWIDEPULSE";
break;
case RFX_SLOWFADEAWAY:
renderFX = "RFX_SLOWFADEAWAY";
break;
case RFX_FASTFADEAWAY:
renderFX = "RFX_FASTFADEAWAY";
break;
case RFX_SLOWBECOMESOLID:
renderFX = "RFX_SLOWBECOMESOLID";
break;
case RFX_FASTBECOMESOLID:
renderFX = "RFX_FASTBECOMESOLID";
break;
case RFX_SLOWSTROBE:
renderFX = "RFX_SLOWSTROBE";
break;
case RFX_FASTSTROBE:
renderFX = "RFX_FASTSTROBE";
break;
case RFX_FASTERSTROBE:
renderFX = "RFX_FASTERSTROBE";
break;
case RFX_SLOWFLICKER:
renderFX = "RFX_SLOWFLICKER";
break;
case RFX_FASTFLICKER:
renderFX = "RFX_FASTFLICKER";
break;
case RFX_CONSTANTGLOW:
renderFX = "RFX_CONSTANTGLOW";
break;
case RFX_DISTORT:
renderFX = "RFX_DISTORT";
break;
case RFX_HOLOGRAM:
renderFX = "RFX_HOLOGRAM";
break;
case RFX_GLOWSHELL:
renderFX = "RFX_GLOWSHELL";
break;
case RFX_GLOWSHELL2:
renderFX = "RFX_GLOWSHELL2";
break;
case RFX_Q2PULSE:
renderFX = "RFX_Q2PULSE";
break;
}
string renderString = sprintf("RC: %v\nRA: %f\nRM: %s\nRFX: %s",
m_vecRenderColor, m_flRenderAmt, renderMode, renderFX);
PointMessage_StringAtPos(WorldSpaceCenter(), renderString);
}
#endif
#ifdef SERVER
@ -634,16 +747,10 @@ NSRenderableEntity::Respawn(void)
{
super::Respawn();
SetRenderFX(m_oldiRenderFX);
SetRenderMode(m_oldiRenderMode);
SetRenderAmt(m_oldflRenderAmt);
SetRenderColor(m_oldvecRenderColor);
if (GetRenderColor() == g_vec_null)
SetRenderColor([1.0, 1.0, 1.0]);
if (GetRenderMode() == RM_NORMAL)
SetRenderAmt(1.0);
SetRenderFX(GetSpawnRenderFX());
SetRenderMode(GetSpawnRenderMode());
SetRenderAmt(GetSpawnRenderAmt());
SetRenderColor(GetSpawnRenderColor());
}
#endif
@ -686,6 +793,10 @@ NSRenderableEntity::SetRenderAmt(float newAmt)
void
NSRenderableEntity::SetRenderColor(vector newColor)
{
/* rendercolor can NEVER be pitch black. */
if (newColor == g_vec_null)
m_vecRenderColor = [1.0, 1.0, 1.0];
m_vecRenderColor = newColor;
}
@ -737,6 +848,32 @@ NSRenderableEntity::GetBodyInGroup(int bodyGroup)
return m_iBody;
}
#ifdef SERVER
vector
NSRenderableEntity::GetSpawnRenderColor(void)
{
return m_oldvecRenderColor;
}
float
NSRenderableEntity::GetSpawnRenderAmt(void)
{
return m_oldflRenderAmt;
}
int
NSRenderableEntity::GetSpawnRenderMode(void)
{
return m_oldiRenderMode;
}
int
NSRenderableEntity::GetSpawnRenderFX(void)
{
return m_oldiRenderFX;
}
#endif
float
NSRenderableEntity::GetRenderMode(void)
{
@ -752,12 +889,22 @@ NSRenderableEntity::GetRenderFX(void)
float
NSRenderableEntity::GetRenderAmt(void)
{
if (m_iRenderMode == RM_NORMAL)
return 1.0f;
else if (m_iRenderMode == RM_GLOW && m_flRenderAmt == 0.0)
return 1.0f;
return m_flRenderAmt;
}
vector
NSRenderableEntity::GetRenderColor(void)
{
if (m_iRenderMode == RM_NORMAL)
return [1.0, 1.0, 1.0];
else if (m_iRenderMode == RM_GLOW)
return [1.0, 1.0, 1.0];
return m_vecRenderColor;
}

View File

@ -185,7 +185,7 @@ NSSquadMonster::AddToSquad(NSSquadMonster addMember)
m_eSquadLeader = this;
startMember = this;
m_inSquad = true;
print(sprintf("%s (%d) became squad leader\n", classname, num_for_edict(this)));
NSMonster_Log("%s (%d) became squad leader\n", classname, num_for_edict(this));
//SetBody(GetBody() | m_iSquadLeaderBody);
/* apply the squad leader body */
@ -211,7 +211,7 @@ NSSquadMonster::AddToSquad(NSSquadMonster addMember)
addMember.m_eSquadLeader = startMember;
addMember.m_inSquad = true;
addMember.HasJoinedSquad();
print(sprintf("%s (%d) added to squad, member %i\n", classname, num_for_edict(this), i));
NSMonster_Log("%s (%d) added to squad, member %i\n", classname, num_for_edict(this), i);
return;
}
}

View File

@ -312,10 +312,10 @@ NSSurfacePropEntity::SendEntity(entity ePEnt, float flChanged)
SENDENTITY_COORD(avelocity[2], SRFENT_CHANGED_ANGULARVELOCITY)
SENDENTITY_BYTE(m_iRenderMode, SRFENT_CHANGED_RENDERMODE)
SENDENTITY_BYTE(m_iRenderFX, SRFENT_CHANGED_RENDERMODE)
SENDENTITY_ANGLE(m_vecRenderColor[0], SRFENT_CHANGED_RENDERCOLOR)
SENDENTITY_ANGLE(m_vecRenderColor[1], SRFENT_CHANGED_RENDERCOLOR)
SENDENTITY_ANGLE(m_vecRenderColor[2], SRFENT_CHANGED_RENDERCOLOR)
SENDENTITY_ANGLE(m_flRenderAmt, SRFENT_CHANGED_RENDERAMT)
SENDENTITY_COLOR(m_vecRenderColor[0], SRFENT_CHANGED_RENDERCOLOR)
SENDENTITY_COLOR(m_vecRenderColor[1], SRFENT_CHANGED_RENDERCOLOR)
SENDENTITY_COLOR(m_vecRenderColor[2], SRFENT_CHANGED_RENDERCOLOR)
SENDENTITY_COLOR(m_flRenderAmt, SRFENT_CHANGED_RENDERAMT)
SENDENTITY_ANGLE(m_flBoneControl1, SRFENT_CHANGED_CONTROLLER)
SENDENTITY_ANGLE(m_flBoneControl2, SRFENT_CHANGED_CONTROLLER)
SENDENTITY_ANGLE(m_flBoneControl3, SRFENT_CHANGED_CONTROLLER)
@ -367,10 +367,10 @@ NSSurfacePropEntity::ReceiveEntity(float flNew, float flChanged)
READENTITY_COORD(avelocity[2], SRFENT_CHANGED_ANGULARVELOCITY)
READENTITY_BYTE(m_iRenderMode, SRFENT_CHANGED_RENDERMODE)
READENTITY_BYTE(m_iRenderFX, SRFENT_CHANGED_RENDERMODE)
READENTITY_ANGLE(m_vecRenderColor[0], SRFENT_CHANGED_RENDERCOLOR)
READENTITY_ANGLE(m_vecRenderColor[1], SRFENT_CHANGED_RENDERCOLOR)
READENTITY_ANGLE(m_vecRenderColor[2], SRFENT_CHANGED_RENDERCOLOR)
READENTITY_ANGLE(m_flRenderAmt, SRFENT_CHANGED_RENDERAMT)
READENTITY_COLOR(m_vecRenderColor[0], SRFENT_CHANGED_RENDERCOLOR)
READENTITY_COLOR(m_vecRenderColor[1], SRFENT_CHANGED_RENDERCOLOR)
READENTITY_COLOR(m_vecRenderColor[2], SRFENT_CHANGED_RENDERCOLOR)
READENTITY_COLOR(m_flRenderAmt, SRFENT_CHANGED_RENDERAMT)
READENTITY_ANGLE(m_flBoneControl1, SRFENT_CHANGED_CONTROLLER)
READENTITY_ANGLE(m_flBoneControl2, SRFENT_CHANGED_CONTROLLER)
READENTITY_ANGLE(m_flBoneControl3, SRFENT_CHANGED_CONTROLLER)

View File

@ -812,10 +812,10 @@ NSTalkMonster::SendEntity(entity ePEnt, float flChanged)
SENDENTITY_COORD(velocity[2], MONFL_CHANGED_VELOCITY)
SENDENTITY_BYTE(m_iRenderMode, MONFL_CHANGED_RENDERMODE)
SENDENTITY_BYTE(m_iRenderFX, MONFL_CHANGED_RENDERMODE)
SENDENTITY_ANGLE(m_vecRenderColor[0], MONFL_CHANGED_RENDERCOLOR)
SENDENTITY_ANGLE(m_vecRenderColor[1], MONFL_CHANGED_RENDERCOLOR)
SENDENTITY_ANGLE(m_vecRenderColor[2], MONFL_CHANGED_RENDERCOLOR)
SENDENTITY_ANGLE(m_flRenderAmt, MONFL_CHANGED_RENDERAMT)
SENDENTITY_COLOR(m_vecRenderColor[0], MONFL_CHANGED_RENDERCOLOR)
SENDENTITY_COLOR(m_vecRenderColor[1], MONFL_CHANGED_RENDERCOLOR)
SENDENTITY_COLOR(m_vecRenderColor[2], MONFL_CHANGED_RENDERCOLOR)
SENDENTITY_COLOR(m_flRenderAmt, MONFL_CHANGED_RENDERAMT)
SENDENTITY_FLOAT(bonecontrol1, MONFL_CHANGED_HEADYAW)
SENDENTITY_FLOAT(subblendfrac, MONFL_CHANGED_HEADYAW)
SENDENTITY_FLOAT(frame1time, MONFL_CHANGED_HEADYAW)
@ -1009,10 +1009,10 @@ NSTalkMonster::ReceiveEntity(float flNew, float flChanged)
READENTITY_COORD(velocity[2], MONFL_CHANGED_VELOCITY)
READENTITY_BYTE(m_iRenderMode, MONFL_CHANGED_RENDERMODE)
READENTITY_BYTE(m_iRenderFX, MONFL_CHANGED_RENDERMODE)
READENTITY_ANGLE(m_vecRenderColor[0], MONFL_CHANGED_RENDERCOLOR)
READENTITY_ANGLE(m_vecRenderColor[1], MONFL_CHANGED_RENDERCOLOR)
READENTITY_ANGLE(m_vecRenderColor[2], MONFL_CHANGED_RENDERCOLOR)
READENTITY_ANGLE(m_flRenderAmt, MONFL_CHANGED_RENDERAMT)
READENTITY_COLOR(m_vecRenderColor[0], MONFL_CHANGED_RENDERCOLOR)
READENTITY_COLOR(m_vecRenderColor[1], MONFL_CHANGED_RENDERCOLOR)
READENTITY_COLOR(m_vecRenderColor[2], MONFL_CHANGED_RENDERCOLOR)
READENTITY_COLOR(m_flRenderAmt, MONFL_CHANGED_RENDERAMT)
READENTITY_FLOAT(bonecontrol1, MONFL_CHANGED_HEADYAW)
READENTITY_FLOAT(subblendfrac, MONFL_CHANGED_HEADYAW)
READENTITY_FLOAT(frame1time, MONFL_CHANGED_HEADYAW)