1
0
mirror of https://gitlab.com/OpenMW/openmw.git synced 2025-02-06 00:40:04 +00:00

636 Commits

Author SHA1 Message Date
uramer
fd7965d77f Use correctMeshPath instead of string constants 2022-06-12 11:30:29 +02:00
psi29a
af82140dda Merge branch 'filter_physics_actors' into 'master'
Do not perform physics simulation for actors outside processing range

See merge request OpenMW/openmw!1934
2022-05-29 19:19:35 +00:00
elsid
bf76faeb2d
Increment iterator before fast forward
When player is located in the exterior cell AiTravel::fastForward may move
another actor into a cell outside active grid. This will remove the actor from
MWMechanics::Actors::mActors which invalidates current iterator in the
Actors::fastForwardAi loop.
2022-05-27 13:35:21 +02:00
elsid
ac5844cad2
Do not perform physics simulation for actors outside processing range
Actors with disabled collisions still have physics simulations. Assuming they
should not be processed at all instead of disabling collision add a new flag to
make them inactive.
2022-05-26 10:36:03 +02:00
psi29a
31c0c0cb58 Merge branch 'fix_initial_landing' into 'master'
Do not play landing animation for actors entering to scene without a reason (#6346 + #6513)

Closes #6513 and #6346

See merge request OpenMW/openmw!1926
2022-05-26 06:15:59 +00:00
Evil Eye
921a4c7bca Fix inverted logic 2022-05-25 16:49:03 +02:00
elsid
85c79d382c
Enable collisions for actor before adjusting position
Otherwise adjustPosition does not call traceDown and actor appears flying for
the first physics simulation.
2022-05-24 23:30:57 +02:00
elsid
77c09dff39
Store CharacterController by value in MWMechanics::Actor 2022-05-21 00:41:55 +02:00
elsid
e2c44d13f3
Use std::list to store mechanics actors
To make the order of elements deterministic. Using memory address based objects
as map key makes order of elements there nondeterministic. Later it can be
replaced with vector when there are no indirect munipulations with container
inside iteration loops.

Change map key to const MWWorld::LiveCellRefBase* to avoid erasing and inserting
elements on MWWorld::Ptr update.
2022-05-20 22:55:55 +02:00
Evil Eye
2531e24ee3 Fix inverted logic 2022-05-16 18:29:16 +02:00
elsid
ef64587cbf
Mark unchanging static as const 2022-05-09 00:59:51 +02:00
elsid
66c9b6c199
Make MWMechanics::Actors local static variables to be members 2022-05-09 00:59:37 +02:00
elsid
79676aee15
Make Environment a storage of referencing pointers instead of owned
Engine controls lifetime of managers therefore it should own them. Environment
is only access provider.

This allows to avoid redundant virtual calls and also some functions from
managers base classes can be removed if they are used only by Engine.
2022-05-06 23:44:01 +02:00
ζeh Matt
1a41cefab3
Use active package in predictAndAvoidCollisions 2022-04-12 18:32:58 +03:00
Petr Mikheev
5ed22c4c7a Minor fix in actors.cpp 2022-04-06 21:55:05 +02:00
Matt
49e21e121a Revert "Merge branch 'refactor/6677-2' into 'master'"
This reverts merge request !1733
2022-04-04 17:09:52 +00:00
Matt
21e4c10fa9 Introduce IndexedVector 2022-04-04 13:56:19 +00:00
ζeh Matt
33706923a3
Restructure function updateCrimePursuit 2022-03-28 17:25:22 +03:00
ζeh Matt
9821982944
Restructure function updateEquippedLight 2022-03-28 16:48:16 +03:00
ζeh Matt
127366a948
Restructure function updateDrowning 2022-03-28 16:38:39 +03:00
ζeh Matt
0b306bc1ea
Restructure function engageCombat 2022-03-28 16:32:56 +03:00
ζeh Matt
8631b96680
Restructure function updateGreetingState 2022-03-28 16:25:33 +03:00
ζeh Matt
5e44dd41eb
Restructure function updateMovementSpeed 2022-03-28 16:20:24 +03:00
ζeh Matt
cba51e5e1c
Restructure function updateHeadTracking 2022-03-28 16:13:40 +03:00
ζeh Matt
f5b527e445
Restructure function isCommanded 2022-03-28 16:07:20 +03:00
ζeh Matt
08fae7be6e
Pass the prng from world where appropriate 2022-03-21 17:49:42 +02:00
Petr Mikheev
df41b4080d Merge branch 'refactor/headtracking' into 'master'
Small improvement for headtracking

See merge request OpenMW/openmw!1683
2022-03-03 20:39:53 +00:00
Matt
0b528d3bfb Small improvement for headtracking 2022-03-03 20:39:53 +00:00
ζeh Matt
eca405e5c7
Use std::vector instead of std::list 2022-02-25 04:02:21 +02:00
Matt
367bdcf0cc #6091: Optimize isInCombat 2022-02-12 23:50:41 +00:00
Petr Mikheev
6c56436809 Control AI packages from Lua 2022-02-06 15:01:51 +01:00
uramer
c31dedb89c Implement Yaw, Pitch and Use (attack / cast spell) in Lua self.controls 2022-02-01 18:47:20 +00: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
ff9f010d99 Explicitely add the initial actor to the set of its allies 2021-12-11 15:30:57 +01:00
Evil Eye
d6f06fbf9a Remove allies from combat when stopping combat 2021-11-25 22:00:52 +01:00
Petr Mikheev
3941c42a71 Use applyDeferredPreviewRotationToPlayer only after applying values from luaControls. Otherwise camera rotation is not smooth when movement is controlled from lua. 2021-11-19 20:37:21 +01:00
Alexei Dobrohotov
7a0c13fcf8 Make better use of std::clamp 2021-11-06 08:47:32 +03:00
Evil Eye
92bdd44e58 Allow creatures to use torches 2021-10-31 20:25:37 +01:00
Evil Eye
289e1544d2 Don't wait a frame to recalculate magicka 2021-10-25 16:54:50 +02:00
Bo Svensson
ef906cbfa8
improves MWClass mapping (#3166)
Currently, we use a peculiar mapping of ESM classes by their std::type_info::name. This mapping is an undefined behaviour because std::type_info::name is strictly implementation defined. It could return a non-unique value on some platforms. With this PR we use the unsigned int sRecordId of the ESM class as a more efficient lookup type that does not build on undefined behaviour. We can expect marginally faster save-game loading with these changes as well.
2021-10-11 13:46:21 +02:00
psi29a
2c8c36fe5d Merge branch 'master' into 'effective_magic'
# Conflicts:
#   CHANGELOG.md
2021-10-01 21:20:08 +00:00
Bret Curtis
8309910d9d Restore the cell grid to its former non-exorbitant size, reducing stutter and also threw in a simple alternative fix for the actor position adjustment issue. 2021-09-30 22:58:40 +02:00
Evil Eye
b8e4f18751 Clear temporary effects before unloading actors to prevent absorb effects becoming permanent 2021-09-29 19:25:11 +02:00
Evil Eye
dc1fe62dde Overhaul magic effects to work with onApply and onEnd events 2021-09-29 19:25:10 +02:00
Andrei Kortunov
fc2076db1a
Fix MSVC warnings about local variables redeclaration (#3130) 2021-09-29 09:36:05 +02:00
Petr Mikheev
5893b88409 Ignore time to destination when giving way (#6296) 2021-09-22 01:46:04 +02:00
Alexei Dobrohotov
31e70f2ecc Merge branch 'minor_factorisation' into 'master'
Minor factorisation in apps/openmw/mwmechanics/actors.cpp

See merge request OpenMW/openmw!1143
2021-08-21 06:22:17 +00:00
jvoisin
39cd679ca9 Minor factorisation in apps/openmw/mwmechanics/actors.cpp 2021-08-16 13:13:44 +02:00
jvoisin
0792bb212a Use an emplace instead of an insert 2021-08-15 18:57:33 +02:00
fredzio
5fc3b80406 Don't query actor halfextent in a tight loop, use the already existing
variable. These repeated calls become costly with > 150 actors.
2021-08-07 13:38:24 +02:00