#ifndef RAGNAROK_SOURCE_CONTENTS_GUILDINFO_H #define RAGNAROK_SOURCE_CONTENTS_GUILDINFO_H #include #include #include #include #include #include class GuildInfo { public: struct Member { /* 0000 */ int accountId; /* 0004 */ int characterId; /* 0008 */ std::string name; /* 0020 */ unsigned char unknown_0020[0x10]; /* 0030 */ int positionId; /* 0034 */ std::string positionName; /* 004C */ unsigned char unknown_004C[0x04]; /* 0050 */ std::string unknown_0050; /* 0068 */ unsigned char unknown_0068[0x10]; }; struct RelatedGuild { /* 0000 */ int unknown_0000; /* 0004 */ int unknown_0004; /* 0008 */ std::string unknown_0008; }; /* 0000 */ std::string unknown_0000; /* 0018 */ std::string unknown_0018; /* 0030 */ std::string unknown_0030; /* 0048 */ std::string unknown_0048; /* 0060 */ int unknown_0060; /* 0064 */ int unknown_0064; /* 0068 */ int unknown_0068; /* 006C */ int unknown_006C; /* 0070 */ int unknown_0070; /* 0074 */ std::string unknown_0074; /* 008C */ int unknown_008C; /* 0090 */ int unknown_0090; /* 0094 */ int unknown_0094; /* 0098 */ int unknown_0098; /* 009C */ int unknown_009C; /* 00A0 */ int unknown_00A0; /* 00A4 */ int unknown_00A4; /* 00A8 */ int m_guildId; /* 00AC */ int unknown_00AC; /* 00B0 */ int unknown_00B0; /* 00B4 */ int unknown_00B4; /* 00B8 */ int unknown_00B8; /* 00BC */ int unknown_00BC; /* 00C0 */ int unknown_00C0; /* 00C4 */ int unknown_00C4; /* 00C8 */ int unknown_00C8; /* 00CC */ int unknown_00CC; /* 00D0 */ int unknown_00D0; /* 00D4 */ std::list unknown_00D4; /* 00DC */ std::list m_members; /* 00E4 */ std::list unknown_00E4; /* 00EC */ std::list unknown_00EC; /* 00F4 */ std::list unknown_00F4; /* 00FC */ std::map m_positions; /* 0104 */ std::map unknown_0104; /* 010C */ std::map unknown_010C; /* 0114 */ std::vector unknown_0114; void ChangeMemberPosition(int aid, int cid, int position); void ClearUnknown0114(); void ClearMembers(); void RemoveUnknown0114(int value); void RemoveRelatedGuild(int unknown_0000, int unknown_0004); int GetMemberAccountId(const char* name); int GetUnknown0114(int index); int CountRelatedGuilds(int unknown_0004); int GetUnknown0114Count(); void Init(); }; #if defined(_WIN32) && !defined(_WIN64) static_assert(sizeof(GuildInfo::Member) == 0x78); static_assert(offsetof(GuildInfo::Member, accountId) == 0x00); static_assert(offsetof(GuildInfo::Member, characterId) == 0x04); static_assert(offsetof(GuildInfo::Member, positionId) == 0x30); static_assert(offsetof(GuildInfo::Member, positionName) == 0x34); static_assert(sizeof(GuildInfo::RelatedGuild) == 0x20); static_assert(sizeof(GuildInfo) == 0x120); static_assert(offsetof(GuildInfo, m_guildId) == 0xA8); static_assert(offsetof(GuildInfo, m_members) == 0xDC); static_assert(offsetof(GuildInfo, m_positions) == 0xFC); #endif #endif