1
0
Fork 1
mirror of https://github.com/TES3MP/openmw-tes3mp.git synced 2025-03-31 21:36:42 +00:00
openmw-tes3mp/apps/openmw
fredzio 5bd921fa3a Restore pre-async handling of absolute actors positionning
One of the issue since the introduction of async physics is the quirky
handling of scripted moves. Previous attempt to account for them was
based on detecting changes in actor position while the physics thread is
running. To this end, semantics of Actor::updatePosition() (which is
responsible for set the absolute position of an actor in the world) was
toned down to merely store the desired position, with the physics system
actually responsible for moving the actor. For the cases were complete
override of the physics simulation was needed, I introduced
Actor::resetPosition(), which actually have same semantics as
original updatePosition(). This in turn introduced a loads of new bugs
when the weakened semantics broke key assumptions inside the engine
(spawning, summoning, teleport, etc).
Instead of tracking them down, count on the newly introduced support for
object relative movements in the engine (World::moveObjectBy) to
register relative movements and restore original handling of absolute positionning.

Changes are relatively small:
- move resetPosition() content into updatePosition()
- call updatePosition() everywhere it was called before
- remove all added calls to the now non-existing resetPosition()

tldr; ditch last month worth of bug introduction and eradication and redo
it properly
2020-12-20 19:23:09 +01:00
..
mwbase Introduce World::moveObjectBy() function to translate an object relatively to 2020-12-18 08:40:38 +01:00
mwclass rename setting 2020-12-07 21:56:41 +01:00
mwdialogue Merge pull request #3018 from akortunov/emplace 2020-11-01 01:58:56 +03:00
mwgui Loading screen initialdrawcallback 4th time's the charm 2020-12-18 18:15:14 +00:00
mwinput Replace zeroes and nulls by nullptrs 2020-11-29 11:14:07 +04:00
mwmechanics Merge branch 'Show-more-information-about-level-on-menu' into 'master' 2020-12-11 12:04:15 +00:00
mwphysics Restore pre-async handling of absolute actors positionning 2020-12-20 19:23:09 +01:00
mwrender Use bip01 for root bone name 2020-12-15 13:51:49 +02:00
mwscript Introduce World::moveObjectBy() function to translate an object relatively to 2020-12-18 08:40:38 +01:00
mwsound Replace zeroes and nulls by nullptrs 2020-11-29 11:14:07 +04:00
mwstate Replace zeroes and nulls by nullptrs 2020-11-29 11:14:07 +04:00
mwworld Restore pre-async handling of absolute actors positionning 2020-12-20 19:23:09 +01:00
android_main.cpp android: Switch to C++ 2019-04-28 18:21:31 -04:00
CMakeLists.txt Generate physics collisions for projectiles (bug #3372) 2020-12-08 09:05:38 +01:00
doc.hpp Fixed more spelling mistakes 2016-12-15 13:09:40 +01:00
engine.cpp Add a setting to disable graphical herbalism 2020-12-07 19:04:32 +01:00
engine.hpp Add stats for all updates 2020-06-30 22:00:23 +02:00
main.cpp Print '--version' and '--help' messages without timestamps 2020-12-08 23:14:49 +01:00