3619 Commits

Author SHA1 Message Date
Kawe Mazidjatari
5a2dfaf03a Server: add option to respect game state when performing auto reload
Can be toggled with the new cvar 'host_autoReloadRespectGameState', and used in combination with the new server script func 'SetAutoReloadState( bool state )'. This makes sure that even when the timer reaches 'host_autoReloadRate', it would wait with the reload until the game itself is finished (which is when SetAutoReloadState( true ) is being called from scripts).
2024-06-01 11:30:35 +02:00
Kawe Mazidjatari
9e0c375a7b Game: group game source files 2024-06-01 11:30:35 +02:00
Kawe Mazidjatari
19069f039b Engine: exec liveapi.cfg on start
Allow configuration of the LiveAPI system
2024-06-01 11:30:35 +02:00
Kawe Mazidjatari
aba53d7bed Engine: add cvar 'sv_lagpushticks' to SDK
Will be used for reworking some parts of the lag compensation system in the future.
2024-06-01 11:30:35 +02:00
Kawe Mazidjatari
bc7a26b170 Game: make GameMode_t an enum class
Used as enum class throughout code base, avoids potential name clashes in the future.
2024-06-01 11:30:35 +02:00
Kawe Mazidjatari
e0ee5d9a05 Engine: fix typo in CClientState member variable name
Renamed from m_nProcesseedDeltaTick to m_nProcessedDeltaTick.
2024-06-01 11:30:35 +02:00
Kawe Mazidjatari
14e851cc64 Engine: add newly reversed fields to CClient class 2024-06-01 11:30:35 +02:00
Kawe Mazidjatari
9236008159 Engine: light cleanup to CL_MoveEx()
Make *chan and commandTick const.
2024-06-01 11:30:35 +02:00
Kawe Mazidjatari
42e02b4569 UserCmd: limit command backlog to prevent exploitation
Implement UserCmd command backlog limiting (the new convar 'sv_maxUserCmdProcessTicks' dictates how many ticks can be processed per second). Defaulted to 10, which is (default tick interval (0.05) * default cvar val (10) = 0.5ms window), which is equal to the default of cvar 'sv_maxunlag'.

