diff --git a/src/glue/CGlueMgr.cpp b/src/glue/CGlueMgr.cpp index 4ee83ff..c550217 100644 --- a/src/glue/CGlueMgr.cpp +++ b/src/glue/CGlueMgr.cpp @@ -773,6 +773,12 @@ void CGlueMgr::QuitGame() { ClientPostClose(0); } +void CGlueMgr::RealmListDialogCancelled() { + if (!SStrCmpI(CGlueMgr::m_currentScreen, "login")) { + ClientServices::LoginConnection()->Logoff(); + } +} + void CGlueMgr::Resume() { // TODO // CGlueMgr::m_disconnectPending = 0; diff --git a/src/glue/CGlueMgr.hpp b/src/glue/CGlueMgr.hpp index 255e2c5..10e1c17 100644 --- a/src/glue/CGlueMgr.hpp +++ b/src/glue/CGlueMgr.hpp @@ -76,6 +76,7 @@ class CGlueMgr { static void PollLoginServerLogin(); static void PollRealmList(const char* msg, int32_t complete, int32_t result, WOWCS_OPS op); static void QuitGame(); + static void RealmListDialogCancelled(); static void Resume(); static void SetCurrentAccount(const char* accountName); static void SetIdleState(GLUE_IDLE_STATE state); diff --git a/src/ui/ScriptFunctionsRealmList.cpp b/src/ui/ScriptFunctionsRealmList.cpp index 3c7f9e0..95a6dee 100644 --- a/src/ui/ScriptFunctionsRealmList.cpp +++ b/src/ui/ScriptFunctionsRealmList.cpp @@ -324,7 +324,9 @@ int32_t Script_GetSelectedCategory(lua_State* L) { } int32_t Script_RealmListDialogCancelled(lua_State* L) { - WHOA_UNIMPLEMENTED(0); + CGlueMgr::RealmListDialogCancelled(); + + return 0; } int32_t Script_IsInvalidTournamentRealmCategory(lua_State* L) {