marauder2k7
bad9d9b188
final cleanup and fixes
...
move the geo collection into each tile, seems to work better for large levels
add true to getnav in aiconver so it overwrites all goals
cache the triareas so we can use a tool later to modify them
2025-07-28 20:26:31 +01:00
marauder2k7
3946017556
add follow logic
...
select follow target and toggle follow for a specific object. Only way to unfollow is to move the following bot to an arbitrary location
2025-07-27 17:25:09 +01:00
marauder2k7
f730d0bf1c
added spawning
...
Tile test tool now spawns classes and data
Test avoidance added to aicontroller and ainavigation
2025-07-27 12:43:19 +01:00
marauder2k7
6d36e17d91
added navmesh tester tool
...
Added ground work for tester tool
tester tool works but needs to fill out list of acceptable datablocks and spawnclasses
navpaths now share 1 navmeshquery
AIControllerData now has a vector of area costs for different polyareas
General cleanup
2025-07-26 10:34:19 +01:00
AzaezelX
63e3632d00
expand setMoveTrigger to take true or false
...
have aiplayer actually use it
give a copy to AIController
2025-06-22 16:04:13 -05:00
AzaezelX
e489e0cd18
go ahead and allow follow without needing a navmesh
2025-04-28 16:01:24 -05:00
AzaezelX
f278150185
TORQUE_NAVIGATION_ENABLED filtering
2025-04-28 14:31:27 -05:00
AzaezelX
7ed3f11c8e
might as well go ahead and allow substitution statement support
2025-04-28 00:26:45 -05:00
AzaezelX
b643aa41a2
take flight floor and ceiling into account for yaw too
...
ditch roll compensation as it was causing more problems than it was solving
2025-04-26 21:04:06 -05:00
AzaezelX
b2021caa6d
skip sidestepping off a cliff raycast if we're not sidestepping
...
take current velocity into account for vehicles since some degree of momentum will be maintained
2025-04-25 20:36:22 -05:00
AzaezelX
675bdfe6b3
fix pack/unpack data for AIControllerData's (though we still send nothing, we do need to mark it clientside as false)
...
more pitchwork for flying vehicle drivers
when flocking is irrelevant just path to next node
2025-04-25 18:50:16 -05:00
AzaezelX
6efb3843f6
scale flyingvehicle ai pitch by the amount yaw forces it to roll
2025-04-23 16:25:35 -05:00
AzaezelX
c1d32a9fd6
more cleanups and standardizations
2025-04-23 00:05:57 -05:00
AzaezelX
d8ea8803c3
simplify calcs by leveraging pre-existing matrix methods and dot product properties
2025-04-22 22:06:32 -05:00
AzaezelX
71b8046bb1
shift mode stop and stuck below modeslowing so we can just do basic math filtering
...
fix a few bits of eroneous sidestepping attempts by flying and wheeled vehicles.
more work on flyingvehicle resolvepitch and resolvespeed
2025-04-22 00:34:32 -05:00
AzaezelX
584093f48d
aiInfo getPosition now optionally takes a doCastray bool (off by default)
...
AIFlyingVehicleControllerData add flightfloor and cieling
resolvepitch from (portions of) the old aiflyingvehicle resource
no reversing for flyingvehicles, so bottom out resolvespeed at 0
2025-04-21 19:13:31 -05:00
AzaezelX
6200a6f1fb
add a calibrateable mHeightTolerance
...
for players this defaults to 0.001, for wheeledvehicles, 2.0, and for flyingvehicles, 200
fix naveditor cript not looking up the object.datablock.aicontrollerdata
fix AIWheeledVehicleControllerData not binding the relevant ::resolvespeed
also the relevant ::resolvespeed now lowers the throttle post-turning
add AIFlyingVehicleControllerData
2025-04-21 14:58:11 -05:00
AzaezelX
fdb64b15a8
stop spamming the console with callack status
2025-04-20 21:41:04 -05:00
AzaezelX
b864908efd
clean up a few stray bits
2025-04-19 07:10:18 -05:00
AzaezelX
a609917cee
put the flocking protocol ion the repath command itself with a high weight so it prioritizes avoidance vs straight following
2025-04-19 06:37:28 -05:00
AzaezelX
3210325f3f
elevated mAicontroller to shapebase
...
aiwheeleedveiclecontrollerdata resolvespeed now only touches throttle
objects assigned aicontrollers now reflect that by thier objecttype
basic flocking
2025-04-19 04:25:36 -05:00
AzaezelX
d36cf31707
more safeties. simplified reverse steering calc
2025-04-18 18:27:39 -05:00
AzaezelX
712404c9b4
hook up Vehicle's getAIMove(Move*);
...
list aiControllerData's in the datablock. though the command is still required to set the controler and look up the relevant db for game specific logic
2025-04-18 12:28:49 -05:00
AzaezelX
2d0bcbcf8d
behavioural change: feeding an AInfo an object with a 0 radius causes the class to fill in radius from that objects bounds box
...
also, vehicle direct hooks
2025-04-18 11:36:27 -05:00
AzaezelX
78a26b0108
expose a getThrottle for vehicles. save some calcs in AIWheeledVehicleControllerData
...
deletion cleanups
2025-04-18 11:00:13 -05:00
AzaezelX
2d5e8c1560
make steerstate for AIWheeledVehicleControllerData's self contained
...
variable raylength for the rpath filter. same 0.001 for players to stop recalculating a path when jumping, but bump anything they're mounted to to a 2 unit check
bit of work towards parallel parking. or at least not ending up arcing back and forth infinitely in an arc
2025-04-17 23:31:30 -05:00
AzaezelX
1fad2c7372
AIWheeledVehicleControllerData wipwork
2025-04-17 20:01:36 -05:00
AzaezelX
32f9917ed2
aicontroller:
...
in order to call derivatives of AIControllerData datablocks *without* requiring an accompanying AIController subclass as well, leverage the fastdelegate system for our resolver callbacks
additionally, don't try and repath in mid air
aigoal: initialize inange/infirinrange to false. use those to filter callbacks
2025-04-17 17:55:38 -05:00
AzaezelX
f84bf058c9
navigation: setPathdestination now takes a replace bool to preserve the goal
...
also killed a few now extraneous clearfollow calls
2025-04-17 17:51:31 -05:00
AzaezelX
c72c3068f8
aiinfo subclass inheritance cleanups, and default constructor removals for safeties
2025-04-17 14:38:27 -05:00
AzaezelX
4f87ad4cf7
moar gaol tracking cleanups
2025-04-17 12:27:05 -05:00
AzaezelX
2956223a60
simplify setpathdestination loop
2025-04-17 11:39:06 -05:00
AzaezelX
83822f1148
fix eroneous defaults
2025-04-17 11:38:21 -05:00
AzaezelX
25b3a7c070
break wether we *should* be trying to move out of the resolver
2025-04-17 10:50:58 -05:00
AzaezelX
eaa6a62b0c
misc cleanups
2025-04-17 10:38:36 -05:00
AzaezelX
a10169accf
fix node following stopping early
2025-04-17 09:44:04 -05:00
AzaezelX
4fb92f02a3
completed list of roughly ported over scripthooks.
...
todo: need to figure out why followobject is only hitting the first path node. likely amixup with goal handling
2025-04-17 01:27:08 -05:00
AzaezelX
e37ae27bc0
fix aim safeties to actually be safe, add an explicit clearAim script command
2025-04-16 17:58:30 -05:00
AzaezelX
14a03dfc6c
if you've stopped moving on purpose, you're not stuck
2025-04-16 17:40:53 -05:00
AzaezelX
f3ef698e89
getmovedestination, set/get speed, targetting script commands
...
todo: need to see why getAIController().setAimLocation("10 10 0"); seems to get into an onreachdestination+stuck callback loop
2025-04-16 17:27:26 -05:00
AzaezelX
f00b8e1ae0
toEuler. n ot getforwardvector
2025-04-15 18:23:12 -05:00
AzaezelX
2fe36a571b
setaicontroller: use Ids
...
get rid of duplicated mMoveDestination
2025-04-15 18:01:18 -05:00
AzaezelX
201b7bf695
aiController.setMoveDestination test
2025-04-15 17:00:36 -05:00
AzaezelX
19e73c0be2
expose the AIPlayerControllerData subtype to console
2025-04-15 15:34:58 -05:00
AzaezelX
8c663a19a5
generalized ai subsystem wipwork
2025-04-15 15:12:27 -05:00