Some tweaks to WIP (#4706)

This commit is contained in:
Garrett Cox 2024-12-17 11:03:54 -06:00 committed by GitHub
parent d725125f9b
commit 69d6631bbc
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
8 changed files with 45 additions and 1 deletions

View File

@ -383,6 +383,15 @@ void Anchor::DrawMenu() {
ImGui::EndMenu(); ImGui::EndMenu();
} }
} }
if (ImGui::Button("Request Team State", ImVec2(ImGui::GetContentRegionAvail().x - 25.0f, 0.0f))) {
SendPacket_RequestTeamState();
}
ImGui::SameLine();
if (ImGui::Button(ICON_FA_TRASH)) {
SendPacket_ClearTeamState();
}
UIWidgets::Tooltip("Clear Team State");
} else { } else {
ImGui::Text("Connecting..."); ImGui::Text("Connecting...");
} }

View File

@ -133,6 +133,7 @@ class Anchor : public Network {
void SendJsonToRemote(nlohmann::json packet); void SendJsonToRemote(nlohmann::json packet);
bool IsSaveLoaded(); bool IsSaveLoaded();
void SendPacket_ClearTeamState();
void SendPacket_ConsumeAdultTradeItem(u8 itemId); void SendPacket_ConsumeAdultTradeItem(u8 itemId);
void SendPacket_DamagePlayer(u32 clientId, u8 damageEffect, u8 damage); void SendPacket_DamagePlayer(u32 clientId, u8 damageEffect, u8 damage);
void SendPacket_EntranceDiscovered(u16 entranceIndex); void SendPacket_EntranceDiscovered(u16 entranceIndex);

View File

@ -49,6 +49,8 @@ void AnchorRoomWindow::Draw() {
continue; continue;
} }
ImGui::PushID(clientId);
if (client.clientId == Anchor::Instance->roomState.ownerClientId) { if (client.clientId == Anchor::Instance->roomState.ownerClientId) {
ImGui::TextColored(ImVec4(1, 1, 0, 1), "%s", ICON_FA_GAVEL); ImGui::TextColored(ImVec4(1, 1, 0, 1), "%s", ICON_FA_GAVEL);
ImGui::SameLine(); ImGui::SameLine();
@ -58,6 +60,7 @@ void AnchorRoomWindow::Draw() {
ImGui::TextColored(ImVec4(0.8f, 1.0f, 0.8f, 1.0f), "%s", CVarGetString(CVAR_REMOTE_ANCHOR("Name"), "")); ImGui::TextColored(ImVec4(0.8f, 1.0f, 0.8f, 1.0f), "%s", CVarGetString(CVAR_REMOTE_ANCHOR("Name"), ""));
} else if (!client.online) { } else if (!client.online) {
ImGui::TextColored(ImVec4(1, 1, 1, 0.3f), "%s - offline", client.name.c_str()); ImGui::TextColored(ImVec4(1, 1, 1, 0.3f), "%s - offline", client.name.c_str());
ImGui::PopID();
continue; continue;
} else { } else {
ImGui::Text("%s", client.name.c_str()); ImGui::Text("%s", client.name.c_str());
@ -105,6 +108,7 @@ void AnchorRoomWindow::Draw() {
ImGui::EndTooltip(); ImGui::EndTooltip();
} }
} }
ImGui::PopID();
} }
} }

View File

@ -7,12 +7,14 @@
#include "soh/Enhancements/randomizer/randomizer_entrance.h" #include "soh/Enhancements/randomizer/randomizer_entrance.h"
#include "soh/OTRGlobals.h" #include "soh/OTRGlobals.h"
static bool isResultOfHandling = false;
/** /**
* ENTRANCE_DISCOVERED * ENTRANCE_DISCOVERED
*/ */
void Anchor::SendPacket_EntranceDiscovered(u16 entranceIndex) { void Anchor::SendPacket_EntranceDiscovered(u16 entranceIndex) {
if (!IsSaveLoaded()) { if (!IsSaveLoaded() || isResultOfHandling) {
return; return;
} }
@ -30,8 +32,10 @@ void Anchor::HandlePacket_EntranceDiscovered(nlohmann::json payload) {
return; return;
} }
isResultOfHandling = true;
u16 entranceIndex = payload["entranceIndex"].get<u16>(); u16 entranceIndex = payload["entranceIndex"].get<u16>();
Entrance_SetEntranceDiscovered(entranceIndex, 1); Entrance_SetEntranceDiscovered(entranceIndex, 1);
isResultOfHandling = false;
} }
#endif // ENABLE_REMOTE_CONTROL #endif // ENABLE_REMOTE_CONTROL

View File

@ -19,6 +19,10 @@
*/ */
void Anchor::SendPacket_RequestTeamState() { void Anchor::SendPacket_RequestTeamState() {
if (!IsSaveLoaded()) {
return;
}
nlohmann::json payload; nlohmann::json payload;
payload["type"] = REQUEST_TEAM_STATE; payload["type"] = REQUEST_TEAM_STATE;
payload["targetTeamId"] = CVarGetString(CVAR_REMOTE_ANCHOR("TeamId"), "default"); payload["targetTeamId"] = CVarGetString(CVAR_REMOTE_ANCHOR("TeamId"), "default");

View File

@ -13,6 +13,10 @@
*/ */
void Anchor::SendPacket_SetFlag(s16 sceneNum, s16 flagType, s16 flag) { void Anchor::SendPacket_SetFlag(s16 sceneNum, s16 flagType, s16 flag) {
if (!IsSaveLoaded()) {
return;
}
nlohmann::json payload; nlohmann::json payload;
payload["type"] = SET_FLAG; payload["type"] = SET_FLAG;
payload["targetTeamId"] = CVarGetString(CVAR_REMOTE_ANCHOR("TeamId"), "default"); payload["targetTeamId"] = CVarGetString(CVAR_REMOTE_ANCHOR("TeamId"), "default");

View File

@ -13,6 +13,10 @@
*/ */
void Anchor::SendPacket_UnsetFlag(s16 sceneNum, s16 flagType, s16 flag) { void Anchor::SendPacket_UnsetFlag(s16 sceneNum, s16 flagType, s16 flag) {
if (!IsSaveLoaded()) {
return;
}
nlohmann::json payload; nlohmann::json payload;
payload["type"] = UNSET_FLAG; payload["type"] = UNSET_FLAG;
payload["targetTeamId"] = CVarGetString(CVAR_REMOTE_ANCHOR("TeamId"), "default"); payload["targetTeamId"] = CVarGetString(CVAR_REMOTE_ANCHOR("TeamId"), "default");

View File

@ -105,6 +105,20 @@ void Anchor::SendPacket_UpdateTeamState() {
SendJsonToRemote(payload); SendJsonToRemote(payload);
} }
void Anchor::SendPacket_ClearTeamState() {
if (!IsSaveLoaded()) {
return;
}
json payload;
payload["type"] = UPDATE_TEAM_STATE;
payload["targetTeamId"] = CVarGetString(CVAR_REMOTE_ANCHOR("TeamId"), "default");
payload["queue"] = json::array();
payload["state"] = json::object();
SendJsonToRemote(payload);
}
void Anchor::HandlePacket_UpdateTeamState(nlohmann::json payload) { void Anchor::HandlePacket_UpdateTeamState(nlohmann::json payload) {
isHandlingUpdateTeamState = true; isHandlingUpdateTeamState = true;
// This can happen in between file select and the game starting, so we cant use this check, but we need to ensure we // This can happen in between file select and the game starting, so we cant use this check, but we need to ensure we