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

150 lines
5.4 KiB
C++

#include "PapyrusLeveledItem.h"
#include "GameObjects.h"
#include "GameReferences.h"
namespace papyrusLeveledItem
{
UInt32 GetChanceNone(TESLevItem * leveledItem)
{ return leveledItemUtils::GetChanceNone(&leveledItem->leveledList); }
void SetChanceNone(TESLevItem * leveledItem, UInt32 chanceNone)
{ leveledItemUtils::SetChanceNone(&leveledItem->leveledList, chanceNone); }
TESGlobal * GetChanceGlobal(TESLevItem * leveledItem)
{ return leveledItemUtils::GetChanceGlobal(&leveledItem->leveledList); }
void SetChanceGlobal(TESLevItem * leveledItem, TESGlobal * globalVar)
{ leveledItemUtils::SetChanceGlobal(&leveledItem->leveledList, globalVar); }
UInt32 GetNumForms(TESLevItem * leveledItem)
{ return leveledItemUtils::GetNumForms(&leveledItem->leveledList); }
TESForm * GetNthForm(TESLevItem * leveledItem, UInt32 n)
{ return leveledItemUtils::GetNthForm(&leveledItem->leveledList, n); }
UInt32 GetNthLevel(TESLevItem * leveledItem, UInt32 n)
{ return leveledItemUtils::GetNthLevel(&leveledItem->leveledList, n); }
void SetNthLevel(TESLevItem * leveledItem, UInt32 n, UInt32 level)
{ return leveledItemUtils::SetNthLevel(&leveledItem->leveledList, n, level); }
UInt32 GetNthCount(TESLevItem * leveledItem, UInt32 n)
{ return leveledItemUtils::GetNthCount(&leveledItem->leveledList, n); }
void SetNthCount(TESLevItem * leveledItem, UInt32 n, UInt32 count)
{ return leveledItemUtils::SetNthCount(&leveledItem->leveledList, n, count); }
}
namespace leveledItemUtils
{
UInt32 GetChanceNone(TESLeveledList * leveledList)
{
return leveledList->chanceValue;
}
void SetChanceNone(TESLeveledList * leveledList, UInt32 chanceNone)
{
leveledList->chanceValue = chanceNone;
}
TESGlobal * GetChanceGlobal(TESLeveledList * leveledList)
{
return leveledList->chanceGlobal;
}
void SetChanceGlobal(TESLeveledList * leveledList, TESGlobal * globalVar)
{
leveledList->chanceGlobal = globalVar;
}
UInt32 GetNumForms(TESLeveledList * leveledList)
{
return leveledList->length;
}
TESForm * GetNthForm(TESLeveledList * leveledList, UInt32 n)
{
return (n < leveledList->length) ? leveledList->entries[n].form : NULL;
}
UInt32 GetNthLevel(TESLeveledList * leveledList, UInt32 n)
{
return (n < leveledList->length) ? leveledList->entries[n].level : 0;
}
void SetNthLevel(TESLeveledList * leveledList, UInt32 n, UInt32 level)
{
if(n < leveledList->length) {
if(level > 0xFFFF)
level = 0xFFFF;
leveledList->entries[n].level = level;
}
}
UInt32 GetNthCount(TESLeveledList * leveledList, UInt32 n)
{
return (n < leveledList->length) ? leveledList->entries[n].count : 0;
}
void SetNthCount(TESLeveledList * leveledList, UInt32 n, UInt32 count)
{
if(n < leveledList->length) {
if(count > 0xFFFF)
count = 0xFFFF;
leveledList->entries[n].count = count;
}
}
}
#include "PapyrusVM.h"
#include "PapyrusNativeFunctions.h"
void papyrusLeveledItem::RegisterFuncs(VMClassRegistry* registry)
{
registry->RegisterFunction(
new NativeFunction0<TESLevItem, UInt32>("GetChanceNone", "LeveledItem", papyrusLeveledItem::GetChanceNone, registry));
registry->RegisterFunction(
new NativeFunction1<TESLevItem, void, UInt32>("SetChanceNone", "LeveledItem", papyrusLeveledItem::SetChanceNone, registry));
registry->RegisterFunction(
new NativeFunction0<TESLevItem, TESGlobal*>("GetChanceGlobal", "LeveledItem", papyrusLeveledItem::GetChanceGlobal, registry));
registry->RegisterFunction(
new NativeFunction1<TESLevItem, void, TESGlobal*>("SetChanceGlobal", "LeveledItem", papyrusLeveledItem::SetChanceGlobal, registry));
registry->RegisterFunction(
new NativeFunction0<TESLevItem, UInt32>("GetNumForms", "LeveledItem", papyrusLeveledItem::GetNumForms, registry));
registry->RegisterFunction(
new NativeFunction1<TESLevItem, TESForm*, UInt32>("GetNthForm", "LeveledItem", papyrusLeveledItem::GetNthForm, registry));
registry->RegisterFunction(
new NativeFunction1<TESLevItem, UInt32, UInt32>("GetNthLevel", "LeveledItem", papyrusLeveledItem::GetNthLevel, registry));
registry->RegisterFunction(
new NativeFunction2<TESLevItem, void, UInt32, UInt32>("SetNthLevel", "LeveledItem", papyrusLeveledItem::SetNthLevel, registry));
registry->RegisterFunction(
new NativeFunction1<TESLevItem, UInt32, UInt32>("GetNthCount", "LeveledItem", papyrusLeveledItem::GetNthCount, registry));
registry->RegisterFunction(
new NativeFunction2<TESLevItem, void, UInt32, UInt32>("SetNthCount", "LeveledItem", papyrusLeveledItem::SetNthCount, registry));
registry->SetFunctionFlags("LeveledItem", "GetChanceNone", VMClassRegistry::kFunctionFlag_NoWait);
registry->SetFunctionFlags("LeveledItem", "SetChanceNone", VMClassRegistry::kFunctionFlag_NoWait);
registry->SetFunctionFlags("LeveledItem", "GetChanceGlobal", VMClassRegistry::kFunctionFlag_NoWait);
registry->SetFunctionFlags("LeveledItem", "SetChanceGlobal", VMClassRegistry::kFunctionFlag_NoWait);
registry->SetFunctionFlags("LeveledItem", "GetNumForms", VMClassRegistry::kFunctionFlag_NoWait);
registry->SetFunctionFlags("LeveledItem", "GetNthForm", VMClassRegistry::kFunctionFlag_NoWait);
registry->SetFunctionFlags("LeveledItem", "GetNthLevel", VMClassRegistry::kFunctionFlag_NoWait);
registry->SetFunctionFlags("LeveledItem", "SetNthLevel", VMClassRegistry::kFunctionFlag_NoWait);
registry->SetFunctionFlags("LeveledItem", "GetNthCount", VMClassRegistry::kFunctionFlag_NoWait);
registry->SetFunctionFlags("LeveledItem", "SetNthCount", VMClassRegistry::kFunctionFlag_NoWait);
}