diff options
27 files changed, 100 insertions, 116 deletions
diff --git a/src/bindings/scripts/scripts/npc/npcs_special.cpp b/src/bindings/scripts/scripts/npc/npcs_special.cpp index 15d6370a82c..f63295e3a50 100644 --- a/src/bindings/scripts/scripts/npc/npcs_special.cpp +++ b/src/bindings/scripts/scripts/npc/npcs_special.cpp @@ -153,7 +153,7 @@ struct TRINITY_DLL_DECL npc_dancing_flamesAI : public ScriptedAI float x, y, z; m_creature->GetPosition(x,y,z); m_creature->Relocate(x,y,z + 0.94f); - m_creature->AddUnitMovementFlag(MOVEMENTFLAG_ONTRANSPORT | MOVEMENTFLAG_LEVITATING); + m_creature->AddUnitMovementFlag(MOVEMENTFLAG_LEVITATING); m_creature->HandleEmoteCommand(EMOTE_ONESHOT_DANCE); WorldPacket data; //send update position to client m_creature->BuildHeartBeatMsg(&data); diff --git a/src/bindings/scripts/scripts/zone/black_temple/boss_illidan.cpp b/src/bindings/scripts/scripts/zone/black_temple/boss_illidan.cpp index ff34df08c4b..afa1669bba1 100644 --- a/src/bindings/scripts/scripts/zone/black_temple/boss_illidan.cpp +++ b/src/bindings/scripts/scripts/zone/black_temple/boss_illidan.cpp @@ -548,7 +548,7 @@ struct TRINITY_DLL_DECL boss_illidan_stormrageAI : public ScriptedAI { case 1://lift off m_creature->HandleEmoteCommand(EMOTE_ONESHOT_LIFTOFF); - m_creature->SetUnitMovementFlags(MOVEMENTFLAG_LEVITATING + MOVEMENTFLAG_ONTRANSPORT); + m_creature->SetUnitMovementFlags(MOVEMENTFLAG_LEVITATING); m_creature->StopMoving(); DoYell(SAY_TAKEOFF, LANG_UNIVERSAL, NULL); DoPlaySoundToSet(m_creature, SOUND_TAKEOFF); @@ -618,7 +618,7 @@ struct TRINITY_DLL_DECL boss_illidan_stormrageAI : public ScriptedAI Timer[EVENT_FLIGHT_SEQUENCE] = 2000; break; case 9://land - m_creature->RemoveUnitMovementFlag(MOVEMENTFLAG_LEVITATING + MOVEMENTFLAG_ONTRANSPORT); + m_creature->RemoveUnitMovementFlag(MOVEMENTFLAG_LEVITATING); m_creature->StopMoving(); m_creature->HandleEmoteCommand(EMOTE_ONESHOT_LAND); for(uint8 i = 0; i < 2; i++) @@ -1843,7 +1843,7 @@ void boss_illidan_stormrageAI::Reset() m_creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE); m_creature->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID, 0); m_creature->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID+1, 0); - m_creature->RemoveUnitMovementFlag(MOVEMENTFLAG_LEVITATING + MOVEMENTFLAG_ONTRANSPORT); + m_creature->RemoveUnitMovementFlag(MOVEMENTFLAG_LEVITATING); m_creature->setActive(false); Summons.DespawnAll(); } diff --git a/src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/hyjal_trash.cpp b/src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/hyjal_trash.cpp index aeca740179c..b3f3ef07498 100644 --- a/src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/hyjal_trash.cpp +++ b/src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/hyjal_trash.cpp @@ -555,7 +555,7 @@ struct mob_giant_infernalAI : public hyjal_trashAI { trigger->SetVisibility(VISIBILITY_OFF); trigger->setFaction(m_creature->getFaction()); - trigger->AddUnitMovementFlag(MOVEMENTFLAG_ONTRANSPORT + MOVEMENTFLAG_LEVITATING); + trigger->AddUnitMovementFlag(MOVEMENTFLAG_LEVITATING); trigger->CastSpell(m_creature,SPELL_METEOR,true); } m_creature->GetMotionMaster()->Clear(); @@ -1320,7 +1320,7 @@ struct mob_frost_wyrmAI : public hyjal_trashAI { FrostBreathTimer = 5000; MoveTimer = 0; - m_creature->AddUnitMovementFlag(MOVEMENTFLAG_ONTRANSPORT + MOVEMENTFLAG_LEVITATING); + m_creature->AddUnitMovementFlag(MOVEMENTFLAG_LEVITATING); } void WaypointReached(uint32 i) @@ -1436,7 +1436,7 @@ struct mob_gargoyleAI : public hyjal_trashAI Zpos = 10.0; StrikeTimer = 2000+rand()%5000; MoveTimer = 0; - m_creature->AddUnitMovementFlag(MOVEMENTFLAG_ONTRANSPORT + MOVEMENTFLAG_LEVITATING); + m_creature->AddUnitMovementFlag(MOVEMENTFLAG_LEVITATING); } void WaypointReached(uint32 i) diff --git a/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/boss_lady_vashj.cpp b/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/boss_lady_vashj.cpp index 87bb245c382..aaedc7adcbd 100644 --- a/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/boss_lady_vashj.cpp +++ b/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/boss_lady_vashj.cpp @@ -764,7 +764,7 @@ struct TRINITY_DLL_DECL mob_toxic_sporebatAI : public ScriptedAI void Reset() { - m_creature->AddUnitMovementFlag(/*MOVEMENTFLAG_ONTRANSPORT + */MOVEMENTFLAG_LEVITATING); + m_creature->AddUnitMovementFlag(MOVEMENTFLAG_LEVITATING); m_creature->setFaction(14); movement_timer = 0; ToxicSpore_Timer = 5000; diff --git a/src/bindings/scripts/scripts/zone/hellfire_citadel/hellfire_ramparts/boss_vazruden_the_herald.cpp b/src/bindings/scripts/scripts/zone/hellfire_citadel/hellfire_ramparts/boss_vazruden_the_herald.cpp index 86d76952b45..a27c826816b 100644 --- a/src/bindings/scripts/scripts/zone/hellfire_citadel/hellfire_ramparts/boss_vazruden_the_herald.cpp +++ b/src/bindings/scripts/scripts/zone/hellfire_citadel/hellfire_ramparts/boss_vazruden_the_herald.cpp @@ -133,7 +133,7 @@ struct TRINITY_DLL_DECL boss_nazanAI : public ScriptedAI flight = false; BellowingRoar_Timer = 6000; ConeOfFire_Timer = 12000; - m_creature->RemoveUnitMovementFlag(MOVEMENTFLAG_ONTRANSPORT + MOVEMENTFLAG_LEVITATING); + m_creature->RemoveUnitMovementFlag(MOVEMENTFLAG_LEVITATING); m_creature->AddUnitMovementFlag(MOVEMENTFLAG_WALK_MODE); m_creature->GetMotionMaster()->Clear(); if(Unit *victim = SelectUnit(SELECT_TARGET_NEAREST,0)) @@ -334,7 +334,7 @@ struct TRINITY_DLL_DECL boss_vazruden_the_heraldAI : public ScriptedAI if(summoned->GetEntry() == ENTRY_NAZAN) { ((boss_nazanAI *)summoned->AI())->VazrudenGUID = VazrudenGUID; - summoned->AddUnitMovementFlag(MOVEMENTFLAG_ONTRANSPORT + MOVEMENTFLAG_LEVITATING); + summoned->AddUnitMovementFlag(MOVEMENTFLAG_LEVITATING); summoned->SetSpeed(MOVE_FLIGHT, 2.5); if(victim) ((ScriptedAI*)summoned->AI())->AttackStart(victim,false); diff --git a/src/bindings/scripts/scripts/zone/karazhan/boss_nightbane.cpp b/src/bindings/scripts/scripts/zone/karazhan/boss_nightbane.cpp index fd7e6176433..f59367e25b7 100644 --- a/src/bindings/scripts/scripts/zone/karazhan/boss_nightbane.cpp +++ b/src/bindings/scripts/scripts/zone/karazhan/boss_nightbane.cpp @@ -109,7 +109,7 @@ struct TRINITY_DLL_DECL boss_nightbaneAI : public ScriptedAI MovePhase = 0; m_creature->SetSpeed(MOVE_RUN, 2.0f); - m_creature->AddUnitMovementFlag(MOVEMENTFLAG_ONTRANSPORT + MOVEMENTFLAG_LEVITATING); + m_creature->AddUnitMovementFlag(MOVEMENTFLAG_LEVITATING); m_creature->RemoveUnitMovementFlag(MOVEMENTFLAG_WALK_MODE); m_creature->setActive(true); @@ -228,7 +228,7 @@ struct TRINITY_DLL_DECL boss_nightbaneAI : public ScriptedAI m_creature->InterruptSpell(CURRENT_GENERIC_SPELL); m_creature->HandleEmoteCommand(EMOTE_ONESHOT_LIFTOFF); - m_creature->AddUnitMovementFlag(MOVEMENTFLAG_ONTRANSPORT + MOVEMENTFLAG_LEVITATING); + m_creature->AddUnitMovementFlag(MOVEMENTFLAG_LEVITATING); (*m_creature).GetMotionMaster()->Clear(false); (*m_creature).GetMotionMaster()->MovePoint(0,IntroWay[2][0],IntroWay[2][1],IntroWay[2][2]); @@ -251,7 +251,7 @@ struct TRINITY_DLL_DECL boss_nightbaneAI : public ScriptedAI { if(MovePhase >= 7) { - m_creature->RemoveUnitMovementFlag(MOVEMENTFLAG_ONTRANSPORT + MOVEMENTFLAG_LEVITATING); + m_creature->RemoveUnitMovementFlag(MOVEMENTFLAG_LEVITATING); m_creature->HandleEmoteCommand(EMOTE_ONESHOT_LAND); m_creature->GetMotionMaster()->MovePoint(8,IntroWay[7][0],IntroWay[7][1],IntroWay[7][2]); } @@ -266,7 +266,7 @@ struct TRINITY_DLL_DECL boss_nightbaneAI : public ScriptedAI { if(MovePhase >= 7) { - m_creature->RemoveUnitMovementFlag(MOVEMENTFLAG_ONTRANSPORT + MOVEMENTFLAG_LEVITATING); + m_creature->RemoveUnitMovementFlag(MOVEMENTFLAG_LEVITATING); m_creature->HandleEmoteCommand(EMOTE_ONESHOT_LAND); m_creature->GetMotionMaster()->MovePoint(8,IntroWay[7][0],IntroWay[7][1],IntroWay[7][2]); } diff --git a/src/bindings/scripts/scripts/zone/karazhan/karazhan.cpp b/src/bindings/scripts/scripts/zone/karazhan/karazhan.cpp index 3b550c34e72..e1b30a51b10 100644 --- a/src/bindings/scripts/scripts/zone/karazhan/karazhan.cpp +++ b/src/bindings/scripts/scripts/zone/karazhan/karazhan.cpp @@ -534,7 +534,7 @@ struct TRINITY_DLL_DECL npc_image_of_medivhAI : public ScriptedAI EventStarted = true; Creature* Arcanagos = m_creature->SummonCreature(MOB_ARCANAGOS,ArcanagosPos[0],ArcanagosPos[1],ArcanagosPos[2],0,TEMPSUMMON_CORPSE_TIMED_DESPAWN,20000); ArcanagosGUID = Arcanagos->GetGUID(); - Arcanagos->AddUnitMovementFlag(MOVEMENTFLAG_ONTRANSPORT + MOVEMENTFLAG_LEVITATING); + Arcanagos->AddUnitMovementFlag(MOVEMENTFLAG_LEVITATING); (*Arcanagos).GetMotionMaster()->MovePoint(0,ArcanagosPos[0],ArcanagosPos[1],ArcanagosPos[2]); Arcanagos->SetOrientation(ArcanagosPos[3]); m_creature->SetOrientation(MedivPos[3]); diff --git a/src/bindings/scripts/scripts/zone/magisters_terrace/boss_felblood_kaelthas.cpp b/src/bindings/scripts/scripts/zone/magisters_terrace/boss_felblood_kaelthas.cpp index b35b6a98642..cf84d38b5d3 100644 --- a/src/bindings/scripts/scripts/zone/magisters_terrace/boss_felblood_kaelthas.cpp +++ b/src/bindings/scripts/scripts/zone/magisters_terrace/boss_felblood_kaelthas.cpp @@ -462,7 +462,7 @@ struct TRINITY_DLL_DECL mob_felkael_phoenixAI : public ScriptedAI void Reset() { m_creature->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE + UNIT_FLAG_NON_ATTACKABLE); - m_creature->AddUnitMovementFlag(MOVEMENTFLAG_ONTRANSPORT); + m_creature->AddUnitMovementFlag(MOVEMENTFLAG_LEVITATING); m_creature->CastSpell(m_creature,SPELL_PHOENIX_BURN,true); BurnTimer = 2000; Death_Timer = 2700; @@ -596,7 +596,7 @@ struct TRINITY_DLL_DECL mob_arcane_sphereAI : public ScriptedAI ChangeTargetTimer = 6000 + rand()%6000; m_creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE); - m_creature->AddUnitMovementFlag(MOVEMENTFLAG_ONTRANSPORT); + m_creature->AddUnitMovementFlag(MOVEMENTFLAG_LEVITATING); m_creature->setFaction(14); DoCast(m_creature, SPELL_ARCANE_SPHERE_PASSIVE, true); } diff --git a/src/bindings/scripts/scripts/zone/naxxramas/boss_sapphiron.cpp b/src/bindings/scripts/scripts/zone/naxxramas/boss_sapphiron.cpp index c0c2f457f0c..7842bb238b1 100644 --- a/src/bindings/scripts/scripts/zone/naxxramas/boss_sapphiron.cpp +++ b/src/bindings/scripts/scripts/zone/naxxramas/boss_sapphiron.cpp @@ -63,7 +63,7 @@ struct TRINITY_DLL_DECL boss_sapphironAI : public ScriptedAI Icebolt_Count = 0; IsInFly = false; - m_creature->RemoveUnitMovementFlag(MOVEMENTFLAG_LEVITATING + MOVEMENTFLAG_ONTRANSPORT); + m_creature->RemoveUnitMovementFlag(MOVEMENTFLAG_LEVITATING); } void Aggro(Unit *who) @@ -103,7 +103,7 @@ struct TRINITY_DLL_DECL boss_sapphironAI : public ScriptedAI { phase = 2; m_creature->HandleEmoteCommand(EMOTE_ONESHOT_LIFTOFF); - m_creature->AddUnitMovementFlag(MOVEMENTFLAG_LEVITATING + MOVEMENTFLAG_ONTRANSPORT); + m_creature->AddUnitMovementFlag(MOVEMENTFLAG_LEVITATING); m_creature->GetMotionMaster()->Clear(false); m_creature->GetMotionMaster()->MoveIdle(); m_creature->SetHover(true); @@ -141,7 +141,7 @@ struct TRINITY_DLL_DECL boss_sapphironAI : public ScriptedAI { phase = 1; m_creature->HandleEmoteCommand(EMOTE_ONESHOT_LAND); - m_creature->RemoveUnitMovementFlag(MOVEMENTFLAG_LEVITATING + MOVEMENTFLAG_ONTRANSPORT); + m_creature->RemoveUnitMovementFlag(MOVEMENTFLAG_LEVITATING); m_creature->GetMotionMaster()->Clear(false); m_creature->GetMotionMaster()->MoveChase(m_creature->getVictim()); m_creature->SetHover(true); diff --git a/src/bindings/scripts/scripts/zone/onyxias_lair/boss_onyxia.cpp b/src/bindings/scripts/scripts/zone/onyxias_lair/boss_onyxia.cpp index 9e2370af086..98e9322aad6 100644 --- a/src/bindings/scripts/scripts/zone/onyxias_lair/boss_onyxia.cpp +++ b/src/bindings/scripts/scripts/zone/onyxias_lair/boss_onyxia.cpp @@ -125,7 +125,7 @@ struct TRINITY_DLL_DECL boss_onyxiaAI : public ScriptedAI if(((m_creature->GetHealth()*100 / m_creature->GetMaxHealth()) < 60) && (Phase == 1)) { Phase = 2; - m_creature->AddUnitMovementFlag(MOVEMENTFLAG_LEVITATING + MOVEMENTFLAG_ONTRANSPORT); + m_creature->AddUnitMovementFlag(MOVEMENTFLAG_LEVITATING); m_creature->SetHover(true); m_creature->GetMotionMaster()->Clear(false); m_creature->GetMotionMaster()->MoveIdle(); @@ -135,7 +135,7 @@ struct TRINITY_DLL_DECL boss_onyxiaAI : public ScriptedAI if(((m_creature->GetHealth()*100 / m_creature->GetMaxHealth()) < 40) && (Phase == 2)) { Phase = 3; - m_creature->RemoveUnitMovementFlag(MOVEMENTFLAG_LEVITATING + MOVEMENTFLAG_ONTRANSPORT); + m_creature->RemoveUnitMovementFlag(MOVEMENTFLAG_LEVITATING); m_creature->SetHover(false); m_creature->GetMotionMaster()->MovePoint(0, -10.6155, -219.357, -87.7344); DoStartMovement(m_creature->getVictim()); diff --git a/src/bindings/scripts/scripts/zone/shadowmoon_valley/shadowmoon_valley.cpp b/src/bindings/scripts/scripts/zone/shadowmoon_valley/shadowmoon_valley.cpp index 0a84d13349e..6ead5c42082 100644 --- a/src/bindings/scripts/scripts/zone/shadowmoon_valley/shadowmoon_valley.cpp +++ b/src/bindings/scripts/scripts/zone/shadowmoon_valley/shadowmoon_valley.cpp @@ -98,7 +98,7 @@ struct TRINITY_DLL_DECL mob_mature_netherwing_drakeAI : public ScriptedAI { float PlayerX, PlayerY, PlayerZ; caster->GetClosePoint(PlayerX, PlayerY, PlayerZ, m_creature->GetObjectSize()); - m_creature->AddUnitMovementFlag(MOVEMENTFLAG_ONTRANSPORT + MOVEMENTFLAG_LEVITATING); + m_creature->AddUnitMovementFlag(MOVEMENTFLAG_LEVITATING); m_creature->GetMotionMaster()->MovePoint(1, PlayerX, PlayerY, PlayerZ); PlayerGUID = caster->GetGUID(); } @@ -114,7 +114,7 @@ struct TRINITY_DLL_DECL mob_mature_netherwing_drakeAI : public ScriptedAI IsEating = true; EatTimer = 5000; m_creature->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_ONESHOT_ATTACKUNARMED); - m_creature->RemoveUnitMovementFlag(MOVEMENTFLAG_ONTRANSPORT + MOVEMENTFLAG_LEVITATING); + m_creature->RemoveUnitMovementFlag(MOVEMENTFLAG_LEVITATING); } } @@ -194,7 +194,7 @@ struct TRINITY_DLL_DECL mob_enslaved_netherwing_drakeAI : public ScriptedAI m_creature->setFaction(FACTION_DEFAULT); FlyTimer = 10000; - m_creature->RemoveUnitMovementFlag(MOVEMENTFLAG_ONTRANSPORT + MOVEMENTFLAG_LEVITATING); + m_creature->RemoveUnitMovementFlag(MOVEMENTFLAG_LEVITATING); m_creature->SetVisibility(VISIBILITY_ON); } @@ -243,7 +243,7 @@ struct TRINITY_DLL_DECL mob_enslaved_netherwing_drakeAI : public ScriptedAI PlayerGUID = 0; } m_creature->SetVisibility(VISIBILITY_OFF); - m_creature->RemoveUnitMovementFlag(MOVEMENTFLAG_ONTRANSPORT + MOVEMENTFLAG_LEVITATING); + m_creature->RemoveUnitMovementFlag(MOVEMENTFLAG_LEVITATING); m_creature->DealDamage(m_creature, m_creature->GetHealth(), NULL, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, NULL, false); m_creature->RemoveCorpse(); } @@ -282,7 +282,7 @@ struct TRINITY_DLL_DECL mob_enslaved_netherwing_drakeAI : public ScriptedAI dz += 25; } - m_creature->AddUnitMovementFlag(MOVEMENTFLAG_ONTRANSPORT + MOVEMENTFLAG_LEVITATING); + m_creature->AddUnitMovementFlag(MOVEMENTFLAG_LEVITATING); m_creature->GetMotionMaster()->MovePoint(1, dx, dy, dz); } } @@ -759,7 +759,7 @@ struct TRINITY_DLL_DECL npc_overlord_morghorAI : public ScriptedAI case 19: DoScriptText(LORD_ILLIDAN_SAY_7, Illi); return 5000; break; case 20: Illi->HandleEmoteCommand(EMOTE_ONESHOT_LIFTOFF); - Illi->AddUnitMovementFlag(MOVEMENTFLAG_ONTRANSPORT + MOVEMENTFLAG_LEVITATING); + Illi->AddUnitMovementFlag(MOVEMENTFLAG_LEVITATING); return 500; break; case 21: DoScriptText(OVERLORD_SAY_5, m_creature); return 500; break; case 22: diff --git a/src/bindings/scripts/scripts/zone/sunwell_plateau/boss_felmyst.cpp b/src/bindings/scripts/scripts/zone/sunwell_plateau/boss_felmyst.cpp index 442ac05816c..dfaaadcd889 100644 --- a/src/bindings/scripts/scripts/zone/sunwell_plateau/boss_felmyst.cpp +++ b/src/bindings/scripts/scripts/zone/sunwell_plateau/boss_felmyst.cpp @@ -155,7 +155,7 @@ struct TRINITY_DLL_DECL boss_felmystAI : public ScriptedAI Timer[EVENT_BERSERK] = 600000; FlightCount = 0; - m_creature->RemoveUnitMovementFlag(MOVEMENTFLAG_LEVITATING + MOVEMENTFLAG_ONTRANSPORT); + m_creature->RemoveUnitMovementFlag(MOVEMENTFLAG_LEVITATING); m_creature->SetFloatValue(UNIT_FIELD_BOUNDINGRADIUS, 10); m_creature->SetFloatValue(UNIT_FIELD_COMBATREACH, 10); @@ -282,7 +282,7 @@ struct TRINITY_DLL_DECL boss_felmystAI : public ScriptedAI m_creature->AttackStop(); m_creature->GetMotionMaster()->Clear(false); m_creature->HandleEmoteCommand(EMOTE_ONESHOT_LIFTOFF); - m_creature->SetUnitMovementFlags(MOVEMENTFLAG_LEVITATING + MOVEMENTFLAG_ONTRANSPORT); + m_creature->SetUnitMovementFlags(MOVEMENTFLAG_LEVITATING); m_creature->StopMoving(); DoYell(YELL_TAKEOFF, LANG_UNIVERSAL, NULL); DoPlaySoundToSet(m_creature, SOUND_TAKEOFF); @@ -373,7 +373,7 @@ struct TRINITY_DLL_DECL boss_felmystAI : public ScriptedAI Timer[EVENT_FLIGHT_SEQUENCE] = 0; break; case 10: - m_creature->RemoveUnitMovementFlag(MOVEMENTFLAG_LEVITATING + MOVEMENTFLAG_ONTRANSPORT); + m_creature->RemoveUnitMovementFlag(MOVEMENTFLAG_LEVITATING); m_creature->StopMoving(); m_creature->HandleEmoteCommand(EMOTE_ONESHOT_LAND); EnterPhase(PHASE_GROUND); diff --git a/src/bindings/scripts/scripts/zone/sunwell_plateau/boss_kalecgos.cpp b/src/bindings/scripts/scripts/zone/sunwell_plateau/boss_kalecgos.cpp index 4e0d6f7bc6a..615bcdf4476 100644 --- a/src/bindings/scripts/scripts/zone/sunwell_plateau/boss_kalecgos.cpp +++ b/src/bindings/scripts/scripts/zone/sunwell_plateau/boss_kalecgos.cpp @@ -131,7 +131,7 @@ struct TRINITY_DLL_DECL boss_kalecgosAI : public ScriptedAI m_creature->setFaction(14); m_creature->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE + UNIT_FLAG_NOT_SELECTABLE); - m_creature->RemoveUnitMovementFlag(MOVEMENTFLAG_ONTRANSPORT + MOVEMENTFLAG_LEVITATING); + m_creature->RemoveUnitMovementFlag(MOVEMENTFLAG_LEVITATING); m_creature->SetVisibility(VISIBILITY_ON); m_creature->SetStandState(UNIT_STAND_STATE_SLEEP); @@ -198,7 +198,7 @@ struct TRINITY_DLL_DECL boss_kalecgosAI : public ScriptedAI TalkTimer = 10000; break; case 3: - m_creature->AddUnitMovementFlag(MOVEMENTFLAG_ONTRANSPORT + MOVEMENTFLAG_LEVITATING); + m_creature->AddUnitMovementFlag(MOVEMENTFLAG_LEVITATING); m_creature->GetMotionMaster()->Clear(); m_creature->GetMotionMaster()->MovePoint(0,FLY_X,FLY_Y,FLY_Z); TalkTimer = 600000; @@ -217,7 +217,7 @@ struct TRINITY_DLL_DECL boss_kalecgosAI : public ScriptedAI TalkTimer = 3000; break; case 2: - m_creature->AddUnitMovementFlag(MOVEMENTFLAG_ONTRANSPORT + MOVEMENTFLAG_LEVITATING); + m_creature->AddUnitMovementFlag(MOVEMENTFLAG_LEVITATING); m_creature->GetMotionMaster()->Clear(); m_creature->GetMotionMaster()->MovePoint(0,FLY_X,FLY_Y,FLY_Z); TalkTimer = 600000; diff --git a/src/bindings/scripts/scripts/zone/tempest_keep/the_eye/boss_kaelthas.cpp b/src/bindings/scripts/scripts/zone/tempest_keep/the_eye/boss_kaelthas.cpp index dd1d9772f31..e9c6b41fe06 100644 --- a/src/bindings/scripts/scripts/zone/tempest_keep/the_eye/boss_kaelthas.cpp +++ b/src/bindings/scripts/scripts/zone/tempest_keep/the_eye/boss_kaelthas.cpp @@ -1421,7 +1421,7 @@ struct TRINITY_DLL_DECL mob_phoenix_tkAI : public ScriptedAI void Reset() { - m_creature->AddUnitMovementFlag(MOVEMENTFLAG_ONTRANSPORT + MOVEMENTFLAG_LEVITATING);//birds can fly! :) + m_creature->AddUnitMovementFlag(MOVEMENTFLAG_LEVITATING);//birds can fly! :) egg = true; Cycle_Timer = 2000; m_creature->CastSpell(m_creature,SPELL_BURN,true); diff --git a/src/bindings/scripts/scripts/zone/undercity/undercity.cpp b/src/bindings/scripts/scripts/zone/undercity/undercity.cpp index 3194ebc5439..2fe97b343a2 100644 --- a/src/bindings/scripts/scripts/zone/undercity/undercity.cpp +++ b/src/bindings/scripts/scripts/zone/undercity/undercity.cpp @@ -91,7 +91,7 @@ struct TRINITY_DLL_DECL npc_lady_sylvanas_windrunnerAI : public ScriptedAI summoned->CastSpell(target, SPELL_RIBBON_OF_SOULS, false); } - summoned->AddUnitMovementFlag(MOVEMENTFLAG_ONTRANSPORT); + summoned->AddUnitMovementFlag(MOVEMENTFLAG_LEVITATING); targetGUID = summoned->GetGUID(); } } @@ -174,7 +174,7 @@ struct TRINITY_DLL_DECL npc_highborne_lamenterAI : public ScriptedAI { if( EventMove_Timer < diff ) { - m_creature->AddUnitMovementFlag(MOVEMENTFLAG_ONTRANSPORT | MOVEMENTFLAG_LEVITATING); + m_creature->AddUnitMovementFlag(MOVEMENTFLAG_LEVITATING); m_creature->SendMonsterMoveWithSpeed(m_creature->GetPositionX(),m_creature->GetPositionY(),HIGHBORNE_LOC_Y_NEW,5000); m_creature->GetMap()->CreatureRelocation(m_creature,m_creature->GetPositionX(),m_creature->GetPositionY(),HIGHBORNE_LOC_Y_NEW,m_creature->GetOrientation()); EventMove = false; diff --git a/src/bindings/scripts/scripts/zone/zulaman/boss_akilzon.cpp b/src/bindings/scripts/scripts/zone/zulaman/boss_akilzon.cpp index 704cadb0bcd..246ec7eb4b2 100644 --- a/src/bindings/scripts/scripts/zone/zulaman/boss_akilzon.cpp +++ b/src/bindings/scripts/scripts/zone/zulaman/boss_akilzon.cpp @@ -431,9 +431,7 @@ struct TRINITY_DLL_DECL mob_soaring_eagleAI : public ScriptedAI m_creature->SetSpeed(MOVE_RUN, 5.0f); TargetGUID = target->GetGUID(); } - m_creature->AddUnitMovementFlag(MOVEMENTFLAG_ONTRANSPORT); m_creature->GetMotionMaster()->MovePoint(0, x, y, z); - m_creature->RemoveUnitMovementFlag(MOVEMENTFLAG_ONTRANSPORT); arrived = false; } } diff --git a/src/game/MovementHandler.cpp b/src/game/MovementHandler.cpp index 9a2f119cb42..cf312ad3513 100644 --- a/src/game/MovementHandler.cpp +++ b/src/game/MovementHandler.cpp @@ -482,32 +482,33 @@ void WorldSession::HandleChangeSeatsOnControlledVehicle(WorldPacket &recv_data) { sLog.outDebug("WORLD: Recvd CMSG_CHANGE_SEATS_ON_CONTROLLED_VEHICLE"); recv_data.hexlike(); - uint32 a; - uint16 b; - uint16 c; - uint32 d,e,f,g,h,i,j,k; - int8 seat; - recv_data >> a >> b >> c; - recv_data >> d >> e >> f >> g >> h >> i >> j >> k; - recv_data >> seat; - //sLog.outError("change seat %u %u %u %u %u %u %u %u %u %u %u %u", a, b,c,d,e,f,g,h,i,j,k,seat); - - if(seat == GetPlayer()->GetTransSeat()) + + if(!GetPlayer()->m_Vehicle) return; - if(GetPlayer()->m_Vehicle) - { - if(Vehicle *vehicle = GetPlayer()->m_Vehicle->HasEmptySeat(seat)) - { - GetPlayer()->m_Vehicle->RemovePassenger(GetPlayer()); - //If the player is going to a turret, the vehicle should be changed - GetPlayer()->m_Vehicle = vehicle; - if(!vehicle->AddPassenger(GetPlayer(), seat)) - { - assert(false); - } - } - } + if(recv_data.GetOpcode() == CMSG_CHANGE_SEATS_ON_CONTROLLED_VEHICLE) + ReadMovementInfo(recv_data, &GetPlayer()->m_Vehicle->m_movementInfo); + + uint64 guid; + if(!recv_data.readPackGUID(guid)) + return; + + Vehicle *vehicle = ObjectAccessor::GetVehicle(guid); + if(!vehicle) + return; + + int8 seatNum; + recv_data >> seatNum; + if(vehicle == GetPlayer()->m_Vehicle && seatNum == GetPlayer()->GetTransSeat()) + return; + + if(!vehicle->HasEmptySeat(seatNum)) + return; + + GetPlayer()->m_Vehicle->RemovePassenger(GetPlayer()); + GetPlayer()->m_Vehicle = vehicle; + if(!vehicle->AddPassenger(GetPlayer(), seatNum)) + assert(false); } void WorldSession::HandleRequestVehicleExit(WorldPacket &recv_data) diff --git a/src/game/Object.cpp b/src/game/Object.cpp index 4d650a86c46..0739f89db2c 100644 --- a/src/game/Object.cpp +++ b/src/game/Object.cpp @@ -133,7 +133,7 @@ void Object::BuildMovementUpdateBlock(UpdateData * data, uint32 flags ) const buf << uint8( UPDATETYPE_MOVEMENT ); buf << GetGUID(); - _BuildMovementUpdate(&buf, flags, 0x00000000); + _BuildMovementUpdate(&buf, flags); data->AddUpdateBlock(buf); } @@ -147,7 +147,6 @@ void Object::BuildCreateUpdateBlockForPlayer(UpdateData *data, Player *target) c uint8 updatetype = UPDATETYPE_CREATE_OBJECT; uint8 flags = m_updateFlag; - uint32 flags2 = 0; /** lower flag1 **/ if(target == this) // building packet for oneself @@ -195,7 +194,7 @@ void Object::BuildCreateUpdateBlockForPlayer(UpdateData *data, Player *target) c buf << (uint8)0xFF << GetGUID(); buf << (uint8)m_objectTypeId; - _BuildMovementUpdate(&buf, flags, flags2); + _BuildMovementUpdate(&buf, flags); UpdateMask updateMask; updateMask.SetCount( m_valuesCount ); @@ -259,18 +258,18 @@ void Object::DestroyForPlayer(Player *target) const target->GetSession()->SendPacket( &data ); } -void Object::_BuildMovementUpdate(ByteBuffer * data, uint8 flags, uint32 flags2) const +void Object::_BuildMovementUpdate(ByteBuffer * data, uint8 flags) const { *data << (uint8)flags; // update flags // 0x20 if (flags & UPDATEFLAG_LIVING) { + uint32 flags2 = ((Unit*)this)->GetUnitMovementFlags(); switch(GetTypeId()) { case TYPEID_UNIT: { - flags2 = ((Unit*)this)->GetUnitMovementFlags(); if(((Unit*)this)->m_Vehicle) flags2 |= MOVEMENTFLAG_ONTRANSPORT; else @@ -282,8 +281,6 @@ void Object::_BuildMovementUpdate(ByteBuffer * data, uint8 flags, uint32 flags2) break; case TYPEID_PLAYER: { - flags2 = ((Player*)this)->GetUnitMovementFlags(); - if(((Player*)this)->GetTransport() || ((Player*)this)->m_Vehicle) flags2 |= MOVEMENTFLAG_ONTRANSPORT; else @@ -342,20 +339,8 @@ void Object::_BuildMovementUpdate(ByteBuffer * data, uint8 flags, uint32 flags2) *data << ((Unit*)this)->GetSpeed( MOVE_PITCH_RATE ); // 0x08000000 - if(flags2 & MOVEMENTFLAG_SPLINE2) + if(GetTypeId() == TYPEID_PLAYER && ((Player*)this)->isInFlight()) { - if(GetTypeId() != TYPEID_PLAYER) - { - sLog.outDebug("_BuildMovementUpdate: MOVEMENTFLAG_SPLINE2 for non-player"); - return; - } - - if(!((Player*)this)->isInFlight()) - { - sLog.outDebug("_BuildMovementUpdate: MOVEMENTFLAG_SPLINE2 but not in flight"); - return; - } - WPAssert(((Player*)this)->GetMotionMaster()->GetCurrentMovementGeneratorType() == FLIGHT_MOTION_TYPE); FlightPathMovementGenerator *fmg = (FlightPathMovementGenerator*)(((Player*)this)->GetMotionMaster()->top()); @@ -1635,7 +1620,8 @@ TempSummon *Map::SummonCreature(uint32 entry, float x, float y, float z, float a else if(properties->Type == SUMMON_TYPE_TOTEM) mask = SUMMON_MASK_TOTEM; else if(properties->Category == SUMMON_CATEGORY_VEHICLE - || properties->Type == SUMMON_TYPE_VEHICLE) + || properties->Type == SUMMON_TYPE_VEHICLE + || properties->Type == SUMMON_TYPE_VEHICLE2) mask = SUMMON_MASK_VEHICLE; } diff --git a/src/game/Object.h b/src/game/Object.h index eff964aba0f..82c61cce091 100644 --- a/src/game/Object.h +++ b/src/game/Object.h @@ -331,7 +331,7 @@ class TRINITY_DLL_SPEC Object virtual void _SetUpdateBits(UpdateMask *updateMask, Player *target) const; virtual void _SetCreateBits(UpdateMask *updateMask, Player *target) const; - void _BuildMovementUpdate(ByteBuffer * data, uint8 flags, uint32 flags2 ) const; + void _BuildMovementUpdate(ByteBuffer * data, uint8 flags) const; void _BuildValuesUpdate(uint8 updatetype, ByteBuffer *data, UpdateMask *updateMask, Player *target ) const; uint16 m_objectType; diff --git a/src/game/Opcodes.cpp b/src/game/Opcodes.cpp index 5daa369a743..a18af88673d 100644 --- a/src/game/Opcodes.cpp +++ b/src/game/Opcodes.cpp @@ -1173,7 +1173,7 @@ OpcodeHandler opcodeTable[NUM_MSG_TYPES] = /*0x476*/ { "CMSG_REQUEST_VEHICLE_EXIT", STATUS_LOGGEDIN, &WorldSession::HandleRequestVehicleExit }, /*0x477*/ { "CMSG_REQUEST_VEHICLE_PREV_SEAT", STATUS_NEVER, &WorldSession::Handle_NULL }, /*0x478*/ { "CMSG_REQUEST_VEHICLE_NEXT_SEAT", STATUS_NEVER, &WorldSession::Handle_NULL }, - /*0x479*/ { "CMSG_REQUEST_VEHICLE_SWITCH_SEAT", STATUS_NEVER, &WorldSession::Handle_NULL }, + /*0x479*/ { "CMSG_REQUEST_VEHICLE_SWITCH_SEAT", STATUS_LOGGEDIN, &WorldSession::HandleChangeSeatsOnControlledVehicle}, /*0x47A*/ { "CMSG_PET_LEARN_TALENT", STATUS_LOGGEDIN, &WorldSession::HandlePetLearnTalent }, /*0x47B*/ { "CMSG_PET_UNLEARN_TALENTS", STATUS_NEVER, &WorldSession::Handle_NULL }, /*0x47C*/ { "SMSG_SET_PHASE_SHIFT", STATUS_NEVER, &WorldSession::Handle_ServerSide }, diff --git a/src/game/SharedDefines.h b/src/game/SharedDefines.h index 78c61dd061c..b95b2b98ad1 100644 --- a/src/game/SharedDefines.h +++ b/src/game/SharedDefines.h @@ -2443,8 +2443,8 @@ enum SummonType SUMMON_TYPE_GUARDIAN2 = 6, SUMMON_TYPE_WILD2 = 7, SUMMON_TYPE_WILD3 = 8, - SUMMON_TYPE_WILD4 = 9, - SUMMON_TYPE_VEHICLE = 10, + SUMMON_TYPE_VEHICLE = 9, + SUMMON_TYPE_VEHICLE2 = 10, SUMMON_TYPE_OBJECT = 11, SUMMON_TYPE_CRITTER = 41, diff --git a/src/game/SpellEffects.cpp b/src/game/SpellEffects.cpp index 13cb0448088..74600181e6f 100644 --- a/src/game/SpellEffects.cpp +++ b/src/game/SpellEffects.cpp @@ -3269,6 +3269,7 @@ void Spell::EffectSummonType(uint32 i) SummonGuardian(entry, properties); break; case SUMMON_TYPE_VEHICLE: + case SUMMON_TYPE_VEHICLE2: SummonVehicle(entry, properties); break; case SUMMON_TYPE_TOTEM: diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp index fbbfa3a2638..d13b552c053 100644 --- a/src/game/Unit.cpp +++ b/src/game/Unit.cpp @@ -13528,7 +13528,7 @@ void Unit::ExitVehicle() } BuildHeartBeatMsg(&data); - SendMessageToSet(&data, GetTypeId() == TYPEID_PLAYER ? false : true); + SendMessageToSet(&data, false); if(m_Vehicle->GetOwnerGUID() == GetGUID()) m_Vehicle->Dismiss(); @@ -13565,7 +13565,7 @@ void Unit::BuildMovementPacket(ByteBuffer *data) const // 0x00001000 if(GetUnitMovementFlags() & MOVEMENTFLAG_JUMPING) { - *data << (float)m_movementInfo.j_unk; + *data << (float)m_movementInfo.j_zspeed; *data << (float)m_movementInfo.j_sinAngle; *data << (float)m_movementInfo.j_cosAngle; *data << (float)m_movementInfo.j_xyspeed; diff --git a/src/game/Unit.h b/src/game/Unit.h index fa02de0f5f8..26b2acb0220 100644 --- a/src/game/Unit.h +++ b/src/game/Unit.h @@ -668,7 +668,7 @@ struct MovementInfo // last fall time uint32 fallTime; // jumping - float j_unk, j_sinAngle, j_cosAngle, j_xyspeed; + float j_zspeed, j_sinAngle, j_cosAngle, j_xyspeed; // spline float u_unk1; @@ -677,7 +677,7 @@ struct MovementInfo flags = 0; time = t_time = fallTime = 0; unk1 = 0; - x = y = z = o = t_x = t_y = t_z = t_o = s_pitch = j_unk = j_sinAngle = j_cosAngle = j_xyspeed = u_unk1 = 0.0f; + x = y = z = o = t_x = t_y = t_z = t_o = s_pitch = j_zspeed = j_sinAngle = j_cosAngle = j_xyspeed = u_unk1 = 0.0f; t_guid = 0; } }; diff --git a/src/game/Vehicle.cpp b/src/game/Vehicle.cpp index 0a388fe7f04..a788bec1c48 100644 --- a/src/game/Vehicle.cpp +++ b/src/game/Vehicle.cpp @@ -43,6 +43,11 @@ void Vehicle::AddToWorld() ObjectAccessor::Instance().AddObject(this); Unit::AddToWorld(); AIM_Initialize(); + switch(GetEntry()) + { + case 28312:InstallAccessory(28319,7);break; + case 32627:InstallAccessory(32629,7);break; + } } } @@ -142,24 +147,17 @@ void Vehicle::SetVehicleId(uint32 id) assert(!m_Seats.empty()); } -Vehicle* Vehicle::HasEmptySeat(int8 seatNum) const +bool Vehicle::HasEmptySeat(int8 seatNum) const { SeatMap::const_iterator seat = m_Seats.find(seatNum); - //No such seat - if(seat == m_Seats.end()) return NULL; - //Not occupied - if(!seat->second.passenger) return (Vehicle*)this; - //Check if turret is empty - if(seat->second.passenger->GetTypeId() == TYPEID_UNIT - && ((Creature*)seat->second.passenger)->isVehicle()) - return ((Vehicle*)seat->second.passenger)->HasEmptySeat(seatNum); - //Occupied - return NULL; + if(seat == m_Seats.end()) return false; + return !seat->second.passenger; } void Vehicle::InstallAccessory(uint32 entry, int8 seatNum) { - Creature *accessory = SummonCreature(entry, GetPositionX(), GetPositionY(), GetPositionZ()); + //Creature *accessory = SummonCreature(entry, GetPositionX(), GetPositionY(), GetPositionZ()); + Creature *accessory = SummonVehicle(entry, GetPositionX(), GetPositionY(), GetPositionZ()); if(!accessory) return; @@ -202,16 +200,16 @@ bool Vehicle::AddPassenger(Unit *unit, int8 seatNum) unit->AddUnitMovementFlag(MOVEMENTFLAG_ONTRANSPORT); VehicleSeatEntry const *veSeat = seat->second.seatInfo; - unit->m_movementInfo.t_x = veSeat->m_attachmentOffsetX; - unit->m_movementInfo.t_y = veSeat->m_attachmentOffsetY; - unit->m_movementInfo.t_z = veSeat->m_attachmentOffsetZ; + unit->m_movementInfo.t_x = 0;//veSeat->m_attachmentOffsetX; + unit->m_movementInfo.t_y = 0;//veSeat->m_attachmentOffsetY; + unit->m_movementInfo.t_z = 0;//veSeat->m_attachmentOffsetZ; unit->m_movementInfo.t_o = 0; unit->m_movementInfo.t_time = 4; unit->m_movementInfo.t_seat = seat->first; - unit->Relocate(GetPositionX() + veSeat->m_attachmentOffsetX, - GetPositionY() + veSeat->m_attachmentOffsetY, - GetPositionZ() + veSeat->m_attachmentOffsetZ, + unit->Relocate(GetPositionX() + unit->m_movementInfo.t_x, + GetPositionY() + unit->m_movementInfo.t_y, + GetPositionZ() + unit->m_movementInfo.t_z, GetOrientation()); WorldPacket data; @@ -219,7 +217,7 @@ bool Vehicle::AddPassenger(Unit *unit, int8 seatNum) { //ChatHandler(player).PSendSysMessage("Enter seat %u %u", veSeat->m_ID, seat->first); - if(seat == m_Seats.begin()) + if(seat->first == 0) { ((Player*)unit)->SetCharm(this, true); ((Player*)unit)->SetViewpoint(this, true); @@ -231,8 +229,8 @@ bool Vehicle::AddPassenger(Unit *unit, int8 seatNum) ((Player*)unit)->GetSession()->SendPacket(&data); } - BuildHeartBeatMsg(&data); - SendMessageToSet(&data, unit->GetTypeId() == TYPEID_PLAYER ? false : true); + unit->BuildHeartBeatMsg(&data); + unit->SendMessageToSet(&data, false); return true; } @@ -258,7 +256,7 @@ void Vehicle::RemovePassenger(Unit *unit) //SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_SPELLCLICK); - if(unit->GetTypeId() == TYPEID_PLAYER && seat == m_Seats.begin()) + if(unit->GetTypeId() == TYPEID_PLAYER && seat->first == 0) { ((Player*)unit)->SetCharm(this, false); ((Player*)unit)->SetViewpoint(this, false); diff --git a/src/game/Vehicle.h b/src/game/Vehicle.h index 0ca76687716..0b134348454 100644 --- a/src/game/Vehicle.h +++ b/src/game/Vehicle.h @@ -52,7 +52,7 @@ class Vehicle : public Creature VehicleEntry const *GetVehicleInfo() { return m_vehicleInfo; } void SetVehicleId(uint32 vehicleid); - Vehicle* HasEmptySeat(int8 seatNum) const; + bool HasEmptySeat(int8 seatNum) const; bool AddPassenger(Unit *passenger, int8 seatNum = -1); void RemovePassenger(Unit *passenger); void InstallAccessory(uint32 entry, int8 seatNum); diff --git a/src/game/WorldSession.cpp b/src/game/WorldSession.cpp index da6837b1662..563f5f4a168 100644 --- a/src/game/WorldSession.cpp +++ b/src/game/WorldSession.cpp @@ -604,7 +604,7 @@ void WorldSession::ReadMovementInfo(WorldPacket &data, MovementInfo *mi) if(mi->flags & MOVEMENTFLAG_JUMPING) { CHECK_PACKET_SIZE(data, data.rpos()+4+4+4+4); - data >> mi->j_unk; + data >> mi->j_zspeed; data >> mi->j_sinAngle; data >> mi->j_cosAngle; data >> mi->j_xyspeed; |
