aboutsummaryrefslogtreecommitdiff
path: root/src/game/Vehicle.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/game/Vehicle.h')
-rw-r--r--src/game/Vehicle.h13
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