diff options
Diffstat (limited to 'src/game/Vehicle.h')
-rw-r--r-- | src/game/Vehicle.h | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/game/Vehicle.h b/src/game/Vehicle.h index 2a85912b7b6..620f194a15b 100644 --- a/src/game/Vehicle.h +++ b/src/game/Vehicle.h @@ -15,36 +15,46 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ + #ifndef MANGOSSERVER_VEHICLE_H #define MANGOSSERVER_VEHICLE_H + #include "ObjectDefines.h" + struct VehicleEntry; struct VehicleSeatEntry; class Unit; + enum PowerType { POWER_STEAM = 61, POWER_PYRITE = 41, }; + struct VehicleSeat { explicit VehicleSeat(VehicleSeatEntry const *_seatInfo) : seatInfo(_seatInfo), passenger(NULL) {} VehicleSeatEntry const *seatInfo; Unit* passenger; }; + typedef std::map<int8, VehicleSeat> SeatMap; + class TRINITY_DLL_SPEC Vehicle { public: explicit Vehicle(Unit *unit, VehicleEntry const *vehInfo); virtual ~Vehicle(); + void Install(); void Uninstall(); void Reset(); void Die(); void InstallAllAccessories(); + Unit *GetBase() const { return me; } VehicleEntry const *GetVehicleInfo() { return m_vehicleInfo; } + bool HasEmptySeat(int8 seatId) const; Unit *GetPassenger(int8 seatId) const; int8 GetNextEmptySeat(int8 seatId, bool next) const; @@ -52,11 +62,14 @@ class TRINITY_DLL_SPEC Vehicle void RemovePassenger(Unit *passenger); void RemoveAllPassengers(); void Dismiss(); + SeatMap m_Seats; + protected: Unit *me; VehicleEntry const *m_vehicleInfo; uint32 m_usableSeatNum; + void InstallAccessory(uint32 entry, int8 seatId, bool minion = true); }; #endif |