#pragma once namespace ArtifactTracker { extern bool g_bLoaded; extern bool g_bHomeContainer; 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 g_artifactMap; extern std::unordered_map g_persistentMap; extern RE::TESObjectREFR* g_cellStorage; void Init(); bool IsArtifact(RE::TESForm* a_item); RE::TESForm* GetArtifactByID(RE::FormID a_formID); bool IsHome(); void OnGameLoad(); void SetContainerMode(bool bOpening); void OnCellEnter(RE::FormID a_formID); void OnCellEnter(RE::BGSLocation* location, RE::TESObjectCELL* cell); void SyncCellStorage(RE::FormID skipRefID = NULL); 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); }