From 6bed0f5f8344cc502857bcd9ba125f7b625db44c Mon Sep 17 00:00:00 2001 From: superp00t Date: Wed, 16 Apr 2025 17:30:17 -0400 Subject: [PATCH] fix(glue): kill gotos in CGlueMgr::NetDisconnectHandler --- src/glue/CGlueMgr.cpp | 30 ++++++++++++++---------------- 1 file changed, 14 insertions(+), 16 deletions(-) diff --git a/src/glue/CGlueMgr.cpp b/src/glue/CGlueMgr.cpp index b4c6be5..25cd17b 100644 --- a/src/glue/CGlueMgr.cpp +++ b/src/glue/CGlueMgr.cpp @@ -266,25 +266,23 @@ int32_t CGlueMgr::NetDisconnectHandler(const void* eventData, void*) { if (v11) { ConsolePrintf("CGlueMgr::NetDisconnectHandler: Displaying script"); -LABEL_14: FrameScript_SignalEvent(2u, "%d", CGlueMgr::m_clientKickReason); - goto LABEL_15; + } else { + ConsolePrintf("CGlueMgr::NetDisconnectHandler: NOT displaying script"); + WOWCS_OPS op; + const char* msg; + int32_t result; + int32_t errorCode; + int32_t complete = ClientServices::Connection()->PollStatus(op, &msg, result, errorCode); + + if (!complete || result) { + ClientServices::SelectRealm(""); + FrameScript_SignalEvent(2u, "%d", CGlueMgr::m_clientKickReason); + } else { + FrameScript_SignalEvent(3u, "%s%s", "OKAY", msg); + } } - ConsolePrintf("CGlueMgr::NetDisconnectHandler: NOT displaying script"); - WOWCS_OPS op; - const char* msg; - int32_t result; - int32_t errorCode; - int32_t complete = ClientServices::Connection()->PollStatus(op, &msg, result, errorCode); - - if (!complete || result) { - ClientServices::SelectRealm(""); - goto LABEL_14; - } - FrameScript_SignalEvent(3u, "%s%s", "OKAY", msg); - -LABEL_15: ClientServices::LoginConnection()->Logoff(); return 1; }