rodecomp/Source/UI/EntryQueue/UIEntryQueueWnd.h
ragnarok-clanker 4a9a463610 Decompile fn_19711 (UIEntryQueueWnd::SelectQueue)
Batch #5636 by kyoshi: 0 byte-identical, 1 confirmed by peer review.

- fn_19711 UIEntryQueueWnd::SelectQueue: logic confirmed by peer review

Peer-reviewed-by: ragnarok-clanker, Yommy, Snow
Accepted without human review: peers confirmed the logic ("same" ahead by at least 3, with 70% of the votes).
2026-10-30 14:18:59 +00:00

117 lines
3.3 KiB
C++

#ifndef RAGNAROK_SOURCE_UI_ENTRYQUEUE_UIENTRYQUEUEWND_H
#define RAGNAROK_SOURCE_UI_ENTRYQUEUE_UIENTRYQUEUEWND_H
#include "Contents/UserData/NormalItemSlots.h"
#include "UI/Lists/UIListBox.h"
#include "UI/Window/UIFrameWnd.h"
#include <cstddef>
#include <cstdint>
#include <map>
#include <string>
class UIBitmapButton;
class UIStaticText;
struct EntryQueueInfo;
class UITextViewer;
struct UITextViewerContext;
struct WindowResponseRecorder;
struct UIEntryQueueContext {
UITextViewerContext& text;
WindowResponseRecorder& recorder;
};
class UIEntryQueueHelpWnd : public UIFrameWnd {
public:
void Slot18() override;
void Slot19() override;
void Paint() override;
int SendMsg(UIWindow* sender, int message, std::intptr_t a, std::intptr_t b, std::intptr_t c, std::intptr_t d) override;
protected:
UIEntryQueueContext* m_entryQueue;
};
class UIEntryQueueListBox : public UIListBox {
public:
UIEntryQueueListBox(UIWindowContext& windows, UIListBoxContext& list);
~UIEntryQueueListBox() override;
void Slot31(int x, int y) override;
virtual void AddEntry(const char* name, int value);
virtual int EntryValue(int index);
/* 00D4 */ std::map<std::string, int> m_entries;
};
class UIEntryQueueRequestWnd : public UIFrameWnd {
public:
~UIEntryQueueRequestWnd() override;
void Slot18() override;
void Slot19() override;
void Paint() override;
int SendMsg(UIWindow* sender, int message, std::intptr_t a, std::intptr_t b, std::intptr_t c, std::intptr_t d) override;
bool Create();
protected:
UIEntryQueueContext* m_entryQueue;
public:
/* 00B4 */ UITextViewer* m_viewer;
/* 00B8 */ UIBitmapButton* m_ok;
/* 00BC */ UIBitmapButton* m_cancel;
/* 00C0 */ unsigned m_interval;
/* 00C4 */ unsigned m_elapsed;
/* 00C8 */ unsigned m_delta;
/* 00CC */ unsigned m_lastTick;
/* 00D0 */ UIStaticText* m_countdown;
};
class UIEntryQueueStandByWnd : public UIFrameWnd {
public:
~UIEntryQueueStandByWnd() override;
void Slot18() override;
void Slot19() override;
void Paint() override;
int SendMsg(UIWindow* sender, int message, std::intptr_t a, std::intptr_t b, std::intptr_t c, std::intptr_t d) override;
bool Create();
void SetInfo(const char* queueName, int waiting, int ranking);
protected:
UIEntryQueueContext* m_entryQueue;
public:
/* 00B4 */ std::string m_queueName;
/* 00CC */ int m_waiting;
/* 00D0 */ int m_ranking;
/* 00D4 */ UITextViewer* m_viewer;
/* 00D8 */ UIBitmapButton* m_cancel;
/* 00DC */ UIBitmapButton* m_close;
/* 00E0 */ char m_queueText[0x104];
/* 01E4 */ char m_waitingText[0x104];
/* 02E8 */ char m_rankingText[0x104];
};
class UIEntryQueueWnd : public UIFrameWnd {
public:
~UIEntryQueueWnd() override;
void Slot11() override;
int SelectedIndex();
void SelectQueue(EntryQueueInfo* info);
bool ConfirmApply(const char* type);
/* 00BC */ unsigned char unknown_00BC[0x8];
/* 00C4 */ UIWindow* m_labels[7];
/* 00E0 */ UIStaticText* m_values[7];
/* 00FC */ UIEntryQueueListBox* m_list;
/* 0100 */ WindowPlacement* saved;
};
#if defined(_WIN32) && !defined(_WIN64)
static_assert(offsetof(UIEntryQueueWnd, m_labels) == 0xC4);
static_assert(offsetof(UIEntryQueueWnd, m_values) == 0xE0);
static_assert(offsetof(UIEntryQueueWnd, m_list) == 0xFC);
static_assert(offsetof(UIEntryQueueWnd, saved) == 0x100);
#endif
#endif