Exterminate FX_Explosion, FX_Spark and FX_Impact references.

This commit is contained in:
Marco Cawthorne 2023-07-24 14:14:20 -07:00
parent 159756889f
commit bd470605a3
Signed by: eukara
GPG Key ID: CE2032F0A2882A22
18 changed files with 63 additions and 36 deletions

View File

@ -39,7 +39,7 @@ CMD_dev_explode(void)
{ {
makevectors(getproperty(VF_ANGLES)); makevectors(getproperty(VF_ANGLES));
traceline(getproperty(VF_ORIGIN), getproperty(VF_ORIGIN) + v_forward * 4096, FALSE, pSeat->m_ePlayer); traceline(getproperty(VF_ORIGIN), getproperty(VF_ORIGIN) + v_forward * 4096, FALSE, pSeat->m_ePlayer);
FX_Explosion(trace_endpos); // FX_Explosion(trace_endpos);
} }
static void static void
@ -121,6 +121,7 @@ CMD_way_menu(void)
static void static void
CMD_view_geomtest(void) CMD_view_geomtest(void)
{ {
print(sprintf("geomset %s %s\n", argv(1), argv(2)));
Weapons_SetGeomset(sprintf("geomset %s %s\n", argv(1), argv(2))); Weapons_SetGeomset(sprintf("geomset %s %s\n", argv(1), argv(2)));
} }

View File

@ -14,5 +14,3 @@
* OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/ */
void FX_Spark(vector, vector);
void FX_BreakModel(int, vector, vector, vector, float);

View File

