From 275c51340eb89af56501d84ff48553557d627d5a Mon Sep 17 00:00:00 2001 From: Trust Date: Thu, 30 Nov 2023 23:36:01 -0500 Subject: [PATCH] {EQEmu PR 3712} [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 a527f92fdb..2eafd912ef 100644 --- a/zone/groups.cpp +++ b/zone/groups.cpp @@ -2385,3 +2385,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 0686e962b2..60b1e9ee9d 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, bool share = false); 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