235 Commits

Author SHA1 Message Date
Kawe Mazidjatari
179bd31ee6 Initial large refactor of the RCON implementation
* Decoding and encoding is done into a single buffer, from raw buffers to avoid extraneous copies.
* Added base class holding all core logic for encoding, decoding, receiving and processing of the RCON protocol. This code was initially identical between all implementations of RCON, deduplicating this avoids bugs.
* Added more sophisticated error handling, stop right away when decoding for example fails.
* Added ability to have more than one active authenticated net console on the server. Controlled by cvar 'sv_rcon_maxconnections' (default 1).
* Max packet size for accepted, but not authenticated sockets is now controled by cvar 'sv_rcon_maxpacketsize' (default 1024).
2023-04-19 01:35:31 +02:00
rexx
f520cab44b fix static prop exceptions
This fixes the exceptions that were caused by loading ported bsps with replaced models
CStaticProp::Init was using static prop lump data to request non-existent skins due to the replaced models, causing invalid material pointers to be fetched.
When encountered, these skins will be forced to 0 and an error will be printed.
Ideally these issues are fixed from within the bsp file before they are shipped.
2023-04-18 16:56:35 +01:00
Kawe Mazidjatari
75b9c71fd7 Enable compiler warning level 4 for executable projects 2023-04-16 01:18:12 +02:00
Kawe Mazidjatari
4ecf58f61c Add additional bit utilities from SourceSDK 2023-04-10 14:59:36 +02:00
Kawe Mazidjatari
294ac7d02e Enable COMDAT folding and reference linker optimizations for netconsole project 2023-04-10 00:11:29 +02:00
Kawe Mazidjatari
d49f252f4d Write minidump and slight code improvements
* Write minidumps to disk when the game crashes.
* Initialize global process timestamp as early as possible and separate from log dir.
2023-04-08 16:09:23 +02:00
Kawe Mazidjatari
9f428f1567 Move tier0 lib headers to public
This commit does not change any logic or behavior of the code.
2023-04-06 23:50:48 +02:00
Kawe Mazidjatari
dbe1850ec1 Add LZSS implementation to SDK 2023-04-05 21:38:28 +02:00
Kawe Mazidjatari
5056d8f040 Move interface types to public header 2023-04-01 01:05:43 +02:00
Kawe Mazidjatari
aa42126154 Re-enable COMDAT folding and references linker optimization flags
Re-enabled to significantly reduce binary size without affecting code generation results.
2023-03-31 20:05:10 +02:00
Kawe Mazidjatari
1a361d9961 Remove /TSAWARE compiler flag from DLL projects 2023-03-31 00:19:23 +02:00
Kawe Mazidjatari
731bdbb010 Remove explicit COMDAT/References linker optimization flags 2023-03-30 23:03:48 +02:00
Kawe Mazidjatari
6b6ead34a4 Enable TERMINAL_SERVER_AWARE PE header flag
Enabled to enforce maximum compatibility with game executable, which has this enabled as well.
2023-03-30 22:57:19 +02:00
Kawe Mazidjatari
9a8b39d71d Additional compiler option changes
Force consistency between all libraries
2023-03-30 22:47:17 +02:00
Kawe Mazidjatari
c9f51a5dab Change project compiler options
Changed to match the assembly of the game as much as possible. Will be finished when port to CMake is completed.
2023-03-30 22:21:18 +02:00
Kawe Mazidjatari
f9c5986245 Upgrade Dear ImGui to 1.89.4
Upgrade and light restructure of ImGui directory.
2023-03-29 00:19:19 +02:00
Kawe Mazidjatari
387b24875b Downgrade 'libcurl' to 7.54.0
The game uses 7.54.0, downgraded to maintain compatibility if we ever hook curl functions.
2023-03-28 23:14:26 +02:00
Kawe Mazidjatari
47aabf244b Remove redundant tier1 files
These files are no longer necessary.
2023-03-28 01:30:09 +02:00
Kawe Mazidjatari
5aea2f4261 RCON system upgrade
RCON upgrade with additional logging system improvements:
* Netconsole's can now log received messages in color, even when the RCON server has ANSI colors disabled; logs are fully composed locally.
* RCON server now also sends the log type over the wire, along with the (already existing) context.
* SDK logging code is now shared with the standalone netconsole application.
* Improved logging readability for the standalone netconsole application.
2023-03-27 02:01:48 +02:00
Kawe Mazidjatari
59e084eafa Add ImGui include directory to project directories 2023-03-25 12:09:06 +01:00
Kawe Mazidjatari
f66019fbf8 Prune unused features in 'libcppkore' 2023-03-21 00:16:03 +01:00
Kawe Mazidjatari
3da7f10430 Link SpdLog as static lib to netconsole
As static lib in all configurations, no exceptions in Release.
2023-03-20 13:45:06 +01:00
Kawe Mazidjatari
229361315d Cleanup compiler commands in all projects
Mostly reordered.
2023-03-20 13:12:07 +01:00
Kawe Mazidjatari
0eb945f402 Link 'libspdlog' to 'netconsole' and 'pluginsdk' project
No longer gets compiled in PCH; link as static lib.
2023-03-20 13:10:27 +01:00
Kawe Mazidjatari
990745e4f3 Remove extraneous compiler command from 'libcppcore'
Removed '/std:c++17'.
2023-03-20 13:09:32 +01:00
Kawe Mazidjatari
511eb74200 Remove extraneous compiler command from 'libsdl'
Removed '/arch:AVX2'.
2023-03-20 13:08:14 +01:00
Kawe Mazidjatari
362b0dbbd5 Compile SpdLog with no exceptions in release 2023-03-20 13:04:05 +01:00
Kawe Mazidjatari
ab106a452c Disable SpdLog exceptions in release builds 2023-03-20 12:23:43 +01:00
Kawe Mazidjatari
7b2a5d5d12 Initial major launcher code refactor
* Removed most boilerplate/duplicate code from launcher API.
* Make launcher API more friendly for external usage.
2023-03-20 10:26:43 +01:00
Kawe Mazidjatari
1f1f5f5ae8 Prune 'libcppkore'
Only compile necessary files for the SDK launcher.
2023-03-19 17:55:37 +01:00
Kawe Mazidjatari
8e518ad2c6 Set C language standard to 'Default' 2023-03-19 11:57:07 +01:00
Kawe Mazidjatari
a0fe2a0b1a More dynamic project include paths
Lookup directly from project directory instead of solution directory.
2023-03-18 14:28:25 +01:00
Kawe Mazidjatari
fd7e981e8c Upgrade SpdLog library to 1.11.0
* Upgrade SpdLog library to 1.11.0.
* Compile SpdLog as static library.
2023-03-18 13:34:43 +01:00
Kawe Mazidjatari
9dfb79ff4a Set floating point model to 'Fast' 2023-03-18 10:01:14 +01:00
Kawe Mazidjatari
da0153a3bd Fix incremental linking for Profile builds
Much faster compile times.
2023-03-18 02:37:55 +01:00
Kawe Mazidjatari
bbaa35cbaf Add 'Profile' build configuration
Add 'Profile' build configuration (similar configuration to many game engines).
This should be the main configuration for development. In the future, this will include incremental linking and asserts.
2023-03-18 02:04:18 +01:00
Kawe Mazidjatari
3db039b7d3 Compile utlstring 2023-03-17 00:14:28 +01:00
Kawe Mazidjatari
33b8fcd825 Fix compiler output paths
Some output paths were wrong.
2023-02-12 19:35:10 +01:00
Kawe Mazidjatari
0734d56fe2 Add reversed 'CNetKey' class
Confirmed size, mostly unknown still. But some of this seems to be data related to OpenSSL.
2023-02-12 02:15:58 +01:00
Amos
a445e0fc9b Fix compile error for sdklauncher and netconsole
Thirdparty directory has to be set as include directory as well.
2023-02-11 17:44:56 +01:00
Kawe Mazidjatari
ff597ae6ad Add thirdparty folder to project includes 2023-02-07 00:10:48 +01:00
Kawe Mazidjatari
45ae9add6c Add missing includes to project filters 2023-02-06 23:58:42 +01:00
Kawe Mazidjatari
a67967134d Split x64 and x86 binaries
Don't overwrite each other.
2023-02-06 23:52:09 +01:00
Kawe Mazidjatari
feb1c7712f Remove 32bit project configuration for cppkore
CppKore doesn't support 32bit entirely.
2023-02-06 23:14:07 +01:00
Kawe Mazidjatari
b61870421f Remove 32bit project configuration for pluginsdk
Plugin cannot be 32bit as the game and SDK is 64bit.
2023-02-06 23:11:11 +01:00
Kawe Mazidjatari
f2fd9102d0 Properly configure project includes
Moved project includes from VC/System includes to project includes. This fixes the problem where the autocomplete feature doesn't work in Visual Studio when trying to include headers from the project itself.
2023-02-06 23:01:18 +01:00
Kawe Mazidjatari
836839e6a5 Add completion logic for 'give' command
* Implemented class 'CAutoCompleteFileList' (features engine's implementation for 'AutoCompletionFunc').
* Added completion callback for 'give' command.
2023-02-05 23:01:01 +01:00
Kawe Mazidjatari
dc10b2305a Remove 'cdll_engine_int' from dedicated
No longer required.
2023-02-05 19:19:03 +01:00
Kawe Mazidjatari
34f69a5b1e Move crashhandler implementation to tier0 2023-01-31 22:13:40 +01:00
Kawe Mazidjatari
b33c8794a0 Reorder registration order
Slight reorder, removed 'VStudioRenderContext' from dedicated.
2023-01-31 17:21:16 +01:00