From a0079ed59da4169a9a142620c918c962a5c9b0bf Mon Sep 17 00:00:00 2001 From: Triply Date: Sun, 4 Oct 2009 18:20:08 +0200 Subject: [PATCH] [8585] Fixed problem with guild_bank_rights not removed when guild master deleted rank. Problem reported by leak, Thx. Signed-off-by: Triply --- src/game/Guild.cpp | 5 +++++ src/shared/revision_nr.h | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/game/Guild.cpp b/src/game/Guild.cpp index 15f642c7e..596fc3966 100644 --- a/src/game/Guild.cpp +++ b/src/game/Guild.cpp @@ -647,6 +647,7 @@ void Guild::DelRank() // delete lowest guild_rank uint32 rank = GetLowestRank(); CharacterDatabase.PExecute("DELETE FROM guild_rank WHERE rid>='%u' AND guildid='%u'", rank, m_Id); + CharacterDatabase.PExecute("DELETE FROM guild_bank_right WHERE rid>='%u' AND guildid='%u'", rank, m_Id); m_Ranks.pop_back(); } @@ -1411,7 +1412,11 @@ void Guild::SetBankRightsAndSlots(uint32 rankId, uint8 TabId, uint32 right, uint if (rankId >= m_Ranks.size() || TabId >= GUILD_BANK_MAX_TABS || TabId >= m_PurchasedTabs) + { + //TODO remove next line, It is there just to repair existing bug in deleting guild rank + CharacterDatabase.PExecute("DELETE FROM guild_bank_right WHERE guildid='%u' AND rid='%u' AND TabId='%u'", m_Id, rankId, TabId); return; + } if (rankId == GR_GUILDMASTER) { diff --git a/src/shared/revision_nr.h b/src/shared/revision_nr.h index 568329454..c77d600ab 100644 --- a/src/shared/revision_nr.h +++ b/src/shared/revision_nr.h @@ -1,4 +1,4 @@ #ifndef __REVISION_NR_H__ #define __REVISION_NR_H__ - #define REVISION_NR "8584" + #define REVISION_NR "8585" #endif // __REVISION_NR_H__