mirror of
https://github.com/TES3MP/openmw-tes3mp.git
synced 2025-11-08 16:46:47 +00:00
When a position is forced, the actor position in physics subsystem is overriden. The background physics thread is not made aware of this, its result are simply discarded. There is a short window where this doesn't work (in this example, actor is at A and script moves it to B) 1) actor position is set to B. (among others, Actor::mPosition is set to B) 2) physics thread reset Actor::mPosition with stale value (around A) 3) main thread read simulation result, reset Actor::mSkipSimulation flag => actor is at B 4) physics thread fetch latest Actor::mPosition value, which is around A 5) main thread read simulation result, actor is around A To avoid this situation, do not perform 2) until after 3) occurs. This way, at 4) starts the simulation with up-to-date Actor::mPosition |
||
|---|---|---|
| .. | ||
| mwbase | ||
| mwclass | ||
| mwdialogue | ||
| mwgui | ||
| mwinput | ||
| mwmechanics | ||
| mwphysics | ||
| mwrender | ||
| mwscript | ||
| mwsound | ||
| mwstate | ||
| mwworld | ||
| android_main.cpp | ||
| CMakeLists.txt | ||
| doc.hpp | ||
| engine.cpp | ||
| engine.hpp | ||
| main.cpp | ||