1264 Commits

Author SHA1 Message Date
Kawe Mazidjatari
e40a638424 Update SDK version
Breaking changes where made.
2022-08-31 17:54:48 +02:00
Kawe Mazidjatari
66ea9484e9 Hidden server modal sanity check
* Check if the input field isn't empty.
2022-08-31 17:23:23 +02:00
Kawe Mazidjatari
e0b45cce9b Fix pylon debug info
* Fixed bug where we dumped the json object again for the post, while this is already stored in a nearly unused string.
* Better debug messages.
2022-08-31 17:18:26 +02:00
Kawe Mazidjatari
c89b59613b Update server token icon
Used in the ImGui modal panel for private servers.
2022-08-31 16:36:13 +02:00
Kawe Mazidjatari
0309d9cd6b Server browser UX improvements
* Use proper method of obtaining content regions for buttons.
* Set min and default size to (928 - 524), this improves the anti-aliasing effect even more.
* Significantly decrease the size of the private server modal.
* Removed extraneous min window size constraint set by 'ImGuiConfig::InitStyle()'.
2022-08-31 15:45:12 +02:00
Kawe Mazidjatari
c35829013e Change VFTavle indexes from read only to contant 2022-08-31 14:38:49 +02:00
Kawe Mazidjatari
eca922d3df Fix console autocomplete window not padding elements correctly when size is between the clamped values 2022-08-31 13:00:02 +02:00
Kawe Mazidjatari
1f41f3c9d0 Update ai_networkmanager.cpp 2022-08-31 12:49:48 +02:00
Kawe Mazidjatari
fc596a4715 Use internal FileSystem for loading level settings for STBSP overrides 2022-08-31 03:01:45 +02:00
Kawe Mazidjatari
8dd7b70d61 Fixed small bug in DevMsg log from 'CAI_NetworkManager::LoadNetworkGraph()'
'(checksum: '0x%X' expected: '0x%X')': checksum was NavMesh, and expected is the nodegraph.
'checksum' should be the nodegraph crc (what we obtain from the AINet header), and expected should be the computed NavMesh crc, since we consider the AIN 'out of date' when its checksum doesn't match the NavMesh one.
2022-08-31 03:00:50 +02:00
Kawe Mazidjatari
a5f71dc4d8 Change default size for browser window
Default size is tested to show the least amount of anti-aliasing effects.
2022-08-31 02:16:40 +02:00
Kawe Mazidjatari
e1cf700355 Improve timer logic
Accurate interval to duration conversion.
2022-08-31 02:15:54 +02:00
Kawe Mazidjatari
45c147087a Fixed console logger selection while mutating entries bug
* Fixed bug where attempting to select text, while auto scroll is disabled, and entries are being removed, while entries are also being added, causes the start of the selection to not adjust with the number of lines being removed, which then causes it to move with the deletion.
2022-08-30 22:54:34 +02:00
Kawe Mazidjatari
d1d523fd12 Update imgui_logger.cpp 2022-08-30 21:28:26 +02:00
Kawe Mazidjatari
885e6fa94e Proper NET_SetKey sanity checks
* Checks if input encoded key is 24 characters long.
* Checks if the input data is a valid base64.
2022-08-30 20:04:59 +02:00
Kawe Mazidjatari
529a28358a Update server.h 2022-08-30 17:20:50 +02:00
Kawe Mazidjatari
f8f4504966 NetKey system improvements
* Installed change callback 'NET_UseRandomKeyChanged_f' for cvar 'net_useRandomKey' (when set, it will generate a random key as this is needed when this is enabled!).
2022-08-30 12:10:07 +02:00
Kawe Mazidjatari
1285d15623 Ban system and authentication improvements
* Fixed bug where multiple of the same entries get added to the global ban/refuse list.
* Fixed bug where we still use the client instance after deleting it in 'CBanSystem::BanListCheck()'.
* Load banlist at a later state (not at construction of class), this is needed for a future change of adapting the 'business' code to feature the game's FileSystem.
* CServer cleanup.
* More detailed ban messages (banned, added to refused list, removed from slot, etc..).
* Use localization key for banned message ("#Valve_Reject_Banned").
* Add const qualifiers to all CPylon methods.

