Ghetto way for windows:
I'm not 100% sure if gamedata is still up2date..
PHP Code:
// sigscan references to a func that returns the SoundEnvelopeController
static CSoundEnvelopeController *GetSoundController()
{
// "Invalid starting duration value in env" bellow 2, first function
META_CONPRINTF("[%s] Getting Soundcontroller - ", g_Monster.GetLogTag());
DWORD pGetSoundCtrl_Call;
if(!g_pGameConf->GetMemSig("g_SoundController", (void**)&pGetSoundCtrl_Call))
{
META_CONPRINT("Failed\n");
META_CONPRINTF("[%s] Couldn't find sig: g_SoundController", g_Monster.GetLogTag());
return NULL;
}
int pGetSoundCtrl_Offs;
if(!g_pGameConf->GetOffset("g_SoundController", &pGetSoundCtrl_Offs))
{
META_CONPRINT("Failed\n");
META_CONPRINTF("[%s] Couldn't find offs: g_SoundController", g_Monster.GetLogTag());
return NULL;
}
META_CONPRINTF("Success\n");
typedef CSoundEnvelopeController* (*GetSoundCtrler_t)();
pGetSoundCtrl_Call += pGetSoundCtrl_Offs; // point to call offset E8 >?? ?? ?? ??<
DWORD dwJmpOffs = *(DWORD*)pGetSoundCtrl_Call;
GetSoundCtrler_t getSoundController = (GetSoundCtrler_t)(pGetSoundCtrl_Call + 4 + dwJmpOffs);
return getSoundController();
}
/////// GAMEDATAA
// sigs
"g_SoundController" // "Invalid starting duration value in enve" the down 2 func , first 8B
{
"library" "server"
"windows" "\x76\x1B\xE8\x2A\x2A\x2A\x2A\xFF\x36\x8B\xC8\x8B\x10\xFF\x52\x28"
"linux" "@_ZL12g_Controller"
}
// offsets
"g_SoundController"
{
"windows" "3"
}
@Powerlord: it's actually a interface
soundenvelope.h