@ -120,7 +120,7 @@ env_explosion::Respawn(void)
void void
env_explosion::Trigger(entity act, triggermode_t state) env_explosion::Trigger(entity act, triggermode_t state)
{ {
FX_Explosion(origin); pointparticles(particleeffectnum("fx_explosion.main"), origin, [0,0,0], 1);
if (!HasSpawnFlags(ENVEXPLO_NODAMAGE)) { if (!HasSpawnFlags(ENVEXPLO_NODAMAGE)) {
Damage_Radius(origin, this, m_iMagnitude, m_iMagnitude * 2.5f, TRUE, 0); Damage_Radius(origin, this, m_iMagnitude, m_iMagnitude * 2.5f, TRUE, 0);

View File

@ -151,7 +151,7 @@ void
env_spark::CreateSpark(void) env_spark::CreateSpark(void)
{ {
Sound_Play(this, CHAN_AUTO, "env_spark.sfx"); Sound_Play(this, CHAN_AUTO, "env_spark.sfx");
FX_Spark(self.origin, self.angles); pointparticles(particleeffectnum("platform.spark"), origin, angles, 1);
} }
void void

View File

@ -299,7 +299,7 @@ func_breakable::Explode(void)
string breakModel = GetPropData(PROPINFO_BREAKMODEL); string breakModel = GetPropData(PROPINFO_BREAKMODEL);
BreakModel_Spawn(absmin, absmax, [0,0,0], m_flExplodeMag, vlen(size) / 10, breakModel); BreakModel_Spawn(absmin, absmax, [0,0,0], m_flExplodeMag, vlen(size) / 10, breakModel);
FX_Explosion(rp); pointparticles(particleeffectnum("fx_explosion.main"), rp, [0,0,0], 1);
Damage_Radius(rp, this, m_flExplodeMag, m_flExplodeRad, TRUE, 0); Damage_Radius(rp, this, m_flExplodeMag, m_flExplodeRad, TRUE, 0);
UseTargets(this, TRIG_TOGGLE, 0.0f); /* delay... ignored. */ UseTargets(this, TRIG_TOGGLE, 0.0f); /* delay... ignored. */
SetTakedamage(DAMAGE_NO); SetTakedamage(DAMAGE_NO);

View File

@ -156,7 +156,7 @@ func_mortar_field::Fire(vector vecOrg)
float dmg = 200.0f; float dmg = 200.0f;
Damage_Radius(trace_endpos, this, dmg, dmg * 2.5f, TRUE, 0); Damage_Radius(trace_endpos, this, dmg, dmg * 2.5f, TRUE, 0);
FX_Explosion(trace_endpos); pointparticles(particleeffectnum("fx_explosion.main"), trace_endpos, [0,0,0], 1);
} }
void void

View File

@ -291,8 +291,6 @@ env_laser::ReceiveEntity(float flNew, float flChanged)
#define LASER_COUNT 16 #define LASER_COUNT 16
void FX_Spark(vector pos, vector ang);
static float env_laser_jitlut[LASER_COUNT] = { static float env_laser_jitlut[LASER_COUNT] = {
0.000000, 0.000000,
0.195090, 0.195090,
@ -389,14 +387,14 @@ env_laser::predraw(void)
if (m_iBeamFlags & (LASER_STARTSPARKS)) { if (m_iBeamFlags & (LASER_STARTSPARKS)) {
vector dir = vectoangles(origin - m_vecEndPos); vector dir = vectoangles(origin - m_vecEndPos);
makevectors(dir); makevectors(dir);
FX_Spark(origin, -v_forward); pointparticles(particleeffectnum("platform.spark"), origin, -v_forward, 1);
} }
if (m_iBeamFlags & (LASER_ENDSPARKS)) { if (m_iBeamFlags & (LASER_ENDSPARKS)) {
vector dir2 = vectoangles(m_vecEndPos - origin); vector dir2 = vectoangles(m_vecEndPos - origin);
makevectors(dir2); makevectors(dir2);
FX_Spark(m_vecEndPos, -v_forward); pointparticles(particleeffectnum("platform.spark"), m_vecEndPos, -v_forward, 1);
} }
m_flSparkTime = time + 0.25f; m_flSparkTime = time + 0.25f;

View File

@ -352,7 +352,7 @@ func_tankmortar::PlayerInput(void)
Damage_Radius(trace_endpos, m_eDriver, dmg, dmg * 2.5f, TRUE, 0); Damage_Radius(trace_endpos, m_eDriver, dmg, dmg * 2.5f, TRUE, 0);
/* fx */ /* fx */
FX_Explosion(trace_endpos); pointparticles(particleeffectnum("fx_explosion.main"), trace_endpos, [0,0,0], 1);
SpriteSmoke(spos); SpriteSmoke(spos);
SpriteFlash(spos); SpriteFlash(spos);

View File

@ -170,13 +170,13 @@ NSTraceAttack::_FireSingle(vector vecPos, vector vecAngles, float flDamage, floa
/* water impact */ /* water impact */
if (trace_endcontentsi & CONTENTBIT_WATER) { if (trace_endcontentsi & CONTENTBIT_WATER) {
FX_Impact(IMPACT_SLOSH, trace_endpos, trace_plane_normal); SurfData_ImpactOfNamedType("water", trace_endpos, trace_plane_normal);
_FireSingle(trace_endpos + (v_forward * 2), vecAngles, flDamage / 2, flRange); _FireSingle(trace_endpos + (v_forward * 2), vecAngles, flDamage / 2, flRange);
} else if (trace_endcontentsi & CONTENTBIT_SLIME) { } else if (trace_endcontentsi & CONTENTBIT_SLIME) {
FX_Impact(IMPACT_SLOSH, trace_endpos, trace_plane_normal); SurfData_ImpactOfNamedType("slime", trace_endpos, trace_plane_normal);
_FireSingle(trace_endpos + (v_forward * 2), vecAngles, flDamage / 2, flRange); _FireSingle(trace_endpos + (v_forward * 2), vecAngles, flDamage / 2, flRange);
} else if (trace_endcontentsi & CONTENTBIT_LAVA) { } else if (trace_endcontentsi & CONTENTBIT_LAVA) {
FX_Impact(IMPACT_SLOSH, trace_endpos, trace_plane_normal); SurfData_ImpactOfNamedType("lama", trace_endpos, trace_plane_normal);
_FireSingle(trace_endpos + (v_forward * 2), vecAngles, flDamage / 2, flRange); _FireSingle(trace_endpos + (v_forward * 2), vecAngles, flDamage / 2, flRange);
} }
@ -228,7 +228,7 @@ NSTraceAttack::_FireSingle(vector vecPos, vector vecAngles, float flDamage, floa
if (m_strDecalGroup) if (m_strDecalGroup)
DecalGroups_Place(m_strDecalGroup, trace_endpos + (v_forward * -2)); DecalGroups_Place(m_strDecalGroup, trace_endpos + (v_forward * -2));
SurfData_Impact(trace_ent, trace_surfaceflagsi, trace_endpos, trace_plane_normal); SurfData_Impact(trace_ent, trace_endpos, trace_plane_normal);
} }
/* combine them into one single Damage_Apply call later */ /* combine them into one single Damage_Apply call later */

View File

@ -86,8 +86,6 @@ var bool g_isloading = false;
var bool autocvar_mp_flashlight = true; var bool autocvar_mp_flashlight = true;
void FX_Impact(impactType_t, vector, vector);
void FX_Explosion(vector);
void TraceAttack_FireBullets(int, vector, int, vector, int); void TraceAttack_FireBullets(int, vector, int, vector, int);
#ifdef BULLETPENETRATION #ifdef BULLETPENETRATION

View File

@ -463,8 +463,12 @@ EntityDef_Precaches(int index)
if (substring(strKey, 0, 4) == "snd_") { if (substring(strKey, 0, 4) == "snd_") {
Sound_Precache(strValue); Sound_Precache(strValue);
spawnWords = tokenize_console(g_entDefTable[index].spawnData); } else if (substring(strKey, 0, 6) == "smoke_") {
particleeffectnum(strValue);
} else if (strKey == "model_detonate") {
particleeffectnum(strValue);
} }
spawnWords = tokenize_console(g_entDefTable[index].spawnData);
} }
/* handle soundDef events */ /* handle soundDef events */

View File

@ -146,8 +146,7 @@ private:
int a_ammo2; int a_ammo2;
int a_ammo3; int a_ammo3;
/* any mods that use hooks */ PREDICTED_VECTOR(grapvelocity)
entity hook;
#ifdef CLIENT #ifdef CLIENT
int sequence; int sequence;

View File

@ -524,6 +524,9 @@ NSClientPlayer::ReceiveEntity(float new, float flChanged)
READENTITY_COORD(basevelocity[0], PLAYER_VELOCITY) READENTITY_COORD(basevelocity[0], PLAYER_VELOCITY)
READENTITY_COORD(basevelocity[1], PLAYER_VELOCITY) READENTITY_COORD(basevelocity[1], PLAYER_VELOCITY)
READENTITY_COORD(basevelocity[2], PLAYER_VELOCITY) READENTITY_COORD(basevelocity[2], PLAYER_VELOCITY)
READENTITY_COORD(grapvelocity[0], PLAYER_VELOCITY)
READENTITY_COORD(grapvelocity[1], PLAYER_VELOCITY)
READENTITY_COORD(grapvelocity[2], PLAYER_VELOCITY)
READENTITY_INT(flags, PLAYER_FLAGS) READENTITY_INT(flags, PLAYER_FLAGS)
READENTITY_INT(gflags, PLAYER_FLAGS) READENTITY_INT(gflags, PLAYER_FLAGS)
READENTITY_INT(pmove_flags, PLAYER_FLAGS) READENTITY_INT(pmove_flags, PLAYER_FLAGS)
@ -582,6 +585,7 @@ NSClientPlayer::PredictPreFrame(void)
SAVE_STATE(colormap) SAVE_STATE(colormap)
SAVE_STATE(velocity) SAVE_STATE(velocity)
SAVE_STATE(basevelocity) SAVE_STATE(basevelocity)
SAVE_STATE(grapvelocity)
SAVE_STATE(flags) SAVE_STATE(flags)
SAVE_STATE(gflags) SAVE_STATE(gflags)
SAVE_STATE(pmove_flags) SAVE_STATE(pmove_flags)
@ -627,6 +631,7 @@ NSClientPlayer::PredictPostFrame(void)
ROLL_BACK(colormap) ROLL_BACK(colormap)
ROLL_BACK(velocity) ROLL_BACK(velocity)
ROLL_BACK(basevelocity) ROLL_BACK(basevelocity)
ROLL_BACK(grapvelocity)
ROLL_BACK(flags) ROLL_BACK(flags)
ROLL_BACK(gflags) ROLL_BACK(gflags)
ROLL_BACK(pmove_flags) ROLL_BACK(pmove_flags)
@ -928,6 +933,9 @@ NSClientPlayer::EvaluateEntity(void)
EVALUATE_VECTOR(basevelocity, 0, PLAYER_VELOCITY) EVALUATE_VECTOR(basevelocity, 0, PLAYER_VELOCITY)
EVALUATE_VECTOR(basevelocity, 1, PLAYER_VELOCITY) EVALUATE_VECTOR(basevelocity, 1, PLAYER_VELOCITY)
EVALUATE_VECTOR(basevelocity, 2, PLAYER_VELOCITY) EVALUATE_VECTOR(basevelocity, 2, PLAYER_VELOCITY)
EVALUATE_VECTOR(grapvelocity, 0, PLAYER_VELOCITY)
EVALUATE_VECTOR(grapvelocity, 1, PLAYER_VELOCITY)
EVALUATE_VECTOR(grapvelocity, 2, PLAYER_VELOCITY)
EVALUATE_FIELD(flags, PLAYER_FLAGS) EVALUATE_FIELD(flags, PLAYER_FLAGS)
EVALUATE_FIELD(gflags, PLAYER_FLAGS) EVALUATE_FIELD(gflags, PLAYER_FLAGS)
EVALUATE_FIELD(pmove_flags, PLAYER_FLAGS) EVALUATE_FIELD(pmove_flags, PLAYER_FLAGS)
@ -997,6 +1005,9 @@ NSClientPlayer::SendEntity(entity ePEnt, float flChanged)
SENDENTITY_COORD(basevelocity[0], PLAYER_VELOCITY) SENDENTITY_COORD(basevelocity[0], PLAYER_VELOCITY)
SENDENTITY_COORD(basevelocity[1], PLAYER_VELOCITY) SENDENTITY_COORD(basevelocity[1], PLAYER_VELOCITY)
SENDENTITY_COORD(basevelocity[2], PLAYER_VELOCITY) SENDENTITY_COORD(basevelocity[2], PLAYER_VELOCITY)
SENDENTITY_COORD(grapvelocity[0], PLAYER_VELOCITY)
SENDENTITY_COORD(grapvelocity[1], PLAYER_VELOCITY)
SENDENTITY_COORD(grapvelocity[2], PLAYER_VELOCITY)
SENDENTITY_INT(flags, PLAYER_FLAGS) SENDENTITY_INT(flags, PLAYER_FLAGS)
SENDENTITY_INT(gflags, PLAYER_FLAGS) SENDENTITY_INT(gflags, PLAYER_FLAGS)
SENDENTITY_INT(pmove_flags, PLAYER_FLAGS) SENDENTITY_INT(pmove_flags, PLAYER_FLAGS)

View File

@ -1629,7 +1629,7 @@ NSMonster::SpawnKey(string strKey, string strValue)
m_strTriggerTarget = ReadString(strValue); m_strTriggerTarget = ReadString(strValue);
break; break;
/* entityDef related */ /* entityDef related */
case "netname": /* used for obituries and debug info */ case "netname": /* used for obituaries and debug info */
netname = ReadString(strValue); netname = ReadString(strValue);
break; break;
case "eye_height": case "eye_height":

View File

@ -686,7 +686,7 @@ NSSurfacePropEntity::Death(void)
if (!flExplodeRad) if (!flExplodeRad)
flExplodeRad = flExplodeMag * 2.5f; flExplodeRad = flExplodeMag * 2.5f;
FX_Explosion(origin); pointparticles(particleeffectnum("fx_explosion.main"), origin, angles, 1);
Damage_Radius(origin, this, flExplodeMag, flExplodeRad, TRUE, 0); Damage_Radius(origin, this, flExplodeMag, flExplodeRad, TRUE, 0);
} }
} }

