diff --git a/soh/soh/Network/Archipelago/Archipelago.cpp b/soh/soh/Network/Archipelago/Archipelago.cpp index 7d188f0cb..810ce6afb 100644 --- a/soh/soh/Network/Archipelago/Archipelago.cpp +++ b/soh/soh/Network/Archipelago/Archipelago.cpp @@ -183,3 +183,36 @@ const std::map& ArchipelagoClient::get_slot_data() { const std::vector& ArchipelagoClient::get_scouted_items() { return scouted_items; } + +const char* ArchipelagoClient::get_connection_status() { + if (!apclient) { + return "No status available"; + } + + APClient::State clientStatus = apclient->get_state(); + + switch (clientStatus) { + case APClient::State::DISCONNECTED: { + return "Disconnected!"; + break; + } + case APClient::State::SOCKET_CONNECTING: { + return "Socket Connecting!"; + break; + } + case APClient::State::SOCKET_CONNECTED: { + return "Socket Connected!"; + break; + } + case APClient::State::ROOM_INFO: { + return "Room info Recieved!"; + break; + } + case APClient::State::SLOT_CONNECTED: { + return "Slot Connected!"; + break; + } + default: + return "Unknown Status"; + } +} diff --git a/soh/soh/Network/Archipelago/Archipelago.h b/soh/soh/Network/Archipelago/Archipelago.h index 6e9632e4d..948b9488e 100644 --- a/soh/soh/Network/Archipelago/Archipelago.h +++ b/soh/soh/Network/Archipelago/Archipelago.h @@ -41,6 +41,7 @@ class ArchipelagoClient{ char* get_server_address_buff(); char* get_slot_name_buff(); char* get_password_buff(); + const char* get_connection_status(); const std::map& get_slot_data(); const std::vector& get_scouted_items(); diff --git a/soh/soh/Network/Archipelago/ArchipelagoSettingsWindow.cpp b/soh/soh/Network/Archipelago/ArchipelagoSettingsWindow.cpp index 28c611d79..fc8dd420d 100644 --- a/soh/soh/Network/Archipelago/ArchipelagoSettingsWindow.cpp +++ b/soh/soh/Network/Archipelago/ArchipelagoSettingsWindow.cpp @@ -1,7 +1,6 @@ #include "ArchipelagoSettingsWindow.h" #include "Archipelago.h" -#include #include "soh/SohGui/UIWidgets.hpp" #include "soh/SohGui/SohGui.hpp" @@ -19,36 +18,7 @@ void ArchipelagoSettingsWindow::DrawElement() { } ImGui::SameLine(); - ImGui::Text(connected_text); - - APClient::State con_state = APClient::State::DISCONNECTED; - - if (AP_client.apclient) { - con_state = AP_client.apclient->get_state(); - } - - switch (con_state) { - case APClient::State::DISCONNECTED: { - strncpy(connected_text, "Disconnected!", 25); - break; - } - case APClient::State::SOCKET_CONNECTING: { - strncpy(connected_text, "Socket Connecting!", 25); - break; - } - case APClient::State::SOCKET_CONNECTED: { - strncpy(connected_text, "Socket Connected!", 25); - break; - } - case APClient::State::ROOM_INFO: { - strncpy(connected_text, "Room info Recieved!", 25); - break; - } - case APClient::State::SLOT_CONNECTED: { - strncpy(connected_text, "Slot Connected!", 25); - break; - } - }; + ImGui::Text(ArchipelagoClient::getInstance().get_connection_status()); if (ImGui::Button("scout")) { AP_client.start_location_scouts(); diff --git a/soh/soh/SohGui/SohGui.cpp b/soh/soh/SohGui/SohGui.cpp index 06c9288b2..b152c43a3 100644 --- a/soh/soh/SohGui/SohGui.cpp +++ b/soh/soh/SohGui/SohGui.cpp @@ -196,8 +196,8 @@ void SetupGuiElements() { mPlandomizerWindow = std::make_shared(CVAR_WINDOW("PlandomizerEditor"), "Plandomizer Editor", ImVec2(850, 760)); gui->AddGuiWindow(mPlandomizerWindow); - mArchipelagoSettingsWindow = - std::make_shared(CVAR_WINDOW("ArchipelagoSettingsWindow"), "Archipelago", ImVec2(850, 760)); + mArchipelagoSettingsWindow = std::make_shared(CVAR_WINDOW("ArchipelagoSettingsWindow"), + "Archipelago Settings", ImVec2(850, 760)); gui->AddGuiWindow(mArchipelagoSettingsWindow); mModalWindow = std::make_shared(CVAR_WINDOW("ModalWindow"), "Modal Window"); gui->AddGuiWindow(mModalWindow); diff --git a/soh/soh/SohGui/SohMenuRandomizer.cpp b/soh/soh/SohGui/SohMenuRandomizer.cpp index 8c1d13f8b..bad83a7ee 100644 --- a/soh/soh/SohGui/SohMenuRandomizer.cpp +++ b/soh/soh/SohGui/SohMenuRandomizer.cpp @@ -104,7 +104,7 @@ void SohMenu::AddMenuRandomizer() { path.sidebarName = "Archipelago"; AddSidebarEntry("Randomizer", path.sidebarName, 1); AddWidget(path, "Popout Archipelago Settings Window", WIDGET_WINDOW_BUTTON) - .CVar(CVAR_WINDOW("ArchipelagoSettingsWindow")) + .CVar(CVAR_WINDOW("ArchipelagoSettings")) .RaceDisable(false) .WindowName("Archipelago Settings") .Options(WindowButtonOptions().Tooltip("Enables the Archipelago Settings Window."));