- removed the remaining native parts of ABasicArmor.

- simplified some FindInventory calls using PClass::FindActor to call the variant taking a name directly.
This commit is contained in:
Christoph Oelckers 2017-01-18 22:57:47 +01:00
commit 2fcffd1fc1
18 changed files with 62 additions and 107 deletions

View file

@ -4955,8 +4955,8 @@ int DLevelScript::CallFunction(int argCount, int funcIndex, SDWORD *args)
else
{
FName p(FBehavior::StaticLookupString(args[0]));
ABasicArmor * armor = (ABasicArmor *) players[args[1]].mo->FindInventory(NAME_BasicArmor);
if (armor && armor->ArmorType == p) return armor->Amount;
auto armor = players[args[1]].mo->FindInventory(NAME_BasicArmor);
if (armor && armor->NameVar(NAME_ArmorType) == p) return armor->Amount;
}
return 0;
}
@ -4965,29 +4965,29 @@ int DLevelScript::CallFunction(int argCount, int funcIndex, SDWORD *args)
{
if (activator == NULL || activator->player == NULL) return 0;
ABasicArmor * equippedarmor = (ABasicArmor *) activator->FindInventory(NAME_BasicArmor);
auto equippedarmor = activator->FindInventory(NAME_BasicArmor);
if (equippedarmor && equippedarmor->Amount != 0)
{
switch(args[0])
{
case ARMORINFO_CLASSNAME:
return GlobalACSStrings.AddString(equippedarmor->ArmorType.GetChars());
return GlobalACSStrings.AddString(equippedarmor->NameVar(NAME_ArmorType).GetChars());
case ARMORINFO_SAVEAMOUNT:
return equippedarmor->MaxAmount;
return equippedarmor->IntVar(NAME_MaxAmount);
case ARMORINFO_SAVEPERCENT:
return DoubleToACS(equippedarmor->SavePercent);
return DoubleToACS(equippedarmor->FloatVar(NAME_SavePercent));
case ARMORINFO_MAXABSORB:
return equippedarmor->MaxAbsorb;
return equippedarmor->IntVar(NAME_MaxAbsorb);
case ARMORINFO_MAXFULLABSORB:
return equippedarmor->MaxFullAbsorb;
return equippedarmor->IntVar(NAME_MaxFullAbsorb);
case ARMORINFO_ACTUALSAVEAMOUNT:
return equippedarmor->ActualSaveAmount;
return equippedarmor->IntVar(NAME_ActualSaveAmount);
default:
return 0;
@ -8235,7 +8235,7 @@ scriptwait:
case PCD_PLAYERARMORPOINTS:
if (activator)
{
ABasicArmor *armor = activator->FindInventory<ABasicArmor>();
auto armor = activator->FindInventory(NAME_BasicArmor);
PushToStack (armor ? armor->Amount : 0);
}
else
@ -8682,7 +8682,7 @@ scriptwait:
{
AInventory *sigil;
if (activator == NULL || (sigil = activator->FindInventory(PClass::FindActor(NAME_Sigil))) == NULL)
if (activator == NULL || (sigil = activator->FindInventory(NAME_Sigil)) == NULL)
{
PushToStack (0);
}