1209 Commits

Author SHA1 Message Date
Kawe Mazidjatari
418bd2d679 Improve NavMesh poly blue tone color 2022-08-04 15:41:45 +02:00
Kawe Mazidjatari
d89967a5c2 Switch between -windowed and -fullscreen properly in launcher
Checking/Unchecking will now switch between them properly.
-forceborder does not work and the issue resides in the engine itself (it does the same bitshift operation as -windowed for some reason).
2022-08-04 12:56:05 +02:00
Kawe Mazidjatari
dec7cc0fa5 Fix max_players showing incorrect max_player count
Moved m_nMaxMilesAudioQueues in CGlobalVarsBase behind m_nMaxClients.
m_nMaxClients and m_nGameMode align correctly now, including the mapname and mapversion in CGlobalVars
2022-08-04 12:44:00 +02:00
Kawe Mazidjatari
68b3185a41 Use ssize_t for size types in CUtlMemory 2022-08-04 11:51:38 +02:00
Kawe Mazidjatari
6d92fdf15f Use game's global malloc singleton for allocating/reallocating memory in CUtlMemory
This ensures anything we create in the SDK will be usable within the game engine (Realloc, Free, GetSize, etc..), as we share the global singleton.
2022-08-04 11:33:40 +02:00
Kawe Mazidjatari
238e145818 Implement ConVar change callbacks
CUtlVector containing callbacks (you can have several callbacks for each ConVar).

also, in 'ConVar::InternalSetValue' Valve and Respawn run V_atod (atof) on function param 'pszValue', but they also check if input param 'pszValue' is a nullptr (which in this case, 'pszNewValue' gets set to an empty string), but yet they deref 'pszValue' (nullptr or not) in 'SetColorFromString' and V_atod, is this correct behavior?

For now I swapped these out with 'pszNewValue' for the very rare event the string happens to be nullptr.
2022-08-04 11:06:56 +02:00
Kawe Mazidjatari
babbcbe6d5 Add CStdMemAlloc::GetSize() to SDK
Returns the size of the buffer allocated with MemAllocSingleton()->Alloc() etc.
2022-08-04 02:02:09 +02:00
Kawe Mazidjatari
20d1fabd0c Implement CUtlMemory, CUtlBlockMemory and CUtlVector
CUtlMemory has been modified to fit the size of the in-engine structure.
The new types seem to be either int64 or unsigned (size_t?).
2022-08-04 01:28:07 +02:00
Kawe Mazidjatari
0fe554b3d1 Fix crash cases when setting ConVar string using SetValue
Added IsMaterialThreadSetAllowed and QueueMaterialThreadSetValue checks.
2022-08-04 00:21:48 +02:00
Kawe Mazidjatari
9ba5e63ada Add max size bounds for PayLoadLen when setting size of m_RecvBuffer
Should technically never fail, but in case it does it won't crash the application.
2022-08-03 18:41:25 +02:00
Kawe Mazidjatari
3f8476db88 Logging system light refactor
* Use responceid from server to determine in which context to log.
* Moved all script loggers from combined enums to minus instead (SERVER = -3, CLIENT = -2, UI = -1 SERVER_CODE = 0, etc), this makes it much easier to align stuff in combined systems such as the RUI logger or NetMsg().
* Color log networked RCON messages properly on the client.
* Added dedicated logger for all received RCON messages (net_console.log).
* Log commands submitted through in-game console (allows for easier debugging when going through log files).
2022-08-03 18:34:44 +02:00
Kawe Mazidjatari
19d057fc5e Add 'bhit_enable' ConVar and only run bhit callback if set 2022-08-03 18:27:25 +02:00
Kawe Mazidjatari
5bd6432862 Additional RCON system cleanup 2022-08-03 09:32:48 +02:00
Kawe Mazidjatari
9775fc4bba RCON system overhaul
* Implemented robust length-prefix framing logic for non-blocking sockets (previously used character sequences to determine length, but you cannot use character sequences on protocol buffers as its binary data. This logic should fix all problems regarding some commands not getting networked properly to the server and stuff not getting printed on the client).
* Increased buffer size to std::vector::max_size when netconsole is authenticated (MAX_NETCONSOLE_INPUT_LEN still remains enforced on accepted but not authenticated connections to prevent attackers from crashing the server).
* Process max 1024 bytes each recv buffer iteration.
* Additional optimizations and cleanup.
2022-08-02 23:58:43 +02:00
Kawe Mazidjatari
5795d15c83 Netconsole and ConVar improvements
Implemented StringSplit() (split string with a delimiter, and stop splitting after either the last delimiter has been reached, or nMax, so when nMax is 2, then 'SET mat_sky_color 255 255 0 255' gets split into: "SET" "mat_sky_color" "255 255 0 255").

Netconsole now sends ConVar's/ConCommands and values separately with use of StringSplit.

