aboutsummaryrefslogtreecommitdiff
path: root/src/game/Spell.cpp
diff options
context:
space:
mode:
authormegamage <none@none>2009-03-18 21:39:09 -0600
committermegamage <none@none>2009-03-18 21:39:09 -0600
commit281d20be0d1c342f01798b1254fccb3b5a202bcd (patch)
treef2edf7a2f81a625d72f4beacb4523747ee004aad /src/game/Spell.cpp
parent886b2a51e9f3fdbb8f6353e47701be825f8cf4b3 (diff)
*Allow spells to summon vehicles.
--HG-- branch : trunk
Diffstat (limited to 'src/game/Spell.cpp')
-rw-r--r--src/game/Spell.cpp18
1 files changed, 15 insertions, 3 deletions
diff --git a/src/game/Spell.cpp b/src/game/Spell.cpp
index f352a9571d2..3dd11e105c3 100644
--- a/src/game/Spell.cpp
+++ b/src/game/Spell.cpp
@@ -4158,9 +4158,6 @@ SpellCastResult Spell::CheckCast(bool strict)
{
switch(m_spellInfo->EffectMiscValueB[i])
{
- case SUMMON_TYPE_POSESSED:
- case SUMMON_TYPE_RACE_CONTROLLER:
- case SUMMON_TYPE_STEAM_TONK:
case SUMMON_TYPE_DEMON:
case SUMMON_TYPE_SUMMON:
{
@@ -4172,6 +4169,21 @@ SpellCastResult Spell::CheckCast(bool strict)
break;
}
}
+ SummonPropertiesEntry const *SummonProperties = sSummonPropertiesStore.LookupEntry(m_spellInfo->EffectMiscValueB[i]);
+ if(!SummonProperties)
+ break;
+ switch(SummonProperties->Group)
+ {
+ case SUMMON_TYPE_POSSESSED:
+ {
+ if(m_caster->GetPetGUID())
+ return SPELL_FAILED_ALREADY_HAVE_SUMMON;
+
+ if(m_caster->GetCharmGUID())
+ return SPELL_FAILED_ALREADY_HAVE_CHARM;
+ break;
+ }
+ }
break;
}
// Not used for summon?