diff --git a/datanodes/task/ClonedTakeOffPedVariationInfo.hpp b/datanodes/task/ClonedTakeOffPedVariationInfo.hpp index 6fe095c..74b2ea7 100644 --- a/datanodes/task/ClonedTakeOffPedVariationInfo.hpp +++ b/datanodes/task/ClonedTakeOffPedVariationInfo.hpp @@ -1,13 +1,34 @@ #pragma once + #include +#include "../../rage/vector.hpp" #pragma pack(push, 1) class ClonedTakeOffPedVariationInfo { public: - char pad_0000[112]; //0x0000 - uint32_t m_parachute_override_model_hash; //0x0070 - char pad_0074[20]; //0x0074 -}; //Size: 0x0088 -static_assert(sizeof(ClonedTakeOffPedVariationInfo) == 0x88); + char pad_0000[48]; //0x0000 + rage::fvector3 m_attach_offset; //0x0030 + char pad_003C[4]; //0x003C + rage::fvector3 m_velocity; //0x0040 + char pad_004C[4]; //0x004C + rage::fvector3 m_attach_offset_rotation; //0x0050 + char pad_005C[4]; //0x005C + uint32_t m_clip_set_id; //0x0060 + uint32_t m_clip_id_ped; //0x0064 + uint32_t m_clip_id_prop; //0x0068 + int32_t m_variation_component; //0x006C + uint32_t m_prop_hash; //0x0070 + int32_t m_attach_bone_tag; //0x0074 + float m_blend_in_delta_ped; //0x0078 + float m_blend_in_delta_prop; //0x007C + float m_phase_to_blend_out; //0x0080 + float m_blend_out_delta; //0x0084 + float m_force_to_apply; //0x0088 + uint8_t m_variation_drawable_id; //0x008C + uint8_t m_variation_drawable_alt_id; //0x008D + char pad_008E[1]; //0x008E Drawable texture maybe? + uint8_t m_running_flags; //0x008F +}; //Size: 0x0090 +static_assert(sizeof(ClonedTakeOffPedVariationInfo) == 0x90); #pragma pack(pop) diff --git a/network/RemoteGamerInfoMsg.hpp b/network/RemoteGamerInfoMsg.hpp index e8e462d..e4222a5 100644 --- a/network/RemoteGamerInfoMsg.hpp +++ b/network/RemoteGamerInfoMsg.hpp @@ -2,17 +2,34 @@ #include #include "../rage/rlGamerInfo.hpp" -#pragma pack(push, 1) +#pragma pack(push, 4) +class netConnectionPeer +{ +public: + uint32_t m_internal_ip; //0x0000 + uint16_t m_internal_port; //0x0004 + uint32_t m_external_ip; //0x0008 + uint16_t m_external_port; //0x000C + uint64_t m_peer_id; //0x0010 + uint32_t unk_0018; //0x0018 + uint16_t unk_001C; //0x001C + uint8_t m_platform; //0x001E +}; +static_assert(sizeof(netConnectionPeer) == 0x20); +#pragma pack(pop) + +#pragma pack(push, 8) class RemoteGamerInfoMsg { public: uint64_t m_session_id; //0x0000 class rage::rlGamerInfo m_gamer_info; //0x0008 - char pad_00A0[32]; //0x00A0 - uint32_t m_unk; //0x00C0 - char pad_00C4[516]; //0x00C4 - uint32_t m_required_player_count; //0x02C8 - char pad_02CC[20]; //0x02CC -}; //Size: 0x02E0 -static_assert(sizeof(RemoteGamerInfoMsg) == 0x2E0); + class netConnectionPeer m_gamer_peer_data; //0x00A0 + uint32_t unk_0xC0; //0x00C0 + uint32_t m_unk_struct_size; //0x00C4 + char m_unk_struct[512]; //0x00C8 Might be bitbuffer data + uint32_t m_num_handles; //0x02C8 + class rage::rlGamerHandle m_handles[32]; //0x02D0 +}; //Size: 0x04D0 +static_assert(sizeof(RemoteGamerInfoMsg) == 0x4D0); #pragma pack(pop)