SilentPatch/SilentPatchIII/VehicleIII.h
Silent 7ad7901a3e
III/VC: Integrate FLA utils
Makes SP's code compatible with FLA's 32-bit model IDs
2024-05-09 19:11:20 +02:00

57 lines
No EOL
1 KiB
C++

#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");