From 8422ce6f25b0f047703e98f31d242609ba9e2686 Mon Sep 17 00:00:00 2001 From: KimLS Date: Tue, 9 Jun 2015 22:46:53 -0700 Subject: [PATCH] Moved effects to a vector since we dont need the random access by slot --- zone/aa.cpp | 14 +++++++------- zone/aa_rank.h | 2 +- zone/aa_rank_effects.h | 1 + 3 files changed, 9 insertions(+), 8 deletions(-) diff --git a/zone/aa.cpp b/zone/aa.cpp index a66b533f6..c9fa78ab2 100644 --- a/zone/aa.cpp +++ b/zone/aa.cpp @@ -2120,10 +2120,10 @@ void Client::SendAlternateAdvancementRank(int aa_id, int level) { outapp->SetWritePosition(sizeof(AARankInfo_Struct)); for(auto effect : rank->effects) { - outapp->WriteSInt32(effect.second.effect_id); - outapp->WriteSInt32(effect.second.base1); - outapp->WriteSInt32(effect.second.base2); - outapp->WriteSInt32(effect.first); + outapp->WriteSInt32(effect.effect_id); + outapp->WriteSInt32(effect.base1); + outapp->WriteSInt32(effect.base2); + outapp->WriteSInt32(effect.slot); } for(auto prereq : rank->prereqs) { @@ -2361,17 +2361,17 @@ bool ZoneDatabase::LoadAlternateAdvancementAbilities(std::unordered_map 12) + if(effect.slot < 1 || effect.slot > 12) continue; if(ranks.count(rank_id) > 0) { AA::Rank *rank = ranks[rank_id].get(); - rank->effects[slot] = effect; + rank->effects.push_back(effect); } } } else { diff --git a/zone/aa_rank.h b/zone/aa_rank.h index d35582834..20628a506 100644 --- a/zone/aa_rank.h +++ b/zone/aa_rank.h @@ -47,7 +47,7 @@ public: uint32 account_time_required; int total_cost; Ability *base_ability; - std::unordered_map effects; + std::vector effects; std::vector prereqs; }; diff --git a/zone/aa_rank_effects.h b/zone/aa_rank_effects.h index fd65d507f..d68937078 100644 --- a/zone/aa_rank_effects.h +++ b/zone/aa_rank_effects.h @@ -27,6 +27,7 @@ namespace AA struct RankEffect { + int slot; int effect_id; int base1; int base2;