Commit Graph

25758 Commits (7af5b3acd2ef5834b707c3feec1773ec0611699d)
 

Author SHA1 Message Date
Evil Eye 004660be3d Don't unsummon creatures not found within the active cells 4 years ago
jvoisin d651f9e60c Remove some useless variables from esmtool 4 years ago
Dan Church 70a0229010
Fix future FFMpeg API changes
avcodec_find_decoder now returns const AVCodec*.
4 years ago
psi29a b2791fd487 Merge branch 'irc' into 'master'
Update IRC links to libera

See merge request OpenMW/openmw!920
4 years ago
Alexey Sokolov 3e4340338f Update IRC links to libera
In README, in OpenCS about dialog, in Travis notification
4 years ago
Evil Eye 4026082494 Merge branch 'fix_sync' into 'master'
Fix what GitHub broke

See merge request OpenMW/openmw!918
4 years ago
psi29a 9058fa9f60 Merge branch 'fix_launcher_ui' into 'master'
Make launcher Advanced/Visuals tab look more like other

See merge request OpenMW/openmw!908
4 years ago
psi29a a487295d39 Merge branch 'fix_new_game_guard' into 'master'
Consider time to destination when try to avoid collision

See merge request OpenMW/openmw!914
4 years ago
Thunderforge 89950e5528 Preventing type conversion of double to float for objectPagingMinSize 4 years ago
Thunderforge 9f2f5174d4 Adding Object Paging Min Size combo box to Advanced -> Visuals
Requested in Discord by CMAugust and hammered out with a few other users.
4 years ago
psi29a 7330921bd6 Merge branch 'statuesque' into 'master'
Use modified paralyze magnitude to fall and float

Closes #6063

See merge request OpenMW/openmw!915
4 years ago
psi29a a5bf056860 Merge branch 'fix_configure_light_buffer_layout' into 'master'
Avoid resetting buffer object when configuring light buffer layout (#6064)

Closes #6064

See merge request OpenMW/openmw!913
4 years ago
jvoisin 8695b6fbc5 Use operator[] instead of at() when the idx is checked 4 years ago
Evil Eye b8472e1303 Use modified paralyze magnitude to fall and float 4 years ago
elsid d4f28ac979
Avoid resetting buffer object when configuring light buffer layout
Otherwise this casues RaceSelectionPreview to have no light until first change.
4 years ago
psi29a 9dfba37ce9 Merge branch 'fix_big_object_navmesh_update' into 'master'
Fix overwhelming recast mesh and navmesh updates for big rotating objects (#6060)

Closes #6060

See merge request OpenMW/openmw!911
4 years ago
elsid e9433a91fb
Add more tests for TileCachedRecastMeshManager 4 years ago
psi29a 825ac6100f Merge branch 'fix_loading_screen' into 'master'
Always center loading screen progress bar by height when there is active message box (#6059)

See merge request OpenMW/openmw!910
4 years ago
psi29a 1ec9d471a2 Merge branch 'specifically_insensitive' into 'master'
Use ciEqual to determine actor-specific answers

Closes #6055

See merge request OpenMW/openmw!912
4 years ago
Evil Eye 1a1085272a Use ciEqual to determine actor-specific answers 4 years ago
elsid 4a6961b365
Trigger navmesh update on moved player only when player tile has been changed 4 years ago
elsid ed91cf9397
Replace unordered_map by map for storing objects
For small amount of items it gives better performance for find by key
for update.
4 years ago
elsid 22c2f106b7
Store object tiles position as sorted vector instead of set 4 years ago
elsid f4f9fa4701
Limit oscillating recast mesh object AABB by tile bounds
AABB change outside recast mesh tile should not affect navmesh for this tile.
4 years ago
elsid d122e184cc
Report navmesh change for not posted tiles
Corresponding recast mesh tiles can be updated but navmesh tiles may never
appear for them. Report back zero navmesh version to allow oscillating recast
objects detection to work. This version is always less than any generated
navmesh tile version so any report for generated navmesh will override it.
If zero navmesh version is reported after recast mesh tile got report about
generated navmesh tile it is a no-op since generated version is always greater
than zero.
4 years ago
elsid 3915e5d2cc
Always center loading screen progress bar by height when there is active message box
To fix all possible situations when active message box overlaps with loading
screen progress.

The only used condition to center loading screen progress by height is
number of message boxes > 0. No need to pass it through interface.
LoadingScreen can check it inside setLabel function.
4 years ago
AnyOldName3 4c4218f70d Merge branch 'hangup-fix' into 'master'
Fix hangup on savegame after manual screenshots.

See merge request OpenMW/openmw!905
4 years ago
Mads Buvik Sandvei d906ec773a Fix hangup on savegame after manual screenshots. 4 years ago
psi29a 05c5688e3a Merge branch 'slider' into 'master'
Make the light distance slider de/increment by 128

Closes #6052

See merge request OpenMW/openmw!904
4 years ago
Dobrohotov Alexei f12a52c603 Make the light distance slider de/increment by 128 4 years ago
Alexei Dobrohotov 6a7bc208de Merge branch 'dont_assign' into 'master'
Don't assign a variable passed by value

See merge request OpenMW/openmw!897
4 years ago
Dobrohotov Alexei e68a454fd8 More ESM cleanup 4 years ago
psi29a dff4b83d9d Merge branch 'stop_threading' into 'master'
Stop osg viewer threading before destructing engine

See merge request OpenMW/openmw!901
4 years ago
psi29a 2a6bd1b0cc Merge branch 'navmesh_tiles_cache_tests' into 'master'
Add more checks to NavMeshTilesCache tests

See merge request OpenMW/openmw!899
4 years ago
psi29a 8774d23830 Merge branch 'FixBsaToolExtract' into 'master'
Update lookup only after sorting files

See merge request OpenMW/openmw!893
4 years ago
elsid 375372981c
Stop osg viewer threading before destructing engine
To avoid rendering while engine parts are destructing.
4 years ago
elsid 105cd5b06f
Add more checks to NavMeshTilesCache tests 4 years ago
jvoisin e51669c05d Don't assign a variable passed by value 4 years ago
psi29a f27d7c66ff Merge branch 'racy_deadcode' into 'master'
Remove both racy and useless code.

See merge request OpenMW/openmw!896
4 years ago
CedricMocquillon 86d137363e Check if the archive is opened before adding a file to it and clear state on close 4 years ago
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
4 years ago
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
4 years ago
CedricMocquillon b61249841e Update lookup only after sorting files 4 years ago
Evil Eye 54d32817d5 Use av_free and maybe get Coverity to understand 4 years ago
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
4 years ago
psi29a c4fde03542 Merge branch 'ObjectPagingMergeIssue' into 'master'
Share state

See merge request OpenMW/openmw!879
4 years ago
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
4 years ago
Thunderforge 945f1aad20 Using override keyword in OpenMW CS
Detected by clang-tidy's modernize-use-override
4 years ago
Thunderforge efcdb2dfdd Using override keyword in most apps
Detected by clang-tidy's modernize-use-override

Future MRs can be created to run this on OpenMW and OpenMW CS
4 years ago
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.
4 years ago