Reworked spell system, part 1:
+implement FillCustomTargetMap
+FillTargetMap()
+cast(bool skipCheck)
+finish(bool ok)
+SendCastResult
+Spell::CheckCast(bool strict)
+Spell::CheckPetCast(Unit* target)

from R2