View File

@ -396,13 +396,11 @@ NSClientPlayer::Physics_Run(void)
/* handle drowning and other environmental factors */ /* handle drowning and other environmental factors */
Physics_WaterMove(); Physics_WaterMove();
/* grappling hook stuff */ /* grappling hook stuff, TODO: variable speeds */
#if 0 if (grapvelocity != g_vec_null) {
if (pl.hook.skin == 1) { velocity = (grapvelocity - origin);
pl.velocity = (pl.hook.origin - pl.origin); velocity = (velocity * (1 / (vlen(velocity) / 750)));
pl.velocity = (pl.velocity * (1 / (vlen(pl.velocity) / 750)));
} }
#endif
Physics_SetViewParms(); Physics_SetViewParms();

View File

@ -132,7 +132,7 @@ int SurfData_Finish(void);
int SurfData_TexToSurfData(string tex_name); int SurfData_TexToSurfData(string tex_name);
/* Call an impact effect against an entity surface */ /* Call an impact effect against an entity surface */
void SurfData_Impact(entity e, int fl, vector org, vector ang); void SurfData_Impact(entity e, vector org, vector ang);
/* Get information from a Surface */ /* Get information from a Surface */
__variant SurfData_GetInfo(int, int); __variant SurfData_GetInfo(int, int);
@ -140,4 +140,8 @@ __variant SurfData_GetInfo(int, int);
#ifdef CLIENT #ifdef CLIENT
void SurfData_Impact_Parse(void); void SurfData_Impact_Parse(void);
void SurfData_ImpactID_Parse(void); void SurfData_ImpactID_Parse(void);
#endif #endif
void SurfData_ImpactOfType(int materialID, vector worldPosition, vector impactNormal);
void SurfData_ImpactOfNamedType(string materialName, vector worldPosition, vector impactNormal);

