Kawe Mazidjatari
5695e3016c
CIOStream: use stf::fstream instead
2022-12-02 22:31:42 +01:00
Kawe Mazidjatari
5903b40f96
Implement LZHAM compression for the signature cache map
2022-12-02 22:14:46 +01:00
Kawe Mazidjatari
75ae4d2bcf
Fix crash when loggers are used before detour init
...
'v_Plat_FloatTime' is only initialized during detour init. Using the loggers before will cause a crash. Code now logs 0.0 when v_Plat_FloatTime is nullptr. Showing 0.0 at this stage is correct as the game dll isn't initialized by then.
2022-12-02 21:54:34 +01:00
Kawe Mazidjatari
b90d6f929c
Finish Signature Cache Map implementation
...
* Fixed bug where the system still added entries after we are initialized (file has already been written to the disk).
* Moved loading logic to CSigCache class.
* Dedicated and Host/Client now have their own cache files.
2022-12-02 12:12:13 +01:00
Kawe Mazidjatari
81fbf9ded7
Finish signature cache map implementation in CModule
2022-12-02 11:10:53 +01:00
Kawe Mazidjatari
c3eba48472
Implement signature cache further into the CModule class
...
Init speeds have been reduced from 1.7 sec (average) to 0.06 sec (average)
2022-12-02 10:37:41 +01:00
Kawe Mazidjatari
de23c2adf8
Add signature cache map files to all projects
2022-12-02 10:33:20 +01:00
Kawe Mazidjatari
4cc3c28985
Deref VFTable pointer only once to obtain CShaderGlue::SetupShader
...
Due to the new cache changes, the pointer should only be dereferenced once.
2022-12-02 01:33:49 +01:00
Kawe Mazidjatari
783b3dbb5a
Initial working implementation of the Signature Cache Map.
...
Init speeds have been reduced from 1.7 seconds (average) to 0.3 seconds (average)
2022-12-02 00:30:49 +01:00
Kawe Mazidjatari
5513057f53
Pass patterns by const string reference
2022-12-02 00:28:29 +01:00
Kawe Mazidjatari
9c2b2b681a
Fix cache map load bug
...
* Fix bug where the version wasn't read correctly during cache map load.
* Pass address of array to CIOStream Read wrapper.
2022-12-02 00:28:01 +01:00
Kawe Mazidjatari
053f284029
Compute the file size properly
2022-12-02 00:25:28 +01:00
Kawe Mazidjatari
30e360e3b7
Merge branch 'SignatureMap' into ByteMaskToString
2022-12-01 22:47:50 +01:00
Kawe Mazidjatari
f999372f37
Work in progress signature cache map loading and parsing
2022-12-01 22:47:39 +01:00
Kawe Mazidjatari
2501c37044
Globally convert all byte patterns to strings
...
These get reconverted to masked byte patterns at runtime. With the signature map cache system, this will only happen when building the cache.
2022-12-01 22:44:55 +01:00
Kawe Mazidjatari
41dbf77715
Add type alias uintp and intp
...
Commonly used types across Valve Source SDK.
2022-11-29 20:36:45 +01:00
Kawe Mazidjatari
25aa8f02c0
Update CMemStack to 64bit
...
Use unsigned 64bit integer types for all size types, and use 64bit format specifier. Also use 64bit pointer types/value assignments. The virtual class and overrides no longer exist, these have been commented.
2022-11-29 01:45:24 +01:00
Kawe Mazidjatari
3a4a5a08f8
Add CMemStack class
2022-11-29 00:01:47 +01:00
Kawe Mazidjatari
edeb8ea586
Add Valve Source SDK utl classes
...
These have pending modifications/implementations.
2022-11-28 23:54:38 +01:00
Kawe Mazidjatari
00deea0ccb
Improve Audio logger color
...
A more vibrant orange.
Also improved consistency with RUI notify overlay.
2022-11-28 23:13:18 +01:00
Kawe Mazidjatari
6e1f15933f
CUtlRBTree int64 promotion
...
Promote parameter types to int64 as CUtlMemory has been modified to use int64 for size types.
2022-11-27 22:26:02 +01:00
Kawe Mazidjatari
31a9d1cb25
Update IKeyValuesMemory method string parameter names
2022-11-27 22:13:47 +01:00
Kawe Mazidjatari
3d72d60385
Update IKeyValuesMemory method parameter types
...
These have been promoted to 64bit integers as CKeyValuesSystem::m_iMaxKeyValuesSize has been changed a 64bit
2022-11-27 22:12:30 +01:00
Kawe Mazidjatari
806f2514db
Add new method to IKeyValuesSystem class
...
This is a new virtual method introduced in Respawn's engine.
2022-11-27 21:57:17 +01:00
Kawe Mazidjatari
f6c26464c7
Add IKeyValuesSystem class from Valve Source SDK 2013
2022-11-27 21:53:54 +01:00
rexx
b1b1e85b69
add MilesBankPatch hook for future debug print
2022-11-27 20:44:37 +00:00
rexx
6695a9bdaf
add MilesQueueEventRun debug print
2022-11-27 20:44:17 +00:00
rexx
b15b876eed
Revert "add more miles debug hooks"
...
This reverts commit feeaf5c54536a6ff7dae385314f9036ff45c4cd2.
2022-11-27 20:26:58 +00:00
rexx
feeaf5c545
add more miles debug hooks
2022-11-27 20:14:41 +00:00
Kawe Mazidjatari
3ab4597121
Use 'Warning()' if 'Miles_Initialize' failed
2022-11-27 17:41:03 +01:00
Kawe Mazidjatari
03dc4eada5
Move Miles and Bink hooks/implementations to shared 'codecs' folder
2022-11-27 17:27:35 +01:00
rexx
2636a5faa5
fix semicolon
2022-11-27 16:20:17 +00:00
rexx
70c64202b8
added Miles_Initialize print
2022-11-27 16:19:29 +00:00
Kawe Mazidjatari
4de66e7866
Add logging hook for Bink Video error output
...
Hook BinkOpen, and retrieve error message from exported function BinkGetError if BinkOpen failed.
2022-11-27 17:07:03 +01:00
Kawe Mazidjatari
6fbf78a4eb
Add logging hook for Miles Sound System debug output
...
Miles Sound System sets a pointer to a logger function in the exported function "MilesStartup", which can be set by passing a pointer to your logging function in the first parameter. Since this call is inline, we just hook the function that Respawn used for the audio logger instead, which has the actual print within the function stripped.
2022-11-27 15:02:22 +01:00
Kawe Mazidjatari
d20250e436
Heavy output code cleanup
...
Only add to detour if the VFTable pointer didn't exist yet. Not declaring these in the anonymous namespace significantly reduces code size and unnecessary memory allocations. We might want to consider refactoring this, although it will probably require a big change.
2022-11-27 15:01:55 +01:00
Kawe Mazidjatari
9e7495e407
Added new logger types (AudioSystem & VideoSystem)
...
These loggers are to be used for hooking and logging Miles Audio and Bink Video systems.
2022-11-27 10:19:23 +01:00
Kawe Mazidjatari
befd3bbe8c
Fix compile errors for client dll project
...
Server classes are only included on dedicated and host, client didn't use them. These files included the keyvalues header. Added header file to fix the compile errors.
2022-11-27 10:12:42 +01:00
Kawe Mazidjatari
81154df155
Improve Server Browser host panel
...
* Immediately display the "Stop Server" and "Change Level" buttons when hoststate indicated there is an active game, since stopping the server or switching levels is still valid when the server is not simulating.
* Only display the AINetwork/NavMesh rebuild/reload and Settings Reparse buttons when the server is simulating.
2022-11-26 17:04:12 +01:00
Kawe Mazidjatari
c13fe64abc
Use correct types for RPak virtual pointers
2022-11-25 23:16:13 +01:00
Kawe Mazidjatari
adbd1816df
Rename new RPak struct fields
...
Correct field names for RPakDescriptor_t, RPakMemPageInfo_t and RPakVirtualSegment_t.
2022-11-25 23:12:23 +01:00
Kawe Mazidjatari
277e05b2b8
Improve logging throughout SDK
...
Used proper enum for context. The low level tier1 stuff should print in COMMON.
Also added newlines where missing, the logging system will undergo a change where a newline will only be appended if we are logging in the same context without a newline.
2022-11-25 23:03:56 +01:00
Kawe Mazidjatari
8373cc70ca
Rename/improve RPak structure fields
...
* Renamed for consistency.
* Added new structures for known fields.
2022-11-25 23:01:59 +01:00
Kawe Mazidjatari
69396d5f42
Fix edge case bug where client doesn't load pak files when connected to a remote server
...
We used the hoststate levelname string, but this only applies to the host. Keep the levelname that was passed to 'Mod_LoadPakForMap()', and set the init bool after we ran 'Mod_GetLevelSettings()'.
2022-11-25 02:34:34 +01:00
Kawe Mazidjatari
00bf56a6bb
Log RPak patch header descriptors as well
2022-11-25 02:15:25 +01:00
Kawe Mazidjatari
9bc1a7f4e4
Fix RPak patch header size fields not getting set properly
...
Small mistake that happened when porting the decompressor over to the engine FileSystem API.
2022-11-25 02:12:54 +01:00
Kawe Mazidjatari
ad690379ab
Log RPak build date/time properly during decompress
...
Log the date stored in the RPak header in full detail.
2022-11-25 00:57:32 +01:00
Kawe Mazidjatari
57f17a3aad
Use engine's FileSystem API for decompressing and patching RPak files
2022-11-25 00:11:17 +01:00
Kawe Mazidjatari
1e76624c9b
Increase viewport scroll speed for the recast editor
...
Due to the large scale of the Apex maps, and the modifications done to the library, this had to be increased significantly.
2022-11-25 00:08:10 +01:00
Kawe Mazidjatari
ea18f30eda
Fix incorrect rasterization at tile borders ( recastnavigation/recastnavigation#476 )
...
Merge recastnavigation/recastnavigation@3901c5854c
2022-11-25 00:05:36 +01:00