1
0
Fork 1
mirror of https://github.com/TES3MP/openmw-tes3mp.git synced 2025-01-15 04:49:55 +00:00
Commit graph

28373 commits

Author SHA1 Message Date
David Cernat
8c7b07b9c8 [Client] Make potion effects work with SpellsActive packets 2021-05-23 01:49:37 +02:00
psi29a
dff4b83d9d Merge branch 'stop_threading' into 'master'
Stop osg viewer threading before destructing engine

See merge request OpenMW/openmw!901
2021-05-22 08:52:44 +00:00
psi29a
2a6bd1b0cc Merge branch 'navmesh_tiles_cache_tests' into 'master'
Add more checks to NavMeshTilesCache tests

See merge request OpenMW/openmw!899
2021-05-22 08:49:06 +00:00
psi29a
8774d23830 Merge branch 'FixBsaToolExtract' into 'master'
Update lookup only after sorting files

See merge request OpenMW/openmw!893
2021-05-22 08:42:01 +00:00
elsid
375372981c
Stop osg viewer threading before destructing engine
To avoid rendering while engine parts are destructing.
2021-05-21 23:16:15 +02:00
elsid
105cd5b06f
Add more checks to NavMeshTilesCache tests 2021-05-21 19:33:42 +02:00
jvoisin
e51669c05d Don't assign a variable passed by value 2021-05-21 18:15:31 +02:00
David Cernat
7a6dfc61ec Add OpenMW commits up to 21 May 2021
# Conflicts:
#   CMakeLists.txt
#   apps/openmw/mwscript/interpretercontext.cpp
#   components/CMakeLists.txt
2021-05-21 16:00:09 +02:00
psi29a
f27d7c66ff Merge branch 'racy_deadcode' into 'master'
Remove both racy and useless code.

See merge request OpenMW/openmw!896
2021-05-21 09:27:01 +00:00
CedricMocquillon
86d137363e Check if the archive is opened before adding a file to it and clear state on close 2021-05-20 21:28:52 +02:00
fredzio
b13afd758c Remove both racy and useless code.
Actor's position can be determined in 3 ways:
1/ as a result of physics simulation
2/ after a script require a relative position change (SetPos, Move)
3/ absolutely set from games mechanics event (teleport) or script
(PositionCell)

In case 1/, RefData::mPosition is updated with the physics simulation result
In case 2/, when RefData::mPosition is updated, physics simulation is informed of the change and update accordingly
In case 3/, when RefData::mPosition is updated, the physics simulation state is reset

In all 3 cases, we don't need to check the RefData::mPosition to get a
correct behaviour.

