478 Commits

Author SHA1 Message Date
Amos
0634261c18 Move global language constants to single file
Deduplicate.
2023-09-15 18:25:31 +02:00
Kawe Mazidjatari
a639a4befd Add 'CMaterialDeviceMgr' singleton to SDK
Manager class for display adapters.
2023-09-13 22:22:25 +02:00
Kawe Mazidjatari
4927654da0 Bugfix: only run NVIDIA Reflex if we ran an actual engine frame
CEngine::Frame() tends to return out early if we are ahead of frame time, and therefore need to sleep. In this particular engine, CEngine::Frame() returns true if it had actually executed an engine frame, else it returns false.

Therefore, we end up calling 'NvAPI_D3D_Sleep()' multiple times a frame, and thus causing a major loss in performance. Now we check if we have actually ran a frame (incrementing reflex frame if so). If the frame was not incremented, but 'GFX_RunLowLatencyFrame()' was called, it will not call 'NvAPI_D3D_Sleep()'.

Code has been tested and appears to work on my system (never called twice or more per frame). Needs more testing on other systems to make sure its good.
2023-09-12 20:50:38 +02:00
Kawe Mazidjatari
c8dea8927c Force rebuild of sigcache
Signatures changed and need to be force rebuild.
2023-09-12 17:45:17 +02:00
Kawe Mazidjatari
fdb4a4d429 Reverse CGame class
Class structure reversed.
2023-09-11 20:38:18 +02:00
Kawe Mazidjatari
0306d7788b More reversed TEB64 structure 2023-09-11 01:32:11 +02:00
Kawe Mazidjatari
ee1a2c5207 Add time globals 2023-09-10 11:41:50 +02:00
Kawe Mazidjatari
21093ca1a1 Implement NVIDIA Reflex Low Latency technology 2023-09-09 15:12:58 +02:00
Kawe Mazidjatari
00aee57e7c Add NVIDIA SDK 2023-09-09 14:50:11 +02:00
Kawe Mazidjatari
b85003a9ac Replace JSON library with RapidJSON
Less copies and overall CPU time parsing/constructing JSON's as we are mostly still using string pointers rather than STL string container.
2023-09-07 11:17:05 +02:00
Kawe Mazidjatari
45bbf1f14b Remove extraneous getter
Not used.
2023-08-31 00:19:11 +02:00
Kawe Mazidjatari
cb1a69e82a Ban system refactor
Use CUtlVector, and remove every copy caused by passing vectors by value. CUtlVector does not support copying. Also removed all extraneous std::string copies caused by calling itoa instead of std::to_string, or std::stoll, etc. All features have been tested and work as designed.
2023-08-31 00:16:25 +02:00
Kawe Mazidjatari
4b7ca6b439 Use size types
Make code more portable and modern.
2023-08-29 22:05:20 +02:00
Kawe Mazidjatari
8b45e1a4e5 Also throw asserts 2023-08-26 01:28:30 +02:00
Kawe Mazidjatari
befd38bf51 Interface factory system rewrite
Removed all extraneous copies by adding the class 'InterfaceReg' which will construct a new interface, and link it to the engine's static register. The Source Engine macro 'EXPOSE_INTERFACE_FN' will help utilizing this. The game module from the plugin is not obtained through the process environment block, so the executable is no longer sensitive to names.
2023-08-22 01:11:49 +02:00
Kawe Mazidjatari
ee6e1a6cf0 Map CAppSystemGroup out more
Added members:
- CUtlDict<int, unsigned short> m_SystemDict;
- CAppSystemGroup* m_pParentAppSystem;

