SilentPatch/SilentPatchIII/VehicleIII.h

57 lines
1 KiB
C
Raw Permalink Normal View History

#pragma once
#include <cstdint>
#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");