2902 Commits

Author SHA1 Message Date
Kawe Mazidjatari
a7277b47fc Launcher UX Improvements
* Fix bug regarding searching for prerelease builds, prerelease was assumed to be always at the top but this isn't true.
* Make the prerelease toggle button check for updates instantly.
* Automatically launch the game after the update has finished.
2023-10-29 20:08:10 +01:00
Kawe Mazidjatari
633292a820 Add comprehensive error logging for downloads and fix CPU in progress callback
The game will now not be installed if the download fails (this should've never happened in the first place). The CPU usage fix should also fix download speed throttling.
2023-10-23 00:08:25 +02:00
Kawe Mazidjatari
47632d89fa Implement incremental patching
Only replace files that has changed from the previous depot, don't just copy and replace all the existing assets.
2023-10-22 22:15:13 +02:00
Kawe Mazidjatari
5ea9cd985a Swap greying out code
Only Advanced Options needs to be greyed out if no install is found, youtube should always work.
2023-10-22 01:54:43 +02:00
Kawe Mazidjatari
ac9d45b567 Fix SDK Launcher display bug
If depot vector is empty, the SDK launcher will download all files in depot json, but still use the depot vector as the count for how many packages instead of the depot json array.
2023-10-21 19:12:33 +02:00
Kawe Mazidjatari
ae098603bb Overall launcher cleanup and improvements
Use clean_sdk.bat to clean the SDK install.
2023-10-21 18:00:25 +02:00
Kawe Mazidjatari
f4df4e0fc0 Show actual to-install package count + WIP callback fix
Progress callback gets called too often eating CPU, work in progress fix added but not yet utilized.
2023-10-21 17:57:59 +02:00
Kawe Mazidjatari
cc3b17b342 Implement manifest based update logic
This checks the local manifest with that of the remote, and updates the game as necessary.
2023-10-15 21:37:45 +02:00
Kawe Mazidjatari
97dc1f646e Update SDK updater 2023-10-15 18:05:32 +02:00
Kawe Mazidjatari
dbe1e08aa1 Merge branch 'indev' into launcher_rework 2023-08-07 22:15:31 +02:00
Kawe Mazidjatari
11944f2476 Remove false error entirely
Just don't log it at all, the 'WaitForSingleObject()' will take care of most things.
2023-08-07 22:15:21 +02:00
Kawe Mazidjatari
822d9f2b19 CTextOverlay cleanup
Slightly improved performance, reduced number of copy constructions, reduced number of integral type casts by just using the CUtlVector class.
2023-08-07 22:10:06 +02:00
Kawe Mazidjatari
704900e2cd Don't index into it again
Use the already cached reference.
2023-08-07 21:23:42 +02:00
Kawe Mazidjatari
a840fd1493 Remove devonly flag from 'discord_updatePresence'
Allow user to enable it, seems to work perfectly fine.
2023-08-07 17:54:57 +02:00
Kawe Mazidjatari
89431cc61f Fix crasher by clamping stringcmd length before tokenizing it
Possible crasher is to send a stringcmd >= 512 in size with funny UTF8 characters and have CUtlBuffer::ParseToken() read past it. Apparently seems to be mostly a problem on 32bit? I was unable to initiate a crash, though one string caused interesting behavior before, and there was one report of the dedicated server being 'crashed' with this. There is no reason to tokenize it up to 512 bytes if the game is only ever going to allow 128, so clamp it to 129 and if the user exceeds it then they still get the message and we just jettison it.
2023-08-07 16:52:35 +02:00
Kawe Mazidjatari
3ca092f598 Temporarily fix convar value assignment bug in 'CRConServer::Execute()'
Command string buffer contains "sv_cheats" and value buffer contains "sv_cheats 1". Ideally value buffer only contains "1", and we just concatenate to "sv_cheats 1" for 'Cmd_Dispatch()' to avoid confusion on the netconsole's programmer side. This will be refactored in the future.
2023-08-05 20:29:07 +02:00
Kawe Mazidjatari
2d6a1c79ac Comment 'sv_rcon_banpenalty' out for now
Nice to implement at some point, but its not a priority. The current system just disables itself if its under attack (requires action from server owner to re-enable).
2023-08-05 01:14:03 +02:00
Kawe Mazidjatari
759d8d6d2e Flip 'sv_rcon_sendlogs' if netcon is not input only 2023-08-05 01:11:32 +02:00
Kawe Mazidjatari
5e4ea7d25a Minor convar string stuff 2023-08-05 01:09:53 +02:00
Kawe Mazidjatari
0a25f5e0fe Adjust 'CNetConBase' vftable order
Order has been adjusted to match the order of execution.
2023-08-04 17:45:30 +02:00
Kawe Mazidjatari
d7f92cbefd Adjust names
Adjust since previously they were pointers but now references.
2023-08-04 17:41:55 +02:00
Kawe Mazidjatari
bb5e92a563 Fix redundant socket closing bug
Cvar 'sv_rcon_maxsockets' is always higher than the actual allowed socket count. Should only check if its count is higher than the cvar.
2023-08-04 17:34:30 +02:00
Kawe Mazidjatari
f2783ae93f Make use of 'CConnectedNetConsoleData::m_bInputOnly' properly
This member was in the class when RCON was added to the r5sdk, but it was never utilized. Now, each netconsole can toggle whether they are input only or not, the server only sends logs to netconsoles that are not input only. This patch also contains a fix in which the listen server sends logs to the client of its own process, causing an infinite recursive call to DevMsg.
2023-08-04 17:28:01 +02:00
Kawe Mazidjatari
3a19ac0c24 Add a note 2023-08-04 15:39:40 +02:00
Kawe Mazidjatari
461fb48575 More reliable way of enablin ansi colors on netconsole
Compare arguments individually instead of performing a scan over the whole command line string.
2023-08-04 15:36:40 +02:00
Kawe Mazidjatari
e7420a26af Properly tokenize netconsole input
Use the command tokenizer class.
2023-08-04 15:35:20 +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
ce4b7b84a8 Promote RCON command execution authority
Allow RCON to execute any commands and set any cvar, regardless of their flags.
2023-08-04 11:53:46 +02:00
Kawe Mazidjatari
f6d2628937 Cleanup proto structure
Removed unused/extraneous enumerants.
2023-08-04 11:20:24 +02:00
Kawe Mazidjatari
10ee88ec10 Fix RCON disconnect bug
RCON occasionally did NOT disconnect, but only if the socket has been closed improperly. If the server/client crashes for example, the connection remained open in RCON; pendingLen on the initial peek recv < 0 while socket isn't blocking means socket has been closed unexpectedly.
2023-08-04 10:57:39 +02:00
Kawe Mazidjatari
309e297ae4 Add 'Cmd_Dispatch' to SDK
Signature is compatible with S1.
2023-08-04 10:49:39 +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
4bef9fc6cf Light script cleanup
- Rename 'checksum' to 'digest'.
- Sort the data in the correct order to reduce load on the client (client sorts it to the same order).
2023-08-03 17:25:11 +02:00
Kawe Mazidjatari
4a808a7932 Merge branch 'indev' into launcher_rework 2023-08-03 17:06:23 +02:00
Kawe Mazidjatari
b967a11ffd Make switching source directories easier
Engine src dir can now be switched with 1 var in CMake.
2023-08-03 16:56:27 +02:00
Kawe Mazidjatari
010c0d0c20 Improve manifest script
- Add configuration support for each depot
- Add configurable vendor for each depot
- Add size field for each depot (used for installer's progress callback)
- Compute depot package checksum on the spot
- Take manifest version input as string instead (used as tags)
2023-08-03 16:43:22 +02:00
rexx
b8744a9ab8 create sv_language cvar
currently unused, will be implemented in #103
2023-08-01 22:45:58 +01:00
Kawe Mazidjatari
ba2d3f9a6a Merge branch 'indev' into launcher_rework 2023-08-01 14:48:44 +02:00
Kawe Mazidjatari
195b2a11d7 Variable rename
Its a suffix.
2023-08-01 14:48:08 +02:00
Kawe Mazidjatari
26c63f6b2d Merge branch 'indev' into launcher_rework 2023-08-01 14:46:28 +02:00
Kawe Mazidjatari
a4da4afd19 FormatBytes function bug fixes
- Use snprintf instead to avoid stack buffer overflow.
- Make sure nBytes has a value before using it to create an index for the suffix.
2023-08-01 14:45:55 +02:00
Kawe Mazidjatari
d4ef12e55c Merge branch 'indev' into launcher_rework 2023-08-01 02:21:32 +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
933761b290 Create define for manifest path 2023-08-01 01:05:18 +02:00
Kawe Mazidjatari
9a1b2e9263 Light progress window cleanup 2023-08-01 00:02:35 +02:00
Kawe Mazidjatari
d60d05115c Make wrapper for forcing existing instance on top
Also renamed constant 'DEFAULT_WINDOW_CLASS_NAME' to 'GAME_WINDOW_CLASS_NAME'.
2023-08-01 00:02:13 +02:00
Kawe Mazidjatari
9a446db8ba Merge branch 'indev' into launcher_rework 2023-07-31 23:43:24 +02:00
Kawe Mazidjatari
c059ec65ac Add 'ForceForegroundWindow' windows utility
Forces the window handle to be on top.
2023-07-31 23:43:00 +02:00