// client.dll 48 8B C4 4C 89 40 18 48 89 48 08 55 53 57
class origin_wrapper
{
public:
Vector origin; //0x0000
};
class sound_data
{
public:
char pad_0000[8]; //0x0000
char *sound_name; //0x0008
char pad_0010[16]; //0x0010
class origin_wrapper *get_origin; //0x0020
};
using sound_t = DWORD * (__fastcall*)(void *, DWORD *, int, int, sound_data*);
DWORD *__fastcall hooked_sound(void *sound_patch, DWORD *a2, int a3, int a4, sound_data *data)
{
auto ret = ((sound_t)hooks[hook::sound].m_orig)(sound_patch, a2, a3, entity_index, data);
if (data)
{
auto get_origin = data->get_origin;
if (get_origin)
{
my_sound_t sound;
sound.origin = get_origin->origin;
sound.timestamp = g_game->m_globalvars->m_curtime;
g_game->m_my_sound.push_back(sound);
}
}
return ret;
}