Use NSDict instead of sprintfing strings and sending them over Damage()

This commit is contained in:
Marco Cawthorne 2024-07-18 13:33:36 -07:00
parent e9145091fd
commit ac037bb887
Signed by: eukara
GPG key ID: CE2032F0A2882A22
6 changed files with 25 additions and 14 deletions

View file

@ -408,13 +408,15 @@ func_breakable::Touch(entity eToucher)
if (dmgAmount >= health) {
vector dmgDir = dirFromTarget(eToucher.origin, WorldSpaceCenter());
string dmgDef = sprintf("\"damage\" \"%i\"", dmgAmount);
NSDict damageDecl = spawn(NSDict);
damageDecl.AddKey("damage", itos(dmgAmount));
m_bCanTouch = false;
Damage(eToucher, eToucher, dmgDef, 1.0f, dmgDir, eToucher.origin);
Damage(eToucher, eToucher, damageDecl.GetDeclBody(), 1.0f, dmgDir, eToucher.origin);
if ((GetSurfaceData(SURFDATA_MATERIAL) == GSMATERIAL_GLASS) || (GetSurfaceData(SURFDATA_MATERIAL) == GSMATERIAL_COMPUTER)) {
Damage(eToucher, eToucher, dmgDef, 0.25f, dmgDir, eToucher.origin);
Damage(eToucher, eToucher, damageDecl.GetDeclBody(), 0.25f, dmgDir, eToucher.origin);
}
remove(damageDecl);
}
}

View file

@ -581,9 +581,11 @@ func_door::Blocked(entity eBlocker)
if (m_iDamage) {
vector center = WorldSpaceCenter();
vector dmgDir = dirFromTarget(center, eBlocker.origin);
string dmgDef = sprintf("\"damage\" \"%i\"", m_iDamage);
NSDict damageDecl = spawn(NSDict);
damageDecl.AddKey("damage", itos(m_iDamage));
m_bCanTouch = false;
entityDamage(eBlocker, this, eBlocker, dmgDef, "", center, dmgDir, eBlocker.origin);
entityDamage(eBlocker, this, eBlocker, damageDecl.GetDeclBody(), "", center, dmgDir, eBlocker.origin);
remove(damageDecl);
}
if (!m_bForceClosed)

View file

@ -515,9 +515,11 @@ func_door_rotating::Blocked(entity eBlocker)
if (m_iDamage) {
vector center = WorldSpaceCenter();
vector dmgDir = dirFromTarget(center, eBlocker.origin);
string dmgDef = sprintf("\"damage\" \"%i\"", m_iDamage);
NSDict damageDecl = spawn(NSDict);
damageDecl.AddKey("damage", itos(m_iDamage));
m_bCanTouch = false;
entityDamage(eBlocker, this, eBlocker, dmgDef, "", center, dmgDir, eBlocker.origin);
entityDamage(eBlocker, this, eBlocker, damageDecl.GetDeclBody(), "", center, dmgDir, eBlocker.origin);
remove(damageDecl);
}
if (m_flWait >= 0) {

View file

@ -207,8 +207,10 @@ func_rotating::Blocked(entity eBlocker)
if (WithinBounds(eBlocker)) {
vector center = WorldSpaceCenter();
vector dmgDir = dirFromTarget(center, eBlocker.origin);
string dmgDef = sprintf("\"damage\" \"%i\"", (int)m_flDamage);
entityDamage(eBlocker, this, eBlocker, dmgDef, "", center, dmgDir, eBlocker.origin);
NSDict damageDecl = spawn(NSDict);
damageDecl.AddKey("damage", ftos(m_flDamage));
entityDamage(eBlocker, this, eBlocker, damageDecl.GetDeclBody(), "", center, dmgDir, eBlocker.origin);
remove(damageDecl);
}
}
}

View file

@ -96,9 +96,10 @@ game_player_hurt::Trigger(entity activatingEntity, triggermode_t triggerMode)
return;
}
string damageDef = sprintf("\"damage\" \"%i\"", m_iDamage);
entityDamage(activatingEntity, this, activatingEntity, damageDef, "", GetOrigin(), g_vec_null, activatingEntity.origin);
NSDict damageDecl = spawn(NSDict);
damageDecl.AddKey("damage", itos(m_iDamage));
entityDamage(activatingEntity, this, activatingEntity, damageDecl.GetDeclBody(), "", GetOrigin(), g_vec_null, activatingEntity.origin);
remove(damageDecl);
if (HasSpawnFlags(1)) {
Destroy();

View file

@ -462,8 +462,10 @@ prop_vehicle_driveable_wheel::Accel(float flMoveTime, float m_flTurn)
if (trace_ent.takedamage) {
NSSurfacePropEntity foo = (NSSurfacePropEntity)trace_ent;
vector dmgDir = dirFromTarget(trace_endpos, foo.origin);
string dmgDef = sprintf("\"damage\" \"%i\"", iImpactDamage);
entityDamage(foo, this, vehParent.m_eDriver, dmgDef, "", trace_endpos, dmgDir, foo.origin);
NSDict damageDecl = spawn(NSDict);
damageDecl.AddKey("damage", itos(iImpactDamage));
entityDamage(foo, this, vehParent.m_eDriver, damageDecl.GetDeclBody(), "", trace_endpos, dmgDir, foo.origin);
remove(damageDecl);
//print(sprintf("Delivering %i impact damage\n", iImpactDamage));
}
#endif