Use update_all_patches_for_script instead of update and store script's joaat instead of its string
This commit is contained in:
parent
20215ee2fa
commit
7874b20471
@ -8,7 +8,7 @@
|
||||
namespace lua::scr_patch
|
||||
{
|
||||
scr_patch::scr_patch(const std::string& script_name, const std::string& patch_name, const std::string& pattern, const int offset, sol::table patch_, sol::this_state state) :
|
||||
m_script_name(script_name),
|
||||
m_script(rage::joaat(script_name)),
|
||||
m_patch_name(patch_name),
|
||||
m_pattern(pattern),
|
||||
m_offset(offset),
|
||||
@ -16,10 +16,9 @@ namespace lua::scr_patch
|
||||
m_enable(true)
|
||||
{
|
||||
auto patch = convert_sequence<uint8_t>(m_patch);
|
||||
auto script = rage::joaat(m_script_name);
|
||||
|
||||
big::g_script_patcher_service->add_patch({script, m_patch_name, ::memory::pattern(m_pattern), m_offset, patch, &m_enable});
|
||||
if (auto program = big::gta_util::find_script_program(script))
|
||||
big::g_script_patcher_service->add_patch({m_script, m_patch_name, ::memory::pattern(m_pattern), m_offset, patch, &m_enable});
|
||||
if (auto program = big::gta_util::find_script_program(m_script))
|
||||
big::g_script_patcher_service->on_script_load(program);
|
||||
|
||||
big::lua_module* module = sol::state_view(state)["!this"];
|
||||
@ -31,7 +30,7 @@ namespace lua::scr_patch
|
||||
if (!m_enable)
|
||||
{
|
||||
m_enable = true;
|
||||
big::g_script_patcher_service->update();
|
||||
big::g_script_patcher_service->update_all_patches_for_script(m_script);
|
||||
}
|
||||
}
|
||||
|
||||
@ -40,7 +39,7 @@ namespace lua::scr_patch
|
||||
if (m_enable)
|
||||
{
|
||||
m_enable = false;
|
||||
big::g_script_patcher_service->update();
|
||||
big::g_script_patcher_service->update_all_patches_for_script(m_script);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -4,7 +4,7 @@ namespace lua::scr_patch
|
||||
{
|
||||
struct scr_patch
|
||||
{
|
||||
std::string m_script_name;
|
||||
rage::joaat_t m_script;
|
||||
std::string m_patch_name;
|
||||
std::string m_pattern;
|
||||
int m_offset;
|
||||
|
@ -14,7 +14,6 @@ namespace big
|
||||
script_data* get_data_for_script(rage::joaat_t script);
|
||||
bool does_script_have_patches(rage::joaat_t script);
|
||||
void create_data_for_script(rage::scrProgram* program);
|
||||
void update_all_patches_for_script(rage::joaat_t script);
|
||||
|
||||
public:
|
||||
script_patcher_service();
|
||||
@ -23,6 +22,7 @@ namespace big
|
||||
void add_patch(script_patch&& patch);
|
||||
void on_script_load(rage::scrProgram* program);
|
||||
uint8_t** get_script_bytecode(rage::joaat_t script);
|
||||
void update_all_patches_for_script(rage::joaat_t script);
|
||||
void update();
|
||||
};
|
||||
|
||||
|
Reference in New Issue
Block a user