TSAN reported the following data race:
  Read of size 4 at 0x7b50005b75b0 by thread T12 (mutexes: write M656173, write M84859534346343880):
    #0 ESM::Position::asVec3() const /build/openmw/openmw/master2/.build/freebsd/TSAN/../../.././components/esm/defs.hpp:55:27 (openmw+0xb809d5)
    #1 MWPhysics::Actor::updateWorldPosition() /build/openmw/openmw/master2/.build/freebsd/TSAN/../../../apps/openmw/mwphysics/actor.cpp:131:59 (openmw+0xb809d5)
    #2 MWPhysics::Actor::setPosition(osg::Vec3f const&) /build/openmw/openmw/master2/.build/freebsd/TSAN/../../../apps/openmw/mwphysics/actor.cpp:177:5 (openmw+0xb809d5)
    #3 MWPhysics::PhysicsTaskScheduler::updateActorsPositions() /build/openmw/openmw/master2/.build/freebsd/TSAN/../../../apps/openmw/mwphysics/mtphysics.cpp:524:28 (openmw+0xb91ac0)
    #4 MWPhysics::PhysicsTaskScheduler::afterPostStep() /build/openmw/openmw/master2/.build/freebsd/TSAN/../../../apps/openmw/mwphysics/mtphysics.cpp:614:13 (openmw+0xb915e7)
    #5 MWPhysics::PhysicsTaskScheduler::worker()::$_5::operator()() const /build/openmw/openmw/master2/.build/freebsd/TSAN/../../../apps/openmw/mwphysics/mtphysics.cpp:498:45 (openmw+0xb915e7)
    #6 void Misc::Barrier::wait<MWPhysics::PhysicsTaskScheduler::worker()::$_5>(MWPhysics::PhysicsTaskScheduler::worker()::$_5&&) /build/openmw/openmw/master2/.build/freebsd/TSAN/../../.././components/misc/barrier.hpp:30:21 (openmw+0xb915e7)
    #7 MWPhysics::PhysicsTaskScheduler::worker() /build/openmw/openmw/master2/.build/freebsd/TSAN/../../../apps/openmw/mwphysics/mtphysics.cpp:498:31 (openmw+0xb915e7)
    #8 MWPhysics::PhysicsTaskScheduler::PhysicsTaskScheduler(float, btCollisionWorld*, MWRender::DebugDrawer*)::$_0::operator()() const /build/openmw/openmw/master2/.build/freebsd/TSAN/../../../apps/openmw/mwphysics/mtphysics.cpp:162:45 (openmw+0xb92630)
    #9 decltype(std::__1::forward<MWPhysics::PhysicsTaskScheduler::PhysicsTaskScheduler(float, btCollisionWorld*, MWRender::DebugDrawer*)::$_0>(fp)()) std::__1::__invoke<MWPhysics::PhysicsTaskScheduler::PhysicsTaskScheduler(float, btCollisionWorld*, MWRender::DebugDrawer*)::$_0>(MWPhysics::PhysicsTaskScheduler::PhysicsTaskScheduler(float, btCollisionWorld*, MWRender::DebugDrawer*)::$_0&&) /usr/include/c++/v1/type_traits:3899:1 (openmw+0xb92630)
    #10 void std::__1::__thread_execute<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, MWPhysics::PhysicsTaskScheduler::PhysicsTaskScheduler(float, btCollisionWorld*, MWRender::DebugDrawer*)::$_0>(std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, MWPhysics::PhysicsTaskScheduler::PhysicsTaskScheduler(float, btCollisionWorld*, MWRender::DebugDrawer*)::$_0>&, std::__1::__tuple_indices<>) /usr/include/c++/v1/thread:280:5 (openmw+0xb92630)
    #11 void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, MWPhysics::PhysicsTaskScheduler::PhysicsTaskScheduler(float, btCollisionWorld*, MWRender::DebugDrawer*)::$_0> >(void*) /usr/include/c++/v1/thread:291:5 (openmw+0xb92630)

  Previous write of size 8 at 0x7b50005b75b0 by main thread:
    #0 memcpy /wrkdirs/usr/ports/devel/llvm-devel/work-default/llvm-project-3f6753efe1990a928ed120bd907940a9fb3e2fc3/compiler-rt/lib/tsan/../sanitizer_common/sanitizer_common_interceptors.inc:827:5 (openmw+0x55a057)
    #1 MWWorld::RefData::setPosition(ESM::Position const&) /build/openmw/openmw/master2/.build/freebsd/TSAN/../../../apps/openmw/mwworld/refdata.cpp:216:19 (openmw+0xa3de1c)
    #2 MWWorld::World::moveObject(MWWorld::Ptr const&, MWWorld::CellStore*, float, float, float, bool) /build/openmw/openmw/master2/.build/freebsd/TSAN/../../../apps/openmw/mwworld/worldimp.cpp:1130:26 (openmw+0xa57300)
    #3 MWWorld::World::moveObject(MWWorld::Ptr const&, float, float, float, bool, bool) /build/openmw/openmw/master2/.build/freebsd/TSAN/../../../apps/openmw/mwworld/worldimp.cpp:1253:16 (openmw+0xa580c8)
    #4 MWWorld::World::doPhysics(float, unsigned long long, unsigned int, osg::Stats&) /build/openmw/openmw/master2/.build/freebsd/TSAN/../../../apps/openmw/mwworld/worldimp.cpp:1530:17 (openmw+0xa5af8f)
    #5 MWWorld::World::updatePhysics(float, bool, unsigned long long, unsigned int, osg::Stats&) /build/openmw/openmw/master2/.build/freebsd/TSAN/../../../apps/openmw/mwworld/worldimp.cpp:1862:13 (openmw+0xa61a7c)
    #6 OMW::Engine::frame(float) /build/openmw/openmw/master2/.build/freebsd/TSAN/../../../apps/openmw/engine.cpp:333:42 (openmw+0xcce9e7)
    #7 OMW::Engine::go() /build/openmw/openmw/master2/.build/freebsd/TSAN/../../../apps/openmw/engine.cpp:935:14 (openmw+0xcd86ed)
    #8 runApplication(int, char**) /build/openmw/openmw/master2/.build/freebsd/TSAN/../../../apps/openmw/main.cpp:296:17 (openmw+0xcbffac)
    #9 wrapApplication(int (*)(int, char**), int, char**, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) /build/openmw/openmw/master2/.build/freebsd/TSAN/../../../components/debug/debugging.cpp:205:15 (openmw+0x1335442)
    #10 main /build/openmw/openmw/master2/.build/freebsd/TSAN/../../../apps/openmw/main.cpp:308:12 (openmw+0xcc008a)
