Core/Movement: converted SMSG_MOVE_SET_CAN_TRANSITION_BETWEEN_SWIM_AND_FLY and SMSG_MOVE_UNSET_CAN_TRANSITION_BETWEEN_SWIM_AND_FLY to new ack handling
This commit is contained in:
1 parent
2c70d98449
commit
4b56a7b9a3
8 files changed
+108
-21
No files matched your search
@@ -13898,6 +13898,8 @@ void Unit::PurgeAndApplyPendingMovementChanges(bool informObservers /* = true */
|
||||
case MovementChangeType::SET_CAN_FLY:
|
||||
Unit::SetCanFly(pendingChange.second.apply);
|
||||
break;
|
||||
case MovementChangeType::SET_CAN_TRANSITION_BETWEEN_SWIM_AND_FLY:
|
||||
Unit::SetCanTransitionBetweenSwimAndFly(pendingChange.second.apply);
|
||||
default:
|
||||
ASSERT(false);
|
||||
return;
|
||||
@@ -13917,6 +13919,7 @@ void Unit::PurgeAndApplyPendingMovementChanges(bool informObservers /* = true */
|
||||
{
|
||||
case MovementChangeType::GRAVITY_DISABLE:
|
||||
case MovementChangeType::SET_CAN_FLY:
|
||||
case MovementChangeType::SET_CAN_TRANSITION_BETWEEN_SWIM_AND_FLY:
|
||||
MovementPacketSender::SendMovementFlagChangeToObservers(this);
|
||||
break;
|
||||
default:
|
||||
@@ -14263,9 +14266,6 @@ bool Unit::SetCanFly(bool enable, bool packetOnly)
|
||||
{
|
||||
AddUnitMovementFlag(MOVEMENTFLAG_CAN_FLY);
|
||||
RemoveUnitMovementFlag(MOVEMENTFLAG_SWIMMING | MOVEMENTFLAG_SPLINE_ELEVATION);
|
||||
if (GetTypeId() == TYPEID_PLAYER)
|
||||
AddExtraUnitMovementFlag(MOVEMENTFLAG2_CAN_SWIM_TO_FLY_TRANS);
|
||||
|
||||
SetFall(false);
|
||||
}
|
||||
else
|
||||
@@ -14273,15 +14273,25 @@ bool Unit::SetCanFly(bool enable, bool packetOnly)
|
||||
if (IsFlying() && !IsGravityDisabled())
|
||||
SetFall(true);
|
||||
RemoveUnitMovementFlag(MOVEMENTFLAG_CAN_FLY | MOVEMENTFLAG_MASK_MOVING_FLY);
|
||||
|
||||
if (GetTypeId() == TYPEID_PLAYER)
|
||||
RemoveExtraUnitMovementFlag(MOVEMENTFLAG2_CAN_SWIM_TO_FLY_TRANS);
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool Unit::SetCanTransitionBetweenSwimAndFly(bool enable)
|
||||
{
|
||||
if (enable == HasExtraUnitMovementFlag(MOVEMENTFLAG2_CAN_SWIM_TO_FLY_TRANS))
|
||||
return false;
|
||||
|
||||
if (enable)
|
||||
AddExtraUnitMovementFlag(MOVEMENTFLAG2_CAN_SWIM_TO_FLY_TRANS);
|
||||
else
|
||||
RemoveExtraUnitMovementFlag(MOVEMENTFLAG2_CAN_SWIM_TO_FLY_TRANS);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool Unit::SetWaterWalking(bool enable, bool packetOnly /*= false */)
|
||||
{
|
||||
if (!packetOnly)
|
||||
|
||||
Reference in new issue
Block a user