mirror of
https://github.com/CookiePLMonster/SilentPatch.git
synced 2024-11-22 05:22:32 +01:00
7ad7901a3e
Makes SP's code compatible with FLA's 32-bit model IDs
57 lines
1.0 KiB
C++
57 lines
1.0 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"); |