From d22ec901b5bc073049f92cc6c27844471d6ca2e7 Mon Sep 17 00:00:00 2001 From: Eddoursul Date: Tue, 21 Jun 2022 22:10:12 +0200 Subject: [PATCH] Delayed processing of items moved to a container --- Artifact Tracker.esp | Bin 4936 -> 5099 bytes SKSE/Plugins/ArtifactTrackerFunctions.dll | Bin 412160 -> 410624 bytes Scripts/ETR_Functions.pex | Bin 1371 -> 1284 bytes Scripts/ETR_TrackFoundItems.pex | Bin 5347 -> 4792 bytes Scripts/ETR_TrackNewItems.pex | Bin 3650 -> 3056 bytes Scripts/ETR_TrackStoredItems.pex | Bin 3067 -> 4688 bytes Source/DLL/src/Functions/ArtifactTracker.h | 145 +++++++++++++++- Source/DLL/src/Functions/ObjectReference.h | 192 --------------------- Source/DLL/src/Papyrus.h | 2 +- Source/Scripts/ETR_Functions.psc | 12 +- Source/Scripts/ETR_TrackFoundItems.psc | 152 ++++++++-------- Source/Scripts/ETR_TrackNewItems.psc | 33 ++-- Source/Scripts/ETR_TrackStoredItems.psc | 133 ++++++++++---- 13 files changed, 335 insertions(+), 334 deletions(-) diff --git a/Artifact Tracker.esp b/Artifact Tracker.esp index ead6179fe580493237440d3e266fbb8bcc0b919d..f4198e06646d179a42d076316965e4dd8843e969 100644 GIT binary patch delta 488 zcmX@1_F8>{5}OPI1A~#oM2#}Ws}tw1WW2iBlTnXbs*i<%Auu#J1SrXHRR=^u_;DY;s@P`Q;|Z^4m;S<`;!&;YQLjc`u(n zBPY;0HL#(v{3>7_A99o_oV=a?DQ_hc1B06n)H|D33MesZ zra(N!zyVYPVuC#B>f-4lfo{~~4}!rS`cT!JXsSigRlDUE~WW2Q5lTnXbN|l9yAuu#J1SrXHNe4ti_+ObP zPvp^M`pz`@0FOQs8^h#Tyb6;&`L!m0T>QztaC<5`lLTRizKpFR^ivT3T5gZXSgx+W_KJms}#VqkFd zfjVcikf0KyY693z3=A9`42&Qq$dRrto-QKDmQ0Qn3T8B&yirIzT@YE^Ex#zYn8C-- z(U*mR3#bvo;)k=o0F4CMXABep0WLI4BvA}Q@ri=4sGxgLXh0!Qn~!sdA4vP9$=$*U E0H35@&Hw-a diff --git a/SKSE/Plugins/ArtifactTrackerFunctions.dll b/SKSE/Plugins/ArtifactTrackerFunctions.dll index 3a49b5aef2c1fca68bd79859e057560b1f7db538..21d91f362a3792f43851746df40fd998da8e05d9 100644 GIT binary patch delta 103087 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 Bb(R1C delta 105342 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 PWK+|ogVz4iA0Pfdw+s++ diff --git a/Scripts/ETR_Functions.pex b/Scripts/ETR_Functions.pex index 0a5610463e2ed26b6f51a6709f32468997d50a1d..1355e3b450bba87840e3c6845422efb5304f4439 100644 GIT binary patch delta 581 zcmYk2%TB^T6o&ulRG|eT;sr$!FL(hIF}iYLQsX5i8aE~`jESWbZGzO4YGh&9_yVN9 zfeV+sg70DC8~6gQJkx@37N;}+|NSR(`lY_A@!!kOZ!Up>s@(Z#wc{nW)z)@n39VAm z9M`JqhTCYry&v+Ex{I)5RyD`bn+R!!Ydcrh2$%JSd1O2Hko_JaO7)1hO7#Evkc+i-@_mygNOyGaIp>}`bIMCQN2_r?QrG$Z+%{=ya&+IyQEcE$pW9LIvh6`Y=UKS@6lv5N92dbXZWvsfBs8P4i@;+ z{L^3mj?OwMxm1u4Sjvae}KeKN8YYGE3|F-hm zGp!&}DAoKsTdwRj#4U)dt~P^h<)U}pb6w?QzzKZU6L-6X;ksH?q4FIy)$;5Jh30fS z+C_dk2wE7Qm|&#F?v^qTZUpT}t!&#NiW_QoCkS0Jk)&oHJFT{>=E7ieLG5Uh(rOTH zw!A3D-ez4zj_oh1Frut{s#b;oci4nliP-C{s(P@b4DNicv`6l{kk8209ZRx8+1;k@sv$LN_SyrX8f8P#ef z`(!w^Zy!sTz#d4FyAkkcip{B5GlQNvgBi9*j8U_lZWG-wdXteZZCbP>J8dbEm21FD zjk}Z>d9&ykdGoB$m*tFdmy47Q+I5X5~A-@p#3RmXZz9aor ziP!D8676`gv#ugaUQ`M6DOcivqN+q&%JEh`le>hn~NNzKIFh^e&sO zKk#RL*DU8F)mlYyV#0`nfj_O*Jl{wqnT7?Km3?>oka{*{>b$_7l1jaj%y!vguFR_4P*6A3QMd>OC^cC`)Z*>6}LlQ>Z~e`ft8fC-`<$E zBPAV#yv!vAY)>T9pJjVPgwE(u@#=7vOi`*=kZ@{xMYGsrql^K z+AYodQ!V<6e zJg>*j)Mx68=#{eZ=m+fVDu`hDnZ+gK+8+AnBk8@`7Vp`i%urO4S=NYJQE*kWy@tVs zAm#{|3myCQAXU;kyuyiT%7t8P$6m{ec{A_Wd=h|}&2b3A-C6n0c`c5fZt!GKQseY7{ToVr0xjg^aTTT~W%42&(z*gLfC}k2=|n~+ zaZ)e$0!Q%mjNZe0_$IzZI!*dE=?tlw(Rm16z(ribWs<}xf(Smsq!x(i7UoFTaf5V| z(rwZr>ZB!2cX0PDbPxCN3F%YZPv`+2V43tVp(Y%-Bt=>!t&!F;s`c#|uqg;LC)*k00QN_z~&H_z8ZBpOJq42K@rR)buMD`Za!o-)8hXyiUKz zA4oa$^AIeSia&jS#Gv8$cQ1x8ELxsY8GD2Sl_Q4Pm#vNB9i!Txsm4;P@sv4$gU09( z4hv(t;Rucz?Xk?2|6hrUF^?Nduq~39CsXEB%JktYWHt68PT{K^VK3e#=47ReuQ7fi z9AHCbK4a{uqv^^Ke512+lD(FhjkD=8;RNk1ws(*2LY;u68_~j9s(QvOoU?GAlFo9- z!Ue8Vd$CK)&OB}6N}FC{6C3Xw?JjrOQ7mpLCO~H?C!%GcY%H!4a)nw-AAtNQzx+(;bPiaUvvA$Q zhiP`x7o7;@h88BZ6R~i+DgKqX{EYUz zeEISpWxX%uL;ae&nr_}pvqQAx=U71??<;^?&UY$j!}yrhth1_1yg3?_rK)$hdWkq{vUPffm5}v%LLbpUn~%`E(lM9nz9s+6e25#} zv%rJ=I0=4}up5a8A|&4sFnZ7I!0RH48_)lf#5!l8ZbAH+tllp1m&CPyp3%N*;Y2bH z7OkoI)WXRwjmcX79cO&*RiVEwT+YY~sa*PR``&=Sn^WJU-eIr0>`}#E zd6(At>(TZR_2~_9ixt|i(6X?s^Uq*h=f4!{^k5 z7NS&>H@(LZ{x^Gbs9>=R9$GlAgHdywBF}1t9H)3ChnRm~+m#vyJSHxOX}ipEN-_3O zwkaF6Z9dECYCc(IB5iHgls%+Pxkod#Do}Ql%g#+RG}9+5rkR}XW^#4zdX3HG6lCla zMVixYjPN-p+eryHCtP!QDKt5p45~p0G}6IRF3v literal 5347 zcmcInTUQ*%5&i~PSkM9jA%ifIHW$Z{W62<)8*wb|um}kmkY$8!!%hPemKicL3nG_u zY$vaY?OdPy8}b+OOY)k${fMMx~jUWY5w!zZ+~xWfCK)l z{q>7~p?7L|@#%8pmba$EYT%U;wH;sDiOXo4^1QGb#nnm?9m>*|_WYm-AE#bnMwj^+ zl`JK0qR=`MCZQpl7lKmYCpftf+^e|zDw+>nZ^qqLvN9i*-NX-riA^`yP{=O?_jf#T z&`v7`v#7SiUFG3KISf2sG~EiCH+|1j0Xi1dx{6d#R$~?4jd60#7*B_lO1P(@7)|40 zSV19OpZDV=#`%#EiT)nt(~@&WGNCG!)ayhTB(5K*NXuK9hGEg++b~Okr=Fv+6eMU_8%t(GmZo!L z#1xAuYRjBkW&q&UEZOq@jxyreuo^3^(6XiW_rl0SPhHUZP_?+bZuO;T>++Dmb++23 zu(q@xl+#4eeRyN^NhM#Et&zOSGg`C6aOSlKfesPrP;?IH7QW6Ob3kXNV-5#}Y(d0L zcf&xT&D|PzVy9Y#xjuu)Oz3^c{6vW`wO z17mD?j~d%(A*qRWl|)b1t3g@jB1Q+NukI|go=&?!K`rBMa^?tZ1IFm7*C+*J(rYnG zSJQBOw3yhhTH=N!Zf400X4H@sUbDn?4smTRGR4bisV08KPxetL#iihm3aWQPk0T(> zSD(*0<}GQ&3+plfV}Wy4qx~uQp7ty33^Xq#5o5!<)9G;+lT9}% zMk=XBK}<#!%VyVNtS?}0X|CU!2QA_~KPhi2G4bP~>Gfg~Y7g;_DziMwOMT=6wP&2P zg~3$d8M+V#<80VKbM`OEKhVPa-$8@?Wf7v$5>3MO>9rgvKTF6`GtiIkWq1caAl@Z@ zNL(P^%Wx5b4={)!LX5fDH~0`A5w|c(Okfhzn89p{5(M)p?!e$K3>IMUF&0xS!C)B% z_hIk=5AZ3mLOdi^GdzODV^};v4KCI+$`E)O3W5z{3l#*|!Ov1eFo8n(~M#*(*4!q^y z1F1o--NAVWz5MFPIlT^UIJoKHs>qzCTb}_vLiTky7^E7_28C}h{6)*>X*uFxz*;(Z zk1IcR&{elWn`<0WeqDEP>WqUA9sGoA;;>1}Iw{goe56?&MI(LbXmXAYrJas%(T#&4 zy-YF97@THd0voh}<;*st4lau}3_F%;H*ne54ZS(JDdb6mU4?|HVzH{7#Bf_%at?>M;YU{c4-bxlYthmNP; z9FU_A5d19UK!fvQ*-G|&PD)ZTb)T!Rdr4GScgk46xtzGTO_u7^J7+4jkfzB>Q8s5X zH5#4#niA*Jnf5&gGvYO`U33ZAPbI449KlfxFC5qK?c*92>kV1!k82GrX|gENyEf%+ zQ=o$>57ej3%SjjijSX$eM>e!6AKB2RtPM><9FqX$9Mt zeH>A$=tXHF(WB#eZ9icuH-GfX9nZyq8XnKZfodMl1+8?~>$>(dzIgHCpQfSgwV@kI zKB$&<(jvB4RIo#%H?uAL#)i!Oc!sRR@eFNU{=Y-R z0?5!Dv2q96^^IK|sNwNk9H{2;TpXzD>xSlACV_u$nDrY?g1sr;U=nO{qWUcXFbNYt z`Y33wJqjA|iGJrl;LB}=kAjDM2(0o!@QA={8NR*zo0C`)n7kHaqU_%FZ({+pzK Y9IR8rY$ui8sM*V(L635-Zq}{-7qgr<$p8QV diff --git a/Scripts/ETR_TrackNewItems.pex b/Scripts/ETR_TrackNewItems.pex index 86ed3f6aa8e1249bf81e31f69041adad1cc7328a..c935fd99c3bec5077e0cf1f3a903cf3678aad8eb 100644 GIT binary patch literal 3056 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 NL4%?bAD9%ee*@UC53T?J diff --git a/Source/DLL/src/Functions/ArtifactTracker.h b/Source/DLL/src/Functions/ArtifactTracker.h index d30461c..bffbe45 100644 --- a/Source/DLL/src/Functions/ArtifactTracker.h +++ b/Source/DLL/src/Functions/ArtifactTracker.h @@ -2,6 +2,54 @@ namespace Papyrus::ArtifactTracker { + inline bool is_excluded(RE::TESForm* a_form, RE::TESForm* a_excludeForm = NULL) + { + if (!a_excludeForm) { + return false; + } + + const RE::BGSListForm* list = a_excludeForm->As(); + + if (list) { + if (list->HasForm(a_form)) { + return true; + } else { + bool isExcluded = false; + + list->ForEachForm([&](RE::TESForm& a_exform) { + const auto exlist = a_exform.As(); + if (exlist) { + if (exlist->forms.size() > 0) { + if (exlist->forms[0]->Is(RE::FormType::Keyword) ? a_form->HasKeywordInList(exlist, false) : exlist->HasForm(a_form)) { + isExcluded = true; + return false; + } + } + } else { + const auto exkeyword = a_exform.As(); + if (exkeyword && a_form->As()->HasKeyword(exkeyword)) { + isExcluded = true; + return false; + } + } + return true; + }); + + return isExcluded; + } + } + + const RE::BGSKeyword* keyword = a_excludeForm->As(); + + if (keyword) { + if (a_form->As()->HasKeyword(keyword)) { + return true; + } + } + + return false; + } + inline bool is_artifact(RE::TESForm* a_form, RE::TESForm* a_excludeForm = NULL) { const auto formType = a_form->GetFormType(); @@ -10,13 +58,93 @@ namespace Papyrus::ArtifactTracker return false; } - if (Papyrus::ObjectReference::inv_util::is_excluded(a_form, a_excludeForm)) { + if (!a_form->GetPlayable() || is_excluded(a_form, a_excludeForm)) { return false; } return true; } + inline std::int32_t AddAllFormsToList(RE::StaticFunctionTag*, + RE::BGSListForm* a_targetList, + short a_formType, + RE::TESForm* a_excludeForm = NULL) + { + const auto dataHandler = RE::TESDataHandler::GetSingleton(); + + if (!dataHandler) { + return a_targetList->forms.size(); + } + + const auto formType = static_cast(a_formType); + + for (const auto& form : dataHandler->GetFormArray(formType)) { + if (!form || !form->GetPlayable()) { + continue; + } + if (a_excludeForm && is_excluded(form, a_excludeForm)) { + continue; + } + a_targetList->AddForm(form); + } + + return a_targetList->forms.size(); + } + + inline std::int32_t AddArtifactsToList(VM* a_vm, StackID a_stackID, RE::StaticFunctionTag*, + RE::TESForm* a_refOrList, + RE::BGSListForm* a_targetList, + RE::TESForm* a_excludeForm = NULL, + bool excludeOnlyMisc = false) + { + if (!a_refOrList) { + a_vm->TraceStack("a_refOrList in AddItemsOfTypeAndKeywordToList is None", a_stackID); + return 0; + } + if (!a_targetList) { + a_vm->TraceStack("a_targetList in AddItemsOfTypeAndKeywordToList is None", a_stackID); + return 0; + } + + if (a_refOrList->Is(RE::FormType::FormList)) { + a_refOrList->As()->ForEachForm([&](RE::TESForm& a_exform) { + const auto refrItem = a_exform.As(); + if (refrItem) { + AddArtifactsToList(a_vm, a_stackID, {}, refrItem, a_targetList, a_excludeForm, excludeOnlyMisc); + } + return true; + }); + return a_targetList->forms.size(); + } + + const auto containerRef = a_refOrList->As(); + + if (!containerRef) { + a_vm->TraceStack("containerRef in AddItemsOfTypeAndKeywordToList is not a reference", a_stackID); + return 0; + } + + auto inv = containerRef->GetInventory([&](RE::TESBoundObject& a_exform) { + return a_exform.GetPlayable() + && ( + a_exform.formType == RE::FormType::Armor + || (a_exform.formType == RE::FormType::Weapon && a_exform.formID != 0x000001F4) + || a_exform.formType == RE::FormType::Misc + || a_exform.formType == RE::FormType::Book + ) + && (excludeOnlyMisc ? (a_exform.formType != RE::FormType::Misc || !is_excluded(&a_exform, a_excludeForm)) : !is_excluded(&a_exform, a_excludeForm)); + }); + + for (const auto& [item, data] : inv) { + const auto& [count, entry] = data; + if (count > 0) { + a_targetList->AddForm(item); + } + } + + return a_targetList->forms.size(); + } + inline RE::TESObjectREFR* GetCellStorage(RE::StaticFunctionTag*, RE::TESObjectREFR* a_ref, RE::BGSListForm* a_refList, @@ -119,12 +247,11 @@ namespace Papyrus::ArtifactTracker continue; } - const auto contInv = a_ref->GetInventory(); + const auto contInv = a_ref->GetInventory([&](RE::TESBoundObject& a_object) -> bool { + return !cellItems.contains(a_object.formID); + }); for (const auto& [item, data] : contInv) { - if (cellItems.contains(item->formID)) { - continue; - } const auto& [count, entry] = data; if (count > 0) { cellItems[item->formID] = true; @@ -146,12 +273,12 @@ namespace Papyrus::ArtifactTracker if (cellItems.contains(baseObj->formID)) { continue; } + + cellItems[baseObj->formID] = true; if (!is_artifact(baseObj, a_excludeForm)) { continue; } - - cellItems[baseObj->formID] = true; if (inv.find(baseObj) == inv.end()) { a_cellStorage->AddObjectToContainer(baseObj, nullptr, 1, nullptr); @@ -170,6 +297,10 @@ namespace Papyrus::ArtifactTracker inline void Bind(VM& a_vm) { + BIND(AddAllFormsToList); + logger::info("Registered AddAllFormsToList"sv); + BIND(AddArtifactsToList); + logger::info("Registered AddArtifactsToList"sv); BIND(GetCellStorage); logger::info("Registered GetCellStorage"sv); BIND(HasRefInCell); diff --git a/Source/DLL/src/Functions/ObjectReference.h b/Source/DLL/src/Functions/ObjectReference.h index 5958db9..ac7c919 100644 --- a/Source/DLL/src/Functions/ObjectReference.h +++ b/Source/DLL/src/Functions/ObjectReference.h @@ -2,194 +2,6 @@ namespace Papyrus::ObjectReference { - namespace inv_util - { - inline bool can_be_taken(const std::unique_ptr& a_entry, bool a_noEquipped, bool a_noFavourited, bool a_noQuestItem) - { - if (a_noEquipped && a_entry->IsWorn()) { - return false; - } - if (a_noFavourited && a_entry->IsFavorited()) { - return false; - } - if (a_noQuestItem && a_entry->IsQuestObject()) { - return false; - } - if (a_entry->object->formID == 0x000001F4) { // Unarmed - return false; - } - return true; - } - - inline bool is_excluded(RE::TESForm* a_form, RE::TESForm* a_excludeForm = NULL) - { - if (!a_excludeForm) { - return false; - } - - const RE::BGSListForm* list = a_excludeForm->As(); - - if (list) { - if (list->HasForm(a_form)) { - return true; - } else { - bool isExcluded = false; - - list->ForEachForm([&](RE::TESForm& a_exform) { - const auto exlist = a_exform.As(); - if (exlist) { - if (exlist->forms.size() > 0) { - if (exlist->forms[0]->Is(RE::FormType::Keyword) ? a_form->HasKeywordInList(exlist, false) : exlist->HasForm(a_form)) { - isExcluded = true; - return false; - } - } - } else { - const auto exkeyword = a_exform.As(); - if (exkeyword && a_form->As()->HasKeyword(exkeyword)) { - isExcluded = true; - return false; - } - } - return true; - }); - - return isExcluded; - } - } - - const RE::BGSKeyword* keyword = a_excludeForm->As(); - - if (keyword) { - if (a_form->As()->HasKeyword(keyword)) { - return true; - } - } - - return false; - } - - inline RE::ITEM_REMOVE_REASON get_remove_reason(RE::TESObjectREFR* atargetRef) - { - RE::ITEM_REMOVE_REASON iReason = RE::ITEM_REMOVE_REASON::kStoreInContainer; - - if (atargetRef->As() && atargetRef->As()->IsPlayerTeammate()) { - iReason = RE::ITEM_REMOVE_REASON::kStoreInTeammate; - } - - return iReason; - } - } - - inline std::int32_t AddAllFormsToList(RE::StaticFunctionTag*, - RE::BGSListForm* a_targetList, - std::int32_t a_formType, - RE::TESForm* a_keywordOrList = NULL, - RE::TESForm* a_excludeForm = NULL, - bool a_onlyPlayable = true) - { - const auto formType = static_cast(a_formType); - - const auto keyword = a_keywordOrList ? a_keywordOrList->As() : nullptr; - const auto keywordList = a_keywordOrList ? a_keywordOrList->As() : nullptr; - - const auto dataHandler = RE::TESDataHandler::GetSingleton(); - - if (!dataHandler) { - return a_targetList->forms.size(); - } - - for (const auto& form : dataHandler->GetFormArray(formType)) { - if (!form) { - continue; - } - if (a_onlyPlayable && !form->GetPlayable()) { - continue; - } - if ((keyword && !form->As()->HasKeyword(keyword)) || (keywordList && !form->HasKeywordInList(keywordList, false))) { - continue; - } - if (a_excludeForm && inv_util::is_excluded(form, a_excludeForm)) { - continue; - } - a_targetList->AddForm(form); - } - - return a_targetList->forms.size(); - } - - inline std::int32_t AddItemsOfTypeAndKeywordToList(VM* a_vm, StackID a_stackID, RE::StaticFunctionTag*, - RE::TESForm* a_refOrList, - RE::BGSListForm* a_targetList, - std::uint32_t a_formType = 0, - RE::TESForm* a_keywordOrList = NULL, - RE::TESForm* a_excludeForm = NULL, - bool a_noEquipped = TRUE, - bool a_noFavourited = TRUE, - bool a_noQuestItem = TRUE) - { - if (!a_refOrList) { - a_vm->TraceStack("a_refOrList in AddItemsOfTypeAndKeywordToList is None", a_stackID); - return 0; - } - if (!a_targetList) { - a_vm->TraceStack("a_targetList in AddItemsOfTypeAndKeywordToList is None", a_stackID); - return 0; - } - - if (a_refOrList->Is(RE::FormType::FormList)) { - a_refOrList->As()->ForEachForm([&](RE::TESForm& a_exform) { - const auto refrItem = a_exform.As(); - if (refrItem) { - AddItemsOfTypeAndKeywordToList(a_vm, a_stackID, {}, refrItem, a_targetList, a_formType, a_keywordOrList, a_excludeForm, a_noEquipped, a_noFavourited, a_noQuestItem); - } - return true; - }); - return a_targetList->forms.size(); - } - - const auto containerRef = a_refOrList->As(); - - if (!containerRef) { - a_vm->TraceStack("containerRef in AddItemsOfTypeAndKeywordToList is not a reference", a_stackID); - return 0; - } - - const auto formType = static_cast(a_formType); - const bool bNoType = formType == RE::FormType::None; - - const auto keyword = a_keywordOrList ? a_keywordOrList->As() : nullptr; - const auto keywordList = a_keywordOrList ? a_keywordOrList->As() : nullptr; - - auto inv = containerRef->GetInventory([&](RE::TESBoundObject& a_exform) { - return (bNoType || a_exform.formType == formType) - && ( - (!keyword && !keywordList) - || (keyword && a_exform.As()->HasKeyword(keyword)) - || (keywordList && a_exform.HasKeywordInList(keywordList, false))) - && (!a_excludeForm || !inv_util::is_excluded(&a_exform, a_excludeForm)) - && a_exform.GetPlayable() && a_exform.formID != 0x000001F4; - }); - - if (containerRef->IsPlayerRef()) { - for (const auto& [item, data] : inv) { - const auto& [count, entry] = data; - if (count > 0 && inv_util::can_be_taken(entry, a_noEquipped, a_noFavourited, a_noQuestItem)) { - a_targetList->AddForm(item); - } - } - } else { - for (const auto& [item, data] : inv) { - const auto& [count, entry] = data; - if (count > 0) { - a_targetList->AddForm(item); - } - } - } - - return a_targetList->forms.size(); - } - inline std::uint32_t GetItemCountInList(RE::StaticFunctionTag*, RE::BGSListForm* a_containerList, RE::TESBoundObject* a_form) @@ -256,10 +68,6 @@ namespace Papyrus::ObjectReference inline void Bind(VM& a_vm) { - BIND(AddAllFormsToList); - logger::info("Registered AddAllFormsToList"sv); - BIND(AddItemsOfTypeAndKeywordToList); - logger::info("Registered AddItemsOfTypeAndKeywordToList"sv); BIND(GetItemCountInList); logger::info("Registered GetItemCountInList"sv); BIND(GetItemCountInActors); diff --git a/Source/DLL/src/Papyrus.h b/Source/DLL/src/Papyrus.h index 3a4e060..cf5ad93 100644 --- a/Source/DLL/src/Papyrus.h +++ b/Source/DLL/src/Papyrus.h @@ -9,7 +9,7 @@ namespace Papyrus { using StackID = RE::VMStackID; using Severity = RE::BSScript::ErrorLogger::Severity; - inline constexpr auto script = "EddsArtifactTracker"sv; + inline constexpr auto script = "ETR_Functions"sv; bool Bind(VM* a_vm); } diff --git a/Source/Scripts/ETR_Functions.psc b/Source/Scripts/ETR_Functions.psc index 3e4faa3..729b195 100644 --- a/Source/Scripts/ETR_Functions.psc +++ b/Source/Scripts/ETR_Functions.psc @@ -1,12 +1,8 @@ Scriptname ETR_Functions Hidden -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -; ObjectReference functions -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +int function AddAllFormsToList(FormList targetList, int formType, Form excludeForm = None) native global -int function AddAllFormsToList(FormList targetList, int formType, Form keywordOrList = None, Form excludeForm = None, bool onlyPlayable = true) native global - -int function AddItemsOfTypeAndKeywordToList(Form refOrList, FormList targetList, int formType = 0, Form keywordOrList = None, Form excludeForm = None, bool noEquipped = true, bool noFavourited = true, bool noQuestItem = true) native global +int function AddArtifactsToList(Form refOrList, FormList targetList, Form excludeForm = None, bool excludeOnlyMisc = false) native global int function GetItemCountInList(FormList refList, Form baseForm) native global @@ -14,10 +10,6 @@ int function GetItemCountInActors(Actor[] refArray, Form baseForm) native global Actor[] function GetPlayerFollowers() native global -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -; Artifact Tracker -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - ObjectReference function GetCellStorage(ObjectReference ref, FormList refList, Form refToCreate, bool autoCreate = true) native global bool function HasRefInCell(Form item, Cell currentCell = None, bool checkContainers = true, FormList excludeList = None) native global diff --git a/Source/Scripts/ETR_TrackFoundItems.psc b/Source/Scripts/ETR_TrackFoundItems.psc index 273f2f3..01972f2 100644 --- a/Source/Scripts/ETR_TrackFoundItems.psc +++ b/Source/Scripts/ETR_TrackFoundItems.psc @@ -7,17 +7,20 @@ FormList Property ETR_ItemsFound Auto FormList Property ETR_ItemsStored Auto FormList Property ETR_PersistentStorageList Auto FormList Property ETR_ExcludeFromNew Auto -FormList Property ETR_ExcludeFromCellItems Auto +FormList Property ETR_ExcludeMisc Auto Container Property ETR_CellStorageContainer Auto Keyword Property LocTypePlayerHouse Auto -bool bAtHome = false +bool bBusy = false int iFollowerIndex = 0 -bool bUpdateFollowers = false -bool bSyncStorage = false -bool bUpdateLists = false +bool bAtHome = false +bool bRescanHome = false +bool bRescanPersistent = false +ObjectReference lastDestContainer = None +bool lastDestIsPersistent = false +int iUpdateCount event OnInit() @@ -27,12 +30,16 @@ endevent Event OnPlayerLoadGame() AddInventoryEventFilter(ETR_ItemsFound) + Location currentLocation = PlayerRef.GetCurrentLocation() + bAtHome = currentLocation && currentLocation.HasKeyword(LocTypePlayerHouse) + lastDestContainer = None EndEvent Event OnLocationChange(Location akOldLoc, Location akNewLoc) bAtHome = akNewLoc && akNewLoc.HasKeyword(LocTypePlayerHouse) + lastDestContainer = None int iCurrentFollowers = 0; Actor[] aFollowers = ETR_Functions.GetPlayerFollowers() @@ -43,95 +50,72 @@ Event OnLocationChange(Location akOldLoc, Location akNewLoc) endwhile if iCurrentFollowers != iFollowerIndex - ; If the list of followers has changed, rebuild ETR_ItemsFound and ETR_ItemsNew iFollowerIndex = iCurrentFollowers - bUpdateFollowers = true + bRescanHome = false + bRescanPersistent = false RegisterForSingleUpdate(3.0) ; wait until followers load into the location endif endEvent +Event OnMenuClose(String MenuName) + UnregisterForUpdate() + OnUpdate() +EndEvent + + Event OnUpdate() - Actor[] aFollowers - int i + if UI.IsMenuOpen("ContainerMenu") + RegisterForMenu("ContainerMenu") + return + endif - if bUpdateLists + while bBusy + Debug.Notification("Found OnUpdate is busy") + Utility.wait(0.5) + endwhile + + bBusy = true + + iUpdateCount += 1 + Debug.Notification("Running Found OnUpdate " + iUpdateCount) - if Utility.IsInMenuMode() - RegisterForSingleUpdate(1.0) + if bRescanHome + if lastDestContainer && lastDestContainer as Actor && (lastDestContainer as Actor).IsPlayerTeammate() + lastDestContainer = None return endif - - bUpdateLists = false - bUpdateFollowers = false - - if bSyncStorage - bSyncStorage = false - ObjectReference cellStorage = ETR_Functions.GetCellStorage(PlayerRef, ETR_PersistentStorageList, ETR_CellStorageContainer) - ETR_Functions.SyncCellStorage(cellStorage, ETR_ExcludeFromCellItems) + bRescanHome = false + ObjectReference cellStorage = ETR_Functions.GetCellStorage(PlayerRef, ETR_PersistentStorageList, ETR_CellStorageContainer) + ETR_Functions.SyncCellStorage(cellStorage, ETR_ExcludeMisc) + if ! bRescanPersistent + ETR_Functions.AddArtifactsToList(cellStorage, ETR_ItemsStored) endif + endif - ETR_Functions.AddItemsOfTypeAndKeywordToList(ETR_PersistentStorageList, ETR_ItemsStored, 26, None, ETR_ExcludeFromCellItems) - ETR_Functions.AddItemsOfTypeAndKeywordToList(ETR_PersistentStorageList, ETR_ItemsStored, 41, None, ETR_ExcludeFromCellItems) - ETR_Functions.AddItemsOfTypeAndKeywordToList(ETR_PersistentStorageList, ETR_ItemsStored, 27, None, ETR_ExcludeFromCellItems) - ETR_Functions.AddItemsOfTypeAndKeywordToList(ETR_PersistentStorageList, ETR_ItemsStored, 32, None, ETR_ExcludeFromCellItems) - - ETR_ItemsFound.Revert() - ETR_Functions.AddItemsOfTypeAndKeywordToList(PlayerRef, ETR_ItemsFound, 26, None, ETR_ExcludeFromNew, false, false, false) - ETR_Functions.AddItemsOfTypeAndKeywordToList(PlayerRef, ETR_ItemsFound, 41, None, ETR_ExcludeFromNew, false, false, false) - ETR_Functions.AddItemsOfTypeAndKeywordToList(PlayerRef, ETR_ItemsFound, 27, None, ETR_ExcludeFromNew, false, false, false) - ETR_Functions.AddItemsOfTypeAndKeywordToList(PlayerRef, ETR_ItemsFound, 32, None, ETR_ExcludeFromNew, false, false, false) - - aFollowers = ETR_Functions.GetPlayerFollowers() - i = aFollowers.length - while i > 0 - i -= 1 - ETR_Functions.AddItemsOfTypeAndKeywordToList(aFollowers[i], ETR_ItemsFound, 26, None, ETR_ExcludeFromNew, false, false, false) - ETR_Functions.AddItemsOfTypeAndKeywordToList(aFollowers[i], ETR_ItemsFound, 41, None, ETR_ExcludeFromNew, false, false, false) - ETR_Functions.AddItemsOfTypeAndKeywordToList(aFollowers[i], ETR_ItemsFound, 27, None, ETR_ExcludeFromNew, false, false, false) - ETR_Functions.AddItemsOfTypeAndKeywordToList(aFollowers[i], ETR_ItemsFound, 32, None, ETR_ExcludeFromNew, false, false, false) + if bRescanPersistent + bRescanPersistent = false + Form[] aContainers = ETR_PersistentStorageList.ToArray() + int n = aContainers.length + while n > 0 + n -= 1 + ETR_Functions.AddArtifactsToList(aContainers[n], ETR_ItemsStored, ETR_ExcludeMisc, true) endwhile - - ETR_ItemsNew.Revert() - ETR_Functions.AddAllFormsToList(ETR_ItemsNew, 26, None, ETR_ExcludeFromNew) ; armor - ETR_Functions.AddAllFormsToList(ETR_ItemsNew, 41, None, ETR_ExcludeFromNew) ; weapons - ETR_Functions.AddAllFormsToList(ETR_ItemsNew, 27, None, ETR_ExcludeFromNew) ; books - ETR_Functions.AddAllFormsToList(ETR_ItemsNew, 32, None, ETR_ExcludeFromNew) ; misc items - - return - endif - if bUpdateFollowers - bUpdateFollowers = false - - Debug.Notification("Team changed, updating lists") - - ETR_ItemsFound.Revert() - ETR_Functions.AddItemsOfTypeAndKeywordToList(PlayerRef, ETR_ItemsFound, 26, None, ETR_ExcludeFromNew, false, false, false) - ETR_Functions.AddItemsOfTypeAndKeywordToList(PlayerRef, ETR_ItemsFound, 41, None, ETR_ExcludeFromNew, false, false, false) - ETR_Functions.AddItemsOfTypeAndKeywordToList(PlayerRef, ETR_ItemsFound, 27, None, ETR_ExcludeFromNew, false, false, false) - ETR_Functions.AddItemsOfTypeAndKeywordToList(PlayerRef, ETR_ItemsFound, 32, None, ETR_ExcludeFromNew, false, false, false) - - aFollowers = ETR_Functions.GetPlayerFollowers() - i = aFollowers.length - while i > 0 - i -= 1 - ETR_Functions.AddItemsOfTypeAndKeywordToList(aFollowers[i], ETR_ItemsFound, 26, None, ETR_ExcludeFromNew, false, false, false) - ETR_Functions.AddItemsOfTypeAndKeywordToList(aFollowers[i], ETR_ItemsFound, 41, None, ETR_ExcludeFromNew, false, false, false) - ETR_Functions.AddItemsOfTypeAndKeywordToList(aFollowers[i], ETR_ItemsFound, 27, None, ETR_ExcludeFromNew, false, false, false) - ETR_Functions.AddItemsOfTypeAndKeywordToList(aFollowers[i], ETR_ItemsFound, 32, None, ETR_ExcludeFromNew, false, false, false) - endwhile + ETR_ItemsFound.Revert() + ETR_Functions.AddArtifactsToList(PlayerRef, ETR_ItemsFound, ETR_ExcludeFromNew) - ETR_ItemsNew.Revert() - ETR_Functions.AddAllFormsToList(ETR_ItemsNew, 26, None, ETR_ExcludeFromNew) ; armor - ETR_Functions.AddAllFormsToList(ETR_ItemsNew, 41, None, ETR_ExcludeFromNew) ; weapons - ETR_Functions.AddAllFormsToList(ETR_ItemsNew, 27, None, ETR_ExcludeFromNew) ; books - ETR_Functions.AddAllFormsToList(ETR_ItemsNew, 32, None, ETR_ExcludeFromNew) ; misc items + Actor[] aFollowers = ETR_Functions.GetPlayerFollowers() + int i = aFollowers.length + while i > 0 + i -= 1 + ETR_Functions.AddArtifactsToList(aFollowers[i], ETR_ItemsFound, ETR_ExcludeFromNew) + endwhile - endif + bBusy = false EndEvent @@ -139,9 +123,23 @@ EndEvent event OnItemRemoved(Form akBaseItem, int aiItemCount, ObjectReference akItemReference, ObjectReference akDestContainer) if akDestContainer - bSyncStorage = bAtHome - bUpdateLists = true - RegisterForSingleUpdate(1.0) + if lastDestContainer != akDestContainer + lastDestContainer = akDestContainer + lastDestIsPersistent = ETR_PersistentStorageList.HasForm(akDestContainer) + endif + ; Moving items without latent functions should help with avoiding stack dumps + if lastDestIsPersistent + bRescanHome = false + bRescanPersistent = true + RegisterForSingleUpdate(0.5) + elseif bAtHome + bRescanHome = true + bRescanPersistent = false + RegisterForSingleUpdate(0.5) + elseif PlayerRef.GetItemCount(akBaseItem) == 0 && ETR_Functions.GetItemCountInActors(ETR_Functions.GetPlayerFollowers(), akBaseItem) == 0 + ETR_ItemsFound.RemoveAddedForm(akBaseItem) + ETR_ItemsNew.AddForm(akBaseItem) + endif elseif bAtHome && akItemReference ETR_ItemsFound.RemoveAddedForm(akBaseItem) ETR_ItemsStored.AddForm(akBaseItem) diff --git a/Source/Scripts/ETR_TrackNewItems.psc b/Source/Scripts/ETR_TrackNewItems.psc index 3e4a6a8..a9f7ae5 100644 --- a/Source/Scripts/ETR_TrackNewItems.psc +++ b/Source/Scripts/ETR_TrackNewItems.psc @@ -7,6 +7,8 @@ FormList Property ETR_ItemsFound Auto FormList Property ETR_ItemsStored Auto FormList Property ETR_ExcludeFromNew Auto FormList Property ETR_PersistentStorageList Auto +FormList Property ETR_ExcludeMisc Auto +FormList Property ETR_FoundAndStored Auto event OnInit() @@ -36,37 +38,32 @@ event OnPlayerLoadGame() ahzmorehudie.RegisterIconFormList("dbmDisp", ETR_ItemsStored) endif + If SKSE.GetPluginVersion("QuickLootRE") >= 292 + QuickLootRE.RegisterNewItemsList(ETR_ItemsNew) + QuickLootRE.RegisterDisplayedItemsList(ETR_ItemsStored) + QuickLootRE.RegisterFoundItemsList(ETR_ItemsFound) + endif + ; Rebuild all lists to avoid discrepancies, stale data, and broken records ETR_ItemsStored.Revert() - ETR_Functions.AddItemsOfTypeAndKeywordToList(ETR_PersistentStorageList, ETR_ItemsStored, 26, None, ETR_ExcludeFromNew) - ETR_Functions.AddItemsOfTypeAndKeywordToList(ETR_PersistentStorageList, ETR_ItemsStored, 41, None, ETR_ExcludeFromNew) - ETR_Functions.AddItemsOfTypeAndKeywordToList(ETR_PersistentStorageList, ETR_ItemsStored, 27, None, ETR_ExcludeFromNew) - ETR_Functions.AddItemsOfTypeAndKeywordToList(ETR_PersistentStorageList, ETR_ItemsStored, 32, None, ETR_ExcludeFromNew) + ETR_Functions.AddArtifactsToList(ETR_PersistentStorageList, ETR_ItemsStored, ETR_ExcludeMisc, true) ETR_ItemsFound.Revert() - ETR_Functions.AddItemsOfTypeAndKeywordToList(PlayerRef, ETR_ItemsFound, 26, None, ETR_ExcludeFromNew, false, false, false) - ETR_Functions.AddItemsOfTypeAndKeywordToList(PlayerRef, ETR_ItemsFound, 41, None, ETR_ExcludeFromNew, false, false, false) - ETR_Functions.AddItemsOfTypeAndKeywordToList(PlayerRef, ETR_ItemsFound, 27, None, ETR_ExcludeFromNew, false, false, false) - ETR_Functions.AddItemsOfTypeAndKeywordToList(PlayerRef, ETR_ItemsFound, 32, None, ETR_ExcludeFromNew, false, false, false) + ETR_Functions.AddArtifactsToList(PlayerRef, ETR_ItemsFound, ETR_ExcludeFromNew) Actor[] aFollowers = ETR_Functions.GetPlayerFollowers() int i = aFollowers.length while i > 0 i -= 1 - if ! aFollowers[i].IsDead() && ! aFollowers[i].IsDisabled() - ETR_Functions.AddItemsOfTypeAndKeywordToList(aFollowers[i], ETR_ItemsFound, 26, None, ETR_ExcludeFromNew, false, false, false) - ETR_Functions.AddItemsOfTypeAndKeywordToList(aFollowers[i], ETR_ItemsFound, 41, None, ETR_ExcludeFromNew, false, false, false) - ETR_Functions.AddItemsOfTypeAndKeywordToList(aFollowers[i], ETR_ItemsFound, 27, None, ETR_ExcludeFromNew, false, false, false) - ETR_Functions.AddItemsOfTypeAndKeywordToList(aFollowers[i], ETR_ItemsFound, 32, None, ETR_ExcludeFromNew, false, false, false) - endif + ETR_Functions.AddArtifactsToList(aFollowers[i], ETR_ItemsFound, ETR_ExcludeFromNew) endwhile ETR_ItemsNew.Revert() - ETR_Functions.AddAllFormsToList(ETR_ItemsNew, 26, None, ETR_ExcludeFromNew) ; armor - ETR_Functions.AddAllFormsToList(ETR_ItemsNew, 41, None, ETR_ExcludeFromNew) ; weapons - ETR_Functions.AddAllFormsToList(ETR_ItemsNew, 27, None, ETR_ExcludeFromNew) ; books - ETR_Functions.AddAllFormsToList(ETR_ItemsNew, 32, None, ETR_ExcludeFromNew) ; misc items + ETR_Functions.AddAllFormsToList(ETR_ItemsNew, 26, ETR_FoundAndStored) + ETR_Functions.AddAllFormsToList(ETR_ItemsNew, 27, ETR_FoundAndStored) + ETR_Functions.AddAllFormsToList(ETR_ItemsNew, 32, ETR_ExcludeFromNew) + ETR_Functions.AddAllFormsToList(ETR_ItemsNew, 41, ETR_FoundAndStored) endevent diff --git a/Source/Scripts/ETR_TrackStoredItems.psc b/Source/Scripts/ETR_TrackStoredItems.psc index cc0f79c..c090bb5 100644 --- a/Source/Scripts/ETR_TrackStoredItems.psc +++ b/Source/Scripts/ETR_TrackStoredItems.psc @@ -6,12 +6,22 @@ FormList Property ETR_ItemsNew Auto FormList Property ETR_ItemsFound Auto FormList Property ETR_ItemsStored Auto FormList Property ETR_PersistentStorageList Auto +FormList Property ETR_ExcludeFromNew Auto +FormList Property ETR_ExcludeMisc Auto Container Property ETR_CellStorageContainer Auto Keyword Property LocTypePlayerHouse Auto +bool bBusy = false bool bAtHome = false +bool bRescanHome = false +bool bRescanPersistent = false +ObjectReference lastDestContainer = None +bool lastDestIsPersistent = false +ObjectReference lastSourceContainer = None +bool lastSourceIsPersistent = false +int iUpdateCount event OnInit() @@ -21,69 +31,134 @@ endevent Event OnPlayerLoadGame() AddInventoryEventFilter(ETR_ItemsStored) + Location currentLocation = PlayerRef.GetCurrentLocation() + bAtHome = currentLocation && currentLocation.HasKeyword(LocTypePlayerHouse) + if bAtHome + GotoState("AtHome") + else + GotoState("") + endif EndEvent Event OnLocationChange(Location akOldLoc, Location akNewLoc) bAtHome = akNewLoc && akNewLoc.HasKeyword(LocTypePlayerHouse) + if bAtHome + GotoState("AtHome") + else + GotoState("") + endif endEvent -; The item is already registered as stored, and we just stored more -event OnItemRemoved(Form akBaseItem, int aiItemCount, ObjectReference akItemReference, ObjectReference akDestContainer) +Event OnMenuClose(String MenuName) + UnregisterForUpdate() + OnUpdate() +EndEvent + + +Event OnUpdate() - if ! bAtHome + if UI.IsMenuOpen("ContainerMenu") + RegisterForMenu("ContainerMenu") return endif - if akDestContainer + while bBusy + Debug.Notification("Stored OnUpdate is busy") + Utility.wait(0.5) + endwhile - if !(akDestContainer as Actor) - if ETR_PersistentStorageList.HasForm(akDestContainer) - return - endif - elseif (akDestContainer as Actor).IsPlayerTeammate() + bBusy = true + + iUpdateCount += 1 + Debug.Notification("Running Stored OnUpdate " + iUpdateCount) + + if bRescanHome + if lastSourceContainer && lastSourceContainer as Actor && (lastSourceContainer as Actor).IsPlayerTeammate() + lastSourceContainer = None return endif - + ObjectReference cellStorage = ETR_Functions.GetCellStorage(PlayerRef, ETR_PersistentStorageList, ETR_CellStorageContainer) + ETR_Functions.SyncCellStorage(cellStorage, ETR_ExcludeMisc) endif - if ((akDestContainer && akDestContainer.GetParentCell() == PlayerRef.GetParentCell()) || (! akDestContainer && ETR_Functions.HasRefInCell(akBaseItem, None, true, ETR_PersistentStorageList))) + if bRescanPersistent - ObjectReference cellStorage = ETR_Functions.GetCellStorage(PlayerRef, ETR_PersistentStorageList, ETR_CellStorageContainer) + ETR_ItemsStored.Revert() + Form[] aContainers = ETR_PersistentStorageList.ToArray() + int n = aContainers.length + while n > 0 + n -= 1 + ETR_Functions.AddArtifactsToList(aContainers[n], ETR_ItemsStored, ETR_ExcludeMisc, true) + endwhile - if cellStorage.GetItemCount(akBaseItem) == 0 - cellStorage.AddItem(akBaseItem, 1, true) - endif + ETR_ItemsFound.Revert() + ETR_Functions.AddArtifactsToList(PlayerRef, ETR_ItemsFound, ETR_ExcludeFromNew) + + Actor[] aFollowers = ETR_Functions.GetPlayerFollowers() + int i = aFollowers.length + while i > 0 + i -= 1 + ETR_Functions.AddArtifactsToList(aFollowers[i], ETR_ItemsFound, ETR_ExcludeFromNew) + endwhile endif -endevent + bBusy = false + +EndEvent -; We took a stored item, and we want to find out if it's the last stored item of its kind +; We acquired a stored item, and we want to find out if we just have taken the last stored item of its kind event OnItemAdded(Form akBaseItem, int aiItemCount, ObjectReference akItemReference, ObjectReference akSourceContainer) - if akSourceContainer && !(akSourceContainer as Actor) && ETR_PersistentStorageList.HasForm(akSourceContainer) - if ETR_Functions.GetItemCountInList(ETR_PersistentStorageList, akBaseItem) == 0 - ETR_ItemsStored.RemoveAddedForm(akBaseItem) - ETR_ItemsFound.AddForm(akBaseItem) + if akSourceContainer + if lastSourceContainer != akSourceContainer + lastSourceContainer = akSourceContainer + lastSourceIsPersistent = ETR_PersistentStorageList.HasForm(akSourceContainer) + endif + if bAtHome || lastSourceIsPersistent + bRescanHome = bAtHome + bRescanPersistent = true + RegisterForSingleUpdate(0.5) endif - elseif bAtHome ObjectReference cellStorage = ETR_Functions.GetCellStorage(PlayerRef, ETR_PersistentStorageList, ETR_CellStorageContainer) - int iCount = cellStorage.GetItemCount(akBaseItem) - - if iCount > 0 && ! ETR_Functions.HasRefInCell(akBaseItem, None, true, ETR_PersistentStorageList) - cellStorage.RemoveItem(akBaseItem, iCount, true) - + if cellStorage.GetItemCount(akBaseItem) + ETR_Functions.SyncCellStorage(cellStorage, ETR_ExcludeMisc) if ETR_Functions.GetItemCountInList(ETR_PersistentStorageList, akBaseItem) == 0 ETR_ItemsStored.RemoveAddedForm(akBaseItem) ETR_ItemsFound.AddForm(akBaseItem) endif - endif - endif endevent + + +state AtHome + + ; The item is already registered as stored, and we just stored more + event OnItemRemoved(Form akBaseItem, int aiItemCount, ObjectReference akItemReference, ObjectReference akDestContainer) + + if akDestContainer + if lastDestContainer != akDestContainer + lastDestContainer = akDestContainer + lastDestIsPersistent = ETR_PersistentStorageList.HasForm(akDestContainer) + endif + if ! lastDestIsPersistent + bRescanHome = true + bRescanPersistent = false + RegisterForSingleUpdate(0.5) + endif + elseif akItemReference + ObjectReference cellStorage = ETR_Functions.GetCellStorage(PlayerRef, ETR_PersistentStorageList, ETR_CellStorageContainer) + if cellStorage.GetItemCount(akBaseItem) == 0 + cellStorage.AddItem(akBaseItem, 1, true) + endif + endif + + endevent + +endstate