From ea875d859c72c1fd3f55988c09c39f21d83cb41c Mon Sep 17 00:00:00 2001 From: Aaron Kimbrell Date: Fri, 2 Oct 2026 10:50:25 -0500 Subject: [PATCH] docs(quickbuild): the level's activityID wins as the client resolves it LWOActivityComponent::Startup (0x00d006b0) sets actIDovrd, when the level leaves it out, to whether the level has an activityID, so LWOQuickBuildComponent::LoadDataFromTemplate (0x00cbb2e0) keeps the level's activityID; the template's is read only for an explicit actIDovrd=0. Every quickbuild with actIDovrd=0 in the levels has the template's activityID as its level one. Comment only. Co-Authored-By: Claude Opus 5.5 --- dGame/dComponents/Activity/QuickBuildComponent.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/dGame/dComponents/Activity/QuickBuildComponent.cpp b/dGame/dComponents/Activity/QuickBuildComponent.cpp index c30f99208..b4bba0e0f 100644 --- a/dGame/dComponents/Activity/QuickBuildComponent.cpp +++ b/dGame/dComponents/Activity/QuickBuildComponent.cpp @@ -90,9 +90,11 @@ void QuickBuildComponent::LoadConfigData() { if (rebuildResetTime != 0.0f) SetResetTime(rebuildResetTime); // The level's activityID replaces the template's. The client (LWOQuickBuildComponent::LoadDataFromTemplate) - // reads RebuildComponent.activityID over it unless the level sets actIDovrd, but live used the level's: - // the AM Center draw bridge (LOT 12047: level activityID 12047 without actIDovrd, template activity 6, - // the quickbuild rewards) dropped no loot in 4 of 4 live completions. + // reads RebuildComponent.activityID over it only when actIDovrd is false, and actIDovrd left out means "the level + // has an activityID" (LWOActivityComponent::Startup), so the level's wins, as live: the AM Center draw bridge + // (LOT 12047: level activityID 12047 without actIDovrd, template activity 6, the quickbuild rewards) dropped no + // loot in 4 of 4 live completions. Every quickbuild the levels set actIDovrd=0 on has the template's activityID + // as its level activityID, so not reading actIDovrd changes nothing. const auto activityID = m_Parent->GetVar(u"activityID"); if (activityID > 0) { SetActivityId(activityID);