rodecomp/Source/UI/Rodex/UIRodexInboxWnd.h
ragnarok-clanker 997f0c5149 Decompile fn_10068 (UIRodexInboxWnd::SearchByTitle)
Batch #11882 by Yommy: 1 byte-identical, 0 confirmed by peer review.

- fn_10068 UIRodexInboxWnd::SearchByTitle: byte-identical

Merged automatically: every function is byte-identical to the original.
2026-11-05 05:12:36 +00:00

104 lines
3.4 KiB
C++

#ifndef RAGNAROK_SOURCE_UI_RODEX_UIRODEXINBOXWND_H
#define RAGNAROK_SOURCE_UI_RODEX_UIRODEXINBOXWND_H
#include "Contents/RodexMailStore.h"
#include "UI/Item/UIItemWnd.h"
#include <cstddef>
#include <cstdint>
#include <ctime>
#include <map>
#include <string>
#include <utility>
#include <vector>
class UIBasicButton;
class UIBitmapButton;
class UIBmpRadioBtn;
class UICheckBox;
class UIEditCtrl;
class UIRadioBtn;
class UITextButton;
using RodexMailEntry = std::pair<int, std::int64_t>;
// INLINED
inline std::map<std::int64_t, RodexMail>* RodexMailsOfType(int type) {
if (type == 0) {
return &g_rodexMailStore->m_mails0;
}
if (type == 1) {
return &g_rodexMailStore->m_mails1;
}
if (type == 2) {
return &g_rodexMailStore->m_mails2;
}
return nullptr;
}
struct RodexMailEntryLess {
bool operator()(const RodexMailEntry& left, const RodexMailEntry& right) const;
};
class UIRodexInboxWnd : public UIItemWnd {
public:
UIRodexInboxWnd();
bool Slot03() override;
void Slot15(int width, int height) override;
void Paint() override;
void Slot25(int x, int y) override;
void Slot26(int x, int y) override;
void Nullsub257();
void Slot28(int x, int y) override;
int SendMsg(UIWindow* sender, int message, std::intptr_t argument1, std::intptr_t argument2, std::intptr_t argument3, std::intptr_t argument4) override;
void DrawMailIcons(int row, unsigned char attachments, unsigned char read, unsigned char returned);
void SetButtonsDisabled(unsigned char disabled);
void SetMailRow(int row, std::int64_t mailId, std::string name, std::string subject, unsigned char read, unsigned char returned, int noAttachment);
void DrawExpireTime(int row, __time32_t sendTime, __time32_t expireTime, unsigned char returned);
void ClearChecks();
void RefreshMailLists();
void RemoveInboxMail(int id);
void SearchBySender(std::string keyword);
void SearchByTitle(std::string keyword);
void InitializeMailActions();
void RequestAllMailActions();
/* 0130 */ UIBmpRadioBtn* unknown_0130;
/* 0134 */ UIBmpRadioBtn* unknown_0134;
/* 0138 */ UIBmpRadioBtn* unknown_0138;
/* 013C */ UIBitmapButton* unknown_013C;
/* 0140 */ UIBitmapButton* unknown_0140;
/* 0144 */ UITextButton* unknown_0144[6];
/* 015C */ UITextButton* unknown_015C[6];
/* 0174 */ UICheckBox* checks[6];
/* 018C */ UIBasicButton* unknown_018C;
/* 0190 */ UIBasicButton* unknown_0190;
/* 0194 */ UIBitmapButton* unknown_0194;
/* 0198 */ UIBitmapButton* unknown_0198;
/* 019C */ int unknown_019C;
/* 01A0 */ int unknown_01A0;
/* 01A4 */ unsigned char expired;
/* 01A8 */ UIBitmapButton* unknown_01A8[6];
/* 01C0 */ UIRadioBtn* unknown_01C0[2];
/* 01C8 */ UIEditCtrl* unknown_01C8;
/* 01CC */ UIBitmapButton* unknown_01CC;
/* 01D0 */ UIBmpRadioBtn* unknown_01D0;
/* 01D4 */ unsigned char unknown_01D4;
/* 01D8 */ std::vector<RodexMailEntry> searchResults;
/* 01E4 */ std::vector<RodexMailEntry> mails0;
/* 01F0 */ std::vector<RodexMailEntry> mails1;
/* 01FC */ std::vector<RodexMailEntry> mails2;
};
#if defined(_WIN32) && !defined(_WIN64)
static_assert(sizeof(RodexMailEntry) == 0x10);
static_assert(offsetof(UIRodexInboxWnd, unknown_012C) == 0x12C);
static_assert(offsetof(UIRodexInboxWnd, checks) == 0x174);
static_assert(offsetof(UIRodexInboxWnd, expired) == 0x1A4);
static_assert(offsetof(UIRodexInboxWnd, searchResults) == 0x1D8);
static_assert(offsetof(UIRodexInboxWnd, mails2) == 0x1FC);
#endif
#endif