#pragma once #include #include "Maths.h" #include "TheFLAUtils.h" enum eVehicleType { VEHICLE_AUTOMOBILE, VEHICLE_BOAT, VEHICLE_TRAIN, VEHICLE_HELI, VEHICLE_PLANE }; class CVehicle { protected: // TODO: Make this part of CEntity properly void* __vmt; CMatrix m_matrix; uint8_t __pad2[16]; FLAUtils::int16 m_modelIndex; uint8_t __pad1[548]; uint32_t m_dwVehicleClass; public: int32_t GetModelIndex() const { return m_modelIndex.Get(); } const CMatrix& GetMatrix() const { return m_matrix; } uint32_t GetClass() const { return m_dwVehicleClass; } }; class CAutomobile : public CVehicle { private: uint8_t __pad2[593]; uint8_t m_BombOnBoard : 3; class CEntity* m_pBombOwner; uint8_t __pad33[200]; public: void SetBombOnBoard( uint32_t bombOnBoard ) { m_BombOnBoard = bombOnBoard; } void SetBombOwner( class CEntity* owner ) { m_pBombOwner = owner; } }; static_assert(sizeof(CVehicle) == 0x288, "Wrong size: CVehicle"); static_assert(sizeof(CAutomobile) == 0x5A8, "Wrong size: CAutomobile");