From ae40bba331bce7822696f2f306dd0d01789be0fe Mon Sep 17 00:00:00 2001 From: Kinglykrab Date: Fri, 24 Nov 2023 15:46:52 -0500 Subject: [PATCH] [Bug Fix] Changing Group Leader Invalidated GetLeaderName() # Notes - Utilizes fixes posted in https://github.com/EQEmu/Server/issues/3706 to resolve https://github.com/EQEmu/Server/issues/368. - Changing group leader caused issues because we assumed `member[0]` was always leader. --- zone/groups.cpp | 6 ++++++ zone/groups.h | 4 +++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/zone/groups.cpp b/zone/groups.cpp index a16e7d4872..dc94efb881 100644 --- a/zone/groups.cpp +++ b/zone/groups.cpp @@ -2510,3 +2510,9 @@ bool Group::IsLeader(const char* name) { return false; } + +std::string Group::GetGroupLeaderName(uint32 group_id) { + char leader_name_buffer[64] = { 0 }; + database.GetGroupLeadershipInfo(group_id, leader_name_buffer); + return std::string(leader_name_buffer); +} diff --git a/zone/groups.h b/zone/groups.h index 85a85ccae2..c49d4c0a2e 100644 --- a/zone/groups.h +++ b/zone/groups.h @@ -76,7 +76,7 @@ class Group : public GroupIDConsumer { void SplitMoney(uint32 copper, uint32 silver, uint32 gold, uint32 platinum, Client *splitter = nullptr); inline void SetLeader(Mob* c){ leader = c; }; inline Mob* GetLeader() { return leader; }; - const char* GetLeaderName() { return membername[0]; }; + const char* GetLeaderName() { return GetGroupLeaderName(GetID()).c_str(); }; void SendHPManaEndPacketsTo(Mob* newmember); void SendHPPacketsFrom(Mob* member); void SendManaPacketFrom(Mob* member); @@ -177,6 +177,8 @@ class Group : public GroupIDConsumer { int mentor_percent; XTargetAutoHaters m_autohatermgr; + + std::string GetGroupLeaderName(uint32 group_id); }; #endif