RDR-Classes/train/CTrainConfig.hpp
Ryan a61459d3b1
Net, Animation, and Train class improvements (#35)
* feat: expose object GUID info

* fix: stop using bitfields

* feat(netsync): add CAnimSceneInfrequentData

* feat(train): add CTrainConfig and more

* feat(netsync): add CAnimSceneCreationData

* fix(server): fix server messages and encryption keys

* feat(netsync): add CPedHealthData and CPedVitalityData
2024-09-07 17:34:32 -04:00

75 lines
1.4 KiB
C++

#pragma once
#include <cstdint>
#include <string_view>
#include "rage/atArray.hpp"
class CTrainCarriageInfo
{
public:
uint32_t m_ModelName;
uint32_t _0x5E64EA3E;
uint32_t _0xE2BDEA7B;
uint32_t _0xECA6D302;
uint32_t _0xFBF5C716;
float _0x46B81FF8;
float _0xEC4633A5;
uint _0x535A0BBE;
uint m_ModelId;
int m_Extras;
bool _0x153918B6;
bool _0x88A76D74;
bool _0xC77853E4;
uint8_t m_TintPreset;
};
static_assert(sizeof(CTrainCarriageInfo) == 0x2C);
class CTrainConfigRef
{
public:
uint32_t m_TrainConfigName;
uint8_t _0x07E33620;
};
static_assert(sizeof(CTrainConfigRef) == 0x8);
class CTrainConfig
{
public:
uint32_t m_Name;
float _0x0ED29061;
float _0xE43D854D;
float _0x72443177;
float _0xA50FC0EB;
bool _0xFD90C5F8;
bool _0x0546B416;
bool _0xD41F8E7D;
bool m_CarriagesSwing;
bool _0xEDD766A7;
bool _0xDB277834;
bool m_NoRandomSpawn;
bool m_NoDriver;
float m_CarriageGap;
rage::atArray<CTrainCarriageInfo> m_Carriages;
uint32_t _0xA400A33A;
float m_DefaultMaxSpeed;
float m_MaxAcceleration;
float m_MaxDeceleration;
bool m_IsTram;
};
static_assert(sizeof(CTrainConfig) == 0x48);
class CTrainConfigGroup
{
public:
uint32_t m_Name;
rage::atArray<CTrainConfigRef> m_Refs;
};
static_assert(sizeof(CTrainConfigGroup) == 0x18);
class CTrainConfigs
{
public:
rage::atArray<CTrainConfig> m_TrainConfigs;
rage::atArray<CTrainConfigGroup> m_TrainGroups;
};