Advertisement
Guest User

Untitled

a guest
Jun 28th, 2017
49
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 4.11 KB | None | 0 0
  1. /************************************************************************/
  2. /* IsDamagingSpell, this function seems slow, its only used rarely      */
  3. /************************************************************************/
  4. ARCEMU_INLINE bool IsDamagingSpell(SpellEntry *sp)
  5. {
  6.     switch (sp->Effect[0])
  7.     {
  8.         case SPELL_EFFECT_SCHOOL_DAMAGE:
  9.         case SPELL_EFFECT_ENVIRONMENTAL_DAMAGE:
  10.         case SPELL_EFFECT_HEALTH_LEECH:
  11.         case SPELL_EFFECT_WEAPON_DAMAGE_NOSCHOOL:
  12.         case SPELL_EFFECT_ADD_EXTRA_ATTACKS:
  13.         case SPELL_EFFECT_WEAPON_PERCENT_DAMAGE:
  14.         case SPELL_EFFECT_POWER_BURN:
  15.         case SPELL_EFFECT_ATTACK:
  16.             return true;
  17.     }
  18.     switch (sp->Effect[1])
  19.     {
  20.         case SPELL_EFFECT_SCHOOL_DAMAGE:
  21.         case SPELL_EFFECT_ENVIRONMENTAL_DAMAGE:
  22.         case SPELL_EFFECT_HEALTH_LEECH:
  23.         case SPELL_EFFECT_WEAPON_DAMAGE_NOSCHOOL:
  24.         case SPELL_EFFECT_ADD_EXTRA_ATTACKS:
  25.         case SPELL_EFFECT_WEAPON_PERCENT_DAMAGE:
  26.         case SPELL_EFFECT_POWER_BURN:
  27.         case SPELL_EFFECT_ATTACK:
  28.             return true;
  29.     }
  30.     switch (sp->Effect[2])
  31.     {
  32.         case SPELL_EFFECT_SCHOOL_DAMAGE:
  33.         case SPELL_EFFECT_ENVIRONMENTAL_DAMAGE:
  34.         case SPELL_EFFECT_HEALTH_LEECH:
  35.         case SPELL_EFFECT_WEAPON_DAMAGE_NOSCHOOL:
  36.         case SPELL_EFFECT_ADD_EXTRA_ATTACKS:
  37.         case SPELL_EFFECT_WEAPON_PERCENT_DAMAGE:
  38.         case SPELL_EFFECT_POWER_BURN:
  39.         case SPELL_EFFECT_ATTACK:
  40.             return true;
  41.     }
  42.     if( sp->Effect[0]==SPELL_EFFECT_APPLY_AURA ||
  43.         sp->Effect[0]==SPELL_EFFECT_APPLY_AREA_AURA ||
  44.         sp->Effect[0]==SPELL_EFFECT_APPLY_AREA_AURA2 )
  45.     {
  46.         switch (sp->EffectApplyAuraName[0])
  47.         {
  48.             case 3://SPELL_AURA_PERIODIC_DAMAGE:
  49.             case 43://SPELL_AURA_PROC_TRIGGER_DAMAGE:
  50.             case 89://SPELL_AURA_PERIODIC_DAMAGE_PERCENT:
  51.             case 162://SPELL_AURA_POWER_BURN:
  52.                 return true;
  53.         }
  54.     }
  55.     if( sp->Effect[1]==SPELL_EFFECT_APPLY_AURA ||
  56.         sp->Effect[1]==SPELL_EFFECT_APPLY_AREA_AURA ||
  57.         sp->Effect[1]==SPELL_EFFECT_APPLY_AREA_AURA2 )
  58.     {
  59.         switch (sp->EffectApplyAuraName[1])
  60.         {
  61.             case 3://SPELL_AURA_PERIODIC_DAMAGE:
  62.             case 43://SPELL_AURA_PROC_TRIGGER_DAMAGE:
  63.             case 89://SPELL_AURA_PERIODIC_DAMAGE_PERCENT:
  64.             case 162://SPELL_AURA_POWER_BURN:
  65.                 return true;
  66.         }
  67.     }
  68.     if( sp->Effect[2]==SPELL_EFFECT_APPLY_AURA ||
  69.         sp->Effect[2]==SPELL_EFFECT_APPLY_AREA_AURA ||
  70.         sp->Effect[2]==SPELL_EFFECT_APPLY_AREA_AURA2 )
  71.     {
  72.         switch (sp->EffectApplyAuraName[2])
  73.         {
  74.             case 3://SPELL_AURA_PERIODIC_DAMAGE:
  75.             case 43://SPELL_AURA_PROC_TRIGGER_DAMAGE:
  76.             case 89://SPELL_AURA_PERIODIC_DAMAGE_PERCENT:
  77.             case 162://SPELL_AURA_POWER_BURN:
  78.                 return true;
  79.         }
  80.     }
  81.     return false;
  82. }
  83.  
  84.  
  85.  
  86. /////////////////////////////////////////////////////////////////////////////////
  87. //bool IsDamagingSpell( SpellEntry *sp )
  88. //  Tells if a Spell is damaging
  89. //
  90. //Parameters
  91. //  SpellEntry *sp  -  Pointer to a SpellEntry structure
  92. //
  93. //Return Value
  94. //  Returns true if the Spell is damaging
  95. //  Returns false otherwise.
  96. //
  97. ////////////////////////////////////////////////////////////////////////////////
  98. ARCEMU_INLINE bool IsDamagingSpell( SpellEntry *sp ){
  99.  
  100.     if( sp->HasEffect( SPELL_EFFECT_SCHOOL_DAMAGE )          ||
  101.         sp->HasEffect( SPELL_EFFECT_ENVIRONMENTAL_DAMAGE )   ||
  102.         sp->HasEffect( SPELL_EFFECT_HEALTH_LEECH )           ||
  103.         sp->HasEffect( SPELL_EFFECT_WEAPON_DAMAGE_NOSCHOOL ) ||
  104.         sp->HasEffect( SPELL_EFFECT_ADD_EXTRA_ATTACKS )      ||
  105.         sp->HasEffect( SPELL_EFFECT_WEAPON_PERCENT_DAMAGE )  ||
  106.         sp->HasEffect( SPELL_EFFECT_POWER_BURN )             ||
  107.         sp->HasEffect( SPELL_EFFECT_ATTACK ) )
  108.         return true;
  109.  
  110.     if( sp->AppliesAura( SPELL_AURA_PERIODIC_DAMAGE )        ||
  111.         sp->AppliesAura( SPELL_AURA_PROC_TRIGGER_DAMAGE )    ||
  112.         sp->AppliesAura( SPELL_AURA_PERIODIC_DAMAGE_PERCENT )||
  113.         sp->AppliesAura( SPELL_AURA_POWER_BURN ) )
  114.         return true;
  115.  
  116.     return false;
  117. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement