2023-12-29 16:07:00 +00:00
|
|
|
#include "invoker.hpp"
|
|
|
|
#include "crossmap.hpp"
|
|
|
|
#include "pointers.hpp"
|
|
|
|
|
|
|
|
namespace big
|
|
|
|
{
|
|
|
|
void native_invoker::cache_handlers()
|
|
|
|
{
|
|
|
|
if (m_are_handlers_cached)
|
|
|
|
return;
|
|
|
|
|
|
|
|
for (int i = 0; i < g_crossmap.size(); i++)
|
|
|
|
{
|
|
|
|
m_handlers[i] = g_pointers->m_gta.m_get_native_handler(g_pointers->m_gta.m_native_registration_table, g_crossmap[i]);
|
|
|
|
}
|
|
|
|
|
|
|
|
m_are_handlers_cached = true;
|
|
|
|
}
|
|
|
|
|
|
|
|
void native_invoker::fix_vectors()
|
|
|
|
{
|
2024-05-19 16:17:31 +02:00
|
|
|
for (; m_call_context.m_data_count; m_call_context.m_orig[m_call_context.m_data_count][2].Int = m_call_context.m_buffer[m_call_context.m_data_count].z)
|
|
|
|
{
|
|
|
|
--m_call_context.m_data_count;
|
|
|
|
m_call_context.m_orig[m_call_context.m_data_count]->Int = m_call_context.m_buffer[m_call_context.m_data_count].x;
|
|
|
|
m_call_context.m_orig[m_call_context.m_data_count][1].Int = m_call_context.m_buffer[m_call_context.m_data_count].y;
|
|
|
|
}
|
|
|
|
--m_call_context.m_data_count;
|
2023-12-29 16:07:00 +00:00
|
|
|
}
|
|
|
|
}
|