Fix crash when Shield Belt is depleted.
This commit is contained in:
parent
a13fe014b1
commit
20666ac1bd
1 changed files with 12 additions and 3 deletions
|
|
@ -21,7 +21,12 @@ Class UTArmor : Armor
|
||||||
newdamage -= saved;
|
newdamage -= saved;
|
||||||
amount -= saved;
|
amount -= saved;
|
||||||
damage = newdamage;
|
damage = newdamage;
|
||||||
if ( (amount <= 0) ) DepleteOrDestroy();
|
if ( amount <= 0 )
|
||||||
|
{
|
||||||
|
if ( damage > 0 ) newdamage = ApplyDamageFactors(GetClass(),damageType,damage,damage);
|
||||||
|
DepleteOrDestroy();
|
||||||
|
return;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if ( damage > 0 ) newdamage = ApplyDamageFactors(GetClass(),damageType,damage,damage);
|
if ( damage > 0 ) newdamage = ApplyDamageFactors(GetClass(),damageType,damage,damage);
|
||||||
}
|
}
|
||||||
|
|
@ -141,9 +146,13 @@ Class UTShieldBelt : UTArmor
|
||||||
Owner.A_PlaySound("belt/absorb",CHAN_7);
|
Owner.A_PlaySound("belt/absorb",CHAN_7);
|
||||||
UTMainHandler.DoFlash(Owner,Color(80,255,224,0),5);
|
UTMainHandler.DoFlash(Owner,Color(80,255,224,0),5);
|
||||||
}
|
}
|
||||||
int oldamt = amount;
|
|
||||||
Super.AbsorbDamage(damage,damageType,newdamage);
|
Super.AbsorbDamage(damage,damageType,newdamage);
|
||||||
if ( (oldamt > 0) && (amount <= 0) && Owner.CheckLocalView() ) Console.Printf(StringTable.Localize("$D_SHIELDBELT"));
|
}
|
||||||
|
override void DepleteOrDestroy()
|
||||||
|
{
|
||||||
|
if ( (amount <= 0) && Owner.CheckLocalView() )
|
||||||
|
Console.Printf(StringTable.Localize("$D_SHIELDBELT"));
|
||||||
|
Super.DepleteOrDestroy();
|
||||||
}
|
}
|
||||||
override bool HandlePickup( Inventory item )
|
override bool HandlePickup( Inventory item )
|
||||||
{
|
{
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue