ζeh Matt
18f16eac4c
Refactor DetourNavigator to pass prng along, use world prng for AiWander
2022-05-17 20:37:15 +03:00
ζeh Matt
c3d02492df
Cleanup stopMovement
2022-03-29 19:49:02 +03:00
ζeh Matt
8103ff2e6f
Make the CI happy
2022-03-21 17:49:42 +02:00
ζeh Matt
08fae7be6e
Pass the prng from world where appropriate
2022-03-21 17:49:42 +02:00
elsid
595c2e0a8e
Use unique_ptr to manage AiPackage lifetime
2022-02-23 00:39:30 +01:00
Bret Curtis
d1fb854521
move most of the files from esm to esm3, keep common code in esm; this is make space for a future with esm4
...
esm typo
esm typo
2022-01-23 17:04:48 +01:00
Evil Eye
231da19aa4
Load repeat flag and use reset argument
2021-11-20 11:02:58 +01:00
elsid
9f808fbe3a
Move findPath-like navigator functions into a separate header
2021-11-06 00:34:06 +01:00
elsid
c0ef4417c3
Check AiTravel destination for other actors presence
...
Use faster aabbTest but without destance filter. To avoid dependency on a
specific constant and correctly handle situations when there is a big
difference between actors sizes.
2021-09-29 01:05:23 +02:00
elsid
d36595e09e
Make sure PathFinder::getClosestPoint is not called with failing precondition
...
Pathgrid should be not nullptr and points should be not empty.
2021-09-23 01:48:54 +02:00
elsid
fea4fb6e69
Make AiPursue path destination to be as close as possible to target
...
Even when target is not reachable actor will try to run there either because
target navmesh polygon is selected within extended area or because partial path
is built to the closest possible polygon.
2021-08-18 23:44:36 +02:00
fredzio
88a5ca440b
Change moveObject() to take a osg::Vec3f argument instead of 3 floats
...
for readability.
2021-07-30 23:24:49 +02:00
Evil Eye
c5aa3d4f77
Don't stop and turn to the player while sneaking or jumping
2021-05-09 19:55:27 +02:00
jvoisin
ee2446d5c4
Trim even more
2021-04-30 20:11:41 +02:00
elsid
675c0ab72f
Apply uniform random deviation to AI reaction timer
...
This allows to distribute AI reaction calls over time.
Before this change actors appearing at the same frame will react in the same
frame over and over because AI reaction period is constant. It creates a
non-uniform CPU usage over frames. If a single frame has too many AI reactions
it may cause stuttering when there are too many actors on a scene for current
system.
Another concern is a synchronization of actions between creatures and NPC.
They start to go or hit at the same frame that is unnatural.
2021-03-20 14:47:54 +01:00
Petr Mikheev
b838782557
Avoid collisions between actors.
2020-09-22 22:50:44 +02:00
Petr Mikheev
bd6b984022
Smoothing speed in CharacterController
2020-09-22 22:50:44 +02:00
Petr Mikheev
71ba94a89a
Smooth turning; smooth stopping; combat headtracking
2020-09-22 22:50:44 +02:00
Andrei Kortunov
e6036e13b9
Use more C++11 loops in game mechanics code
2020-07-25 15:54:49 +04:00
elsid
b095ca6c86
Use actor speed to define area cost for pathfinding
2020-06-13 02:24:52 +02:00
elsid
c4cd3b2c4f
Add pathgrid to navmesh as off mesh connection
2020-06-12 21:04:02 +02:00
elsid
5b34ef224b
Replace AiPackage virtual methods by options
2020-06-06 12:00:17 +02:00
elsid
da8ea9d8c7
Mark not changing AiPackages fields as const
2020-06-04 23:12:23 +02:00
Bret Curtis
18bb6dd223
Merge pull request #2859 from elsid/aipackage_single_clone
...
Single clone function definition for all AI packages
2020-06-01 01:21:57 +02:00
Capostrophic
efd5f13b2b
Make greeting-related actor data temporary (bug #5397 )
2020-05-30 00:51:58 +03:00
elsid
8e0934cbd8
Single AI package clone definition
2020-05-20 20:15:29 +02:00
elsid
d86669843e
Remove unseud pointTolerance argument
2020-05-16 18:44:12 +02:00
elsid
256c9917a4
Make AiWander::isPackageCompleted const
2020-05-16 18:44:12 +02:00
elsid
131f2557b1
Split functions to remove redundant clearPath argument
2020-05-16 18:44:12 +02:00
elsid
b8513e0318
Remove unused arguments
2020-05-16 18:44:12 +02:00
elsid
489a92de95
Check for hidden path only for actors wandering manually
...
Actors who doesn't wander over pathgrid.
2020-05-16 16:26:42 +02:00
elsid
e616188265
Do not allow wandering actor to have empty path
2020-05-16 16:11:30 +02:00
elsid
71350c6dff
Remove redundant variable
2020-05-16 16:11:30 +02:00
elsid
9404b1dd72
Stop wandering when destination is hidden or occupied by other actor
2020-02-10 22:29:54 +01:00
elsid
4a0c056489
Do not wander to occupied area by other actor
2020-02-10 22:29:54 +01:00
elsid
85414e2353
Check for line of sight for wander destination
2020-02-10 22:29:54 +01:00
Andrei Kortunov
1db51a9e08
Re-work wandering outside of initial cell (bug #5261 , bug #5262 )
2020-02-02 11:02:19 +04:00
elsid
8e0b638145
Fix start position for AiWander random point selection
2020-01-28 20:29:52 +01:00
elsid
1e106013a0
Use navmesh to find wander destination outside pathgrid for ground based actors
...
Use dtNavMeshQuery::findRandomPointAroundCircle from recastnavigation
2020-01-21 00:01:06 +01:00
Andrei Kortunov
69aceb5c1e
Split greetings from AiWander (bug #4594 )
2019-10-10 09:28:40 +04:00
elsid
6c46d929c2
Build path to first pathgrid node by navmesh
2019-08-03 16:10:55 +02:00
Capostrophic
b8afe14206
Disallow paralyzed actors to greet the player (bug #5074 )
2019-06-29 13:31:36 +03:00
Capostrophic
25e52f7dfe
Use 2D distance for fight rating of vertically moving actors (bug #4961 )
2019-06-05 21:41:02 +03:00
elsid
287433efa8
Stop walking for water and flying creatures after single stuck
2019-03-21 23:15:47 +03:00
elsid
a65f60e1f1
Build path only by navmesh for wandering near spawn
2019-03-21 23:15:47 +03:00
elsid
ff67a9e233
Build straight path for wandering flying and water creatures
2019-03-21 23:15:47 +03:00
elsid
ebdff5d96e
Check for height map when cast ray for AiWander path
2019-03-21 23:15:47 +03:00
elsid
e033b0c565
Avoid build path through the ground for flying wandering creatures
2019-03-21 23:15:46 +03:00
elsid
e82d65a2c7
Use if-continue to skip build path
2019-03-21 23:15:46 +03:00
elsid
1218e4e15d
Use player half extents only to find path in exterior cells
2019-03-04 22:59:20 +03:00