feat(Vehicle): Added sub handling data (#73)
This commit is contained in:
parent
54772b7c79
commit
11e161582e
16
enums/eHandlingType.hpp
Normal file
16
enums/eHandlingType.hpp
Normal file
@ -0,0 +1,16 @@
|
||||
#pragma once
|
||||
|
||||
enum class eHandlingType
|
||||
{
|
||||
HANDLING_TYPE_BIKE,
|
||||
HANDLING_TYPE_FLYING,
|
||||
HANDLING_TYPE_VERTICAL_FLYING,
|
||||
HANDLING_TYPE_BOAT,
|
||||
HANDLING_TYPE_SEAPLANE,
|
||||
HANDLING_TYPE_SUBMARINE,
|
||||
HANDLING_TYPE_TRAIN,
|
||||
HANDLING_TYPE_TRAILER,
|
||||
HANDLING_TYPE_CAR,
|
||||
HANDLING_TYPE_WEAPON,
|
||||
HANDLING_TYPE_MAX_TYPES
|
||||
};
|
11
vehicle/CAdvancedData.hpp
Normal file
11
vehicle/CAdvancedData.hpp
Normal file
@ -0,0 +1,11 @@
|
||||
#pragma once
|
||||
|
||||
class CAdvancedData
|
||||
{
|
||||
public:
|
||||
virtual ~CAdvancedData() = 0;
|
||||
|
||||
int m_slot;
|
||||
int m_index;
|
||||
float m_value;
|
||||
};
|
11
vehicle/CBaseSubHandlingData.hpp
Normal file
11
vehicle/CBaseSubHandlingData.hpp
Normal file
@ -0,0 +1,11 @@
|
||||
#pragma once
|
||||
#include "CHandlingObject.hpp"
|
||||
#include "../enums/eHandlingType.hpp"
|
||||
|
||||
class CBaseSubHandlingData : public CHandlingObject
|
||||
{
|
||||
public:
|
||||
virtual eHandlingType GetHandlingType() = 0;
|
||||
virtual void OnPostLoad() = 0;
|
||||
|
||||
};
|
61
vehicle/CCarHandlingData.hpp
Normal file
61
vehicle/CCarHandlingData.hpp
Normal file
@ -0,0 +1,61 @@
|
||||
#pragma once
|
||||
#include <cstdint>
|
||||
|
||||
#include "CAdvancedData.hpp"
|
||||
#include "CBaseSubHandlingData.hpp"
|
||||
#include "../rage/atArray.hpp"
|
||||
|
||||
enum eAdvancedFlags
|
||||
{
|
||||
NONE,
|
||||
CF_DIFF_FRONT = 1 << 0,
|
||||
CF_DIFF_REAR = 1 << 1,
|
||||
CF_DIFF_CENTRE = 1 << 2,
|
||||
CF_DIFF_LIMITED_FRONT = 1 << 3,
|
||||
CF_DIFF_LIMITED_REAR = 1 << 4,
|
||||
CF_DIFF_LIMITED_CENTRE = 1 << 5,
|
||||
CF_DIFF_LOCKING_FRONT = 1 << 6,
|
||||
CF_DIFF_LOCKING_REAR = 1 << 7,
|
||||
CF_DIFF_LOCKING_CENTRE = 1 << 8,
|
||||
CF_GEARBOX_FULL_AUTO = 1 << 9,
|
||||
CF_GEARBOX_MANUAL = 1 << 10,
|
||||
CF_GEARBOX_DIRECT_SHIFT = 1 << 11,
|
||||
CF_GEARBOX_ELECTRIC = 1 << 12,
|
||||
CF_ASSIST_TRACTION_CONTROL = 1 << 13,
|
||||
CF_ASSIST_STABILITY_CONTROL = 1 << 14,
|
||||
CF_ALLOW_REDUCED_SUSPENSION_FORCE = 1 << 15,
|
||||
CF_HARD_REV_LIMIT = 1 << 16,
|
||||
CF_HOLD_GEAR_WITH_WHEELSPIN = 1 << 17,
|
||||
CF_INCREASE_SUSPENSION_FORCE_WITH_SPEED = 1 << 18,
|
||||
CF_BLOCK_INCREASED_ROT_VELOCITY_WITH_DRIVE_FORCE = 1 << 19,
|
||||
CF_REDUCED_SELF_RIGHTING_SPEED = 1 << 20,
|
||||
CF_CLOSE_RATIO_GEARBOX = 1 << 21,
|
||||
CF_FORCE_SMOOTH_RPM = 1 << 22,
|
||||
CF_ALLOW_TURN_ON_SPOT = 1 << 23,
|
||||
CF_CAN_WHEELIE = 1 << 24,
|
||||
CF_ENABLE_WHEEL_BLOCKER_SIDE_IMPACTS = 1 << 25,
|
||||
CF_FIX_OLD_BUGS = 1 << 26,
|
||||
CF_USE_DOWNFORCE_BIAS = 1 << 27,
|
||||
CF_REDUCE_BODY_ROLL_WITH_SUSPENSION_MODS = 1 << 28,
|
||||
CF_ALLOWS_EXTENDED_MODS = 1 << 29
|
||||
};
|
||||
|
||||
class CCarHandlingData : public CBaseSubHandlingData
|
||||
{
|
||||
public:
|
||||
float m_back_end_popup_car_impulse_mult; //0x0008
|
||||
float m_back_end_popup_building_impulse_mult; //0x000C
|
||||
float m_back_end_popup_max_delta_speed; //0x0010
|
||||
float m_toe_front; //0x0014
|
||||
float m_toe_rear; //0x0018
|
||||
float m_camber_front; //0x001C
|
||||
float m_camber_rear; //0x0020
|
||||
float m_castor; //0x0024
|
||||
float m_engine_resistance; //0x0028
|
||||
float m_max_drive_bias_transfer; //0x002C
|
||||
float m_jumpforce_scale; //0x0030
|
||||
float m_unk_034; //0x0034
|
||||
uint32_t m_unk_038; //0x0038
|
||||
uint32_t m_advanced_flags; //0x003C
|
||||
rage::atArray<CAdvancedData> m_advanced_data; //0x0040
|
||||
};
|
@ -1,5 +1,7 @@
|
||||
#pragma once
|
||||
|
||||
#include "CBaseSubHandlingData.hpp"
|
||||
#include "../rage/atArray.hpp"
|
||||
#include "../rage/vector.hpp"
|
||||
|
||||
#include <cstdint>
|
||||
@ -78,5 +80,7 @@ public:
|
||||
uint32_t m_damage_flags; //0x012C
|
||||
char pad_0130[12]; //0x0130
|
||||
uint32_t m_ai_handling_hash; //0x013C
|
||||
}; //Size: 0x0140
|
||||
static_assert(sizeof(CHandlingData) == 0x140);
|
||||
char pad_140[24]; //0x140
|
||||
rage::atArray<CBaseSubHandlingData*> m_sub_handling_data; // 0x158
|
||||
}; //Size: 0x0160
|
||||
static_assert(sizeof(CHandlingData) == 0x168);
|
||||
|
8
vehicle/CHandlingObject.hpp
Normal file
8
vehicle/CHandlingObject.hpp
Normal file
@ -0,0 +1,8 @@
|
||||
#pragma once
|
||||
|
||||
class CHandlingObject
|
||||
{
|
||||
public:
|
||||
virtual ~CHandlingObject() = 0;
|
||||
virtual void* parser_GetStructure() = 0; //ret rage::parStructure
|
||||
};
|
Loading…
Reference in New Issue
Block a user