rodecomp/Source/Contents/TableMng.h
ragnarok-clanker 31c8211fc2 Decompile 3 functions in Source/Contents/TableMng.cpp, Source/Contents/TableMng.h
Batch #15556 by Yommy: 2 byte-identical, 1 confirmed by peer review.

- fn_20933 CTableMng::ReadEntryQueueXls: logic confirmed by peer review
- fn_20934 CTableMng::ReadEntryQueueBinary: byte-identical
- fn_20936 CTableMng::AddEntryQueueInfo: byte-identical

Accepted without human review: peers confirmed the logic ("same" ahead by at least 3, with 70% of the votes).
2026-11-10 06:34:40 +00:00

57 lines
1.4 KiB
C++

#ifndef RAGNAROK_SOURCE_CONTENTS_TABLEMNG_H
#define RAGNAROK_SOURCE_CONTENTS_TABLEMNG_H
#include <cstring>
#include <map>
struct EntryQueueInfo {
EntryQueueInfo() {
std::memset(this, 0, sizeof(EntryQueueInfo));
}
/* 0000 */ unsigned int id;
/* 0004 */ char name[260];
/* 0108 */ char description[260];
/* 020C */ int minLevel;
/* 0210 */ int maxLevel;
/* 0214 */ unsigned char queueFlagA;
/* 0215 */ unsigned char queueFlagB;
/* 0216 */ unsigned char queueFlagC;
/* 0217 */ unsigned char queueFlagD;
/* 0218 */ unsigned char limitType;
/* 021C */ int limitValue;
/* 0220 */ int limitValueEnd;
/* 0224 */ char detailsText[260];
/* 0328 */ char rulesText[260];
/* 042C */ char rewardText[260];
/* 0530 */ char extraText[260];
/* 0634 */ char bitmapName[260];
};
// VTABLE: vt_01823
class CTableMng {
public:
CTableMng();
virtual ~CTableMng();
void ResetTables();
EntryQueueInfo* GetEntryQueueInfo(unsigned int id);
bool Init();
bool ReadEntryQueueBinary();
void Clear();
bool AddEntryQueueInfo(unsigned int id, EntryQueueInfo* info);
void Release();
bool ReadEntryQueue();
bool ReadEntryQueueFromXls();
bool ReadEntryQueueXls(void* excel);
bool WriteEntryQueueXls();
/* 0004 */ std::map<unsigned int, EntryQueueInfo*> m_entryQueue;
};
#if defined(_WIN32) && !defined(_WIN64)
static_assert(sizeof(EntryQueueInfo) == 0x738);
static_assert(sizeof(CTableMng) == 0xC);
#endif
#endif