#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 #include #include #include class UIBitmapButton; class UIStaticText; struct EntryQueueInfo; class UITextViewer; class UIEntryQueueHelpWnd : public UIFrameWnd { public: UIEntryQueueHelpWnd(); void Slot15(int width, int height) 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; protected: public: /* 00B4 */ UITextViewer* m_viewer; /* 00B8 */ UIBitmapButton* m_close; }; class UIEntryQueueListBox : public UIListBox { public: UIEntryQueueListBox(); ~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 m_entries; }; class UIEntryQueueRequestWnd : public UIFrameWnd { public: UIEntryQueueRequestWnd(); ~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: 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(); ~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: 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(); ~UIEntryQueueWnd() override; void Slot11() override; void Slot15(int width, int height) 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; int SelectedIndex(); void SelectQueue(EntryQueueInfo* info); bool ConfirmApply(const char* type); /* 00B4 */ UIBitmapButton* m_applyButtons[3]; /* 00C0 */ UIBitmapButton* m_helpButton; /* 00C4 */ UIStaticText* m_labels[7]; /* 00E0 */ UIStaticText* m_values[7]; /* 00FC */ UIEntryQueueListBox* m_list; /* 0100 */ EntryQueueWndInfo* saved; }; #if defined(_WIN32) && !defined(_WIN64) static_assert(offsetof(UIEntryQueueWnd, m_helpButton) == 0xC0); 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); static_assert(sizeof(UIEntryQueueWnd) == 0x104); #endif #endif