rodecomp/Source/UI/Window/UIRebirthWnd.cpp
ragnarok-clanker 1bdff46c64 Decompile 2 functions in Source/UI/Window/UIPartyBookingHelpWnd.cpp, Source/UI/Window/UIPartyBookingHelpWnd.h, ...
Batch #6267 by eAthena: 0 byte-identical, 2 confirmed by peer review.

- fn_12645 UIPartyBookingHelpWnd::Slot15: logic confirmed by peer review
- fn_12647 UIRebirthWnd::Slot15: logic confirmed by peer review

Peer-reviewed-by: ragnarok-clanker, alisonrag, System4z
Accepted without human review: peers confirmed the logic ("same" ahead by at least 3, with 70% of the votes).
2026-10-30 21:13:16 +00:00

70 lines
2.1 KiB
C++

#include "UI/Window/UIRebirthWnd.h"
#include "Client/Mode/ModeMgr.h"
#include "UI/Buttons/UIBitmapButton.h"
#include "UI/Window/UIWindowMgr.h"
#include <windows.h>
#include <string>
// OFFSET: 0x00924A60
// FUNCTION: fn_12647
void UIRebirthWnd::Slot15(int width, int height) {
const std::string path = "유저인터페이스\\";
const char* const names[5][5] = {
{"esc_05a", "esc_05b", "esc_05c"},
{"esc_04a", "esc_04b", "esc_04c"},
{"esc_01a", "esc_01b", "esc_01c"},
{"esc_03a", "esc_03b", "esc_03c"},
{"esc_02a", "esc_02b", "esc_02c"},
};
const int ids[5] = {353, 220, 252, 251, 185};
const RECT positions[5] = {{29, 22}, {29, 45}, {29, 68}, {29, 91}, {29, 119}};
for (int index = 0; index < 5; ++index) {
UIBitmapButton* button = new UIBitmapButton(*this->m_context, *this->m_controls);
button->SetBitmap((path + names[index][0] + ".bmp").c_str(), 0, 0);
button->SetBitmap((path + names[index][1] + ".bmp").c_str(), 1, 0);
button->SetBitmap((path + names[index][2] + ".bmp").c_str(), 2, 0);
button->SetSize(button->BitmapWidth(), button->BitmapHeight());
button->Move(positions[index].left, positions[index].top);
button->SetId(ids[index]);
this->AddChild(button);
}
this->m_message0 = 252;
}
// OFFSET: 0x00938E30
// FUNCTION: fn_12753
int UIRebirthWnd::SendMsg(UIWindow* sender, int message, std::intptr_t argument1, std::intptr_t argument2, std::intptr_t argument3, std::intptr_t argument4) {
CMode* mode = g_modeMgr.GetGameMode();
if (message != 6) {
return UIFrameWnd::SendMsg(sender, message, argument1, argument2, argument3, argument4);
}
switch (argument1) {
case 185:
g_windowMgr.CloseWindow(129);
break;
case 220:
mode->SendMsg(25, 0, 0, 0, 0);
g_windowMgr.CloseWindow(129);
break;
case 251:
g_windowMgr.CloseWindow(129);
mode->SendMsg(88, 0, 0, 0, 0);
break;
case 252:
mode->SendMsg(25, 1, 0, 0, 0);
g_windowMgr.CloseWindow(129);
g_windowMgr.CloseWindow(269);
break;
case 353:
mode->SendMsg(250, 0, 0, 0, 0);
g_windowMgr.CloseWindow(129);
break;
}
return 0;
}