Fix accumulated damage causing armor hit sfx to stack.

This commit is contained in:
Mari the Deer 2023-01-09 18:39:06 +01:00
commit f2a4dffcdf
2 changed files with 8 additions and 3 deletions

View file

@ -16,6 +16,7 @@ Class SWWMArmor : Armor abstract
// useful for powerup-given armors
transient int lastautousetic; // accumulated damage can make the use sounds stack
transient int lasthittic; // same here
Default
{
@ -80,7 +81,11 @@ Class SWWMArmor : Armor abstract
if ( (amount <= 0) || DamageTypeDefinition.IgnoreArmor(damageType) || (damage <= 0) )
return;
if ( !bNOHITFLASH ) SWWMHandler.DoFlash(Owner,Color(int(clamp(damage*.15,1,16)),255,224,192),3);
if ( !bNOHITSOUND ) Owner.A_StartSound("armor/hit",CHAN_DAMAGE,CHANF_OVERLAP,clamp(damage*.03,0.,1.),2.5);
if ( !bNOHITSOUND && (lasthittic < gametic) )
{
Owner.A_StartSound("armor/hit",CHAN_DAMAGE,CHANF_OVERLAP,clamp(damage*.03,0.,1.),2.5);
lasthittic = gametic;
}
saved = HandleDamage(damage,damageType,flags);
int healed = max(0,saved-damage);
saved = min(saved,damage);