41 Commits

Author SHA1 Message Date
Kawe Mazidjatari
bd9beaa33a Resource: improve assembly code formatting
Don't use byte opcodes, and suffix hexadecimal values with 'h'.
2025-01-03 22:36:31 +01:00
Kawe Mazidjatari
5e0c24ad84 Resource: patch out forced texture streaming disable code
If we do not have resident pages, then we can still rely on the GPU driven texture streaming system. However, this code forces the mode to TSM_OPMODE_LEGACY_PICMIP. This is a bug because it contradicts the ability to switch between the dynamic and static systems. Patched the jump from a conditional one to an unconditional one to always skip over this broken code.

This also ultimately drops the need for having a dummy STBSP file, and the benefit of not having a dummy STBSP file is that 'hasResidentPages' will be false, which disables the STBSP world texture crediting code, reducing frame times.
2025-01-03 22:32:37 +01:00
Kawe Mazidjatari
f78a842744 Resource: update cleanup automation script
These files are no longer used and could cause problems, added them to list of files to cleanup after an update is installed.
2024-11-20 17:22:49 +01:00
Kawe Mazidjatari
b88ed6d5cb Resource: fix typo in CFG file header
This is the server's offline configuration file.
2024-11-14 15:51:10 +01:00
Kawe Mazidjatari
14e0c8f5e4 Engine: separate server and client offline configuration files
Dedicated server or Client only builds will warn to the console if something is trying to set a convar, or execute a concommand that doesn't exist. Dedicated server builds don't have client commands/convars, and visa versa.
2024-11-14 15:49:57 +01:00
Kawe Mazidjatari
f7d75dd25f Resource: add offline autoexec file
Add to resources, refer to commit 43e162711e94293935e5eacf017c6cd0fa4c948b for details.
2024-11-09 01:26:12 +01:00
Kawe Mazidjatari
0db61d2244 Resource: remove old imgui layout config file during update 2024-10-08 23:09:28 +02:00
Kawe Mazidjatari
3974ba70bb Tier0: separate launcher and imgui configs to user directory
Keep it separate from the system configurations.
2024-10-08 23:04:45 +02:00
Kawe Mazidjatari
8356ac0351 Resource: update VPK build script
Add "mp_rr_desertlands_holiday", remove "mp_rr_desertlands_64k_x_64k_tt". "mp_rr_desertlands_holiday" is the same as "mp_rr_desertlands_64k_x_64k_tt", but the BSP originates from a later version of the game, and the map has been fully ported over to R5Reloaded rendering "mp_rr_desertlands_64k_x_64k_tt" redundant.
2024-10-07 14:50:22 +02:00
Kawe Mazidjatari
59a904320e LiveAPI: update readme
Nesting depth was increased in commit b91fd983f9440f274330c6d2c3fdf42f7288700a
2024-10-06 11:48:38 +02:00
Kawe Mazidjatari
e999871b32 Resource: sdk resource file cleanup 2024-07-11 02:01:26 +02:00
Kawe Mazidjatari
ea4d31c26d VScript: fix buffer overflow vulnerability in SQClass::NewSlot()
Assembly patch in game executable to implement the fix from commit 23a0620658 - patch has been tested and confirmed working.
2024-06-13 15:52:03 +02:00
Kawe Mazidjatari
e59490a324 Resource: update launcher icon
Slight adjustments to 32x32, incorrect vector used for that resolution.
2024-06-11 14:08:22 +02:00
Kawe Mazidjatari
03cc2daf8c Resource: add new icons for game and launcher executable
New images are remade with vector assets to improve the quality on all resolutions of the icons. Previous ones reportedly looked pixelated/distorted on lower DPI's. Icon's contain resolutions for all Windows editions starting from Windows 7 until Windows 11.
2024-06-10 21:48:41 +02:00
Kawe Mazidjatari
44b5db29ff Resource: additional dedicated build patches to improve runtime performance
Disabled additional unnecessary DX code from patched dedicated server executable, this allows the dedicated server to run RPaks containing models without any material or texture data. This also allows us to fully rebuild all RPaks for dedicated while also omitting material/texture data to further reduce memory usage during the parsing thereof, and overall disk size.
2024-05-07 14:47:09 +02:00
Kawe Mazidjatari
874f2aebae Resource: update vpk build list and remove old build scripts
2 new maps added, which will be includes in the next release. The dedi could still be used to build the vpk's, but ReVPK is prefered. Removed old build scripts.
2024-04-23 00:41:44 +02:00
Kawe Mazidjatari
065f86391e Miles: put event queue warnings behind a cvar
These warnings can get verbose, especially if events from the map itself are missing. Put behind a cvar and enabled it by default in development configurations.
2024-04-23 00:15:02 +02:00
Kawe Mazidjatari
266dc56b36 NetCon: rename to 'netcon'; remove platform suffix
Netcon is no longer 32bits. Previously it was made 32bits to maximize system compatibility, but this was unfortunately too hard to maintain after the migration to CMake, it was also no longer worth it as the tool never got used on 32bit platforms. Renamed to avoid confusion.
2024-04-21 01:54:58 +02:00
Kawe Mazidjatari
f3ca070868 Resource: use default protoc instead of custom one
No need to use the custom one.
2024-04-21 01:50:32 +02:00
Kawe Mazidjatari
e197b7d12e Resource: add LiveAPI documentation 2024-04-17 21:34:51 +02:00
Kawe Mazidjatari
1932cd2e11 Resource: add missing command line parameter client configs
Since the implementation of the loader system, client's need '-noserverdll' to work properly when launched from the SDK launcher.
2024-04-17 20:51:04 +02:00
Kawe Mazidjatari
7791daef87 Engine: enforce rcon convar name consistency
Removed extra '_' from sv_rcon_whitelist_address, its now sv_rcon_whitelistaddress.
2024-04-14 16:14:19 +02:00
Kawe Mazidjatari
edecbb06d5 Resource: add new LiveAPI configuration file
Executed on server launch.
2024-04-13 15:55:01 +02:00
Kawe Mazidjatari
b4db5cd5af Resource: add new parallel VPK build script
Build script to build VPK files in parallel with use of the new tool 'ReVPK'.
2024-04-13 15:54:27 +02:00
Kawe Mazidjatari
5b7f120ccc Resource: update cleaner script
Added new LiveAPI log directory, and several files that were renamed.
2024-04-13 15:53:11 +02:00
Kawe Mazidjatari
6bb70fb2ed Resource: update configuration files
Slightly adjusted RCON configuration files, recent changes implemented RCON encryption (users can specify their own AES keys).
2024-04-13 15:52:33 +02:00
Kawe Mazidjatari
faf9d31ca0 NavMesh: rename editor program to 'recast'
Renamed to original tool name
2024-04-13 15:49:29 +02:00
Kawe Mazidjatari
7a21912ae1 Resource: update RCON cfg files
Reflect recent changes made to the RCON system.
2024-04-10 15:16:10 +02:00
Kawe Mazidjatari
f8dd1fe88c Engine: implement encryption for RCON protocol
RCON lacked encryption, added AES-CTR encryption on RCON frames. Slightly adjusted protocol to take this into account (sending nonces, encrypted data itself, etc).
2024-04-10 14:08:52 +02:00
Kawe Mazidjatari
b916e11543 RTech: implement custom events and slight adjustments/improvements
Implemented CustomEvent in code, which supports:
- bool|int|float|string|vector|array|table
- nested arrays and tables, up to a depth of 64

