From 7b1820298d1d112e2effc0363906cff2c660c907 Mon Sep 17 00:00:00 2001 From: Patrick12115 <115201185+Patrick12115@users.noreply.github.com> Date: Sun, 30 Nov 2025 16:38:29 -0500 Subject: [PATCH] Block Syncing Items and Flags when playing Archi (#31) --- soh/soh/Network/Anchor/Menu.cpp | 16 ++++++++++++++++ soh/soh/Network/Archipelago/Archipelago.cpp | 2 ++ 2 files changed, 18 insertions(+) diff --git a/soh/soh/Network/Anchor/Menu.cpp b/soh/soh/Network/Anchor/Menu.cpp index 9c4530431..d0e74167c 100644 --- a/soh/soh/Network/Anchor/Menu.cpp +++ b/soh/soh/Network/Anchor/Menu.cpp @@ -126,6 +126,9 @@ void AnchorMainMenu(WidgetInfo& info) { ImGui::SeparatorText("Current Room"); ImGui::Text("%s Connected", ICON_FA_CHECK); + if (IS_ARCHIPELAGO) + ImGui::BeginDisabled(); + UIWidgets::PushStyleButton(THEME_COLOR); if (ImGui::Button("Request Team State")) { anchor->SendPacket_RequestTeamState(); @@ -133,6 +136,9 @@ void AnchorMainMenu(WidgetInfo& info) { UIWidgets::Tooltip("Try this if you are missing items or flags that your team members have collected"); UIWidgets::PopStyleButton(); + if (IS_ARCHIPELAGO) + ImGui::EndDisabled(); + ImGui::SameLine(); UIWidgets::WindowButton("Toggle Anchor Room Window", CVAR_WINDOW("AnchorRoom"), SohGui::mAnchorRoomWindow); @@ -186,10 +192,20 @@ void AnchorAdminMenu(WidgetInfo& info) { .Color(THEME_COLOR))) { anchor->SendPacket_UpdateRoomState(); } + + if (IS_ARCHIPELAGO) { + CVarSetInteger(CVAR_REMOTE_ANCHOR("RoomSettings.SyncItemsAndFlags"), 0); + ImGui::BeginDisabled(); + } + if (UIWidgets::CVarCheckbox("Sync Items & Flags", CVAR_REMOTE_ANCHOR("RoomSettings.SyncItemsAndFlags"), UIWidgets::CheckboxOptions().DefaultValue(true).Color(THEME_COLOR))) { anchor->SendPacket_UpdateRoomState(); } + + if (IS_ARCHIPELAGO) { + ImGui::EndDisabled(); + } } void AnchorInstructionsMenu(WidgetInfo& info) { diff --git a/soh/soh/Network/Archipelago/Archipelago.cpp b/soh/soh/Network/Archipelago/Archipelago.cpp index aa8e7d255..af4dfbe17 100644 --- a/soh/soh/Network/Archipelago/Archipelago.cpp +++ b/soh/soh/Network/Archipelago/Archipelago.cpp @@ -48,6 +48,8 @@ bool ArchipelagoClient::StartClient() { apClient.reset(); } + CVarSetInteger(CVAR_REMOTE_ANCHOR("RoomSettings.SyncItemsAndFlags"), 0); + disconnecting = false; retries = 0; uri = CVarGetString(CVAR_REMOTE_ARCHIPELAGO("ServerAddress"), "localhost:38281");