:wqa
2021-05-20 20:46:44 +02:00
psi29a
3696187737 Merge branch 'free_as_in_av' into 'master'
Use av_free and maybe get Coverity to understand

See merge request OpenMW/openmw!892
2021-05-20 08:21:47 +00:00
CedricMocquillon
b61249841e Update lookup only after sorting files 2021-05-19 18:38:42 +02:00
Evil Eye
54d32817d5 Use av_free and maybe get Coverity to understand 2021-05-19 17:12:41 +02:00
psi29a
3920477618 Merge branch 'moving_lighting_method_to_graphics' into 'master'
Moving Lighting Method from Advanced -> Visuals to Graphics -> Lighting

See merge request OpenMW/openmw!883
2021-05-19 05:09:24 +00:00
psi29a
c4fde03542 Merge branch 'ObjectPagingMergeIssue' into 'master'
Share state

See merge request OpenMW/openmw!879
2021-05-19 05:08:12 +00:00
psi29a
e596f62107 Merge branch 'Terrain-Selection-Issues' into 'master'
Various fixes for the editor's "Terrain land editing" mode (fixes #5473, #6022, #6023, #6024, #6035, #6036)

Closes #6036, #6035, #6024, #6023, #6022, and #5473

See merge request OpenMW/openmw!840
2021-05-19 05:06:43 +00:00
Thunderforge
4a15868c0e Moving Lighting Method from Advanced -> Visuals to Graphics -> Lighting
The plan is to add additional options to this new tab, and since it's of similar status as the Shaders settings, it makes sense to put them next to them on the Graphics page.
2021-05-18 18:05:54 -05:00
Alexei Dobrohotov
fea5c0ac1a Merge branch 'armour_error_fix' into 'master'
Fixed data subrecord name for Armour record used in error

See merge request OpenMW/openmw!882
2021-05-18 22:02:30 +00:00
CedricMocquillon
d11a6bd92c Share state 2021-05-18 17:57:47 +02:00
Atahualpa
3a1243a5d0 Rebased branch, reduced code duplication, added comments, adjusted formatting. 2021-05-18 17:53:00 +02:00
Atahualpa
ca80aeaaea Fix vertex calculation for cell-border drawing. 2021-05-18 15:05:26 +02:00
Atahualpa
d500507dec Resolved merge conflicts with changelog (cont.) 2021-05-18 15:05:19 +02:00
Atahualpa
356efa15a2 Fixes #6035 (circle brush selects outside of circle) and #6036 (some corner vertices not selected). 2021-05-18 15:04:01 +02:00
Atahualpa
425f745d53 Resolved merge conflicts with changelog. 2021-05-18 15:03:56 +02:00
Atahualpa
7be891b440 Directly use Geometry instead of Geode; fix for loop; add size_t type-cast. 2021-05-18 14:56:03 +02:00
Atahualpa
73949d5bd0 Updating the CMake file isn't a bad idea either... 2021-05-18 14:56:03 +02:00
Atahualpa
6c49074765 Remove old references to Cell class. 2021-05-18 14:56:03 +02:00
Atahualpa
008bf64dd9 Second step toward fixing terrain selection issues. 2021-05-18 14:56:03 +02:00
Atahualpa
18ea4d8eb2 First step toward fixing terrain selection issues. 2021-05-18 14:56:02 +02:00
Bret Curtis
373f8636b7
Merge pull request #3092 from akortunov/master
Do not trigger in-game bindings via mouse buttons when controls are disabled
2021-05-18 10:47:45 +02:00
Bret Curtis
523edd0723
Merge pull request #3093 from akortunov/light_crash
Fix crashes on exit in LightManager
2021-05-18 10:47:36 +02:00
psi29a
ae66afb219 Merge branch 'less_verbose' into 'master'
Make the code less verbose.

