Commit Graph
1688 Commits
Author SHA1 Message Date
smallmodel e74651f548 Fix incorrectly converted extents 2025-06-15 20:46:36 +02:00
smallmodel 377dfb618b Add helper functions to convert extents 2025-06-15 20:12:04 +02:00
smallmodel e5f645ec0c Don't use cylinder trace
Cylinder causes some issues with terrain where some points would get created below a terrain patch
2025-06-15 18:06:05 +02:00
smallmodel 7fe8a90e8a Use a better cost for jumping, falling and ladders 2025-06-15 18:00:48 +02:00
smallmodel 70a9a61f93 Use a different color depending on the poly area 2025-06-15 18:00:27 +02:00
smallmodel d87b97256b Add cost for different types of area
This makes it so special paths, like jump, have an higher cost
2025-06-15 01:26:17 +02:00
smallmodel 6e64526167 Fix sketchy ladder positioning 2025-06-15 00:12:02 +02:00
smallmodel 9b563eef75 Close the door if reopening on the other side fails 2025-06-14 21:57:30 +02:00
smallmodel b98dcd8a53 Use the spawn delegate 2025-06-14 21:33:34 +02:00
smallmodel ccb4b801bf Add a code delegate for spawn 2025-06-14 21:31:00 +02:00
smallmodel e43ade976b Prevent switching teams and primary weapon in single-player 2025-06-13 00:41:25 +02:00
smallmodel 774c9d1853 Don't spawn bots in single-player 2025-06-13 00:24:31 +02:00
smallmodel be6d2a05d2 Set a new session when the game type changes 2025-06-13 00:23:49 +02:00
smallmodel ca9455bea1 Clear game variables when loading persistent archive 2025-06-10 16:21:05 +02:00
smallmodel 77bcd6d258 Use a 4-byte little-endian number for the raw saved data length (#749) 2025-06-10 16:14:23 +02:00
smallmodel ba3e68adc5 Make the trace functions properly match with the original game 2025-06-08 23:48:17 +02:00
1337Smithy 1dc0dcc3cd Lower deployed portable turrets so they don't float in the air (#746) 2025-06-08 17:51:28 +02:00
smallmodel 9ec3c68d64 Add file functions that uses the engine file API (#740)
This provides a safer and more secure alternative to the standard C file API.
2025-06-07 23:54:31 +02:00
smallmodel 56db5a1845 Properly initialize the client's enter time regardless of intermission 2025-06-06 21:26:25 +02:00
smallmodel e152eba8fc Fix jump points being made at incorrect locations
This fixes bots not jumping correctly on Verschneit
2025-06-06 20:51:49 +02:00
smallmodel 9663b38c62 Check if crowd is valid before updating 2025-06-06 20:37:31 +02:00
smallmodel 64cbcd023e Clear pending weapon commands when a new one arrives 2025-06-05 23:40:52 +02:00
smallmodel 33cfc2cbf8 Fix projectiles with no owner getting removed when a player joins a team (#735) 2025-06-05 21:00:20 +02:00
smallmodel 4b486e4a90 Make the barrel also get exploded by landmine and not bash 2025-06-05 00:35:32 +02:00
1337Smithyandsmallmodel b4c96cc543 Prevent barrel leaks when bashed with a weapon (#733)
---------

Signed-off-by: smallmodel <15067410+smallmodel@users.noreply.github.com>
Co-authored-by: smallmodel <15067410+smallmodel@users.noreply.github.com>
2025-06-05 00:00:41 +02:00
smallmodel 1e27efd7af Set the minimum z bound back to 1 when checking for telefrag
Some mods block spawns by spawning a tiny solid object, this slight modification made these mods not work properly
2025-06-04 22:36:22 +02:00
smallmodel 12d5849e25 Use isValidPolyRef instead of calling passFilter()
passFilter() is currently defined as an inline function and can't be called properly outside its cpp file
2025-06-04 20:59:21 +02:00
smallmodel 34c80df5ae Add basic support for obstacles in Recast
- Obstacles with a radius smaller than 100 units (sphere) will be ignored
- An obstacle that would cover polygons more than twice the radius of the obstacle will be ignored

Currently, this only works for big obstacles that affect small areas
2025-06-04 03:20:14 +02:00
smallmodel 62a52c8974 Set agent max height to the character Z bounding box 2025-06-04 01:10:18 +02:00
smallmodel 6af295ebcb Add a getter to retrieve the player's user info 2025-06-03 19:36:36 +02:00
smallmodel d7ed1c8530 Add a script function to get the value of a key given an info string 2025-06-03 19:36:33 +02:00
1337Smithyandsmallmodel 2c0e913e86 Lower the animation sync rate for non-german actors on Spearhead and Breakthrough (#730)
---------

Signed-off-by: smallmodel <15067410+smallmodel@users.noreply.github.com>
Co-authored-by: smallmodel <15067410+smallmodel@users.noreply.github.com>
2025-06-03 00:43:01 +02:00
smallmodel c2ed93e92b TouchField doesn't wait by default 2025-06-02 14:01:22 +02:00
smallmodel c144c345c5 Clear actor state functions that shouldn't be used
Functions like RestartState causes specific states like curious to repeat when it shouldn't (AI misbehaving)
2025-06-02 13:47:24 +02:00
smallmodel a20a1facb0 Add missing UpdateFog() call 2025-06-02 13:15:34 +02:00
smallmodel 45205c1906 Fix MoveTo() using actor's origin instead of waypoint origin
MoveTo() was incorrectly setting the script goal to the actor's origin rather than the waypoint's origin, causing the actor to stand still instead of moving to the specified location.
2025-06-02 01:55:00 +02:00
smallmodel 13762a05b8 Don't pass curious conditions if actor has no curiosity 2025-06-02 01:44:12 +02:00
smallmodel 2c42499788 Fix CuriousSound probability 2025-06-02 01:43:38 +02:00
smallmodel b0c111170e Correctly check if a squadmate is in line of fire (#728)
This fixes actors incorrectly not shooting in Spearhead/Breakthrough when squadmates are next to each other.
2025-06-01 15:41:57 +02:00
smallmodel cf06a395de Properly initialize a client when reusing an entity
This fixes an issue where, if a client rejoins after losing connection, the scoreboard would temporarily display the name of client 0 before spawning.
2025-06-01 01:11:05 +02:00
smallmodel 023770f63e Use the entity number rather than the client's clientNum
The number must match the entity number parameter used in G_GetEntity().
This fixes a crash caused by gclient struct being reset when a client reconnects to the same player slot
2025-06-01 00:35:38 +02:00
smallmodel 95dff2536b Add contextual print feature (#727)
Add metadata to client-specific messages such as text and join events.
Can be disabled via `sv_logContext 0`.
2025-05-31 22:31:36 +02:00
smallmodel 7ce1eda3a7 Print to each client individually rather than broadcasting
This prevents spamming the logfile constantly with a bunch of messages that are not relevant
2025-05-31 18:45:23 +02:00
smallmodel 96e4b26635 Fix ip field being wrong 2025-05-31 18:43:25 +02:00
smallmodel 525f75a1a7 Don't filter terrain patches
In the terrain tessellation code, patches sometimes rely on neighbors, which if are hidden can issues with invalid tri. Collision doesn't rely on shader contents anyway
2025-05-30 23:21:02 +02:00
smallmodel 44d745d534 Fix vertreg not freed 2025-05-30 13:23:55 +02:00
smallmodel ee287ce00b Correctly unpack and filter out terrain patches that aren't used
This was causing uninitialized terrain patches to be used if they have an invalid content
2025-05-29 20:30:01 +02:00
smallmodel 3c4f361c7a Fix typo 2025-05-29 12:57:36 +02:00
smallmodel a4391bc320 Implement Recast-based navigation system (#726)
- Paths are generated automatically during map loading, for any map
- Bots can take path that requires climbing ladders (can climb ladders)
- Bots can take path that requires jump (like the ledge on Stalingrad)
- Bots will try to avoid obstacles in front of them by navigating on the
side

The old navigation system with pathnodes can still be used with `g_navigation_legacy
1`
2025-05-29 12:22:27 +02:00
smallmodel 8bbebe9dea Send the print command to each client instead of broadcasting
This prevents spamming the server console/logfile with print messages
2025-05-25 02:38:08 +02:00