Commit Graph

83 Commits

Author SHA1 Message Date
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
Peace-Maker
7b8f2a73f8 Update .gitignore for SM specifics 2016-03-14 14:54:23 +01:00
Peace-Maker
6e1544addf Build for TF2, DOD:S and HL2:DM as well
Gamedata looks the same as CS:S at least in TF2, so just give it a
whirl!
2016-03-12 17:23:13 +01:00
Peace-Maker
7c0a5b501d Fix typo inverting bLocalOnly parameter in natives
BroadcastScreenMessage and BroadcastChatMessage sent to local clients
only while the parameter told them not to.
2016-03-12 16:51:38 +01:00
Peace-Maker
5b69a6f039 Fix linux build 2016-03-10 15:23:07 +01:00
Peace-Maker
db1d080b4a Fix OnStopRecording forward not firing
We check if the demorecorder IsRecording a demo before calling the
forward to prevent it from being called while the sourcetv server
doesn't record. Need to pre hook StopRecording instead of post, to still
be able to check that.
2016-03-10 15:20:33 +01:00
Peace-Maker
bbf7818776 Don't force steam authentication by default
This prevents relay proxies from connecting currently..
2016-03-10 15:17:42 +01:00
Peace-Maker
7c4048690b Fix OnStartRecording and OnStopRecording forwards on linux
CHLTVServer::StartRecording is called directly in tv_record on linux,
ignoring the vtable.
Add a detour on linux for these two functions, so we always notice when
recording starts.
Windows actually always uses the vtable to get the function address, so
we don't need to detour anything on windows.
2016-03-09 23:04:28 +01:00
Peace-Maker
22c3803718 Fix linux build again 2016-03-08 16:57:07 +01:00
Peace-Maker
b8c666cac0 Unify spectator client accessing native names
Just call them "client" instead of "spectator"
2016-03-06 14:11:33 +01:00
Peace-Maker
00c6f56c69 Add SourceTV_IsClientProxy native
See if a spectator is a SourceTV relay client.
2016-03-06 14:09:10 +01:00
Peace-Maker
61f59c5b9b Track spectators for each SourceTV instance seperately 2016-03-06 12:50:07 +01:00
Peace-Maker
10910e8b8e Pass the right SourceTV instance index in forwards 2016-03-06 12:26:45 +01:00
Peace-Maker
fabdbe7d12 Refactor SourceTV instance hooking
Keep the instances in seperate wrappers to clear up the hooks. This
allows for some OnServerStart and OnServerShutdown forwards.

To prepare support for relay servers, CHLTVServer::Shutdown is hooked to
detect shutdown instead of relying on the director unregistering the
instance.
2016-03-06 12:16:38 +01:00
Peace-Maker
fb03d5f2d5 Add natives to get SourceTV ip and port 2016-03-03 12:28:49 +01:00
Peace-Maker
5399c79d97 Dynamically get CHLTVServer::m_DemoRecorder offset
Instead of hardcoding a hugh member variable offset, get it dynamically
from functions using the variable.
2016-03-03 11:49:14 +01:00
Peace-Maker
4d62d77e55 Clean up some SDK calls to use SourceHook directly
Don't use IBinTools to call virtual functions. We're in C++! Use
SourceHook right away. This reduces in less and readable code.
2016-03-03 09:13:59 +01:00
Peace-Maker
7dd6897067 Fix CSS build 2016-03-03 08:29:36 +01:00
Peace-Maker
55ef2a1eeb Add SourceTV_OnSpectatorPutInServer forward 2016-03-03 07:23:49 +01:00
Peace-Maker
b6dee3a3a8 Add tv_force_steamauth convar
Enable Steam authentication for SourceTV clients. Thanks to @GoD-Tony
for his snippet!
2016-03-03 07:17:40 +01:00
Peace-Maker
1f45a6bd4f Always add a new line after a console message 2016-03-03 04:13:56 +01:00
Peace-Maker
d03b22abf6 Add SourceTV_BroadcastChatMessage native
Add option to send messages to locally connected spectators only or to
replay proxies as well.
2016-03-03 04:13:21 +01:00
Peace-Maker
c0eb6eb75f Add natives to get client ip and connect password
The hltv server doesn't provide a nice IPlayerInfo interface to get
stuff. Have to grab it and hold on to it while we can!
2016-03-03 02:47:06 +01:00
Peace-Maker
10f7fa56a1 Extract player name in ConnectClient hook in CS:GO
CS:GO doesn't send the client name in plain text, but wraps it in some
protobuf construct.
Parse that list of client convars for the player name and use it in the
SourceTV_OnSpectatorPreConnect forward
2016-03-03 01:12:16 +01:00
Peace-Maker
4bb751afaf Add ClientConnect and Disconnect forwards
Let plugins know when new spectators join or leave the SourceTV server.
2016-03-02 23:23:53 +01:00
Peace-Maker
357e1bc4c9 Allow printing to bot/demo console in CSS
CSS' CBaseClient::ClientPrintf tries to use the net channel directly
instead of going through the saner route using GameClient::SendNetMsg.

This introduces a stupid hack to work around the bots lack of a net
channel, so ClientPrintf's SVC_Print messages get included in the demo.
2016-03-02 05:40:20 +01:00
Peace-Maker
7e9a8d6aec Fix linux build 2016-03-01 16:32:13 +01:00
Peace-Maker
d5424cefdf Add native and forward documentation to include file
Rename some natives for better self explanatory.
2016-03-01 15:00:27 +01:00
Peace-Maker
28d76b41e5 Add natives to force a camera shot
Override the autodirector and tell him what to show. Fixpoint camera or
chasing a player for now.
2016-03-01 02:19:19 +01:00
Peace-Maker
6e0ec48a2a Hook / Unhook consistently
Add our hooks when a SourceTV bot is added as well as on late loading
the extension.
Make sure to remove all our hooks on unload.
2016-02-29 17:44:27 +01:00
Peace-Maker
3210a8d249 Add CSS support 2016-02-29 14:55:23 +01:00
Peace-Maker
e51143d05a Initial commit of project files
CSGO only yet
2016-02-29 09:59:09 +01:00
peace-maker
e6afc1ec63 Initial commit 2016-02-29 09:52:26 +01:00