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) {