aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/game/SpellAuras.cpp5
-rw-r--r--src/game/Unit.cpp6
2 files changed, 7 insertions, 4 deletions
diff --git a/src/game/SpellAuras.cpp b/src/game/SpellAuras.cpp
index 5a1648b82f7..c8b78b759c2 100644
--- a/src/game/SpellAuras.cpp
+++ b/src/game/SpellAuras.cpp
@@ -2768,6 +2768,11 @@ void AuraEffect::HandleAuraMounted(bool apply, bool Real)
if (minfo)
display_id = minfo->modelid;
+ //some spell has one aura of mount and one of vehicle
+ for(uint32 i = 0; i < MAX_SPELL_EFFECTS; ++i)
+ if(GetSpellProto()->Effect[i] == SPELL_EFFECT_SUMMON
+ && GetSpellProto()->EffectMiscValue[i] == GetMiscValue())
+ display_id = 0;
m_target->Mount(display_id);
}
else
diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp
index 4288ce1e58f..475a3dc5db7 100644
--- a/src/game/Unit.cpp
+++ b/src/game/Unit.cpp
@@ -9582,12 +9582,10 @@ float Unit::GetPPMProcChance(uint32 WeaponSpeed, float PPM, const SpellEntry * s
void Unit::Mount(uint32 mount)
{
- if(!mount)
- return;
-
RemoveAurasWithInterruptFlags(AURA_INTERRUPT_FLAG_MOUNT);
- SetUInt32Value(UNIT_FIELD_MOUNTDISPLAYID, mount);
+ if(mount)
+ SetUInt32Value(UNIT_FIELD_MOUNTDISPLAYID, mount);
SetFlag( UNIT_FIELD_FLAGS, UNIT_FLAG_MOUNT );