All pastes #919405 Raw Edit

Untitled

public text v1 · immutable
#919405 ·published 2008-02-26 20:13 UTC
rendered paste body
Index: game/Spell.cpp
===================================================================
--- game/Spell.cpp	(revision 5317)
+++ game/Spell.cpp	(working copy)
@@ -3542,9 +3542,7 @@
             if (m_rangedShoot)
                 return SPELL_FAILED_UNIT_NOT_INFRONT;
 
-            uint32 original_casttime = GetSpellCastTime(sCastTimesStore.LookupEntry(m_spellInfo->CastingTimeIndex));
-
-            if (original_casttime!= 0 && !IsPositiveSpell(m_spellInfo->Id) && !IsSingleTargetSpell(m_spellInfo->Id))
+            if (!IsPositiveSpell(m_spellInfo->Id) && IsDirectDamageSpell(m_spellInfo->Id))
                 return SPELL_FAILED_UNIT_NOT_INFRONT;
         }
     }
Index: game/SpellMgr.cpp
===================================================================
--- game/SpellMgr.cpp	(revision 5317)
+++ game/SpellMgr.cpp	(working copy)
@@ -417,7 +417,37 @@
             return false;
     return true;
 }
+bool IsDirectDamageSpell(uint32 spellId)
+{
+    SpellEntry const *spellInfo = sSpellStore.LookupEntry(spellId);
+    if (!spellInfo)
+        return false;
 
+    for (uint32 i=0; i<3; i++)
+    {
+        switch(spellInfo->Effect[i])
+        {
+            // Plain Damage
+            case SPELL_EFFECT_SCHOOL_DAMAGE:
+            case SPELL_EFFECT_ENVIRONMENTAL_DAMAGE:
+            // Weapon Based Damage
+            case SPELL_EFFECT_WEAPON:
+			case SPELL_EFFECT_WEAPON_DAMAGE:
+            case SPELL_EFFECT_WEAPON_DAMAGE_NOSCHOOL:
+            case SPELL_EFFECT_WEAPON_PERCENT_DAMAGE:
+			case SPELL_EFFECT_NORMALIZED_WEAPON_DMG:
+            // Special Damage
+            case SPELL_EFFECT_MANA_DRAIN:
+            case SPELL_EFFECT_HEALTH_LEECH:
+            case SPELL_EFFECT_POWER_BURN:
+				return true;
+            default:
+			break;
+        }
+    }
+
+    return false;
+}
 bool IsSingleTargetSpell(uint32 spellId)
 {
     SpellEntry const *spellInfo = sSpellStore.LookupEntry(spellId);
Index: game/SpellMgr.h
===================================================================
--- game/SpellMgr.h	(revision 5317)
+++ game/SpellMgr.h	(working copy)
@@ -100,6 +100,8 @@
 bool IsPositiveEffect(uint32 spellId, uint32 effIndex);
 bool IsPositiveTarget(uint32 targetA, uint32 targetB);
 
+bool IsDirectDamageSpell(uint32 spellId);
+
 bool IsSingleTargetSpell(uint32 spellId);
 bool IsSingleTargetSpells(SpellEntry const *spellInfo1, SpellEntry const *spellInfo2);