|
|
|
@ -627,10 +627,14 @@ namespace ArtifactTracker |
|
|
|
|
g_listStored->AddForm(form); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
} else if (a_event->oldContainer == 0x14 && !g_listStored->HasForm(form) && !GetItemCount(RE::PlayerCharacter::GetSingleton(), form) && !FollowersHaveItem(form)) { |
|
|
|
|
// disposed by player
|
|
|
|
|
ListRemoveItem(g_listFound, form); |
|
|
|
|
g_listNew->AddForm(form); |
|
|
|
|
} else if (a_event->oldContainer == 0x14 && !g_listStored->HasForm(form)) { |
|
|
|
|
SKSE::GetTaskInterface()->AddTask([form]() { |
|
|
|
|
if (!GetItemCount(RE::PlayerCharacter::GetSingleton(), form) && !FollowersHaveItem(form)) { |
|
|
|
|
// disposed by player
|
|
|
|
|
ListRemoveItem(g_listFound, form); |
|
|
|
|
g_listNew->AddForm(form); |
|
|
|
|
} |
|
|
|
|
}); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
@ -664,14 +668,18 @@ namespace ArtifactTracker |
|
|
|
|
} else if (a_event->oldContainer == 0x14) { // dropped, consumed, dismantled, removed by script
|
|
|
|
|
|
|
|
|
|
if (!g_listStored->HasForm(form)) { |
|
|
|
|
if (!GetItemCount(RE::PlayerCharacter::GetSingleton(), form) && !FollowersHaveItem(form)) { |
|
|
|
|
ListRemoveItem(g_listFound, form); |
|
|
|
|
g_listNew->AddForm(form); |
|
|
|
|
// Seems like OnContainerChanged runs concurrently with updating ContainerChanges.
|
|
|
|
|
// In small modlists ContainerChanges may not be propagated yet in this event, so we need to schedule GetItemCount.
|
|
|
|
|
SKSE::GetTaskInterface()->AddTask([form]() { |
|
|
|
|
if (!GetItemCount(RE::PlayerCharacter::GetSingleton(), form) && !FollowersHaveItem(form)) { |
|
|
|
|
ListRemoveItem(g_listFound, form); |
|
|
|
|
g_listNew->AddForm(form); |
|
|
|
|
|
|
|
|
|
} else if (!g_listFound->HasForm(form)) { |
|
|
|
|
ListRemoveItem(g_listNew, form); |
|
|
|
|
g_listFound->AddForm(form); |
|
|
|
|
} |
|
|
|
|
} else if (!g_listFound->HasForm(form)) { |
|
|
|
|
ListRemoveItem(g_listNew, form); |
|
|
|
|
g_listFound->AddForm(form); |
|
|
|
|
} |
|
|
|
|
}); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
} else if (g_cellStorage && g_cellStorage->formID == a_event->oldContainer) { |
|
|
|
|