1
0
mirror of https://gitlab.com/OpenMW/openmw.git synced 2025-01-30 21:32:42 +00:00

106 Commits

Author SHA1 Message Date
Evil Eye
340d1423c6 Optimize AI package target comparisons 2024-01-29 22:25:39 +01:00
elsid
903299ce50
Avoid recomputing navigator flags when getting area costs 2024-01-06 02:39:42 +01:00
elsid
b4868c6094
Filter evade directions by supported animations
To avoid trying those which will not lead to any actor movement due to absent
animation.
2023-07-22 17:30:40 +02:00
Evil Eye
584f112a7b Decouple PathgridGraph generation from cell 2023-04-10 15:45:58 +02:00
Evil Eye
8d8207b734 Refactor pathgrid indices to use size_t instead of int 2023-04-08 00:32:43 +00:00
fteppe
125b21de20 Initial commit: In ESM structures, replace the string members that are RefIds to other records, to a new strong type
The strong type is actually just a string underneath, but this will help in the future to have a distinction so it's easier to search and replace when we use an integer ID

Slowly going through all the changes to make, still hundreds of errors

a lot of functions/structures use std::string or stringview to designate an ID. So it takes time

Continues slowly replacing ids. There are technically more and more compilation errors

I have good hope that there is a point where the amount of errors will dramatically go down as all the main functions use the ESM::RefId type

Continue moving forward, changes to the stores

slowly moving along

Starting to see the fruit of those changes.

still many many error, but more and more Irun into a situation where a function is sandwiched between two functions that use the RefId type.

More replacements. Things are starting to get easier

I can see more and more often the issue is that the function is awaiting a RefId, but is given a string
there is less need to go down functions and to fix a long list of them.

Still moving forward, and for the first time error count is going down!

Good pace, not sure about topics though, mId and mName are actually the same thing and are used interchangeably

Cells are back to using string for the name, haven't fixed everything yet. Many other changes

Under the bar of 400 compilation errors.

more good progress <100 compile errors!

More progress

Game settings store can use string for find, it was a bit absurd how every use of it required to create refId from string

some more progress on other fronts

Mostly game settings clean

one error opened a lot of other errors. Down to 18, but more will prbably appear

only link errors left??

Fixed link errors

OpenMW compiles, and launches, with some issues, but still!
2022-12-27 19:15:54 +01:00
elsid
063fff7fa4
Fix and prevent -Wextra-semi warning 2022-10-06 00:26:43 +02:00
clang-format-bot
ddb0522bbf
Apply clang-format to code base 2022-09-22 21:35:26 +03:00
elsid
d2b7253c7f
Use forward declarations instead of including aistate.hpp 2022-07-16 17:13:16 +02:00
Matt
56a1505885 Cache the target for ai packages instead of looking for it every frame 2022-04-17 17:15:00 +00:00
Evil Eye
231da19aa4 Load repeat flag and use reset argument 2021-11-20 11:02:58 +01: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
psi29a
a487295d39 Merge branch 'fix_new_game_guard' into 'master'
Consider time to destination when try to avoid collision

