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

14679 commits

Author SHA1 Message Date
Evil Eye
f902efbfcc Absorb spells per effect 2021-10-09 16:39:49 +02:00
psi29a
b81df8af9c Merge branch 'cursorspeedmerge' into 'master'
Updated: Change cursor speed with settings.cfg (#6312)

Closes #6312

See merge request OpenMW/openmw!1255

(cherry picked from commit 1d342f80ed1af25d3cf1f70759be7fba1c9237b2)

b5af1928 gamepad cursor speed fix
2021-10-01 11:24:15 +00:00
David Cernat
06451c13d5 [Client] Update 3rd person model of local player when setting character 2021-10-01 03:27:40 +02:00
David Cernat
1ba36076f3 [Client] Update 3rd person model of local player when unequipping
This had apparently been broken by the fact that I had made inventory listeners get run only for actors in active cells in 385ef55848. Strangely, the player Ptr passed to fireEquipmentChangedEvent() when unequipping items has as its cell the player's original spawn cell instead of the current cell, causing the active cell check to return false in most locations for the player.
2021-10-01 03:09:14 +02:00
fredzio
32108adc31 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.
2021-09-24 20:32:00 +02:00
David Cernat
a01c874613 Add OpenMW 0.47 commits up to 23 Sep 2021 2021-09-23 19:24:45 +02:00
psi29a
f0a77a48df Merge branch 'check_pathgrid' into 'master'
Make sure PathFinder::getClosestPoint is not called with failing precondition (#6294)

Closes #6294

See merge request OpenMW/openmw!1236

(cherry picked from commit baa33799de3cb27d9d3805e164b9d7ccea6a3e4d)

d36595e0 Make sure PathFinder::getClosestPoint is not called with failing precondition
2021-09-23 12:50:46 +00:00
elsid
56869ec296 Merge branch 'fix_6296' into 'master'
Ignore time to destination when giving way (#6296)

See merge request OpenMW/openmw!1234

(cherry picked from commit 14516b9fd603bf603ca2ae366bc0884106fd368c)

5893b884 Ignore time to destination when giving way (#6296)
2021-09-23 08:09:59 +00:00
David Cernat
6e95604627 [Client] Remove credits check on Windows client 2021-09-20 05:55:51 +02:00
David Cernat
7393e3def6 [General] Add and use getShortDescription() for ESM::Cell
ESM::Cell's getDescription() method was modified by aa5161f99e despite being used heavily by TES3MP. All instances of it in the TES3MP code have now been changed into the newly added getShortDescription() that is identical to the previous getDescription().
2021-09-17 19:14:55 +02:00
psi29a
ad703d7470 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

(cherry picked from commit 4bf22f3ca0e5e5776c09cb8d5ad9793986373975)

9112c65a Use pathgrid path when destination is closer to different graph component node
2021-09-08 09:56:37 +00:00
David Cernat
2f98f31af2 [General] Use model variable already included in PlayerBaseInfo packets
The variable has been included since TES3MP's earliest proof of concept, but never used for anything. It is now possible to get and set it, due to semi-popular demand.
2021-09-02 15:44:11 +02:00
David Cernat
26033ff7e7 Add OpenMW 0.47 commits up to 4 Aug 2021 2021-08-04 22:02:39 +02:00
elsid
08b026e907
Store copies of ref_ptr for btCollisionShape wrappers in Navigator
To keep btCollisionShape lifetime.
2021-08-04 13:16:31 +02:00
psi29a
10b799653b Merge branch 'opt-out-compose' into 'master'
Make it possible to opt out of composing variables

Closes #6186

See merge request OpenMW/openmw!1076

(cherry picked from commit 15d278de554818fef6fecf300456800523e91adf)

4727ae4b Make it possible to opt out of composing variables
04e9b6d2 Abort on duplicate content file
2021-08-01 08:54:11 +00:00
David Cernat
6bdc2b2b06 [Client] Fix rotation sync 2021-07-26 08:50:19 +02:00
David Cernat
0567dc1fd4 Add OpenMW 0.47 commits up to 25 Jul 2021 2021-07-25 22:29:47 +02:00
David Cernat
6baee12bc4 [Client] Don't print unilateral message about targets resisting spells 2021-07-25 19:49:23 +02:00
fredzio
9d17cece3a Set mCanWaterWalk and mOnGround when adding Actor to the scene.
mCanWaterWalk was set to false and updated during next frame's simulation
mOnGround is set to true but then was updated as part of the scene
loading logic.
2021-07-24 15:04:17 +02:00
fredzio
744cfc6a51 Do not store a btTransform into Projectile class: reduce its size by 112 bytes 2021-07-23 19:40:42 +02:00
fredzio
20aefb5f5f Do not store btTransform into Object class: reduce its size by 104 bytes 2021-07-23 19:40:42 +02:00
fredzio
8861d53809 Do not store a btTransform into Actor class: reduce its size by 128 bytes 2021-07-23 18:10:23 +02:00
David Cernat
3f3fe66fde [General] Track casters of spells in SpellsActive packets
Also simplify sending of SpellsActive packets slightly.
2021-07-21 18:14:31 +02:00
David Cernat
4492a7a768 [Client] Add MechanicsHelper method to get actorId of an mwmp::Target
Also clean up MechanicsHelper::getPlayerPtr() slightly.
2021-07-21 14:57:55 +02:00
David Cernat
a78a88ed6d [Client] Make World::searchPtrViaActorId() also find DedicatedPlayers 2021-07-20 03:43:25 +02:00
David Cernat
9817d3a563 [Client] Add method to PlayerList for getting players by their actorId 2021-07-20 03:22:16 +02:00
David Cernat
fe4a761ffe [General] Implement game setting records for RecordDynamic packets
Remove unused placeholder for variants from RecordDynamic.
2021-07-18 11:36:07 +02:00
psi29a
59da0a0da9 Merge branch 'skip_async' into 'master'
Don't put player in the air after going out of tcl

See merge request OpenMW/openmw!1009

(cherry picked from commit 6d08a1d7318ae076839738d173b884fcc7b1a348)

6ad2cf8e Skip simulation result after calling Actor::updatePosition(). Otherwise
2021-07-16 17:05:52 +00:00
psi29a
d1c0cfa524 Merge branch 'lifetime' into 'master'
Maybe fix #6071

Closes #6071

See merge request OpenMW/openmw!1010

(cherry picked from commit 64750820957773a00d449d29551bb15fbf5fe08b)

1650dabe Assign the return value of weak_ptr::lock() to a variable, so that the
2021-07-12 14:11:30 +00:00
psi29a
8530bc5cf5 Merge branch 'fix_debugbatch_colors' into 'master'
Fix black objects in object paging debug view

See merge request OpenMW/openmw!1011

(cherry picked from commit 5287c9627c92b77c25581dbb9ac9d0b0dc4c9698)

389b8300 fix black objects with OP batch debug due to unitialized uniform
2021-07-12 09:14:09 +00:00
psi29a
a21da63464 Merge branch 'FixLODIssueWithObjectPaging' into 'master'
LOD issue with object paging

See merge request OpenMW/openmw!1007

(cherry picked from commit 5688b7b4d8df93fbf28307d2259c57f8d878eeb8)

269cd310 Use same world coordinates to compute distances
2021-07-10 21:03:32 +00:00
David Cernat
3222afc8b7 [General] Implement PlayerCooldowns packet
Although this packet may be used for other kinds of cooldowns in the future, it currently only handles cooldowns for magical powers.
2021-07-10 22:15:19 +02:00
David Cernat
a4b180f65a [Client] Don't send SpellsActive packets for spells received from server 2021-07-06 17:22:19 +02:00
psi29a
74aa7cdd48 Merge branch 'fix_door_freeze' into 'master'
Fix slow AiPackage::getTarget calls (#6136)

Closes #6136

See merge request OpenMW/openmw!990

(cherry picked from commit 6a4eeeb39bbe025625273dffc9754d29733e570a)

8d1eb7e2 Fix slow AiPackage::getTarget calls
2021-07-05 08:18:03 +00:00
psi29a
dfacaa3711 Merge branch 'fix_navmesh_update' into 'master'
Fix navmesh update on opening/closing door

See merge request OpenMW/openmw!995

(cherry picked from commit 9123db3a5954dd082f501151cba0a08bfe3ff908)

c7c0d11c Trigger navmesh update when any navigator object has been updated
2021-07-05 07:30:49 +00:00
David Cernat
294f64d12d [General] Track timestamps for spells in SpellsActive packets
This makes it possible to remove a specific effect in effect stacks by checking its timestamp.
2021-07-04 12:54:11 +02:00
David Cernat
6b45a48116 Add OpenMW 0.47 commits up to 1 Jul 2021
# Conflicts:
#   components/CMakeLists.txt
2021-07-01 19:13:04 +02:00
psi29a
bb393cb91c Merge branch 'fix_new_game_guard_3' into 'master'
Fix new game guard 3 (#6126)

Closes #6126

See merge request OpenMW/openmw!976

(cherry picked from commit 89ca56632c6bc37f07e430e7f5cd23d855610b19)

a3942a1e Remove redundant check for y coordinate in inRange function
cc08a45c Move include where it is needed
7e1630a7 Remove redundant getPolyHeight wrapper
793c30ab Check dtNavMeshQuery::getPolyHeight status
a54c4bc2 Check dtNavMeshQuery::findStraightPath status
94e460ba Use proper check for distance
5624fe19 Consider path not found when there is navmesh query error
2021-07-01 09:06:54 +00:00
psi29a
fa30531461 Merge branch 'positively_glowing' into 'master'
Detach objects from the active grid when attempting to get their animation

Closes #6105

See merge request OpenMW/openmw!951

(cherry picked from commit 7d8949ec3fcd1919da59308deab06433136f6629)

692615fd Detach objects from the active grid when attempting to get their animation
2021-06-25 09:20:43 +00:00
psi29a
05b5ada6bf Merge branch 'fix_smooth_movement' into 'master'
Validate almost straight shortcuts by navmesh raycast (#6102)

Closes #6102

See merge request OpenMW/openmw!947

(cherry picked from commit 9c3117d2d4a70475b021f4e4a50eec88cd7cf125)

e7d68d3d Validate almost straight shortcuts by navmesh raycast
2021-06-21 19:55:05 +00:00
psi29a
1e1c8a17ed Merge branch 'fix_new_game_guard_2' into 'master'
Reapply new game guard fix

See merge request OpenMW/openmw!944

(cherry picked from commit eca0a95a5a16cf3734a32c76cab0c0a0dd6dfe2d)

56e63053 Revert "Merge branch 'fix_new_game_guard' into 'master'"
e5e04b85 Consider time to destination when try to avoid collision
2021-06-19 13:34:56 +00:00
psi29a
5a27d6eed7 Merge branch 'fix-ffmpeg-api-const' into 'master'
Fix future FFMpeg API changes

See merge request OpenMW/openmw!922

(cherry picked from commit 3794e6d4b20b6c9f47aeaf3f937118c49de700e5)

70a02290 Fix future FFMpeg API changes
2021-06-19 00:16:02 +00:00
David Cernat
62f0237376 Add OpenMW commits up to 17 Jun 2021 2021-06-17 10:33:19 +02:00
psi29a
071786aff6 Merge branch 'UseSameDistanceForAllLodsOfTheCurrentChunk' into 'master'
Use same distance for all lods of the current chunk

Closes #6061

See merge request OpenMW/openmw!940
2021-06-16 11:47:30 +00:00
psi29a
329ec8f044 Merge branch 'dont_bury_me_plz' into 'master'
Don't unsummon creatures not found within the active cells

Closes #6070

See merge request OpenMW/openmw!926
2021-06-16 09:43:53 +00:00
psi29a
c39c0266a9 Merge branch 'free_from_bondage' into 'master'
Do not assume the bound item cache is valid after loading a save

Closes #6069

See merge request OpenMW/openmw!931
2021-06-16 09:43:14 +00:00
unknown
7d756d997e Rebuild the cache in readState 2021-06-12 18:18:52 +02:00
CedricMocquillon
7fa67ff675 Use same distance for all lod instances of a chunk 2021-06-12 15:34:15 +02:00
fredzio
7d0483d7ad Cast spell even if target Ptr is empty. It happens when enchanted arrows
hit water or ground.
2021-06-11 05:55:37 +02:00
David Cernat
767287ae51 [General] Track stacking spells in SpellsActive packets 2021-06-10 13:27:52 +02:00
David Cernat
da16c211a4 [Client] Make potion effects work with SpellsActive packets, part 2 2021-06-06 20:18:44 +02:00
Evil Eye
90fa8dca35 Do not assume the bound item cache is valid after loading a save 2021-06-06 18:10:55 +02:00
Evil Eye
89e0bfd1a4 Purge summon effects on dispose 2021-06-06 12:45:42 +02:00
David Cernat
5a852fe6db [Client] Fix warnings related to declarations 2021-06-04 01:22:13 +02:00
Evil Eye
004660be3d Don't unsummon creatures not found within the active cells 2021-06-02 20:33:29 +02:00
David Cernat
1f0cb09933 Add OpenMW commits up to 1 Jun 2021
# Conflicts:
#   .travis.yml
#   README.md
2021-06-01 17:22:52 +02:00
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
2021-05-30 11:52:48 +02:00
David Cernat
86630b048f [General] Add creature attack values to RecordDynamic packets 2021-05-28 19:35:05 +02:00
Evil Eye
b8472e1303 Use modified paralyze magnitude to fall and float 2021-05-28 16:55:54 +02:00
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
2021-05-27 21:08:33 +00:00
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
2021-05-27 16:45:49 +00:00
Evil Eye
1a1085272a Use ciEqual to determine actor-specific answers 2021-05-27 17:13:04 +02:00
elsid
4a6961b365
Trigger navmesh update on moved player only when player tile has been changed 2021-05-27 16:52:42 +02:00
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.
2021-05-26 23:29:37 +02:00
David Cernat
44d037c078 [General] Add creature soul values to RecordDynamic packets 2021-05-25 13:55:12 +02:00
Mads Buvik Sandvei
d906ec773a Fix hangup on savegame after manual screenshots. 2021-05-24 17:57:39 +00:00
David Cernat
8c7b07b9c8 [Client] Make potion effects work with SpellsActive packets 2021-05-23 01:49:37 +02: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
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
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
CedricMocquillon
d11a6bd92c Share state 2021-05-18 17:57:47 +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
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
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
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
c11774f278 Do not trigger in-game bindings via mouse buttons when controls are disabled (bug #6047) 2021-05-17 12:23:56 +04:00
AnyOldName3
c2e4eda825 Merge branch '6013-fix' into 'master'
Retain draw callback

Closes #6013 and #5967

See merge request OpenMW/openmw!875
2021-05-16 17:30:38 +00:00
madsbuvi
f3e17e7c52 Don't redundantly call notify on every frame. 2021-05-16 18:09:48 +02:00
Frederic Chardon
62c7adc87b Merge branch 'no_at_boundaries' into 'master'
Don't use at() instead [] when length is checked/known

See merge request OpenMW/openmw!866
2021-05-16 11:58:14 +00:00
Frederic Chardon
38db2f8810 Merge branch 'includes_mwgui' into 'master'
Remove some useless includes from apps/openmw/mwgui

See merge request OpenMW/openmw!870
2021-05-16 11:46:13 +00:00
madsbuvi
5b9a2b73b0 Retain final draw callback as a member variable in ScreenshotManager, and do not call setFinalDrawCallback after init. 2021-05-16 13:04:30 +02:00
Frederic Chardon
807c7a2025 Merge branch 'useless_includes_mwmechanics' into 'master'
Remove some useless headers in apps/openmw/mwmechanics

See merge request OpenMW/openmw!871
2021-05-16 10:51:43 +00:00
fredzio
5b63019719 Embed actor velocity inside its class. It makes the code simpler. 2021-05-16 12:42:17 +02:00
fredzio
c55db790f3 Make the code less verbose / more readable using for range loop and
structured binding.

No functional changes.
2021-05-16 12:42:16 +02:00
Frederic Chardon
730f1fe2a7 Merge branch 'useless_includes_mwphysics' into 'master'
Remove some useless includes in apps/openmw/mwphysics

See merge request OpenMW/openmw!872
2021-05-16 10:37:33 +00:00
jvoisin
9373e4ada7 Remove some useless includes in apps/openmw/mwphysics 2021-05-15 23:13:46 +02:00
jvoisin
9522a64e7d Remove some useless includes from apps/openmw/mwgui 2021-05-15 22:15:46 +02:00
jvoisin
1cd15613a6 Remove some useless headers in apps/openmw/mwmechanics 2021-05-15 22:14:08 +02:00
psi29a
3d61d7ec9a Merge branch 'optimize_initial_load' into 'master'
Optimize engine initial loading time

See merge request OpenMW/openmw!867
2021-05-15 18:48:17 +00:00
Evil Eye
6cb6461cba Merge branch 'const_ref_it' into 'master'
Use const references when possible in for loops

See merge request OpenMW/openmw!869
2021-05-15 18:47:03 +00:00
jvoisin
7deb6a6ffd Use const references when possible in for loops
No need for useless copies.
2021-05-15 19:50:01 +02:00
jvoisin
c1e3869f25 Remove an unused struct 2021-05-15 19:49:15 +02:00
elsid
1e2aae8095
Use stable sort+unique to collect RefIDs for ESMStore records counting
The idea is to avoid std::map lookup for each CellRef. Instead generate a
sequence of added and removed RefNums into a vector then order them by RefNum
using a stable sort that preserves relative order of elements with the same
RefNum. RefIDs are stored in a different vector to avoid std::string move ctor
calls when swapping elements while sorting. Reversed iteration over added and
removed RefNums for each unique RefNum is an equivalent to what map-based
algorithm produces. The main benefit from sorting a vector is a data locality
that means less cache misses for each access. Reduces ESMStore::countRecords
perf cycles by 25%.
2021-05-15 18:45:22 +02:00
elsid
9938af2289
Use unordered_map for ref count
Reduces ESMStore::countRecords time by 8%.
2021-05-15 18:45:22 +02:00
elsid
6248dc72cb
Convert to lower case only when needed 2021-05-15 18:45:21 +02:00
elsid
f2188d2533
Reduce temporary allocations on ESM loading
By moving objects instead of copying when possible.
2021-05-15 18:45:21 +02:00
Bret Curtis
8a315b01ae
Merge pull request #3089 from xyzz/fix-journalbooks-ub
Fix out-of-bounds access in JournalBooks::createCyrillicJournalIndex
2021-05-15 17:25:47 +02:00
Ilya Zhuravlev
13f060623f Fix out-of-bounds access in JournalBooks::createCyrillicJournalIndex 2021-05-15 10:45:39 -04:00
jvoisin
690d85d0e9 Don't use at() instead [] when length is checked/known 2021-05-15 15:38:17 +02:00
Andrei Kortunov
b63f53f5bb Disable shield animation when we launch a torch one (bug #6043) 2021-05-15 11:31:08 +04:00