Commit Graph

18177 Commits (f85053d78c7d21484bcf49d75ab2a9fce5ce79f3)

Author SHA1 Message Date
Bo Svensson a854a6e04a
removes UnrefQueue (#3181)
Currently, we use an `UnrefQueue` which supposedly aims to transfer destruction costs to another thread. The implications of this unusual pattern can not be well understood because some allocators might free resources more efficiently if they are freed by the same thread that allocated them. In addition, `UnrefQueue` complicates the validation of thread safety in our engine. Lastly, our current usage of `UnrefQueue` triggers `ref()`, `unref()` atomic operations as objects are passed into the queue. These operations could be more expensive than the actual destruction.

With this PR we thus remove `UnrefQueue`. We can expect these changes to have a minor impact at most because we free most resources elsewhere in `ResourceSystem::updateCache`.
3 years ago
elsid a3b6bc7263
Fix logic expression for not found value 3 years ago
Evil Eye dd4d8b2649 Prevent floating point issues accumulating 3 years ago
psi29a a5b9c9160d Merge branch 'compression' into 'master'
Add functions to compress/decompress vector of bytes

See merge request OpenMW/openmw!1305
3 years ago
elsid 1da9c75692
Add missing initialization for Enchanting::mObjectType 3 years ago
elsid e5413c0664
Add functions to compress/decompress vector of bytes 3 years ago
Petr Mikheev 17f7a1a2ea Merge branch 'fix_lua_test' into 'master'
Fix LuaUtilPackageTest.Transform

See merge request OpenMW/openmw!1302
3 years ago
elsid bb26ba30b6
Add progress reporter type
To log/report progress of long duration operations using given time period.
3 years ago
elsid 23026caacc
Fix LuaUtilPackageTest.Transform
It can fail due to float arithmetic precision with error:
Expected equality of these values:
  getAsString(lua, "moveAndScale")
    Which is: "TransformM{ move(6, 22, 18) scale(0.5, 1, 0.5) rotation(angle=8.53284e-17, axis=(1, 0, 0)) }"
  "TransformM{ move(6, 22, 18) scale(0.5, 1, 0.5) }"
3 years ago
psi29a d8d16a52e1 Merge branch 'esm_loader' into 'master'
Add ESM data loader

See merge request OpenMW/openmw!1301
3 years ago
elsid 046b5f83ee
Add ESM data loader
A component to load ESM content files with limited support for record types and
selection which of them to load. Supported record types are:
ACTI, CELL, CONT, DOOR, GMST, LAND, STAT.
3 years ago
elsid 18d3102148
Do not use union to access FIXED_STRING<4> as int
https://en.cppreference.com/w/cpp/language/union:
> It's undefined behavior to read from the member of the union that wasn't most recently written.
3 years ago
Andrei Kortunov 362c124e8f Allow to place levelled creatures to the game world (bug 6347) 3 years ago
psi29a 00b28d2665 Merge branch 'over_time' into 'master'
Fix particles and magnitudes for (damage) over time effects

See merge request OpenMW/openmw!1298
3 years ago
psi29a 2f0484f4fc Merge branch 'clear_me_not' into 'master'
Do not clear depth buffer in first person (#6078)

Closes #6078

See merge request OpenMW/openmw!1119
3 years ago
glassmancody.info cc009d246f do not clear depth buffer in first person 3 years ago
unknown add6eb9c95 Fix particles and magnitudes for (damage) over time effects 3 years ago
psi29a c051298848 Merge branch 'sqlite3_helpers' into 'master'
Add sqlite3 helpers

See merge request OpenMW/openmw!1299
3 years ago
elsid c88367b6a6
Add sqlite3 helpers 3 years ago
elsid 501316a9f7
Add missing initialization in MWPhysics::Object
==16218== Conditional jump or move depends on uninitialised value(s)
==16218==    at 0xCDBC27: MWPhysics::Object::commitPositionChange() (object.cpp:68)
==16218==    by 0xCE5B64: MWPhysics::PhysicsTaskScheduler::updatePtrAabb(std::shared_ptr<MWPhysics::PtrHolder> const&) (mtphysics.cpp:446)
==16218==    by 0xCE5CC3: operator() (mtphysics.cpp:432)
==16218==    by 0xCE5CC3: for_each<std::_Rb_tree_const_iterator<std::shared_ptr<MWPhysics::PtrHolder> >, MWPhysics::PhysicsTaskScheduler::updateAabbs()::<lambda(const std::shared_ptr<MWPhysics::PtrHolder>&)> > (stl_algo.h:3820)
==16218==    by 0xCE5CC3: MWPhysics::PhysicsTaskScheduler::updateAabbs() (mtphysics.cpp:431)
==16218==    by 0xCE5E35: MWPhysics::PhysicsTaskScheduler::afterPreStep() (mtphysics.cpp:586)
==16218==    by 0xCE6238: operator() (mtphysics.cpp:533)
==16218==    by 0xCE6238: wait<MWPhysics::PhysicsTaskScheduler::doSimulation()::<lambda()> > (barrier.hpp:33)
==16218==    by 0xCE6238: MWPhysics::PhysicsTaskScheduler::doSimulation() (mtphysics.cpp:533)
==16218==    by 0xCE6377: MWPhysics::PhysicsTaskScheduler::worker() (mtphysics.cpp:464)
==16218==    by 0x74523C3: execute_native_thread_routine (thread.cc:82)
==16218==    by 0x76FF258: start_thread (in /usr/lib/libpthread-2.33.so)
==16218==    by 0x78155E2: clone (in /usr/lib/libc-2.33.so)
==16218==

==16218== Conditional jump or move depends on uninitialised value(s)
==16218==    at 0xCDBC30: MWPhysics::Object::commitPositionChange() (object.cpp:73)
==16218==    by 0xCE5B64: MWPhysics::PhysicsTaskScheduler::updatePtrAabb(std::shared_ptr<MWPhysics::PtrHolder> const&) (mtphysics.cpp:446)
==16218==    by 0xCE5CC3: operator() (mtphysics.cpp:432)
==16218==    by 0xCE5CC3: for_each<std::_Rb_tree_const_iterator<std::shared_ptr<MWPhysics::PtrHolder> >, MWPhysics::PhysicsTaskScheduler::updateAabbs()::<lambda(const std::shared_ptr<MWPhysics::PtrHolder>&)> > (stl_algo.h:3820)
==16218==    by 0xCE5CC3: MWPhysics::PhysicsTaskScheduler::updateAabbs() (mtphysics.cpp:431)
==16218==    by 0xCE5E35: MWPhysics::PhysicsTaskScheduler::afterPreStep() (mtphysics.cpp:586)
==16218==    by 0xCE6238: operator() (mtphysics.cpp:533)
==16218==    by 0xCE6238: wait<MWPhysics::PhysicsTaskScheduler::doSimulation()::<lambda()> > (barrier.hpp:33)
==16218==    by 0xCE6238: MWPhysics::PhysicsTaskScheduler::doSimulation() (mtphysics.cpp:533)
==16218==    by 0xCE6377: MWPhysics::PhysicsTaskScheduler::worker() (mtphysics.cpp:464)
==16218==    by 0x74523C3: execute_native_thread_routine (thread.cc:82)
==16218==    by 0x76FF258: start_thread (in /usr/lib/libpthread-2.33.so)
==16218==    by 0x78155E2: clone (in /usr/lib/libc-2.33.so)
==16218==
3 years ago
elsid d06e697356
Initialize RenderingManager fields before use
PostProcessor is constructed before mNearClip, mViewDistance, mFieldOfView are
initialized and the constructor calls updateProjectionMatrix that uses these
fields.

==16218== Conditional jump or move depends on uninitialised value(s)
==16218==    at 0x722EBE: min<float> (stl_algobase.h:235)
==16218==    by 0x722EBE: MWRender::RenderingManager::updateProjectionMatrix() (renderingmanager.cpp:1183)
==16218==    by 0x7D022F: MWRender::PostProcessor::PostProcessor(MWRender::RenderingManager&, osgViewer::Viewer*, osg::Group*) (postprocessor.cpp:144)
==16218==    by 0x728B41: MWRender::RenderingManager::RenderingManager(osgViewer::Viewer*, osg::ref_ptr<osg::Group>, Resource::ResourceSystem*, SceneUtil::WorkQueue*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, DetourNavigator::Navigator&) (renderingmanager.cpp:452)
==16218==    by 0xBB5E65: MWWorld::World::World(osgViewer::Viewer*, osg::ref_ptr<osg::Group>, Resource::ResourceSystem*, SceneUtil::WorkQueue*, Files::Collections const&, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, ToUTF8::Utf8Encoder*, int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (worldimp.cpp:190)
==16218==    by 0xDEEA6F: OMW::Engine::prepareEngine(Settings::Manager&) (engine.cpp:789)
==16218==    by 0xDF2068: OMW::Engine::go() (engine.cpp:959)
==16218==    by 0xDE7B8F: runApplication(int, char**) (main.cpp:220)
==16218==    by 0x1006593: wrapApplication(int (*)(int, char**), int, char**, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (debugging.cpp:205)
==16218==    by 0x7152C3: main (main.cpp:232)
==16218==

==17455== Conditional jump or move depends on uninitialised value(s)
==17455==    at 0x4F8613F: osg::Matrixd::makeFrustum(double, double, double, double, double, double) (Matrix_implementation.cpp:916)
==17455==    by 0x4EC0E11: osg::Camera::setProjectionMatrixAsPerspective(double, double, double, double) (Matrixd:580)
==17455==    by 0x722DDA: MWRender::RenderingManager::updateProjectionMatrix() (renderingmanager.cpp:1167)
==17455==    by 0x7D01EF: MWRender::PostProcessor::PostProcessor(MWRender::RenderingManager&, osgViewer::Viewer*, osg::Group*) (postprocessor.cpp:144)
==17455==    by 0x728BA1: MWRender::RenderingManager::RenderingManager(osgViewer::Viewer*, osg::ref_ptr<osg::Group>, Resource::ResourceSystem*, SceneUtil::WorkQueue*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, DetourNavigator::Navigator&) (renderingmanager.cpp:453)
==17455==    by 0xBB5E25: MWWorld::World::World(osgViewer::Viewer*, osg::ref_ptr<osg::Group>, Resource::ResourceSystem*, SceneUtil::WorkQueue*, Files::Collections const&, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, ToUTF8::Utf8Encoder*, int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (worldimp.cpp:190)
==17455==    by 0xDEEA3F: OMW::Engine::prepareEngine(Settings::Manager&) (engine.cpp:789)
==17455==    by 0xDF2038: OMW::Engine::go() (engine.cpp:959)
==17455==    by 0xDE7B5F: runApplication(int, char**) (main.cpp:220)
==17455==    by 0x1006563: wrapApplication(int (*)(int, char**), int, char**, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (debugging.cpp:205)
==17455==    by 0x7152C3: main (main.cpp:232)
==17455==
3 years ago
psi29a ac3c02496c Merge branch 'terrainselectionoptimize' into 'master'
Terrain selection optimizations

See merge request OpenMW/openmw!1261
3 years ago
Chris Djali 9c040d1ff7
Merge pull request #3175 from bosvensson1/patch-52
removes sky bounds
3 years ago
unelsson 14c4bba4a3 Remove unused include 3 years ago
unelsson 28278e9a82 Drawing duplicate lines is faster than iterating through big containers 3 years ago
unelsson 55456a19fc Only iterate through temporary selection when using toggle 3 years ago
unelsson 46960825ef Various terrain selection and editmode dragging fixes 3 years ago
unelsson 89a20b6ea5 Call dragEnded instead of pressed also after aborted operation 3 years ago
unelsson 3df9ceda03 Remove measurement code 3 years ago
unelsson 7602d677fa Terrain selection optimizations, measurements, renderBin change 3 years ago
psi29a ed1953b811 Merge branch 'actor_souls_only' into 'master'
Don't hit the ground

Closes #6339

See merge request OpenMW/openmw!1295
3 years ago
Evil Eye 5805c0114a Don't hit the ground 3 years ago
psi29a 29082ff658 Merge branch 'morrowland_the_musical' into 'master'
Stop trying to play non-existent music files started by scripts

See merge request OpenMW/openmw!1293
3 years ago
psi29a 787da4891c Merge branch 'actor_souls_only' into 'master'
Check if the target is an actor before updating magic effects

Closes #6339

See merge request OpenMW/openmw!1294
3 years ago
psi29a 89077af3ff Merge branch 'getters' into 'master'
Move getters to header in order to allow inlining (performance optimization)

See merge request OpenMW/openmw!1289
3 years ago
Evil Eye bba80b07a2 Check if the target is an actor 3 years ago
Bo Svensson db3d938ee9
cleans up BSAFile (#3177)
We currently build a large map of a BSAFile's contents unused by Open MW. We already map archive contents in VFS. With this PR we remove the map from BSAFile and reimplement its only current use in BSATool.
3 years ago
psi29a e86b9a7b89 Merge branch 'add_comment' into 'master'
Add comment for MWWorld::Ptr::getType() because it is not obvious.

See merge request OpenMW/openmw!1291
3 years ago
Evil Eye 4a6464ea67 Stop trying to play non-existent music files started by scripts 3 years ago
Evil Eye ec6451e93a Merge branch 'recordtype' into 'master'
Avoid copying std::string in MWWorld::Ptr::getTypeDescription()

See merge request OpenMW/openmw!1290
3 years ago
Bo Svensson fc9ab97950
sky.cpp 3 years ago
Petr Mikheev 4e9d691715 Add comment for MWWorld::Ptr::getType() because it is not obvious. 3 years ago
Evil Eye 6b482d0b52 Merge branch 'openmw-tradeglitch' into master 3 years ago
psi29a 6ec66edb7c Merge branch 'soulful' into 'master'
Fix soul trapping for one shot kills

Closes #6337

See merge request OpenMW/openmw!1288
3 years ago
psi29a 67fa8413f3 Merge branch 'physics_heightfield' into 'master'
Replace float type for arguments to create heightfield with int

See merge request OpenMW/openmw!1285
3 years ago
psi29a 207a7245bc Merge branch 'navigator_settings' into 'master'
Initialize navigator max climb and max slope settings in makeSettingsFromSettingsManager

See merge request OpenMW/openmw!1283
3 years ago
psi29a 444765e304 Merge branch 'navmesh_agent_half_extents' into 'master'
Define default actor half extents in settings

See merge request OpenMW/openmw!1282
3 years ago
Petr Mikheev a8acc19988 Avoid copying std::string in MWWorld::Ptr::getTypeDescription() 3 years ago
elsid 405e814190
Move btCollisionObject creation for MWPhysics::Object into components 3 years ago
Evil Eye ae4578f566 Fix soul trapping for one shot kills 3 years ago
Petr Mikheev fec65acd18 Move getters to header in order to allow inlining 3 years ago
elsid 144862aa35
Define default actor half extents in settings
Player's half extents may change over time when wolfskin model is used for
example. Having it in settings is a more presistent approach.
3 years ago
elsid 7c5a590890
Replace float type for arguments to create heightfield with int
To reduce amount of computations on the caller side and restrict possible
values.

* verts can't be non-int because it's a number of things.
* worldsize is initially defined as int by ESM::Land::REAL_SIZE.
* Put function to calculate heightfied shift into components to be able to
  reuse by other binaries.
3 years ago
elsid 6986feb81b
Initialize navigator max climb and max slope settings in makeSettingsFromSettingsManager
To avoid having multiple places to initialize them when they will be required
by multiple binaries.
3 years ago
Bo Svensson d6613d3677
mostly reverts MWLua changes (#3170)
We just can no longer use the former ptr.getTypeName() as a fallback, but I do not suppose it matters. This value was an implementation defined string that usually contained a garbled mess.
Probably we should additionally refactor Lua types completely now that we have Ptr::getType(). I will leave this up to MWLua developers.
3 years ago
Bo Svensson 5cf9995a31
fixes windows build 3 years ago
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.
3 years ago
Bo Svensson 98f8295765
allows to skip ComputeLightSpaceBounds traversal (#3152)
Currently, we always traverse the scene graph an additional time with a ComputeLightSpaceBounds visitor during shadow casting. ComputeLightSpaceBounds is only useful when the shadow casting mask allows us to shrink the bounds of the rendered scene, so we guard its traversal with a check against getCastsShadowTraversalMask. In practice, this guard never works because we build the traversal mask inclusively.

With this PR we limit the getCastsShadowTraversalMask check to relevant masks. This new check allows us to skip a superfluous ComputeLightSpaceBounds traversal with most settings.
3 years ago
psi29a 66a6b80df9 Merge branch 'thrust_into_the_light' into 'master'
Detect keys and enchanted items in containers without custom data

Closes #6326

See merge request OpenMW/openmw!1265
3 years ago
psi29a f9124ccea6 Merge branch 'recast_mesh_slope' into 'master'
Use different colors for walkable and non-walkable recast mesh triangles

See merge request OpenMW/openmw!1277
3 years ago
psi29a 3e2694dde9 Merge branch 'catch_me' into 'master'
Remove active effects from spells that no longer exist

See merge request OpenMW/openmw!1273
3 years ago
psi29a d3bad2dba2 Merge branch 'stripperiffic_werewolves' into 'master'
Remove magic effects before saving stats when turning into a werewolf

Closes #6330

See merge request OpenMW/openmw!1270
3 years ago
psi29a 21c4504d35 Merge branch 'max_slope' into 'master'
Change max walkable slope angle to 46 degrees

See merge request OpenMW/openmw!1280
3 years ago
Bo Svensson cbcdd705ee
minor objectpaging.cpp scene graph optimisations (#3155)
We now use PositionAttitudeTransform for unmerged nodes because I have been informed PositionAttitudeTransform's scene graph performance is measurably faster than MatrixTransform's. We still need to use MatrixTransform for merged nodes because the Optimizer has limited support for non-MatrixTransform nodes. These MatrixTransforms will be removed in the merging process anyway.
3 years ago
elsid ff9aabafd1
Change max walkable slope angle to 46 degrees
This is the value used by vanilla Morrowind engine. At this angle player
character starts sliding down the slope.

This fixes navigation and movement issue in Mournhold, Godsreach.
3 years ago
Bo Svensson af759683b8
enables std::move in keywordsearch.hpp (#3163)
For some reason we have commented std::move keywords in keywordsearch.hpp while they are quite beneficial. openmw_test_suite for keywordsearch.hpp takes 30% less time with these changes.
3 years ago
elsid 0c8a811ad5
Render only cached recast mesh
To avoid waiting while recast mesh is generating.

Remove redundant continue.
3 years ago
Evil Eye 3d5950f790 Remove active effects from spells that no longer exist 3 years ago
Evil Eye ec735529da Remove active effects from the player when transforming 3 years ago
Evil Eye f6eeee3ad5 Detect keys and enchanted items in containers without custom data 3 years ago
psi29a 7af245d205 Merge branch 'sync_sync_with_async' into 'master'
Merge logic of sync and async physics simulation

See merge request OpenMW/openmw!1250
3 years ago
psi29a ae31138686 Merge branch 'options_tests' into 'master'
Add tests for openmw options

See merge request OpenMW/openmw!1253
3 years ago
psi29a 9c47fdcf7e Merge branch 'flip_sign' into 'master'
Fix regression #6328

Closes #6328

See merge request OpenMW/openmw!1267
3 years ago
psi29a 1332e57195 Merge branch 'outside_means_outside' into 'master'
Make StayOutside only block teleportation from exteriors to interiors

Closes #6323

See merge request OpenMW/openmw!1268
3 years ago
psi29a fc7e13d76a Merge branch 'omwaddon_dep' into 'master'
Allow creating omwaddons without a dependency on an omwgame

See merge request OpenMW/openmw!1243
3 years ago
Evil Eye caafd0c667 Remove CE enchantments before saving stats when turning into a werewolf 3 years ago
psi29a 1f62fd3b56 Merge branch 'Fix_Keyword_Report_to_caius' into 'master'
Fix keyword search when the keyword is preceded by a non whitespace non alpha character

Closes #6308

See merge request OpenMW/openmw!1266
3 years ago
florent teppe e5abadc234 Fix keyword search when the keyword is preceded by a non whitespace non alpha character 3 years ago
psi29a 555224a0fb Merge branch 'fixes' into 'master'
Make compilers happy and fix the changelog

See merge request OpenMW/openmw!1260
3 years ago
Evil Eye dfc72e9b7e Make StayOutside only block teleportation from exteriors to interiors 3 years ago
Evil Eye 7540265432 Fix regression #6328 3 years ago
Bo Svensson 787f91211d resets state updater to apply light settings (#3141)
resets state updater to apply light settings

With this PR we achieve the same effect with fewer lines of code.
3 years ago
psi29a c3f5e8f968 Merge branch 'lua_transform' into 'master'
3D transforms in Lua

See merge request OpenMW/openmw!1235
3 years ago
elsid 035307b012
Add tests for openmw options
In attempt to document current behaviour. Add commented out checks as desired
behaviour.
3 years ago
Kindi ce54edf011 Update tradewindow.cpp
Additional check
3 years ago
Bo Svensson 442a0e8434
avoids two transforms in sky.cpp (#3150)
As we discovered in #3148, `Transform` nodes and their low level equivalence `pushModelViewMatrix` are somewhat costly involving a `Matrix::invert` operation per frame.

With this PR we avoid one `Transform` node for sun flashes and avoid another `pushModelViewMatrix` call in case the sun is fully visible.
3 years ago
fredzio 3b174d72d8 Introduce 3 scoped mutex wrappers to allow to conditionally skip taking
mutexes in synchronous case.
3 years ago
fredzio 21dbe314bf Use common function for sync and async case. Now both cases follow the
same flow, synchronous simulation is just a special case.
3 years ago
Frederic Chardon 499b161e7b Merge handleFall() and updateMechanics() into updateActor(). It remove gratuitious differences between sync and async cases. Also, it will make the after simulation update logic easier to follow when projectiles move into the simulation thread. 3 years ago
Bret Curtis 0d1d3e67bc
Merge pull request #3149 from bosvensson1/patch-24
With this PR we fix a -Wreorder warning.
3 years ago
Bo Svensson 4b1c009ffd
use StateSet define for translucentFramebuffer (#3138)
With this PR we test out osg's shader define system for a somewhat harmless feature. As we can see, our code becomes more concise and efficient in this case. Most importantly, we no longer create unneeded vertex shader objects.
3 years ago
Bo Svensson b2af81bc18
converts remaining osg::NodeCallback (#3147)
With this PR we convert remaining instantiations of the deprecated osg::NodeCallback in Open MW to SceneUtil::NodeCallback.
3 years ago
Bo Svensson 9f58616aa0
fixes -Wreorder warning 3 years ago
Bo Svensson 8e9851c97c
npcanimation.cpp (#3148) 3 years ago
Kindi d9b254178f Update tradewindow.hpp
remover redundant
3 years ago
Kindi f28d6738bf Update tradewindow.cpp 3 years ago
Bo Svensson e4a9eefc2a
uses a bitfield in refdata.hpp (#3143)
* uses a bitfield in refdata.hpp

With this simple change we pack boolean values to reduce the memory requirements of game objects.

* refdata.hpp [ci skip]

* refdata.cpp
3 years ago
Bo Svensson aaf7b423d6
adds a replacement for osg::NodeCallback (#3144)
* nodecallback.hpp

* lightmanager.hpp

* lightmanager.cpp

* lightmanager.hpp

* nodecallback.hpp

* nodecallback.hpp

* [ci skip]

* lightmanager.hpp

* nodecallback.hpp

* nodecallback.hpp

* lightmanager.cpp

* lightmanager.cpp

* nodecallback.hpp

* [ci skip]

* [ci skip]

* controller.cpp

* [ci skip]

* osgacontroller.cpp

* keyframe.hpp

* controller.hpp

* keyframe.hpp

* [ci skip]

* keyframe.hpp

* animation.hpp

* [ci skip]

* weaponanimation.cpp

* nodecallback.hpp
3 years ago
Kindi 0c1b78c42a Update tradewindow.cpp curly 3 years ago
kuyondo 071793eeb3 Merge branch 'master' of https://gitlab.com/Kuyondo/openmw 3 years ago
kuyondo 49da33a129 comiit 3 years ago
Evil Eye d680aa26e9 Disallow switch fallthrough 3 years ago
psi29a 0e07fc38e5 Merge branch 'opencs-ui-tweaks' into 'master'
Minor UI tweaks all around OpenMW-CS

See merge request OpenMW/openmw!1212
3 years ago
Matjaž Lamut 1c9f06f742 Minor UI tweaks all around OpenMW-CS 3 years ago
psi29a 2c8c36fe5d Merge branch 'master' into 'effective_magic'
# Conflicts:
#   CHANGELOG.md
3 years ago
psi29a bd866cf210 Merge branch 'fix_infidelities' into 'master'
Fix Infidelities quest from Tribunal (#6307)

Closes #6307

See merge request OpenMW/openmw!1248
3 years ago
psi29a 1d342f80ed Merge branch 'cursorspeedmerge' into 'master'
Updated: Change cursor speed with settings.cfg (#6312)

Closes #6312

See merge request OpenMW/openmw!1255
3 years ago
psi29a f6b27f610d Merge branch 'revert_and_twist' into 'master'
Revert and restore the cell grid size with alternate fix

See merge request OpenMW/openmw!1259
3 years ago
Bret Curtis 52a10a4bc0 remove one last assert 3 years ago
Bo Svensson 2568f119a4
reapplies PR without npe (#3137)
* avoids creating empty statesets on drawables

Currently, we attempt to skip creating state on drawable nodes when this state matches the default state. This attempt is incomplete because we still create an avoidable empty stateset in the default case.

* renderingmanager.cpp

* nifloader.cpp

* nifloader.cpp

* shadervisitor.cpp
3 years ago
psi29a 9cf9da9cbd Merge branch 'fix' into 'master'
Resolve warning: lambda capture 'defaultCollisionType' is not required to be captured for this use

See merge request OpenMW/openmw!1247
3 years ago
andrewapp b5af192888 gamepad cursor speed fix 3 years ago
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. 3 years ago
Evil Eye 2de7b8e2fb Allow non-biped creatures using weapons to open doors 3 years ago
Evil Eye 4abcb0d7b9 Remove applied magnitude instead of min magnitude 3 years ago
Evil Eye 63a9203dde Fix icon magnitude 3 years ago
Evil Eye 43074347e8 Prevent spell duplication 3 years ago
Evil Eye b8e4f18751 Clear temporary effects before unloading actors to prevent absorb effects becoming permanent 3 years ago
Evil Eye 161e042e2a Prevent iterator invalidation when cleaning up summons 3 years ago
Evil Eye dc1fe62dde Overhaul magic effects to work with onApply and onEnd events 3 years ago
Andrei Kortunov e109d86489 Revert "avoids creating empty statesets on drawables (#3132)"
This reverts commit 957c25a491.
3 years ago
Bo Svensson d8707a763f
fixes build (#3134)
* quadtreeworld.cpp

* renderingmanager.cpp [ci skip]

* quadtreeworld.hpp

* cellborder.hpp

* cellborder.cpp
3 years ago
Bret Curtis 803195a05f add back some explicit includes 3 years ago
Bo Svensson 8358418555
set the correct program link parameters (#3110)
* shadermanager.hpp setProgramTemplate

* shadermanager.hpp

* shadermanager.cpp setProgramTemplate

* shadervisitor.hpp setProgramTemplate

* shadervisitor.cpp setProgramTemplate

* scenemanager.cpp setProgramTemplate

* scenemanager.hpp setProgramTemplate

* renderingmanager.cpp

* groundcover.cpp setProgramTemplate

* groundcover.hpp

* groundcover.cpp

* shadervisitor.cpp

* util.cpp

* lightmanager.cpp

* scenemanager.cpp

* scenemanager.hpp

* lightmanager.cpp

* lightmanager.cpp

* lightmanager.cpp

* scenemanager.hpp [ci skip]

* water.cpp

* groundcover.cpp

* shadermanager.hpp
3 years ago
Andrei Kortunov 1109cc3ac7
Remove unused data field (#3133) 3 years ago
Bo Svensson 957c25a491
avoids creating empty statesets on drawables (#3132)
* avoids creating empty statesets on drawables

Currently, we attempt to skip creating state on drawable nodes when this state matches the default state. This attempt is incomplete because we still create an avoidable empty stateset in the default case.

* renderingmanager.cpp

* nifloader.cpp
3 years ago
Andrei Kortunov fc2076db1a
Fix MSVC warnings about local variables redeclaration (#3130) 3 years ago
elsid c0ef4417c3
Check AiTravel destination for other actors presence
Use faster aabbTest but without destance filter. To avoid dependency on a
specific constant and correctly handle situations when there is a big
difference between actors sizes.
3 years ago
elsid 9950132a5f
Allow travelling actors find path over pathgrid navmesh area type
In addition to other navmesh areas. This makes actors behaviour closer to
vanilla when pathgrid is correct.
3 years ago
elsid 163968f578
Normalize area cost factor
Recastnavigation uses path cost and heuristic based on distance to find
shortest path by A* algorithm. Using raw speed values makes cost much lower
value than heuristic (1000 times less at maximum). Heuristic is defined as
distance from node to target * 0.999 that means area cost should never be less
than 0.999 or 1 for simplicity.

Use max speed to make lowest possible cost factor equal to 1.
3 years ago
Petr Mikheev 48538d5cef 3D transforms in Lua 3 years ago
Petr Mikheev eb2f863b7d Resolve `unused-lambda-capture` warnings 3 years ago
Petr Mikheev fb3917fc1a Lua callbacks 3 years ago
Petr Mikheev 0bd1c22e24 Raycasting in Lua 3 years ago
Bret Curtis fd251dfe55 remove unused member variable 3 years ago
Bo Svensson 5fde6867a2
removes unused code (#3129)
* scenemanager.cpp

* scenemanager.hpp

* scenemanager.cpp

* stats.cpp

* renderingmanager.cpp
3 years ago
Evil Eye 77a23dab09 Only add enabled objects to the scene 3 years ago
Petr Mikheev e760a6c7e6 Merge branch 'forlua' into 'master'
Simple Physics API modification for Lua

See merge request OpenMW/openmw!1216

(cherry picked from commit d88494c90b501d0832ae0330a0ca81d8b8e5aa50)

02dd055a Save hitObject in castSphere() just like in castRay()
0793d0bf Allow to override collision mask and group for castSphere() as for castRay()
3 years ago
Bo Svensson 01cc61087b
improves paging preloader (#3126)
* Return check for distance when we try to reuse data

* [ci skip]

* [ci skip]

* [ci skip]

* [ci skip]

* [ci skip]

* cellpreloader.cpp

* [ci skip]

* [ci skip]

* [ci skip]

* [ci skip]

* [ci skip]

* [ci skip]

* [ci skip]

* [ci skip]

* quadtreeworld.cpp

* chunkmanager.cpp

* chunkmanager.cpp

* cellpreloader.cpp

* jvoisin

* whitespace

* whitespace
3 years ago
psi29a 782e0710af Merge branch 'OpenCS-preserve-blocked' into 'master'
OpenCS - Preserve "blocked" record flags when saving. #6288

Closes #6288

See merge request OpenMW/openmw!1052
3 years ago
psi29a 908d196fee Merge branch 'master' into 'undead_intelligence'
# Conflicts:
#   CHANGELOG.md
3 years ago
psi29a ade6cd0127 Merge branch 'editor_columns_filtering' into 'master'
Toggling table columns visibility. Partially implements #890

Closes #890

See merge request OpenMW/openmw!1232
3 years ago
psi29a 2cee222e73 Merge branch 'explosion_at_impact' into 'master'
Bring arrow behaviour in line with vanilla (#6233 and other change)

See merge request OpenMW/openmw!1188
3 years ago
Bo Svensson c6f7137ee1
fixes bugs with share state (#3111)
* optimizer.cpp merge fix

* objectpaging.cpp

* optimizer.hpp setSharedStateManager

* optimizer.cpp shareState

* scenemanager.cpp shareState

* scenemanager.cpp

* optimizer.cpp

* optimizer.cpp

* scenemanager.cpp

* optimizer.cpp
3 years ago
Evil Eye 233bb287e1 Merge branch 'refactoring2' into 'master'
Minor refactoring: use Misc::normalizeAngle in worldimp.cpp

See merge request OpenMW/openmw!1242
3 years ago
Evil Eye 30c998f34e Merge branch 'test_cells' into 'master'
Use same logic for testing cell as for loading cell

See merge request OpenMW/openmw!1240
3 years ago
Evil Eye 34cf66139a Make GetCurrentAIPackage return -1 for non-actors and dead actors 3 years ago
Evil Eye 2f4df12b2e Merge branch 'Fix_ASCII' into 'master'
Fixed an issue where keyword search expected the text to be all ASCII characters

See merge request OpenMW/openmw!1227
3 years ago
Petr Mikheev 413ac067ec Allow creating omwaddons without a dependency on an omwgame 3 years ago
Petr Mikheev 83e0d9aeef Minor refactoring: use Misc::normalizeAngle in worldimp.cpp 3 years ago
psi29a e2e5161d81 Merge branch 'optimizebrushdraw' into 'master'
Optimize terrain editing brush drawing performance

Closes #6285

See merge request OpenMW/openmw!1226
3 years ago
elsid 5878b1fce6
Use same logic for testing cell as for loading cell
Having different branches makes testing less useful. If something fails in
regular executing it should fail in testing. To make it possible there should
be none differences in the execution paths.
3 years ago
elsid d36595e09e
Make sure PathFinder::getClosestPoint is not called with failing precondition
Pathgrid should be not nullptr and points should be not empty.
3 years ago
Pi03k e641bea606 Toggling table columns visibility 3 years ago
Petr Mikheev 5893b88409 Ignore time to destination when giving way (#6296) 3 years ago
Bo Svensson b22fb7a7bf
consolidate node mask checks (#3125)
* consolidate node mask checks

This PR simplifies a few checks against node masks in object paging by using the osg provided `setTraversalMask`.

* objectpaging.cpp
3 years ago
Evil Eye 786b6b7c9a Merge branch 'lua_util' into 'master'
Move LuaState::makeReadOnly(sol::table) out of the class

See merge request OpenMW/openmw!1229
3 years ago
florent.teppe d9c3ba03f4 Uses limits instead of climits 3 years ago
Bo Svensson 99df1c695c
fixes wireframe is broken (#3123)
* renderingmanager.cpp [ci skip]

* groundcover.hpp [ci skip]

* groundcover.cpp

* renderingmanager.cpp [ci skip]

* renderingmanager.hpp
3 years ago
florent.teppe 2d32954888 Replaced Assert_true with expect_eq 3 years ago
psi29a 15bcbb5844 Merge branch 'getsquareroot' into 'master'
Remove duplicate GetSquareRoot implementation

See merge request OpenMW/openmw!1231
3 years ago
Evil Eye 831055f878 Merge branch 'OpenCS-fix-modify' into 'master'
OpenCS - Re-implement the fix for Issue #6067.

See merge request OpenMW/openmw!1173
3 years ago
florent.teppe 0e06e9b221 Removed useless comment and converted the file to UTF8 to keep special characters 3 years ago
Evil Eye 6d7cb38834 Remove duplicate GetSquareRoot implementation 3 years ago
florent.teppe c1c501ca35 Added test to make sure keyword search works even with non ascii characters 3 years ago
florent.teppe bcb0526268 Added climits, it compiled on VS2019, but not with g++ 3 years ago
Petr Mikheev 2f25257a3e Move LuaState::makeReadOnly(sol::table) out of the class because it doesn't need to access LuaState internals. 3 years ago
Petr Mikheev f1e3c55ea3 Fix deadlock in Lua worker thread (#6286) 3 years ago
florent.teppe 76be2e91e5 Fixed an issue where keyword search expected the text to be all ASCII characters 3 years ago
psi29a 68db9869f5 Merge branch 'DistantTerrainDebugChunks' into 'master'
Debug terrain chunks

See merge request OpenMW/openmw!1169
3 years ago
psi29a 18f5762a76 Merge branch 'master' into 'OpenCS-preserve-blocked'
# Conflicts:
#   CHANGELOG.md
3 years ago
unelsson 70e210735a Optimize terrain editing brush drawing performance 3 years ago
Pi03k 4ff5a04e9b Remove redundant qt-related cmake macros 3 years ago
Bo Svensson f62adab43a
Avoid the terrain sync completely in most cases (#3103)
We can take elsid's commit 605cb8d further by avoiding the terrain sync completely in most cases. Currently in changeCellGrid we wait for a new preloading task to ensure the getPagedRefnums for the new active cells have been filled in by object paging. This is usually not necessary because we have already completed a preload in the past containing these active cells. With this PR we remember what we preloaded and skip the terrain sync if it is not needed.
3 years ago
psi29a 2be3a76b6a Merge branch 'spin_me_right_round' into 'master'
Reset rotation when respawning actors

Closes #6273

See merge request OpenMW/openmw!1219
3 years ago
psi29a 24d1c2b5fa Merge branch 'recurse_directory_iterator' into 'master'
VFS manager refactoring

See merge request OpenMW/openmw!1218
3 years ago
Cédric Mocquillon 6817282097 Move getFileExtension to common header and use instead of repeating same code 3 years ago
Cédric Mocquillon c2df0949e2 Change normalizeFilename signature 3 years ago
Cédric Mocquillon d4e26746a3 Use recurse subdirectory iterator to iterate over the VFS without exposing internal details 3 years ago
Evil Eye 60298cd66d Reset rotation when respawning actors 3 years ago
pi03k e4eeb9cce9 Remove 'no relevant classes' moc warning 3 years ago
Bo Svensson b6f572578e
Groundcover optimisation (#3101)
* groundcover.cpp share state

* groundcover.hpp share state
3 years ago
psi29a 0ab8a7ddd7 Merge branch 'create-objects-menu' into 'master'
OpenMW-CS: Usability changes to the drop-down menu when creating a new object.

See merge request OpenMW/openmw!1210
3 years ago
psi29a c40f921396 Revert "actoranimation.cpp faster getbonebyname (#3099)"
This reverts commit c284d0cf5c
3 years ago
Cédric Mocquillon 080c909c28 Merge the 'debug chunks' and 'object paging debug batches' settings into a single one 3 years ago
Bo Svensson e2d0e86020
cellpreloader.cpp unused variable (#3102) 3 years ago
psi29a f8c7664234 Merge branch 'copy_before_move' into 'master'
Maybe fix #6259

Closes #6259

See merge request OpenMW/openmw!1197
3 years ago
Bo Svensson ac72f3d636
reduces virtual function calls in a hotspot of cache retrieval (#3100)
* chunkmanager.cpp static_cast [ci skip]

* groundcover.cpp static_cast [ci skip]

* Update objectpaging.cpp

objectpaging.cpp static_cast [ci skip]
3 years ago
Bret Curtis 1edeffbafc constify getBoneByName 3 years ago
Bo Svensson 9d661359a1
Groundcover consolidation (#3096)
* chunkmanager.hpp viewdistance

* chunkmanager.cpp viewdistance

* chunkmanager.hpp viewdistance

* quadtreeworld.cpp viewdistance

* quadtreeworld.cpp consolidate

* quadtreeworld.hpp consolidate

* renderingmanager.cpp groundcover consolidate

* renderingmanager.hpp groundcover consolidate

* renderingmanager.cpp updater move

* renderingmanager.hpp updater move

* groundcover.hpp activegrid consolidation

* groundcover.cpp activegrid consolidation

* settings-default.cfg dead settings remove

* viewdata.cpp revert

* wrong file paste mistake

* wrong file paste mistake

* wrong file paste mistake

* renderingmanager.cpp updatecallback fix

* renderingmanager.cpp namespace fix

* groundcover.hpp redefinition fix

* groundcover.cpp redefinition fix

* renderingmanager.cpp crash fix

* renderingmanager.cpp euclidean groundcover distance

* viewdata.hpp getreusedistance

* quadtreeworld.cpp reusedistance

* groundcover.rst [ci skip]
3 years ago
Bo Svensson c284d0cf5c
actoranimation.cpp faster getbonebyname (#3099) 3 years ago
Bo Svensson 147ed39900
This PR solves a crash with Robert's bodies logged on your bugtracker. (#3095)
* attach.cpp [ci skip]

* attach.cpp [ci skip]

* attach.cpp [ci skip]

* npcanimation.cpp [ci skip]

* attach.hpp [ci skip]

* attach.cpp [ci skip]

* creatureanimation.cpp [ci skip]

* creatureanimation.cpp [ci skip]

* cellpreloader.cpp

* npcanimation.cpp

* attach.cpp

* make android adk happy

* make android adk happy

* changelog.md [ci skip]

* authors.md [ci skip]
3 years ago
Lamoot 6e6214bc43 In OpenMW-CS, when creating a new object, sort the entries in the drop-down menu alphabetically. Also have the menu be tall enough to show all of them at once (without scroll bars). 3 years ago
elsid 6b7434ca69
Pass std::string_view instead of const std::string&
* Starting with Actor::getBodyPartMesh and ending with
  Misc::StringUtils::ciEqual.
* Add tests for Misc::StringUtils::ciEqual.
3 years ago
psi29a 149241daae Merge branch 'dead_animation_code_removal' into 'master'
Dead animation code removal

Closes #6264

See merge request OpenMW/openmw!1198
3 years ago
JanuarySnow bdbc6c0cba Dead animation code removal 3 years ago
psi29a 4bf22f3ca0 Merge branch 'fix_pathgrid_path' into 'master'
Use pathgrid path when destination is closer to different graph component node

See merge request OpenMW/openmw!1155
3 years ago
elsid 605cb8db7c
Make sync terrain preloading sleep free
This reduces average time spent on in. 5 milliseconds as a base precision is
quite a lot considering that for 60 FPS frame time is 1000/16 = ~16.67 ms
when it's a cell loading frame and there is more important work to do rather
than sleeping.
3 years ago
psi29a aef6ec464c Merge branch 'optimize_add_item' into 'master'
Optimize ContainerStore::stacks (attempt #2)

See merge request OpenMW/openmw!1200
3 years ago
elsid 403f0a72f0
Do not copy RefId when need to compare
Makes ContainerStore::stacks ~4x times faster when adding 4k different items
in a single frame.
3 years ago
elsid e910dd7a25
Rename CellRef::getRefIdPtr -> getRefIdRef and return reference
Return value can't be nullptr. Pointer complicates the code because has to be
dereferenced.

Also move function definition to hpp to make it easier for compiler to optimize
calls.
3 years ago
elsid b0f772af40
Define dependency to OSG plugins in one place
Each binary depending on components library requires OSG plugins to be linked.
Duplicating dependecies for each binary does not give benefits and brings
problems when new binary is added.
3 years ago
Frederic Chardon 7b26058fa5 moveObject() has side effects that might invalidate iterators from mActors. Instead of iterating over mActors, make a copy of needed data and iterate over the copies. 3 years ago
psi29a 6170971ea3 Merge branch 'bettermoveinstance' into 'master'
Set instance movement based on camera zoom

See merge request OpenMW/openmw!1186
3 years ago
elsid a8c16071dc
Fix -Wreturn-local-addr warning
/home/elsid/dev/openmw/apps/opencs/model/world/actoradapter.cpp: In member function ‘const string& CSMWorld::ActorAdapter::ActorData::getPart(ESM::PartReferenceType) const’:
/home/elsid/dev/openmw/apps/opencs/model/world/actoradapter.cpp:142:20: error: returning reference to temporary [-Werror=return-local-addr]
  142 |             return "";
      |                    ^~
3 years ago
Petr Mikheev 76320aae45 Merge branch 'const_ret_val' into 'master'
Don't use `const` for objects returned by value.

See merge request OpenMW/openmw!1183
3 years ago
psi29a a57b5674e5 Merge branch 'hash_actors' into 'master'
Replace std::map with std::unordered_map and use constant Ptr.mRef as a key

See merge request OpenMW/openmw!1129
3 years ago
psi29a a0201feb97 Merge branch 'lua_tostring' into 'master'
Function LuaUtil::toString

See merge request OpenMW/openmw!1187
3 years ago
fredzio d20730458d Replace std::map with std::unordered_map for mActors and mObjects.
Use Ptr.mRef as a key instead of Ptr: it is constant for the lifetime of
the object.
3 years ago
fredzio 0bce6c09e1 Change projectile behaviour to be like in vanilla wrt. water plane:
- enchanted arrow explode upon hit the water plane
- non enchanted arrow disappear (or more accurately, they hit nothingness)
- enchanted arrow shot underwater explode immediately
- non enchanted arrow disappear immediately

Also, solve a bug that occured previously and could theoritically still happens where we use the last tested collision position for instead of the last registered hit:
Use the hit position as saved inside Projectile::hit() instead of the last position saved inside the callback.
If a projectile collides with several objects (bottom of the sea and water surface for instance), the last collision tested won't necessarily be the impact position as we have no control over the order in which the tests are performed.
3 years ago
jvoisin d4e3575f1d Don't use `const` for objects returned by value.
This prevents the usage of std::move semantics,
and makes clang-tidy sad.
3 years ago
unelsson f876ff2c14 Clear temporary movement data at the end of the drag 3 years ago
unelsson 53d315c862 XYZ-locking, mouse wheel move fix 3 years ago
unelsson 23fe3d74ab Use floats, not doubles 3 years ago
unelsson 840e7615f5 Store object origins and move difference 3 years ago
unelsson 0d511da615 Test of basic mouse-plane use 3 years ago
fredzio d1a5bc207b Iterate over mInactiveCells when unloading cells in TestCells / TestInteriorCells. Otherwise we dereference an invalid iterator after deactiveCell(). 3 years ago
elsid 0daf6f5d0b Merge branch 'comma' into 'master'
Don't use comma where there is no need to.

See merge request OpenMW/openmw!1179
3 years ago
Petr Mikheev 33d4d88447 Function LuaUtil::toString 3 years ago
Evil Eye 18f51e1026 Merge branch 'nonull' into 'master'
Don't pass a nullptr to a std::string constructor

See merge request OpenMW/openmw!1178
3 years ago
Evil Eye 06e1b17cc1 Merge branch 'unnecessary_copy' into 'master'
Dont copy-construct from a const-ref when used only as a const-ref

See merge request OpenMW/openmw!1184
3 years ago
jvoisin db4fe11a44 Don't pass a nullptr to a std::string constructor
This is undefined behaviour.
3 years ago
jvoisin deb2af6acc Dont copy-construct from a const-ref when used only as a const-ref
This also makes clang-tiny a bit happier
3 years ago
jvoisin a15cca5763 Use `reserve` on vectors for fixed loops
This is a bit useless, but has the merit of appeasing clang-tiday
3 years ago
jvoisin a6b1e38eab Don't use comma where there is no need to. 3 years ago
cc9cii 0a5571f19e Disable editing for blocked records in both table and dialogue edit widget. 3 years ago
Evil Eye b4486992f0 Allow Rieklings and Goblins to attack again 3 years ago
cc9cii b0d5ca386d Update original cell column and do not modify the refnum when moving a reference to another cell with 3D editing. 3 years ago
cc9cii 2eb210f31a Partially undo commit 71be4cdd20 so that moved references retain the original refnum. This is consistent with vanilla CS's behaviour. 3 years ago
cc9cii b2bd97f283 A different implementation to MR 1051 to fix Issue #6067.
This MR doesn't delete the original record, but instead the original record is updated with the moved record when loading.

Issue #4752 is no longer addressed in this MR.
3 years ago
cc9cii 7264a10c07 Partially revert commit dab1a9e7fb 3 years ago
cc9cii 7227a83e60 Preserve "blocked" record flags when saving with OpenCS. This will help outputs of OpenCS to be used with vanilla Morrowind.
Sample use case: users are using the Morrowind Code Patch feature that allows modders to enable this flag to differentiate editor-made potions from player crafted potions for tooltips.
3 years ago
psi29a 66f028c4a1 Merge branch 'correctcommandimplementation' into 'master'
Don't do storage in constructors of the commands

See merge request OpenMW/openmw!1126
3 years ago
psi29a d852b10227 Merge branch 'Map-door-markers-flicker-in-some-cells' into 'master'
Do not update doors markers at each frame, only when needed

Closes #6214

See merge request OpenMW/openmw!1168
3 years ago
psi29a fff35dcb03 Merge branch 'Ignore-empty-pgrd' into 'master'
Do not store empty PGRD records.  Should resolve Issue #6209.

See merge request OpenMW/openmw!1121
3 years ago
psi29a e8057d9fd1 Merge branch 'aipursue_path' into 'master'
Make AiPursue path destination to be as close as possible to target (#6211)

Closes #6211

See merge request OpenMW/openmw!1154
3 years ago
psi29a b585aad81e Merge branch 'offset-bullet-debug' into 'master'
glPolygonOffset for Bullet debug geometry

See merge request OpenMW/openmw!684
3 years ago
Thunderforge 42ce22f568 Adding saveSettingInt() and loadSettingInt()
Convenience methods for saving and loading integer settings. Versions for QSpinBox and QComboBox are included. Right now, only simple settings are used for it; we have some additional settings that include validation that aren't using these new methods.
3 years ago
unelsson de3497d291 Fix undo-redo crash 3 years ago
unelsson 890ce1eefb Reverse action order for redo and undo 3 years ago
unelsson 0cfabd6f3b Move mapToSource back to constructor 3 years ago
unelsson b2fe591590 Don't do any storing in the constructor 3 years ago
unelsson 45549da0f5 For most commands, set mOld in redo, not in constructor 3 years ago
psi29a 716eebe616 Merge branch 'terrainselectioncrashfix' into 'openmw-47'
Fix terrain selection crash

See merge request OpenMW/openmw!1165

(cherry picked from commit ec4e3b04a7)

b84e41bd Avoid storing ref, dynamic cast worldspacewidget for safety
d62ddc00 Use QPointer to detect object existence, less verbose debug messages
cb42b528 Remove friend, make getEditMode public to allow editmode testing.
4b148180 Restucture code
08f7c73e Fix text
3 years ago
psi29a 855f491196 Merge branch 'splintercell' into 'master'
Clean up text key extraction

See merge request OpenMW/openmw!1163
3 years ago
Alexei Dobrohotov 0922d0b105 Clean up text key extraction 3 years ago
Petr Mikheev 3771e523f1 More object bindings 3 years ago
Alexei Dobrohotov 31e70f2ecc Merge branch 'minor_factorisation' into 'master'
Minor factorisation in apps/openmw/mwmechanics/actors.cpp

See merge request OpenMW/openmw!1143
3 years ago
cc9cii 28ad139464 Check if deleted, just in case. 3 years ago
psi29a d09c807a40 Merge branch 'fixbadcast' into 'master'
Fix std::bad_cast

Closes #6217

See merge request OpenMW/openmw!1130
3 years ago