Handle Vault 109 quest handoff

When the local player leaves COVault109, the plugin now completes MQ101 and starts MQ102 at stage 10 on the game thread, with a log entry for confirmation. Updated the changelog and architecture/dev-log docs to reflect the new Vault 109 flow, and refreshed the compiled Creation Kit script artifact.
This commit is contained in:
2026-06-30 16:21:30 +12:00
parent 4ed671464e
commit 6fdc63c36d
5 changed files with 50 additions and 2 deletions
+14
View File
@@ -13,6 +13,7 @@
#include "RE/B/BIPED_OBJECT.h"
#include "RE/B/BipedAnim.h"
#include "RE/B/BSFixedString.h"
#include "RE/C/Console.h"
#include "RE/I/IAnimationGraphManagerHolder.h"
#include "RE/P/PipboyManager.h"
#include "RE/P/PipboyMenu.h"
@@ -647,6 +648,16 @@ namespace
}
}
void AdvanceMainQuestAfterVault109Exit()
{
RE::Console::ExecuteCommand("completequest MQ101");
RE::Console::ExecuteCommand("startquest MQ102");
RE::Console::ExecuteCommand("setstage MQ102 10");
LogInfoWithLocalPlayerPrefix(
"Player left COVault109; completed MQ101 (0001ED86) and started MQ102 (0001CC2A) at stage 10.");
}
void PollLocalPlayerTransform()
{
auto* player = TryGetLocalPlayer();
@@ -717,6 +728,9 @@ namespace
if (soloCellTransformSuppressed) {
LogInfoWithLocalPlayerPrefix("Local player left solo cell; transform packet sending resumed.");
if (hasLastTransform && lastKnownLocation.isSoloCell && !currentLocation.isSoloCell) {
AdvanceMainQuestAfterVault109Exit();
}
soloCellTransformSuppressed = false;
}