See merge request OpenMW/openmw!874
2021-05-18 08:30:50 +00:00
psi29a
e73c0f92b8 Merge branch 'fix_present_tile_crash' into 'master'
Add missing synchronization for present tiles modification

See merge request OpenMW/openmw!878
2021-05-18 08:13:25 +00:00
psi29a
e9fbd76e9b Merge branch 'windows_tests' into 'master'
Support running tests and benchmarks for windows

See merge request OpenMW/openmw!839
2021-05-18 08:12:22 +00:00
psi29a
4bc7012104 Merge branch 'pack-default-settings' into 'master'
Pack default settings

Closes #5925

See merge request OpenMW/openmw!822
2021-05-18 08:11:13 +00:00
elsid
959165bcb9
Support running unit tests on gitlab CI for windows
But not actually run them because gitlab fails to do this.
2021-05-18 01:34:03 +02:00
elsid
3ef1b27099
Add missing includes 2021-05-18 01:21:42 +02:00
AnyOldName3
4cedb3549b Decode base64-packed settings files 2021-05-17 23:39:56 +01:00
Benjamin Winger
21f04f0d0f
Fixed data subrecord name for Armour record used in error 2021-05-17 18:36:59 -04:00
AnyOldName3
081650a2e5 Integrate Base64 library with build 2021-05-17 23:00:23 +01:00
AnyOldName3
2b1326cb74 Change namespace to Base64
The functions do Base64 encoding and decoding and do not feed me
delicious almond and meringue based confectionary.
2021-05-17 22:50:32 +01:00
AnyOldName3
d66cc3b7ae Fix undefined behaviour 2021-05-17 22:47:08 +01:00
AnyOldName3
aba735e615 Check in external Base64 implementation
Taken from https://gist.github.com/tomykaira/f0fd86b6c73063283afe550bc5d77594

MIT licenced
2021-05-17 22:45:10 +01:00
elsid
a73ffc25c3
Add missing synchronization for present tiles modification
insert/erase can be done from multiple threads simultaneously. mMutex is
already used to synchronize reads so use it for writes too.
2021-05-17 17:44:31 +02:00
psi29a
f1f1703441 Merge branch 'fix_navmesh_wait' into 'master'
Fix redundant waiting until navmesh is generated

See merge request OpenMW/openmw!861
2021-05-17 10:54:23 +00:00
Andrei Kortunov
11c57978b6 Fix crashes on exit in the LightManager (bug #6044) 2021-05-17 13:01:15 +04:00
Andrei Kortunov
c54ef55ebb Revert "Replace raw pointer by observer_ptr to avoid dangling pointer dereferencing"
This reverts commit 5373cf1cd5.
2021-05-17 12:40:55 +04:00
Andrei Kortunov
c11774f278 Do not trigger in-game bindings via mouse buttons when controls are disabled (bug #6047) 2021-05-17 12:23:56 +04:00
psi29a
b583c2300c Merge branch 'maybe-fix#5551' into 'master'
Fix #5551

Closes #5551

See merge request OpenMW/openmw!802
2021-05-17 08:16:02 +00:00