See merge request OpenMW/openmw!914
2021-05-30 11:52:48 +02:00
jvoisin
1cd15613a6 Remove some useless headers in apps/openmw/mwmechanics 2021-05-15 22:14:08 +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
Alexei Dobrohotov
2d23dad2bc
Merge branch 'master' into ai_package_type 2020-06-17 01:47:23 +03:00
elsid
b095ca6c86
Use actor speed to define area cost for pathfinding 2020-06-13 02:24:52 +02:00
elsid
82893c30f4
Store package type id as enum except ESM 2020-06-11 21:02:27 +02:00
elsid
5b34ef224b
Replace AiPackage virtual methods by options 2020-06-06 12:00:17 +02:00
elsid
ce7c47ee12
Return cloned AiPackage as unique_ptr 2020-06-01 17:07:08 +02:00
elsid
3b5ce71d71
Remove redundant explicit dtor definition for AiPackage 2020-05-17 22:18:26 +02:00
Capostrophic
013953ec7f Support Wander movement deceleration 2020-02-11 13:50:53 +03:00
capostrophic
fc0f813dcb Add and use 'always active' AI package flag
Update documentation
2020-01-10 12:07:57 +03:00
Andrei Kortunov
61ab7f3c1e Implement actors movement deceleration (feature #4544) 2019-10-31 14:41:12 +04:00
elsid
d1d6ba3ed0
Fix rebuild path for walking actors
Ignore z coordinate for not swimming nor flying actors to calculate
distance from actor destination to last path point. If walking actor
destination point is floating above the ground then a point on navmesh
may be too far away when z coordinate is included. In this case path
will be rebuild on each AI_REACTION_TIME.
2019-10-07 20:25:07 +02:00
Roman Siromakha
41ad23ebdc
Revert "[WIP] Open door when it is on the way to a next path point (bug #5073)" 2019-08-27 20:55:03 +02:00
elsid
b4ec444057
Open door when it is on the way to a next path point 2019-08-27 20:49:35 +02:00
elsid
69b4fe8545
Revert "Open door when it is on the way to a next path point"
This reverts commit c32872fb16fe826c5409e31111bd50466595abf5.
2019-08-27 20:49:07 +02:00
elsid
c32872fb16
Open door when it is on the way to a next path point 2019-08-15 19:35:41 +02:00
Capostrophic
25e52f7dfe Use 2D distance for fight rating of vertically moving actors (bug #4961) 2019-06-05 21:41:02 +03:00
Andrei Kortunov
1832f1759d AI: use a consistent check if a target is hidden (bug #4920) 2019-04-28 16:41:10 +04:00
Capostrophic
c03ed4cd50 Include cleanup 2019-02-19 18:40:33 +03:00
elsid
92b34e8bb4
Check whether can actor move along z-axis in separate function 2018-10-13 22:16:34 +03:00
elsid
27a74725f1
Use osg::Vec3f 2018-10-13 22:16:34 +03:00
elsid
d02beae5a8
Find path for actors according to their abilities to swim and walk 2018-10-13 22:16:33 +03:00
elsid
fafba8ea0c
Use recastnavigation to find path 2018-10-13 22:16:25 +03:00
elsid
1a95b7a154
Remove duplicate zTurn call 2018-10-13 22:16:22 +03:00
elsid
c9f3064cbd
Update ObstacleCheck once per frame 2018-10-13 22:16:22 +03:00
elsid
ad027d13fa
Remove unused 2018-10-13 22:16:21 +03:00
elsid
4d868bec92
Use osg::Vec3f to store path nodes in Pathfinder 2018-10-13 22:16:20 +03:00
elsid
0cfdf0c7b6
Remove unused virtual 2018-10-13 22:16:20 +03:00
Andrei Kortunov
e06f0b797a Replace all NULLs to nullptr 2018-10-09 10:21:12 +04:00
Andrei Kortunov
3d1daaebab Rework manual spellcasting (e.g. via scripts) 2018-07-12 16:24:25 +04:00
Andrei Kortunov
81b78a82e8 AI: try to open doors every AI_REACTION_TIME seconds (bug #4454) 2018-06-13 17:47:32 +04:00
Marc Zinnschlag
7d9de93fd3 Merged pull request #1477 2018-06-09 10:52:35 +02:00
Andrei Kortunov
5105c67642 Add mHidden field to AiTravel 2018-06-08 21:53:47 +04:00
Andrei Kortunov
81f29d8dcd AiWander: resume moving to destination after combat 2018-06-08 21:53:47 +04:00
Andrei Kortunov
fed10e87aa Store integer actor ID in AI packages (bug #4036) 2018-06-08 19:57:41 +04:00
Andrei Kortunov
f7f8dfaf2a AiWander: do not allow flying/swimming creatures to use pathgrid 2017-11-28 18:03:13 +04:00
scrawl
c50b18b3bb
Move PathgridGraph out of CellStore
By definition this is not 'Mutable state of a cell' and does not belong in CellStore.

This change should improve startup times (graph is now loaded on demand) and edits to 'pathgrid.hpp' no longer cause the entirety of OpenMW to be rebuilt.
2017-11-27 21:20:31 +00:00