aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Conditions/ConditionMgr.cpp
diff options
context:
space:
mode:
authorSpp <spp@jorge.gr>2013-05-21 11:27:12 +0200
committerSpp <spp@jorge.gr>2013-05-21 11:27:12 +0200
commitec0688ade37677d43e22c05b7c480217b0528709 (patch)
treee802c8a0fd2da0c7006b39c94c136821ff35ab6b /src/server/game/Conditions/ConditionMgr.cpp
parent86afccc8ff7f54d8ebf28473bc2799dc7e039083 (diff)
parent00c11688974fc00342a62387b6e2d682884e0721 (diff)
Merge branch 'master' into 4.3.4 (Added SQL to fix trinity_string conflict)
Conflicts: src/server/game/AI/EventAI/CreatureEventAIMgr.cpp src/server/game/DataStores/DBCStructure.h src/server/game/DataStores/DBCfmt.h src/server/game/Entities/Player/Player.cpp src/server/game/Entities/Unit/Unit.cpp src/server/game/Groups/Group.cpp src/server/game/Handlers/AuctionHouseHandler.cpp src/server/game/Miscellaneous/Language.h src/server/game/Spells/Auras/SpellAuraEffects.cpp src/server/game/Spells/Auras/SpellAuras.cpp src/server/scripts/EasternKingdoms/ZulGurub/boss_arlokk.cpp src/server/scripts/EasternKingdoms/ZulGurub/boss_grilek.cpp src/server/scripts/EasternKingdoms/ZulGurub/boss_hakkar.cpp src/server/scripts/EasternKingdoms/ZulGurub/boss_hazzarah.cpp src/server/scripts/EasternKingdoms/ZulGurub/boss_jindo.cpp src/server/scripts/EasternKingdoms/ZulGurub/boss_kilnara.cpp src/server/scripts/EasternKingdoms/ZulGurub/boss_mandokir.cpp src/server/scripts/EasternKingdoms/ZulGurub/boss_marli.cpp src/server/scripts/EasternKingdoms/ZulGurub/boss_thekal.cpp src/server/scripts/EasternKingdoms/ZulGurub/boss_wushoolay.cpp
Diffstat (limited to 'src/server/game/Conditions/ConditionMgr.cpp')
-rw-r--r--src/server/game/Conditions/ConditionMgr.cpp12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/server/game/Conditions/ConditionMgr.cpp b/src/server/game/Conditions/ConditionMgr.cpp
index 43ac9d1c30a..507f8e066e3 100644
--- a/src/server/game/Conditions/ConditionMgr.cpp
+++ b/src/server/game/Conditions/ConditionMgr.cpp
@@ -1134,6 +1134,9 @@ bool ConditionMgr::addToSpellImplicitTargetConditions(Condition* cond)
if ((1<<firstEffIndex) & *itr)
break;
+ if (firstEffIndex >= MAX_SPELL_EFFECTS)
+ return false;
+
// get shared data
ConditionList* sharedList = spellInfo->Effects[firstEffIndex].ImplicitTargetConditions;
@@ -1153,9 +1156,18 @@ bool ConditionMgr::addToSpellImplicitTargetConditions(Condition* cond)
{
// add new list, create new shared mask
sharedList = new ConditionList();
+ bool assigned = false;
for (uint8 i = firstEffIndex; i < MAX_SPELL_EFFECTS; ++i)
+ {
if ((1<<i) & commonMask)
+ {
spellInfo->Effects[i].ImplicitTargetConditions = sharedList;
+ assigned = true;
+ }
+ }
+
+ if (!assigned)
+ delete sharedList;
}
sharedList->push_back(cond);
break;