Change input fields to cvars
This commit is contained in:
@@ -20,8 +20,6 @@ ArchipelagoClient::ArchipelagoClient() {
|
||||
|
||||
namespace apc = AP_Client_consts;
|
||||
CVarSetInteger("ArchipelagoConnected", 0);
|
||||
strncpy(serverAddress, CVarGetString(apc::SETTING_ADDRESS, apc::DEFAULT_SERVER_NAME), apc::MAX_ADDRESS_LENGTH);
|
||||
strncpy(slotName, CVarGetString(apc::SETTING_NAME, ""), apc::MAX_PLAYER_NAME_LENGHT);
|
||||
|
||||
// call poll every frame
|
||||
GameInteractor::Instance->RegisterGameHook<GameInteractor::OnGameFrameUpdate>([](){ArchipelagoClient::GetInstance().Poll();});
|
||||
@@ -37,12 +35,15 @@ bool ArchipelagoClient::StartClient() {
|
||||
apClient.reset();
|
||||
}
|
||||
|
||||
apClient = std::unique_ptr<APClient>(new APClient(uuid, AP_Client_consts::AP_GAME_NAME, serverAddress));
|
||||
apClient = std::unique_ptr<APClient>(
|
||||
new APClient(uuid, AP_Client_consts::AP_GAME_NAME, CVarGetString(CVAR_REMOTE_ARCHIPELAGO("ServerAddress"), "localhost:38281")));
|
||||
|
||||
apClient->set_room_info_handler([&]() {
|
||||
std::list<std::string> tags;
|
||||
// tags.push_back("DeathLink"); // todo, implement deathlink
|
||||
apClient->ConnectSlot(slotName, password, 0b001, tags);
|
||||
apClient->ConnectSlot(CVarGetString(CVAR_REMOTE_ARCHIPELAGO("SlotName"), ""),
|
||||
CVarGetString(CVAR_REMOTE_ARCHIPELAGO("Password"), ""),
|
||||
0b001, tags);
|
||||
});
|
||||
|
||||
apClient->set_items_received_handler([&](const std::list<APClient::NetworkItem>& items) {
|
||||
@@ -76,7 +77,6 @@ bool ArchipelagoClient::StartClient() {
|
||||
// todo implement me
|
||||
});
|
||||
|
||||
SaveData();
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -93,11 +93,6 @@ void ArchipelagoClient::StartLocationScouts() {
|
||||
apClient->LocationScouts(location_list);
|
||||
}
|
||||
|
||||
void ArchipelagoClient::SaveData() {
|
||||
CVarSetString(AP_Client_consts::SETTING_ADDRESS, serverAddress);
|
||||
CVarSetString(AP_Client_consts::SETTING_NAME, slotName);
|
||||
}
|
||||
|
||||
bool ArchipelagoClient::IsConnected() {
|
||||
return apClient->get_state() == APClient::State::SLOT_CONNECTED;
|
||||
}
|
||||
@@ -169,16 +164,6 @@ const std::string& ArchipelagoClient::GetSlotName() const {
|
||||
return apClient->get_slot();
|
||||
}
|
||||
|
||||
char* ArchipelagoClient::GetServerAddressBuffer() {
|
||||
return serverAddress;
|
||||
}
|
||||
char* ArchipelagoClient::GetSlotNameBuffer() {
|
||||
return slotName;
|
||||
}
|
||||
char* ArchipelagoClient::GetPasswordBuffer() {
|
||||
return password;
|
||||
}
|
||||
|
||||
const std::map<std::string, int>& ArchipelagoClient::GetSlotData() {
|
||||
return slotData;
|
||||
}
|
||||
|
||||
@@ -10,12 +10,8 @@ namespace AP_Client_consts {
|
||||
static constexpr int MAX_ADDRESS_LENGTH = 64;
|
||||
static constexpr int MAX_PLAYER_NAME_LENGHT = 17;
|
||||
static constexpr int MAX_PASSWORD_LENGTH = 32;
|
||||
static constexpr char const* DEFAULT_SERVER_NAME = "archipelago.gg:<port number>";
|
||||
|
||||
static constexpr char const* SETTING_ADDRESS = "AP_server_address";
|
||||
static constexpr char const* SETTING_NAME = "AP_slot_name";
|
||||
|
||||
static constexpr char const* AP_GAME_NAME = "Ocarina of Time (SoH)";
|
||||
static constexpr char const* AP_GAME_NAME = "Ship of Harkinian";
|
||||
}
|
||||
|
||||
class ArchipelagoClient{
|
||||
@@ -38,9 +34,6 @@ class ArchipelagoClient{
|
||||
// getters
|
||||
const std::string& GetSlotName() const;
|
||||
|
||||
char* GetServerAddressBuffer();
|
||||
char* GetSlotNameBuffer();
|
||||
char* GetPasswordBuffer();
|
||||
const char* GetConnectionStatus();
|
||||
const std::map<std::string, int>& GetSlotData();
|
||||
const std::vector<ApItem>& GetScoutedItems();
|
||||
@@ -72,17 +65,11 @@ class ArchipelagoClient{
|
||||
static std::shared_ptr<ArchipelagoClient> instance; // is this even used?
|
||||
static bool initialized;
|
||||
|
||||
char serverAddress[AP_Client_consts::MAX_ADDRESS_LENGTH];
|
||||
char slotName[AP_Client_consts::MAX_PLAYER_NAME_LENGHT];
|
||||
char password[AP_Client_consts::MAX_PLAYER_NAME_LENGHT];
|
||||
|
||||
bool game_won;
|
||||
|
||||
std::map<std::string, int> slotData;
|
||||
std::set<int64_t> locations;
|
||||
std::vector<ApItem> scoutedItems;
|
||||
|
||||
void SaveData();
|
||||
|
||||
// callback functions
|
||||
void OnConnected();
|
||||
|
||||
@@ -9,7 +9,7 @@ bool autoScroll = true;
|
||||
|
||||
using namespace UIWidgets;
|
||||
|
||||
void ArchipelagoConsole_SendMessage(const char* fmt, ...) IM_FMTARGS(2) {
|
||||
void ArchipelagoConsole_SendMessage(const char* fmt, ...) {
|
||||
char buf[1024];
|
||||
va_list args;
|
||||
va_start(args, fmt);
|
||||
|
||||
@@ -14,13 +14,25 @@ void ArchipelagoSettingsWindow::DrawElement() {
|
||||
ImGui::PushStyleColor(ImGuiCol_Border, UIWidgets::ColorValues.at(THEME_COLOR));
|
||||
|
||||
ImGui::Text("Server Address");
|
||||
ImGui::InputText("##serveraddress", AP_client.GetServerAddressBuffer(), AP_Client_consts::MAX_ADDRESS_LENGTH);
|
||||
UIWidgets::CVarInputString("##ArchipelagoServerAddress", CVAR_REMOTE_ARCHIPELAGO("ServerAddress"),
|
||||
UIWidgets::InputOptions()
|
||||
.Color(THEME_COLOR)
|
||||
.PlaceholderText("archipelago.gg:38281")
|
||||
.DefaultValue("archipelago.gg:38281")
|
||||
.Size(ImVec2(ImGui::GetFontSize() * 15, 0))
|
||||
.LabelPosition(UIWidgets::LabelPositions::None));
|
||||
ImGui::Text("Slot Name");
|
||||
ImGui::InputText("##slotname", AP_client.GetSlotNameBuffer(), AP_Client_consts::MAX_PLAYER_NAME_LENGHT);
|
||||
UIWidgets::CVarInputString("##ArchipelagoSlotName", CVAR_REMOTE_ARCHIPELAGO("SlotName"),
|
||||
UIWidgets::InputOptions()
|
||||
.Color(THEME_COLOR)
|
||||
.Size(ImVec2(ImGui::GetFontSize() * 15, 0))
|
||||
.LabelPosition(UIWidgets::LabelPositions::None));
|
||||
ImGui::Text("Password (leave blank for no password)");
|
||||
ImGui::InputText("##password", AP_client.GetPasswordBuffer(),
|
||||
AP_Client_consts::MAX_PASSWORD_LENGTH, ImGuiInputTextFlags_Password);
|
||||
|
||||
UIWidgets::CVarInputString("##ArchipelagoPassword", CVAR_REMOTE_ARCHIPELAGO("Password"),
|
||||
UIWidgets::InputOptions()
|
||||
.Color(THEME_COLOR)
|
||||
.Size(ImVec2(ImGui::GetFontSize() * 15, 0))
|
||||
.LabelPosition(UIWidgets::LabelPositions::None));
|
||||
ImGui::PopStyleColor();
|
||||
UIWidgets::PopStyleCombobox();
|
||||
|
||||
@@ -46,4 +58,4 @@ void ArchipelagoSettingsWindow::DrawElement() {
|
||||
ArchipelagoClient::GetInstance().OnItemReceived(66077, true);
|
||||
}
|
||||
|
||||
};
|
||||
};
|
||||
|
||||
@@ -15,5 +15,6 @@
|
||||
#define CVAR_REMOTE(var) CVAR_PREFIX_REMOTE "." var
|
||||
#define CVAR_REMOTE_CROWD_CONTROL(var) CVAR_REMOTE("CrowdControl." var)
|
||||
#define CVAR_REMOTE_SAIL(var) CVAR_REMOTE("Sail." var)
|
||||
#define CVAR_REMOTE_ARCHIPELAGO(var) CVAR_REMOTE("Archipelago." var)
|
||||
#define CVAR_GAMEPLAY_STATS(var) CVAR_PREFIX_GAMEPLAY_STATS "." var
|
||||
#define CVAR_TIME_DISPLAY(var) CVAR_PREFIX_TIME_DISPLAY "." var
|
||||
Reference in New Issue
Block a user