2022-06-27 11:38:49 +00:00
|
|
|
#pragma once
|
|
|
|
|
|
|
|
namespace ArtifactTracker
|
|
|
|
{
|
2022-06-30 10:31:01 +00:00
|
|
|
extern bool g_bLoaded;
|
|
|
|
extern bool g_bHomeContainer;
|
2022-07-09 12:15:35 +00:00
|
|
|
extern bool g_bBookShelf;
|
2022-07-11 22:37:19 +00:00
|
|
|
extern bool g_bTakeAll;
|
|
|
|
extern bool g_bNotifyNewArtifact;
|
|
|
|
extern std::uint32_t g_bTakeAllCount;
|
2022-06-30 10:31:01 +00:00
|
|
|
extern RE::TESBoundObject* g_cellContainer;
|
|
|
|
extern RE::BGSListForm* g_listNew;
|
|
|
|
extern RE::BGSListForm* g_listStored;
|
|
|
|
extern RE::BGSListForm* g_listFound;
|
|
|
|
extern RE::BGSListForm* g_persistentStorage;
|
|
|
|
extern RE::BGSKeyword* g_homeKeyword;
|
|
|
|
extern std::unordered_map<RE::FormID, RE::TESForm*> g_artifactMap;
|
2022-07-03 01:35:16 +00:00
|
|
|
extern std::unordered_set<RE::FormType> g_artifactFormTypes;
|
2022-06-30 10:31:01 +00:00
|
|
|
extern std::unordered_map<RE::FormID, RE::TESObjectREFR*> g_persistentMap;
|
|
|
|
extern RE::TESObjectREFR* g_cellStorage;
|
2022-07-11 11:41:07 +00:00
|
|
|
extern const SKSE::LoadInterface* g_loadInterface;
|
2022-06-27 11:38:49 +00:00
|
|
|
|
2022-07-07 01:04:51 +00:00
|
|
|
bool Init(bool bKID = false);
|
2022-06-27 11:38:49 +00:00
|
|
|
|
2022-07-05 15:52:30 +00:00
|
|
|
bool IsArtifact(const RE::TESForm* a_item);
|
2022-07-03 01:35:16 +00:00
|
|
|
|
2022-07-05 15:52:30 +00:00
|
|
|
RE::TESForm* GetArtifactByID(const RE::FormID a_formID);
|
2022-06-27 11:38:49 +00:00
|
|
|
|
2022-06-30 10:31:01 +00:00
|
|
|
bool IsHome();
|
2022-06-27 11:38:49 +00:00
|
|
|
|
2022-06-30 10:31:01 +00:00
|
|
|
void OnGameLoad();
|
|
|
|
|
2022-07-05 15:52:30 +00:00
|
|
|
void SetContainerMode(const bool bOpening);
|
2022-06-27 11:38:49 +00:00
|
|
|
|
2022-07-05 15:52:30 +00:00
|
|
|
void OnCellEnter(const RE::FormID a_formID);
|
2022-06-27 11:38:49 +00:00
|
|
|
|
2022-07-05 15:52:30 +00:00
|
|
|
void OnCellEnter(const RE::BGSLocation* location, const RE::TESObjectCELL* cell);
|
2022-06-30 10:31:01 +00:00
|
|
|
|
2022-07-05 15:52:30 +00:00
|
|
|
void SyncCellStorage(const RE::TESObjectREFR* a_ignoreRef = nullptr);
|
2022-06-30 10:31:01 +00:00
|
|
|
|
|
|
|
void OnContainerChanged(const RE::TESContainerChangedEvent* a_event, RE::TESForm* form);
|
|
|
|
|
|
|
|
void AddRefArtifactsToList(RE::TESForm* a_refOrList, RE::BGSListForm* a_targetList, RE::BGSListForm* a_excludeList = NULL);
|
2022-07-09 12:30:51 +00:00
|
|
|
|
|
|
|
void OnLocationChange();
|
2022-07-11 11:41:07 +00:00
|
|
|
|
|
|
|
void RescanFoundArtifacts();
|
|
|
|
|
|
|
|
void RescanStoredArtifacts();
|
|
|
|
|
|
|
|
void RescanNewArtifacts();
|
2022-06-27 11:38:49 +00:00
|
|
|
}
|