sm-ext-sourcetvmanager/sourcetvmanager.games.txt
Peace-Maker 9ae2431375 Fix printing to demo console on CS:S linux
This is getting rediculous.
Our own native calls IClient::ClientPrintf to print stuff to the demo
console.
The engine's Host_Client_Printf uses the CGameClient vtable's
ClientPrintf. To catch the output of the "status" command, we have to
hook both vtables on linux...
Windows casts to IClient in Host_Client_Printf, so no need to do that
there.
2016-03-14 18:47:20 +01:00

280 lines
4.8 KiB
Plaintext

"Games"
{
"csgo"
{
"Addresses"
{
"host_client"
{
"windows"
{
"signature" "host_client"
"read" "58"
}
"linux"
{
"signature" "host_client"
}
}
"CHLTVServer::m_DemoRecorder"
{
"windows"
{
"signature" "CHLTVServer::GetRecordingDemoFilename"
"read" "2"
}
"linux"
{
"signature" "CHLTVServer::GetRecordingDemoFilename"
"read" "10"
}
}
}
"Offsets"
{
"CBaseServer::BroadcastPrintf"
{
"windows" "39"
"linux" "40"
}
"CHLTVServer::ConnectClient"
{
"windows" "54"
"linux" "55"
}
"CHLTVServer::RejectConnection"
{
"windows" "52"
"linux" "53"
}
"CHLTVServer::GetChallengeType"
{
"windows" "59"
"linux" "60"
}
"CBaseClient::ActivatePlayer"
{
"windows" "27"
"linux" "65"
}
"CHLTVServer::Shutdown"
{
"windows" "45"
"linux" "46"
}
"CHLTVDirector::m_iPVSEntity"
{
"windows" "32"
"linux" "32"
}
"CHLTVDirector::m_vPVSOrigin"
{
"windows" "36"
"linux" "36"
}
"CHLTVDirector::m_nNextShotTick"
{
"windows" "52"
"linux" "52"
}
}
"Signatures"
{
"host_client"
{
"library" "engine"
"linux" "@host_client"
// ping(CCommand const&) "Client ping times:\n"
"windows" "\x55\x8B\xEC\x83\xE4\xC0\x83\xEC\x34\x83\x3D\x2A\x2A\x2A\x2A\x01\x53\x56\x57\x75\x2A"
}
"CHLTVServer::BroadcastEventLocal"
{
"library" "engine"
"linux" "@_ZN11CHLTVServer19BroadcastEventLocalEP10IGameEventb"
// "SourceTV broadcast local event: %s\n"
"windows" "\x55\x8B\xEC\x83\xEC\x4C\x53\x8B\xD9\xC7\x45\xB4\x2A\x2A\x2A\x2A\x56\x8D"
}
"CHLTVServer::GetRecordingDemoFilename"
{
"library" "engine"
"linux" "@_ZN11CHLTVServer24GetRecordingDemoFilenameEv"
"windows" "\x81\xC1\x2A\x2A\x2A\x2A\x8B\x01\xFF\x20"
}
// StartRecording and StopRecording are virtual, but get called directly in the linux binary..
// Need to add a detour.
"CHLTVDemoRecorder::StartRecording"
{
"library" "engine"
"linux" "@_ZN17CHLTVDemoRecorder14StartRecordingEPKcb"
}
"CHLTVDemoRecorder::StopRecording"
{
"library" "engine"
"linux" "@_ZN17CHLTVDemoRecorder13StopRecordingEPK9CGameInfo"
}
}
}
"#default"
{
"#supported"
{
"engine" "orangebox_valve"
}
"Addresses"
{
"host_client"
{
"windows"
{
"signature" "host_client"
"read" "92"
}
"linux"
{
"signature" "host_client"
}
}
"CHLTVServer::m_DemoRecorder"
{
"windows"
{
"signature" "CHLTVServer::Shutdown"
"read" "5"
}
"linux"
{
"signature" "CHLTVServer::Shutdown"
"read" "12"
}
}
}
"Offsets"
{
"CNetChan::SendNetMsg"
{
"windows" "40"
"linux" "41"
}
"CBaseClient::m_NetChannel"
{
"windows" "192"
"linux" "196"
}
"CGameClient::ClientPrintf"
{
"linux" "24"
}
"CBaseServer::BroadcastPrintf"
{
"windows" "35"
"linux" "36"
}
"CHLTVServer::ConnectClient"
{
"windows" "49"
"linux" "50"
}
"CHLTVServer::RejectConnection"
{
"windows" "47"
"linux" "48"
}
"CHLTVServer::GetChallengeType"
{
"windows" "54"
"linux" "55"
}
"CBaseClient::ActivatePlayer"
{
"windows" "16"
"linux" "56"
}
"CHLTVServer::Shutdown"
{
"windows" "41"
"linux" "42"
}
"CHLTVDirector::m_iPVSEntity"
{
"windows" "16"
"linux" "16"
}
"CHLTVDirector::m_vPVSOrigin"
{
"windows" "20"
"linux" "20"
}
"CHLTVDirector::m_nNextShotTick"
{
"windows" "40"
"linux" "40"
}
}
"Signatures"
{
"host_client"
{
"library" "engine"
"linux" "@host_client"
// ping(CCommand const&) "Client ping times:\n"
"windows" "\x55\x8B\xEC\x51\x83\x3D\x2A\x2A\x2A\x2A\x01\x75\x2A"
}
"CHLTVServer::BroadcastEventLocal"
{
"library" "engine"
"linux" "@_ZN11CHLTVServer19BroadcastEventLocalEP10IGameEventb"
// "SourceTV broadcast local event: %s\n"
"windows" "\x55\x8B\xEC\x81\xEC\x44\x04\x00\x00\x53"
}
"CHLTVServer::Shutdown"
{
"library" "engine"
"linux" "@_ZN11CHLTVServer8ShutdownEv"
// "HLTV server shutting down"
"windows" "\x56\x8B\xF1\x8B\x86\x2A\x2A\x2A\x2A\x8D\x8E\x2A\x2A\x2A\x2A\xFF\x50\x2A\x8B\x86\x2A\x2A\x2A\x2A\x8D\x8E"
}
// StartRecording and StopRecording are virtual, but get called directly in the linux binary..
// Need to add a detour.
"CHLTVDemoRecorder::StartRecording"
{
"library" "engine"
"linux" "@_ZN17CHLTVDemoRecorder14StartRecordingEPKcb"
}
"CHLTVDemoRecorder::StopRecording"
{
"library" "engine"
"linux" "@_ZN17CHLTVDemoRecorder13StopRecordingEv"
}
}
}
}