diff --git a/common/dynamic_zone_base.h b/common/dynamic_zone_base.h index 2c157b2b5..075c4e606 100644 --- a/common/dynamic_zone_base.h +++ b/common/dynamic_zone_base.h @@ -13,6 +13,21 @@ class Database; class ServerPacket; +struct DynamicZoneMember +{ + uint32_t id = 0; + std::string name; + DynamicZoneMemberStatus status = DynamicZoneMemberStatus::Online; + + DynamicZoneMember() = default; + DynamicZoneMember(uint32_t id, std::string name_) + : id(id), name{std::move(name_)} {} + DynamicZoneMember(uint32_t id, std::string name_, DynamicZoneMemberStatus status_) + : id(id), name{std::move(name_)}, status(status_) {} + + bool IsValid() const { return id != 0 && !name.empty(); } +}; + struct DynamicZoneLocation { uint32_t zone_id = 0; diff --git a/common/eq_constants.h b/common/eq_constants.h index b17dcc2be..a585bdd87 100644 --- a/common/eq_constants.h +++ b/common/eq_constants.h @@ -474,7 +474,7 @@ enum class DynamicZoneType Quest }; -enum class ExpeditionMemberStatus : uint8_t +enum class DynamicZoneMemberStatus : uint8_t { Unknown = 0, Online, diff --git a/common/eq_packet_structs.h b/common/eq_packet_structs.h index 808839b27..f5d47546e 100644 --- a/common/eq_packet_structs.h +++ b/common/eq_packet_structs.h @@ -4861,30 +4861,31 @@ struct ExpeditionInviteResponse_Struct /*079*/ uint8 unknown079; // padding garbage? }; -struct ExpeditionInfo_Struct +struct DynamicZoneInfo_Struct { /*000*/ uint32 client_id; /*004*/ uint32 unknown004; // added after titanium -/*008*/ uint32 assigned; // padded bool, 0: not in expedition (clear data), 1: in expedition +/*008*/ uint32 assigned; // padded bool, 0: clear info, 1: fill window info /*012*/ uint32 max_players; -/*016*/ char expedition_name[128]; +/*016*/ char dz_name[128]; /*144*/ char leader_name[64]; +//*208*/ uint32 dz_type; // only in newer clients, if not 1 (expedition type) window does not auto show when dz info assigned }; -struct ExpeditionMemberEntry_Struct +struct DynamicZoneMemberEntry_Struct { -/*000*/ char name[64]; // variable length, null terminated, max 0x40 (64) -/*064*/ uint8 expedition_status; // 0: unknown, 1: Online, 2: Offline, 3: In Dynamic Zone, 4: Link Dead +/*000*/ char name[64]; // variable length, null terminated, max 0x40 (64) +/*064*/ uint8 online_status; // 0: unknown, 1: Online, 2: Offline, 3: In Dynamic Zone, 4: Link Dead }; -struct ExpeditionMemberList_Struct +struct DynamicZoneMemberList_Struct { /*000*/ uint32 client_id; /*004*/ uint32 member_count; -/*008*/ ExpeditionMemberEntry_Struct members[0]; // variable length +/*008*/ DynamicZoneMemberEntry_Struct members[0]; // variable length }; -struct ExpeditionMemberListName_Struct +struct DynamicZoneMemberListName_Struct { /*000*/ uint32 client_id; /*004*/ uint32 unknown004; @@ -4907,7 +4908,7 @@ struct ExpeditionLockoutTimers_Struct /*008*/ ExpeditionLockoutTimerEntry_Struct timers[0]; }; -struct ExpeditionSetLeaderName_Struct +struct DynamicZoneLeaderName_Struct { /*000*/ uint32 client_id; /*004*/ uint32 unknown004; diff --git a/common/expedition_base.cpp b/common/expedition_base.cpp index fa4962706..732a759e7 100644 --- a/common/expedition_base.cpp +++ b/common/expedition_base.cpp @@ -2,7 +2,7 @@ #include "repositories/expeditions_repository.h" ExpeditionBase::ExpeditionBase(uint32_t id, const std::string& uuid, - const std::string& expedition_name, const ExpeditionMember& leader, + const std::string& expedition_name, const DynamicZoneMember& leader, uint32_t min_players, uint32_t max_players ) : m_id(id), @@ -23,20 +23,20 @@ void ExpeditionBase::LoadRepositoryResult(ExpeditionsRepository::ExpeditionWithL m_max_players = entry.max_players; m_add_replay_on_join = entry.add_replay_on_join; m_is_locked = entry.is_locked; - m_leader.char_id = entry.leader_id; + m_leader.id = entry.leader_id; m_leader.name = std::move(entry.leader_name); } void ExpeditionBase::AddMemberFromRepositoryResult( ExpeditionMembersRepository::MemberWithName&& entry) { - auto status = ExpeditionMemberStatus::Unknown; + auto status = DynamicZoneMemberStatus::Unknown; AddInternalMember({ entry.character_id, std::move(entry.character_name), status }); } -void ExpeditionBase::AddInternalMember(const ExpeditionMember& member) +void ExpeditionBase::AddInternalMember(const DynamicZoneMember& member) { - if (!HasMember(member.char_id)) + if (!HasMember(member.id)) { m_members.emplace_back(member); } @@ -45,32 +45,32 @@ void ExpeditionBase::AddInternalMember(const ExpeditionMember& member) void ExpeditionBase::RemoveInternalMember(uint32_t character_id) { m_members.erase(std::remove_if(m_members.begin(), m_members.end(), - [&](const ExpeditionMember& member) { return member.char_id == character_id; } + [&](const DynamicZoneMember& member) { return member.id == character_id; } ), m_members.end()); } bool ExpeditionBase::HasMember(uint32_t character_id) { - return std::any_of(m_members.begin(), m_members.end(), [&](const ExpeditionMember& member) { - return member.char_id == character_id; + return std::any_of(m_members.begin(), m_members.end(), [&](const DynamicZoneMember& member) { + return member.id == character_id; }); } bool ExpeditionBase::HasMember(const std::string& character_name) { - return std::any_of(m_members.begin(), m_members.end(), [&](const ExpeditionMember& member) { + return std::any_of(m_members.begin(), m_members.end(), [&](const DynamicZoneMember& member) { return (strcasecmp(member.name.c_str(), character_name.c_str()) == 0); }); } -ExpeditionMember ExpeditionBase::GetMemberData(uint32_t character_id) +DynamicZoneMember ExpeditionBase::GetMemberData(uint32_t character_id) { - auto it = std::find_if(m_members.begin(), m_members.end(), [&](const ExpeditionMember& member) { - return member.char_id == character_id; + auto it = std::find_if(m_members.begin(), m_members.end(), [&](const DynamicZoneMember& member) { + return member.id == character_id; }); - ExpeditionMember member_data; + DynamicZoneMember member_data; if (it != m_members.end()) { member_data = *it; @@ -78,13 +78,13 @@ ExpeditionMember ExpeditionBase::GetMemberData(uint32_t character_id) return member_data; } -ExpeditionMember ExpeditionBase::GetMemberData(const std::string& character_name) +DynamicZoneMember ExpeditionBase::GetMemberData(const std::string& character_name) { - auto it = std::find_if(m_members.begin(), m_members.end(), [&](const ExpeditionMember& member) { + auto it = std::find_if(m_members.begin(), m_members.end(), [&](const DynamicZoneMember& member) { return (strcasecmp(member.name.c_str(), character_name.c_str()) == 0); }); - ExpeditionMember member_data; + DynamicZoneMember member_data; if (it != m_members.end()) { member_data = *it; diff --git a/common/expedition_base.h b/common/expedition_base.h index aeb072fae..25c5cfd33 100644 --- a/common/expedition_base.h +++ b/common/expedition_base.h @@ -1,28 +1,13 @@ #ifndef COMMON_EXPEDITION_BASE_H #define COMMON_EXPEDITION_BASE_H -#include "eq_constants.h" +#include "dynamic_zone_base.h" #include "repositories/expeditions_repository.h" #include "repositories/expedition_members_repository.h" #include #include #include -struct ExpeditionMember -{ - uint32_t char_id = 0; - std::string name; - ExpeditionMemberStatus status = ExpeditionMemberStatus::Online; - - ExpeditionMember() = default; - ExpeditionMember(uint32_t id, const std::string& name_) - : char_id(id), name(name_) {} - ExpeditionMember(uint32_t id, const std::string& name_, ExpeditionMemberStatus status_) - : char_id(id), name(name_), status(status_) {} - - bool IsValid() const { return char_id != 0 && !name.empty(); } -}; - class ExpeditionBase { public: @@ -33,16 +18,16 @@ public: ExpeditionBase& operator=(ExpeditionBase&&) = default; uint32_t GetID() const { return m_id; } - uint32_t GetLeaderID() const { return m_leader.char_id; } + uint32_t GetLeaderID() const { return m_leader.id; } uint32_t GetMinPlayers() const { return m_min_players; } uint32_t GetMaxPlayers() const { return m_max_players; } uint32_t GetMemberCount() const { return static_cast(m_members.size()); } const std::string& GetName() const { return m_expedition_name; } const std::string& GetLeaderName() const { return m_leader.name; } const std::string& GetUUID() const { return m_uuid; } - const std::vector& GetMembers() const { return m_members; } + const std::vector& GetMembers() const { return m_members; } - void AddInternalMember(const ExpeditionMember& member); + void AddInternalMember(const DynamicZoneMember& member); void ClearInternalMembers() { m_members.clear(); } bool HasMember(const std::string& character_name); bool HasMember(uint32_t character_id); @@ -55,10 +40,10 @@ public: protected: ExpeditionBase() = default; ExpeditionBase(uint32_t id, const std::string& uuid, const std::string& expedition_name, - const ExpeditionMember& leader, uint32_t min_players, uint32_t max_players); + const DynamicZoneMember& leader, uint32_t min_players, uint32_t max_players); - ExpeditionMember GetMemberData(uint32_t character_id); - ExpeditionMember GetMemberData(const std::string& character_name); + DynamicZoneMember GetMemberData(uint32_t character_id); + DynamicZoneMember GetMemberData(const std::string& character_name); uint32_t m_id = 0; uint32_t m_min_players = 0; @@ -67,8 +52,8 @@ protected: bool m_add_replay_on_join = true; std::string m_uuid; std::string m_expedition_name; - ExpeditionMember m_leader; - std::vector m_members; + DynamicZoneMember m_leader; + std::vector m_members; }; #endif diff --git a/common/patches/rof.cpp b/common/patches/rof.cpp index b607502c4..38b109677 100644 --- a/common/patches/rof.cpp +++ b/common/patches/rof.cpp @@ -772,13 +772,13 @@ namespace RoF ENCODE(OP_DzExpeditionInfo) { - ENCODE_LENGTH_EXACT(ExpeditionInfo_Struct); - SETUP_DIRECT_ENCODE(ExpeditionInfo_Struct, structs::ExpeditionInfo_Struct); + ENCODE_LENGTH_EXACT(DynamicZoneInfo_Struct); + SETUP_DIRECT_ENCODE(DynamicZoneInfo_Struct, structs::DynamicZoneInfo_Struct); OUT(client_id); OUT(assigned); OUT(max_players); - strn0cpy(eq->expedition_name, emu->expedition_name, sizeof(eq->expedition_name)); + strn0cpy(eq->dz_name, emu->dz_name, sizeof(eq->dz_name)); strn0cpy(eq->leader_name, emu->leader_name, sizeof(eq->leader_name)); FINISH_ENCODE(); @@ -824,8 +824,8 @@ namespace RoF ENCODE(OP_DzSetLeaderName) { - ENCODE_LENGTH_EXACT(ExpeditionSetLeaderName_Struct); - SETUP_DIRECT_ENCODE(ExpeditionSetLeaderName_Struct, structs::ExpeditionSetLeaderName_Struct); + ENCODE_LENGTH_EXACT(DynamicZoneLeaderName_Struct); + SETUP_DIRECT_ENCODE(DynamicZoneLeaderName_Struct, structs::DynamicZoneLeaderName_Struct); OUT(client_id); strn0cpy(eq->leader_name, emu->leader_name, sizeof(eq->leader_name)); @@ -835,7 +835,7 @@ namespace RoF ENCODE(OP_DzMemberList) { - SETUP_VAR_ENCODE(ExpeditionMemberList_Struct); + SETUP_VAR_ENCODE(DynamicZoneMemberList_Struct); SerializeBuffer buf; buf.WriteUInt32(emu->client_id); @@ -843,7 +843,7 @@ namespace RoF for (uint32 i = 0; i < emu->member_count; ++i) { buf.WriteString(emu->members[i].name); - buf.WriteUInt8(emu->members[i].expedition_status); + buf.WriteUInt8(emu->members[i].online_status); } __packet->size = buf.size(); @@ -855,8 +855,8 @@ namespace RoF ENCODE(OP_DzMemberListName) { - ENCODE_LENGTH_EXACT(ExpeditionMemberListName_Struct); - SETUP_DIRECT_ENCODE(ExpeditionMemberListName_Struct, structs::ExpeditionMemberListName_Struct); + ENCODE_LENGTH_EXACT(DynamicZoneMemberListName_Struct); + SETUP_DIRECT_ENCODE(DynamicZoneMemberListName_Struct, structs::DynamicZoneMemberListName_Struct); OUT(client_id); OUT(add_name); @@ -867,7 +867,7 @@ namespace RoF ENCODE(OP_DzMemberListStatus) { - auto emu = reinterpret_cast((*p)->pBuffer); + auto emu = reinterpret_cast((*p)->pBuffer); if (emu->member_count == 1) { ENCODE_FORWARD(OP_DzMemberList); diff --git a/common/patches/rof2.cpp b/common/patches/rof2.cpp index a6426a279..55fbfe2c8 100644 --- a/common/patches/rof2.cpp +++ b/common/patches/rof2.cpp @@ -821,13 +821,13 @@ namespace RoF2 ENCODE(OP_DzExpeditionInfo) { - ENCODE_LENGTH_EXACT(ExpeditionInfo_Struct); - SETUP_DIRECT_ENCODE(ExpeditionInfo_Struct, structs::ExpeditionInfo_Struct); + ENCODE_LENGTH_EXACT(DynamicZoneInfo_Struct); + SETUP_DIRECT_ENCODE(DynamicZoneInfo_Struct, structs::DynamicZoneInfo_Struct); OUT(client_id); OUT(assigned); OUT(max_players); - strn0cpy(eq->expedition_name, emu->expedition_name, sizeof(eq->expedition_name)); + strn0cpy(eq->dz_name, emu->dz_name, sizeof(eq->dz_name)); strn0cpy(eq->leader_name, emu->leader_name, sizeof(eq->leader_name)); FINISH_ENCODE(); @@ -873,8 +873,8 @@ namespace RoF2 ENCODE(OP_DzSetLeaderName) { - ENCODE_LENGTH_EXACT(ExpeditionSetLeaderName_Struct); - SETUP_DIRECT_ENCODE(ExpeditionSetLeaderName_Struct, structs::ExpeditionSetLeaderName_Struct); + ENCODE_LENGTH_EXACT(DynamicZoneLeaderName_Struct); + SETUP_DIRECT_ENCODE(DynamicZoneLeaderName_Struct, structs::DynamicZoneLeaderName_Struct); OUT(client_id); strn0cpy(eq->leader_name, emu->leader_name, sizeof(eq->leader_name)); @@ -884,7 +884,7 @@ namespace RoF2 ENCODE(OP_DzMemberList) { - SETUP_VAR_ENCODE(ExpeditionMemberList_Struct); + SETUP_VAR_ENCODE(DynamicZoneMemberList_Struct); SerializeBuffer buf; buf.WriteUInt32(emu->client_id); @@ -892,7 +892,7 @@ namespace RoF2 for (uint32 i = 0; i < emu->member_count; ++i) { buf.WriteString(emu->members[i].name); - buf.WriteUInt8(emu->members[i].expedition_status); + buf.WriteUInt8(emu->members[i].online_status); } __packet->size = buf.size(); @@ -904,8 +904,8 @@ namespace RoF2 ENCODE(OP_DzMemberListName) { - ENCODE_LENGTH_EXACT(ExpeditionMemberListName_Struct); - SETUP_DIRECT_ENCODE(ExpeditionMemberListName_Struct, structs::ExpeditionMemberListName_Struct); + ENCODE_LENGTH_EXACT(DynamicZoneMemberListName_Struct); + SETUP_DIRECT_ENCODE(DynamicZoneMemberListName_Struct, structs::DynamicZoneMemberListName_Struct); OUT(client_id); OUT(add_name); @@ -916,7 +916,7 @@ namespace RoF2 ENCODE(OP_DzMemberListStatus) { - auto emu = reinterpret_cast((*p)->pBuffer); + auto emu = reinterpret_cast((*p)->pBuffer); if (emu->member_count == 1) { ENCODE_FORWARD(OP_DzMemberList); diff --git a/common/patches/rof2_structs.h b/common/patches/rof2_structs.h index 3041024c7..a37e25d61 100644 --- a/common/patches/rof2_structs.h +++ b/common/patches/rof2_structs.h @@ -4908,31 +4908,31 @@ struct ExpeditionInviteResponse_Struct /*079*/ uint8 unknown079; // padding garbage? }; -struct ExpeditionInfo_Struct +struct DynamicZoneInfo_Struct { /*000*/ uint32 client_id; /*004*/ uint32 unknown004; -/*008*/ uint32 assigned; // padded bool, 0: not in expedition (clear data), 1: in expedition +/*008*/ uint32 assigned; // padded bool, 0: clear info, 1: fill window info /*012*/ uint32 max_players; -/*016*/ char expedition_name[128]; +/*016*/ char dz_name[128]; /*144*/ char leader_name[64]; -//*208*/ uint32 unknown208; // live sends 01 00 00 00 here but client doesn't read it +//*208*/ uint32 dz_type; // only in newer clients, if not 1 (expedition type) window does not auto show when dz info assigned }; -struct ExpeditionMemberEntry_Struct +struct DynamicZoneMemberEntry_Struct { -/*000*/ char name[1]; // variable length, null terminated, max 0x40 (64) -/*000*/ uint8 expedition_status; // 0: unknown 1: Online, 2: Offline, 3: In Dynamic Zone, 4: Link Dead +/*000*/ char name[1]; // variable length, null terminated, max 0x40 (64) +/*000*/ uint8 online_status; // 0: unknown 1: Online, 2: Offline, 3: In Dynamic Zone, 4: Link Dead }; -struct ExpeditionMemberList_Struct +struct DynamicZoneMemberList_Struct { /*000*/ uint32 client_id; /*004*/ uint32 member_count; // number of players in window -/*008*/ ExpeditionMemberEntry_Struct members[0]; // variable length +/*008*/ DynamicZoneMemberEntry_Struct members[0]; // variable length }; -struct ExpeditionMemberListName_Struct +struct DynamicZoneMemberListName_Struct { /*000*/ uint32 client_id; /*004*/ uint32 unknown004; @@ -4955,7 +4955,7 @@ struct ExpeditionLockoutTimers_Struct /*008*/ ExpeditionLockoutTimerEntry_Struct timers[0]; }; -struct ExpeditionSetLeaderName_Struct +struct DynamicZoneLeaderName_Struct { /*000*/ uint32 client_id; /*004*/ uint32 unknown004; diff --git a/common/patches/rof_structs.h b/common/patches/rof_structs.h index 1afc79334..a8297b2ea 100644 --- a/common/patches/rof_structs.h +++ b/common/patches/rof_structs.h @@ -4841,30 +4841,30 @@ struct ExpeditionInviteResponse_Struct /*079*/ uint8 unknown079; // padding garbage? }; -struct ExpeditionInfo_Struct +struct DynamicZoneInfo_Struct { /*000*/ uint32 client_id; /*004*/ uint32 unknown004; /*008*/ uint32 assigned; // padded bool /*012*/ uint32 max_players; -/*016*/ char expedition_name[128]; +/*016*/ char dz_name[128]; /*144*/ char leader_name[64]; }; -struct ExpeditionMemberEntry_Struct +struct DynamicZoneMemberEntry_Struct { -/*000*/ char name[1]; // variable length, null terminated, max 0x40 (64) -/*000*/ uint8 expedition_status; // 0: unknown 1: Online, 2: Offline, 3: In Dynamic Zone, 4: Link Dead +/*000*/ char name[1]; // variable length, null terminated, max 0x40 (64) +/*000*/ uint8 online_status; // 0: unknown 1: Online, 2: Offline, 3: In Dynamic Zone, 4: Link Dead }; -struct ExpeditionMemberList_Struct +struct DynamicZoneMemberList_Struct { /*000*/ uint32 client_id; /*004*/ uint32 member_count; // number of players in window -/*008*/ ExpeditionMemberEntry_Struct members[0]; // variable length +/*008*/ DynamicZoneMemberEntry_Struct members[0]; // variable length }; -struct ExpeditionMemberListName_Struct +struct DynamicZoneMemberListName_Struct { /*000*/ uint32 client_id; /*004*/ uint32 unknown004; @@ -4887,7 +4887,7 @@ struct ExpeditionLockoutTimers_Struct /*008*/ ExpeditionLockoutTimerEntry_Struct timers[0]; }; -struct ExpeditionSetLeaderName_Struct +struct DynamicZoneLeaderName_Struct { /*000*/ uint32 client_id; /*004*/ uint32 unknown004; diff --git a/common/patches/sod.cpp b/common/patches/sod.cpp index 9f49f9651..404190d09 100644 --- a/common/patches/sod.cpp +++ b/common/patches/sod.cpp @@ -545,13 +545,13 @@ namespace SoD ENCODE(OP_DzExpeditionInfo) { - ENCODE_LENGTH_EXACT(ExpeditionInfo_Struct); - SETUP_DIRECT_ENCODE(ExpeditionInfo_Struct, structs::ExpeditionInfo_Struct); + ENCODE_LENGTH_EXACT(DynamicZoneInfo_Struct); + SETUP_DIRECT_ENCODE(DynamicZoneInfo_Struct, structs::DynamicZoneInfo_Struct); OUT(client_id); OUT(assigned); OUT(max_players); - strn0cpy(eq->expedition_name, emu->expedition_name, sizeof(eq->expedition_name)); + strn0cpy(eq->dz_name, emu->dz_name, sizeof(eq->dz_name)); strn0cpy(eq->leader_name, emu->leader_name, sizeof(eq->leader_name)); FINISH_ENCODE(); @@ -597,8 +597,8 @@ namespace SoD ENCODE(OP_DzSetLeaderName) { - ENCODE_LENGTH_EXACT(ExpeditionSetLeaderName_Struct); - SETUP_DIRECT_ENCODE(ExpeditionSetLeaderName_Struct, structs::ExpeditionSetLeaderName_Struct); + ENCODE_LENGTH_EXACT(DynamicZoneLeaderName_Struct); + SETUP_DIRECT_ENCODE(DynamicZoneLeaderName_Struct, structs::DynamicZoneLeaderName_Struct); OUT(client_id); strn0cpy(eq->leader_name, emu->leader_name, sizeof(eq->leader_name)); @@ -608,7 +608,7 @@ namespace SoD ENCODE(OP_DzMemberList) { - SETUP_VAR_ENCODE(ExpeditionMemberList_Struct); + SETUP_VAR_ENCODE(DynamicZoneMemberList_Struct); SerializeBuffer buf; buf.WriteUInt32(emu->client_id); @@ -616,7 +616,7 @@ namespace SoD for (uint32 i = 0; i < emu->member_count; ++i) { buf.WriteString(emu->members[i].name); - buf.WriteUInt8(emu->members[i].expedition_status); + buf.WriteUInt8(emu->members[i].online_status); } __packet->size = buf.size(); @@ -628,8 +628,8 @@ namespace SoD ENCODE(OP_DzMemberListName) { - ENCODE_LENGTH_EXACT(ExpeditionMemberListName_Struct); - SETUP_DIRECT_ENCODE(ExpeditionMemberListName_Struct, structs::ExpeditionMemberListName_Struct); + ENCODE_LENGTH_EXACT(DynamicZoneMemberListName_Struct); + SETUP_DIRECT_ENCODE(DynamicZoneMemberListName_Struct, structs::DynamicZoneMemberListName_Struct); OUT(client_id); OUT(add_name); @@ -640,7 +640,7 @@ namespace SoD ENCODE(OP_DzMemberListStatus) { - auto emu = reinterpret_cast((*p)->pBuffer); + auto emu = reinterpret_cast((*p)->pBuffer); if (emu->member_count == 1) { ENCODE_FORWARD(OP_DzMemberList); diff --git a/common/patches/sod_structs.h b/common/patches/sod_structs.h index 8070de172..70866db8f 100644 --- a/common/patches/sod_structs.h +++ b/common/patches/sod_structs.h @@ -4196,30 +4196,30 @@ struct ExpeditionInviteResponse_Struct /*079*/ uint8 unknown079; // padding garbage? }; -struct ExpeditionInfo_Struct +struct DynamicZoneInfo_Struct { /*000*/ uint32 client_id; /*004*/ uint32 unknown004; /*008*/ uint32 assigned; // padded bool /*012*/ uint32 max_players; -/*016*/ char expedition_name[128]; +/*016*/ char dz_name[128]; /*144*/ char leader_name[64]; }; -struct ExpeditionMemberEntry_Struct +struct DynamicZoneMemberEntry_Struct { -/*000*/ char name[1]; // variable length, null terminated, max 0x40 (64) -/*000*/ uint8 expedition_status; // 0: unknown 1: Online, 2: Offline, 3: In Dynamic Zone, 4: Link Dead +/*000*/ char name[1]; // variable length, null terminated, max 0x40 (64) +/*000*/ uint8 online_status; // 0: unknown 1: Online, 2: Offline, 3: In Dynamic Zone, 4: Link Dead }; -struct ExpeditionMemberList_Struct +struct DynamicZoneMemberList_Struct { /*000*/ uint32 client_id; /*004*/ uint32 member_count; // number of players in window -/*008*/ ExpeditionMemberEntry_Struct members[0]; // variable length +/*008*/ DynamicZoneMemberEntry_Struct members[0]; // variable length }; -struct ExpeditionMemberListName_Struct +struct DynamicZoneMemberListName_Struct { /*000*/ uint32 client_id; /*004*/ uint32 unknown004; @@ -4242,7 +4242,7 @@ struct ExpeditionLockoutTimers_Struct /*008*/ ExpeditionLockoutTimerEntry_Struct timers[0]; }; -struct ExpeditionSetLeaderName_Struct +struct DynamicZoneLeaderName_Struct { /*000*/ uint32 client_id; /*004*/ uint32 unknown004; diff --git a/common/patches/sof.cpp b/common/patches/sof.cpp index 4fb9642a8..07758bba6 100644 --- a/common/patches/sof.cpp +++ b/common/patches/sof.cpp @@ -533,13 +533,13 @@ namespace SoF ENCODE(OP_DzExpeditionInfo) { - ENCODE_LENGTH_EXACT(ExpeditionInfo_Struct); - SETUP_DIRECT_ENCODE(ExpeditionInfo_Struct, structs::ExpeditionInfo_Struct); + ENCODE_LENGTH_EXACT(DynamicZoneInfo_Struct); + SETUP_DIRECT_ENCODE(DynamicZoneInfo_Struct, structs::DynamicZoneInfo_Struct); OUT(client_id); OUT(assigned); OUT(max_players); - strn0cpy(eq->expedition_name, emu->expedition_name, sizeof(eq->expedition_name)); + strn0cpy(eq->dz_name, emu->dz_name, sizeof(eq->dz_name)); strn0cpy(eq->leader_name, emu->leader_name, sizeof(eq->leader_name)); FINISH_ENCODE(); @@ -585,8 +585,8 @@ namespace SoF ENCODE(OP_DzSetLeaderName) { - ENCODE_LENGTH_EXACT(ExpeditionSetLeaderName_Struct); - SETUP_DIRECT_ENCODE(ExpeditionSetLeaderName_Struct, structs::ExpeditionSetLeaderName_Struct); + ENCODE_LENGTH_EXACT(DynamicZoneLeaderName_Struct); + SETUP_DIRECT_ENCODE(DynamicZoneLeaderName_Struct, structs::DynamicZoneLeaderName_Struct); OUT(client_id); strn0cpy(eq->leader_name, emu->leader_name, sizeof(eq->leader_name)); @@ -596,7 +596,7 @@ namespace SoF ENCODE(OP_DzMemberList) { - SETUP_VAR_ENCODE(ExpeditionMemberList_Struct); + SETUP_VAR_ENCODE(DynamicZoneMemberList_Struct); SerializeBuffer buf; buf.WriteUInt32(emu->client_id); @@ -604,7 +604,7 @@ namespace SoF for (uint32 i = 0; i < emu->member_count; ++i) { buf.WriteString(emu->members[i].name); - buf.WriteUInt8(emu->members[i].expedition_status); + buf.WriteUInt8(emu->members[i].online_status); } __packet->size = buf.size(); @@ -616,8 +616,8 @@ namespace SoF ENCODE(OP_DzMemberListName) { - ENCODE_LENGTH_EXACT(ExpeditionMemberListName_Struct); - SETUP_DIRECT_ENCODE(ExpeditionMemberListName_Struct, structs::ExpeditionMemberListName_Struct); + ENCODE_LENGTH_EXACT(DynamicZoneMemberListName_Struct); + SETUP_DIRECT_ENCODE(DynamicZoneMemberListName_Struct, structs::DynamicZoneMemberListName_Struct); OUT(client_id); OUT(add_name); @@ -628,7 +628,7 @@ namespace SoF ENCODE(OP_DzMemberListStatus) { - auto emu = reinterpret_cast((*p)->pBuffer); + auto emu = reinterpret_cast((*p)->pBuffer); if (emu->member_count == 1) { ENCODE_FORWARD(OP_DzMemberList); diff --git a/common/patches/sof_structs.h b/common/patches/sof_structs.h index 96edbeb98..97b200a91 100644 --- a/common/patches/sof_structs.h +++ b/common/patches/sof_structs.h @@ -4112,29 +4112,29 @@ struct ExpeditionInviteResponse_Struct /*075*/ uint8 unknown079; // padding/garbage? }; -struct ExpeditionInfo_Struct +struct DynamicZoneInfo_Struct { /*000*/ uint32 client_id; /*004*/ uint32 assigned; // padded bool /*008*/ uint32 max_players; -/*012*/ char expedition_name[128]; +/*012*/ char dz_name[128]; /*140*/ char leader_name[64]; }; -struct ExpeditionMemberEntry_Struct +struct DynamicZoneMemberEntry_Struct { -/*000*/ char name[1]; // variable length, null terminated, max 0x40 (64) -/*000*/ uint8 expedition_status; // 0: unknown 1: Online, 2: Offline, 3: In Dynamic Zone, 4: Link Dead +/*000*/ char name[1]; // variable length, null terminated, max 0x40 (64) +/*000*/ uint8 online_status; // 0: unknown 1: Online, 2: Offline, 3: In Dynamic Zone, 4: Link Dead }; -struct ExpeditionMemberList_Struct +struct DynamicZoneMemberList_Struct { /*000*/ uint32 client_id; /*004*/ uint32 member_count; -/*008*/ ExpeditionMemberEntry_Struct members[0]; // variable length +/*008*/ DynamicZoneMemberEntry_Struct members[0]; // variable length }; -struct ExpeditionMemberListName_Struct +struct DynamicZoneMemberListName_Struct { /*000*/ uint32 client_id; /*004*/ uint32 add_name; // padded bool, 0: remove name, 1: add name with unknown status @@ -4156,7 +4156,7 @@ struct ExpeditionLockoutTimers_Struct /*008*/ ExpeditionLockoutTimerEntry_Struct timers[0]; }; -struct ExpeditionSetLeaderName_Struct +struct DynamicZoneLeaderName_Struct { /*000*/ uint32 client_id; /*004*/ char leader_name[64]; diff --git a/common/patches/titanium.cpp b/common/patches/titanium.cpp index 9bc1f161f..bb35d9f87 100644 --- a/common/patches/titanium.cpp +++ b/common/patches/titanium.cpp @@ -476,13 +476,13 @@ namespace Titanium ENCODE(OP_DzExpeditionInfo) { - ENCODE_LENGTH_EXACT(ExpeditionInfo_Struct); - SETUP_DIRECT_ENCODE(ExpeditionInfo_Struct, structs::ExpeditionInfo_Struct); + ENCODE_LENGTH_EXACT(DynamicZoneInfo_Struct); + SETUP_DIRECT_ENCODE(DynamicZoneInfo_Struct, structs::DynamicZoneInfo_Struct); OUT(client_id); OUT(assigned); OUT(max_players); - strn0cpy(eq->expedition_name, emu->expedition_name, sizeof(eq->expedition_name)); + strn0cpy(eq->dz_name, emu->dz_name, sizeof(eq->dz_name)); strn0cpy(eq->leader_name, emu->leader_name, sizeof(eq->leader_name)); FINISH_ENCODE(); @@ -528,8 +528,8 @@ namespace Titanium ENCODE(OP_DzSetLeaderName) { - ENCODE_LENGTH_EXACT(ExpeditionSetLeaderName_Struct); - SETUP_DIRECT_ENCODE(ExpeditionSetLeaderName_Struct, structs::ExpeditionSetLeaderName_Struct); + ENCODE_LENGTH_EXACT(DynamicZoneLeaderName_Struct); + SETUP_DIRECT_ENCODE(DynamicZoneLeaderName_Struct, structs::DynamicZoneLeaderName_Struct); OUT(client_id); strn0cpy(eq->leader_name, emu->leader_name, sizeof(eq->leader_name)); @@ -539,7 +539,7 @@ namespace Titanium ENCODE(OP_DzMemberList) { - SETUP_VAR_ENCODE(ExpeditionMemberList_Struct); + SETUP_VAR_ENCODE(DynamicZoneMemberList_Struct); SerializeBuffer buf; buf.WriteUInt32(emu->client_id); @@ -547,7 +547,7 @@ namespace Titanium for (uint32 i = 0; i < emu->member_count; ++i) { buf.WriteString(emu->members[i].name); - buf.WriteUInt8(emu->members[i].expedition_status); + buf.WriteUInt8(emu->members[i].online_status); } __packet->size = buf.size(); @@ -559,8 +559,8 @@ namespace Titanium ENCODE(OP_DzMemberListName) { - ENCODE_LENGTH_EXACT(ExpeditionMemberListName_Struct); - SETUP_DIRECT_ENCODE(ExpeditionMemberListName_Struct, structs::ExpeditionMemberListName_Struct); + ENCODE_LENGTH_EXACT(DynamicZoneMemberListName_Struct); + SETUP_DIRECT_ENCODE(DynamicZoneMemberListName_Struct, structs::DynamicZoneMemberListName_Struct); OUT(client_id); OUT(add_name); @@ -571,7 +571,7 @@ namespace Titanium ENCODE(OP_DzMemberListStatus) { - auto emu = reinterpret_cast((*p)->pBuffer); + auto emu = reinterpret_cast((*p)->pBuffer); if (emu->member_count == 1) { ENCODE_FORWARD(OP_DzMemberList); diff --git a/common/patches/titanium_structs.h b/common/patches/titanium_structs.h index e3d0313a3..2846288bc 100644 --- a/common/patches/titanium_structs.h +++ b/common/patches/titanium_structs.h @@ -3323,29 +3323,29 @@ struct ExpeditionInviteResponse_Struct /*075*/ uint8 unknown079; // padding/garbage? }; -struct ExpeditionInfo_Struct +struct DynamicZoneInfo_Struct { /*000*/ uint32 client_id; /*004*/ uint32 assigned; // padded bool /*008*/ uint32 max_players; -/*012*/ char expedition_name[128]; +/*012*/ char dz_name[128]; /*140*/ char leader_name[64]; }; -struct ExpeditionMemberEntry_Struct +struct DynamicZoneMemberEntry_Struct { -/*000*/ char name[1]; // variable length, null terminated, max 0x40 (64) -/*000*/ uint8 expedition_status; // 0: unknown 1: Online, 2: Offline, 3: In Dynamic Zone, 4: Link Dead +/*000*/ char name[1]; // variable length, null terminated, max 0x40 (64) +/*000*/ uint8 online_status; // 0: unknown 1: Online, 2: Offline, 3: In Dynamic Zone, 4: Link Dead }; -struct ExpeditionMemberList_Struct +struct DynamicZoneMemberList_Struct { /*000*/ uint32 client_id; /*004*/ uint32 member_count; -/*008*/ ExpeditionMemberEntry_Struct members[0]; // variable length +/*008*/ DynamicZoneMemberEntry_Struct members[0]; // variable length }; -struct ExpeditionMemberListName_Struct +struct DynamicZoneMemberListName_Struct { /*000*/ uint32 client_id; /*004*/ uint32 add_name; // padded bool, 0: remove name, 1: add name with unknown status @@ -3367,7 +3367,7 @@ struct ExpeditionLockoutTimers_Struct /*008*/ ExpeditionLockoutTimerEntry_Struct timers[0]; }; -struct ExpeditionSetLeaderName_Struct +struct DynamicZoneLeaderName_Struct { /*000*/ uint32 client_id; /*004*/ char leader_name[64]; diff --git a/common/patches/uf.cpp b/common/patches/uf.cpp index 2be12c733..c23415737 100644 --- a/common/patches/uf.cpp +++ b/common/patches/uf.cpp @@ -675,13 +675,13 @@ namespace UF ENCODE(OP_DzExpeditionInfo) { - ENCODE_LENGTH_EXACT(ExpeditionInfo_Struct); - SETUP_DIRECT_ENCODE(ExpeditionInfo_Struct, structs::ExpeditionInfo_Struct); + ENCODE_LENGTH_EXACT(DynamicZoneInfo_Struct); + SETUP_DIRECT_ENCODE(DynamicZoneInfo_Struct, structs::DynamicZoneInfo_Struct); OUT(client_id); OUT(assigned); OUT(max_players); - strn0cpy(eq->expedition_name, emu->expedition_name, sizeof(eq->expedition_name)); + strn0cpy(eq->dz_name, emu->dz_name, sizeof(eq->dz_name)); strn0cpy(eq->leader_name, emu->leader_name, sizeof(eq->leader_name)); FINISH_ENCODE(); @@ -727,8 +727,8 @@ namespace UF ENCODE(OP_DzSetLeaderName) { - ENCODE_LENGTH_EXACT(ExpeditionSetLeaderName_Struct); - SETUP_DIRECT_ENCODE(ExpeditionSetLeaderName_Struct, structs::ExpeditionSetLeaderName_Struct); + ENCODE_LENGTH_EXACT(DynamicZoneLeaderName_Struct); + SETUP_DIRECT_ENCODE(DynamicZoneLeaderName_Struct, structs::DynamicZoneLeaderName_Struct); OUT(client_id); strn0cpy(eq->leader_name, emu->leader_name, sizeof(eq->leader_name)); @@ -738,7 +738,7 @@ namespace UF ENCODE(OP_DzMemberList) { - SETUP_VAR_ENCODE(ExpeditionMemberList_Struct); + SETUP_VAR_ENCODE(DynamicZoneMemberList_Struct); SerializeBuffer buf; buf.WriteUInt32(emu->client_id); @@ -746,7 +746,7 @@ namespace UF for (uint32 i = 0; i < emu->member_count; ++i) { buf.WriteString(emu->members[i].name); - buf.WriteUInt8(emu->members[i].expedition_status); + buf.WriteUInt8(emu->members[i].online_status); } __packet->size = buf.size(); @@ -758,8 +758,8 @@ namespace UF ENCODE(OP_DzMemberListName) { - ENCODE_LENGTH_EXACT(ExpeditionMemberListName_Struct); - SETUP_DIRECT_ENCODE(ExpeditionMemberListName_Struct, structs::ExpeditionMemberListName_Struct); + ENCODE_LENGTH_EXACT(DynamicZoneMemberListName_Struct); + SETUP_DIRECT_ENCODE(DynamicZoneMemberListName_Struct, structs::DynamicZoneMemberListName_Struct); OUT(client_id); OUT(add_name); @@ -770,7 +770,7 @@ namespace UF ENCODE(OP_DzMemberListStatus) { - auto emu = reinterpret_cast((*p)->pBuffer); + auto emu = reinterpret_cast((*p)->pBuffer); if (emu->member_count == 1) { ENCODE_FORWARD(OP_DzMemberList); diff --git a/common/patches/uf_structs.h b/common/patches/uf_structs.h index 5ac8ac3c2..6c1b4a4ed 100644 --- a/common/patches/uf_structs.h +++ b/common/patches/uf_structs.h @@ -4277,30 +4277,30 @@ struct ExpeditionInviteResponse_Struct /*079*/ uint8 unknown079; // padding garbage? }; -struct ExpeditionInfo_Struct +struct DynamicZoneInfo_Struct { /*000*/ uint32 client_id; /*004*/ uint32 unknown004; /*008*/ uint32 assigned; // padded bool /*012*/ uint32 max_players; -/*016*/ char expedition_name[128]; +/*016*/ char dz_name[128]; /*144*/ char leader_name[64]; }; -struct ExpeditionMemberEntry_Struct +struct DynamicZoneMemberEntry_Struct { -/*000*/ char name[1]; // variable length, null terminated, max 0x40 (64) -/*000*/ uint8 expedition_status; // 0: unknown 1: Online, 2: Offline, 3: In Dynamic Zone, 4: Link Dead +/*000*/ char name[1]; // variable length, null terminated, max 0x40 (64) +/*000*/ uint8 online_status; // 0: unknown 1: Online, 2: Offline, 3: In Dynamic Zone, 4: Link Dead }; -struct ExpeditionMemberList_Struct +struct DynamicZoneMemberList_Struct { /*000*/ uint32 client_id; /*004*/ uint32 member_count; // number of players in window -/*008*/ ExpeditionMemberEntry_Struct members[0]; // variable length +/*008*/ DynamicZoneMemberEntry_Struct members[0]; // variable length }; -struct ExpeditionMemberListName_Struct +struct DynamicZoneMemberListName_Struct { /*000*/ uint32 client_id; /*004*/ uint32 unknown004; @@ -4323,7 +4323,7 @@ struct ExpeditionLockoutTimers_Struct /*008*/ ExpeditionLockoutTimerEntry_Struct timers[0]; }; -struct ExpeditionSetLeaderName_Struct +struct DynamicZoneLeaderName_Struct { /*000*/ uint32 client_id; /*004*/ uint32 unknown004; diff --git a/world/expedition.cpp b/world/expedition.cpp index 723098013..fceb6c7dc 100644 --- a/world/expedition.cpp +++ b/world/expedition.cpp @@ -48,7 +48,7 @@ void Expedition::RemoveMember(uint32_t character_id) { RemoveInternalMember(character_id); - if (character_id == m_leader.char_id) + if (character_id == m_leader.id) { ChooseNewLeader(); } @@ -64,9 +64,9 @@ void Expedition::ChooseNewLeader() // we don't track expedition member status in world so may choose a linkdead member // this is fine since it will trigger another change when that member goes offline - auto it = std::find_if(m_members.begin(), m_members.end(), [&](const ExpeditionMember& member) { - if (member.char_id != m_leader.char_id) { - auto member_cle = client_list.FindCLEByCharacterID(member.char_id); + auto it = std::find_if(m_members.begin(), m_members.end(), [&](const DynamicZoneMember& member) { + if (member.id != m_leader.id) { + auto member_cle = client_list.FindCLEByCharacterID(member.id); return (member_cle && member_cle->GetOnline() == CLE_Status::InZone); } return false; @@ -76,7 +76,7 @@ void Expedition::ChooseNewLeader() { // no online members found, fallback to choosing any member it = std::find_if(m_members.begin(), m_members.end(), - [&](const ExpeditionMember& member) { return (member.char_id != m_leader.char_id); }); + [&](const DynamicZoneMember& member) { return (member.id != m_leader.id); }); } if (it != m_members.end() && SetNewLeader(*it)) @@ -85,15 +85,15 @@ void Expedition::ChooseNewLeader() } } -bool Expedition::SetNewLeader(const ExpeditionMember& member) +bool Expedition::SetNewLeader(const DynamicZoneMember& member) { - if (!HasMember(member.char_id)) + if (!HasMember(member.id)) { return false; } LogExpeditionsModerate("Replacing [{}] leader [{}] with [{}]", m_id, m_leader.name, member.name); - ExpeditionDatabase::UpdateLeaderID(m_id, member.char_id); + ExpeditionDatabase::UpdateLeaderID(m_id, member.id); m_leader = member; m_dynamic_zone.SetLeaderName(m_leader.name); SendZonesLeaderChanged(); @@ -125,7 +125,7 @@ void Expedition::SendZonesLeaderChanged() auto pack = std::make_unique(ServerOP_ExpeditionLeaderChanged, pack_size); auto buf = reinterpret_cast(pack->pBuffer); buf->expedition_id = GetID(); - buf->leader_id = m_leader.char_id; + buf->leader_id = m_leader.id; zoneserver_list.SendPacket(pack.get()); } diff --git a/world/expedition.h b/world/expedition.h index 11ae083ed..db0647093 100644 --- a/world/expedition.h +++ b/world/expedition.h @@ -41,7 +41,7 @@ public: void SendZonesExpeditionDeleted(); void SendZonesExpireWarning(uint32_t minutes_remaining); void SetDynamicZone(DynamicZone&& dz); - bool SetNewLeader(const ExpeditionMember& member); + bool SetNewLeader(const DynamicZoneMember& member); private: void SendZonesLeaderChanged(); diff --git a/world/expedition_state.cpp b/world/expedition_state.cpp index 19693e279..33a92d61c 100644 --- a/world/expedition_state.cpp +++ b/world/expedition_state.cpp @@ -115,13 +115,13 @@ void ExpeditionState::CacheExpeditions( } void ExpeditionState::MemberChange( - uint32_t expedition_id, const ExpeditionMember& member, bool remove) + uint32_t expedition_id, const DynamicZoneMember& member, bool remove) { auto expedition = GetExpedition(expedition_id); if (expedition) { if (remove) { - expedition->RemoveMember(member.char_id); + expedition->RemoveMember(member.id); } else { expedition->AddInternalMember(member); } diff --git a/world/expedition_state.h b/world/expedition_state.h index da8cdb306..90f4a4293 100644 --- a/world/expedition_state.h +++ b/world/expedition_state.h @@ -30,7 +30,7 @@ extern class ExpeditionState expedition_state; class Expedition; -struct ExpeditionMember; +struct DynamicZoneMember; class ExpeditionState { @@ -40,7 +40,7 @@ public: void CacheAllFromDatabase(); Expedition* GetExpedition(uint32_t expedition_id); Expedition* GetExpeditionByDynamicZoneID(uint32_t dz_id); - void MemberChange(uint32_t expedition_id, const ExpeditionMember& member, bool remove); + void MemberChange(uint32_t expedition_id, const DynamicZoneMember& member, bool remove); void Process(); void RemoveAllMembers(uint32_t expedition_id); diff --git a/zone/client.cpp b/zone/client.cpp index 6ffda19a9..2d6ad9994 100644 --- a/zone/client.cpp +++ b/zone/client.cpp @@ -3401,7 +3401,7 @@ void Client::LinkDead() Expedition* expedition = GetExpedition(); if (expedition) { - expedition->SetMemberStatus(this, ExpeditionMemberStatus::LinkDead); + expedition->SetMemberStatus(this, DynamicZoneMemberStatus::LinkDead); } // save_timer.Start(2500); @@ -9550,11 +9550,11 @@ void Client::UpdateExpeditionInfoAndLockouts() if (expedition->GetDynamicZone().IsCurrentZoneDzInstance()) { expedition->SyncCharacterLockouts(CharacterID(), m_expedition_lockouts); - expedition->SetMemberStatus(this, ExpeditionMemberStatus::InDynamicZone); + expedition->SetMemberStatus(this, DynamicZoneMemberStatus::InDynamicZone); } else { - expedition->SetMemberStatus(this, ExpeditionMemberStatus::Online); + expedition->SetMemberStatus(this, DynamicZoneMemberStatus::Online); } } diff --git a/zone/client_process.cpp b/zone/client_process.cpp index 384d3aab5..9c2175b27 100644 --- a/zone/client_process.cpp +++ b/zone/client_process.cpp @@ -183,7 +183,7 @@ bool Client::Process() { Expedition* expedition = GetExpedition(); if (expedition) { - expedition->SetMemberStatus(this, ExpeditionMemberStatus::Offline); + expedition->SetMemberStatus(this, DynamicZoneMemberStatus::Offline); } return false; //delete client @@ -578,7 +578,7 @@ bool Client::Process() { Expedition* expedition = GetExpedition(); if (expedition) { - expedition->SetMemberStatus(this, ExpeditionMemberStatus::LinkDead); + expedition->SetMemberStatus(this, DynamicZoneMemberStatus::LinkDead); } } } @@ -714,7 +714,7 @@ void Client::OnDisconnect(bool hard_disconnect) { Expedition* expedition = GetExpedition(); if (expedition && !bZoning) { - expedition->SetMemberStatus(this, ExpeditionMemberStatus::Offline); + expedition->SetMemberStatus(this, DynamicZoneMemberStatus::Offline); } RemoveAllAuras(); diff --git a/zone/expedition.cpp b/zone/expedition.cpp index 0c1481d7d..c3ef81e6a 100644 --- a/zone/expedition.cpp +++ b/zone/expedition.cpp @@ -50,7 +50,7 @@ const int32_t Expedition::EVENT_TIMER_ID = 1; Expedition::Expedition( uint32_t id, const std::string& uuid, DynamicZone&& dz, const std::string& expedition_name, - const ExpeditionMember& leader, uint32_t min_players, uint32_t max_players + const DynamicZoneMember& leader, uint32_t min_players, uint32_t max_players ) : ExpeditionBase(id, uuid, expedition_name, leader, min_players, max_players) { SetDynamicZone(std::move(dz)); @@ -109,7 +109,7 @@ Expedition* Expedition::TryCreate( expedition_uuid, std::move(dynamiczone), request.GetExpeditionName(), - ExpeditionMember{ request.GetLeaderID(), request.GetLeaderName() }, + DynamicZoneMember{ request.GetLeaderID(), request.GetLeaderName() }, request.GetMinPlayers(), request.GetMaxPlayers() ); @@ -264,7 +264,7 @@ void Expedition::SaveMembers(ExpeditionRequest& request) std::vector member_ids; for (const auto& member : m_members) { - member_ids.emplace_back(member.char_id); + member_ids.emplace_back(member.id); } ExpeditionDatabase::InsertMembers(m_id, m_members); @@ -484,11 +484,11 @@ bool Expedition::RemoveMember(const std::string& remove_char_name) return false; } - ExpeditionDatabase::DeleteMember(m_id, member.char_id); - m_dynamiczone.RemoveCharacter(member.char_id); + ExpeditionDatabase::DeleteMember(m_id, member.id); + m_dynamiczone.RemoveCharacter(member.id); - ProcessMemberRemoved(member.name, member.char_id); - SendWorldMemberChanged(member.name, member.char_id, true); + ProcessMemberRemoved(member.name, member.id); + SendWorldMemberChanged(member.name, member.id, true); return true; } @@ -507,17 +507,17 @@ void Expedition::SwapMember(Client* add_client, const std::string& remove_char_n } // make remove and add atomic to avoid racing with separate world messages - ExpeditionDatabase::DeleteMember(m_id, member.char_id); + ExpeditionDatabase::DeleteMember(m_id, member.id); ExpeditionDatabase::InsertMember(m_id, add_client->CharacterID()); - m_dynamiczone.RemoveCharacter(member.char_id); + m_dynamiczone.RemoveCharacter(member.id); m_dynamiczone.AddCharacter(add_client->CharacterID()); - ProcessMemberRemoved(member.name, member.char_id); + ProcessMemberRemoved(member.name, member.id); ProcessMemberAdded(add_client->GetName(), add_client->CharacterID()); - SendWorldMemberSwapped(member.name, member.char_id, add_client->GetName(), add_client->CharacterID()); + SendWorldMemberSwapped(member.name, member.id, add_client->GetName(), add_client->CharacterID()); } -void Expedition::SetMemberStatus(Client* client, ExpeditionMemberStatus status) +void Expedition::SetMemberStatus(Client* client, DynamicZoneMemberStatus status) { if (client) { @@ -526,14 +526,14 @@ void Expedition::SetMemberStatus(Client* client, ExpeditionMemberStatus status) // world could detect this itself but it'd have to process member status updates // a member coming online will trigger a leader change if all members were offline - if (m_leader.status == ExpeditionMemberStatus::Offline) + if (m_leader.status == DynamicZoneMemberStatus::Offline) { SendWorldExpeditionUpdate(ServerOP_ExpeditionChooseNewLeader); } } } -void Expedition::UpdateMemberStatus(uint32_t update_member_id, ExpeditionMemberStatus status) +void Expedition::UpdateMemberStatus(uint32_t update_member_id, DynamicZoneMemberStatus status) { auto member_data = GetMemberData(update_member_id); if (!member_data.IsValid()) @@ -541,12 +541,12 @@ void Expedition::UpdateMemberStatus(uint32_t update_member_id, ExpeditionMemberS return; } - if (status == ExpeditionMemberStatus::InDynamicZone && !RuleB(Expedition, EnableInDynamicZoneStatus)) + if (status == DynamicZoneMemberStatus::InDynamicZone && !RuleB(Expedition, EnableInDynamicZoneStatus)) { - status = ExpeditionMemberStatus::Online; + status = DynamicZoneMemberStatus::Online; } - if (update_member_id == m_leader.char_id) + if (update_member_id == m_leader.id) { m_leader.status = status; } @@ -561,12 +561,12 @@ void Expedition::UpdateMemberStatus(uint32_t update_member_id, ExpeditionMemberS for (auto& member : m_members) { - if (member.char_id == update_member_id) + if (member.id == update_member_id) { member.status = status; } - Client* member_client = entity_list.GetClientByCharID(member.char_id); + Client* member_client = entity_list.GetClientByCharID(member.id); if (member_client) { member_client->QueuePacket(outapp_member_status.get()); @@ -732,7 +732,7 @@ void Expedition::DzInviteResponse(Client* add_client, bool accepted, const std:: // a null leader_client is handled by SendLeaderMessage fallbacks // note current leader receives invite reply messages (if leader changed) - Client* leader_client = entity_list.GetClientByCharID(m_leader.char_id); + Client* leader_client = entity_list.GetClientByCharID(m_leader.id); if (!accepted) { @@ -756,7 +756,7 @@ void Expedition::DzInviteResponse(Client* add_client, bool accepted, const std:: if (was_swap_invite) { auto swap_member = GetMemberData(swap_remove_name); - if (!swap_member.IsValid() || !ExpeditionDatabase::HasMember(m_id, swap_member.char_id)) + if (!swap_member.IsValid() || !ExpeditionDatabase::HasMember(m_id, swap_member.id)) { has_conflicts = true; } @@ -808,7 +808,7 @@ bool Expedition::ConfirmLeaderCommand(Client* requester) return false; } - if (m_leader.char_id != requester->CharacterID()) + if (m_leader.id != requester->CharacterID()) { requester->MessageString(Chat::System, EXPEDITION_NOT_LEADER, m_leader.name.c_str()); return false; @@ -877,7 +877,7 @@ void Expedition::DzAddPlayer( if (member_data.IsValid()) { // live prioritizes offline message before already a member message - if (member_data.status == ExpeditionMemberStatus::Offline) + if (member_data.status == DynamicZoneMemberStatus::Offline) { requester->MessageString(Chat::Red, DZADD_NOT_ONLINE, add_char_name.c_str()); } @@ -1054,12 +1054,12 @@ void Expedition::ProcessLeaderChanged(uint32_t new_leader_id) auto outapp_leader = CreateLeaderNamePacket(); for (const auto& member : m_members) { - Client* member_client = entity_list.GetClientByCharID(member.char_id); + Client* member_client = entity_list.GetClientByCharID(member.id); if (member_client) { member_client->QueuePacket(outapp_leader.get()); - if (member.char_id == new_leader_id && RuleB(Expedition, AlwaysNotifyNewLeaderOnChange)) + if (member.id == new_leader_id && RuleB(Expedition, AlwaysNotifyNewLeaderOnChange)) { member_client->MessageString(Chat::Yellow, DZMAKELEADER_YOU); } @@ -1096,13 +1096,13 @@ void Expedition::ProcessMakeLeader(Client* old_leader_client, Client* new_leader void Expedition::ProcessMemberAdded(const std::string& char_name, uint32_t added_char_id) { // adds the member to this expedition and notifies both leader and new member - Client* leader_client = entity_list.GetClientByCharID(m_leader.char_id); + Client* leader_client = entity_list.GetClientByCharID(m_leader.id); if (leader_client) { leader_client->MessageString(Chat::Yellow, EXPEDITION_MEMBER_ADDED, char_name.c_str(), m_expedition_name.c_str()); } - AddInternalMember({ added_char_id, char_name, ExpeditionMemberStatus::Online }); + AddInternalMember({ added_char_id, char_name, DynamicZoneMemberStatus::Online }); Client* member_client = entity_list.GetClientByCharID(added_char_id); if (member_client) @@ -1129,7 +1129,7 @@ void Expedition::ProcessMemberRemoved(const std::string& removed_char_name, uint { bool is_removed = (it->name == removed_char_name); - Client* member_client = entity_list.GetClientByCharID(it->char_id); + Client* member_client = entity_list.GetClientByCharID(it->id); if (member_client) { // all members receive the removed player name packet @@ -1175,7 +1175,7 @@ void Expedition::ProcessLockoutDuration( for (const auto& member : m_members) { - Client* member_client = entity_list.GetClientByCharID(member.char_id); + Client* member_client = entity_list.GetClientByCharID(member.id); if (member_client) { member_client->AddExpeditionLockoutDuration(m_expedition_name, @@ -1192,7 +1192,7 @@ void Expedition::ProcessLockoutDuration( void Expedition::AddLockoutDurationClients( const ExpeditionLockoutTimer& lockout, int seconds, uint32_t exclude_id) { - std::vector lockout_clients; + std::vector lockout_clients; for (const auto& client_iter : entity_list.GetClientList()) { Client* client = client_iter.second; @@ -1228,7 +1228,7 @@ void Expedition::ProcessLockoutUpdate( for (const auto& member : m_members) { - Client* member_client = entity_list.GetClientByCharID(member.char_id); + Client* member_client = entity_list.GetClientByCharID(member.id); if (member_client) { if (!remove) @@ -1254,7 +1254,7 @@ void Expedition::ProcessLockoutUpdate( void Expedition::AddLockoutClients( const ExpeditionLockoutTimer& lockout, uint32_t exclude_expedition_id) { - std::vector lockout_clients; + std::vector lockout_clients; for (const auto& client_iter : entity_list.GetClientList()) { Client* client = client_iter.second; @@ -1283,7 +1283,7 @@ void Expedition::SendNewMemberAddedToZoneMembers(const std::string& added_name) { if (member.name != added_name) // new member already updated { - Client* member_client = entity_list.GetClientByCharID(member.char_id); + Client* member_client = entity_list.GetClientByCharID(member.id); if (member_client) { member_client->QueuePacket(outapp_members.get()); @@ -1301,7 +1301,7 @@ void Expedition::SendUpdatesToZoneMembers(bool clear, bool message_on_clear) for (const auto& member : m_members) { - Client* member_client = entity_list.GetClientByCharID(member.char_id); + Client* member_client = entity_list.GetClientByCharID(member.id); if (member_client) { member_client->SetExpeditionID(clear ? 0 : GetID()); @@ -1349,13 +1349,13 @@ std::unique_ptr Expedition::CreateExpireWarningPacket(uint3 std::unique_ptr Expedition::CreateInfoPacket(bool clear) { - uint32_t outsize = sizeof(ExpeditionInfo_Struct); + uint32_t outsize = sizeof(DynamicZoneInfo_Struct); auto outapp = std::make_unique(OP_DzExpeditionInfo, outsize); - auto info = reinterpret_cast(outapp->pBuffer); + auto info = reinterpret_cast(outapp->pBuffer); if (!clear) { info->assigned = true; - strn0cpy(info->expedition_name, m_expedition_name.c_str(), sizeof(info->expedition_name)); + strn0cpy(info->dz_name, m_expedition_name.c_str(), sizeof(info->dz_name)); strn0cpy(info->leader_name, m_leader.name.c_str(), sizeof(info->leader_name)); info->max_players = m_max_players; } @@ -1380,10 +1380,10 @@ std::unique_ptr Expedition::CreateInvitePacket( std::unique_ptr Expedition::CreateMemberListPacket(bool clear) { uint32_t member_count = clear ? 0 : static_cast(m_members.size()); - uint32_t member_entries_size = sizeof(ExpeditionMemberEntry_Struct) * member_count; - uint32_t outsize = sizeof(ExpeditionMemberList_Struct) + member_entries_size; + uint32_t member_entries_size = sizeof(DynamicZoneMemberEntry_Struct) * member_count; + uint32_t outsize = sizeof(DynamicZoneMemberList_Struct) + member_entries_size; auto outapp = std::make_unique(OP_DzMemberList, outsize); - auto buf = reinterpret_cast(outapp->pBuffer); + auto buf = reinterpret_cast(outapp->pBuffer); buf->member_count = member_count; @@ -1392,7 +1392,7 @@ std::unique_ptr Expedition::CreateMemberListPacket(bool cle for (auto i = 0; i < m_members.size(); ++i) { strn0cpy(buf->members[i].name, m_members[i].name.c_str(), sizeof(buf->members[i].name)); - buf->members[i].expedition_status = static_cast(m_members[i].status); + buf->members[i].online_status = static_cast(m_members[i].status); } } @@ -1402,35 +1402,35 @@ std::unique_ptr Expedition::CreateMemberListPacket(bool cle std::unique_ptr Expedition::CreateMemberListNamePacket( const std::string& name, bool remove_name) { - uint32_t outsize = sizeof(ExpeditionMemberListName_Struct); + uint32_t outsize = sizeof(DynamicZoneMemberListName_Struct); auto outapp = std::make_unique(OP_DzMemberListName, outsize); - auto buf = reinterpret_cast(outapp->pBuffer); + auto buf = reinterpret_cast(outapp->pBuffer); buf->add_name = !remove_name; strn0cpy(buf->name, name.c_str(), sizeof(buf->name)); return outapp; } std::unique_ptr Expedition::CreateMemberListStatusPacket( - const std::string& name, ExpeditionMemberStatus status) + const std::string& name, DynamicZoneMemberStatus status) { // member list status uses member list struct with a single entry - uint32_t outsize = sizeof(ExpeditionMemberList_Struct) + sizeof(ExpeditionMemberEntry_Struct); + uint32_t outsize = sizeof(DynamicZoneMemberList_Struct) + sizeof(DynamicZoneMemberEntry_Struct); auto outapp = std::make_unique(OP_DzMemberListStatus, outsize); - auto buf = reinterpret_cast(outapp->pBuffer); + auto buf = reinterpret_cast(outapp->pBuffer); buf->member_count = 1; - auto entry = reinterpret_cast(buf->members); + auto entry = static_cast(buf->members); strn0cpy(entry->name, name.c_str(), sizeof(entry->name)); - entry->expedition_status = static_cast(status); + entry->online_status = static_cast(status); return outapp; } std::unique_ptr Expedition::CreateLeaderNamePacket() { - uint32_t outsize = sizeof(ExpeditionSetLeaderName_Struct); + uint32_t outsize = sizeof(DynamicZoneLeaderName_Struct); auto outapp = std::make_unique(OP_DzSetLeaderName, outsize); - auto buf = reinterpret_cast(outapp->pBuffer); + auto buf = reinterpret_cast(outapp->pBuffer); strn0cpy(buf->leader_name, m_leader.name.c_str(), sizeof(buf->leader_name)); return outapp; } @@ -1521,7 +1521,7 @@ void Expedition::SendWorldMemberChanged(const std::string& char_name, uint32_t c worldserver.SendPacket(pack.get()); } -void Expedition::SendWorldMemberStatus(uint32_t character_id, ExpeditionMemberStatus status) +void Expedition::SendWorldMemberStatus(uint32_t character_id, DynamicZoneMemberStatus status) { uint32_t pack_size = sizeof(ServerExpeditionMemberStatus_Struct); auto pack = std::make_unique(ServerOP_ExpeditionMemberStatus, pack_size); @@ -1794,7 +1794,7 @@ void Expedition::HandleWorldMessage(ServerPacket* pack) auto expedition = Expedition::FindCachedExpeditionByID(buf->expedition_id); if (expedition) { - expedition->UpdateMemberStatus(buf->character_id, static_cast(buf->status)); + expedition->UpdateMemberStatus(buf->character_id, static_cast(buf->status)); } } break; @@ -1836,10 +1836,10 @@ void Expedition::HandleWorldMessage(ServerPacket* pack) if (expedition) { auto is_online = member->character_online; - auto status = is_online ? ExpeditionMemberStatus::Online : ExpeditionMemberStatus::Offline; + auto status = is_online ? DynamicZoneMemberStatus::Online : DynamicZoneMemberStatus::Offline; if (is_online && expedition->GetDynamicZone().IsInstanceID(member->character_instance_id)) { - status = ExpeditionMemberStatus::InDynamicZone; + status = DynamicZoneMemberStatus::InDynamicZone; } expedition->UpdateMemberStatus(member->character_id, status); } @@ -1922,7 +1922,7 @@ void Expedition::SendCompassUpdateToZoneMembers() { for (const auto& member : m_members) { - Client* member_client = entity_list.GetClientByCharID(member.char_id); + Client* member_client = entity_list.GetClientByCharID(member.id); if (member_client) { member_client->SendDzCompassUpdate(); @@ -2036,7 +2036,7 @@ void Expedition::SendMembersExpireWarning(uint32_t minutes_remaining) auto outapp = CreateExpireWarningPacket(minutes_remaining); for (const auto& member : m_members) { - Client* member_client = entity_list.GetClientByCharID(member.char_id); + Client* member_client = entity_list.GetClientByCharID(member.id); if (member_client) { member_client->QueuePacket(outapp.get()); diff --git a/zone/expedition.h b/zone/expedition.h index d6e906fc7..adce73fcd 100644 --- a/zone/expedition.h +++ b/zone/expedition.h @@ -52,7 +52,7 @@ class Expedition : public ExpeditionBase public: Expedition() = default; Expedition(uint32_t id, const std::string& uuid, DynamicZone&& dz, const std::string& expedition_name, - const ExpeditionMember& leader, uint32_t min_players, uint32_t max_players); + const DynamicZoneMember& leader, uint32_t min_players, uint32_t max_players); static Expedition* TryCreate(Client* requester, DynamicZone& dynamiczone, ExpeditionRequest& request); @@ -85,7 +85,7 @@ public: bool AddMember(const std::string& add_char_name, uint32_t add_char_id); void RemoveAllMembers(bool enable_removal_timers = true); bool RemoveMember(const std::string& remove_char_name); - void SetMemberStatus(Client* client, ExpeditionMemberStatus status); + void SetMemberStatus(Client* client, DynamicZoneMemberStatus status); void SwapMember(Client* add_client, const std::string& remove_char_name); bool IsLocked() const { return m_is_locked; } @@ -160,21 +160,21 @@ private: void SendWorldLockoutUpdate( const ExpeditionLockoutTimer& lockout, bool remove, bool members_only = false); void SendWorldMemberChanged(const std::string& char_name, uint32_t char_id, bool remove); - void SendWorldMemberStatus(uint32_t character_id, ExpeditionMemberStatus status); + void SendWorldMemberStatus(uint32_t character_id, DynamicZoneMemberStatus status); void SendWorldMemberSwapped(const std::string& remove_char_name, uint32_t remove_char_id, const std::string& add_char_name, uint32_t add_char_id); void SendWorldSettingChanged(uint16_t server_opcode, bool setting_value); void SetDynamicZone(DynamicZone&& dz); void TryAddClient(Client* add_client, const std::string& inviter_name, const std::string& swap_remove_name, Client* leader_client = nullptr); - void UpdateMemberStatus(uint32_t update_character_id, ExpeditionMemberStatus status); + void UpdateMemberStatus(uint32_t update_character_id, DynamicZoneMemberStatus status); std::unique_ptr CreateExpireWarningPacket(uint32_t minutes_remaining); std::unique_ptr CreateInfoPacket(bool clear = false); std::unique_ptr CreateInvitePacket(const std::string& inviter_name, const std::string& swap_remove_name); std::unique_ptr CreateMemberListPacket(bool clear = false); std::unique_ptr CreateMemberListNamePacket(const std::string& name, bool remove_name); - std::unique_ptr CreateMemberListStatusPacket(const std::string& name, ExpeditionMemberStatus status); + std::unique_ptr CreateMemberListStatusPacket(const std::string& name, DynamicZoneMemberStatus status); std::unique_ptr CreateLeaderNamePacket(); DynamicZone m_dynamiczone { DynamicZoneType::Expedition }; diff --git a/zone/expedition_database.cpp b/zone/expedition_database.cpp index e1b5c0bf6..af6948f5f 100644 --- a/zone/expedition_database.cpp +++ b/zone/expedition_database.cpp @@ -174,7 +174,7 @@ void ExpeditionDatabase::DeleteCharacterLockout( } void ExpeditionDatabase::DeleteMembersLockout( - const std::vector& members, + const std::vector& members, const std::string& expedition_name, const std::string& event_name) { LogExpeditionsDetail("Deleting members lockout: [{}]:[{}]", expedition_name, event_name); @@ -182,7 +182,7 @@ void ExpeditionDatabase::DeleteMembersLockout( std::string query_character_ids; for (const auto& member : members) { - fmt::format_to(std::back_inserter(query_character_ids), "{},", member.char_id); + fmt::format_to(std::back_inserter(query_character_ids), "{},", member.id); } if (!query_character_ids.empty()) @@ -312,7 +312,7 @@ void ExpeditionDatabase::InsertCharacterLockouts(uint32_t character_id, } void ExpeditionDatabase::InsertMembersLockout( - const std::vector& members, const ExpeditionLockoutTimer& lockout) + const std::vector& members, const ExpeditionLockoutTimer& lockout) { LogExpeditionsDetail( "Inserting members lockout [{}]:[{}] with expire time [{}]", @@ -324,7 +324,7 @@ void ExpeditionDatabase::InsertMembersLockout( { fmt::format_to(std::back_inserter(insert_values), "({}, FROM_UNIXTIME({}), {}, '{}', '{}', '{}'),", - member.char_id, + member.id, lockout.GetExpireTime(), lockout.GetDuration(), lockout.GetExpeditionUUID(), @@ -431,7 +431,7 @@ void ExpeditionDatabase::InsertMember(uint32_t expedition_id, uint32_t character } void ExpeditionDatabase::InsertMembers( - uint32_t expedition_id, const std::vector& members) + uint32_t expedition_id, const std::vector& members) { LogExpeditionsDetail("Inserting characters into expedition [{}]", expedition_id); @@ -440,7 +440,7 @@ void ExpeditionDatabase::InsertMembers( { fmt::format_to(std::back_inserter(insert_values), "({}, {}),", - expedition_id, member.char_id + expedition_id, member.id ); } @@ -504,7 +504,7 @@ void ExpeditionDatabase::UpdateReplayLockoutOnJoin(uint32_t expedition_id, bool database.QueryDatabase(query); } -void ExpeditionDatabase::AddLockoutDuration(const std::vector& members, +void ExpeditionDatabase::AddLockoutDuration(const std::vector& members, const ExpeditionLockoutTimer& lockout, int seconds) { LogExpeditionsDetail( @@ -516,7 +516,7 @@ void ExpeditionDatabase::AddLockoutDuration(const std::vector& { fmt::format_to(std::back_inserter(insert_values), "({}, FROM_UNIXTIME({}), {}, '{}', '{}', '{}'),", - member.char_id, + member.id, lockout.GetExpireTime(), lockout.GetDuration(), lockout.GetExpeditionUUID(), diff --git a/zone/expedition_database.h b/zone/expedition_database.h index 9e0487b36..cce81c0fc 100644 --- a/zone/expedition_database.h +++ b/zone/expedition_database.h @@ -30,7 +30,7 @@ class Expedition; class ExpeditionLockoutTimer; -struct ExpeditionMember; +struct DynamicZoneMember; class MySQLRequestResult; namespace ExpeditionDatabase @@ -48,23 +48,23 @@ namespace ExpeditionDatabase void DeleteCharacterLockout(uint32_t character_id, const std::string& expedition_name, const std::string& event_name); void DeleteLockout(uint32_t expedition_id, const std::string& event_name); - void DeleteMembersLockout(const std::vector& members, + void DeleteMembersLockout(const std::vector& members, const std::string& expedition_name, const std::string& event_name); uint32_t GetExpeditionIDFromCharacterID(uint32_t character_id); uint32_t GetMemberCount(uint32_t expedition_id); bool HasMember(uint32_t expedition_id, uint32_t character_id); void InsertCharacterLockouts(uint32_t character_id, const std::vector& lockouts); - void InsertMembersLockout(const std::vector& members, + void InsertMembersLockout(const std::vector& members, const ExpeditionLockoutTimer& lockout); void InsertLockout(uint32_t expedition_id, const ExpeditionLockoutTimer& lockout); void InsertLockouts(uint32_t expedition_id, const std::unordered_map& lockouts); void InsertMember(uint32_t expedition_id, uint32_t character_id); - void InsertMembers(uint32_t expedition_id, const std::vector& members); + void InsertMembers(uint32_t expedition_id, const std::vector& members); void UpdateLockState(uint32_t expedition_id, bool is_locked); void UpdateReplayLockoutOnJoin(uint32_t expedition_id, bool add_on_join); - void AddLockoutDuration(const std::vector& members, + void AddLockoutDuration(const std::vector& members, const ExpeditionLockoutTimer& lockout, int seconds); }; diff --git a/zone/expedition_request.cpp b/zone/expedition_request.cpp index 465859df5..a1a2aa48e 100644 --- a/zone/expedition_request.cpp +++ b/zone/expedition_request.cpp @@ -221,7 +221,7 @@ bool ExpeditionRequest::CheckMembersForConflicts(const std::vector& return true; } - m_members.emplace_back(character.id, character.name, ExpeditionMemberStatus::Online); + m_members.emplace_back(character.id, character.name, DynamicZoneMemberStatus::Online); character_ids.emplace_back(character.id); } diff --git a/zone/expedition_request.h b/zone/expedition_request.h index b148d3132..64c594d3c 100644 --- a/zone/expedition_request.h +++ b/zone/expedition_request.h @@ -47,7 +47,7 @@ public: const std::string& GetNotAllAddedMessage() const { return m_not_all_added_msg; } uint32_t GetMinPlayers() const { return m_min_players; } uint32_t GetMaxPlayers() const { return m_max_players; } - std::vector GetMembers() const { return m_members; } + std::vector GetMembers() const { return m_members; } std::unordered_map GetLockouts() const { return m_lockouts; } private: @@ -72,7 +72,7 @@ private: std::string m_expedition_name; std::string m_leader_name; std::string m_not_all_added_msg; - std::vector m_members; + std::vector m_members; std::unordered_map m_lockouts; }; diff --git a/zone/lua_expedition.cpp b/zone/lua_expedition.cpp index 434cc5726..f19e417ff 100644 --- a/zone/lua_expedition.cpp +++ b/zone/lua_expedition.cpp @@ -115,7 +115,7 @@ luabind::object Lua_Expedition::GetMembers(lua_State* L) { auto self = reinterpret_cast(d_); for (const auto& member : self->GetMembers()) { - lua_table[member.name] = member.char_id; + lua_table[member.name] = member.id; } } return lua_table; diff --git a/zone/perl_expedition.cpp b/zone/perl_expedition.cpp index ccba1e6a8..c0c483cfb 100644 --- a/zone/perl_expedition.cpp +++ b/zone/perl_expedition.cpp @@ -266,7 +266,7 @@ XS(XS_Expedition_GetMembers) { for (const auto& member : members) { hv_store(hash, member.name.c_str(), static_cast(member.name.size()), - newSVuv(member.char_id), 0); + newSVuv(member.id), 0); } ST(0) = sv_2mortal(newRV_noinc((SV*)hash));