Also improved foundation code for LiveAPI:
- added ability to log liveapi events to a file on the disk (rotates between each match or round, depending on how the abstracted functions are called in scripts)
- when the system is enabled through cvars, code will be invoked on the fly
- when the system is disabled through cvars, the system will be shutdown properly on the fly (properly handling socket closing, log file finishing, etc)
- if the socket system is enabled/disabled on the fly using cvars, related code will be called to initiate or shutdown the connections.

The generated proto.cpp/h file has been moved to the protoc project as it was causing some compiler warnings that we suppress on the thirdparty (vendored) code.
2024-04-03 01:26:53 +02:00
Kawe Mazidjatari
7d2c192a46 Server: upgrade live_api events.proto
Upgraded to "R5pc_r5-201_J29_CL6350311_EX6402312_6403685_2024_03_22".
2024-03-31 16:13:05 +02:00
Kawe Mazidjatari
89ed3735af Server: implement LiveAPI into the game
Full implementation of all LiveAPI events into the game server.

NOTE: The only event left to be implemented in code is CustomEvent.

NOTE: ObserverSwitched and WeaponSwitched events are implemented in code, but they need a proper CodeCallback to hook them up properly in scripts.

The events.proto file is from build "R5pc_r5-200_J33_CL6243000_2024_02_27_14_53" with some slight modifications:

- PlayerStatChanged.newValue is now a oneof field, which can be either int, float or bool as Season 3 Apex still handles stats in one of those 3 types while retail was only int (which is most likely why they kept it just int only int he proto file).

- PlayerRespawnTeam.respawned is now a repeated Player field instead of a string. Initially the respawned field contained a comma separated list of player names that were respawned in the team, it now contains the actual Player data that is respawned as this was much easier to get from scripts, and also makes a bunch more sense than just string names.

- New CustomEvent event: since R5Reloaded is a modding platform, and we can't make new events for literally all gamemodes that modders create, we added another event "CustomEvent" which allows modders to sent their own data to their own tracker or anything while still remaining compatibility with the protocol.
2024-03-31 16:13:04 +02:00
Kawe Mazidjatari
2ed42296db RTech: properly disable asset streaming on dedicated server
Just set the mode to 0, required as we rebuilt the functions and can't really check for dedicated there, we have to initialize it with this mode.
2024-01-30 14:30:20 +01:00
Kawe Mazidjatari
5b5effa964 DataCache: rework datacache invalid data handling
This is a more reliable solution as pretty much all code patch in CMDLCache checks the ptr for NULL, but none of them do for 0xDEADFEEDDEADFEED (probably a debug only thing that somehow made it into this build). Patched out so the engine could deal with it properly. Anything interesting already gets logged from the SDK so we won't miss out on anything patching this out.
2024-01-07 11:45:03 +01:00
Kawe Mazidjatari
440a29513e DataCache: fix inline crash 2024-01-06 23:56:19 +01:00
Kawe Mazidjatari
5cd7a64c8d SDK cleaner script is now in the bin dir 2023-10-21 11:43:31 +02:00
Kawe Mazidjatari
b4f5c1961d Update SDK cleaner script 2023-10-21 11:37:54 +02:00
Kawe Mazidjatari
ab5c5a39e1 Spawn AI hints so the entire AI Network can be cached 2023-10-21 11:23:39 +02:00
Kawe Mazidjatari
a54c8eacd9 Rename VPK build scripts 2023-10-20 20:15:36 +02:00
Kawe Mazidjatari
0d442285ca CFG cleanup
Remove dev parameters from retail configs, disable net_usesocketsforloopback by default now. This was a leftover from before we got dedicated servers working, and was thus required to get other people to connect to the listen server. This is no longer needed, it was causing a problem with authentication on the local server as the input address from the client would differ from what the master server would bake into the JWT token (localhost translates into an actual ip address on the master server side).
2023-10-20 19:14:40 +02:00
Kawe Mazidjatari
fd3e227a86 Align folder structure with p4 2023-09-19 22:13:22 +02:00