diff --git a/src/gs-entbase/shared/env_beam.qc b/src/gs-entbase/shared/env_beam.qc index 1d7b0b6b..c22127ab 100644 --- a/src/gs-entbase/shared/env_beam.qc +++ b/src/gs-entbase/shared/env_beam.qc @@ -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) diff --git a/src/gs-entbase/shared/env_glow.qc b/src/gs-entbase/shared/env_glow.qc index 8ffa8c01..523ad5f3 100644 --- a/src/gs-entbase/shared/env_glow.qc +++ b/src/gs-entbase/shared/env_glow.qc @@ -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); diff --git a/src/shared/NSIO.qc b/src/shared/NSIO.qc index e597bece..d65e406c 100644 --- a/src/shared/NSIO.qc +++ b/src/shared/NSIO.qc @@ -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); } } diff --git a/src/shared/NSMonster.qc b/src/shared/NSMonster.qc index 0250ac16..2f1c0629 100644 --- a/src/shared/NSMonster.qc +++ b/src/shared/NSMonster.qc @@ -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(); diff --git a/src/shared/NSMoverEntity.qc b/src/shared/NSMoverEntity.qc index 8777d025..edf5dbec 100644 --- a/src/shared/NSMoverEntity.qc +++ b/src/shared/NSMoverEntity.qc @@ -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; } diff --git a/src/shared/NSNavAI.qc b/src/shared/NSNavAI.qc index 72137e0e..429b4129 100644 --- a/src/shared/NSNavAI.qc +++ b/src/shared/NSNavAI.qc @@ -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 diff --git a/src/shared/NSPhysicsEntity.qc b/src/shared/NSPhysicsEntity.qc index 6e3d42ed..15816895 100644 --- a/src/shared/NSPhysicsEntity.qc +++ b/src/shared/NSPhysicsEntity.qc @@ -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) diff --git a/src/shared/NSProjectile.qc b/src/shared/NSProjectile.qc index 07a3cc3b..0dfc4c92 100644 --- a/src/shared/NSProjectile.qc +++ b/src/shared/NSProjectile.qc @@ -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); } diff --git a/src/shared/NSRenderableEntity.h b/src/shared/NSRenderableEntity.h index c56ba3db..a2eeda70 100644 --- a/src/shared/NSRenderableEntity.h +++ b/src/shared/NSRenderableEntity.h @@ -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. */ diff --git a/src/shared/NSRenderableEntity.qc b/src/shared/NSRenderableEntity.qc index 8103f367..385b4315 100644 --- a/src/shared/NSRenderableEntity.qc +++ b/src/shared/NSRenderableEntity.qc @@ -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; } diff --git a/src/shared/NSSquadMonster.qc b/src/shared/NSSquadMonster.qc index fc37ff61..3a8594f2 100644 --- a/src/shared/NSSquadMonster.qc +++ b/src/shared/NSSquadMonster.qc @@ -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; } } diff --git a/src/shared/NSSurfacePropEntity.qc b/src/shared/NSSurfacePropEntity.qc index e71e22d6..5dadb479 100644 --- a/src/shared/NSSurfacePropEntity.qc +++ b/src/shared/NSSurfacePropEntity.qc @@ -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) diff --git a/src/shared/NSTalkMonster.qc b/src/shared/NSTalkMonster.qc index 7709327d..2152a828 100644 --- a/src/shared/NSTalkMonster.qc +++ b/src/shared/NSTalkMonster.qc @@ -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)