Assorted fixes (#157)

* feat(GtaThread): add force cleanup fields

* fix(scrThreadContext): there is no TIMER_C

* feat(GtaThread): add the flag

* fix(scrProgram): add scrNativeHandler include

* fix(scrNativeHandler): make data fields public

---------

Co-authored-by: maybegreat48 <email@hostname>
This commit is contained in:
maybegreat48 2023-12-20 14:49:40 +00:00 committed by GitHub
parent 5881f50a80
commit 34f46160d0
5 changed files with 25 additions and 19 deletions

View File

@ -4,17 +4,23 @@
class GtaThread : public rage::scrThread
{
public:
rage::joaat_t m_script_hash; // 0x120
char m_padding3[0x14]; // 0x124
std::int32_t m_instance_id; // 0x138
char m_padding4[0x04]; // 0x13C
std::uint8_t m_flag1; // 0x140
bool m_safe_for_network_game; // 0x141
char m_padding5[0x02]; // 0x142
bool m_is_minigame_script; // 0x144
char m_padding6[0x02]; // 0x145
bool m_can_be_paused; // 0x147
bool m_can_remove_blips_from_other_scripts; // 0x148
char m_padding7[0x0F]; // 0x149
rage::joaat_t m_script_hash; // 0x128
int m_force_cleanup_ip; // 0x12C
int m_force_cleanup_fp; // 0x130
int m_force_cleanup_sp; // 0x134
int m_force_cleanup_filter; // 0x138
int m_force_cleanup_cause; // 0x13C
std::int32_t m_instance_id; // 0x140
char m_padding4[0x04]; // 0x144
std::uint8_t m_flag1; // 0x148
bool m_safe_for_network_game; // 0x149
char m_padding5[0x02]; // 0x14A
bool m_is_minigame_script; // 0x14C
char m_padding6[0x02]; // 0x14D
bool m_can_be_paused; // 0x14F
bool m_can_remove_blips_from_other_scripts; // 0x150
char m_padding7[0x2]; // 0x151
std::uint8_t m_force_cleanup_state; // 0x153
char m_padding8[0xC]; // 0x154
};
static_assert(sizeof(GtaThread) == 0x160);

View File

@ -46,7 +46,7 @@ namespace rage
{
*reinterpret_cast<std::remove_cv_t<std::remove_reference_t<T>>*>(m_return_value) = std::forward<T>(value);
}
protected:
void* m_return_value;
std::uint32_t m_arg_count;
void* m_args;

View File

@ -3,6 +3,7 @@
#include "../base/pgBase.hpp"
#include "../rage/scrValue.hpp"
#include "scrNativeHandler.hpp"
#pragma pack(push, 1)
namespace rage

View File

@ -23,10 +23,9 @@ namespace rage
uint32_t m_arg_loc; // 0xC0
char m_padding2[0x4]; // 0xC4
const char* m_exit_message; // 0xC8
char m_pad[0x4];
char m_pad[0x4]; // 0xD0
char m_name[0x40]; // 0xD4
scriptHandler* m_handler; // 0x114
scriptHandlerNetComponent* m_net_component; // 0x11C
scriptHandler* m_handler; // 0x118
scriptHandlerNetComponent* m_net_component; // 0x120
};
}

View File

@ -25,7 +25,7 @@ namespace rage
std::uint32_t m_stack_pointer; // 0x14
float m_timer_a; // 0x18
float m_timer_b; // 0x1C
float m_timer_c; // 0x20
float m_wait_timer; // 0x20
char m_padding1[0x2C]; // 0x24
std::uint32_t m_stack_size; // 0x50
char m_padding2[0x54]; // 0x54