4011 Commits

Author SHA1 Message Date
Kawe Mazidjatari
6c56965cd1 Client: reverse last unknown method in IClientEntityList
Same as IClientEntityList::GetClientEntity, but instead, calls IClientUnknown::GetBaseEntity().
2024-07-30 01:23:46 +02:00
Kawe Mazidjatari
979e9410b6 Client: fix IClientEntityList interface
Some methods had missing parameters, and this interface expects CBaseHandle being passed in as a reference, which explains why GetClientEntityFromHandle() didn't work properly in the past.
2024-07-30 01:17:14 +02:00
Kawe Mazidjatari
a9c6a5e733 Game: properly setup interface classes
Member m_RefEHandle is always at offset 8 for Server and Client BaseEntity class. The onyl way to achieve this is to put this into the IHandleEntity interface, as otherwise it will be placed after the interface pointers in C_BaseEntity for client. This also eliminates the need of padding at the beginning of both the server and client's version of the BaseEntity class. The IClientEntity interface has also been properly reversed and applied to the SDK now, the unknown vftable entries have now been identified correctly and moved to IClientUnknown .
2024-07-30 01:12:35 +02:00
Kawe Mazidjatari
f6bb588ef4 Client: remove duplicate class definiton
It was moved to shared game code.
2024-07-30 01:09:23 +02:00
Kawe Mazidjatari
3a2d0bb31a Mathlib: fix formatting errors
Fix some small formatting errors, no logic was changed.
2024-07-29 21:19:57 +02:00
Kawe Mazidjatari
6fc6a6706f Mathlib: fix corrupted character in comment 2024-07-29 21:10:38 +02:00
Kawe Mazidjatari
7eb6017c16 Core: update copyright notice headers
Fix corrupted copyright symbol.
2024-07-29 21:09:55 +02:00
Kawe Mazidjatari
e8cefb64c3 Client: add client-side base entity classes
Some shared data that was misplaced in server headers have been moved to shared.
2024-07-29 21:01:26 +02:00
Kawe Mazidjatari
ceeaddb2e1 InputSystem: change mutex types
Use SDK's CThreadMutex, which is the actual underlying mutex type used for this class.
2024-07-29 19:26:36 +02:00
Kawe Mazidjatari
8c3daa4fe6 Client: add ALC per-optic scalar helper functions and cvars 2024-07-29 19:23:33 +02:00
Kawe Mazidjatari
1be76bd0c4 InputSystem: add reverse engineered CInput class
Reverse engineered classes that will be required to implement per-optic ALC scalars in-game.
2024-07-29 19:22:00 +02:00
Kawe Mazidjatari
f694269072 Server: properly implement NavMesh hotswap
The hotswap feature is now fully functional and no longer crashes the game. The NavMesh query states had to be reset.
2024-07-29 12:32:49 +02:00
Kawe Mazidjatari
fb1d1ba2e2 Server: add several getters and setters for AI classes 2024-07-29 12:17:09 +02:00
Kawe Mazidjatari
8af73a20ef Server: add getter for AI hull navmesh type 2024-07-29 12:16:37 +02:00
Kawe Mazidjatari
30185cbc59 Server: add AI manager class and pointer to SDK
Allows going over each AI from within the SDK.
2024-07-29 11:32:25 +02:00
Kawe Mazidjatari
f5cd8e99e0 Tier0: implement CThreadMutex 2024-07-29 11:23:00 +02:00
Kawe Mazidjatari
824536f7b4 Server: add CAI_ScheduleBits and apply to class members 2024-07-29 10:28:51 +02:00
Kawe Mazidjatari
816589d872 Server: set correct enum types for AI class members 2024-07-29 10:23:08 +02:00
Kawe Mazidjatari
f9e115c610 Server: update navigation types 2024-07-29 10:22:09 +02:00
Kawe Mazidjatari
6203bbddbe Recast: add missing straight path types
Should've been part of commit 47aee3125d9371a82a090638f3f5a962fe9971ac
2024-07-28 22:45:10 +02:00
Kawe Mazidjatari
5c4a66f5b5 Server: add AI task debug code
Reimplement CAI_BaseNPC::TaskFail.
2024-07-28 22:36:05 +02:00
Kawe Mazidjatari
47aee3125d Server: add reverse engineered BaseNPC (AI) classes
Will be used for debug code and proper navmesh hotswaps.
2024-07-28 16:42:04 +02:00
Kawe Mazidjatari
628a4471ea Recast: fix incorrect assignment of half extents (XZY -> XYZ) 2024-07-28 08:58:10 +02:00
Amos
9dcb1dd86c Recast: move navmesh loading logic into single function
Make sure tools are always initialized properly whenever a navmesh is loaded.
2024-07-26 01:22:56 +02:00
Amos
af2159a523 Recast: fix incorrect member order in dtOffMeshConnection
hintIdx should be before userId, see r5apex_ds + F1267D.
2024-07-26 00:28:13 +02:00
Amos
d669d18a86 Recast: add missing mset version directive
Not for MSET < 7.
2024-07-26 00:25:10 +02:00
Amos
034c0f07d4 Recast: fix navmesh query crash regression
Caused in commit ce4d4aa59831fbb6a2b7c32820561b321484dc56. Need to properly free and set the navmesh pointer.
2024-07-24 23:53:14 +02:00
Amos
73d0e81983 Recast: update development code
Used for debugging an unknown array.
2024-07-24 23:40:21 +02:00
Amos
c7adefa56c Recast: update poly area's for MSET >= 7
These should be the poly area enumerants for MSET version 7 or higher.
2024-07-24 23:39:39 +02:00
Amos
ce4d4aa598 Recast: add ability to load navmesh from file. 2024-07-24 22:03:09 +02:00
Amos
ebfc4ec091 Recast: implement polygon cell generation algorithm
Fully generates polygon cells for the entire navmesh. Previously we never build this which caused ai to clip into, or walk into each other in-game (this system is an MSET 8 feature).
2024-07-24 11:30:00 +02:00
Amos
0269882bea Recast: temporarily comment out development code 2024-07-24 11:21:37 +02:00
Amos
2a45ced5f4 Recast: fix compile error caused by missed version checks 2024-07-24 10:26:41 +02:00
Amos
1c637230d5 Recast: fix comment 2024-07-24 10:25:35 +02:00
Amos
aba31e5a75 Recast: add notes to duplicate functions 2024-07-24 10:25:24 +02:00
Amos
50d3e1dc32 Game: fix compile error
Caused by making dtNavMesh fields private.
2024-07-24 10:24:58 +02:00
Amos
99db511930 Recast: add option to draw tile cells
MSET 8 or higher only.
2024-07-22 18:49:12 +02:00
Amos
49a0ceb148 Recast: initial implementation of multi-set support
Allow to compile the editor for separate versions of the navmesh set. NavMesh cells are now also partially reversed and properly read out. Creating and writing them will happen in the future.
2024-07-22 18:48:41 +02:00
Amos
38223fb6f3 Recast: properly skip over intermediate poly data
Needs to be multiplied by sizeof(int).
2024-07-21 23:23:48 +02:00
Amos
bff3bfd5ea Recast: add missing prefix to utility function
Needs to be prefixed with 'dt' for consistency and to avoid cluttering the global namespace.
2024-07-21 22:27:55 +02:00
Amos
79cbf2e1dd Recast: move file types to main header
Need to be available to everything.
2024-07-21 21:46:22 +02:00
Kawe Mazidjatari
b56649facb Recast: add some debug drawing for unknown dtOffMeshLink field 2024-07-19 01:09:15 +02:00
Kawe Mazidjatari
7d5c07b2e7 Recast: fix compiler warning and floor value
Value of dtCalcLinkDistance has to be floored to match Titanfall 2 values.
2024-07-19 00:01:11 +02:00
Kawe Mazidjatari
e57e85b88a Recast: initial implementation of jump links for off-mesh links
These should set them up properly in theory. Needs testing.
2024-07-18 23:58:39 +02:00
Kawe Mazidjatari
f170e2b6f3 Recast: remove all duplicate epsilon definitions
Make a constant in the math library.
2024-07-18 19:00:53 +02:00
Kawe Mazidjatari
5ec7862b71 Recast: more missed XZY -> XYZ changes 2024-07-18 18:06:34 +02:00
Kawe Mazidjatari
98a8898a43 Recast: fix bug in dtNavMesh::findNearestPolyInTile (XZY -> XYZ)
Hight should always be on the Z axis.
2024-07-18 17:05:08 +02:00
Kawe Mazidjatari
740c593197 Recast: setup off-mesh connections properly (WIP)
Titanfall navmeshes have the dtOffMeshConnection::userId field changed from unsigned into to unsigned short, and the lower half seems to be used for the jump types and (possibly) some flag. Work in progress implementation of the jump system on off-mesh links.
2024-07-18 17:00:31 +02:00
Kawe Mazidjatari
193ec6aec7 Recast: fix compile error
Should've been pushed with commit fce53b6eed985a323846dff7dbcbd0b67cae7928
2024-07-18 15:56:36 +02:00
Kawe Mazidjatari
fce53b6eed Recast: update dtLink variable names and assignments
Light cleanup and added new names and documentation of what's currently know.
2024-07-18 15:49:51 +02:00