251 Commits

Author SHA1 Message Date
Kawe Mazidjatari
ee82d5d8e0 Tier1: move KeyValues class to Tier1
The KeyValues class belongs here. Also reimplemented most loading methods for KeyValues, and adjusted the VPK building code to account for it. Pointers to the engine's implementation of KeyValues have been moved to a separate header ('keyvalues_iface.h'), as this allows external tools code to utilize the standalone KeyValues class implementation. Playlist utilities are completely separated from the KeyValues header; these have nothing to do with KeyValues other than manipulating a global KeyValues object for the playlists, and thus have been named as such and moved to rtech/playlists.
2024-04-05 17:42:05 +02:00
Kawe Mazidjatari
1f7bbe5b92 Recast: make detail mesh edge detection more robust
Merge recastnavitagion/recastnavitagion@c393777d26
Instead of using a distance check which can fail at large magnitudes due
to low precision we can check whether the edges are actually on the
hull.
2024-04-05 17:19:29 +02:00
Kawe Mazidjatari
e3bf2036b3 Recast: fix:rcBuildLayerRegions missing areaType
Merge recastnavitagion/recastnavitagion@ddaa361b08
2024-04-05 17:19:28 +02:00
Kawe Mazidjatari
144d5f62e1 IDetour: code refactor
Utilize the new IDetour::DetourSetup() code, IDetour::Attach and IDetour::Detach have been removed in favor of this (significantly reduces chance of user error). Since the template check happens in the idetour header, it is much more aggressive on type mismatches, such as a difference in parameter types, between the function and detour, will now raise a compile time error. As a result, some type mismatches have been fixed in this commit as well.
2024-04-05 16:41:09 +02:00
Kawe Mazidjatari
3831058f81 New method for IDetour
This will deprecate IDetour::Attach and IDetour::Detatch. This should reduce the chances of potential errors caused by using the wrong function in the wrong method (e.g. using DetourAttach in IDetour::Detatch).
2024-04-05 16:41:09 +02:00
Kawe Mazidjatari
8c22d9ed80 Fix compiler warnings on Visual Studio 2017
Should not be a constexpr, this caused cryptic errors in template code when compiling the code with older compilers.
2024-04-05 16:34:29 +02:00
Kawe Mazidjatari
e2b231f4e0 Fix declaration/implementation mismatch 2024-04-05 16:34:29 +02:00
Kawe Mazidjatari
5d9b9ec9d5 Fix CVE-2023-38546
Merge: curl/curl@61275672b4
2024-04-05 16:21:45 +02:00
Kawe Mazidjatari
8bd1fa4c6e Fix JWT compile errors and warnings 2024-04-05 16:21:44 +02:00
Kawe Mazidjatari
dc011e5d99 Add MbedTLS library to SDK
Will be used for the JWS library, should eventually be replaced with SChannel.
2024-04-05 16:21:44 +02:00
Kawe Mazidjatari
cc3b91a3b6 WIP: add JWT library
Currently does not compile, pending integration into SDK.
2024-04-05 16:05:56 +02:00
Kawe Mazidjatari
156e31404e Light protobuf cmakelist cleanup
Add missing files and remove unused version file (version file was also incorrect, it mentions version 3.19 but we have 3.21.12).
2023-09-17 22:06:15 +02:00
Kawe Mazidjatari
7b5f40fb9d Upgrade spdlog library to 1.12.0 2023-09-17 20:37:44 +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
abaab38d9d Rename dtOffMeshConnection field
CAI_Navigator::m_traverseRefYaw gets set to this field.
2023-08-29 00:33:48 +02:00
Kawe Mazidjatari
9049e61d34 Move pointers to 'dtQueryData' struct
In the engine, m_query gets memset to size '0x58', and it passes this field as reference to other functions which then access the 3 pointers. Moving the 3 pointers there made the struct size 0x58, and showed a much better disassembly. Moved these type here to reflect the changes made in the engine.
2023-08-27 23:56:11 +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
5c05f91891 Custom class name for SDK Launcher
Something that could be searched up without clashes and pulled up front.
2023-07-31 23:26:34 +02:00
Kawe Mazidjatari
fb35782b9e Fix cppkore progress bar 'roundings' showing as inverted when progress is null
Just don't render the fill if progress is still null.
2023-07-31 19:07:08 +02:00
Kawe Mazidjatari
c1bdb54b6b Remove asserts from Microsoft Detours wrappers
Intermittently causes compile errors, the asserts should be added in the implementation file instead.
2023-07-20 21:59:25 +02:00
Kawe Mazidjatari
a2d30e45f9 Add asserts to detours
This is to make it easy to catch detour errors.
2023-07-19 15:53:20 +02:00
Kawe Mazidjatari
1878c92211 Merge recastnavigation/recastnavigation#619 2023-07-15 16:53:01 +02:00
Kawe Mazidjatari
e57294a1c4 Merge recastnavigation/recastnavigation#455 2023-07-15 16:49:55 +02:00
Kawe Mazidjatari
8468fe011d Merge recastnavigation/recastnavigation#645
Merged the fix, but without the catch upgrade.
2023-07-15 16:40:12 +02:00
Kawe Mazidjatari
0110cd91c2 Fix typos 2023-07-08 02:20:33 +02:00
Kawe Mazidjatari
deb913e47b Merge recastnavigation/recastnavigation@603dc88e5d 2023-07-06 10:10:50 +02:00
Kawe Mazidjatari
2ca1a290e2 Revert back to using verctors for detours
Enabling LTCG caused the emplacement order to be different, which is most likely due to additional optimizations for the binary search logic. Reverted to fix this bug.
2023-07-03 15:37:25 +02:00
Kawe Mazidjatari
7762c4b2ce Light refactor of the IDetour interface
- Use std::map for mapping vtables to interface objects, previously done with a set and a vector.
- Objects are no longer inline, which significantly reduced output code size as all redundant dynamic initializers (created for each translation unit) have been pruned.
2023-07-03 13:37:41 +02:00
Kawe Mazidjatari
789ecbc234 Fully disable memory expansion
The game's memalloc does not support memory expansion, the base expansion function couldn't be shadowed properly without linker errors. However we want to make sure no instances of it get compiled into the module, ever. Therefore, the duplicate symbol is kept in memoverride (_expand_base), and the only usage has been removed from LZHAM's 'lzham_mem'. If a linkage is attempted to anything utilizing '_expand', a linker error will be emitted and no image will be generated.
2023-07-03 00:25:15 +02:00
Kawe Mazidjatari
b64897d4c1 Remove extraneous cURL compile option
Because already set from global CMake init.
2023-06-17 16:31:26 +02:00
Kawe Mazidjatari
788f38b428 Adjust cURL compile options
- Disable function inlining entirely, this allows for much easier hooking between engine and SDK code (the compiled code is now identical between engine and SDK, except that the SDK has all relevant security problems patched as per https://curl.se/docs/vuln-7.54.0.html).
- Enable buffer security checks to avoid potential remote attacks.
2023-06-17 01:07:07 +02:00
Kawe Mazidjatari
3f8baf6f68 Allow setting compile options for specific targets
Previously, it was all controlled from the global init (applied to all projects), but some projects need different options. With these changes, you can disable the common options applied in the 'add_module' macro, and set your own if desired.
2023-06-17 00:45:27 +02:00
Kawe Mazidjatari
2ad72b9f8f Improve ImGui shader string literals
Remove all useless indentation characters, change to static char array, use sizeof operator instead of strlen.
2023-06-16 23:11:42 +02:00
Kawe Mazidjatari
f6e6f834ce Enable cURL IPv6 2023-06-16 23:09:38 +02:00
Kawe Mazidjatari
4090757035 Fix CVE-2023-27533
Merge: curl/curl@538b1e79a6
2023-06-13 16:49:15 +02:00
Kawe Mazidjatari
1d570a82d8 Fix CVE-2022-43552
Merge: curl/curl@4f20188ac6
2023-06-13 16:18:00 +02:00
Kawe Mazidjatari
634a4739db Fix CVE-2022-32221
Merge: curl/curl@a64e3e5993
2023-06-13 15:35:04 +02:00
Kawe Mazidjatari
0cbdc982fd Fix CVE-2022-35252
Merge: curl/curl@8dfc93e573
2023-06-13 15:31:23 +02:00
Kawe Mazidjatari
e9ba4540cd Fix CVE-2022-27774
Merge: curl/curl@139a54ed0a
Note: protocol compare couldn't be added, as this would require adding a new member in the state structure, and therefore, break compatibility with the structures in the compiled executable (breaking the ability to hook any of its code). This fix should be sufficient however.
2023-06-13 13:02:04 +02:00
Kawe Mazidjatari
926a34dbbb Fix CVE-2022-22576
Merge: curl/curl@852aa5ad35
2023-06-13 12:20:54 +02:00
Kawe Mazidjatari
8b24c4f7d8 Fix CVE-2021-22947
Merge: curl/curl@8ef147c436
2023-06-13 12:08:13 +02:00
Kawe Mazidjatari
f545af934a Fix CVE-2021-22946
Merge: curl/curl@364f174724
2023-06-13 11:38:31 +02:00
Kawe Mazidjatari
9529519fa3 Fix CVE-2021-22925
Merge: curl/curl@894f6ec730
2023-06-13 11:30:39 +02:00
Kawe Mazidjatari
44650ac245 Fix CVE-2021-22898
Merge: curl/curl@39ce47f219
2023-06-13 09:47:07 +02:00
Kawe Mazidjatari
b7cca52067 Fix CVE-2021-22876
Merge: curl/curl@7214288898
Note: The 'CURLU' class does not exist in this particular version of curl, therefore, an alternative approach has been incorporated to mitigate the issue. Code has been tested, and the issue has been fixed.
2023-06-13 09:45:16 +02:00
Kawe Mazidjatari
d177ecdb0a Fix CVE-2020-8286
Merge: curl/curl@d9d0167278
2023-06-13 01:35:15 +02:00
Kawe Mazidjatari
c38a5f214f Fix CVE-2020-8285
Merge: curl/curl@69a358f218
Note: due to the many updates between the curl version this has been fixed in, and the one used in the SDK, the function was slightly different. The code has been tested however, after implementing the fix for this particular version of the library, the code appears to work perfectly with the vuln being fixed (tested on an FTP server with 10k files in the directory).
2023-06-13 00:38:35 +02:00
Kawe Mazidjatari
5a9711878b Fix CVE-2020-8284
Merge: curl/curl@ec9cc725d5
2023-06-12 22:26:53 +02:00
Kawe Mazidjatari
d10b544f74 Fix CVE-2020-8231
Merge: curl/curl@3c9e021f86
Note: Member order in 'connfind' has been left identical, except for that 'found' (now 'id_tofind') is a long. Code however, should pad it to a 4 byte boundary. Size of 'UrlState' has also remained unchanged, the 'connectdata' member has been renamed to 'lastconnect_id', and its type has been changed to 'long'. Additional padding has been incorporated to make sure the structure's size remains the same as that of the game, may we ever hook compiled code with ours.
2023-06-12 22:20:39 +02:00