rodecomp/Source/Contents/RodexMailStore.h
ragnarok-clanker 605974bfb1 Decompile 8 functions in Source/UI/Rodex/UIRodexInboxWnd.cpp, Source/UI/Rodex/UIRodexInboxWnd.h, ...
Batch #5476 by Yommy: 0 byte-identical, 8 confirmed by peer review.

- fn_10056 UIRodexInboxWnd::SetButtonsDisabled: logic confirmed by peer review
- fn_10058 UIRodexInboxWnd::DrawExpireTime: logic confirmed by peer review
- fn_10059 UIRodexInboxWnd::ClearChecks: logic confirmed by peer review
- fn_10060 UIBasicButton::SetText: logic confirmed by peer review
- fn_10061 UIRodexInboxWnd::RefreshMailLists: logic confirmed by peer review
- fn_10062 UIRodexInboxWnd::RemoveInboxMail: logic confirmed by peer review
- fn_10067 UIRodexInboxWnd::SearchBySender: logic confirmed by peer review
- fn_10068 UIRodexInboxWnd::SearchByTitle: logic confirmed by peer review

Peer-reviewed-by: willerthal, Snow
Accepted without human review: peers confirmed the logic ("same" ahead by at least 3, with 70% of the votes).
2026-10-30 13:25:24 +00:00

70 lines
1.9 KiB
C++

#ifndef RAGNAROK_SOURCE_CONTENTS_RODEXMAILSTORE_H
#define RAGNAROK_SOURCE_CONTENTS_RODEXMAILSTORE_H
#include <array>
#include <cstddef>
#include <cstdint>
#include <map>
#include <string>
struct RodexMail {
/* 0000 */ unsigned char isRead;
/* 0001 */ unsigned char unknown_0001;
/* 0002 */ std::array<std::byte, 2> unknown_0002;
/* 0004 */ std::string unknown_0004;
/* 001C */ int unknown_001C;
/* 0020 */ int unknown_0020;
/* 0024 */ std::string unknown_0024;
/* 003C */ std::string unknown_003C;
/* 0054 */ std::array<std::byte, 316> unknown_0054;
/* 0190 */ std::uint8_t unknown_0190;
/* 0191 */ std::array<std::byte, 7> unknown_0191;
};
class RodexMailStore {
public:
// INLINED
RodexMailStore() {
this->m_isValid = false;
this->m_mails0.clear();
this->m_mails1.clear();
this->m_mails2.clear();
this->unknown_0008 = 0;
this->unknown_000C = 0;
this->unknown_0010 = false;
this->unknown_0014 = 0;
this->unknown_0018 = 0;
this->unknown_001C = false;
this->m_isValid = true;
}
static bool Create();
static void Destroy();
void Clear();
void PurgeFlagged();
/* 0000 */ bool m_isValid;
/* 0004 */ int unknown_0004;
/* 0008 */ int unknown_0008;
/* 000C */ int unknown_000C;
/* 0010 */ bool unknown_0010;
/* 0014 */ int unknown_0014;
/* 0018 */ int unknown_0018;
/* 001C */ bool unknown_001C;
/* 0020 */ std::map<std::int64_t, RodexMail> m_mails0;
/* 0028 */ std::map<std::int64_t, RodexMail> m_mails1;
/* 0030 */ std::map<std::int64_t, RodexMail> m_mails2;
};
#if defined(_WIN32) && !defined(_WIN64)
static_assert(sizeof(RodexMail) == 0x198);
static_assert(offsetof(RodexMail, unknown_0024) == 0x24);
static_assert(offsetof(RodexMail, unknown_0190) == 0x190);
static_assert(sizeof(RodexMailStore) == 0x38);
static_assert(offsetof(RodexMailStore, m_mails0) == 0x20);
#endif
extern RodexMailStore* g_rodexMailStore;
#endif