diff options
Diffstat (limited to 'src/server/game/Entities')
| -rw-r--r-- | src/server/game/Entities/Object/Object.cpp | 8 | ||||
| -rw-r--r-- | src/server/game/Entities/Object/Object.h | 2 |
2 files changed, 5 insertions, 5 deletions
diff --git a/src/server/game/Entities/Object/Object.cpp b/src/server/game/Entities/Object/Object.cpp index c6c7a1b8eb1..9feb2fb30ea 100644 --- a/src/server/game/Entities/Object/Object.cpp +++ b/src/server/game/Entities/Object/Object.cpp @@ -2584,19 +2584,19 @@ bool WorldObject::IsNeutralToAll() const return my_faction->IsNeutralToAll(); } -void WorldObject::CastSpell(CastSpellTargetArg const& targets, uint32 spellId, CastSpellExtraArgs const& args /*= { }*/) +SpellCastResult WorldObject::CastSpell(CastSpellTargetArg const& targets, uint32 spellId, CastSpellExtraArgs const& args /*= { }*/) { SpellInfo const* info = sSpellMgr->GetSpellInfo(spellId, args.CastDifficulty != DIFFICULTY_NONE ? args.CastDifficulty : GetMap()->GetDifficultyID()); if (!info) { TC_LOG_ERROR("entities.unit", "CastSpell: unknown spell %u by caster %s", spellId, GetGUID().ToString().c_str()); - return; + return SPELL_FAILED_SPELL_UNAVAILABLE; } if (!targets.Targets) { TC_LOG_ERROR("entities.unit", "CastSpell: Invalid target passed to spell cast %u by %s", spellId, GetGUID().ToString().c_str()); - return; + return SPELL_FAILED_BAD_TARGETS; } Spell* spell = new Spell(this, info, args.TriggerFlags, args.OriginalCaster, args.OriginalCastId); @@ -2604,7 +2604,7 @@ void WorldObject::CastSpell(CastSpellTargetArg const& targets, uint32 spellId, C spell->SetSpellValue(pair.first, pair.second); spell->m_CastItem = args.CastItem; - spell->prepare(*targets.Targets, args.TriggeringAura); + return spell->prepare(*targets.Targets, args.TriggeringAura); } // function based on function Unit::CanAttack from 13850 client diff --git a/src/server/game/Entities/Object/Object.h b/src/server/game/Entities/Object/Object.h index 24c48e8ccb6..a609595cbc3 100644 --- a/src/server/game/Entities/Object/Object.h +++ b/src/server/game/Entities/Object/Object.h @@ -598,7 +598,7 @@ class TC_GAME_API WorldObject : public Object, public WorldLocation bool IsNeutralToAll() const; // CastSpell's third arg can be a variety of things - check out CastSpellExtraArgs' constructors! - void CastSpell(CastSpellTargetArg const& targets, uint32 spellId, CastSpellExtraArgs const& args = { }); + SpellCastResult CastSpell(CastSpellTargetArg const& targets, uint32 spellId, CastSpellExtraArgs const& args = { }); bool IsValidAttackTarget(WorldObject const* target, SpellInfo const* bySpell = nullptr) const; bool IsValidAssistTarget(WorldObject const* target, SpellInfo const* bySpell = nullptr) const; |