Before this patch, you could stuff several seconds worth of usercmd's in one second and achieve speed hacking.
2024-06-01 11:29:29 +02:00
Kawe Mazidjatari
824b5098b3 Game: add CBaseEntity::GetFlags() and FL_FAKECLIENT constant 2024-06-01 11:25:59 +02:00
Kawe Mazidjatari
cdaf4f1b76 Game: fixup types in CPlayerState 2024-06-01 11:25:59 +02:00
Kawe Mazidjatari
33564c7351 Tier2: use utlvector for cylinder points and initialize buffer 2024-06-01 11:25:58 +02:00
Kawe Mazidjatari
99cabd2ac8 UserCmd: cleanup variable names and comments
Reversed some extra field names + adjusted comment for clamping ucmd->camerapos (this was tested and works, this field should be clamped).
2024-06-01 11:25:58 +02:00
Kawe Mazidjatari
2587392f88 RTech: use more consistent type names
Force consistency between type names (follow scheme used in tier0 and rtech_game export symbols).
2024-06-01 11:25:58 +02:00
Kawe Mazidjatari
dea96ddf31 RTech: rename pak defines
More correct and consistent naming.
2024-06-01 11:25:58 +02:00
Kawe Mazidjatari
64f8f27bc8 Engine: initiate rcon connection from address change callback
A more user friendly approach.
2024-06-01 11:25:58 +02:00
Kawe Mazidjatari
85f9d26d23 Engine: use tier2 random generator for netkey
Limit usage to only 1 algorithm provider.
2024-06-01 11:25:58 +02:00
Kawe Mazidjatari
90e4711425 Tier2: move random generator from tier0 to tier2
Moved into cryptutils.cpp.
2024-06-01 11:25:58 +02:00
Kawe Mazidjatari
73aff08819 Resource: update RCON cfg files
Reflect recent changes made to the RCON system.
2024-06-01 11:25:57 +02:00
Kawe Mazidjatari
14c0746212 Engine: move rcon_password entirely to server
The client doesn't need this convar, client only needs cl_rcon_address.
2024-06-01 11:25:57 +02:00
Kawe Mazidjatari
cc5eda3a7e Tier1: remove unrelevant comment
No mutex locking should take place here after careful research.
2024-06-01 11:25:57 +02:00
Kawe Mazidjatari
b26ed2f746 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-06-01 11:24:47 +02:00
Kawe Mazidjatari
91d00d0ab3 ImGui: also take vertical scrollbar into account
Show horizontal scrollbar when console text gets overlapped by the vertical scrollbar.
2024-06-01 11:16:47 +02:00
Kawe Mazidjatari
e198980be4 ImGui: fix logger not fading in/out with alpha
m_fadeAlpha should also be applied on the color logger.
2024-06-01 11:16:47 +02:00
Kawe Mazidjatari
001a8db684 NetConsole: fix undefined symbol
CheckCPUforSSE2() was removed in commit 504d042e6095b24e125c7d38549db860b2d15a67, but NetConsole still needs to check for it.
2024-06-01 11:16:47 +02:00
Kawe Mazidjatari
1052401824 ReVPK: fix undefined symbol
CheckCPUforSSE2() was removed in commit 504d042e6095b24e125c7d38549db860b2d15a67, but ReVPK still needs to check for it.
2024-06-01 11:16:46 +02:00
Kawe Mazidjatari
f18829a487 Tier0: split CPU feature checks into multiple functions 2024-06-01 11:16:46 +02:00
Kawe Mazidjatari
7a331284eb RTech: take string pointer alignment into account
There are 2 versions of this function, one requires the string ptr to be aligned by 4.
2024-04-05 18:42:31 +02:00
Kawe Mazidjatari
e0c9f1e57f Miles: fix bug, add bank patch debug logs and add reversed miles types 2024-04-05 18:42:31 +02:00
Kawe Mazidjatari
8f7b86ec8d Windows: improve console init/shutdown error messages 2024-04-05 18:42:31 +02:00
Kawe Mazidjatari
bf5dd318a7 Core: fix several initialization bugs
- Don't free console if the process is being closed from the console, this will cause the process to freeze within the FreeConsole() call
- Properly check for CPU features in order, and moved all checks to a single function utilizing the CPUInformation struct.
- Made SDK_Init() and SDK_Shutdown() more resilient against mistakes with new checks and error messages (added since they are exported now).
2024-04-05 18:42:30 +02:00
Kawe Mazidjatari
b4ad19275f ImGui: fix console scrollbar feedback loop bug
Make use of newly added flag "ImGuiWindowFlags_OverlayHorizontalScrollbar" as per commit 60e4514b7b5c56db89102a3d66ef28a14118b8fd. Also removed flag "ImGuiWindowFlags_AlwaysVerticalScrollbar", only show the vertical scrollbar when its visible. Enabled code that takes the scrollbar into account in function CTextLogger::EnsureCursorVisible().
2024-04-05 18:42:30 +02:00
Kawe Mazidjatari
07ca7e1231 ImGui: add flag to draw scrollbars over content
Custom flags: basically tells ImGui to draw the scrollbar as an overlay. This is useful for working around feedback loops caused by the appearance of the scrollbars (might be worth PR'ing into ImGui itself?)

See:
ocornut/imgui#1720
ocornut/imgui#1730
ocornut/imgui#2978
2024-04-05 18:42:30 +02:00
Kawe Mazidjatari
65eaade807 RTech: disable LiveAPI by default 2024-04-05 18:42:30 +02:00
Kawe Mazidjatari
d1b2fe805f RTech: use SQString's '_stringval' macro for LiveAPI
Light code cleanup, no logic has been modified.
2024-04-05 18:42:30 +02:00
Kawe Mazidjatari
6d8315626e Thirdparty: upgrade ZStd to 1.5.6 2024-04-05 18:42:29 +02:00
Kawe Mazidjatari
ebffccf587 Thirdparty: upgrade RapidJSON to latest
Upgraded to Tencent/rapidjson@5ec44fb920
2024-04-05 18:42:29 +02:00
Kawe Mazidjatari
873e20c121 RTech: implement Nucleus ID hashing for LiveAPI events
The field was supposed to be hashed, added cheap hashing logic and an option to truncate it to reduce overhead.
2024-04-05 18:42:29 +02:00
Kawe Mazidjatari
70c117b6ff Core: remove extraneous define
No longer needed, moved to dbg.h in commit ab0f925205f1b6ccf71cc1efa0ef7298d4493fe6.
2024-04-05 18:42:29 +02:00
Kawe Mazidjatari
9e5b8a541c VScript: map out CSquirrelVM structure more
More reversed fields.
2024-04-05 18:42:29 +02:00
Kawe Mazidjatari
7a24371f64 Tier1: add utlhash
Core SourceSDK type.
2024-04-05 18:40:37 +02:00
Kawe Mazidjatari
250fd504af VScript: properly implement 'sq_getstring' and 'sq_getinteger' + more
sq_getstring and sq_getinteger are now properly implemented (code matches squirrel code, and generated assembly matches that of the game). Adjusted call sites to accommodate the new implementation and added a few extra checks. Also added:
* sq_getfloat
* sq_getbool
* sq_getthread
2024-04-05 18:40:37 +02:00
Kawe Mazidjatari
ce64cc57a0 Server: fix NavMesh hotswap crash + add codecallbacks
Fix double destruction (calling delete instead of free, the 'v_Detour_FreeNavMesh' call is the destructor, but we don't have the destructor fully rebuilt yet in the SDK). Also added codecallbacks for scripts.
2024-04-05 18:40:36 +02:00
Kawe Mazidjatari
564efaf394 Recast: reverse some fields 2024-04-05 18:40:36 +02:00
Kawe Mazidjatari
4745bf5e8e VScript: add code for calling codecallbacks 2024-04-05 18:40:36 +02:00
Kawe Mazidjatari
92edc4a252 RTech: improve LiveAPI error msg's 2024-04-05 18:40:36 +02:00
Kawe Mazidjatari
1e8dd63e4c Tier0: move GetUnixTimeStamp() to utility code 2024-04-05 18:40:36 +02:00
Kawe Mazidjatari
d1498240eb Protobuf: change space indentation
Use 4 space indentation instead of 1 when using the newline/space option.
2024-04-05 18:40:36 +02:00
Kawe Mazidjatari
d853846189 Protobuf: don't wrap uint64/sint64 numbers in quote
Technically this is to support JavaScript as it supports up to 53 bits precision, but we want to stick to the same scheme RapidJSON is using.
2024-04-05 18:40:36 +02:00
Kawe Mazidjatari
a26e51ae00 Tier0: fix pattern precaching
Fix taken from IcePixelx/silver-bun@e11bfb7fa7

We should migrate to the new header only implementation once there's more time to mifrate the code + testing it.
2024-04-05 18:40:36 +02:00