aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xsrc/server/game/Entities/Unit/Unit.cpp16
-rwxr-xr-xsrc/server/game/Entities/Unit/Unit.h3
-rwxr-xr-xsrc/server/game/Entities/Vehicle/Vehicle.cpp2
-rwxr-xr-xsrc/server/game/Movement/MovementGenerators/IdleMovementGenerator.cpp19
-rw-r--r--src/server/game/Movement/Spline/MovementPacketBuilder.cpp42
5 files changed, 39 insertions, 43 deletions
diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp
index 01f4a610f6c..b60abc18753 100755
--- a/src/server/game/Entities/Unit/Unit.cpp
+++ b/src/server/game/Entities/Unit/Unit.cpp
@@ -14591,9 +14591,9 @@ Player* Unit::GetSpellModOwner() const
}
///----------Pet responses methods-----------------
-void Unit::SendPetCastFail(uint32 spellid, SpellCastResult msg)
+void Unit::SendPetCastFail(uint32 spellid, SpellCastResult result)
{
- if (msg == SPELL_CAST_OK)
+ if (result == SPELL_CAST_OK)
return;
Unit* owner = GetCharmerOrOwner();
@@ -14601,15 +14601,13 @@ void Unit::SendPetCastFail(uint32 spellid, SpellCastResult msg)
return;
WorldPacket data(SMSG_PET_CAST_FAILED, 1 + 4 + 1);
- data << uint8(0); // cast count?
+ data << uint8(0); // cast count
data << uint32(spellid);
- data << uint8(msg);
- // uint32 for some reason
- // uint32 for some reason
+ data << uint8(result);
owner->ToPlayer()->GetSession()->SendPacket(&data);
}
-void Unit::SendPetActionFeedback (uint8 msg)
+void Unit::SendPetActionFeedback(uint8 msg)
{
Unit* owner = GetOwner();
if (!owner || owner->GetTypeId() != TYPEID_PLAYER)
@@ -14620,7 +14618,7 @@ void Unit::SendPetActionFeedback (uint8 msg)
owner->ToPlayer()->GetSession()->SendPacket(&data);
}
-void Unit::SendPetTalk (uint32 pettalk)
+void Unit::SendPetTalk(uint32 pettalk)
{
Unit* owner = GetOwner();
if (!owner || owner->GetTypeId() != TYPEID_PLAYER)
@@ -17045,8 +17043,6 @@ void Unit::_ExitVehicle(Position const* exitPosition)
else
pos = *exitPosition;
- AddUnitState(UNIT_STATE_MOVE);
-
if (GetTypeId() == TYPEID_PLAYER)
ToPlayer()->SetFallInformation(0, GetPositionZ());
else if (HasUnitMovementFlag(MOVEMENTFLAG_ROOT))
diff --git a/src/server/game/Entities/Unit/Unit.h b/src/server/game/Entities/Unit/Unit.h
index 5192b8c5e8f..f09bf89a9c7 100755
--- a/src/server/game/Entities/Unit/Unit.h
+++ b/src/server/game/Entities/Unit/Unit.h
@@ -499,9 +499,8 @@ enum UnitState
UNIT_STATE_CHASE_MOVE = 0x04000000,
UNIT_STATE_FOLLOW_MOVE = 0x08000000,
UNIT_STATE_UNATTACKABLE = (UNIT_STATE_IN_FLIGHT | UNIT_STATE_ONVEHICLE),
- //UNIT_STATE_MOVING = (UNIT_STATE_ROAMING | UNIT_STATE_CHASE),
// for real move using movegen check and stop (except unstoppable flight)
- UNIT_STATE_MOVING = UNIT_STATE_ROAMING_MOVE | UNIT_STATE_CONFUSED_MOVE | UNIT_STATE_FLEEING_MOVE| UNIT_STATE_CHASE_MOVE | UNIT_STATE_FOLLOW_MOVE ,
+ UNIT_STATE_MOVING = UNIT_STATE_ROAMING_MOVE | UNIT_STATE_CONFUSED_MOVE | UNIT_STATE_FLEEING_MOVE | UNIT_STATE_CHASE_MOVE | UNIT_STATE_FOLLOW_MOVE ,
UNIT_STATE_CONTROLLED = (UNIT_STATE_CONFUSED | UNIT_STATE_STUNNED | UNIT_STATE_FLEEING),
UNIT_STATE_LOST_CONTROL = (UNIT_STATE_CONTROLLED | UNIT_STATE_JUMPING | UNIT_STATE_CHARGING),
UNIT_STATE_SIGHTLESS = (UNIT_STATE_LOST_CONTROL | UNIT_STATE_EVADE),
diff --git a/src/server/game/Entities/Vehicle/Vehicle.cpp b/src/server/game/Entities/Vehicle/Vehicle.cpp
index 2f552eddb9f..f3d6e8abc79 100755
--- a/src/server/game/Entities/Vehicle/Vehicle.cpp
+++ b/src/server/game/Entities/Vehicle/Vehicle.cpp
@@ -424,7 +424,7 @@ void Vehicle::RemovePassenger(Unit* unit)
_me->ToCreature()->AI()->PassengerBoarded(unit, seat->first, false);
// only for flyable vehicles
- if (unit->HasUnitMovementFlag(MOVEMENTFLAG_FLYING))
+ if (unit->IsFlying())
_me->CastSpell(unit, VEHICLE_SPELL_PARACHUTE, true);
if (GetBase()->GetTypeId() == TYPEID_UNIT)
diff --git a/src/server/game/Movement/MovementGenerators/IdleMovementGenerator.cpp b/src/server/game/Movement/MovementGenerators/IdleMovementGenerator.cpp
index 9f4568df113..5a2090cfe28 100755
--- a/src/server/game/Movement/MovementGenerators/IdleMovementGenerator.cpp
+++ b/src/server/game/Movement/MovementGenerators/IdleMovementGenerator.cpp
@@ -29,16 +29,15 @@ void IdleMovementGenerator::Initialize(Unit &owner)
Reset(owner);
}
-void
-IdleMovementGenerator::Reset(Unit& owner)
+void IdleMovementGenerator::Reset(Unit& owner)
{
- if (owner.HasUnitState(UNIT_STATE_MOVE))
+ if (!owner.IsStopped())
owner.StopMoving();
}
void RotateMovementGenerator::Initialize(Unit& owner)
{
- if (owner.HasUnitState(UNIT_STATE_MOVE))
+ if (!owner.IsStopped())
owner.StopMoving();
if (owner.getVictim())
@@ -80,20 +79,17 @@ void RotateMovementGenerator::Finalize(Unit &unit)
unit.ToCreature()->AI()->MovementInform(ROTATE_MOTION_TYPE, 0);
}
-void
-DistractMovementGenerator::Initialize(Unit& owner)
+void DistractMovementGenerator::Initialize(Unit& owner)
{
owner.AddUnitState(UNIT_STATE_DISTRACTED);
}
-void
-DistractMovementGenerator::Finalize(Unit& owner)
+void DistractMovementGenerator::Finalize(Unit& owner)
{
owner.ClearUnitState(UNIT_STATE_DISTRACTED);
}
-bool
-DistractMovementGenerator::Update(Unit& /*owner*/, const uint32& time_diff)
+bool DistractMovementGenerator::Update(Unit& /*owner*/, const uint32& time_diff)
{
if (time_diff > m_timer)
return false;
@@ -102,8 +98,7 @@ DistractMovementGenerator::Update(Unit& /*owner*/, const uint32& time_diff)
return true;
}
-void
-AssistanceDistractMovementGenerator::Finalize(Unit &unit)
+void AssistanceDistractMovementGenerator::Finalize(Unit &unit)
{
unit.ClearUnitState(UNIT_STATE_DISTRACTED);
unit.ToCreature()->SetReactState(REACT_AGGRESSIVE);
diff --git a/src/server/game/Movement/Spline/MovementPacketBuilder.cpp b/src/server/game/Movement/Spline/MovementPacketBuilder.cpp
index 73fdbf4c2f6..e9031f95486 100644
--- a/src/server/game/Movement/Spline/MovementPacketBuilder.cpp
+++ b/src/server/game/Movement/Spline/MovementPacketBuilder.cpp
@@ -44,11 +44,17 @@ namespace Movement
void PacketBuilder::WriteCommonMonsterMovePart(const MoveSpline& move_spline, WorldPacket& data)
{
MoveSplineFlag splineflags = move_spline.splineflags;
- /*if (mov.IsBoarded())
+ /*if (unit->HasUnitMovementFlag(MOVEMENTFLAG_ONTRANSPORT))
{
data.SetOpcode(SMSG_MONSTER_MOVE_TRANSPORT);
- data << mov.GetTransport()->Owner.GetPackGUID();
- data << int8(mov.m_unused.transport_seat);
+ if (unit->GetVehicle())
+ data << unit->GetVehicle()->GetBase()->GetPackGUID();
+ else if (unit->GetTransport())
+ data << unit->GetTransport()->GetPackGUID();
+ else
+ data << uint64(0);
+
+ data << int8(unit->GetTransSeat());
}*/
data << uint8(0);
@@ -57,21 +63,21 @@ namespace Movement
switch(splineflags & MoveSplineFlag::Mask_Final_Facing)
{
- default:
- data << uint8(MonsterMoveNormal);
- break;
- case MoveSplineFlag::Final_Target:
- data << uint8(MonsterMoveFacingTarget);
- data << move_spline.facing.target;
- break;
- case MoveSplineFlag::Final_Angle:
- data << uint8(MonsterMoveFacingAngle);
- data << move_spline.facing.angle;
- break;
- case MoveSplineFlag::Final_Point:
- data << uint8(MonsterMoveFacingSpot);
- data << move_spline.facing.f.x << move_spline.facing.f.y << move_spline.facing.f.z;
- break;
+ case MoveSplineFlag::Final_Target:
+ data << uint8(MonsterMoveFacingTarget);
+ data << move_spline.facing.target;
+ break;
+ case MoveSplineFlag::Final_Angle:
+ data << uint8(MonsterMoveFacingAngle);
+ data << move_spline.facing.angle;
+ break;
+ case MoveSplineFlag::Final_Point:
+ data << uint8(MonsterMoveFacingSpot);
+ data << move_spline.facing.f.x << move_spline.facing.f.y << move_spline.facing.f.z;
+ break;
+ default:
+ data << uint8(MonsterMoveNormal);
+ break;
}
// add fake Enter_Cycle flag - needed for client-side cyclic movement (client will erase first spline vertex after first cycle done)