From abf73947f434b98524016e35554449bb47b4ca8b Mon Sep 17 00:00:00 2001 From: hg <4683435+hgtw@users.noreply.github.com> Date: Tue, 27 Apr 2021 19:53:56 -0400 Subject: [PATCH] [Dynamic Zones] Rename dynamic zone structs (#1327) * Rename dz member id field The name of the struct is enough to make this implicit * Rename dz member enum and struct Rename ExpeditionMember to DynamicZoneMember Rename ExpeditionMemberStatus to DynamicZoneMemberStatus * Rename dz window packet structs This makes it more clear the window may be used by any dynamic zone system not just expeditions (live missions fill the window when player doesn't have an active expedition). * Rename dz window packet fields --- common/dynamic_zone_base.h | 15 ++++ common/eq_constants.h | 2 +- common/eq_packet_structs.h | 21 +++--- common/expedition_base.cpp | 32 ++++----- common/expedition_base.h | 33 +++------ common/patches/rof.cpp | 20 +++--- common/patches/rof2.cpp | 20 +++--- common/patches/rof2_structs.h | 22 +++--- common/patches/rof_structs.h | 18 ++--- common/patches/sod.cpp | 20 +++--- common/patches/sod_structs.h | 18 ++--- common/patches/sof.cpp | 20 +++--- common/patches/sof_structs.h | 18 ++--- common/patches/titanium.cpp | 20 +++--- common/patches/titanium_structs.h | 18 ++--- common/patches/uf.cpp | 20 +++--- common/patches/uf_structs.h | 18 ++--- world/expedition.cpp | 18 ++--- world/expedition.h | 2 +- world/expedition_state.cpp | 4 +- world/expedition_state.h | 4 +- zone/client.cpp | 6 +- zone/client_process.cpp | 6 +- zone/expedition.cpp | 112 +++++++++++++++--------------- zone/expedition.h | 10 +-- zone/expedition_database.cpp | 16 ++--- zone/expedition_database.h | 10 +-- zone/expedition_request.cpp | 2 +- zone/expedition_request.h | 4 +- zone/lua_expedition.cpp | 2 +- zone/perl_expedition.cpp | 2 +- 31 files changed, 267 insertions(+), 266 deletions(-) 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));