SilentPatch/SilentPatchIII/VehicleIII.h

58 lines
1.0 KiB
C++

#pragma once
#include <cstdint>
#include "Maths.h"
enum eVehicleType
{
VEHICLE_AUTOMOBILE,
VEHICLE_BOAT,
VEHICLE_TRAIN,
VEHICLE_HELI,
VEHICLE_PLANE
};
constexpr uint16_t MI_TAXI = 110;
class CVehicle
{
protected:
// TODO: Make this part of CEntity properly
void* __vmt;
CMatrix m_matrix;
uint8_t __pad2[16];
uint16_t m_modelIndex; // TODO: THE FLA
uint8_t __pad1[548];
uint32_t m_dwVehicleClass;
public:
int32_t GetModelIndex() const
{ return m_modelIndex; }
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");