Added functions:
- FindSystem (untested and unused at the moment!)
2023-08-22 01:07:01 +02:00
Kawe Mazidjatari
71b0781715 Utilize 'DevMsg()' for uncertain builds only
Only uncertain builds will contain DevMsg()/DevWarning() prints. For retail, Msg() and Warning() should be used instead.
2023-08-21 19:12:29 +02:00
Kawe Mazidjatari
c3bc8345f7 Uncomment
Uncomment, was commented previously due to the lack of the CUtlString class.
2023-08-21 18:52:05 +02:00
Kawe Mazidjatari
45b10aa0e9 Rename NetDataBlockReceiver method
This is a debug method that is called from 'CClientState::ProcessDataBlock()'.
2023-08-21 16:32:39 +02:00
Kawe Mazidjatari
8c87ad219f Add more bitbuf inlines
Added:
- Tell()
- GetNumBitsLeft()
- GetNumBytesLeft()
2023-08-21 16:14:54 +02:00
Kawe Mazidjatari
0066b82da7 Light cleanup 2023-08-21 11:35:24 +02:00
Kawe Mazidjatari
c344dde672 Add bitbuf getters 2023-08-21 11:28:55 +02:00
Kawe Mazidjatari
fa4325eda0 Change more to errors
Should never happen, and be shown in release builds.
2023-08-09 15:31:22 +02:00
Kawe Mazidjatari
298bab630e Change to error
Should never happen, and be shown in release builds.
2023-08-09 15:05:08 +02:00
Kawe Mazidjatari
5f64cd83d8 Fix FileSystem size integer truncation
The implementation in the engine always took/returned signed 64bit size types, but I made a mistake when reversing the virtual function table. All types have been changed to what they should be (mostly signed 64bit, very few unsigned), and usage in-SDK has been adjusted accordingly.
2023-08-09 14:43:54 +02:00
Kawe Mazidjatari
26c10dfd11 Restructure concommandbase classes
Move all classes deriving from ConCommandBase to a single file, and split out CCommand, CCvar, CCvarUtilities etc to their own files. This makes it possible to use CCommand and stuff in external tools without linker errors/warnings.
2023-08-04 14:32:06 +02:00
Kawe Mazidjatari
dbe75c0709 Make private
No reason to be public.
2023-08-04 12:44:46 +02:00
Kawe Mazidjatari
ddfe027677 Pass by reference
CConnectedNetConsoleData was allocated and deallocated manually, but std::vector is able to do it on its own. The vector type has been swapped out with CUtlVector as this removed the need of having to cast size types to a 32bit int to make it more compatible with the other sdk/engine types without throwing compiler warnings.
2023-08-04 10:48:22 +02:00
Kawe Mazidjatari
6eb3388aee Default to nullptr
If null, it uses the statically created breakset.
2023-08-04 10:40:50 +02:00
Kawe Mazidjatari
8e8b2ace38 Add cURL parameter to enable 'CURLOPT_FOLLOWLOCATION'
Option to allow following redirects.
2023-08-01 02:20:53 +02:00
Kawe Mazidjatari
eb14469178 Create utility function for formatting bytes
Byte count to prettified representation as string.
2023-07-31 11:43:25 +02:00
Kawe Mazidjatari
633e6a25b3 Add strcat define 2023-07-29 17:04:27 +02:00
Kawe Mazidjatari
9e9d3342b3 CURL tools improvement
- Added wrapper for downloading files.
- Moved many function arguments to dedicated parameters structure.
2023-07-28 14:47:20 +02:00
Kawe Mazidjatari
b7b42786ab Add STL version of Appendslash 2023-07-28 14:45:04 +02:00
Kawe Mazidjatari
e45c0fde7d Add CURLProgress structure
For a download progress bar.
2023-07-26 20:37:58 +02:00
Kawe Mazidjatari
31d92b439f Move cvars from curlutils.cpp
Move it elsewhere so this code can be shared among tools that don't feature the ConVar class.
2023-07-26 16:52:49 +02:00
Kawe Mazidjatari
6df3f39125 Should be an int
Code moves a 4 byte value into this field.
2023-07-25 00:19:48 +02:00
Kawe Mazidjatari
2a4ae390c7 Added more detailed comments 2023-07-24 12:12:59 +02:00
Kawe Mazidjatari
00f349c745 Use ICVar iterator for console partial suggest
Added public interface to ICVarIteratorInternal, this class also deals with the deletion of the iterator. This fixes the problem of cvars not showing up that have been registered after 'CModAppSystemGroup::Create()' has been called. Currently, no cvar is registered after it. This will/could change when the plugin system is utilized.

Additional changes:
- Cvar 'con_suggestion_flags_realtime' has been removed, as we no longer keep an early copy anymore; real time flags are always shows from now on.
 - Fixed a bug in 'CConsole::FindFromPartial()' where we would return in the loop when 'm_vSuggest.size() >= con_suggestion_limit->GetInt()', instead of breaking out, which skips the element sorting process.
2023-07-22 14:51:15 +02:00
Kawe Mazidjatari
e7a4a6f161 Make 3 versions of SigCache files
The 3 versions are now:
- cfg/server/startup.bin
- cfg/client/startup.bin
- cfg/startup.bin

The last one is used by the GameSDK. Bumped header version to 6.
2023-07-20 22:16:21 +02:00
Kawe Mazidjatari
e8e600f553 Add missing convar flags
Added:
- FCVAR_ACCESSIBLE_FROM_THREADS [1<<25]
- FCVAR_STUDIO_SYSTEM [1<<26]
- FCVAR_SERVER_FRAME_THREAD [1<<27]
- FCVAR_PLATFORM_SYSTEM [1<<31]

This commit also removes the 'FCVAR_MATERIAL_THREAD_MASK' from the ConVarFlags class (which is a helper struct for displaying flags on the developer console), as this is a mask and would therefore be marked as such in case a single bit in the mask matches, and all these bits are already added to the list.
2023-07-20 21:02:27 +02:00
Kawe Mazidjatari
2118ee6b48 Move RPak types to public header 2023-07-17 02:40:06 +02:00
Kawe Mazidjatari
1fb4410792 Add 'MAX_TEAMS' define
MAX_TEAMS is confirmed to be 126.
2023-07-16 23:45:02 +02:00
Kawe Mazidjatari
0f11110f76 Define 'COMPILER_MSVC32' on 32bits platform 2023-07-15 19:07:58 +02:00
Kawe Mazidjatari
6ff17557a2 Bump sigcache version
Force full rebuild
2023-07-15 17:51:56 +02:00
Kawe Mazidjatari
83d7f0b9f4 Light code cleanup
- Use game's filesystem in 'Mod_GetAllInstalledMaps'.
- Reorder parameters of 'AddFilesToList', and add option to override path separator.
2023-07-15 16:24:01 +02:00
Kawe Mazidjatari
a692d122dd Fix IFileSystem::RelativePathToFullPath parameters
Argument type is a 64bit size type.
2023-07-15 16:08:15 +02:00
Kawe Mazidjatari
c5e7c3e05d Move 'CPUInformation' struct
Move to the header it actually belongs to.
2023-07-15 10:28:49 +02:00
Amos
126091d3bc Update CServer class
CClient array is part of the CPlayer class. The array has been added, filling up most of the 'unknown' gap. Vtable override functions have been added as the array is static, and therefore requires an implementation of the vtable, these are just stubs however, since the vtable pointer points to the implementation in the engine.
2023-07-11 08:42:02 +02:00
Kawe Mazidjatari
dbb18e586d Add 'V_ComparePath'
Add function to compare paths for equality, while ignoring case and path separators.
2023-07-10 19:16:12 +02:00