Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions nvse/nvse/CommandTable.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2305,6 +2305,10 @@ void CommandTable::AddCommandsV6()
ADD_CMD(QInterpolateEx);
ADD_CMD(QToEulerEx);
ADD_CMD(GetUIFloatInherited);

// 6.4 beta 09
ADD_CMD(ListGetSaveBakedObjectCount);
ADD_CMD(GetNumLevSaveBakedItems);
}

namespace PluginAPI
Expand Down
30 changes: 30 additions & 0 deletions nvse/nvse/Commands_List.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -442,3 +442,33 @@ bool Cmd_ForEachInList_Execute(COMMAND_ARGS)
*result = true;
return true;
}

bool Cmd_ListGetSaveBakedObjectCount_Execute(COMMAND_ARGS) {
*result = 0;
BGSListForm* pListForm = NULL;
if (ExtractArgs(EXTRACT_ARGS, &pListForm)) {
if (pListForm) {
*result = pListForm->numAddedObjects;
}
}

if (IsConsoleMode())
Console_Print("ListGetSaveBakedObjectCount >> %f", *result);

return true;
}

bool Cmd_GetNumLevSaveBakedItems_Execute(COMMAND_ARGS) {
*result = 0;
TESForm* pLeveledListForm = NULL;
if (ExtractArgs(EXTRACT_ARGS, &pLeveledListForm) && pLeveledListForm) {
TESLeveledList* pLeveledList = TESLeveledList::GetFormAsLeveledList(pLeveledListForm);
if (pLeveledList) {
*result = pLeveledList->scriptAddedObjects.Count();
}
}
if (IsConsoleMode())
Console_Print("GetNumLevSaveBakedItems >> %f", *result);

return true;
}
5 changes: 4 additions & 1 deletion nvse/nvse/Commands_List.h
Original file line number Diff line number Diff line change
Expand Up @@ -67,4 +67,7 @@ static ParamInfo kParams_OneFormList_OneFunction[2] =
{ "condition user defined function", kParamType_AnyForm, 0 },
};

DEFINE_COMMAND(ForEachInList, "invokes a UDF that is called on each form in a formlist.", false, 2, kParams_OneFormList_OneFunction);
DEFINE_COMMAND(ForEachInList, "invokes a UDF that is called on each form in a formlist.", false, 2, kParams_OneFormList_OneFunction);

DEFINE_CMD_ALT(ListGetSaveBakedObjectCount, , "returns the count of savebaked items in the form list (Added with AddFormToFormList). The number is also the end range of said added forms", 0, 1, kParams_FormList);
DEFINE_CMD_ALT(GetNumLevSaveBakedItems, LListGetSaveBakedCount, "returns the count of savebaked items in the leveled list (Added with AddItemToLeveledList or AddNPCToLeveledList)", 0, 1, kParams_OneForm);
9 changes: 6 additions & 3 deletions nvse/nvse/GameForms.h
Original file line number Diff line number Diff line change
Expand Up @@ -3162,9 +3162,12 @@ class TESLeveledList : public BaseFormComponent
tList<BaseData> datas; // 004
UInt8 chanceNone; // 00C
UInt8 flags; // 00D
UInt8 fill00E[2]; // 00E
UInt32 unk010; // 010 LVLG
ExtraDataList extraDatas; // 014
TESGlobal* global;
tList<BaseData> scriptAddedObjects;

static TESLeveledList* GetFormAsLeveledList(TESForm* apForm) {
return CdeclCall<TESLeveledList*>(0x487BE0, apForm);
};
}; // 01C

// TESLevCreature (68)
Expand Down
Loading