mirror of
https://github.com/Haze1337/Sound-Manager.git
synced 2025-12-06 18:08:34 +00:00
263 lines
6.8 KiB
Plaintext
263 lines
6.8 KiB
Plaintext
"Games"
|
|
{
|
|
"cstrike"
|
|
{
|
|
"Addresses"
|
|
{
|
|
"CSoundscapeSystem"
|
|
{
|
|
"windows"
|
|
{
|
|
"signature" "soundscape_flush"
|
|
"read" "93"
|
|
}
|
|
"windows64"
|
|
{
|
|
"signature" "soundscape_flush"
|
|
"read" "107"
|
|
}
|
|
"linux"
|
|
{
|
|
"signature" "soundscape_flush"
|
|
"read" "129"
|
|
}
|
|
"linux64"
|
|
{
|
|
"signature" "soundscape_flush"
|
|
"read" "144"
|
|
}
|
|
}
|
|
}
|
|
|
|
"Signatures"
|
|
{
|
|
// search for "Error parsing soundscape file %s after %s" to find CSoundscapeSystem::AddSoundscapeFile. Then go to vtable that references it...
|
|
// go up two functions to find CSoundscapeSystem::FrameUpdatePostEntityThink
|
|
// then look around the middle for calls to CEnvSoundscape::UpdateForPlayer
|
|
// You can find stuff like this inside UpdateForPlayer: (which are floats)
|
|
// local_24 = 0x41200000;
|
|
// local_20 = 0x41200000;
|
|
// local_1c = 0x41200000;
|
|
// local_30 = 0xc1200000;
|
|
// local_2c = 0xc1200000;
|
|
// local_28 = 0xc1200000;
|
|
// CHECKED 2025-02-19
|
|
"CEnvSoundscape::UpdateForPlayer"
|
|
{
|
|
"library" "server"
|
|
"windows" "\x55\x8B\xEC\x81\xEC\x80\x00\x00\x00\x56\x8B\xF1\x57\x8B\x7D"
|
|
"windows64" "\x40\x53\x56\x57\x48\x81\xEC\x10\x01\x00\x00"
|
|
"linux" "@_ZN14CEnvSoundscape15UpdateForPlayerER11ss_update_t"
|
|
"linux64" "@_ZN14CEnvSoundscape15UpdateForPlayerER11ss_update_t"
|
|
}
|
|
|
|
// search "CGameServer::BroadcastSound:" to find CGameServer::BroadcastSound and it includes a call to CGameClient::SendSound somewhere near the bottom
|
|
// CHECKED 2025-02-19
|
|
"CGameClient::SendSound"
|
|
{
|
|
"library" "engine"
|
|
"windows" "\x55\x8B\xEC\x81\xEC\xCC\x00\x00\x00\x56\x8B\xF1"
|
|
"windows64" "\x48\x89\x5C\x24\x2A\x48\x89\x74\x24\x2A\x48\x89\x7C\x24\x2A\x4C\x89\x74\x24\x2A\x55\x48\x8D\x6C\x24\x2A\x48\x81\xEC\x30\x01\x00\x00"
|
|
"linux" "@_ZN11CGameClient9SendSoundER11SoundInfo_tb"
|
|
"linux64" "@_ZN11CGameClient9SendSoundER11SoundInfo_tb"
|
|
}
|
|
|
|
// search "cl_soundscape_flush" to find the command handler for "soundscape_flush"
|
|
// CHECKED 2025-02-19
|
|
"soundscape_flush"
|
|
{
|
|
"library" "server"
|
|
"windows" "\x56\xE8\x2A\x2A\x2A\x2A\x8B\xF0\x85\xF6\x74\x2A\x8B\x16\x8B\xCE\x8B\x92\x2A\x2A\x2A\x2A\xFF\xD2\x84\xC0\x75\x2A\x33\xF6"
|
|
"windows64" "\x40\x53\x48\x83\xEC\x20\xE8\x2A\x2A\x2A\x2A\x48\x8B\xD8\x48\x85\xC0\x74\x2A\x48\x8B\x00"
|
|
"linux" "@_ZL16soundscape_flushRK8CCommand"
|
|
"linux64" "@_ZL16soundscape_flushRK8CCommand"
|
|
}
|
|
|
|
// search "Shared activity collision" to find ActivityList_RegisterSharedActivity and the first function called inside is GetStringID
|
|
// CHECKED 2025-02-20
|
|
"CStringRegistry::GetStringID"
|
|
{
|
|
"library" "server"
|
|
"windows" "\x55\x8B\xEC\x83\xEC\x0C\x8B\x45\x2A\x89\x4D\x2A\x53\xBB\xFF\xFF\x00\x00"
|
|
"windows64" "\x48\x89\x5C\x24\x2A\x57\x48\x83\xEC\x30\x4C\x89\x7C\x24"
|
|
"linux" "@_ZN15CStringRegistry11GetStringIDEPKc"
|
|
"linux64" "@_ZN15CStringRegistry11GetStringIDEPKc"
|
|
}
|
|
}
|
|
|
|
"Offsets"
|
|
{
|
|
// search "Replay client not found" to find CReplayServer::StartMaster and then look for the "cl_predict" string setting and grab the GetPlayerSlot offset from the next function call.
|
|
// (windows64 probably means divide it by four 😇)
|
|
// CHECKED 2025-02-19
|
|
"CBaseClient::GetPlayerSlot"
|
|
{
|
|
"windows" "14"
|
|
"windows64" "28"
|
|
"linux" "15"
|
|
"linux64" "24"
|
|
}
|
|
// find in CSoundscapeSystem::GetSoundscapeIndex
|
|
// CHECKED 2025-02-20
|
|
"CSoundscapeSystem::m_soundscapes"
|
|
{
|
|
"windows" "12"
|
|
"windows64" "24"
|
|
"linux" "12"
|
|
"linux64" "24"
|
|
}
|
|
"SoundInfo_t::fVolume"
|
|
{
|
|
"windows" "40"
|
|
"windows64" "44"
|
|
"linux" "40"
|
|
"linux64" "44"
|
|
}
|
|
"SoundInfo_t::bIsAmbient"
|
|
{
|
|
"windows" "85"
|
|
"windows64" "89"
|
|
"linux" "85"
|
|
"linux64" "89"
|
|
}
|
|
"ss_update_t::pCurrentSoundscape"
|
|
{
|
|
"windows" "4"
|
|
"windows64" "8"
|
|
"linux" "4"
|
|
"windows64" "8"
|
|
}
|
|
"CGameClient::thing"
|
|
{
|
|
"windows" "4"
|
|
"windows64" "8"
|
|
"linux" "4"
|
|
"windows64" "8"
|
|
}
|
|
}
|
|
}
|
|
|
|
"csgo"
|
|
{
|
|
"Addresses"
|
|
{
|
|
"CSoundscapeSystem"
|
|
{
|
|
"windows"
|
|
{
|
|
"signature" "soundscape_flush"
|
|
"read" "94"
|
|
}
|
|
"linux"
|
|
{
|
|
"signature" "soundscape_flush"
|
|
"read" "133"
|
|
}
|
|
}
|
|
}
|
|
|
|
"Signatures"
|
|
{
|
|
/*
|
|
Find string: Setting invalid soundscape, %s, as the
|
|
Go to function that uses this string
|
|
Go to the first xref
|
|
*/
|
|
"CEnvSoundscape::UpdateForPlayer"
|
|
{
|
|
"library" "server"
|
|
"windows" "\x55\x8B\xEC\x83\xE4\xF0\x81\xEC\xA8\x00\x00\x00\x56\x8B\xF1\x57\x80\xBE\xDC\x03\x00\x00\x00"
|
|
"linux" "\x55\x89\xE5\x57\x56\x53\x81\xEC\xEC\x00\x00\x00\x8B\x5D\x08\x8B\x7D\x0C"
|
|
}
|
|
|
|
/*
|
|
Find string: reliable%s %s %d/%d/%d/%s\n
|
|
Go to function that uses this string
|
|
*/
|
|
"CGameClient::SendSound"
|
|
{
|
|
"library" "engine"
|
|
"windows" "\x55\x8B\xEC\x51\x56\x8B\xF1\x8B\x46\x04"
|
|
"linux" "\x55\x89\xE5\x57\x56\x53\x83\xEC\x2C\x8B\x5D\x08\x8B\x75\x10\x8B\x03"
|
|
}
|
|
|
|
/*
|
|
Find string: cl_soundscape_flush\n
|
|
Go to function that uses this string
|
|
*/
|
|
"soundscape_flush"
|
|
{
|
|
"library" "server"
|
|
"windows" "\x56\xE8\x2A\x2A\x2A\x2A\x8B\xF0\x85\xF6\x74\x2A\x8B\x16\x8B\xCE\x8B\x92\x58\x01\x00\x00\xFF\xD2\x84\xC0\x75\x2A"
|
|
"linux" "\x55\x89\xE5\x53\x83\xEC\x04\xE8\x2A\x2A\x2A\x2A\x85\xC0\x74\x2A\x89\xC3\x8B\x00\x8B\x80\x5C\x01\x00\x00\x3D\x2A\x2A\x2A\x2A\x75\x2A\xA1\x2A\x2A\x2A\x2A"
|
|
}
|
|
|
|
/*
|
|
Find string: Can't find soundscape: %s\n
|
|
Go to function that uses this string
|
|
|
|
if ( !*(_DWORD *)(a1 + 964) )
|
|
return DevMsg("Found soundscape entity with no soundscape name.\n");
|
|
v1 = sub_821D00(&dword_17B5380); <<< Jump here
|
|
*(_DWORD *)(a1 + 968) = v1;
|
|
result = sub_821D20(&dword_17B5380, v1);
|
|
if ( !(_BYTE)result )
|
|
{
|
|
v3 = *(const char **)(a1 + 964);
|
|
if ( !v3 )
|
|
v3 = &nptr;
|
|
result = DevWarning("Can't find soundscape: %s\n", v3);
|
|
|
|
// ----------------------------------------------------- //
|
|
|
|
int __cdecl sub_821D00(int a1, int a2)
|
|
{
|
|
return sub_8B1670(a1 + 12, a2); << Jump here
|
|
}
|
|
*/
|
|
"CStringRegistry::GetStringID"
|
|
{
|
|
"library" "server"
|
|
"windows" "\x55\x8B\xEC\x8B\x45\x08\x83\xEC\x08\x56\x57\x8B\xF9\x85\xC0"
|
|
"linux" "\x55\x89\xE5\x57\x56\x53\x83\xEC\x2C\x8B\x55\x08\x8B\x45\x0C\x8B\x3A"
|
|
}
|
|
|
|
}
|
|
|
|
"Offsets"
|
|
{
|
|
"CBaseClient::GetPlayerSlot"
|
|
{
|
|
"windows" "16"
|
|
"linux" "17"
|
|
}
|
|
"CSoundscapeSystem::m_soundscapes"
|
|
{
|
|
"windows" "12"
|
|
"linux" "12"
|
|
}
|
|
"SoundInfo_t::fVolume"
|
|
{
|
|
"windows" "40"
|
|
"linux" "40"
|
|
}
|
|
"SoundInfo_t::bIsAmbient"
|
|
{
|
|
"windows" "89"
|
|
"linux" "89"
|
|
}
|
|
"ss_update_t::pCurrentSoundscape"
|
|
{
|
|
"windows" "4"
|
|
"linux" "4"
|
|
}
|
|
"CGameClient::thing"
|
|
{
|
|
"windows" "4"
|
|
"linux" "4"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|