From 41d57ddab6e55a529eb9807f2a74c53c665954d9 Mon Sep 17 00:00:00 2001 From: Arthur Dene Ice Date: Tue, 2 Sep 2014 10:54:42 -0700 Subject: [PATCH] Fixed bug with loading failing on Guild bank areas --- zone/guild_mgr.cpp | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/zone/guild_mgr.cpp b/zone/guild_mgr.cpp index 37cc7a3de..927ca16f6 100644 --- a/zone/guild_mgr.cpp +++ b/zone/guild_mgr.cpp @@ -686,19 +686,26 @@ bool GuildBankManager::Load(uint32 guildID) else whoFor[0] = '\0'; - if(slot < 0 || - ((area != GuildBankMainArea || slot >= GUILD_BANK_MAIN_AREA_SIZE) || - (area == GuildBankMainArea || slot >= GUILD_BANK_DEPOSIT_AREA_SIZE))) + if(slot < 0) continue; - bank->Items.MainArea[slot].ItemID = itemID; - bank->Items.MainArea[slot].Quantity = qty; + GuildBankItem *itemSection = nullptr; - strn0cpy(bank->Items.MainArea[slot].Donator, donator, sizeof(donator)); + if (area == GuildBankMainArea && slot < GUILD_BANK_MAIN_AREA_SIZE) + itemSection = bank->Items.MainArea; + else if (area != GuildBankMainArea && slot < GUILD_BANK_DEPOSIT_AREA_SIZE) + itemSection = bank->Items.DepositArea; + else + continue; - bank->Items.MainArea[slot].Permissions = permissions; + itemSection[slot].ItemID = itemID; + itemSection[slot].Quantity = qty; - strn0cpy(bank->Items.MainArea[slot].WhoFor, whoFor, sizeof(whoFor)); + strn0cpy(itemSection[slot].Donator, donator, sizeof(donator)); + + itemSection[slot].Permissions = permissions; + + strn0cpy(itemSection[slot].WhoFor, whoFor, sizeof(whoFor)); } Banks.push_back(bank);