2123 Commits

Author SHA1 Message Date
Kawe Mazidjatari
74eb203f2f Client: CPU statistics update logic
Implements the client side CPU statistics logic. An additional check has been added which checks if 'SVC_ServerTick::m_NetTick.m_nCommandTick' equals '-1'. This instructs the client to only update the remote statistics; actual tick members won't get updated as this causes simulation problems.
2023-02-18 00:31:57 +01:00
Kawe Mazidjatari
872e33887a Server: CPU statistics update logic
Implements the server side CPU statistics update logic. In the retail product 'SVC_ServerTick' is only send during 'CClient::ActivatePlayer' and 'CClient::SendServerInfo', which is only called during/after connect, but not during the game. The new implementation sends server CPU statistics to the client every time the CPU usage has changed. This is indicated using the '-1' value in the 'SVC_ServerTick::m_NetTick.m_nCommandTick' member variable.
2023-02-18 00:24:02 +01:00
Kawe Mazidjatari
43dd1ea813 Remove extraneous include 2023-02-18 00:10:01 +01:00
Kawe Mazidjatari
1e8d872908 Add host frametime globals to SDK
Added:
* host_frametime_unbounded
* host_frametime_stddeviation
2023-02-18 00:08:10 +01:00
Kawe Mazidjatari
adb2ed60a4 Add 'sv_stats' cvar to SDK
Server CPU statistics.
2023-02-18 00:06:24 +01:00
Kawe Mazidjatari
367b2cf5bc Renames and new setters for CNetChan
* Renamed hooking class to 'VNetChan'
* Added new setters for setting the remote frame times, and the remote server CPU statistics.
2023-02-18 00:05:55 +01:00
Kawe Mazidjatari
eec9c21648 Implement SVC_ServerTick properly
* Message handler is now part of the CNetMessage base class.
* SVC_ServerTick has been implemented, and is ready for use.
2023-02-18 00:03:30 +01:00
Kawe Mazidjatari
2ed56d7317 More mapped out fields for server and client class 2023-02-17 23:59:37 +01:00
Kawe Mazidjatari
fb00aa5c37 Force 'CMaterialSystem::IsMaterialInternal' no inline
This seems to work a lot better for our crash handler. 'CMaterialSystem::IsMaterialInternal' still needs to be removed entirely in the future!
2023-02-17 23:56:56 +01:00
Kawe Mazidjatari
1e0248a442 Fix command quota warning message
Fix command not getting logged properly when user exceeds quota.
2023-02-17 23:55:27 +01:00
Kawe Mazidjatari
bee83bc9ac Fixup SVC classes
The message handler is a field in the structure, it might belong to CNetMessage.
2023-02-15 21:44:09 +01:00
Kawe Mazidjatari
7f127ddcbe Rename 'nettick_s' members 2023-02-15 21:43:15 +01:00
Kawe Mazidjatari
a0cc101b29 Rebuild 'Host_Status_PrintClient'
This function has been rebuild by popular demand. Its the exact same as the one found within the executable but it logs the client's nucleus id as well, which is useful for identifying a cheater and taking necessary actions.
2023-02-15 20:54:09 +01:00
Kawe Mazidjatari
eaf1e3632e Implement 'COM_FormatSeconds' 2023-02-15 20:50:12 +01:00
Kawe Mazidjatari
06698bea33 Implement 'CNetChan::GetTimeConnected'
'CNetChan::GetConnectTime' has been removed in favor of 'CNetChan::GetTimeConnected'.
2023-02-15 20:49:14 +01:00
Kawe Mazidjatari
fc1a773836 Add 'g_NetTime' to SDK
Official name = 'net_time'.
2023-02-15 20:47:58 +01:00
Kawe Mazidjatari
559f15a459 Fix compile errors
This belongs to commit 8550d7a8.
2023-02-15 20:46:37 +01:00
Kawe Mazidjatari
1d82fd4903 Add 'FORCENOINLINE' macro 2023-02-15 17:53:15 +01:00
Kawe Mazidjatari
074ec37756 Add SVC_ServerTick
Class fully mapped out.
2023-02-15 17:52:49 +01:00
Kawe Mazidjatari
8550d7a865 Rename 'TickUpdate' to 'nettick_t' and move to public
Renamed, and moved to public. also added additional static assertions to avoid alignment mistakes in the future.
2023-02-15 17:52:25 +01:00
Kawe Mazidjatari
ccf221fd6e CNetChan fixup
* Renamed member variable; m_bUnkTickBool is m_nServerCPU.
* Removed member variable 'm_bRetrySendLong'; does not exist in s3.
2023-02-15 17:35:47 +01:00
Kawe Mazidjatari
3d5ad71f25 Force full rebuild of SMap
Force rebuild due to invalid RVA in shipped cache map.
2023-02-13 23:53:53 +01:00
Kawe Mazidjatari
a20b66e93c CMDLCache error handling code improvements
* Use unordered_set for mdl handles, and use insertion logic in 'CMDLCache::IsKnownBadModel' to determine if it already exists or not.
* Only set 'old_gather_props' to true if its false instead of forcing it every time 'mdl/error.rmdl' is obtained (this has to be properly fixed still in the future!).
2023-02-13 23:50:37 +01:00
Kawe Mazidjatari
0b85476011 Belongs to the previous commit 2023-02-13 23:47:12 +01:00
Kawe Mazidjatari
9a8db42575 Improve and fix 'CStudioHdr'
* Fixed crash that occurred due to misaligned member 'm_pMdlCacheVTable' which has been retyped to 'CMDLCache*' and renamed to 'm_pMDLCache' (actual object).
* Added mapped out member 'm_pModelName'.
2023-02-13 23:46:37 +01:00
Kawe Mazidjatari
5806f719c6 Should be u8string v2.2_rc3 2023-02-12 23:32:58 +01:00
Kawe Mazidjatari
4d68a2edbe Fix deadlock when file entry is truncated
* Fixed endless loop when condition is hit.
* Fixed file name not being formatted correctly.
2023-02-12 23:28:24 +01:00
Kawe Mazidjatari
e738ed9cc5 Update playlists file
Disable circle spawn by default in dev_default.
2023-02-12 23:11:41 +01:00
Kawe Mazidjatari
46ddaf9b01 Add ability to deselect a map in the SDK launcher 2023-02-12 20:30:35 +01:00
Kawe Mazidjatari
246312840b Force full rebuild of SMap
Force full rebuild due to changed/added/removed signatures.
2023-02-12 20:07:27 +01:00
Kawe Mazidjatari
ae8a6222fe Update license file
Add curl license in place of 'yhirose HTTP library', which has been replaced with curl.
2023-02-12 20:05:59 +01:00
Kawe Mazidjatari
89978d795e Add missing include guards
Last few files which do not have include guards.
2023-02-12 19:50:45 +01:00
Kawe Mazidjatari
33b8fcd825 Fix compiler output paths
Some output paths were wrong.
2023-02-12 19:35:10 +01:00
Kawe Mazidjatari
cbed704bab Performance improvements for str tools
Improve performance for 'StringToMaskedBytes' and 'PatternToMaskedBytes' by appending characters as immediate (char) values instead of pointers.
2023-02-12 19:05:34 +01:00
Kawe Mazidjatari
a97915ed64 Fix many compiler warnings
Verbose warnings about implicit conversions from double to float.
2023-02-12 18:17:19 +01:00
Kawe Mazidjatari
7f16717d5d Suppress last compiler warnings in sha1.cpp
* Immediate '0x80' is unsigned.
* Assign only the first 32bits to int block.
2023-02-12 18:14:03 +01:00
Kawe Mazidjatari
f21202611c Use sizetypes in Sha1 code
Must use size types instead of unsigned integers to prevent arithmetic overflow on larger (>4gb) buffers. This also suppresses the compiler warnings generated from this particular file.
2023-02-12 18:11:41 +01:00
Kawe Mazidjatari
d52bbfec08 Fix invalid alignment for 'MatchMetrics' 2023-02-12 18:03:12 +01:00
Kawe Mazidjatari
ea4190e534 Slightly more mapped out CUtlBuffer
These are set and used in 'PersistenceParseDefSourceMsg' and 'CAI_NetworkManager::InitializeAINetworks'. Still unknown what they exactly do.
2023-02-12 18:02:37 +01:00
Kawe Mazidjatari
837f53ccb7 Promote CUtlBuffer size types to 64bits
In the engine, all these seem to be 64bits as well as the members are 64bits.
2023-02-12 17:54:15 +01:00
Kawe Mazidjatari
310e4b4af3 Make help text bit more clear 2023-02-12 16:27:17 +01:00
Kawe Mazidjatari
c1107fb4ed Fix spelling 2023-02-12 16:27:09 +01:00
Kawe Mazidjatari
15e9259b77 Use server current time for reload logic
Use server's current time for reload logic instead of a dedicated fast timer.
2023-02-12 15:32:34 +01:00
Kawe Mazidjatari
612ab83b20 Use 'GetNumClients' for hosting and status bar
Use 'GetNumClients' instead of iterating over the client array twice. Also fixed a bug causing the status bar only to display real clients, buts were never counted.
2023-02-12 15:21:33 +01:00
Kawe Mazidjatari
decf3552ea Add 'GetNumClients'
Gets the total amount of clients on the server (both fake and real clients).
2023-02-12 15:20:11 +01:00
Kawe Mazidjatari
b1f2f47058 Update names across codebase 2023-02-12 15:06:08 +01:00
Kawe Mazidjatari
c888422d51 Remove unnecessary padding and add static assert 2023-02-12 14:57:39 +01:00
Kawe Mazidjatari
d2c8f7becc Update 'CGlobalVarsBase'
Mapped it out a little bit better.
2023-02-12 14:54:04 +01:00
Kawe Mazidjatari
1db53a135f Fix dedicated.dll compile error
'g_svNetKey' no longer exists.
2023-02-12 11:49:39 +01:00
Kawe Mazidjatari
236eb861d5 Add global netadr to SDK
Global from engine used in the 'status' command etc..
2023-02-12 11:32:05 +01:00