63 lines
1.6 KiB
C++
63 lines
1.6 KiB
C++
#ifndef RAGNAROK_SOURCE_CLIENT_MODEDRAGSTATE_H
|
|
#define RAGNAROK_SOURCE_CLIENT_MODEDRAGSTATE_H
|
|
|
|
#include <cstdint>
|
|
#include <string>
|
|
|
|
class WindowManagerWindows;
|
|
class ResourceMgr;
|
|
struct ItemDescriptions;
|
|
struct ItemInfo;
|
|
|
|
// Original contiguous CGameMode fields+0x308..+0x3C7. Strings own their data;
|
|
// callers keep this value at the real mode owner rather than a second singleton.
|
|
struct ModeDragState {
|
|
/* 0308 */ int source;
|
|
/* 030C */ std::uint32_t id;
|
|
/* 0310 */ std::uint32_t unknown_0310;
|
|
/* 0314 */ std::uint32_t unknown_0314;
|
|
/* 0318 */ int quantity;
|
|
/* 031C */ int slot;
|
|
/* 0320 */ std::uint32_t type;
|
|
/* 0324 */ std::uint32_t refine;
|
|
/* 0328 */ unsigned char identified;
|
|
/* 032C */ std::string resource;
|
|
/* 0344 */ std::string name;
|
|
/* 035C */ std::string skillName;
|
|
/* 0374 */ int skillLevel;
|
|
/* 0378 */ unsigned char cards[16];
|
|
/* 0388 */ unsigned char skill;
|
|
/* 038C */ std::uint32_t unknown_038C;
|
|
/* 0390 */ int optionCount;
|
|
/* 0394 */ unsigned char options[25];
|
|
/* 03B0 */ int unknown_03B0;
|
|
/* 03B4 */ std::uint16_t grade;
|
|
/* 03B6 */ unsigned char unknown_03B6;
|
|
/* 03B8 */ std::uint32_t unknown_03B8;
|
|
/* 03C0 */ std::int64_t unknown_03C0;
|
|
|
|
void Clear();
|
|
void BeginItem(
|
|
WindowManagerWindows& windows,
|
|
ItemDescriptions& descriptions,
|
|
int source,
|
|
const ItemInfo& item,
|
|
int quantity,
|
|
int slot
|
|
);
|
|
void BeginSkill(
|
|
WindowManagerWindows& windows,
|
|
ResourceMgr& resources,
|
|
int source,
|
|
std::uint32_t id,
|
|
const char* name,
|
|
int level,
|
|
int slot
|
|
);
|
|
};
|
|
|
|
#if defined(_WIN32) && !defined(_WIN64)
|
|
static_assert(sizeof(ModeDragState) == 192);
|
|
#endif
|
|
|
|
#endif
|