1
Fork 0

Fixed crash when loading a save with missing plugins

master 1.0.7
Eddoursul 2 years ago
parent ae35ac9fbb
commit 654067f863
  1. BIN
      SKSE/Plugins/ArtifactTracker.dll
  2. 2
      Source/ArtifactTrackerDLL/CMakeLists.txt
  3. 11
      Source/ArtifactTrackerDLL/src/EventListener.cpp
  4. 16
      Source/ArtifactTrackerDLL/src/Main.cpp
  5. 2
      Source/ArtifactTrackerDLL/vcpkg.json

Binary file not shown.

@ -6,7 +6,7 @@ message("Using toolchain file ${CMAKE_TOOLCHAIN_FILE}.")
######################################################################################################################## ########################################################################################################################
project( project(
ArtifactTracker ArtifactTracker
VERSION 1.0.6 VERSION 1.0.7
DESCRIPTION "Artifact Tracker" DESCRIPTION "Artifact Tracker"
LANGUAGES CXX) LANGUAGES CXX)
set(CMAKE_CXX_STANDARD 23) set(CMAKE_CXX_STANDARD 23)

@ -65,11 +65,12 @@ auto EventListener::ProcessEvent(
RE::BSTEventSource<RE::TESCellFullyLoadedEvent>* a_eventSource) RE::BSTEventSource<RE::TESCellFullyLoadedEvent>* a_eventSource)
-> RE::BSEventNotifyControl -> RE::BSEventNotifyControl
{ {
#ifdef _DEBUG if (a_event->cell) {
SKSE::log::info("TESCellFullyLoadedEvent"); #ifdef _DEBUG
#endif SKSE::log::info("TESCellFullyLoadedEvent");
#endif
ArtifactTracker::OnCellEnter(a_event->cell->GetLocation(), a_event->cell); ArtifactTracker::OnCellEnter(a_event->cell->GetLocation(), a_event->cell);
}
return RE::BSEventNotifyControl::kContinue; return RE::BSEventNotifyControl::kContinue;
} }

@ -38,13 +38,15 @@ namespace {
} }
} else if (message->type == MessagingInterface::kPreLoadGame) { } else if (message->type == MessagingInterface::kPreLoadGame) {
ArtifactTracker::g_bSaveLoaded = false; // block cell load events ArtifactTracker::g_bSaveLoaded = false; // block cell load events
} else if (message->type == MessagingInterface::kPostLoadGame) { } else if (message->type == MessagingInterface::kPostLoadGame && message->data) {
SKSE::GetTaskInterface()->AddTask([]() { const auto cell = RE::PlayerCharacter::GetSingleton()->GetParentCell();
ArtifactTracker::OnGameLoad(); // save-specific updates if (cell) {
ArtifactTracker::g_bSaveLoaded = true; SKSE::GetTaskInterface()->AddTask([cell]() {
const auto cell = RE::PlayerCharacter::GetSingleton()->GetParentCell(); ArtifactTracker::OnGameLoad(); // save-specific updates
ArtifactTracker::OnCellEnter(cell->GetLocation(), cell); ArtifactTracker::g_bSaveLoaded = true;
}); ArtifactTracker::OnCellEnter(cell->GetLocation(), cell);
});
}
} }
}); });
} }

@ -1,7 +1,7 @@
{ {
"$schema": "https://raw.githubusercontent.com/microsoft/vcpkg/master/scripts/vcpkg.schema.json", "$schema": "https://raw.githubusercontent.com/microsoft/vcpkg/master/scripts/vcpkg.schema.json",
"name": "artifact-tracker", "name": "artifact-tracker",
"version-string": "1.0.6", "version-string": "1.0.7",
"port-version": 0, "port-version": 0,
"description": "Artifact Tracker", "description": "Artifact Tracker",
"homepage": "https://eddoursul.win/mods/artifact-tracker/", "homepage": "https://eddoursul.win/mods/artifact-tracker/",

Loading…
Cancel
Save