Note:
* This commit requires changes on the master server, these changes are already performed, however the new master server isn't live yet until we publish the new release.
2022-08-30 12:07:09 +02:00
Kawe Mazidjatari
8712f7db81 Fix concurrency of g_svNetKey
* Fix concurrency of g_svNetKey.
* Improve logging.
* Overall code cleanup.
2022-08-30 01:22:53 +02:00
Kawe Mazidjatari
71c5ff2416 Clear banlist if valid if we attempt to load it
When we 'reload' the banlist, and have a valid file, none of the current bans in the vector will get overwritten. We clear the entire vector if valid, and rebuild it if the file is valid. if no file is found, or if access to file is denied, we assume the server operator wants all bans dropped.
2022-08-29 17:03:14 +02:00
Kawe Mazidjatari
23e85cae37 Use type alias for all pak handle variables
* Use type alias 'RPakHandle_t'.
* Improved debug/exception messages.
2022-08-29 17:00:50 +02:00
Kawe Mazidjatari
afad5b92ec Rename 'OriginID' to 'NucleusID'
Nucleus ID is the official internal term for the platform user id used by the OriginSDK.
2022-08-29 15:59:12 +02:00
Kawe Mazidjatari
22fa9bbef9 Fix bug where the originID field doesn't get set when banning by name 2022-08-29 14:59:21 +02:00
Kawe Mazidjatari
42dcfdbbec Rename R5Dev_ to SDK_ 2022-08-29 14:31:05 +02:00
Kawe Mazidjatari
e54c2df621 Light cleanup 2022-08-29 14:00:54 +02:00
Kawe Mazidjatari
ab8fc757c8 Fix concurrent access to 'g_vAllPlaylists' and 'g_vAllMaps' 2022-08-29 11:55:58 +02:00
Kawe Mazidjatari
73ff0bd0c1 Licht cleanup
* Removed unnecessary header files.
* Removed unnecessary c-string cast.
* Use lock_guard for mutex.
2022-08-29 03:03:53 +02:00
Kawe Mazidjatari
e174cb2b1d Turn static var into member 2022-08-29 02:38:19 +02:00
Kawe Mazidjatari
0f488c685c Move simple task to global fixed frame
Avoids having to create threads for tiny little things.
2022-08-29 02:21:32 +02:00
Kawe Mazidjatari
1c29d5aed5 CEngineAPI vftable implementation 2022-08-29 01:14:53 +02:00
Kawe Mazidjatari
1a3f17a422 Update pylon time-out message 2022-08-29 00:29:32 +02:00
Kawe Mazidjatari
50fceec016 Update error messages 2022-08-29 00:19:11 +02:00
Kawe Mazidjatari
d7df115543 Properly check bounds for Q_strncat in PrintListHeader()/PrintCommand().
Calculate remaining size for the buffer.
2022-08-28 23:54:52 +02:00
Kawe Mazidjatari
f6d8a966a3 Don't reload level when reparsing weapon scripts 2022-08-28 17:42:58 +02:00
Kawe Mazidjatari
0b49ea1f29 Use 'g_pServer->IsActive()' over 'g_pHostState->m_bActiveGame' 2022-08-28 17:40:03 +02:00
Kawe Mazidjatari
a9aded7fd8 CConsole: Fixed problem where window claims focus over all other windows when summary is painted 2022-08-28 17:28:53 +02:00
Kawe Mazidjatari
48e708e498 CPylon: Exception handling for all 'json::parse' calls 2022-08-28 17:12:58 +02:00
Kawe Mazidjatari
dff3f2f53e Remove deprecated patch 2022-08-28 00:13:53 +02:00
Kawe Mazidjatari
38c94eda27 Banlist writing optimizations
* Only write if there is something to write.
* Don't write each iteration, write after the loops are finished.
2022-08-28 00:11:33 +02:00
Kawe Mazidjatari
532b4125d5 More thread safety improvements
* Run 'CHostState::Think()' in the main thread.
* Construct 'NetGameServer_t' objects in main thread before dispatching (TODO: browser).
* Dispatch the call to 'CBanSystem::AddConnectionRefuse' from 'SV_IsClientBanned' to the main thread if we aren't main.
* Return bool for CBanSystem::AddEntry and CBanSystem::DeleteEntry for future optimizations (next commit).
2022-08-27 23:45:58 +02:00
Kawe Mazidjatari
656b0be3ec Improve threading (work in progress)
* Only run '_DownloadPlaylists_f()' in the main thread, schedule for next frame if we aren't in the main thread. (this should fix crash cases related to disconnecting from the game).

* Locked read/write to CBrowser members (thread for obtaining the server list is detached, but once the 'slow' post operation in this thread is complete, mutex lock is acquired (locking the render thread if the browser is active) to set the string members of CBrowser, this operation is very fast as we only set the string and the color after the http post operation (this never caused a crash, but the behavior without any lock mechanism is technically undefined regardless).

* Obtain the host name dynamically from the ConVar 'pylon_matchmaking_hostname' (atomic operation). Initial approach was deleting the whole master server pointer just to construct a new httpclient object..
2022-08-27 18:57:56 +02:00
Kawe Mazidjatari
cf5ab260da Improve spelling 2022-08-24 00:42:59 +02:00
Kawe Mazidjatari
6af5c7cdcf Use internal FileSystem for loading and handling
AIN files are now written to GAME dir, and the engine attempts to load the AI files from any GAME dir (search includes the VPK's).
2022-08-23 21:32:12 +02:00
Kawe Mazidjatari
260f862a69 Load level settings file using game's filesystem
This allows for loading the file from all search directories and the VPK's
2022-08-23 16:45:42 +02:00
Kawe Mazidjatari
147089f8df Fix mp_gamemode not working on dedicated server when launched as retail
Put in !DEDICATED by accident.
2022-08-23 11:49:13 +02:00
Kawe Mazidjatari
1001f84f73 Fix 'Script_GameRules_GetGameMode' not returning the current GameMode correctly
ConVar 'mp_gamemode' had to have its FCVAR_DEVELOPMENTONLY flag removed.
2022-08-23 00:18:52 +02:00
Kawe Mazidjatari
ca0172ed1f Add cvar for RTech debugging and removed dev flag from 'launchplaylist' 2022-08-22 21:15:46 +02:00
Marvin D
5f73413286 different print for OpenFile 2022-08-22 19:03:33 +02:00
Marvin D
806cfbc8c4 Update opcodes.cpp 2022-08-22 14:45:34 +02:00
Marvin D
3a8647b6f4 Load .starpak from /Win32/ support
* S3< not tested.
2022-08-22 14:43:06 +02:00