Misc fixes
This commit is contained in:
@@ -109,29 +109,29 @@ namespace Game.DataStorage
|
||||
public short VehicleExitAnimKitID;
|
||||
public short CameraModeID;
|
||||
|
||||
public bool CanEnterOrExit()
|
||||
{
|
||||
return (HasSeatFlag(VehicleSeatFlags.CanEnterOrExit) ||
|
||||
//If it has anmation for enter/ride, means it can be entered/exited by logic
|
||||
HasSeatFlag(VehicleSeatFlags.HasLowerAnimForEnter | VehicleSeatFlags.HasLowerAnimForRide));
|
||||
}
|
||||
public bool CanSwitchFromSeat() { return Flags.HasAnyFlag((int)VehicleSeatFlags.CanSwitch); }
|
||||
public bool IsUsableByOverride()
|
||||
{
|
||||
return HasSeatFlag(VehicleSeatFlags.Uncontrolled | VehicleSeatFlags.Unk18)
|
||||
|| HasSeatFlag(VehicleSeatFlagsB.UsableForced | VehicleSeatFlagsB.UsableForced2 |
|
||||
VehicleSeatFlagsB.UsableForced3 | VehicleSeatFlagsB.UsableForced4);
|
||||
}
|
||||
public bool IsEjectable() { return HasSeatFlag(VehicleSeatFlagsB.Ejectable); }
|
||||
|
||||
public bool HasSeatFlag(VehicleSeatFlags flag)
|
||||
public bool HasFlag(VehicleSeatFlags flag)
|
||||
{
|
||||
return Flags.HasAnyFlag((int)flag);
|
||||
}
|
||||
|
||||
public bool HasSeatFlag(VehicleSeatFlagsB flag)
|
||||
public bool HasFlag(VehicleSeatFlagsB flag)
|
||||
{
|
||||
return FlagsB.HasAnyFlag((int)flag);
|
||||
}
|
||||
|
||||
public bool CanEnterOrExit()
|
||||
{
|
||||
return (HasFlag(VehicleSeatFlags.CanEnterOrExit) ||
|
||||
//If it has anmation for enter/ride, means it can be entered/exited by logic
|
||||
HasFlag(VehicleSeatFlags.HasLowerAnimForEnter | VehicleSeatFlags.HasLowerAnimForRide));
|
||||
}
|
||||
public bool CanSwitchFromSeat() { return Flags.HasAnyFlag((int)VehicleSeatFlags.CanSwitch); }
|
||||
public bool IsUsableByOverride()
|
||||
{
|
||||
return HasFlag(VehicleSeatFlags.Uncontrolled | VehicleSeatFlags.Unk18)
|
||||
|| HasFlag(VehicleSeatFlagsB.UsableForced | VehicleSeatFlagsB.UsableForced2 |
|
||||
VehicleSeatFlagsB.UsableForced3 | VehicleSeatFlagsB.UsableForced4);
|
||||
}
|
||||
public bool IsEjectable() { return HasFlag(VehicleSeatFlagsB.Ejectable); }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -349,16 +349,16 @@ namespace Game.Entities
|
||||
_me.AddNpcFlag(_me.IsTypeId(TypeId.Player) ? NPCFlags.PlayerVehicle : NPCFlags.SpellClick);
|
||||
|
||||
// Enable gravity for passenger when he did not have it active before entering the vehicle
|
||||
if (seat.Value.SeatInfo.HasSeatFlag(VehicleSeatFlags.DisableGravity) && !seat.Value.Passenger.IsGravityDisabled)
|
||||
if (seat.Value.SeatInfo.HasFlag(VehicleSeatFlags.DisableGravity) && !seat.Value.Passenger.IsGravityDisabled)
|
||||
unit.SetDisableGravity(false);
|
||||
|
||||
// Remove UNIT_FLAG_NOT_SELECTABLE if passenger did not have it before entering vehicle
|
||||
if (seat.Value.SeatInfo.HasSeatFlag(VehicleSeatFlags.PassengerNotSelectable) && !seat.Value.Passenger.IsUnselectable)
|
||||
if (seat.Value.SeatInfo.HasFlag(VehicleSeatFlags.PassengerNotSelectable) && !seat.Value.Passenger.IsUnselectable)
|
||||
unit.RemoveUnitFlag(UnitFlags.NotSelectable);
|
||||
|
||||
seat.Value.Passenger.Reset();
|
||||
|
||||
if (_me.IsTypeId(TypeId.Unit) && unit.IsTypeId(TypeId.Player) && seat.Value.SeatInfo.HasSeatFlag(VehicleSeatFlags.CanControl))
|
||||
if (_me.IsTypeId(TypeId.Unit) && unit.IsTypeId(TypeId.Player) && seat.Value.SeatInfo.HasFlag(VehicleSeatFlags.CanControl))
|
||||
_me.RemoveCharmedBy(unit);
|
||||
|
||||
if (_me.IsInWorld)
|
||||
@@ -608,14 +608,14 @@ namespace Game.Entities
|
||||
player.StopCastingCharm();
|
||||
player.StopCastingBindSight();
|
||||
player.SendOnCancelExpectedVehicleRideAura();
|
||||
if (!veSeat.HasSeatFlag(VehicleSeatFlagsB.KeepPet))
|
||||
if (!veSeat.HasFlag(VehicleSeatFlagsB.KeepPet))
|
||||
player.UnsummonPetTemporaryIfAny();
|
||||
}
|
||||
|
||||
if (veSeat.HasSeatFlag(VehicleSeatFlags.DisableGravity))
|
||||
if (veSeat.HasFlag(VehicleSeatFlags.DisableGravity))
|
||||
Passenger.SetDisableGravity(true);
|
||||
|
||||
if (Seat.Value.SeatInfo.HasSeatFlag(VehicleSeatFlags.PassengerNotSelectable))
|
||||
if (Seat.Value.SeatInfo.HasFlag(VehicleSeatFlags.PassengerNotSelectable))
|
||||
Passenger.AddUnitFlag(UnitFlags.NotSelectable);
|
||||
|
||||
Passenger.m_movementInfo.transport.pos.Relocate(veSeat.AttachmentOffset.X, veSeat.AttachmentOffset.Y, veSeat.AttachmentOffset.Z);
|
||||
@@ -624,7 +624,7 @@ namespace Game.Entities
|
||||
Passenger.m_movementInfo.transport.guid = Target.GetBase().GetGUID();
|
||||
|
||||
if (Target.GetBase().IsTypeId(TypeId.Unit) && Passenger.IsTypeId(TypeId.Player) &&
|
||||
Seat.Value.SeatInfo.HasSeatFlag(VehicleSeatFlags.CanControl))
|
||||
Seat.Value.SeatInfo.HasFlag(VehicleSeatFlags.CanControl))
|
||||
Cypher.Assert(Target.GetBase().SetCharmedBy(Passenger, CharmType.Vehicle)); // SMSG_CLIENT_CONTROL
|
||||
|
||||
Passenger.SendClearTarget(); // SMSG_BREAK_TARGET
|
||||
|
||||
@@ -52,7 +52,7 @@ namespace Game
|
||||
{
|
||||
VehicleSeatRecord seat = vehicle.GetSeatForPassenger(GetPlayer());
|
||||
Cypher.Assert(seat != null);
|
||||
if (!seat.HasSeatFlag(VehicleSeatFlags.CanAttack))
|
||||
if (!seat.HasFlag(VehicleSeatFlags.CanAttack))
|
||||
{
|
||||
SendAttackStop(enemy);
|
||||
return;
|
||||
|
||||
@@ -157,7 +157,7 @@ namespace Game
|
||||
VehicleSeatRecord seat = vehicle.GetSeatForPassenger(mover);
|
||||
if (seat != null)
|
||||
{
|
||||
if (seat.HasSeatFlag(VehicleSeatFlags.AllowTurning))
|
||||
if (seat.HasFlag(VehicleSeatFlags.AllowTurning))
|
||||
{
|
||||
if (movementInfo.Pos.GetOrientation() != mover.GetOrientation())
|
||||
{
|
||||
|
||||
@@ -1236,7 +1236,7 @@ namespace Game.Spells
|
||||
return SpellCastResult.CantDoThatRightNow;
|
||||
|
||||
// Can only summon uncontrolled minions/guardians when on controlled vehicle
|
||||
if (vehicleSeat.HasSeatFlag(VehicleSeatFlags.CanControl | VehicleSeatFlags.Unk2))
|
||||
if (vehicleSeat.HasFlag(VehicleSeatFlags.CanControl | VehicleSeatFlags.Unk2))
|
||||
{
|
||||
foreach (SpellEffectInfo effect in _effects)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user