enderalse/source/fs.dll/skse64/skse64/PapyrusEnchantment.cpp

108 lines
5.0 KiB
C++

#include "PapyrusEnchantment.h"
#include "PapyrusSpell.h"
#include "GameObjects.h"
namespace papyrusEnchantment
{
UInt32 GetNumEffects(EnchantmentItem* thisMagic)
{ return magicItemUtils::GetNumEffects(thisMagic); }
float GetNthEffectMagnitude(EnchantmentItem* thisMagic, UInt32 index)
{ return magicItemUtils::GetNthEffectMagnitude(thisMagic, index); }
UInt32 GetNthEffectArea(EnchantmentItem* thisMagic, UInt32 index)
{ return magicItemUtils::GetNthEffectArea(thisMagic, index); }
UInt32 GetNthEffectDuration(EnchantmentItem* thisMagic, UInt32 index)
{ return magicItemUtils::GetNthEffectDuration(thisMagic, index); }
EffectSetting* GetNthEffectMagicEffect(EnchantmentItem* thisMagic, UInt32 index)
{ return magicItemUtils::GetNthEffectMagicEffect(thisMagic, index); }
UInt32 GetCostliestEffectIndex(EnchantmentItem* thisMagic)
{ return magicItemUtils::GetCostliestEffectIndex(thisMagic); }
void SetNthEffectMagnitude(EnchantmentItem* thisMagic, UInt32 index, float value)
{ magicItemUtils::SetNthEffectMagnitude(thisMagic, index, value); }
void SetNthEffectArea(EnchantmentItem* thisMagic, UInt32 index, UInt32 value)
{ magicItemUtils::SetNthEffectArea(thisMagic, index, value); }
void SetNthEffectDuration(EnchantmentItem* thisMagic, UInt32 index, UInt32 value)
{ magicItemUtils::SetNthEffectDuration(thisMagic, index, value); }
EnchantmentItem * GetBaseEnchantment(EnchantmentItem* thisMagic)
{
return thisMagic ? thisMagic->data.baseEnchantment : NULL;
}
BGSListForm * GetKeywordRestrictions(EnchantmentItem* thisMagic)
{
return thisMagic ? thisMagic->data.restrictions : NULL;
}
void SetKeywordRestrictions(EnchantmentItem* thisMagic, BGSListForm * list)
{
if(thisMagic) {
thisMagic->data.restrictions = list;
}
}
}
#include "PapyrusVM.h"
#include "PapyrusNativeFunctions.h"
void papyrusEnchantment::RegisterFuncs(VMClassRegistry* registry)
{
registry->RegisterFunction(
new NativeFunction0<EnchantmentItem, UInt32>("GetNumEffects", "Enchantment", papyrusEnchantment::GetNumEffects, registry));
registry->RegisterFunction(
new NativeFunction1<EnchantmentItem, float, UInt32>("GetNthEffectMagnitude", "Enchantment", papyrusEnchantment::GetNthEffectMagnitude, registry));
registry->RegisterFunction(
new NativeFunction1<EnchantmentItem, UInt32, UInt32>("GetNthEffectArea", "Enchantment", papyrusEnchantment::GetNthEffectArea, registry));
registry->RegisterFunction(
new NativeFunction1<EnchantmentItem, UInt32, UInt32>("GetNthEffectDuration", "Enchantment", papyrusEnchantment::GetNthEffectDuration, registry));
registry->RegisterFunction(
new NativeFunction1<EnchantmentItem, EffectSetting*, UInt32>("GetNthEffectMagicEffect", "Enchantment", papyrusEnchantment::GetNthEffectMagicEffect, registry));
registry->RegisterFunction(
new NativeFunction0<EnchantmentItem, UInt32>("GetCostliestEffectIndex", "Enchantment", papyrusEnchantment::GetCostliestEffectIndex, registry));
registry->RegisterFunction(
new NativeFunction0<EnchantmentItem, EnchantmentItem*>("GetBaseEnchantment", "Enchantment", papyrusEnchantment::GetBaseEnchantment, registry));
registry->RegisterFunction(
new NativeFunction0<EnchantmentItem, BGSListForm*>("GetKeywordRestrictions", "Enchantment", papyrusEnchantment::GetKeywordRestrictions, registry));
// Sets
registry->RegisterFunction(
new NativeFunction2<EnchantmentItem, void, UInt32, float>("SetNthEffectMagnitude", "Enchantment", papyrusEnchantment::SetNthEffectMagnitude, registry));
registry->RegisterFunction(
new NativeFunction2<EnchantmentItem, void, UInt32, UInt32>("SetNthEffectArea", "Enchantment", papyrusEnchantment::SetNthEffectArea, registry));
registry->RegisterFunction(
new NativeFunction2<EnchantmentItem, void, UInt32, UInt32>("SetNthEffectDuration", "Enchantment", papyrusEnchantment::SetNthEffectDuration, registry));
registry->RegisterFunction(
new NativeFunction1<EnchantmentItem, void, BGSListForm*>("SetKeywordRestrictions", "Enchantment", papyrusEnchantment::SetKeywordRestrictions, registry));
registry->SetFunctionFlags("Enchantment", "GetNumEffects", VMClassRegistry::kFunctionFlag_NoWait);
registry->SetFunctionFlags("Enchantment", "GetNthEffectMagnitude", VMClassRegistry::kFunctionFlag_NoWait);
registry->SetFunctionFlags("Enchantment", "GetNthEffectArea", VMClassRegistry::kFunctionFlag_NoWait);
registry->SetFunctionFlags("Enchantment", "GetNthEffectDuration", VMClassRegistry::kFunctionFlag_NoWait);
registry->SetFunctionFlags("Enchantment", "GetNthEffectMagicEffect", VMClassRegistry::kFunctionFlag_NoWait);
registry->SetFunctionFlags("Enchantment", "GetCostliestEffectIndex", VMClassRegistry::kFunctionFlag_NoWait);
registry->SetFunctionFlags("Enchantment", "GetBaseEnchantment", VMClassRegistry::kFunctionFlag_NoWait);
registry->SetFunctionFlags("Enchantment", "SetNthEffectMagnitude", VMClassRegistry::kFunctionFlag_NoWait);
registry->SetFunctionFlags("Enchantment", "SetNthEffectArea", VMClassRegistry::kFunctionFlag_NoWait);
registry->SetFunctionFlags("Enchantment", "SetNthEffectDuration", VMClassRegistry::kFunctionFlag_NoWait);
}