From e836f4134db95c1beaeb02e79aa4caa2c465caaf Mon Sep 17 00:00:00 2001 From: Eddoursul Date: Mon, 11 Jul 2022 13:41:07 +0200 Subject: [PATCH] All moving parts have been moved to the DLL --- Artifact Tracker.esp | Bin 1227 -> 879 bytes SKSE/Plugins/ArtifactTracker.dll | Bin 453120 -> 437248 bytes Scripts/ArtifactTrackerPlayer.pex | Bin 2421 -> 0 bytes Source/ArtifactTrackerDLL/CMakeLists.txt | 1 - .../src/ArtifactTracker.cpp | 170 ++- .../ArtifactTrackerDLL/src/ArtifactTracker.h | 7 + Source/ArtifactTrackerDLL/src/Main.cpp | 3 +- Source/ArtifactTrackerDLL/src/Papyrus.cpp | 19 - Source/ArtifactTrackerDLL/src/Papyrus.h | 15 - .../ArtifactTrackerDLL/src/PapyrusFunctions.h | 108 -- Source/ArtifactTrackerDLL/src/Util.h | 17 +- Source/Scripts/ArtifactTrackerPlayer.psc | 80 -- .../PlayerBookShelfContainerScript.psc | 1010 ----------------- Source/Scripts/QuickLootEE.psc | 33 - 14 files changed, 143 insertions(+), 1320 deletions(-) delete mode 100644 Scripts/ArtifactTrackerPlayer.pex delete mode 100644 Source/ArtifactTrackerDLL/src/Papyrus.cpp delete mode 100644 Source/ArtifactTrackerDLL/src/Papyrus.h delete mode 100644 Source/ArtifactTrackerDLL/src/PapyrusFunctions.h delete mode 100644 Source/Scripts/ArtifactTrackerPlayer.psc delete mode 100644 Source/Scripts/PlayerBookShelfContainerScript.psc delete mode 100644 Source/Scripts/QuickLootEE.psc diff --git a/Artifact Tracker.esp b/Artifact Tracker.esp index f2b527391df41153be1be355d583e4162d38e1df..862ab1b524e4e3e24ef8766ccf8d0488ab85268a 100644 GIT binary patch delta 184 zcmX@j`JQcp5*sfA14A0`M2)?ouXTV-An=Y1cTs{c83ZQ&vSbvTY{FP6RSy($_V)_` z$-tC?`2Gx&3z@_w-(_?#aB&QAWQFK-4+;&q24uSV1f%Ex@r5Bu7#Jq6WY%J2oP32@ mmyu~Q6N}E|70d#Y?O1dqVCMTchxj={RSO+l&p5e>#S;Kc`Xl}T delta 529 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

nC`dwC#KF^+@J19jGo~ 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%0ACCZ=|+oiGMi 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 delta 153885 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 diff --git a/Scripts/ArtifactTrackerPlayer.pex b/Scripts/ArtifactTrackerPlayer.pex deleted file mode 100644 index c8cad767f4ecd8f0a33aa3305d19ff517f4fdad0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2421 zcmaJ>*>V#{6g@4;lDr^;jf_oz469fTBwy9#Sc4Jkz#1jC))&EgbU+ zdCV8(H9wILN#!A@yEWFxkaVjw_ny9e&)sJJ{_&5$suc)uZT@L~$HG!()K(aoS6LXn zliAB8+?UznZXRJ`C63d6miLnYEm_EmdrAjbM*EW&>9+Y)nhg^giSehYNxfKqq1UuB zIQl|+hG%IQKMi*zYF5HgUMd_er+sbEUYB_k>J5`-GA@pC9QW`lZA$2jN1w~Rp=FCM zmt~Sz58<}NtkwHjCbd~kwF#A$8KyV(byT*Rp_PwtHBFLqPi8q5*5$U!4U0p~3YrOe zr}dtSW2rG2r8-tdr8-Q|T9;drJds>VRG4F?+g*9J{&vmCotz=QeII6MZl&2yLT5N$ zI(2Ee^OhWIr)&bz$qxLvW6HLF@{6$9QAXL63?g6BAa^Zqbi2Oc6qxSrEewR) z81Hs1!y6`lOqDw2^Q*7R_cAk>eXX-WwO7;Z^=@njsg}!R3uCd|>~CZ0dCG}ZQE21A z<<(FnG7d}{C=Qqk6ZJs`MePPdy%;A6oxIDX8?={6e_QD{wwd&BVyX8b3^zM@u)|UN z{`HfBe2FsGq9a!wsrM*bBCFr$)~SvgVGa~@8ax7Uf1+{4o;fw z7yhS){*}b!4}BHAdzPkVWo1Z5?`~`y-N_;d%V6Krcz8BfoVhrL_|>8mfgQFW>VqjwVjYp_|k)h+~^k+pN^e1TT6K+)Z6 z@Y2blVsk$@Y12foly#i)#)C4lfTu@+ahAykU>GPB5<`(>H3<$^?@oXxWRf`H-aaN0yhONI<)xlhM!^BsDEL2I_lI0Snd`p5 zgQ74#DI(n=GS7^Nd_6?k2kEe1jX~*fM4&@?+Le#e+@S`J(SW=ix*P4qH@=mO&v&-$ zy;*>~MY8cxl??t0U#>Iw*3Ol+`i|4b6GBzGeps3VhH#$eL?4w<4&&g}@%Qb`3JI44 R9uF8q?a?EE_r^;1{sqb*yXyb| diff --git a/Source/ArtifactTrackerDLL/CMakeLists.txt b/Source/ArtifactTrackerDLL/CMakeLists.txt index 0b19997..358c2e5 100644 --- a/Source/ArtifactTrackerDLL/CMakeLists.txt +++ b/Source/ArtifactTrackerDLL/CMakeLists.txt @@ -24,7 +24,6 @@ configure_file( set(sources src/Main.cpp - src/Papyrus.cpp src/ArtifactTracker.cpp src/EventListener.cpp src/BookCheck.cpp diff --git a/Source/ArtifactTrackerDLL/src/ArtifactTracker.cpp b/Source/ArtifactTrackerDLL/src/ArtifactTracker.cpp index 4582a40..903729c 100644 --- a/Source/ArtifactTrackerDLL/src/ArtifactTracker.cpp +++ b/Source/ArtifactTrackerDLL/src/ArtifactTracker.cpp @@ -3,6 +3,9 @@ #include "EventListener.h" #include "Util.h" +using namespace SKSE; +using namespace SKSE::log; + namespace ArtifactTracker { bool g_bLoaded; @@ -18,7 +21,8 @@ namespace ArtifactTracker std::unordered_set g_artifactFormTypes; std::unordered_map g_persistentMap; RE::TESObjectREFR* g_cellStorage; - std::uint32_t g_iFollowerIndex; + const SKSE::LoadInterface* g_loadInterface; + std::int32_t g_iFollowerIndex; bool Init(bool bKID) { @@ -26,36 +30,36 @@ namespace ArtifactTracker return true; } - SKSE::GetModCallbackEventSource()->RemoveEventSink(EventListener::GetSingleton()); - const auto dataHandler = RE::TESDataHandler::GetSingleton(); if (!dataHandler) { - SKSE::log::error("Unable to call RE::TESDataHandler::GetSingleton()"); - RE::DebugMessageBox("Unable to initialize Artifact Tracker."); + // Called before kDataLoaded? + log::error("RE::TESDataHandler is not initialized."); return false; } - g_cellContainer = dataHandler->LookupForm(0x800, "Artifact Tracker.esp")->As(); // ETR_CellStorageContainer + SKSE::GetModCallbackEventSource()->RemoveEventSink(EventListener::GetSingleton()); + + g_cellContainer = dataHandler->LookupForm(0x804, "Artifact Tracker.esp")->As(); // ETR_CellStorageContainer - g_listNew = dataHandler->LookupForm(0x803, "Artifact Tracker.esp"); // ETR_ItemsNew - g_listStored = dataHandler->LookupForm(0x805, "Artifact Tracker.esp"); // ETR_ItemsStored - g_listFound = dataHandler->LookupForm(0x806, "Artifact Tracker.esp"); // ETR_ItemsFound - g_persistentStorage = dataHandler->LookupForm(0x807, "Artifact Tracker.esp"); // ETR_PersistentStorageList + g_listNew = dataHandler->LookupForm(0x800, "Artifact Tracker.esp"); // ETR_ItemsNew + g_listStored = dataHandler->LookupForm(0x801, "Artifact Tracker.esp"); // ETR_ItemsStored + g_listFound = dataHandler->LookupForm(0x802, "Artifact Tracker.esp"); // ETR_ItemsFound + g_persistentStorage = dataHandler->LookupForm(0x803, "Artifact Tracker.esp"); // ETR_PersistentStorageList g_homeKeyword = dataHandler->LookupForm(0xFC1A3, "Skyrim.esm"); // LocTypePlayerHouse - const auto extraArtifactKeyword = dataHandler->LookupForm(0xAFC11A, "Update.esm"); // ETR_ExtraArtifact - const auto notArtifactKeyword = dataHandler->LookupForm(0xAFC11C, "Update.esm"); // ETR_NotArtifact - const auto npcRaceKeyword = dataHandler->LookupForm(0x13794, "Skyrim.esm"); // ActorTypeNPC + const auto extraArtifactKeyword = dataHandler->LookupForm(0xAFC110, "Update.esm"); // ETR_ExtraArtifact + const auto notArtifactKeyword = dataHandler->LookupForm(0xAFC111, "Update.esm"); // ETR_NotArtifact + const auto npcRaceKeyword = dataHandler->LookupForm(0x13794, "Skyrim.esm"); // ActorTypeNPC if (!g_cellContainer || !g_listNew || !g_listStored || !g_listFound || !g_persistentStorage || !g_homeKeyword || !extraArtifactKeyword || !notArtifactKeyword || !npcRaceKeyword) { - SKSE::log::warn("Unable to load data from Artifact Tracker.esp"); + log::warn("Unable to load data from Artifact Tracker.esp"); RE::DebugMessageBox("Unable to load data from Artifact Tracker.esp, the mod is disabled."); return false; } - std::map settings { + std::map settings{ { "DumpItemList", false }, }; LoadINI(&settings, "Data/SKSE/Plugins/ArtifactTracker.ini"); @@ -71,7 +75,7 @@ namespace ArtifactTracker } } g_artifactMap.erase(0x1F4); // Unarmed - + g_artifactFormTypes.insert(RE::FormType::Armor); for (const auto& form : dataHandler->GetFormArray()) { if (form->GetPlayable() && form->race && (form->race->formID == 0x19 || form->race->HasKeyword(npcRaceKeyword))) { @@ -80,9 +84,9 @@ namespace ArtifactTracker } } } - g_artifactMap.erase(0xD64); // SkinNaked - g_artifactMap.erase(0x69CE3); // SkinNakedBeast - g_artifactMap.erase(0xCDD86); // SkinNakedWerewolfBeast + g_artifactMap.erase(0xD64); // SkinNaked + g_artifactMap.erase(0x69CE3); // SkinNakedBeast + g_artifactMap.erase(0xCDD86); // SkinNakedWerewolfBeast g_artifactFormTypes.insert(RE::FormType::Book); for (const auto& form : dataHandler->GetFormArray()) { @@ -121,15 +125,15 @@ namespace ArtifactTracker } } - OnGameLoad(); EventListener::Install(); + OnGameLoad(); // covers new game and coc'ing from the main menu g_bLoaded = true; - SKSE::log::info("Total artifacts: {}", g_artifactMap.size()); + log::info("Total artifacts: {}", g_artifactMap.size()); if (settings.at("DumpItemList")) { for (const auto& item : g_artifactMap) { - SKSE::log::info("[{:08X}] {}", item.second->formID, item.second->GetName()); + log::info("[{:08X}] {}", item.second->formID, item.second->GetName()); } } @@ -154,7 +158,7 @@ namespace ArtifactTracker void OnGameLoad() { #ifdef _DEBUG - SKSE::log::info("OnGameLoad"); + log::info("OnGameLoad"); #endif g_persistentMap.clear(); @@ -164,6 +168,70 @@ namespace ArtifactTracker } return true; }); + + if (g_listStored->forms.size() + g_listFound->forms.size() + g_listNew->forms.size() != g_artifactMap.size()) { + log::info("Reverting g_listNew"); + ListRevert(g_listNew); + } + + RescanStoredArtifacts(); + RescanFoundArtifacts(); + RescanNewArtifacts(); + + const auto vm = RE::BSScript::Internal::VirtualMachine::GetSingleton(); + RE::BSTSmartPointer stackCallback; + + if (const auto pluginInfo = g_loadInterface->GetPluginInfo("Ahzaab's moreHUD Plugin"); pluginInfo) { + if (!g_bLoaded) log::info("Detected {} v{}", pluginInfo->name, pluginInfo->version); + if (pluginInfo->version == 0) { + log::error("MoreHUD has not been detected."); + } else if (pluginInfo->version < 30800) { + log::error("MoreHUD is outdated."); + } else if (vm->TypeIsValid("AhzMoreHud")) { + if (!g_bLoaded) log::info("Registering icons in MoreHUD..."); + vm->DispatchStaticCall("AhzMoreHud", "RegisterIconFormList", RE::MakeFunctionArguments("dbmNew", std::move(g_listNew)), stackCallback); + vm->DispatchStaticCall("AhzMoreHud", "RegisterIconFormList", RE::MakeFunctionArguments("dbmFound", std::move(g_listFound)), stackCallback); + vm->DispatchStaticCall("AhzMoreHud", "RegisterIconFormList", RE::MakeFunctionArguments("dbmDisp", std::move(g_listStored)), stackCallback); + } else { + log::error("MoreHUD has not been installed correctly."); + } + } else if (!g_bLoaded) { + log::error("MoreHUD has not been detected."); + } + + if (const auto pluginInfo = g_loadInterface->GetPluginInfo("Ahzaab's moreHUD Inventory Plugin"); pluginInfo) { + if (!g_bLoaded) log::info("Detected {} v{}", pluginInfo->name, pluginInfo->version); + if (pluginInfo->version == 0) { + log::error("MoreHUD Inventory Edition has not been detected."); + } else if (pluginInfo->version < 10017) { + log::error("MoreHUD Inventory Edition is outdated."); + } else if (vm->TypeIsValid("AhzMoreHudIE")) { + if (!g_bLoaded) log::info("Registering icons in MoreHUD Inventory Edition..."); + vm->DispatchStaticCall("AhzMoreHudIE", "RegisterIconFormList", RE::MakeFunctionArguments("dbmNew", std::move(g_listNew)), stackCallback); + vm->DispatchStaticCall("AhzMoreHudIE", "RegisterIconFormList", RE::MakeFunctionArguments("dbmFound", std::move(g_listFound)), stackCallback); + vm->DispatchStaticCall("AhzMoreHudIE", "RegisterIconFormList", RE::MakeFunctionArguments("dbmDisp", std::move(g_listStored)), stackCallback); + } else { + log::error("MoreHUD Inventory Edition has not been installed correctly."); + } + } else if (!g_bLoaded) { + log::error("MoreHUD Inventory Edition has not been detected."); + } + + if (const auto pluginInfo = g_loadInterface->GetPluginInfo("QuickLootEE"); pluginInfo) { + if (!g_bLoaded) log::info("Detected {} v{}", pluginInfo->name, pluginInfo->version); + if (pluginInfo->version == 0) { + log::error("QuickLoot EE has not been detected."); + } else if (vm->TypeIsValid("QuickLootEE")) { + if (!g_bLoaded) log::info("Registering icons with QuickLootEE..."); + vm->DispatchStaticCall("QuickLootEE", "RegisterNewItemsList", RE::MakeFunctionArguments(std::move(g_listNew)), stackCallback); + vm->DispatchStaticCall("QuickLootEE", "RegisterFoundItemsList", RE::MakeFunctionArguments(std::move(g_listFound)), stackCallback); + vm->DispatchStaticCall("QuickLootEE", "RegisterDisplayedItemsList", RE::MakeFunctionArguments(std::move(g_listStored)), stackCallback); + } else { + log::error("QuickLoot EE has not been installed correctly."); + } + } else if (!g_bLoaded) { + log::error("QuickLoot EE has not been detected."); + } } void SetContainerMode(const bool bOpening) @@ -213,7 +281,7 @@ namespace ArtifactTracker RE::UI::GetSingleton()->AddEventSink(EventListener::GetSingleton()); RE::ScriptEventSourceHolder::GetSingleton()->AddEventSink(EventListener::GetSingleton()); #ifdef _DEBUG - SKSE::log::info("Home mode ON"); + log::info("Home mode ON"); #endif return true; } else if (g_cellStorage) { @@ -222,7 +290,7 @@ namespace ArtifactTracker RE::UI::GetSingleton()->RemoveEventSink(EventListener::GetSingleton()); RE::ScriptEventSourceHolder::GetSingleton()->RemoveEventSink(EventListener::GetSingleton()); #ifdef _DEBUG - SKSE::log::info("Home mode OFF"); + log::info("Home mode OFF"); #endif } return false; @@ -236,7 +304,7 @@ namespace ArtifactTracker const auto baseObj = a_ref->GetBaseObject(); - return baseObj->formType == RE::FormType::Container || (baseObj->formType == RE::FormType::NPC && !a_ref->IsDisabled() && baseObj->As()->GetRace()->formID == 0x0010760A); + return baseObj->formType == RE::FormType::Container || (baseObj->formType == RE::FormType::NPC && !a_ref->IsDisabled() && baseObj->As()->GetRace()->formID == 0x10760A); } void OnCellEnter(const RE::FormID a_formID) @@ -292,11 +360,12 @@ namespace ArtifactTracker g_persistentMap[cellStorage->formID] = cellStorage; } ToggleHomeMode(cellStorage); + SyncCellStorage(); return; } #ifdef _DEBUG - SKSE::log::info("Adding new storage in {}", cell->GetName()); + log::info("Adding new storage in {}", cell->GetName()); #endif cellStorage = RE::PlayerCharacter::GetSingleton()->PlaceObjectAtMe(g_cellContainer, true).get(); @@ -308,7 +377,7 @@ namespace ArtifactTracker ToggleHomeMode(cellStorage); SyncCellStorage(); } else { - SKSE::log::error("Failed to create cell storage in OnCellEnter"); + log::error("Failed to create cell storage in OnCellEnter"); ToggleHomeMode(nullptr); } } @@ -317,13 +386,13 @@ namespace ArtifactTracker { if (!IsHome()) { #ifdef _DEBUG - SKSE::log::info("SyncCellStorage called while not at home"); + log::info("SyncCellStorage called while not at home"); #endif return; } #ifdef _DEBUG - SKSE::log::info("Running SyncCellStorage"); + log::info("Running SyncCellStorage"); #endif std::unordered_set cellItems; @@ -339,7 +408,7 @@ namespace ArtifactTracker const auto baseObj = a_ref->GetBaseObject(); if (IsValidContainer(a_ref.get())) { - if (g_cellContainer->formID == baseObj->formID || baseObj->formID == 0xDC9E7 || g_persistentMap.contains(a_ref->formID)) { // skip persistent and PlayerBookShelfContainer + if (g_cellContainer == baseObj || baseObj->formID == 0xDC9E7 || g_persistentMap.contains(a_ref->formID)) { // skip persistent and PlayerBookShelfContainer continue; } @@ -501,7 +570,7 @@ namespace ArtifactTracker if (!GetItemCount(g_cellStorage, form)) { #ifdef _DEBUG - SKSE::log::info("Added dropped {} to cell storage", form->GetName()); + log::info("Added dropped {} to cell storage", form->GetName()); RE::DebugNotification("Adding to cell storage"); #endif g_cellStorage->AddObjectToContainer(form->As(), nullptr, 1, nullptr); @@ -596,7 +665,7 @@ namespace ArtifactTracker void AddRefArtifactsToList(RE::TESForm* a_refOrList, RE::BGSListForm* a_targetList, RE::BGSListForm* a_excludeList) { if (!a_refOrList || !a_targetList) { - SKSE::log::warn("Invalid arguments in AddRefArtifactsToList"); + log::warn("Invalid arguments in AddRefArtifactsToList"); return; } @@ -614,7 +683,7 @@ namespace ArtifactTracker const auto containerRef = a_refOrList->As(); if (!containerRef) { - SKSE::log::warn("containerRef in AddRefArtifactsToList is not a reference"); + log::warn("containerRef in AddRefArtifactsToList is not a reference"); return; } @@ -630,22 +699,6 @@ namespace ArtifactTracker } } - // From po3's Papyrus Extender - std::vector GetPlayerFollowers() - { - std::vector result; - - if (const auto processLists = RE::ProcessLists::GetSingleton(); processLists) { - for (auto& actorHandle : processLists->highActorHandles) { - if (auto actor = actorHandle.get(); actor && actor->IsPlayerTeammate()) { - result.push_back(actor.get()); - } - } - } - - return result; - } - void RescanFoundArtifacts() { ListRevert(g_listFound); @@ -656,9 +709,24 @@ namespace ArtifactTracker } } + void RescanStoredArtifacts() + { + ListRevert(g_listStored); + AddRefArtifactsToList(g_persistentStorage, g_listStored); + } + + void RescanNewArtifacts() + { + for (auto const& item : g_artifactMap) { + if (!g_listNew->HasForm(item.second) && !g_listStored->HasForm(item.second) && !g_listFound->HasForm(item.second)) { + g_listNew->AddForm(item.second); + } + } + } + void OnLocationChange() { - std::uint32_t iCurrentFollowers; + std::uint32_t iCurrentFollowers = 0; for (const auto& actor : GetPlayerFollowers()) { iCurrentFollowers += actor->formID; diff --git a/Source/ArtifactTrackerDLL/src/ArtifactTracker.h b/Source/ArtifactTrackerDLL/src/ArtifactTracker.h index dada79f..dfc3065 100644 --- a/Source/ArtifactTrackerDLL/src/ArtifactTracker.h +++ b/Source/ArtifactTrackerDLL/src/ArtifactTracker.h @@ -15,6 +15,7 @@ namespace ArtifactTracker extern std::unordered_set g_artifactFormTypes; extern std::unordered_map g_persistentMap; extern RE::TESObjectREFR* g_cellStorage; + extern const SKSE::LoadInterface* g_loadInterface; bool Init(bool bKID = false); @@ -39,4 +40,10 @@ namespace ArtifactTracker void AddRefArtifactsToList(RE::TESForm* a_refOrList, RE::BGSListForm* a_targetList, RE::BGSListForm* a_excludeList = NULL); void OnLocationChange(); + + void RescanFoundArtifacts(); + + void RescanStoredArtifacts(); + + void RescanNewArtifacts(); } diff --git a/Source/ArtifactTrackerDLL/src/Main.cpp b/Source/ArtifactTrackerDLL/src/Main.cpp index af97400..e1610e8 100644 --- a/Source/ArtifactTrackerDLL/src/Main.cpp +++ b/Source/ArtifactTrackerDLL/src/Main.cpp @@ -1,4 +1,3 @@ -#include "Papyrus.h" #include "ArtifactTracker.h" #include "EventListener.h" @@ -50,7 +49,7 @@ SKSEPluginLoad(const LoadInterface* skse) { Init(skse); InitializeMessaging(); - SKSE::GetPapyrusInterface()->Register(Papyrus::Bind); + ArtifactTracker::g_loadInterface = skse; log::info("{} has finished loading.", plugin->GetName()); return true; diff --git a/Source/ArtifactTrackerDLL/src/Papyrus.cpp b/Source/ArtifactTrackerDLL/src/Papyrus.cpp deleted file mode 100644 index 918b1d7..0000000 --- a/Source/ArtifactTrackerDLL/src/Papyrus.cpp +++ /dev/null @@ -1,19 +0,0 @@ -#include "Papyrus.h" -#include "PapyrusFunctions.h" - -namespace Papyrus -{ - bool Bind(VM* a_vm) - { - if (!a_vm) { - logger::critical("couldn't get VM State"sv); - return false; - } - - logger::info("{:*^30}", "FUNCTIONS"sv); - - PapyrusFunctions::Bind(*a_vm); - - return true; - } -} diff --git a/Source/ArtifactTrackerDLL/src/Papyrus.h b/Source/ArtifactTrackerDLL/src/Papyrus.h deleted file mode 100644 index 06a235f..0000000 --- a/Source/ArtifactTrackerDLL/src/Papyrus.h +++ /dev/null @@ -1,15 +0,0 @@ -#pragma once - -#define BIND(a_method, ...) a_vm.RegisterFunction(#a_method##sv, script, a_method __VA_OPT__(, ) __VA_ARGS__) - -#include - -namespace Papyrus { - using VM = RE::BSScript::Internal::VirtualMachine; - using StackID = RE::VMStackID; - using Severity = RE::BSScript::ErrorLogger::Severity; - - inline constexpr auto script = "ArtifactTrackerPlayer"sv; - - bool Bind(VM* a_vm); -} diff --git a/Source/ArtifactTrackerDLL/src/PapyrusFunctions.h b/Source/ArtifactTrackerDLL/src/PapyrusFunctions.h deleted file mode 100644 index 858c088..0000000 --- a/Source/ArtifactTrackerDLL/src/PapyrusFunctions.h +++ /dev/null @@ -1,108 +0,0 @@ -#pragma once - -#include "ArtifactTracker.h" -#include "Util.h" - -namespace Papyrus::PapyrusFunctions -{ - inline bool Load(RE::StaticFunctionTag*) - { - return ArtifactTracker::Init(); - } - - inline RE::TESObjectREFR* GetCellStorage(RE::StaticFunctionTag*) - { - return ArtifactTracker::g_cellStorage; - } - - inline void SyncCellStorage(RE::StaticFunctionTag*) - { - ArtifactTracker::SyncCellStorage(); - } - - inline std::uint32_t GetArtifactCount(RE::StaticFunctionTag*) - { - return (ArtifactTracker::g_artifactMap).size(); - } - - // From po3's Papyrus Extender - inline std::vector GetPlayerFollowers(RE::StaticFunctionTag*) - { - std::vector result; - - if (const auto processLists = RE::ProcessLists::GetSingleton(); processLists) { - for (auto& actorHandle : processLists->highActorHandles) { - if (auto actor = actorHandle.get(); actor && actor->IsPlayerTeammate()) { - result.push_back(actor.get()); - } - } - } - - return result; - } - - inline RE::TESObjectREFR* GetCurrentContainer(RE::StaticFunctionTag*) - { - const auto handle = RE::ContainerMenu::GetTargetRefHandle(); - const auto refr = RE::TESObjectREFR::LookupByHandle(handle); - return refr ? refr.get() : nullptr; - } - - inline void RescanStoredArtifacts(RE::StaticFunctionTag*) - { - ListRevert(ArtifactTracker::g_listStored); - ArtifactTracker::AddRefArtifactsToList(ArtifactTracker::g_persistentStorage, ArtifactTracker::g_listStored); - } - - inline void RescanFoundArtifacts(RE::StaticFunctionTag*) - { - ListRevert(ArtifactTracker::g_listFound); - ArtifactTracker::AddRefArtifactsToList(RE::PlayerCharacter::GetSingleton(), ArtifactTracker::g_listFound, ArtifactTracker::g_listStored); - - for (const auto& ref : GetPlayerFollowers(nullptr)) { - ArtifactTracker::AddRefArtifactsToList(ref, ArtifactTracker::g_listFound, ArtifactTracker::g_listStored); - } - } - - inline void RescanNewArtifacts(RE::StaticFunctionTag*) - { - for (auto const& item : ArtifactTracker::g_artifactMap) { - if (!ArtifactTracker::g_listNew->HasForm(item.second) && !ArtifactTracker::g_listStored->HasForm(item.second) && !ArtifactTracker::g_listFound->HasForm(item.second)) { - ArtifactTracker::g_listNew->AddForm(item.second); - } - } - } - - inline void RegisterPersistentStorage(RE::StaticFunctionTag*, - RE::TESObjectREFR* ref) - { - if (ref) { - ArtifactTracker::g_persistentStorage->AddForm(ref); - ArtifactTracker::g_persistentMap[ref->formID] = ref; - } - } - - inline void Bind(VM& a_vm) - { - BIND(Load); - logger::info("Registered Load"sv); - BIND(GetArtifactCount); - logger::info("Registered GetArtifactCount"sv); - BIND(RescanStoredArtifacts); - logger::info("Registered RescanStoredArtifacts"sv); - BIND(RescanFoundArtifacts); - logger::info("Registered RescanFoundArtifacts"sv); - BIND(RescanNewArtifacts); - logger::info("Registered RescanNewArtifacts"sv); - BIND(GetCellStorage); - logger::info("Registered GetCellStorage"sv); - BIND(SyncCellStorage); - logger::info("Registered SyncCellStorage"sv); - BIND(GetPlayerFollowers); - logger::info("Registered GetPlayerFollowers"sv); - BIND(GetCurrentContainer); - logger::info("Registered GetCurrentContainer"sv); - BIND(RegisterPersistentStorage); - logger::info("Registered RegisterPersistentStorage"sv); - } -} diff --git a/Source/ArtifactTrackerDLL/src/Util.h b/Source/ArtifactTrackerDLL/src/Util.h index 8889076..9138119 100644 --- a/Source/ArtifactTrackerDLL/src/Util.h +++ b/Source/ArtifactTrackerDLL/src/Util.h @@ -187,4 +187,19 @@ inline void RunBenchmark(std::function benchmark, std::string desc) const auto elapsed = std::chrono::duration(end - start); SKSE::log::info("{}: Elapsed time: {} seconds", desc, elapsed.count()); -} \ No newline at end of file +} + +inline std::vector GetPlayerFollowers() +{ + std::vector result; + + if (const auto processLists = RE::ProcessLists::GetSingleton(); processLists) { + for (auto& actorHandle : processLists->highActorHandles) { + if (auto actor = actorHandle.get(); actor && actor->IsPlayerTeammate()) { + result.push_back(actor.get()); + } + } + } + + return result; +} diff --git a/Source/Scripts/ArtifactTrackerPlayer.psc b/Source/Scripts/ArtifactTrackerPlayer.psc deleted file mode 100644 index e811190..0000000 --- a/Source/Scripts/ArtifactTrackerPlayer.psc +++ /dev/null @@ -1,80 +0,0 @@ -Scriptname ArtifactTrackerPlayer extends ReferenceAlias - -FormList Property ETR_ItemsNew Auto -FormList Property ETR_ItemsFound Auto -FormList Property ETR_ItemsStored Auto - -int iArtifactCount = 0 - - -event OnInit() - Utility.wait(3.0) ; wait for quickstart scripts to finish - OnPlayerLoadGame() -endevent - - -Event OnPlayerLoadGame() - - if ! Load() - ETR_ItemsNew.Revert() - ETR_ItemsFound.Revert() - ETR_ItemsStored.Revert() - UnregisterForUpdate() - Debug.Notification("Failed to initialize ArtifactTracker.dll") - return - endif - - if skse.GetPluginVersion("Ahzaab's moreHUD Plugin") >= 30800 - ahzmorehud.RegisterIconFormList("dbmNew", ETR_ItemsNew) - ahzmorehud.RegisterIconFormList("dbmFound", ETR_ItemsFound) - ahzmorehud.RegisterIconFormList("dbmDisp", ETR_ItemsStored) - endif - - if skse.GetPluginVersion("Ahzaab's moreHUD Inventory Plugin") >= 10017 - ahzmorehudie.RegisterIconFormList("dbmNew", ETR_ItemsNew) - ahzmorehudie.RegisterIconFormList("dbmFound", ETR_ItemsFound) - ahzmorehudie.RegisterIconFormList("dbmDisp", ETR_ItemsStored) - endif - - if SKSE.GetPluginVersion("QuickLootEE") >= 0 - QuickLootEE.RegisterNewItemsList(ETR_ItemsNew) - QuickLootEE.RegisterDisplayedItemsList(ETR_ItemsStored) - QuickLootEE.RegisterFoundItemsList(ETR_ItemsFound) - endif - - int iNewArtifactCount = GetArtifactCount() - if iNewArtifactCount != iArtifactCount - iArtifactCount = iNewArtifactCount - Debug.Notification("Artifact list changed, rebuilding the list") - ETR_ItemsNew.Revert() ; rebuild the list - endif - - ; Rebuild all lists to avoid discrepancies, stale data, and broken records - RescanStoredArtifacts() - RescanFoundArtifacts() - RescanNewArtifacts() - -EndEvent - - -; NATIVE FUNCTIONS - -bool function Load() native global - -int function GetArtifactCount() native global - -function RescanStoredArtifacts() native global - -function RescanFoundArtifacts() native global - -function RescanNewArtifacts() native global - -ObjectReference function GetCellStorage() native global - -ObjectReference function GetCurrentContainer() native global - -function SyncCellStorage() native global - -Actor[] function GetPlayerFollowers() native global - -function RegisterPersistentStorage(ObjectReference ref) native global diff --git a/Source/Scripts/PlayerBookShelfContainerScript.psc b/Source/Scripts/PlayerBookShelfContainerScript.psc deleted file mode 100644 index f5a73c6..0000000 --- a/Source/Scripts/PlayerBookShelfContainerScript.psc +++ /dev/null @@ -1,1010 +0,0 @@ -Scriptname PlayerBookShelfContainerScript extends ObjectReference -{This script has been overhauled to fix several issues listed in USLEEP 3.0.1 - Bug #19515. This overhaul was contributed by Adria.} - -import debug -import utility - -Form Property LItemBookClutter Auto -{Clutter item list to fill the shelf with} - -Keyword Property BookShelfBook01 Auto -Keyword Property BookShelfBook02 Auto -Keyword Property BookShelfBook03 Auto -Keyword Property BookShelfBook04 Auto -Keyword Property BookShelfBook05 Auto -Keyword Property BookShelfBook06 Auto -Keyword Property BookShelfBook07 Auto -Keyword Property BookShelfBook08 Auto -Keyword Property BookShelfBook09 Auto -Keyword Property BookShelfBook10 Auto -Keyword Property BookShelfBook11 Auto -Keyword Property BookShelfBook12 Auto -Keyword Property BookShelfBook13 Auto -Keyword Property BookShelfBook14 Auto -Keyword Property BookShelfBook15 Auto -Keyword Property BookShelfBook16 Auto -Keyword Property BookShelfBook17 Auto -Keyword Property BookShelfBook18 Auto -Keyword Property BookShelfTrigger01 Auto -Keyword Property BookShelfTrigger02 Auto -Keyword Property BookShelfTrigger03 Auto -Keyword Property BookShelfTrigger04 Auto -{List of required Keywords} - -ObjectReference Property BookMarker01 Auto Hidden -ObjectReference Property BookMarker02 Auto Hidden -ObjectReference Property BookMarker03 Auto Hidden -ObjectReference Property BookMarker04 Auto Hidden -ObjectReference Property BookMarker05 Auto Hidden -ObjectReference Property BookMarker06 Auto Hidden -ObjectReference Property BookMarker07 Auto Hidden -ObjectReference Property BookMarker08 Auto Hidden -ObjectReference Property BookMarker09 Auto Hidden -ObjectReference Property BookMarker10 Auto Hidden -ObjectReference Property BookMarker11 Auto Hidden -ObjectReference Property BookMarker12 Auto Hidden -ObjectReference Property BookMarker13 Auto Hidden -ObjectReference Property BookMarker14 Auto Hidden -ObjectReference Property BookMarker15 Auto Hidden -ObjectReference Property BookMarker16 Auto Hidden -ObjectReference Property BookMarker17 Auto Hidden -ObjectReference Property BookMarker18 Auto Hidden -ObjectReference Property BookShelfTrigger01Ref Auto Hidden -ObjectReference Property BookShelfTrigger02Ref Auto Hidden -ObjectReference Property BookShelfTrigger03Ref Auto Hidden -ObjectReference Property BookShelfTrigger04Ref Auto Hidden - -Int Property MaxBooksAllowed Auto Hidden -{Max books allowed on this partciular shelf} - -Int Property CurrentBookAmount Auto Hidden -{The current amount of books placed on the shelf} - -Form Property EmptyForm Auto Hidden -{Null Form} - -ObjectReference Property EmptyRef Auto Hidden -{Null Ref} - -Form Property CurrentBookForm Auto Hidden -{Book Form we are working with at any one time} - -ObjectReference Property CurrentBookRef Auto Hidden -{Book Ref we are working with at any one time} - -Form Property PlacedBook01 Auto Hidden -Form Property PlacedBook02 Auto Hidden -Form Property PlacedBook03 Auto Hidden -Form Property PlacedBook04 Auto Hidden -Form Property PlacedBook05 Auto Hidden -Form Property PlacedBook06 Auto Hidden -Form Property PlacedBook07 Auto Hidden -Form Property PlacedBook08 Auto Hidden -Form Property PlacedBook09 Auto Hidden -Form Property PlacedBook10 Auto Hidden -Form Property PlacedBook11 Auto Hidden -Form Property PlacedBook12 Auto Hidden -Form Property PlacedBook13 Auto Hidden -Form Property PlacedBook14 Auto Hidden -Form Property PlacedBook15 Auto Hidden -Form Property PlacedBook17 Auto Hidden -Form Property PlacedBook16 Auto Hidden -Form Property PlacedBook18 Auto Hidden -{List of Placed Book Forms} - -ObjectReference Property PlacedBook01Ref Auto Hidden -ObjectReference Property PlacedBook02Ref Auto Hidden -ObjectReference Property PlacedBook03Ref Auto Hidden -ObjectReference Property PlacedBook04Ref Auto Hidden -ObjectReference Property PlacedBook05Ref Auto Hidden -ObjectReference Property PlacedBook06Ref Auto Hidden -ObjectReference Property PlacedBook07Ref Auto Hidden -ObjectReference Property PlacedBook08Ref Auto Hidden -ObjectReference Property PlacedBook09Ref Auto Hidden -ObjectReference Property PlacedBook10Ref Auto Hidden -ObjectReference Property PlacedBook11Ref Auto Hidden -ObjectReference Property PlacedBook12Ref Auto Hidden -ObjectReference Property PlacedBook13Ref Auto Hidden -ObjectReference Property PlacedBook14Ref Auto Hidden -ObjectReference Property PlacedBook15Ref Auto Hidden -ObjectReference Property PlacedBook17Ref Auto Hidden -ObjectReference Property PlacedBook16Ref Auto Hidden -ObjectReference Property PlacedBook18Ref Auto Hidden -{List of Placed Book Refs} - -Bool Property AlreadyLoaded = FALSE Auto Hidden -{Whether this scritp has already went through it's OnCellLoad() Event} - -Bool Property BlockBooks = FALSE Auto Hidden -{Used for when you can't place any more books} - -Message Property BookShelfFirstActivateMESSAGE Auto -{Display message when the player activates a bookshelf for the first time. Only displays once.} - -Message Property BookShelfNoMoreRoomMESSAGE Auto -{Displayed message for when the amount of books the player is placing excedes the shelf limit.} - -Message Property BookShelfNotABookMESSAGE Auto -{Message displayed when the player places a non book form in the container.} - -Message Property BookShelfRoomLeftMESSAGE Auto -{Notification that tells the player how much room is left on the shelf upon first activating it.} - -GlobalVariable Property BookShelfGlobal Auto -{Global showing whether or not the player has ever activated a bookshelf} - - - -EVENT OnCellLoad() - if AlreadyLoaded == FALSE - ;Trace("BOOKCASE - Running OnCellLoad()") - ; Get all the book markers - BookMarker01 = GetLinkedRef(BookShelfBook01) - BookMarker02 = GetLinkedRef(BookShelfBook02) - BookMarker03 = GetLinkedRef(BookShelfBook03) - BookMarker04 = GetLinkedRef(BookShelfBook04) - BookMarker05 = GetLinkedRef(BookShelfBook05) - BookMarker06 = GetLinkedRef(BookShelfBook06) - BookMarker07 = GetLinkedRef(BookShelfBook07) - BookMarker08 = GetLinkedRef(BookShelfBook08) - BookMarker09 = GetLinkedRef(BookShelfBook09) - BookMarker10 = GetLinkedRef(BookShelfBook10) - BookMarker11 = GetLinkedRef(BookShelfBook11) - BookMarker12 = GetLinkedRef(BookShelfBook12) - BookMarker13 = GetLinkedRef(BookShelfBook13) - BookMarker14 = GetLinkedRef(BookShelfBook14) - BookMarker15 = GetLinkedRef(BookShelfBook15) - BookMarker16 = GetLinkedRef(BookShelfBook16) - BookMarker17 = GetLinkedRef(BookShelfBook17) - BookMarker18 = GetLinkedRef(BookShelfBook18) - BookShelfTrigger01Ref = (GetLinkedRef(BookShelfTrigger01) as PlayerBookShelfTriggerSCRIPT) - BookShelfTrigger02Ref = (GetLinkedRef(BookShelfTrigger02) as PlayerBookShelfTriggerSCRIPT) - BookShelfTrigger03Ref = (GetLinkedRef(BookShelfTrigger03) as PlayerBookShelfTriggerSCRIPT) - BookShelfTrigger04Ref = (GetLinkedRef(BookShelfTrigger04) as PlayerBookShelfTriggerSCRIPT) - ; Count how many books can be placed on this shelf - CountMaxBooks() - - AlreadyLoaded = TRUE - endif - - ; Check if this shelf has already been messed up by vanilla bug, and issue a warning in a log. - ; Actual healing process will trigger when all books are removed from the display shelf. - ;if !(CurrentBookAmount >= 0 && CurrentBookAmount <= MaxBooksAllowed && CurrentBookAmount == NumBooksOnShelf()) - ; Trace("BookShelfFix - An inconsistent bookshelf " + self + " found in " + self.GetCurrentLocation() + ", fix will be applied when you pull out all the books from the shelf.") - ;endif -endEVENT - - -EVENT OnActivate(ObjectReference akActionRef) - ; Removing all items from container as a precaution - ;Trace("BOOKCASE - I've been ACTIVATED!") - - ;USLEEP 3.0.1 - Bug #19515 - CleanInvalidPlacedBooks() - CurrentBookAmount = NumBooksOnShelf() - - BlockActivate() - ;Trace("BOOKCASE - Blocking activate on all books") - ;Trace("BOOKCASE - BookShelfTrigger01Ref = " + BookShelfTrigger01Ref) - BookShelfRoomLeftMESSAGE.Show((MaxBooksAllowed - CurrentBookAmount)) - ;debug.Notification("You can place " + (MaxBooksAllowed - CurrentBookAmount) + " more books on this shelf.") - - if (BookShelfGlobal.GetValue() == 0) - BookShelfFirstActivateMESSAGE.Show() - BookShelfGlobal.SetValue(1) - endif - ;CurrentBookAmount = 0 - - if BookShelfTrigger01Ref - ;Trace("BOOKCASE - Setting FIRST trigger to GoToState IgnoreBooks") - BookShelfTrigger01Ref.GoToState("IgnoreBooks") - endif - if BookShelfTrigger02Ref - ;Trace("BOOKCASE - Setting SECOND trigger to GoToState IgnoreBooks") - BookShelfTrigger02Ref.GoToState("IgnoreBooks") - endif - if BookShelfTrigger03Ref - ;Trace("BOOKCASE - Setting THIRD trigger to GoToState IgnoreBooks") - BookShelfTrigger03Ref.GoToState("IgnoreBooks") - endif - if BookShelfTrigger04Ref - ;Trace("BOOKCASE - Setting FOURTH trigger to GoToState IgnoreBooks") - BookShelfTrigger04Ref.GoToState("IgnoreBooks") - endif - - Wait(0.25) - ; The following will fire when the player leaves inventory - - ;USLEEP 3.0.1 - Bug #19515 - ; When display shelf becomes empty, reset it to fix corrupted shelves - if NumBooksOnShelf() == 0 - RemoveAllItems(akTransferTo = Game.GetPlayer(), abRemoveQuestItems = true) ; make sure all the books are transfered into player's inventory - ClearDisplayShelf() - Wait(0.25) ; wait until RemoveAllItems() is (hopefully) done - CurrentBookAmount = 0 - ;Trace("BookShelfFix - Cleaned up bookshelf " + self + ". This is not an error.") - endif - - ;Trace("BOOKCASE - Out of Inventory so placing all the books") - UpdateBooks() - - if BookShelfTrigger01Ref - ;Trace("BOOKCASE - Setting FIRST trigger to GoToState WaitForBooks") - BookShelfTrigger01Ref.GoToState("WaitForBooks") - endif - if BookShelfTrigger02Ref - ;Trace("BOOKCASE - Setting SECOND trigger to GoToState WaitForBooks") - BookShelfTrigger02Ref.GoToState("WaitForBooks") - endif - if BookShelfTrigger03Ref - ;Trace("BOOKCASE - Setting THIRD trigger to GoToState WaitForBooks") - BookShelfTrigger03Ref.GoToState("WaitForBooks") - endif - if BookShelfTrigger04Ref - ;Trace("BOOKCASE - Setting FOURTH trigger to GoToState WaitForBooks") - BookShelfTrigger04Ref.GoToState("WaitForBooks") - endif -endEVENT - - -Event OnItemRemoved(Form akBaseItem, int aiItemCount, ObjectReference akItemReference, ObjectReference akDestContainer) - if (akBaseItem as Book) - if BlockBooks == FALSE - ; If the item is a book find the corresponding book reference and remove it. - ;Trace("BOOKCASE - Form being Removed " + akBaseItem + " is a Book! Remove it from the list") - RemoveBooks(akBaseItem, aiItemCount) - CurrentBookAmount = CurrentBookAmount - aiItemCount - else - BlockBooks = FALSE - endif - endif -endEvent - - -Event OnItemAdded(Form akBaseItem, int aiItemCount, ObjectReference akItemReference, ObjectReference akSourceContainer) - ;Trace("BOOKCASE - Adding " + akBaseItem + " to the Book Container") - - if (akBaseItem as Book) - ; If the item being added is a book then check to see if there is room in on the shelf. - ;Trace("BOOKCASE - Form being Added " + akBaseItem + " is a Book!") - if ((aiItemCount + CurrentBookAmount) <= MaxBooksAllowed) - ; There's room on teh shelf, manage the book placement - ;Trace("BOOKCASE - " + CurrentBookAmount + "/" + MaxBooksAllowed + " There is room for another book, lets place it on the shelf.") - AddBooks(akBaseItem, aiItemCount) - CurrentBookAmount = CurrentBookAmount + aiItemCount - else - ; There is no room on the shelf. Tell the player this and give him his book back. - ;Trace("BOOKCASE - " + CurrentBookAmount + "/" + MaxBooksAllowed + " There's no more room for books on this shelf.") - utility.waitMenuMode(0) - ;MessageBox("You can't place that many books on this shelf") - BookShelfNoMoreRoomMESSAGE.Show() - ;Trace("BOOKCASE - Remove it from this container...") - BlockBooks = TRUE - self.RemoveItem(akBaseItem, aiItemCount, true, Game.GetPlayer()) - ;Trace("BOOKCASE - ...and give it back to the player") - endif - else - ; The item placed in the container isn't a book, so give the player back and tell him only books are allowed. - ;Trace("BOOKCASE - Form " + akBaseItem + " is NOT a Book!") - ;Trace("BOOKCASE - Since the placed item wasn't a book remove it from the container...") - - self.RemoveItem(akBaseItem, aiItemCount, true, Game.GetPlayer()) - ;Trace("BOOKCASE - ...and give it back to the player") - - ;(Game.GetPlayer()).AddItem(akBaseItem, aiItemCount, True) - utility.WaitMenuMode(0) - ;MessageBox("You can only place books on this shelf") - BookShelfNotABookMESSAGE.Show() - endif - -endEvent - -Function BlockActivate() - if Placedbook01Ref - PlacedBook01Ref.BlockActivation(TRUE) - endif - if Placedbook02Ref - PlacedBook02Ref.BlockActivation(TRUE) - endif - if Placedbook03Ref - PlacedBook03Ref.BlockActivation(TRUE) - endif - if Placedbook04Ref - PlacedBook04Ref.BlockActivation(TRUE) - endif - if Placedbook05Ref - PlacedBook05Ref.BlockActivation(TRUE) - endif - if Placedbook06Ref - PlacedBook06Ref.BlockActivation(TRUE) - endif - if Placedbook07Ref - PlacedBook07Ref.BlockActivation(TRUE) - endif - if Placedbook08Ref - PlacedBook08Ref.BlockActivation(TRUE) - endif - if Placedbook09Ref - PlacedBook09Ref.BlockActivation(TRUE) - endif - if Placedbook10Ref - PlacedBook10Ref.BlockActivation(TRUE) - endif - if Placedbook11Ref - PlacedBook11Ref.BlockActivation(TRUE) - endif - if Placedbook12Ref - PlacedBook12Ref.BlockActivation(TRUE) - endif - if Placedbook13Ref - PlacedBook13Ref.BlockActivation(TRUE) - endif - if Placedbook14Ref - PlacedBook14Ref.BlockActivation(TRUE) - endif - if Placedbook15Ref - PlacedBook15Ref.BlockActivation(TRUE) - endif - if Placedbook16Ref - PlacedBook16Ref.BlockActivation(TRUE) - endif - if Placedbook17Ref - PlacedBook17Ref.BlockActivation(TRUE) - endif - if Placedbook18Ref - PlacedBook18Ref.BlockActivation(TRUE) - endif - ;Trace("BOOKCASE - All book activation has been blocked") -endFunction - -Function UnBlockActivate() - if Placedbook01Ref - PlacedBook01Ref.BlockActivation(FALSE) - endif - if Placedbook02Ref - PlacedBook02Ref.BlockActivation(FALSE) - endif - if Placedbook03Ref - PlacedBook03Ref.BlockActivation(FALSE) - endif - if Placedbook04Ref - PlacedBook04Ref.BlockActivation(FALSE) - endif - if Placedbook05Ref - PlacedBook05Ref.BlockActivation(FALSE) - endif - if Placedbook06Ref - PlacedBook06Ref.BlockActivation(FALSE) - endif - if Placedbook07Ref - PlacedBook07Ref.BlockActivation(FALSE) - endif - if Placedbook08Ref - PlacedBook08Ref.BlockActivation(FALSE) - endif - if Placedbook09Ref - PlacedBook09Ref.BlockActivation(FALSE) - endif - if Placedbook10Ref - PlacedBook10Ref.BlockActivation(FALSE) - endif - if Placedbook11Ref - PlacedBook11Ref.BlockActivation(FALSE) - endif - if Placedbook12Ref - PlacedBook12Ref.BlockActivation(FALSE) - endif - if Placedbook13Ref - PlacedBook13Ref.BlockActivation(FALSE) - endif - if Placedbook14Ref - PlacedBook14Ref.BlockActivation(FALSE) - endif - if Placedbook15Ref - PlacedBook15Ref.BlockActivation(FALSE) - endif - if Placedbook16Ref - PlacedBook16Ref.BlockActivation(FALSE) - endif - if Placedbook17Ref - PlacedBook17Ref.BlockActivation(FALSE) - endif - if Placedbook18Ref - PlacedBook18Ref.BlockActivation(FALSE) - endif - ;Trace("BOOKCASE - All book activation has been UNblocked") -endFunction - - -Function RemoveBooks(Form BookBase, Int BookAmount) - ; Find the removed book form(s) and remove it from the display - - While BookAmount > 0 - if PlacedBook01 == BookBase - ;Trace("BOOKCASE - PlacedBook01 matches, Removing this book") - PlacedBook01 = EmptyForm - elseif PlacedBook02 == BookBase - ;Trace("BOOKCASE - PlacedBook02 matches, Removing this book") - PlacedBook02 = EmptyForm - elseif PlacedBook03 == BookBase - ;Trace("BOOKCASE - PlacedBook03 matches, Removing this book") - PlacedBook03 = EmptyForm - elseif PlacedBook04 == BookBase - ;Trace("BOOKCASE - PlacedBook04 matches, Removing this book") - PlacedBook04 = EmptyForm - elseif PlacedBook05 == BookBase - ;Trace("BOOKCASE - PlacedBook05 matches, Removing this book") - PlacedBook05 = EmptyForm - elseif PlacedBook06 == BookBase - ;Trace("BOOKCASE - PlacedBook06 matches, Removing this book") - PlacedBook06 = EmptyForm - elseif PlacedBook07 == BookBase - ;Trace("BOOKCASE - PlacedBook07 matches, Removing this book") - PlacedBook07 = EmptyForm - elseif PlacedBook08 == BookBase - ;Trace("BOOKCASE - PlacedBook08 matches, Removing this book") - PlacedBook08 = EmptyForm - elseif PlacedBook09 == BookBase - ;Trace("BOOKCASE - PlacedBook09 matches, Removing this book") - PlacedBook09 = EmptyForm - elseif PlacedBook10 == BookBase - ;Trace("BOOKCASE - PlacedBook10 matches, Removing this book") - PlacedBook10 = EmptyForm - elseif PlacedBook11 == BookBase - ;Trace("BOOKCASE - PlacedBook11 matches, Removing this book") - PlacedBook11 = EmptyForm - elseif PlacedBook12 == BookBase - ;Trace("BOOKCASE - PlacedBook12 matches, Removing this book") - PlacedBook12 = EmptyForm - elseif PlacedBook13 == BookBase - ;Trace("BOOKCASE - PlacedBook13 matches, Removing this book") - PlacedBook13 = EmptyForm - elseif PlacedBook14 == BookBase - ;Trace("BOOKCASE - PlacedBook14 matches, Removing this book") - PlacedBook14 = EmptyForm - elseif PlacedBook15 == BookBase - ;Trace("BOOKCASE - PlacedBook15 matches, Removing this book") - PlacedBook15 = EmptyForm - elseif PlacedBook16 == BookBase - ;Trace("BOOKCASE - PlacedBook16 matches, Removing this book") - PlacedBook16 = EmptyForm - elseif PlacedBook17 == BookBase - ;Trace("BOOKCASE - PlacedBook17 matches, Removing this book") - PlacedBook17 = EmptyForm - elseif PlacedBook18 == BookBase - ;Trace("BOOKCASE - PlacedBook18 matches, Removing this book") - PlacedBook18 = EmptyForm - endif - - BookAmount = BookAmount - 1 - - endWhile -endFunction - -Function AddBooks(Form BookBase, Int BookAmount) - ; Find an empty book form and place the new book there - While BookAmount > 0 - if PlacedBook01 == EmptyForm - ;Trace("BOOKCASE - PlacedBook01 is empty, placing book there") - PlacedBook01 = BookBase - elseif PlacedBook02 == EmptyForm - ;Trace("BOOKCASE - PlacedBook02 is empty, placing book there") - PlacedBook02 = BookBase - elseif PlacedBook03 == EmptyForm - ;Trace("BOOKCASE - PlacedBook03 is empty, placing book there") - PlacedBook03 = BookBase - elseif PlacedBook04 == EmptyForm - ;Trace("BOOKCASE - PlacedBook04 is empty, placing book there") - PlacedBook04 = BookBase - elseif PlacedBook05 == EmptyForm - ;Trace("BOOKCASE - PlacedBook05 is empty, placing book there") - PlacedBook05 = BookBase - elseif PlacedBook06 == EmptyForm - ;Trace("BOOKCASE - PlacedBook06 is empty, placing book there") - PlacedBook06 = BookBase - elseif PlacedBook07 == EmptyForm - ;Trace("BOOKCASE - PlacedBook07 is empty, placing book there") - PlacedBook07 = BookBase - elseif PlacedBook08 == EmptyForm - ;Trace("BOOKCASE - PlacedBook08 is empty, placing book there") - PlacedBook08 = BookBase - elseif PlacedBook09 == EmptyForm - ;Trace("BOOKCASE - PlacedBook09 is empty, placing book there") - PlacedBook09 = BookBase - elseif PlacedBook10 == EmptyForm - ;Trace("BOOKCASE - PlacedBook10 is empty, placing book there") - PlacedBook10 = BookBase - elseif PlacedBook11 == EmptyForm - ;Trace("BOOKCASE - PlacedBook11 is empty, placing book there") - PlacedBook11 = BookBase - elseif PlacedBook12 == EmptyForm - ;Trace("BOOKCASE - PlacedBook12 is empty, placing book there") - PlacedBook12 = BookBase - elseif PlacedBook13 == EmptyForm - ;Trace("BOOKCASE - PlacedBook13 is empty, placing book there") - PlacedBook13 = BookBase - elseif PlacedBook14 == EmptyForm - ;Trace("BOOKCASE - PlacedBook14 is empty, placing book there") - PlacedBook14 = BookBase - elseif PlacedBook15 == EmptyForm - ;Trace("BOOKCASE - PlacedBook15 is empty, placing book there") - PlacedBook15 = BookBase - elseif PlacedBook16 == EmptyForm - ;Trace("BOOKCASE - PlacedBook16 is empty, placing book there") - PlacedBook16 = BookBase - elseif PlacedBook17 == EmptyForm - ;Trace("BOOKCASE - PlacedBook17 is empty, placing book there") - PlacedBook17 = BookBase - elseif PlacedBook18 == EmptyForm - ;Trace("BOOKCASE - PlacedBook18 is empty, placing book there") - PlacedBook18 = BookBase - endif - - BookAmount = BookAmount - 1 - - endWhile -endFunction - - -Function CountMaxBooks() - ; Checks how many books can be placed on this shelf - if BookMarker01 == EmptyRef - MaxBooksAllowed = 0 - elseif BookMarker02 == EmptyRef - MaxBooksAllowed = 1 - elseif BookMarker03 == EmptyRef - MaxBooksAllowed = 2 - elseif BookMarker04 == EmptyRef - MaxBooksAllowed = 3 - elseif BookMarker05 == EmptyRef - MaxBooksAllowed = 4 - elseif BookMarker06 == EmptyRef - MaxBooksAllowed = 5 - elseif BookMarker07 == EmptyRef - MaxBooksAllowed = 6 - elseif BookMarker08 == EmptyRef - MaxBooksAllowed = 7 - elseif BookMarker09 == EmptyRef - MaxBooksAllowed = 8 - elseif BookMarker10 == EmptyRef - MaxBooksAllowed = 9 - elseif BookMarker11 == EmptyRef - MaxBooksAllowed = 10 - elseif BookMarker12 == EmptyRef - MaxBooksAllowed = 11 - elseif BookMarker13 == EmptyRef - MaxBooksAllowed = 12 - elseif BookMarker14 == EmptyRef - MaxBooksAllowed = 13 - elseif BookMarker15 == EmptyRef - MaxBooksAllowed = 14 - elseif BookMarker16 == EmptyRef - MaxBooksAllowed = 15 - elseif BookMarker17 == EmptyRef - MaxBooksAllowed = 16 - elseif BookMarker18 == EmptyRef - MaxBooksAllowed = 17 - elseif BookMarker18 - MaxBooksAllowed = 18 - endif - ;Trace("BOOKCASE - " + MaxBooksAllowed + " books can be placed on this shelf") -endFunction - - -ObjectReference Function UpdateSingleBook(Form TargetBook, ObjectReference PlacedBookRef, ObjectReference TargetMarker) - ObjectReference retVal ; We return the book we placed (or None) - ; Note - it would be more efficient to move the book to its home position if the desired - ; book matches the placed book, but MoveTo doesn't work correctly with multi-part dynamic - ; objects. So we sidestep the issue by always deleting and placing - ;USLEEP 3.0.1 - Bug #19515 added form ID check here. - if PlacedBookRef && PlacedBookRef.GetFormID() - PlacedBookRef.Disable() - PlacedBookRef.Delete() - endIf - if TargetBook - retVal = TargetMarker.PlaceAtMe(TargetBook) - retVal.BlockActivation() - endIf - return retVal -EndFunction - - -Function UpdateBooks() - GoToState("PlacingBooks") ; Future calls should not mess with this stuff - - PlacedBook01Ref = UpdateSingleBook(PlacedBook01, PlacedBook01Ref, BookMarker01) - PlacedBook02Ref = UpdateSingleBook(PlacedBook02, PlacedBook02Ref, BookMarker02) - PlacedBook03Ref = UpdateSingleBook(PlacedBook03, PlacedBook03Ref, BookMarker03) - PlacedBook04Ref = UpdateSingleBook(PlacedBook04, PlacedBook04Ref, BookMarker04) - PlacedBook05Ref = UpdateSingleBook(PlacedBook05, PlacedBook05Ref, BookMarker05) - - PlacedBook06Ref = UpdateSingleBook(PlacedBook06, PlacedBook06Ref, BookMarker06) - PlacedBook07Ref = UpdateSingleBook(PlacedBook07, PlacedBook07Ref, BookMarker07) - PlacedBook08Ref = UpdateSingleBook(PlacedBook08, PlacedBook08Ref, BookMarker08) - PlacedBook09Ref = UpdateSingleBook(PlacedBook09, PlacedBook09Ref, BookMarker09) - PlacedBook10Ref = UpdateSingleBook(PlacedBook10, PlacedBook10Ref, BookMarker10) - - PlacedBook11Ref = UpdateSingleBook(PlacedBook11, PlacedBook11Ref, BookMarker11) - PlacedBook12Ref = UpdateSingleBook(PlacedBook12, PlacedBook12Ref, BookMarker12) - PlacedBook13Ref = UpdateSingleBook(PlacedBook13, PlacedBook13Ref, BookMarker13) - PlacedBook14Ref = UpdateSingleBook(PlacedBook14, PlacedBook14Ref, BookMarker14) - PlacedBook15Ref = UpdateSingleBook(PlacedBook15, PlacedBook15Ref, BookMarker15) - - PlacedBook16Ref = UpdateSingleBook(PlacedBook16, PlacedBook16Ref, BookMarker16) - PlacedBook17Ref = UpdateSingleBook(PlacedBook17, PlacedBook17Ref, BookMarker17) - PlacedBook18Ref = UpdateSingleBook(PlacedBook18, PlacedBook18Ref, BookMarker18) - - UnBlockActivate() ; Allow the player to mess with them - GoToState("") ; Now allow books to be updated again -EndFunction - - -State PlacingBooks - Function UpdateBooks() - ; Already updating books, so ignore - EndFunction -EndState - - -; -; ;USLEEP 3.0.1 - Bug #19515: Everything past this point is new stuff to support fixing the bookshelf containers. -; -Function PickUp(ObjectReference BookRef) - ;Trace("BookShelfFix " + self + " PickUp() - " + BookRef + ", Base = " + BookRef.GetBaseObject()) - - if (BookRef && BookRef.GetBaseObject() as Book) - - ; Remove a display book first - if RemoveBookByRef(BookRef) - - GoToState("PickingUp") - ; Then remove a book in container - self.RemoveItem(BookRef.GetBaseObject(), 1) - Wait(0.25) ; wait for OnItemRemoved() event to fire - - GoToState("") - endif - endIf -EndFunction - - -State PickingUp - ; Used when a book has been picked up directly from the display - - Event OnBeginState() ; You Shall Not Pass! - self.BlockActivation(True) - BlockActivate() - ;Trace("BookShelfFix " + self + " PickingUp State - Entered State") - EndEvent - - Event OnActivate(ObjectReference akActionRef) - EndEvent - - Event OnItemRemoved(Form akBaseItem, int aiItemCount, ObjectReference akItemReference, ObjectReference akDestContainer) - ;Trace("BookShelfFix " + self + " PickingUp State - Item " + akBaseItem + " removed from shelf inventory") - CurrentBookAmount -= aiItemCount - EndEvent - - Event OnEndState() - ;Trace("BookShelfFix " + self + " PickingUp State - Leaving State") - UnblockActivate() - self.BlockActivation(False) - EndEvent - -EndState - - -Bool Function RemoveBookByRef(ObjectReference BookRef) - ; If the book had been picked up directly, and if there were multiple copies of it on the shelf, - ; we need to determine the exact location of the book rather than the first copy in a list. - ; Returns True if BookRef has been successfully dismembered from the list or False when the book was missing - - if !BookRef - return False - endif - - int BookRefID = BookRef.GetFormID() - - ; These references could be a derivative of ObjectReference such as DefaultSetStageOnPlayerAcquireItem - ; and would never match even if they were cast into ObjectReference, so compare their FormIDs rather than comparing them directly. - if PlacedBook01Ref && PlacedBook01Ref.GetFormID() == BookRefID - ;Trace("BookShelfFix RemoveBookByRef() - PlacedBook01 matches, Removing this book") - PlacedBook01 = EmptyForm - PlacedBook01Ref = EmptyRef - elseif PlacedBook02Ref && PlacedBook02Ref.GetFormID() == BookRefID - ;Trace("BookShelfFix RemoveBookByRef() - PlacedBook02 matches, Removing this book") - PlacedBook02 = EmptyForm - PlacedBook02Ref = EmptyRef - elseif PlacedBook03Ref && PlacedBook03Ref.GetFormID() == BookRefID - ;Trace("BookShelfFix RemoveBookByRef() - PlacedBook03 matches, Removing this book") - PlacedBook03 = EmptyForm - PlacedBook03Ref = EmptyRef - elseif PlacedBook04Ref && PlacedBook04Ref.GetFormID() == BookRefID - ;Trace("BookShelfFix RemoveBookByRef() - PlacedBook04 matches, Removing this book") - PlacedBook04 = EmptyForm - PlacedBook04Ref = EmptyRef - elseif PlacedBook05Ref && PlacedBook05Ref.GetFormID() == BookRefID - ;Trace("BookShelfFix RemoveBookByRef() - PlacedBook05 matches, Removing this book") - PlacedBook05 = EmptyForm - PlacedBook05Ref = EmptyRef - elseif PlacedBook06Ref && PlacedBook06Ref.GetFormID() == BookRefID - ;Trace("BookShelfFix RemoveBookByRef() - PlacedBook06 matches, Removing this book") - PlacedBook06 = EmptyForm - PlacedBook06Ref = EmptyRef - elseif PlacedBook07Ref && PlacedBook07Ref.GetFormID() == BookRefID - ;Trace("BookShelfFix RemoveBookByRef() - PlacedBook07 matches, Removing this book") - PlacedBook07 = EmptyForm - PlacedBook07Ref = EmptyRef - elseif PlacedBook08Ref && PlacedBook08Ref.GetFormID() == BookRefID - ;Trace("BookShelfFix RemoveBookByRef() - PlacedBook08 matches, Removing this book") - PlacedBook08 = EmptyForm - PlacedBook08Ref = EmptyRef - elseif PlacedBook09Ref && PlacedBook09Ref.GetFormID() == BookRefID - ;Trace("BookShelfFix RemoveBookByRef() - PlacedBook09 matches, Removing this book") - PlacedBook09 = EmptyForm - PlacedBook09Ref = EmptyRef - elseif PlacedBook10Ref && PlacedBook10Ref.GetFormID() == BookRefID - ;Trace("BookShelfFix RemoveBookByRef() - PlacedBook10 matches, Removing this book") - PlacedBook10 = EmptyForm - PlacedBook10Ref = EmptyRef - elseif PlacedBook11Ref && PlacedBook11Ref.GetFormID() == BookRefID - ;Trace("BookShelfFix RemoveBookByRef() - PlacedBook11 matches, Removing this book") - PlacedBook11 = EmptyForm - PlacedBook11Ref = EmptyRef - elseif PlacedBook12Ref && PlacedBook12Ref.GetFormID() == BookRefID - ;Trace("BookShelfFix RemoveBookByRef() - PlacedBook12 matches, Removing this book") - PlacedBook12 = EmptyForm - PlacedBook12Ref = EmptyRef - elseif PlacedBook13Ref && PlacedBook13Ref.GetFormID() == BookRefID - ;Trace("BookShelfFix RemoveBookByRef() - PlacedBook13 matches, Removing this book") - PlacedBook13 = EmptyForm - PlacedBook13Ref = EmptyRef - elseif PlacedBook14Ref && PlacedBook14Ref.GetFormID() == BookRefID - ;Trace("BookShelfFix RemoveBookByRef() - PlacedBook14 matches, Removing this book") - PlacedBook14 = EmptyForm - PlacedBook14Ref = EmptyRef - elseif PlacedBook15Ref && PlacedBook15Ref.GetFormID() == BookRefID - ;Trace("BookShelfFix RemoveBookByRef() - PlacedBook15 matches, Removing this book") - PlacedBook15 = EmptyForm - PlacedBook15Ref = EmptyRef - elseif PlacedBook16Ref && PlacedBook16Ref.GetFormID() == BookRefID - ;Trace("BookShelfFix RemoveBookByRef() - PlacedBook16 matches, Removing this book") - PlacedBook16 = EmptyForm - PlacedBook16Ref = EmptyRef - elseif PlacedBook17Ref && PlacedBook17Ref.GetFormID() == BookRefID - ;Trace("BookShelfFix RemoveBookByRef() - PlacedBook17 matches, Removing this book") - PlacedBook17 = EmptyForm - PlacedBook17Ref = EmptyRef - elseif PlacedBook18Ref && PlacedBook18Ref.GetFormID() == BookRefID - ;Trace("BookShelfFix RemoveBookByRef() - PlacedBook18 matches, Removing this book") - PlacedBook18 = EmptyForm - PlacedBook18Ref = EmptyRef - else - return False - endif - - return True -EndFunction - - -Int Function NumBooksOnShelf() - ; Count number of books displayed on shelf (not ones kept in inventory) - int bookCnt = 0 - - Form[] PlacedBookAr = new Form[18] - - PlacedBookAr[0] = PlacedBook01 - PlacedBookAr[1] = PlacedBook02 - PlacedBookAr[2] = PlacedBook03 - PlacedBookAr[3] = PlacedBook04 - PlacedBookAr[4] = PlacedBook05 - PlacedBookAr[5] = PlacedBook06 - PlacedBookAr[6] = PlacedBook07 - PlacedBookAr[7] = PlacedBook08 - PlacedBookAr[8] = PlacedBook09 - PlacedBookAr[9] = PlacedBook10 - PlacedBookAr[10] = PlacedBook11 - PlacedBookAr[11] = PlacedBook12 - PlacedBookAr[12] = PlacedBook13 - PlacedBookAr[13] = PlacedBook14 - PlacedBookAr[14] = PlacedBook15 - PlacedBookAr[15] = PlacedBook16 - PlacedBookAr[16] = PlacedBook17 - PlacedBookAr[17] = PlacedBook18 - - int i = 0 - - while (i < MaxBooksAllowed && i < 18) - if PlacedBookAr[i] - bookCnt += 1 - endif - i += 1 - endwhile - - ; Note that number of books in inventory could NOT match this number due to bugs in vanilla script - return bookCnt -EndFunction - -Function ClearDisplayShelf() - ; Clear BaseID row for display shelf and give back any books in incorrect slots to player - - ObjectReference player = Game.GetPlayer() - - ;Trace("BookShelfFix - ClearDisplayShelf()") - - if (MaxBooksAllowed < 1 && PlacedBook01) - player.AddItem(PlacedBook01, 1, true) - endif - if (MaxBooksAllowed < 2 && PlacedBook02) - player.AddItem(PlacedBook02, 1, true) - endif - if (MaxBooksAllowed < 3 && PlacedBook03) - player.AddItem(PlacedBook03, 1, true) - endif - if (MaxBooksAllowed < 4 && PlacedBook04) - player.AddItem(PlacedBook04, 1, true) - endif - if (MaxBooksAllowed < 5 && PlacedBook05) - player.AddItem(PlacedBook05, 1, true) - endif - if (MaxBooksAllowed < 6 && PlacedBook06) - player.AddItem(PlacedBook06, 1, true) - endif - if (MaxBooksAllowed < 7 && PlacedBook07) - player.AddItem(PlacedBook07, 1, true) - endif - if (MaxBooksAllowed < 8 && PlacedBook08) - player.AddItem(PlacedBook08, 1, true) - endif - if (MaxBooksAllowed < 9 && PlacedBook09) - player.AddItem(PlacedBook09, 1, true) - endif - if (MaxBooksAllowed < 10 && PlacedBook10) - player.AddItem(PlacedBook10, 1, true) - endif - if (MaxBooksAllowed < 11 && PlacedBook11) - player.AddItem(PlacedBook11, 1, true) - endif - if (MaxBooksAllowed < 12 && PlacedBook12) - player.AddItem(PlacedBook12, 1, true) - endif - if (MaxBooksAllowed < 13 && PlacedBook13) - player.AddItem(PlacedBook13, 1, true) - endif - if (MaxBooksAllowed < 14 && PlacedBook14) - player.AddItem(PlacedBook14, 1, true) - endif - if (MaxBooksAllowed < 15 && PlacedBook15) - player.AddItem(PlacedBook15, 1, true) - endif - if (MaxBooksAllowed < 16 && PlacedBook16) - player.AddItem(PlacedBook16, 1, true) - endif - if (MaxBooksAllowed < 17 && PlacedBook17) - player.AddItem(PlacedBook17, 1, true) - endif - if (MaxBooksAllowed < 18 && PlacedBook18) - player.AddItem(PlacedBook18, 1, true) - endif - - PlacedBook01 = EmptyForm - PlacedBook02 = EmptyForm - PlacedBook03 = EmptyForm - PlacedBook04 = EmptyForm - PlacedBook05 = EmptyForm - PlacedBook06 = EmptyForm - PlacedBook07 = EmptyForm - PlacedBook08 = EmptyForm - PlacedBook09 = EmptyForm - PlacedBook10 = EmptyForm - PlacedBook11 = EmptyForm - PlacedBook12 = EmptyForm - PlacedBook13 = EmptyForm - PlacedBook14 = EmptyForm - PlacedBook15 = EmptyForm - PlacedBook16 = EmptyForm - PlacedBook17 = EmptyForm - PlacedBook18 = EmptyForm -EndFunction - - -Function CleanInvalidPlacedBooks() - ; Clean invalid (nonexistent) forms off PlacedBook**. Invalid forms may be resulted in removed mods. - ; Cleaning them will prevent them from eating up PlacedBook slots permanently. - - if !(PlacedBook01 && PlacedBook01.GetFormID()) ; nonexistent forms are still cast into True, but their ID are always 0 - PlacedBook01 = EmptyForm - endif - if !(PlacedBook02 && PlacedBook02.GetFormID()) - PlacedBook02 = EmptyForm - endif - if !(PlacedBook03 && PlacedBook03.GetFormID()) - PlacedBook03 = EmptyForm - endif - if !(PlacedBook04 && PlacedBook04.GetFormID()) - PlacedBook04 = EmptyForm - endif - if !(PlacedBook05 && PlacedBook05.GetFormID()) - PlacedBook05 = EmptyForm - endif - if !(PlacedBook06 && PlacedBook06.GetFormID()) - PlacedBook06 = EmptyForm - endif - if !(PlacedBook07 && PlacedBook07.GetFormID()) - PlacedBook07 = EmptyForm - endif - if !(PlacedBook08 && PlacedBook08.GetFormID()) - PlacedBook08 = EmptyForm - endif - if !(PlacedBook09 && PlacedBook09.GetFormID()) - PlacedBook09 = EmptyForm - endif - if !(PlacedBook10 && PlacedBook10.GetFormID()) - PlacedBook10 = EmptyForm - endif - if !(PlacedBook11 && PlacedBook11.GetFormID()) - PlacedBook11 = EmptyForm - endif - if !(PlacedBook12 && PlacedBook12.GetFormID()) - PlacedBook12 = EmptyForm - endif - if !(PlacedBook13 && PlacedBook13.GetFormID()) - PlacedBook13 = EmptyForm - endif - if !(PlacedBook14 && PlacedBook14.GetFormID()) - PlacedBook14 = EmptyForm - endif - if !(PlacedBook15 && PlacedBook15.GetFormID()) - PlacedBook15 = EmptyForm - endif - if !(PlacedBook16 && PlacedBook16.GetFormID()) - PlacedBook16 = EmptyForm - endif - if !(PlacedBook17 && PlacedBook17.GetFormID()) - PlacedBook17 = EmptyForm - endif - if !(PlacedBook18 && PlacedBook18.GetFormID()) - PlacedBook18 = EmptyForm - endif - -EndFunction - -;USSEP 4.1.5 Bug #13862 - Added to reset all bookshelf form and reference pointers after the chest has been dumped by the prefabs script. -Function USSEP_ClearAllBookForms() - PlacedBook01 = EmptyForm - PlacedBook02 = EmptyForm - PlacedBook03 = EmptyForm - PlacedBook04 = EmptyForm - PlacedBook05 = EmptyForm - PlacedBook06 = EmptyForm - PlacedBook07 = EmptyForm - PlacedBook08 = EmptyForm - PlacedBook09 = EmptyForm - PlacedBook10 = EmptyForm - PlacedBook11 = EmptyForm - PlacedBook12 = EmptyForm - PlacedBook13 = EmptyForm - PlacedBook14 = EmptyForm - PlacedBook15 = EmptyForm - PlacedBook16 = EmptyForm - PlacedBook17 = EmptyForm - PlacedBook18 = EmptyForm - PlacedBook01Ref = EmptyRef - PlacedBook02Ref = EmptyRef - PlacedBook03Ref = EmptyRef - PlacedBook04Ref = EmptyRef - PlacedBook05Ref = EmptyRef - PlacedBook06Ref = EmptyRef - PlacedBook07Ref = EmptyRef - PlacedBook08Ref = EmptyRef - PlacedBook09Ref = EmptyRef - PlacedBook10Ref = EmptyRef - PlacedBook11Ref = EmptyRef - PlacedBook12Ref = EmptyRef - PlacedBook13Ref = EmptyRef - PlacedBook14Ref = EmptyRef - PlacedBook15Ref = EmptyRef - PlacedBook16Ref = EmptyRef - PlacedBook17Ref = EmptyRef - PlacedBook18Ref = EmptyRef -EndFunction diff --git a/Source/Scripts/QuickLootEE.psc b/Source/Scripts/QuickLootEE.psc deleted file mode 100644 index 8a89731..0000000 --- a/Source/Scripts/QuickLootEE.psc +++ /dev/null @@ -1,33 +0,0 @@ -Scriptname QuickLootEE Hidden -{Script used for adding custom icons to QuickLootEE} - -int Function GetVersion() global native -{Gets the version e.g 292 for 2.9.2} - -;iEquip Functions --------------------------------------- - -Function RegisterNewItemsList(FormList alist) global native -{Registers a form list to be used to check wheather an item is not - displayed in LOTD and is not in our inventory or LOTD containers.} - -Function RegisterFoundItemsList(FormList alist) global native -{Registers a form list to be used to check wheather an item is not - displayed in LOTD and is in our inventory or LOTD containers.} - -Function RegisterDisplayedItemsList(FormList alist) global native -{Registers a form list to be used to check wheather an item is displayed in LOTD.} - -; Gets the version as a string for viewing -string Function GetVersionString() global - int iVersion = QuickLootEE.GetVersion() - - if (iVersion == 0) - return "" - endif - - int iMajor = iVersion / 100 - int iMinor = (iVersion / 10) % 10 - int iBug = iVersion % 10 - string aVersion = iMajor + "." + iMinor + "." + iBug - return aVersion -EndFunction