diff --git a/src/console/Handlers.cpp b/src/console/Handlers.cpp index 6bf03d5..b5e30d9 100644 --- a/src/console/Handlers.cpp +++ b/src/console/Handlers.cpp @@ -4,6 +4,7 @@ #include "console/Command.hpp" #include "console/Screen.hpp" #include "event/Event.hpp" +#include "storm/Unicode.hpp" #include static int32_t s_historyIndex = 0; @@ -11,24 +12,20 @@ static int32_t s_historyIndex = 0; namespace { int32_t OnChar(const EVENT_DATA_CHAR* data, void* param) { - char character[2]; + char character[8] = {}; if (ConsoleAccessGetEnabled() && EventIsKeyDown(ConsoleGetHotKey())) { return 0; } if (ConsoleGetActive()) { - character[0] = char(data->ch); - character[1] = 0; + SUniSPutUTF8(data->ch, character); PasteInInputLine(character); ResetHighlight(); return 0; } - // SUniSPutUTF8(data->ch, character); - - return 1; } diff --git a/src/glue/CGlueMgr.cpp b/src/glue/CGlueMgr.cpp index 1061cde..93a6bd3 100644 --- a/src/glue/CGlueMgr.cpp +++ b/src/glue/CGlueMgr.cpp @@ -366,46 +366,48 @@ void CGlueMgr::PollAccountLogin(int32_t errorCode, const char* msg, int32_t comp FrameScript_SignalEvent(4, "%s", msg); } - if (complete) { - if (result == 0) { - if (errorCode != 2) { + if (!complete) { + return; + } + + if (result == 0) { + if (errorCode != 2) { + // TODO + } + + CGlueMgr::m_idleState = IDLE_NONE; + CGlueMgr::m_showedDisconnect = 0; + + if (errorCode == 2) { + // TODO CGlueMgr::m_disconnectPending = 1; + // TODO ClientServices::Connection()->Disconnect(); + } + + if (errorCode != 13) { + // TODO CCharacterSelection::ClearCharacterList(); + + if (ClientServices::GetInstance()->m_realmList.Count()) { + FrameScript_SignalEvent(5, nullptr); + CRealmList::UpdateList(); + } else { // TODO } - CGlueMgr::m_idleState = IDLE_NONE; - CGlueMgr::m_showedDisconnect = 0; - - if (errorCode == 2) { - // TODO CGlueMgr::m_disconnectPending = 1; - // TODO ClientServices::Connection()->Disconnect(); - } - - if (errorCode != 13) { - // TODO CCharacterSelection::ClearCharacterList(); - - if (ClientServices::GetInstance()->m_realmList.Count()) { - FrameScript_SignalEvent(5, nullptr); - CRealmList::UpdateList(); - } else { - // TODO - } - - return; - } - - if (!SStrCmpI(CGlueMgr::m_currentScreen, "charselect", STORM_MAX_STR)) { - CGlueMgr::SetScreen("login"); - return; - } - return; } - if (op == COP_CONNECT) { - // TODO - + if (!SStrCmpI(CGlueMgr::m_currentScreen, "charselect", STORM_MAX_STR)) { + CGlueMgr::SetScreen("login"); return; } + + return; + } + + if (op == COP_CONNECT) { + // TODO + + return; } }