mirror of
https://github.com/Mr-X-GTA/YimMenu.git
synced 2025-06-17 14:57:27 +08:00
49 lines
1.3 KiB
C++
49 lines
1.3 KiB
C++
#include "hooking.hpp"
|
|
#include "gta/net_game_event.hpp"
|
|
#include "util/notify.hpp"
|
|
#include <datanodes/ped/CPedInventoryDataNode.hpp>
|
|
|
|
namespace big
|
|
{
|
|
void hooks::serialize_ped_inventory_data_node(CPedInventoryDataNode* node, rage::CSyncDataBase* data)
|
|
{
|
|
if (data->IsSizeCalculator())
|
|
{
|
|
node->m_num_items = 105;
|
|
node->m_num_ammos = 65;
|
|
}
|
|
|
|
data->SerializeDwordAlt(&node->m_num_items, 7);
|
|
if (node->m_num_items > 105)
|
|
{
|
|
notify::crash_blocked(g->m_syncing_player, "out of bounds inventory item count");
|
|
return;
|
|
}
|
|
|
|
for (uint32_t i = 0; i < node->m_num_items; i++)
|
|
{
|
|
data->SerializeDwordAlt(&node->m_items[i], 9);
|
|
node->unk_1680[i] = 0;
|
|
node->unk_16E9[i] = 0;
|
|
}
|
|
|
|
data->SerializeDwordAlt(&node->m_num_ammos, 7);
|
|
data->SerializeBool(&node->m_ammo_all_infinite);
|
|
if (node->m_num_ammos > 65)
|
|
{
|
|
notify::crash_blocked(g->m_syncing_player, "out of bounds inventory ammo count");
|
|
return;
|
|
}
|
|
|
|
for (uint32_t i = 0; i < node->m_num_ammos; i++)
|
|
{
|
|
data->SerializeDwordAlt(&node->m_ammos[i], 9);
|
|
if (node->m_ammo_all_infinite && !data->IsSizeCalculator())
|
|
continue;
|
|
data->SerializeBool(&node->m_infinite_ammos[i]);
|
|
if (node->m_infinite_ammos[i] && !data->IsSizeCalculator())
|
|
continue;
|
|
data->SerializeDwordAlt(&node->m_ammo_quantities[i], 14);
|
|
}
|
|
}
|
|
} |