View File

@ -445,10 +445,10 @@ SurfData_ImpactID_Parse(void)
#endif #endif
void void
SurfData_Impact(entity e, int fl, vector org, vector ang) SurfData_Impact(entity e, vector org, vector ang)
{ {
#ifdef SERVER #ifdef SERVER
static void SurfData_Impact_SurfaceParm(entity e, int fl, vector org, vector ang) { static void SurfData_Impact_SurfaceParm(entity e, vector org, vector ang) {
SurfData_Impact_Net(e, org); SurfData_Impact_Net(e, org);
} }
@ -460,14 +460,30 @@ SurfData_Impact(entity e, int fl, vector org, vector ang)
NSLog("SurfData_Impact: %S %i\n", n, texdata); NSLog("SurfData_Impact: %S %i\n", n, texdata);
SurfData_ImpactID_Net(texdata, org, ang); SurfData_ImpactID_Net(texdata, org, ang);
} else } else
SurfData_Impact_SurfaceParm(e, fl, org, ang); SurfData_Impact_SurfaceParm(e, org, ang);
} else { /* anything with takedamage = DAMAGE_YES is a NSurfacePropEntity. */ } else { /* anything with takedamage = DAMAGE_YES is a NSurfacePropEntity. */
NSSurfacePropEntity foo = (NSSurfacePropEntity)e; NSSurfacePropEntity foo = (NSSurfacePropEntity)e;
if (foo.HasSurfaceData() && foo.GetSurfaceData(SURFDATA_MATERIAL) != -1) if (foo.HasSurfaceData() && foo.GetSurfaceData(SURFDATA_MATERIAL) != -1)
FX_Impact(foo.GetSurfaceData(SURFDATA_FX_BULLETIMPACT), org, ang); SurfData_ImpactOfType(foo.GetSurfaceData(SURFDATA_MATERIAL), org, ang);
else else
SurfData_Impact_SurfaceParm(e, fl, org, ang); SurfData_Impact_SurfaceParm(e, org, ang);
} }
#endif #endif
} }
void
SurfData_ImpactOfType(int materialID, vector worldPosition, vector impactNormal)
{
#ifdef SERVER
SurfData_ImpactID_Net(materialID, worldPosition, impactNormal);
#endif
/* TODO: client side only version */
}
void
SurfData_ImpactOfNamedType(string materialName, vector worldPosition, vector impactNormal)
{
int index = (int)hash_get(g_hashsurfdata, materialName, -1);
SurfData_ImpactOfType(index, worldPosition, impactNormal);
}