diff options
author | ariel- <ariel-@users.noreply.github.com> | 2017-12-27 20:34:58 -0300 |
---|---|---|
committer | funjoker <funjoker109@gmail.com> | 2021-04-15 05:53:27 +0200 |
commit | 60465c01f255bbac6eb45facdebea29e978b9d23 (patch) | |
tree | 00b8bf2e2ccad82ad778c834225b789de7c47238 | |
parent | 9baabd50b7ece449d5d869e55b8d02f985d8bff9 (diff) |
Core/Vehicles: changed flags required to mark a seat as "usable"
Ref #3831
(cherry picked from commit 42ad5332e463e247da0e761493558723e768bd0b)
-rw-r--r-- | src/server/game/DataStores/DB2Structure.h | 23 |
1 files changed, 10 insertions, 13 deletions
diff --git a/src/server/game/DataStores/DB2Structure.h b/src/server/game/DataStores/DB2Structure.h index cd13d22b78f..ea90e59d02c 100644 --- a/src/server/game/DataStores/DB2Structure.h +++ b/src/server/game/DataStores/DB2Structure.h @@ -3549,20 +3549,17 @@ struct VehicleSeatEntry int16 VehicleExitAnimKitID; int16 CameraModeID; - bool CanEnterOrExit() const - { - return ((Flags & VEHICLE_SEAT_FLAG_CAN_ENTER_OR_EXIT) != 0 || - //If it has anmation for enter/ride, means it can be entered/exited by logic - (Flags & (VEHICLE_SEAT_FLAG_HAS_LOWER_ANIM_FOR_ENTER | VEHICLE_SEAT_FLAG_HAS_LOWER_ANIM_FOR_RIDE)) != 0); - } - bool CanSwitchFromSeat() const { return (Flags & VEHICLE_SEAT_FLAG_CAN_SWITCH) != 0; } - bool IsUsableByOverride() const - { - return (Flags & (VEHICLE_SEAT_FLAG_UNCONTROLLED | VEHICLE_SEAT_FLAG_UNK18) - || (FlagsB & (VEHICLE_SEAT_FLAG_B_USABLE_FORCED | VEHICLE_SEAT_FLAG_B_USABLE_FORCED_2 | - VEHICLE_SEAT_FLAG_B_USABLE_FORCED_3 | VEHICLE_SEAT_FLAG_B_USABLE_FORCED_4))); + inline bool HasFlag(VehicleSeatFlags flag) const { return !!(Flags & flag); } + inline bool HasFlag(VehicleSeatFlagsB flag) const { return !!(Flags & flag); } + + inline bool CanEnterOrExit() const { return HasFlag(VehicleSeatFlags(VEHICLE_SEAT_FLAG_CAN_ENTER_OR_EXIT | VEHICLE_SEAT_FLAG_CAN_CONTROL | VEHICLE_SEAT_FLAG_SHOULD_USE_VEH_SEAT_EXIT_ANIM_ON_VOLUNTARY_EXIT)); } + inline bool CanSwitchFromSeat() const { return HasFlag(VEHICLE_SEAT_FLAG_CAN_SWITCH); } + inline bool IsUsableByOverride() const { + return HasFlag(VehicleSeatFlags(VEHICLE_SEAT_FLAG_UNCONTROLLED | VEHICLE_SEAT_FLAG_UNK18)) + || HasFlag(VehicleSeatFlagsB(VEHICLE_SEAT_FLAG_B_USABLE_FORCED | VEHICLE_SEAT_FLAG_B_USABLE_FORCED_2 | + VEHICLE_SEAT_FLAG_B_USABLE_FORCED_3 | VEHICLE_SEAT_FLAG_B_USABLE_FORCED_4)); } - bool IsEjectable() const { return (FlagsB & VEHICLE_SEAT_FLAG_B_EJECTABLE) != 0; } + inline bool IsEjectable() const { return HasFlag(VEHICLE_SEAT_FLAG_B_EJECTABLE); } }; struct WMOAreaTableEntry |