jvoisin
be371ccd9f
An another pass
2021-04-30 20:27:33 +02:00
jvoisin
ee2446d5c4
Trim even more
2021-04-30 20:11:41 +02:00
Alexei Dobrohotov
e3bb45fd61
Merge branch 'minor_aicombat' into 'master'
...
Minor optimization in aicombat.cpp
See merge request OpenMW/openmw!737
(cherry picked from commit f1d19035cccfff2523faad0d4e4d96cd3ddae2e6)
bbbfc520 Minor optimization in aicombat.cpp
237b34a6 Fix style
a14911cb Fix indentation
2021-04-26 07:10:41 +00:00
jvoisin
4c96644f8d
Use a char instead of a string in find() where possible
...
This was done via PVS Studio ( https://pvs-studio.com ),
and should provide a super-duper-marginal performance boost \o/
2021-04-25 19:57:09 +02:00
elsid
ca7add0624
Add move constructor to MWMechanics::Spells
2021-04-24 00:32:22 +02:00
elsid
46e34c500c
Use algorithms to add/remove listener to SpellList
2021-04-24 00:32:07 +02:00
Andrei Kortunov
d10399e083
Cast double constant to float explicitely
2021-04-19 17:08:03 +04:00
Andrei Kortunov
0cadc97fb3
Fix double -> float conversions
2021-04-19 15:36:58 +04:00
Bret Curtis
befa3f587f
Merge pull request #3068 from akortunov/master
...
Clean up MSVC warnings
2021-04-19 09:27:17 +02:00
Jacob Turnbull
f49b9e3806
Fix headtracking while invisible
2021-04-18 10:54:56 +00:00
Andrei Kortunov
f308dde254
Clean up MSVC warnings
2021-04-17 12:14:50 +04:00
elsid
0fae6d9a0a
Add walk and swim flags when corresponding speed is positive
...
This allows to avoid finding path over area that will should have infinite
cost (area_cost = area_cost_factor / area_speed).
2021-04-13 23:27:18 +02:00
elsid
3c4a9069ae
Do not use infinite area cost
...
Division by zero causes float value to be infinite. When infinite cost is
multiplied by zero distance the result is NaN. After this pathfinding algorithm
state is broken.
2021-04-13 23:27:18 +02:00
elsid
28fc21792e
Allow water walking actors to find path over water surface
2021-04-11 21:59:28 +02:00
elsid
634556be9d
Add setting to allow following creatures to find path over water surface
2021-04-11 21:59:28 +02:00
Andrei Kortunov
f984e96b34
Use conventional names for atan2 arguments
2021-04-10 12:23:03 +04:00
Jonas Tobias Hopusch
799cf16f31
Attempt to fix #5942
...
Closes OpenMW/openmw#5942
This is an attempt to apply the fix suggested by @Capostrophic
2021-04-09 18:16:05 +02:00
Andrei Kortunov
59720aea9a
Restore old aiming for melee combat
2021-04-07 12:07:03 +04:00
Andrei Kortunov
50352daf90
Rework knockdown and knockout animations fallbacks
2021-03-29 14:45:07 +04:00
Andrei Kortunov
b61337643e
Merge branch 'issue-5680' into 'master'
...
change aim calculation
See merge request OpenMW/openmw!685
2021-03-26 11:43:20 +00:00
Max
2cd96e56d5
create constant and use constant in other parts of the code base
2021-03-24 14:54:46 -07:00
elsid
453e94ea9f
Use half extents for destination distance tolerance in AiEscort
...
For actors moving in water destination may be located at such z coordinate
that they can't reach.
2021-03-24 00:07:28 +01:00
elsid
f32e1790bc
Add half extents to AiEscord max distance
...
For actors with big bounding box given constants may not work properly like
it's not possible to get close enough to actor from a given angle to make it
move.
2021-03-23 23:49:57 +01:00
elsid
39c0ce9ddf
Build limited path for far destinations
...
When distance between start and end point is greater than max radius of area
possibly covered by navmesh there is no way to find path via navmesh. Also if
distance is greater than cell size navmesh might not exists withing mentioned
area because cell is not loaded therefore navmesh is not generated. So minumum
of these values is used to limit max path distance. Assuming that path
actually exists it's possible to build path to the edge of a circle. When
actor reaches initial edge path is built further. However it will not be
optimal.
2021-03-23 23:23:12 +01:00
psi29a
415591b7ed
Merge branch 'ai_reaction_deviation' into 'master'
...
Distribute AI reactions and engage combat calls over time
See merge request OpenMW/openmw!674
2021-03-22 21:37:09 +00:00
Evil Eye
8e9bd5c0bd
Don't throw an exception when equipping a bound item fails
2021-03-22 20:44:13 +01:00
Evil Eye
580fa78034
Don't purge summon effects with invalid creature ids
2021-03-22 20:43:34 +01:00
Petr Mikheev
7bbbe40abe
"static const" -> "static constexpr" in headers
2021-03-21 13:57:54 +01:00
elsid
62c0ecbbd0
Separate engage combat timer for each actor
...
Use DeviatingPeriodicTimer to distribute calls over time. This reduces
stuttering and make AI more natural.
2021-03-20 14:50:56 +01: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
Evil Eye
c2580d60e9
Register copied Spells with SpellList
2021-03-14 19:32:03 +01:00
Petr Mikheev
447c3b9489
Fix 5846
2021-03-13 21:54:49 +01:00
Dobrohotov Alexei
fc329050b3
AIPursue: Pursue the player until LOS is established ( #5869 )
2021-03-03 22:06:58 +03:00
Evil Eye
e2fc5d87b3
Merge branch 'elemental_shields' into 'master'
...
Don't let elemental shields harm the player in god mode
Closes #5875
See merge request OpenMW/openmw!631
2021-03-02 06:45:38 +00:00
Alexei Dobrohotov
023bc80f55
Don't let elemental shields harm the player in god mode
2021-03-01 21:37:30 +00:00
elsid
8dba61f7ae
Use navmesh raycast to find reachable position around target
2021-02-14 04:14:22 +01:00
elsid
becccf3b5e
Make actor flee from a combat when cannot reach a target
2021-02-12 22:58:53 +01:00
psi29a
7a9eb34403
Merge branch 'master' into 'freeunrealestate'
...
# Conflicts:
# CHANGELOG.md
2021-02-07 21:03:51 +00:00
Evil Eye
af0f94f03e
Play damage sound when hurt by elemental shields
2021-02-07 12:55:10 +01:00
Evil Eye
e4cd89643f
Merge branch 'master' of gitlab.com:OpenMW/openmw into freeunrealestate
2021-02-07 00:17:14 +01:00
Evil Eye
6aa75c287a
Don't check magicka when casting free spells
2021-02-07 00:15:01 +01:00
psi29a
e6607486f5
Merge branch 'jfmherokiller-master-patch-23743' into 'master'
...
Fix the regression involving Cure
See merge request OpenMW/openmw!582
2021-02-06 15:41:24 +00:00
Noah Gooder
e42b67ee50
Modified actors.cpp and Authors.md
2021-02-05 17:59:36 +00:00
Evil Eye
61e014a765
Allow negative values for ai stats
2021-02-04 21:25:38 +01:00
Jordan Francis Moran-Meyers
0d1c073cfa
Fix the regression involving Cure
2021-02-01 18:34:10 +00:00
Petr Mikheev
9590377f22
Don't ignore Z in path finding if actor can move by Z.
2021-01-29 22:30:20 +01:00
Petr Mikheev
642ca02e35
Shorten almost straight paths only if smooth movement is enabled; reduce angle limit for the shortening.
2021-01-29 22:30:01 +01:00
elsid
a3ab8dfbb4
Revert "Merge branch 'movement_fix2' into 'master'"
...
This reverts merge request !496
2021-01-28 12:48:19 +00:00
Petr Mikheev
bc2cec86e9
Fix bug: NPCs doesn't move if the target is exactly above or exactly below.
2021-01-26 00:05:28 +01:00
psi29a
c6f14cde20
Merge branch 'Show-level-multipliers-in-levelup-tooltip' into 'master'
...
Show level multipliers in levelup tooltip
Closes #5783
See merge request OpenMW/openmw!518
2021-01-25 10:01:39 +00:00