diff --git a/camera/CCameraAngles.hpp b/camera/CCameraAngles.hpp index 2a57e6f..0784e91 100644 --- a/camera/CCameraAngles.hpp +++ b/camera/CCameraAngles.hpp @@ -4,9 +4,14 @@ class CCameraAngles { +private: + char pad_0000[704]; //0x0000 public: - char pad_0000[960]; //0x0000 - CPlayerAngles* angles; //0x03C0 - char pad_03C8[60]; //0x03C8 -}; //Size: 0x0408 -static_assert(sizeof(CCameraAngles) == 0x408); + CPlayerAngles* m_vehicle; //0x02C0 + CPlayerAngles* m_vehicle_two; //0x02C8 +private: + char pad_02D0[240]; //0x02D0 +public: + CPlayerAngles* m_player_first_person; //0x03C0 +}; //Size: 0x03C8 +static_assert(sizeof(CCameraAngles) == 0x3C8); \ No newline at end of file diff --git a/gtav.rcnet b/gtav.rcnet index 8239f87..3fa9ec0 100644 Binary files a/gtav.rcnet and b/gtav.rcnet differ diff --git a/player/CPlayerAngles.hpp b/player/CPlayerAngles.hpp index bdbdb8b..0aca68f 100644 --- a/player/CPlayerAngles.hpp +++ b/player/CPlayerAngles.hpp @@ -3,19 +3,46 @@ #include "../rage/vector.hpp" #include "CPlayerCameraData.hpp" +#pragma pack(push, 4) class CPlayerAngles { +private: + char pad_0000[16]; //0x0000 public: - char pad_0000[16]; //0x0000 - CPlayerCameraData* m_cam_data; //0x0010 - char pad_0018[24]; //0x0018 - rage::fvector3 m_right; //0x0030 - char pad_003C[4]; //0x003C - rage::fvector3 m_forward; //0x0040 - char pad_004C[4]; //0x004C - rage::fvector3 m_up; //0x0050 - char pad_005C[4]; //0x005C - rage::fvector3 m_position; //0x0060 - char pad_006C[36]; //0x006C -}; //Size: 0x0090 -static_assert(sizeof(CPlayerAngles) == 0x90); + CPlayerCameraData* m_cam_data; //0x0010 +private: + char pad_0018[24]; //0x0018 +public: + rage::fvector3 m_theta_angles; //0x0030 +private: + char pad_003C[4]; //0x003C +public: + rage::fvector3 m_camera_rotation_first_person; //0x0040 +private: + char pad_004C[4]; //0x004C +public: + rage::fvector3 m_omega_angles; //0x0050 +private: + char pad_005C[4]; //0x005C +public: + rage::fvector3 m_location; //0x0060 +private: + char pad_006C[36]; //0x006C +public: + float m_fov; //0x0090 +private: + char pad_0094[828]; //0x0094 +public: + rage::fvector3 m_camera_rotation; //0x03D0 + + void set_camera(rage::fvector3 new_angles) + { + m_camera_rotation = new_angles; + } + void set_fps_camera(rage::fvector3 new_angles) + { + m_camera_rotation_first_person = new_angles; + } +}; //Size: 0x03DC +#pragma pack(pop) +static_assert(sizeof(CPlayerAngles) == 0x3DC, "CPlayerAngles is not properly sized!"); \ No newline at end of file diff --git a/rage/rlGamerHandle.hpp b/rage/rlGamerHandle.hpp index 3feebdd..feec1d5 100644 --- a/rage/rlGamerHandle.hpp +++ b/rage/rlGamerHandle.hpp @@ -4,20 +4,28 @@ namespace rage { + enum rlPlatforms : uint8_t + { + UNK0, + XBOX, + PLAYSTATION, + PC, + }; + #pragma pack(push,8) class rlGamerHandle { public: uint64_t m_rockstar_id; //0x0000 uint8_t m_platform; //0x0008 - uint8_t unk_0009; //0x0009 + uint8_t m_padding; //0x0009 inline rlGamerHandle() = default; inline rlGamerHandle(uint64_t rockstar_id) : m_rockstar_id(rockstar_id), - m_platform(3), - unk_0009(0) + m_platform(rlPlatforms::PC), + m_padding(0) { } }; //Size: 0x0010