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