Changeset 142 for trunk/src/game/Spell.h

Show
Ignore:
Timestamp:
11/19/08 13:40:02 (17 years ago)
Author:
yumileroy
Message:

[svn] Fix teleport spells.
Fix cone spells.
Use interrupt_aura_flag to remove stealth/invisible/feign death auras.

Original author: megamage
Date: 2008-11-01 15:08:12-05:00

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • trunk/src/game/Spell.h

    r139 r142  
    112112            //m_srcZ = target.m_srcZ; 
    113113 
     114            m_mapId = 0; 
    114115            m_destX = target.m_destX; 
    115116            m_destY = target.m_destY; 
     
    127128        Unit *getUnitTarget() const { return m_unitTarget; } 
    128129        void setUnitTarget(Unit *target); 
    129         void setDestination(float x, float y, float z, bool send = true); 
     130        void setDestination(float x, float y, float z, bool send = true, uint32 mapId = 0); 
    130131        void setDestination(Unit *target, bool send = true); 
    131132 
     
    155156 
    156157        float m_srcX, m_srcY, m_srcZ; 
     158        uint32 m_mapId; 
    157159        float m_destX, m_destY, m_destZ; 
    158160        bool m_hasDest; 
     
    549551        float i_radius; 
    550552        SpellTargets i_TargetType; 
    551         Unit* i_originalCaster; 
     553        Unit* i_caster; 
    552554        uint32 i_entry; 
    553555 
     
    556558            : i_data(&data), i_spell(spell), i_push_type(type), i_radius(radius), i_TargetType(TargetType), i_entry(entry) 
    557559        { 
    558             i_originalCaster = spell.GetCaster(); 
     560            i_caster = spell.GetCaster(); 
    559561        } 
    560562 
     
    563565            assert(i_data); 
    564566 
    565             if(!i_originalCaster) 
     567            if(!i_caster) 
    566568                return; 
    567569 
     
    574576                { 
    575577                    case SPELL_TARGETS_FRIENDLY: 
    576                         if (!itr->getSource()->isTargetableForAttack() || !i_originalCaster->IsFriendlyTo( itr->getSource() )) 
     578                        if (!itr->getSource()->isTargetableForAttack() || !i_caster->IsFriendlyTo( itr->getSource() )) 
    577579                            continue; 
    578580                        break; 
     
    584586                            continue; 
    585587 
    586                         Unit* check = i_originalCaster->GetCharmerOrOwnerOrSelf(); 
     588                        Unit* check = i_caster->GetCharmerOrOwnerOrSelf(); 
    587589 
    588590                        if( check->GetTypeId()==TYPEID_PLAYER ) 
     
    608610                { 
    609611                    case PUSH_IN_FRONT: 
    610                         if(i_spell.GetCaster()->isInFront((Unit*)(itr->getSource()), i_radius, M_PI/3 )) 
     612                        if(i_caster->isInFront((Unit*)(itr->getSource()), i_radius, M_PI/3 )) 
    611613                            i_data->push_back(itr->getSource()); 
    612614                        break; 
    613615                    case PUSH_IN_BACK: 
    614                         if(i_spell.GetCaster()->isInBack((Unit*)(itr->getSource()), i_radius, M_PI/3 )) 
     616                        if(i_caster->isInBack((Unit*)(itr->getSource()), i_radius, M_PI/3 )) 
    615617                            i_data->push_back(itr->getSource()); 
    616618                        break; 
    617619                    case PUSH_IN_LINE: 
    618                         if(i_spell.GetCaster()->isInLine((Unit*)(itr->getSource()), i_radius )) 
     620                        if(i_caster->isInLine((Unit*)(itr->getSource()), i_radius )) 
    619621                            i_data->push_back(itr->getSource()); 
    620622                        break; 
    621623                    case PUSH_SELF_CENTER: 
    622                         if(i_spell.GetCaster()->IsWithinDistInMap((Unit*)(itr->getSource()), i_radius)) 
     624                        if(i_caster->IsWithinDistInMap((Unit*)(itr->getSource()), i_radius)) 
    623625                            i_data->push_back(itr->getSource()); 
    624626                        break;