ConVar now uses internal ChangeStringValue (this runs the callback).
2022-07-31 17:07:35 +02:00
Kawe Mazidjatari
7730d72416 Use proper flags for 'bhit' 2022-07-30 00:57:32 +02:00
Kawe Mazidjatari
85a91d4307 'BHit_f' Cleanup 2022-07-30 00:55:28 +02:00
Kawe Mazidjatari
068e50ea40 'bhit' command implementation
The command is only implemented on the dedicated server or debug servers, so i cannot tell for sure what exactly 'bhit' does. But its either some form of telemetry or debug.
The command sends the player index that got hit on the prediction engine, the bullet fire origin and the angles relative to the target that got hit.
For now the command draws the bullet trajectory if it hits a player.
This commit also fixes the 'Unknown command: bhit' message.
2022-07-30 00:54:33 +02:00
Kawe Mazidjatari
fcc409cfcb Add icliententitylist.h to ClientSDK project 2022-07-30 00:44:13 +02:00
Kawe Mazidjatari
55c5048951 Fix compile error 2022-07-30 00:43:40 +02:00
Kawe Mazidjatari
83236940fa Update max worldsize coords
MAX_COORD has been increased significantly in this engine.
Not sure yet if the rest stayed the same.
2022-07-29 17:43:24 +02:00
Kawe Mazidjatari
2206c24683 Add worldsize.h 2022-07-29 17:41:50 +02:00
Kawe Mazidjatari
9556b05209 CCommand improvements
Add constructor and work-in-progress tokenizer.
2022-07-29 17:30:05 +02:00
Kawe Mazidjatari
f3555104a2 Improve server browser button alignment 2022-07-28 17:41:13 +02:00
Kawe Mazidjatari
05f2888716 fix error log 2022-07-28 15:51:34 +02:00
Kawe Mazidjatari
9eeaebaf6a Even More XZY->XYZ changes 2022-07-28 15:45:02 +02:00
Kawe Mazidjatari
cbaf10478a More XZY->XYZ changes
* dtIntersectSegSeg2D: Calculate over zy-plane instead.
* dtOverlapPolyPoly2D: Calculate over zy-plane instead.
* dtNavMeshQuery::findRandomPoint: z = h.
* dtNavMeshQuery::raycast: Invert hit normals.
* Update all comments to use xyz vector instead (previously xzy (xz-plane z-height)).
2022-07-28 14:24:29 +02:00
Kawe Mazidjatari
c7d61e8b77 Switch neighborhood deltas 2022-07-28 12:49:42 +02:00
Kawe Mazidjatari
0f8f1a4860 Increase smooth path step size and slop
This increases the size of the path lines (this had to be increased due to the scale of the maps in this engine, recast was originally not scaled for it).
2022-07-28 12:34:20 +02:00
Kawe Mazidjatari
4ada4cef72 NavMeshTesterTool XZY->XYZ 2022-07-28 12:14:35 +02:00
Kawe Mazidjatari
34076142ba More XZY->XYZ changes 2022-07-28 03:21:20 +02:00
Kawe Mazidjatari
ce28ea2691 Even more offMeshConnections debug draw fixes 2022-07-28 02:07:13 +02:00
Kawe Mazidjatari
8af97beb57 Fix offMeshConnections debug draw 2022-07-28 01:48:17 +02:00
Kawe Mazidjatari
6a1b6c580a Increase debug arow size 2022-07-28 00:52:12 +02:00
Kawe Mazidjatari
37637bc56a Properly fix cylinder, circle and arrow debug draw for Recast. 2022-07-28 00:41:47 +02:00
Kawe Mazidjatari
f0eecc80ff Flip vertex order for convex hull properly 2022-07-27 21:13:36 +02:00
Kawe Mazidjatari
87a42efd72 Uncomment and fix crowd anticipate turn debug draw
Moved internal functions to their own translation unit.
2022-07-27 21:05:27 +02:00
Kawe Mazidjatari
88a29f2770 Improve crowd speed/acceleration/braking
Changed to values comparable to game.
Added sliders for acceleration and speed.
2022-07-27 20:08:17 +02:00
Kawe Mazidjatari
03698a4a5f Fix DetourCrowd
XZY -> XYZ.
Crowd agents now traverse over the poly surfaces properly.
2022-07-27 17:48:51 +02:00
Kawe Mazidjatari
6d4b2ea7ef Increase convex volume alpha and height 2022-07-27 15:12:47 +02:00
Kawe Mazidjatari
677d993403 Draw ground convex points red as well 2022-07-27 14:56:11 +02:00
Kawe Mazidjatari
369c92e358 Improve convex volume creation/drawing
* Improved ground convex visibility (changed to red as this acts as deletion).
* Default m_areaType to SAMPLE_POLYAREA_GROUND.
2022-07-27 14:44:42 +02:00
Kawe Mazidjatari
0576749de0 Use transparent area color for polymesh debug draw 2022-07-27 14:30:30 +02:00
Kawe Mazidjatari
c16d87ebc5 Fix more Recast & Detour debug drawing
* XZY -> XYZ.
2022-07-27 14:29:54 +02:00
Kawe Mazidjatari
4c8027b319 Fix duDebugDrawHeightfieldLayer and RecastDebugDraw cleanup 2022-07-27 12:38:02 +02:00
Kawe Mazidjatari
df99664d2a Working Recast convex hull 2022-07-27 11:11:41 +02:00
Kawe Mazidjatari
da77600baa More XZY->XYZ places 2022-07-27 10:58:54 +02:00
Kawe Mazidjatari
92ecdcf698 Increase default height for NavMesh convex hulls 2022-07-27 10:53:57 +02:00
Kawe Mazidjatari
8757d0a43f NavMesh convex volume drawing somewhat working 2022-07-27 03:50:11 +02:00
Kawe Mazidjatari
ba97662c99 Recast editor cleanup and improvements
* Removed Samples button and dialogue.
* Removed SoloMesh.
* Removed TempObstacles.
* Limit 'Verts Per Poly' to 6 (DT_VERTS_PER_POLYGON).
* Moved hulldef constant and handler to TileMesh.
* Set m_tileSize based on hull (small = 32, med_short = 32, medium = 32, large = 64, extra_large = 64).
2022-07-26 15:45:40 +02:00