From 26f2255f53a2b94b2d0c319bb07ca4496c50ba7e Mon Sep 17 00:00:00 2001 From: Tristan 'Natrist' Cormier Date: Wed, 8 Oct 2025 22:29:51 -0400 Subject: [PATCH] feat(ui): implement Script_CancelRealmListQuery (#109) Co-authored-by: fallenoak --- src/glue/CGlueMgr.cpp | 10 ++++++++++ src/glue/CGlueMgr.hpp | 1 + src/ui/ScriptFunctionsRealmList.cpp | 4 +++- 3 files changed, 14 insertions(+), 1 deletion(-) diff --git a/src/glue/CGlueMgr.cpp b/src/glue/CGlueMgr.cpp index 072c75c..2f769f7 100644 --- a/src/glue/CGlueMgr.cpp +++ b/src/glue/CGlueMgr.cpp @@ -89,6 +89,16 @@ float CalculateAspectRatio() { return static_cast(width) / static_cast(height); } +void CGlueMgr::CancelRealmListQuery() { + if (CGlueMgr::m_idleState != IDLE_REALM_LIST) { + return; + } + + ClientServices::Connection()->Cancel(2); + + CGlueMgr::SetIdleState(IDLE_NONE); +} + void CGlueMgr::ChangeRealm(const REALM_INFO* realmInfo) { if (!realmInfo) { return; diff --git a/src/glue/CGlueMgr.hpp b/src/glue/CGlueMgr.hpp index 669ca20..2827be2 100644 --- a/src/glue/CGlueMgr.hpp +++ b/src/glue/CGlueMgr.hpp @@ -58,6 +58,7 @@ class CGlueMgr { static int32_t m_suspended; // Static functions + static void CancelRealmListQuery(); static void ChangeRealm(const REALM_INFO* realmInfo); static void DisplayLoginStatus(); static void EnterWorld(); diff --git a/src/ui/ScriptFunctionsRealmList.cpp b/src/ui/ScriptFunctionsRealmList.cpp index aba4013..0feaa82 100644 --- a/src/ui/ScriptFunctionsRealmList.cpp +++ b/src/ui/ScriptFunctionsRealmList.cpp @@ -19,7 +19,9 @@ int32_t Script_RealmListUpdateRate(lua_State* L) { } int32_t Script_CancelRealmListQuery(lua_State* L) { - WHOA_UNIMPLEMENTED(0); + CGlueMgr::CancelRealmListQuery(); + + return 0; } int32_t Script_GetNumRealms(lua_State* L) {