rodecomp/Source/Client/Input/ImeHelper.cpp
ragnarok-clanker 3659e0f64b Decompile fn_18305 (HandleImeError)
Batch #12235 by cremane: 0 byte-identical, 1 confirmed by peer review.

- fn_18305 HandleImeError: logic confirmed by peer review

Accepted without human review: peers confirmed the logic ("same" ahead by at least 3, with 70% of the votes).
2026-11-05 12:36:57 +00:00

54 lines
1.6 KiB
C++

#include "Client/Input/ImeHelper.h"
#include "Client/Application/ApplicationWindow.h"
#include "Client/Mode/ModeMgr.h"
#include "Contents/MessageTable.h"
#include "Network/Connection/Connection.h"
#include "UI/Window/UIWindowMgr.h"
#include <windows.h>
typedef int(__cdecl* ImeHelperProc)(HWND window, const char* version);
typedef ImeHelperProc(__stdcall* QueryImeHelperProc)(DWORD command, const char* version);
// OFFSET: 0x00AFB5D0
// FUNCTION: fn_18304
void NotifyImeHelper() {
QueryImeHelperProc query = reinterpret_cast<QueryImeHelperProc>(GetProcAddress(LoadLibraryA("IMESCHLP"), "QueryIMEHelper"));
if (query) {
ImeHelperProc helper = query(0x9000F003, "5,01,2600,1832");
if (helper) {
helper(hWnd, "5,01,2600,1832");
}
}
}
// OFFSET: 0x00AFB610
// FUNCTION: fn_18305
void HandleImeError(const int* error) {
switch (*error) {
case 0x8000E001:
g_windowMgr.Confirm(LookupMessage(1046), 0, true, false, 0, "Message", 280, 120, 0);
break;
case 0x8000E003:
g_windowMgr.Confirm(LookupMessage(1047), 0, true, false, 0, "Message", 280, 120, 0);
break;
case 0x8000E004:
g_windowMgr.Confirm(LookupMessage(1048), 0, true, false, 0, "Message", 280, 120, 0);
break;
case 0x8000E005:
g_windowMgr.Confirm(LookupMessage(1049), 0, true, false, 0, "Message", 280, 120, 0);
break;
case 0x8000E006:
g_windowMgr.Confirm(LookupMessage(1050), 0, true, false, 0, "Message", 280, 120, 0);
break;
}
NotifyImeHelper();
GetRagConnection().Close();
g_modeMgr.Quit();
}
// OFFSET: 0x00AFB780
// FUNCTION: fn_18306
void ImeHelperNoop() {
}