feat(CreationDataNodes): Add more creation data nodes. (#20)

* feat(DataNodes): Add multiple data nodes and sync classes.

* fix(CPlayerAppearanceDataNode): Update class to 1.61.

* feat(CObjectCreationDataNode): Added node and vector4.

* fix(CObjectCreationNode): Minor issue with includes.

* fix(CObjectCreationDataNode): Make class members public.

* feat(CreationDataNodes): Add creation data nodes.
This commit is contained in:
Reece Watson 2022-08-09 20:39:47 -04:00 committed by GitHub
parent 0f1906a9f7
commit ed08cda69d
6 changed files with 107 additions and 0 deletions

View File

@ -0,0 +1,10 @@
#pragma once
class CAutomobileCreationDataNode
{
public:
char pad_0000[192]; //0x0000
bool m_all_doors_closed; //0x00C0
bool m_door_closed[10]; //0x00C1
}; //Size: 0x00CB
static_assert(sizeof(CAutomobileCreationDataNode) == 0xCB);

View File

@ -0,0 +1,17 @@
#pragma once
#include <cstdint>
#include "rage/vector.hpp"
class CDoorCreationDataNode
{
public:
char pad_0000[192]; //0x0000
uint32_t m_model; //0x00C0
char pad_00C4[12]; //0x00C4
rage::fvector3 m_pos; //0x00D0
char pad_00DC[12]; //0x00DC
bool m_is_script_door; //0x00E8
bool m_player_wants_control; //0x00E9
}; //Size: 0x00EC
static_assert(sizeof(CDoorCreationDataNode) == 0xEC);

View File

@ -0,0 +1,9 @@
#pragma once
class CPedScriptCreationDataNode
{
public:
char pad_0x0[192]; //0x0000
bool m_stay_in_car_when_jacked; //0x00C0
}; //Size: 0x00C1
static_assert(sizeof(CPedScriptCreationDataNode) == 0xC1);

View File

@ -0,0 +1,28 @@
#pragma once
#include <cstdint>
class CPickupCreationDataNode
{
public:
char pad_0000[192]; //0x0000
bool m_has_placement; //0x00C0
char pad_00C1[7]; //0x00C1
uint64_t *unk_struct_00C8; //0x00C8
uint32_t unk_00D0; //0x00D0
uint16_t unk_00D4; //0x00D4
char pad_00D6[66]; //0x00D6
uint32_t m_pickup_hash; //0x0118
uint32_t m_amount; //0x011C
uint32_t m_custom_model; //0x0120
uint32_t m_life_time; //0x0124
uint32_t m_weapon_component[11]; //0x0128
uint32_t m_num_weapon_components; //0x0154
uint32_t m_tint_index; //0x0158
bool m_player_gift; //0x015C
bool unk_015D; //0x015D
char pad_015E[6]; //0x015E
uint32_t unk_0164; //0x0164
bool unk_0168; //0x0168
}; //Size: 0x0170
static_assert(sizeof(CPickupCreationDataNode) == 0x170);

View File

@ -0,0 +1,23 @@
#pragma once
#include <cstdint>
#include "rage/vector.hpp"
class CPickupPlacementCreationDataNode
{
public:
char pad_0000[192]; //0x0000
bool m_has_pickup_data; //0x00C0
char pad_00C1[15]; //0x00C1
rage::fvector3 m_pickup_pos; //0x00D0
char pad_00DC[4]; //0x00DC
rage::fvector4 m_pickup_orientation; //0x00E0
uint32_t m_pickup_type; //0x00F0
uint32_t m_pickup_flags; //0x00F4
uint32_t m_amount; //0x00F8
uint32_t m_custom_model; //0x00FC
uint32_t m_custom_regeneration_time; //0x0100
uint32_t m_team_permits; //0x0104
uint64_t *unk_struct_0108; //0x0108
}; //Size: 0x0110
static_assert(sizeof(CPickupPlacementCreationDataNode) == 0x110);

View File

@ -0,0 +1,20 @@
#pragma once
#include <cstdint>
#pragma pack(push,4)
class CPlayerCreationDataNode
{
public:
char pad_0000[192]; //0x0000
uint32_t m_model; //0x00C0
uint32_t m_num_scars; //0x00C4
char unk_struct_0xC8[192]; //0x00C8
uint32_t unk_0188; //0x0188
char pad_018C[4]; //0x018C
char m_scar_struct[176]; //0x0190
bool unk_0240; //0x0240
char pad_0241[19]; //0x0241
}; //Size: 0x0254
static_assert(sizeof(CPlayerCreationDataNode) == 0x254);
#pragma pack(pop)