1
Fork 0
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

54 lines
1.6 KiB

#pragma once
namespace ArtifactTracker
{
extern bool g_bLoaded;
extern bool g_bSaveLoaded;
extern bool g_bHomeContainer;
extern bool g_bBookShelf;
extern bool g_bTakeAll;
extern bool g_bNotifyNewArtifact;
extern std::uint32_t g_bTakeAllCount;
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;
extern std::unordered_set<RE::FormType> g_artifactFormTypes;
extern std::unordered_set<RE::FormType> g_artifactAllFormTypes;
extern std::unordered_map<RE::FormID, RE::TESObjectREFR*> g_persistentMap;
extern RE::TESObjectREFR* g_cellStorage;
extern const SKSE::LoadInterface* g_loadInterface;
bool Init(bool bKID = false);
bool IsArtifact(const RE::TESForm* a_item);
RE::TESForm* GetArtifactByID(const RE::FormID a_formID);
bool IsHome();
void OnGameLoad();
void SetContainerMode(const bool bOpening);
void OnCellEnter(const RE::FormID a_formID);
void OnCellEnter(const RE::BGSLocation* location, const RE::TESObjectCELL* cell);
void SyncCellStorage(const RE::TESObjectREFR* a_ignoreRef = nullptr);
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);
void OnLocationChange();
void RescanFoundArtifacts();
void RescanStoredArtifacts();
void RescanNewArtifacts();
}