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:
parent
eab95fba6d
commit
e8d8bdd2b3
@ -4,17 +4,23 @@
|
|||||||
class GtaThread : public rage::scrThread
|
class GtaThread : public rage::scrThread
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
rage::joaat_t m_script_hash; // 0x120
|
rage::joaat_t m_script_hash; // 0x128
|
||||||
char m_padding3[0x14]; // 0x124
|
int m_force_cleanup_ip; // 0x12C
|
||||||
std::int32_t m_instance_id; // 0x138
|
int m_force_cleanup_fp; // 0x130
|
||||||
char m_padding4[0x04]; // 0x13C
|
int m_force_cleanup_sp; // 0x134
|
||||||
std::uint8_t m_flag1; // 0x140
|
int m_force_cleanup_filter; // 0x138
|
||||||
bool m_safe_for_network_game; // 0x141
|
int m_force_cleanup_cause; // 0x13C
|
||||||
char m_padding5[0x02]; // 0x142
|
std::int32_t m_instance_id; // 0x140
|
||||||
bool m_is_minigame_script; // 0x144
|
char m_padding4[0x04]; // 0x144
|
||||||
char m_padding6[0x02]; // 0x145
|
std::uint8_t m_flag1; // 0x148
|
||||||
bool m_can_be_paused; // 0x147
|
bool m_safe_for_network_game; // 0x149
|
||||||
bool m_can_remove_blips_from_other_scripts; // 0x148
|
char m_padding5[0x02]; // 0x14A
|
||||||
char m_padding7[0x0F]; // 0x149
|
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);
|
static_assert(sizeof(GtaThread) == 0x160);
|
@ -46,7 +46,7 @@ namespace rage
|
|||||||
{
|
{
|
||||||
*reinterpret_cast<std::remove_cv_t<std::remove_reference_t<T>>*>(m_return_value) = std::forward<T>(value);
|
*reinterpret_cast<std::remove_cv_t<std::remove_reference_t<T>>*>(m_return_value) = std::forward<T>(value);
|
||||||
}
|
}
|
||||||
protected:
|
|
||||||
void* m_return_value;
|
void* m_return_value;
|
||||||
std::uint32_t m_arg_count;
|
std::uint32_t m_arg_count;
|
||||||
void* m_args;
|
void* m_args;
|
||||||
|
@ -3,6 +3,7 @@
|
|||||||
|
|
||||||
#include "../base/pgBase.hpp"
|
#include "../base/pgBase.hpp"
|
||||||
#include "../rage/scrValue.hpp"
|
#include "../rage/scrValue.hpp"
|
||||||
|
#include "scrNativeHandler.hpp"
|
||||||
|
|
||||||
#pragma pack(push, 1)
|
#pragma pack(push, 1)
|
||||||
namespace rage
|
namespace rage
|
||||||
|
@ -23,10 +23,9 @@ namespace rage
|
|||||||
uint32_t m_arg_loc; // 0xC0
|
uint32_t m_arg_loc; // 0xC0
|
||||||
char m_padding2[0x4]; // 0xC4
|
char m_padding2[0x4]; // 0xC4
|
||||||
const char* m_exit_message; // 0xC8
|
const char* m_exit_message; // 0xC8
|
||||||
char m_pad[0x4];
|
char m_pad[0x4]; // 0xD0
|
||||||
char m_name[0x40]; // 0xD4
|
char m_name[0x40]; // 0xD4
|
||||||
scriptHandler* m_handler; // 0x114
|
scriptHandler* m_handler; // 0x118
|
||||||
scriptHandlerNetComponent* m_net_component; // 0x11C
|
scriptHandlerNetComponent* m_net_component; // 0x120
|
||||||
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -25,7 +25,7 @@ namespace rage
|
|||||||
std::uint32_t m_stack_pointer; // 0x14
|
std::uint32_t m_stack_pointer; // 0x14
|
||||||
float m_timer_a; // 0x18
|
float m_timer_a; // 0x18
|
||||||
float m_timer_b; // 0x1C
|
float m_timer_b; // 0x1C
|
||||||
float m_timer_c; // 0x20
|
float m_wait_timer; // 0x20
|
||||||
char m_padding1[0x2C]; // 0x24
|
char m_padding1[0x2C]; // 0x24
|
||||||
std::uint32_t m_stack_size; // 0x50
|
std::uint32_t m_stack_size; // 0x50
|
||||||
char m_padding2[0x54]; // 0x54
|
char m_padding2[0x54]; // 0x54
|
||||||
|
Loading…
Reference in New Issue
Block a user