diff options
author | Spp <spp@jorge.gr> | 2011-08-03 12:28:42 +0200 |
---|---|---|
committer | Spp <spp@jorge.gr> | 2011-08-03 12:28:42 +0200 |
commit | 7e53a73059c2f9a1c5c080c9872eadafc117c53b (patch) | |
tree | 30f6eeecaa2270d88b1e66e43b84108f60531c72 /src | |
parent | e7327e7e94234467eef2826851f1f5bb46b44b48 (diff) |
Core/Vehicles: Remove Vehicle.h dependency from other header files
Diffstat (limited to 'src')
20 files changed, 135 insertions, 101 deletions
diff --git a/src/server/game/AI/SmartScripts/SmartScript.cpp b/src/server/game/AI/SmartScripts/SmartScript.cpp index 63333f41b21..d2cd386828b 100644 --- a/src/server/game/AI/SmartScripts/SmartScript.cpp +++ b/src/server/game/AI/SmartScripts/SmartScript.cpp @@ -31,6 +31,7 @@ #include "SmartScript.h" #include "SmartAI.h" #include "Group.h" +#include "Vehicle.h" SmartScript::SmartScript() { diff --git a/src/server/game/DataStores/DBCEnums.h b/src/server/game/DataStores/DBCEnums.h index 6534bfedb83..ac47b4a28f3 100755 --- a/src/server/game/DataStores/DBCEnums.h +++ b/src/server/game/DataStores/DBCEnums.h @@ -411,4 +411,29 @@ enum SummonPropFlags SUMMON_PROP_FLAG_UNK16 = 0x00008000, // Light/Dark Bullet, Soul/Fiery Consumption, Twisted Visage, Twilight Whelp. Phase related? }; +enum VehicleSeatFlags +{ + VEHICLE_SEAT_FLAG_HIDE_PASSENGER = 0x00000200, // Passenger is hidden + VEHICLE_SEAT_FLAG_UNK11 = 0x00000400, // needed for CGCamera__SyncFreeLookFacing + VEHICLE_SEAT_FLAG_CAN_CONTROL = 0x00000800, // Lua_UnitInVehicleControlSeat + VEHICLE_SEAT_FLAG_CAN_CAST_MOUNT_SPELL = 0x00001000, // Can cast spells with SPELL_AURA_MOUNTED from seat (possibly 4.x only, 0 seats on 3.3.5a) + VEHICLE_SEAT_FLAG_UNCONTROLLED = 0x00002000, // can override !& VEHICLE_SEAT_FLAG_CAN_ENTER_OR_EXIT + VEHICLE_SEAT_FLAG_CAN_ATTACK = 0x00004000, // Can attack, cast spells and use items from vehicle + VEHICLE_SEAT_FLAG_CAN_ENTER_OR_EXIT = 0x02000000, // Lua_CanExitVehicle - can enter and exit at free will + VEHICLE_SEAT_FLAG_CAN_SWITCH = 0x04000000, // Lua_CanSwitchVehicleSeats + VEHICLE_SEAT_FLAG_CAN_CAST = 0x20000000, // Lua_UnitHasVehicleUI +}; + +enum VehicleSeatFlagsB +{ + VEHICLE_SEAT_FLAG_B_NONE = 0x00000000, + VEHICLE_SEAT_FLAG_B_USABLE_FORCED = 0x00000002, + VEHICLE_SEAT_FLAG_B_TARGETS_IN_RAIDUI = 0x00000008, // Lua_UnitTargetsVehicleInRaidUI + VEHICLE_SEAT_FLAG_B_EJECTABLE = 0x00000020, // ejectable + VEHICLE_SEAT_FLAG_B_USABLE_FORCED_2 = 0x00000040, + VEHICLE_SEAT_FLAG_B_USABLE_FORCED_3 = 0x00000100, + VEHICLE_SEAT_FLAG_B_CANSWITCH = 0x04000000, // can switch seats + VEHICLE_SEAT_FLAG_B_VEHICLE_PLAYERFRAME_UI = 0x80000000, // Lua_UnitHasVehiclePlayerFrameUI - actually checked for flagsb &~ 0x80000000 +}; + #endif diff --git a/src/server/game/DataStores/DBCStructure.h b/src/server/game/DataStores/DBCStructure.h index fc99def193a..c08255048b8 100755 --- a/src/server/game/DataStores/DBCStructure.h +++ b/src/server/game/DataStores/DBCStructure.h @@ -24,7 +24,6 @@ #include "Define.h" #include "Path.h" #include "Util.h" -#include "Vehicle.h" #include <map> #include <set> diff --git a/src/server/game/Entities/Vehicle/Vehicle.h b/src/server/game/Entities/Vehicle/Vehicle.h index 49e04d6223a..b706bf91721 100755 --- a/src/server/game/Entities/Vehicle/Vehicle.h +++ b/src/server/game/Entities/Vehicle/Vehicle.h @@ -20,92 +20,13 @@ #define __TRINITY_VEHICLE_H #include "ObjectDefines.h" +#include "VehicleDefines.h" struct VehicleEntry; -struct VehicleSeatEntry; class Unit; -enum PowerType -{ - POWER_STEAM = 61, - POWER_PYRITE = 41, - POWER_HEAT = 101, - POWER_OOZE = 121, - POWER_BLOOD = 141, - POWER_WRATH = 142 -}; - -enum VehicleFlags -{ - VEHICLE_FLAG_NO_STRAFE = 0x00000001, // Sets MOVEFLAG2_NO_STRAFE - VEHICLE_FLAG_NO_JUMPING = 0x00000002, // Sets MOVEFLAG2_NO_JUMPING - VEHICLE_FLAG_FULLSPEEDTURNING = 0x00000004, // Sets MOVEFLAG2_FULLSPEEDTURNING - VEHICLE_FLAG_ALLOW_PITCHING = 0x00000010, // Sets MOVEFLAG2_ALLOW_PITCHING - VEHICLE_FLAG_FULLSPEEDPITCHING = 0x00000020, // Sets MOVEFLAG2_FULLSPEEDPITCHING - VEHICLE_FLAG_CUSTOM_PITCH = 0x00000040, // If set use pitchMin and pitchMax from DBC, otherwise pitchMin = -pi/2, pitchMax = pi/2 - VEHICLE_FLAG_ADJUST_AIM_ANGLE = 0x00000400, // Lua_IsVehicleAimAngleAdjustable - VEHICLE_FLAG_ADJUST_AIM_POWER = 0x00000800, // Lua_IsVehicleAimPowerAdjustable -}; - -enum VehicleSeatFlags -{ - VEHICLE_SEAT_FLAG_HIDE_PASSENGER = 0x00000200, // Passenger is hidden - VEHICLE_SEAT_FLAG_UNK11 = 0x00000400, // needed for CGCamera__SyncFreeLookFacing - VEHICLE_SEAT_FLAG_CAN_CONTROL = 0x00000800, // Lua_UnitInVehicleControlSeat - VEHICLE_SEAT_FLAG_CAN_CAST_MOUNT_SPELL = 0x00001000, // Can cast spells with SPELL_AURA_MOUNTED from seat (possibly 4.x only, 0 seats on 3.3.5a) - VEHICLE_SEAT_FLAG_UNCONTROLLED = 0x00002000, // can override !& VEHICLE_SEAT_FLAG_CAN_ENTER_OR_EXIT - VEHICLE_SEAT_FLAG_CAN_ATTACK = 0x00004000, // Can attack, cast spells and use items from vehicle - VEHICLE_SEAT_FLAG_CAN_ENTER_OR_EXIT = 0x02000000, // Lua_CanExitVehicle - can enter and exit at free will - VEHICLE_SEAT_FLAG_CAN_SWITCH = 0x04000000, // Lua_CanSwitchVehicleSeats - VEHICLE_SEAT_FLAG_CAN_CAST = 0x20000000, // Lua_UnitHasVehicleUI -}; - -enum VehicleSeatFlagsB -{ - VEHICLE_SEAT_FLAG_B_NONE = 0x00000000, - VEHICLE_SEAT_FLAG_B_USABLE_FORCED = 0x00000002, - VEHICLE_SEAT_FLAG_B_TARGETS_IN_RAIDUI = 0x00000008, // Lua_UnitTargetsVehicleInRaidUI - VEHICLE_SEAT_FLAG_B_EJECTABLE = 0x00000020, // ejectable - VEHICLE_SEAT_FLAG_B_USABLE_FORCED_2 = 0x00000040, - VEHICLE_SEAT_FLAG_B_USABLE_FORCED_3 = 0x00000100, - VEHICLE_SEAT_FLAG_B_CANSWITCH = 0x04000000, // can switch seats - VEHICLE_SEAT_FLAG_B_VEHICLE_PLAYERFRAME_UI = 0x80000000, // Lua_UnitHasVehiclePlayerFrameUI - actually checked for flagsb &~ 0x80000000 -}; - -enum VehicleSpells -{ - VEHICLE_SPELL_RIDE_HARDCODED = 46598, - VEHICLE_SPELL_PARACHUTE = 45472 -}; - -struct VehicleSeat -{ - explicit VehicleSeat(VehicleSeatEntry const *seatInfo) : SeatInfo(seatInfo), Passenger(0) {} - VehicleSeatEntry const *SeatInfo; - uint64 Passenger; -}; - -struct VehicleAccessory -{ - VehicleAccessory(uint32 entry, int8 seatId, bool isMinion, uint8 summonType, uint32 summonTime) : - AccessoryEntry(entry), SeatId(seatId), IsMinion(isMinion), SummonedType(summonType), SummonTime(summonTime) {} - uint32 AccessoryEntry; - int8 SeatId; - uint32 IsMinion; - uint8 SummonedType; - uint32 SummonTime; -}; - -typedef std::vector<VehicleAccessory> VehicleAccessoryList; -typedef std::map<uint32, VehicleAccessoryList> VehicleAccessoryMap; -typedef std::map<int8, VehicleSeat> SeatMap; - class Vehicle { - friend class Unit; - friend class WorldSession; - friend class Spell; - public: explicit Vehicle(Unit* unit, VehicleEntry const* vehInfo, uint32 creatureEntry); virtual ~Vehicle(); @@ -135,8 +56,6 @@ class Vehicle SeatMap Seats; - protected: - uint16 GetExtraMovementFlagsForBase() const; VehicleSeatEntry const* GetSeatForPassenger(Unit* passenger); private: diff --git a/src/server/game/Entities/Vehicle/VehicleDefines.h b/src/server/game/Entities/Vehicle/VehicleDefines.h new file mode 100644 index 00000000000..cf52f725916 --- /dev/null +++ b/src/server/game/Entities/Vehicle/VehicleDefines.h @@ -0,0 +1,75 @@ +/* + * Copyright (C) 2008-2011 TrinityCore <http://www.trinitycore.org/> + * Copyright (C) 2005-2009 MaNGOS <http://getmangos.com/> + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation; either version 2 of the License, or (at your + * option) any later version. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along + * with this program. If not, see <http://www.gnu.org/licenses/>. + */ + +#ifndef __TRINITY_VEHICLEDEFINES_H +#define __TRINITY_VEHICLEDEFINES_H + +#include "Define.h" +struct VehicleSeatEntry; + +enum PowerType +{ + POWER_STEAM = 61, + POWER_PYRITE = 41, + POWER_HEAT = 101, + POWER_OOZE = 121, + POWER_BLOOD = 141, + POWER_WRATH = 142 +}; + +enum VehicleFlags +{ + VEHICLE_FLAG_NO_STRAFE = 0x00000001, // Sets MOVEFLAG2_NO_STRAFE + VEHICLE_FLAG_NO_JUMPING = 0x00000002, // Sets MOVEFLAG2_NO_JUMPING + VEHICLE_FLAG_FULLSPEEDTURNING = 0x00000004, // Sets MOVEFLAG2_FULLSPEEDTURNING + VEHICLE_FLAG_ALLOW_PITCHING = 0x00000010, // Sets MOVEFLAG2_ALLOW_PITCHING + VEHICLE_FLAG_FULLSPEEDPITCHING = 0x00000020, // Sets MOVEFLAG2_FULLSPEEDPITCHING + VEHICLE_FLAG_CUSTOM_PITCH = 0x00000040, // If set use pitchMin and pitchMax from DBC, otherwise pitchMin = -pi/2, pitchMax = pi/2 + VEHICLE_FLAG_ADJUST_AIM_ANGLE = 0x00000400, // Lua_IsVehicleAimAngleAdjustable + VEHICLE_FLAG_ADJUST_AIM_POWER = 0x00000800, // Lua_IsVehicleAimPowerAdjustable +}; + +enum VehicleSpells +{ + VEHICLE_SPELL_RIDE_HARDCODED = 46598, + VEHICLE_SPELL_PARACHUTE = 45472 +}; + +struct VehicleSeat +{ + explicit VehicleSeat(VehicleSeatEntry const *seatInfo) : SeatInfo(seatInfo), Passenger(0) {} + VehicleSeatEntry const *SeatInfo; + uint64 Passenger; +}; + +struct VehicleAccessory +{ + VehicleAccessory(uint32 entry, int8 seatId, bool isMinion, uint8 summonType, uint32 summonTime) : + AccessoryEntry(entry), SeatId(seatId), IsMinion(isMinion), SummonedType(summonType), SummonTime(summonTime) {} + uint32 AccessoryEntry; + int8 SeatId; + uint32 IsMinion; + uint8 SummonedType; + uint32 SummonTime; +}; + +typedef std::vector<VehicleAccessory> VehicleAccessoryList; +typedef std::map<uint32, VehicleAccessoryList> VehicleAccessoryMap; +typedef std::map<int8, VehicleSeat> SeatMap; + +#endif diff --git a/src/server/game/Globals/ObjectMgr.cpp b/src/server/game/Globals/ObjectMgr.cpp index 0aca9da6d57..262400d1483 100755 --- a/src/server/game/Globals/ObjectMgr.cpp +++ b/src/server/game/Globals/ObjectMgr.cpp @@ -8993,3 +8993,20 @@ CreatureTemplate const* ObjectMgr::GetCreatureTemplate(uint32 entry) return NULL; } + +VehicleAccessoryList const* ObjectMgr::GetVehicleAccessoryList(Vehicle* veh) const +{ + if (Creature* cre = veh->GetBase()->ToCreature()) + { + // Give preference to GUID-based accessories + VehicleAccessoryMap::const_iterator itr = m_VehicleAccessoryMap.find(cre->GetDBTableGUIDLow()); + if (itr != m_VehicleAccessoryMap.end()) + return &itr->second; + } + + // Otherwise return entry-based + VehicleAccessoryMap::const_iterator itr = m_VehicleTemplateAccessoryMap.find(veh->GetCreatureEntry()); + if (itr != m_VehicleTemplateAccessoryMap.end()) + return &itr->second; + return NULL; +} diff --git a/src/server/game/Globals/ObjectMgr.h b/src/server/game/Globals/ObjectMgr.h index 9fa82e7cec0..68a70b451ab 100755 --- a/src/server/game/Globals/ObjectMgr.h +++ b/src/server/game/Globals/ObjectMgr.h @@ -36,7 +36,7 @@ #include "ObjectAccessor.h" #include "ObjectDefines.h" #include <ace/Singleton.h> -#include "Vehicle.h" +#include "VehicleDefines.h" #include <string> #include <map> #include <limits> @@ -772,22 +772,7 @@ class ObjectMgr return NULL; } - VehicleAccessoryList const* GetVehicleAccessoryList(Vehicle* veh) const - { - if (Creature* cre = veh->GetBase()->ToCreature()) - { - // Give preference to GUID-based accessories - VehicleAccessoryMap::const_iterator itr = m_VehicleAccessoryMap.find(cre->GetDBTableGUIDLow()); - if (itr != m_VehicleAccessoryMap.end()) - return &itr->second; - } - - // Otherwise return entry-based - VehicleAccessoryMap::const_iterator itr = m_VehicleTemplateAccessoryMap.find(veh->GetCreatureEntry()); - if (itr != m_VehicleTemplateAccessoryMap.end()) - return &itr->second; - return NULL; - } + VehicleAccessoryList const* GetVehicleAccessoryList(Vehicle* veh) const; DungeonEncounterList const* GetDungeonEncounterList(uint32 mapId, Difficulty difficulty) { diff --git a/src/server/game/Scripting/ScriptMgr.cpp b/src/server/game/Scripting/ScriptMgr.cpp index f551b268b3a..6f170225cde 100755 --- a/src/server/game/Scripting/ScriptMgr.cpp +++ b/src/server/game/Scripting/ScriptMgr.cpp @@ -26,6 +26,7 @@ #include "ScriptLoader.h" #include "ScriptSystem.h" #include "Transport.h" +#include "Vehicle.h" // This is the global static registry of scripts. template<class TScript> diff --git a/src/server/game/Spells/Auras/SpellAuraEffects.cpp b/src/server/game/Spells/Auras/SpellAuraEffects.cpp index 9cbbf8fd50c..add3bd2cbb4 100755 --- a/src/server/game/Spells/Auras/SpellAuraEffects.cpp +++ b/src/server/game/Spells/Auras/SpellAuraEffects.cpp @@ -35,6 +35,7 @@ #include "GridNotifiersImpl.h" #include "CellImpl.h" #include "ScriptMgr.h" +#include "Vehicle.h" class Aura; // diff --git a/src/server/game/Spells/Auras/SpellAuras.cpp b/src/server/game/Spells/Auras/SpellAuras.cpp index 45fbd8fa22f..3fcf4867c8f 100755 --- a/src/server/game/Spells/Auras/SpellAuras.cpp +++ b/src/server/game/Spells/Auras/SpellAuras.cpp @@ -34,6 +34,7 @@ #include "CellImpl.h" #include "ScriptMgr.h" #include "SpellScript.h" +#include "Vehicle.h" AuraApplication::AuraApplication(Unit* target, Unit* caster, Aura * aura, uint8 effMask): m_target(target), m_base(aura), m_slot(MAX_AURAS), m_flags(AFLAG_NONE), diff --git a/src/server/scripts/Kalimdor/durotar.cpp b/src/server/scripts/Kalimdor/durotar.cpp index 29c36c64628..6998eb2f8e7 100644 --- a/src/server/scripts/Kalimdor/durotar.cpp +++ b/src/server/scripts/Kalimdor/durotar.cpp @@ -16,6 +16,7 @@ */ #include "ScriptPCH.h" +#include "Vehicle.h" /*###### ##Quest 5441: Lazy Peons @@ -571,4 +572,4 @@ void AddSC_durotar() new spell_mount_check(); new spell_voljin_war_drums(); new spell_voodoo(); -}
\ No newline at end of file +} diff --git a/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_scourgelord_tyrannus.cpp b/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_scourgelord_tyrannus.cpp index 35022ab097f..fcee11c8774 100644 --- a/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_scourgelord_tyrannus.cpp +++ b/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_scourgelord_tyrannus.cpp @@ -17,6 +17,7 @@ #include "ScriptPCH.h" #include "pit_of_saron.h" +#include "Vehicle.h" enum Yells { diff --git a/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/pit_of_saron.cpp b/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/pit_of_saron.cpp index 663c2b0fcc6..fa573408d3c 100644 --- a/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/pit_of_saron.cpp +++ b/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/pit_of_saron.cpp @@ -17,6 +17,7 @@ #include "ScriptPCH.h" #include "pit_of_saron.h" +#include "Vehicle.h" enum eSpells { diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_professor_putricide.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_professor_putricide.cpp index 094e03b9d68..ba3a2bc1e43 100755 --- a/src/server/scripts/Northrend/IcecrownCitadel/boss_professor_putricide.cpp +++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_professor_putricide.cpp @@ -22,6 +22,7 @@ #include "Group.h" #include "Spell.h" #include "icecrown_citadel.h" +#include "Vehicle.h" enum ScriptTexts { diff --git a/src/server/scripts/Northrend/Ulduar/ulduar/boss_flame_leviathan.cpp b/src/server/scripts/Northrend/Ulduar/ulduar/boss_flame_leviathan.cpp index e4384f70279..779abd6ddf8 100644 --- a/src/server/scripts/Northrend/Ulduar/ulduar/boss_flame_leviathan.cpp +++ b/src/server/scripts/Northrend/Ulduar/ulduar/boss_flame_leviathan.cpp @@ -31,6 +31,7 @@ #include "ObjectMgr.h" #include "ulduar.h" #include "SpellInfo.h" +#include "Vehicle.h" enum Spells { diff --git a/src/server/scripts/Northrend/Ulduar/ulduar/boss_ignis.cpp b/src/server/scripts/Northrend/Ulduar/ulduar/boss_ignis.cpp index 574776166f3..53c19b00ee4 100644 --- a/src/server/scripts/Northrend/Ulduar/ulduar/boss_ignis.cpp +++ b/src/server/scripts/Northrend/Ulduar/ulduar/boss_ignis.cpp @@ -20,6 +20,7 @@ #include "SpellScript.h" #include "SpellAuraEffects.h" #include "ulduar.h" +#include "Vehicle.h" enum Yells { diff --git a/src/server/scripts/Northrend/Ulduar/ulduar/boss_kologarn.cpp b/src/server/scripts/Northrend/Ulduar/ulduar/boss_kologarn.cpp index cad50775878..e867a1aa5fc 100644 --- a/src/server/scripts/Northrend/Ulduar/ulduar/boss_kologarn.cpp +++ b/src/server/scripts/Northrend/Ulduar/ulduar/boss_kologarn.cpp @@ -20,6 +20,7 @@ #include "SpellScript.h" #include "SpellAuraEffects.h" #include "ulduar.h" +#include "Vehicle.h" /* ScriptData SDName: boss_kologarn diff --git a/src/server/scripts/Northrend/Ulduar/ulduar/boss_xt002.cpp b/src/server/scripts/Northrend/Ulduar/ulduar/boss_xt002.cpp index 8840fa6669e..913e2a611c1 100644 --- a/src/server/scripts/Northrend/Ulduar/ulduar/boss_xt002.cpp +++ b/src/server/scripts/Northrend/Ulduar/ulduar/boss_xt002.cpp @@ -28,6 +28,7 @@ #include "SpellScript.h" #include "SpellAuraEffects.h" #include "ulduar.h" +#include "Vehicle.h" enum Spells { diff --git a/src/server/scripts/Northrend/storm_peaks.cpp b/src/server/scripts/Northrend/storm_peaks.cpp index 4d471996ba0..8ad91fcf1f6 100644 --- a/src/server/scripts/Northrend/storm_peaks.cpp +++ b/src/server/scripts/Northrend/storm_peaks.cpp @@ -17,6 +17,7 @@ #include "ScriptPCH.h" #include "ScriptedEscortAI.h" +#include "Vehicle.h" /*###### ## npc_agnetta_tyrsdottar diff --git a/src/server/scripts/World/achievement_scripts.cpp b/src/server/scripts/World/achievement_scripts.cpp index 25126b3750c..a9d31f28180 100755 --- a/src/server/scripts/World/achievement_scripts.cpp +++ b/src/server/scripts/World/achievement_scripts.cpp @@ -21,6 +21,7 @@ #include "BattlegroundWS.h" #include "BattlegroundIC.h" #include "BattlegroundSA.h" +#include "Vehicle.h" class achievement_storm_glory : public AchievementCriteriaScript { |