1
0
Fork 0
mirror of https://github.com/OpenMW/openmw.git synced 2025-01-21 05:53:54 +00:00
Commit graph

18715 commits

Author SHA1 Message Date
ζeh Matt
769be88d43
Adjust DetourNavigatorNavigatorTest to the new prng values 2022-03-21 17:49:42 +02:00
ζeh Matt
8103ff2e6f
Make the CI happy 2022-03-21 17:49:42 +02:00
ζeh Matt
f8f3bb2421
Use std::minstd_rand and split serialization from save/load 2022-03-21 17:49:42 +02:00
ζeh Matt
0611a8c3a7
Start new game with specified seed in options 2022-03-21 17:49:42 +02:00
ζeh Matt
151770ccf1
Separate global vs world rng functions and use custom prng 2022-03-21 17:49:42 +02:00
ζeh Matt
08fae7be6e
Pass the prng from world where appropriate 2022-03-21 17:49:42 +02:00
ζeh Matt
b502dc12f0
Add prng to World instance and serialize state in Save 2022-03-21 17:49:42 +02:00
jvoisin
eb46bde75e Merge branch 'lua_records' into 'master'
Lua bindings for ESM::Door and ESM::Weapon records

See merge request OpenMW/openmw!1717
2022-03-20 15:39:48 +00:00
Petr Mikheev
1b1e81b90e Lua bindings for ESM::Door and ESM::Weapon records 2022-03-20 15:39:48 +00:00
Petr Mikheev
d185cb6dce Add Lua function ui.screenSize() 2022-03-20 00:16:41 +01:00
Evil Eye
d7d1a85143 Restore dialogue autocompletion in the console 2022-03-19 12:02:26 +01:00
elsid
5b9dd10cbe
Limit max navmeshdb file size
Use "pragma max_page_count" to define max allowed file size in combination with
"pragma page_size" based on a new setting "max navmeshdb file size".

* Stop navmeshtool on the first db error.
* Disable writes to db in the engine on first "database or disk is full"
  SQLite3 error. There is no special error code for this error.
* Change default "write to navmeshdb" to true.
* Use time intervals for transaction duration instead of number of changes.
2022-03-18 19:08:46 +01:00
Petr Mikheev
fa115418eb [Lua] Remove queries 2022-03-15 23:35:36 +01:00
Petr Mikheev
0f84bfde51 [Lua] Replace cell.selectObjects with cell.getAll 2022-03-15 23:35:36 +01:00
Petr Mikheev
43bed7f0d2 [Lua] Split obj.inventory into Actor.inventory(obj) and Container.content(obj) 2022-03-15 23:35:36 +01:00
Petr Mikheev
d251c4e2a1 [Lua] Change behavior of obj.type 2022-03-15 23:35:36 +01:00
Petr Mikheev
af93ebf433 [Lua] Move class-specific functions to openmw.types 2022-03-15 19:23:26 +01:00
AnyOldName3
696be1cc39 Merge branch 'fix_6589' into 'master'
Add default value for `user-data` in openmw.cfg

Closes #6589

See merge request OpenMW/openmw!1632
2022-03-13 18:51:34 +00:00
duncanspumpkin
3a117cac22 Switch to a constexpr for FourCC constant
Add static asssert on wrong size
2022-03-08 14:48:37 +00:00
jvoisin
8a182c130a Merge branch 'refactor/prng' into 'master'
Refactor and rename some things around Misc::Rng

See merge request OpenMW/openmw!1710
2022-03-07 10:19:41 +00:00
Matt
54e114d83e Avoid string copies for ESM::Variant::getString 2022-03-06 17:38:58 +00:00
ζeh Matt
d83a381f79
Refactor and rename some things around Misc::Rng 2022-03-06 17:28:28 +02:00
Petr Mikheev
696c2135ef Merge branch 'FixSettingsLoaderForEditor' into 'master'
Make settings loader differentiate between engine and editor (fixes #6658).

Closes #6658

See merge request OpenMW/openmw!1706
2022-03-04 09:44:52 +00:00
Martin Otto
96e48e5492 Make settings loader differentiate between engine and editor (fixes #6658). 2022-03-04 09:44:52 +00:00
Petr Mikheev
df41b4080d Merge branch 'refactor/headtracking' into 'master'
Small improvement for headtracking

See merge request OpenMW/openmw!1683
2022-03-03 20:39:53 +00:00
Matt
0b528d3bfb Small improvement for headtracking 2022-03-03 20:39:53 +00:00
ζeh Matt
129d68e299
Fix #6660: Crash during intro video when closing the game 2022-03-03 20:25:35 +02:00
psi29a
3afa46b25e Merge branch 'CPP20_support' into 'master'
Support C++20

See merge request OpenMW/openmw!1705
2022-03-01 11:11:37 +00:00
Bret Curtis
32fd6f297a static_cast bitwise operation between different enumeration types 2022-03-01 10:53:01 +01:00
Bret Curtis
1927b1c6d9 use static cast to handle: deprecated between enumerations of different types 2022-03-01 10:53:01 +01:00
Bret Curtis
ad11cc8d8a reinstall fontconfig as needed; const an imbigious == operator 2022-03-01 10:53:01 +01:00
Bret Curtis
4b742dd461 explicit capture for lamda 2022-03-01 09:43:08 +01:00
psi29a
3558196098 Merge branch 'Newer-Bsa-formats-no-longer-load' into 'master'
#6651 Newer bsa formats no longer load

Closes #6651

See merge request OpenMW/openmw!1703
2022-03-01 07:22:04 +00:00
Evil Eye
25feea9b16 Prevent write to empty vector element 2022-02-28 16:42:22 +01:00
psi29a
ceae2d664d Merge branch 'refactor/stdlist' into 'master'
Use std::vector instead of std::list for some functions

See merge request OpenMW/openmw!1699
2022-02-28 07:40:21 +00:00
Cédric Mocquillon
ff7ad93bac Avoid missusing of CompressedBSAFile with private inheritance 2022-02-27 20:40:35 +01:00
uramer
6845d681f2 Update hardcoded layers (hotfix for https://gitlab.com/OpenMW/openmw/-/merge_requests/1681) 2022-02-27 11:59:55 +00:00
psi29a
2d4e9b38ae Merge branch 'lua_ui_image' into 'master'
Document the Lua Image widget, add UI texture resources

See merge request OpenMW/openmw!1637
2022-02-26 17:48:50 +00:00
uramer
67879bac55 MR feedack 2022-02-26 17:01:46 +01:00
Petr Mikheev
6afafbbe30 Merge branch 'refactor_layers' into 'master'
Refactor UI layers

See merge request OpenMW/openmw!1681
2022-02-26 13:54:42 +00:00
uramer
21a363d96f Refactor UI layers 2022-02-26 13:54:42 +00:00
uramer
fc50724f5c Render text and images correctly in templates with slots 2022-02-25 18:18:26 +01:00
uramer
e092ee2624 Document the Lua Image widget, add UI texture resources 2022-02-25 18:18:26 +01:00
jvoisin
7f3058d501 Use toStringView in esmtool instead of toString 2022-02-25 17:40:27 +01:00
ζeh Matt
eca405e5c7
Use std::vector instead of std::list 2022-02-25 04:02:21 +02:00
elsid
42d6032c8b
Support compilation with c++20 2022-02-24 00:49:40 +01:00
psi29a
7e4e78b1a7 Merge branch 'engarde' into 'master'
Always reduce weapon condition by the raw damage (bug #6559)

Closes #6559

See merge request OpenMW/openmw!1694
2022-02-23 21:49:57 +00:00
Alexei Dobrohotov
fdd9e6a793 Always reduce weapon condition by the raw damage (bug #6559) 2022-02-23 16:37:56 +03:00
psi29a
34be9329eb Merge branch 'ascivilaspossible' into 'master'
Increase the base actor angular velocity to 900°/sec (#5192)

Closes #5192

See merge request OpenMW/openmw!1690
2022-02-23 10:09:17 +00:00
psi29a
dd281e1e93 Merge branch 'fix_collision_boxes' into 'master'
Fix #6616: Fix incorrect collision box calculations

Closes #6616

See merge request OpenMW/openmw!1687
2022-02-23 08:26:50 +00:00
Alexei Kotov
38a0659b7f Merge branch 'weak_ptr' into 'master'
Store std::weak_ptr into mUpdateAabb.

See merge request OpenMW/openmw!1578
2022-02-23 06:10:29 +00:00
Alexei Kotov
4a3d7a1ff7 Merge branch 'esm3_ai_package' into 'master'
Use unique_ptr to manage AiPackage lifetime

See merge request OpenMW/openmw!1691
2022-02-23 05:55:49 +00:00
Alexei Kotov
087084abdc Merge branch 'projectilefix' into 'master'
Fix for projectile movement simulation (#6526 and probably #6434)

See merge request OpenMW/openmw!1518
2022-02-23 05:34:35 +00:00
elsid
595c2e0a8e
Use unique_ptr to manage AiPackage lifetime 2022-02-23 00:39:30 +01:00
Alexei Dobrohotov
1a15ad216d Increase the base angular velocity to 900°/sec (#5192) 2022-02-23 02:13:31 +03:00
Abdu Sharif
de3092f014 Revert "Merge branch 'offset_the_deads' into 'master'"
This reverts commit 7dd02076f5
2022-02-22 04:04:08 +00:00
Petr Mikheev
ff7ac7192b Merge branch 'ui_pairs' into 'master'
Implement pairs and ipairs for ui.content and ui.layers. Document all iterable types in a uniform way.

See merge request OpenMW/openmw!1643
2022-02-21 20:43:29 +00:00
uramer
a1abc84f59 Implement pairs and ipairs for ui.content and ui.layers. Document all iterable types in a uniform way. 2022-02-21 20:43:27 +00:00
uramer
cc6dce5443 Support controller touchpads (Resolves https://gitlab.com/OpenMW/openmw/-/issues/6639) 2022-02-21 19:49:00 +00:00
jvoisin
a55f1ad103 Merge branch 'bullet_object_tool' into 'master'
Add a tool to load and print information about all bullet objects in all cells

See merge request OpenMW/openmw!1627
2022-02-20 14:09:26 +00:00
elsid
6fd251e8f7
Avoid starting async png writing when overlay image is null 2022-02-19 21:41:40 +01:00
psi29a
b03f9e430c Merge branch 'navmesh_disk_rm_unused_tiles' into 'master'
Add navmeshtool flag to remove unused tiles from navmesh disk cache

See merge request OpenMW/openmw!1671
2022-02-19 13:56:44 +00:00
psi29a
85c0d93274 Merge branch 'fix-6633' into 'master'
Fix #6633: AiSequence packages being removed incorrectly

Closes #6633

See merge request OpenMW/openmw!1678
2022-02-19 13:55:42 +00:00
ζeh Matt
b997e28e57
Fix #6633: AiSequence packages being removed incorrectly 2022-02-19 14:56:51 +02:00
psi29a
1c1581bdab Merge branch 'check_esm4_compilation' into 'master'
Check ESM4 compilation

See merge request OpenMW/openmw!1677
2022-02-19 12:18:43 +00:00
elsid
57c1f2e231
Make sure everything compiles in ESM4 2022-02-19 02:52:49 +01:00
elsid
a7e76c6f3d
Remove redundant include 2022-02-18 22:31:40 +01:00
elsid
ab1a6e034e
Add navmeshtool flag to remove unused tiles from navmesh disk cache
* Remove tiles outside processing range. Useful when new content profile map
  has different bounds.
* Remove ignored tiles. For a case when content profile maps have intersection
  but there is no more data for navmesh.
* Remove older tiles at the same worldspace position. If navmesh tile data has
  changed with new content, the old ones unlikely to be used.
* Vacuum the database when there are modifications. SQLite leaves empty pages
  in the file on database modification. Vacuum cleans up unused pages reducing
  the file size.
2022-02-18 21:57:23 +01:00
elsid
67741402b5
Replace reference to const std::string by std::string_view for navmeshdb related arguments 2022-02-18 21:45:50 +01:00
elsid
9584cb7ac2
Use fixed size types for serialization 2022-02-18 21:01:53 +01:00
elsid
de7f9f6439
Replace raw for loop by algorithm
To fix compilation error with -D_GLIBCXX_DEBUG:
/home/elsid/dev/openmw/apps/openmw/mwdialogue/dialoguemanagerimp.cpp: In member function ‘virtual void MWDialogue::DialogueManager::write(ESM::ESMWriter&, Loading::Listener&) const’:
/home/elsid/dev/openmw/apps/openmw/mwdialogue/dialoguemanagerimp.cpp:679:78: error: no matching function for call to ‘__gnu_debug::_Safe_iterator<std::_Rb_tree_const_iterator<std::__cxx11::basic_string<char> >, std::__debug::set<std::__cxx11::basic_string<char> >, std::bidirectional_iterator_tag>::_Safe_iterator(std::__debug::set<std::__cxx11::basic_string<char>, Misc::StringUtils::CiComp>::const_iterator)’
  679 |         for (std::set<std::string>::const_iterator iter (mKnownTopics.begin());
      |                                                                              ^
2022-02-17 01:04:44 +01:00
psi29a
4a2302ff2b Merge branch 'hand_to_nixhound' into 'master'
Disallow non-bipedal hand-to-hand refreshes

See merge request OpenMW/openmw!1667
2022-02-16 22:30:39 +00:00
Alexei Kotov
4fdf55601c Merge branch 'bigboi' into 'master'
Force a scale update when changing view modes

Closes #6623

See merge request OpenMW/openmw!1662
2022-02-16 22:29:13 +00:00
psi29a
8da1cc3dd2 Merge branch 'fix-6618' into 'master'
Fix #6618

Closes #6618

See merge request OpenMW/openmw!1666
2022-02-16 21:24:21 +00:00
psi29a
cc8d05bd9a Merge branch 'async_save_map' into 'master'
Write png image of the global map for save asynchronously

See merge request OpenMW/openmw!1656
2022-02-16 21:11:07 +00:00
Evil Eye
7bd4971e0c Disallow non-bipedal hand-to-hand refreshes 2022-02-16 21:58:22 +01:00
psi29a
b73eaadf20 Merge branch 'use_utf8_string_view' into 'master'
Avoid extra copy for Utf8Encoder::getUtf8 result

See merge request OpenMW/openmw!1661
2022-02-16 20:58:12 +00:00
ζeh Matt
0ce29a6131
Simplify logic in AiSequence::execute 2022-02-16 20:21:10 +02:00
ζeh Matt
e60e0b55eb
Fix potential another crash 2022-02-16 18:19:55 +02:00
ζeh Matt
83be3826ff
Fix #6618: Crash due to iterator invalidation 2022-02-16 18:19:10 +02:00
psi29a
d680870e8f Merge branch 'fix_aabb' into 'master'
Fix btAABB initialization (#6489)

Closes #6489

See merge request OpenMW/openmw!1664
2022-02-16 08:01:23 +00:00
elsid
2e38f0b641
Fix btAABB initialization 2022-02-16 02:58:59 +01:00
elsid
875d9dcead
Fix buffer resizing by StatelessUtf8Encoder 2022-02-15 23:02:32 +01:00
Evil Eye
f9da792386 Force a scale update when changing view modes 2022-02-15 17:25:07 +01:00
psi29a
8a0fb4d633 Merge branch 'stateless_utf8_encoder' into 'master'
Add StatelessUtf8Encoder to support caller provided buffer for output

See merge request OpenMW/openmw!1660
2022-02-15 08:35:31 +00:00
psi29a
776b286286 Merge branch 'esm_name' into 'master'
Use ESM::NAME instead of const char* and std::string as argument type

See merge request OpenMW/openmw!1659
2022-02-15 08:11:12 +00:00
elsid
3305b400dc
Use ESM::NAME instead of const char* and std::string as argument type 2022-02-14 23:40:40 +01:00
elsid
c044bef6a7
Add StatelessUtf8Encoder to support caller provided buffer for output 2022-02-14 23:19:49 +01:00
elsid
fbbf871067
Avoid extra copy for Utf8Encoder::getUtf8 result 2022-02-14 23:01:32 +01:00
Evil Eye
649c2f8286 Fix stats not working right for saves started before version 17 2022-02-14 18:38:37 +01:00
psi29a
149ef56b60 Merge branch 'utf8_encoder_tests' into 'master'
Add tests for Utf8Encoder

See merge request OpenMW/openmw!1654
2022-02-14 06:39:39 +00:00
elsid
a4d7b72511
Write png image of the global map for save asynchronously
Write global map to the save file last to give more time for async job to
finish.
2022-02-13 21:42:36 +01:00
elsid
b43eb29465
Log duration of writing save game file 2022-02-13 21:24:18 +01:00
elsid
7884a01026
Add tests for Utf8Encoder 2022-02-13 17:19:08 +01:00
psi29a
bd8c75daee Merge branch 'quest_redo' into 'master'
Restart all quests with the same name when a quest is restarted

Closes #6606

See merge request OpenMW/openmw!1651
2022-02-13 15:31:18 +00:00
Petr Mikheev
d8127fdad2 Merge branch 'refactor/aisequence-2' into 'master'
#6091: Optimize isInCombat

See merge request OpenMW/openmw!1636
2022-02-12 23:50:42 +00:00
Matt
367bdcf0cc #6091: Optimize isInCombat 2022-02-12 23:50:41 +00:00
Alexei Kotov
14a9af15ab Merge branch 'dagoth_wave' into 'master'
Remove weaponless, non-biped distinction

Closes #5054

See merge request OpenMW/openmw!1517
2022-02-12 15:07:32 +00:00
Alexei Kotov
380823d0ee Merge branch 'always-use-best-attack-rounding-fix' into 'master'
Fix always-use-best-attack rounding

See merge request OpenMW/openmw!1647
2022-02-12 15:03:44 +00:00
Evil Eye
c382910c1f Restart all quests with the same name when a quest is restarted 2022-02-12 13:25:27 +01:00
Evil Eye
fdfde836fe Expect recent saves to store the modified value 2022-02-12 01:03:12 +01:00
Niek Wilting
6cd12823e8 Fix always-use-best-attack rounding 2022-02-11 19:26:13 +01:00
psi29a
2a7d28712f Merge branch 'stats' into 'master'
Remove weirdness surrounding AI- and Dynamic stats

Closes #6599

See merge request OpenMW/openmw!1645
2022-02-11 08:18:24 +00:00
Evil Eye
054d8babc4 Add getRatio method 2022-02-10 22:10:46 +01:00
Evil Eye
6b203892fc Fix mod not increasing fortified values 2022-02-10 20:46:20 +01:00
uramer
ede9d27437 Element-wise multiplication and division of Lua vectors 2022-02-10 19:43:27 +00:00
Evil Eye
dc495a685a Remove a member variable that doesn't get saved and remove fortify maximum health code 2022-02-10 20:32:59 +01:00
Evil Eye
4e52c96cf5 Make Set/Mod[DynamicStat] work with negative values as in vanilla 2022-02-10 20:31:27 +01:00
Evil Eye
5aef14eccd Prevent division by 0 2022-02-10 20:28:27 +01:00
psi29a
01e8ae8981 Merge branch 'peace_love_and_stencils' into 'master'
Support morrowind stenciling (#6443)

Closes #6443

See merge request OpenMW/openmw!1635
2022-02-08 09:42:26 +00:00
glassmancody.info
8c2c322d92 add stencil to water RTTs, reword some comments 2022-02-07 14:35:15 -08:00
glassmancody.info
bbc9c53423 support morrowind stenciling 2022-02-07 11:51:59 -08:00
psi29a
2a6392fe5c Merge branch 'fix_6590' into 'master'
Fix #6590

Closes #6590

See merge request OpenMW/openmw!1633
2022-02-07 14:05:18 +00:00
uramer
643c1d6aeb Merge branch 'lua_ai' into 'master'
Control AI packages from Lua

See merge request OpenMW/openmw!1604
2022-02-06 22:43:48 +00:00
Evil Eye
7a7a95407a Merge branch 'lua_pairs' into 'master'
Proper support of `pairs` and `ipairs` in Lua; fix bug in `makeReadOnly`.

See merge request OpenMW/openmw!1628
2022-02-06 22:10:21 +00:00
Petr Mikheev
a294adcdaf Proper support of pairs and ipairs in Lua; fix bug in makeReadOnly. 2022-02-06 22:10:20 +00:00
Petr Mikheev
8e330653c7 Fix #6590 2022-02-06 22:16:37 +01:00
uramer
581c3f4882 Update and document Lua Text and TextEdit widget types, fix some issues with Lua UI 2022-02-06 20:22:38 +00:00
Petr Mikheev
ac5cd6c80a Add default value for user-data in openmw.cfg 2022-02-06 21:07:14 +01:00
Petr Mikheev
6c56436809 Control AI packages from Lua 2022-02-06 15:01:51 +01:00
psi29a
7f4d4c0d70 Merge branch 'refactor/system-ownership' into 'master'
Make ownership explicit in Engine and Environment

See merge request OpenMW/openmw!1605
2022-02-06 10:44:15 +00:00
Evil Eye
4657060d2c Extend swish and strength changes to all random attacks 2022-02-06 11:08:47 +01:00
Evil Eye
020e0b2ea5 Don't allow non-bipedal actors to play hand-to-hand animations 2022-02-05 22:50:04 +01:00
unknown
5ebcd37da1 Rename method and restore swish sounds 2022-02-05 19:07:44 +01:00
ζeh Matt
a383d9dfdf
Make ownership explicit in Environment 2022-02-05 11:46:23 +02:00
elsid
e7f3524924
Add a tool to load and print information about all bullet objects in all cells 2022-02-04 16:14:52 +01:00
psi29a
becffef142 Merge branch 'cull_navmesh_objects' into 'master'
Cull navmesh objects by scene bounds (#5858)

Closes #5858

See merge request OpenMW/openmw!1625
2022-02-04 14:07:13 +00:00
AnyOldName3
9d8853442b Merge branch 'portable' into 'master'
Make OpenMW "portable"

Closes #2491

See merge request OpenMW/openmw!1555
2022-02-03 22:49:49 +00:00
psi29a
c3e07619a4 Merge branch 'lua' into 'master'
Replace `inventory:get<Type>()` with `inventory:getAll(<Type>)`

See merge request OpenMW/openmw!1624
2022-02-03 22:35:36 +00:00
elsid
3caeda7299
Consider animated object unchanged if no transform updates done 2022-02-03 22:09:52 +01:00
elsid
832ab103cb
Filter out unchanged animated objects for navigator update 2022-02-03 22:09:52 +01:00
elsid
05b54cbfb8
Cull navmesh objects by scene bounds
If object is too big iteration over all tiles covering it can take too much
time. Limit bounds to a square around a player position to cover only tiles
that will be present in navmesh based on max tiles number option.

Each object is associated with a set of tiles its present in. Culling can
reduce this set but it has to be update when bounds change position. Do this
in TileCachedRecastMeshManager::setBounds updating the set and adding/removing
objects to the corresponding CachedRecastMeshManagers.
2022-02-03 22:09:37 +01:00
elsid
1b2954f2db
Remove unused z coordinate 2022-02-03 21:43:53 +01:00
elsid
783411fa1f
Use new player position when updating navigator on cell loading 2022-02-03 02:44:04 +01:00
elsid
542717394a
Remove objects, water and heightfields when no longer required 2022-02-03 02:43:35 +01:00
Petr Mikheev
6e4f628866 Replace inventory:get<Type>() with inventory:getAll(<Type>) 2022-02-03 02:05:49 +01:00
elsid
16cfdfec19
Avoid unnecessary computation
And fix UBSAN error:

/home/elsid/dev/openmw/apps/openmw/mwrender/renderingmanager.cpp:659:81: runtime error: division by zero
    #0 0x556eac16f4dc in MWRender::RenderingManager::configureAmbient(ESM::Cell const*) /home/elsid/dev/openmw/apps/openmw/mwrender/renderingmanager.cpp:659
    #1 0x556eadfd3d60 in MWWorld::Scene::loadCell(MWWorld::CellStore*, Loading::Listener*, bool, osg::Vec3f const&) /home/elsid/dev/openmw/apps/openmw/mwworld/scene.cpp:467
    #2 0x556eadfe3047 in MWWorld::Scene::changeToInteriorCell(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, ESM::Position const&, bool, bool) /home/elsid/dev/openmw/apps/openmw/mwworld/scene.cpp:830
    #3 0x556eadeb8fb3 in MWWorld::World::changeToInteriorCell(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, ESM::Position const&, bool, bool) /home/elsid/dev/openmw/apps/openmw/mwworld/worldimp.cpp:978
    #4 0x556eadeba5f1 in MWWorld::World::changeToCell(ESM::CellId const&, ESM::Position const&, bool, bool) /home/elsid/dev/openmw/apps/openmw/mwworld/worldimp.cpp:1008
    #5 0x556eaeb852dd in MWState::StateManager::loadGame(MWState::Character const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /home/elsid/dev/openmw/apps/openmw/mwstate/statemanagerimp.cpp:533
    #6 0x556eaeb81674 in MWState::StateManager::loadGame(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /home/elsid/dev/openmw/apps/openmw/mwstate/statemanagerimp.cpp:366
    #7 0x556eaebd2aae in OMW::Engine::go() /home/elsid/dev/openmw/apps/openmw/engine.cpp:1025
    #8 0x556eaeba810a in runApplication(int, char**) /home/elsid/dev/openmw/apps/openmw/main.cpp:221
    #9 0x556eaf865e9a in wrapApplication(int (*)(int, char**), int, char**, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /home/elsid/dev/openmw/components/debug/debugging.cpp:205
    #10 0x556eaeba8368 in main /home/elsid/dev/openmw/apps/openmw/main.cpp:233
    #11 0x7f89773b3b24 in __libc_start_main (/usr/lib/libc.so.6+0x27b24)
    #12 0x556eac13c09d in _start (/home/elsid/dev/openmw/build/gcc/ubsan/openmw+0x669c09d)
2022-02-03 00:08:45 +01:00
Petr Mikheev
a453e5c198 Reuse the same code to load settings in apps/openmw, apps/launcher, apps/opencs 2022-02-02 23:47:11 +01:00
Petr Mikheev
1bcc4a8bcc Read settings.cfg from all active config dirs 2022-02-02 23:47:11 +01:00
Petr Mikheev
5ca56a4f8a New option "config" for specifying additional config directories. 2022-02-02 23:47:11 +01:00
Petr Mikheev
dd5ba5c57b Redirect log only after parsing configuration 2022-02-02 23:47:11 +01:00
psi29a
bb6b031afd Merge branch 'fix_simulation_crash' into 'master'
Fix use after free and possible deadlock on exit (#6577)

Closes #6577

See merge request OpenMW/openmw!1601
2022-02-02 21:06:18 +00:00
psi29a
cf8d49bb9a Merge branch 'lua_settings_ui' into 'master'
Lua settings UI

Closes #6454

See merge request OpenMW/openmw!1595
2022-02-02 21:04:18 +00:00
uramer
946b8b804c MR feedback 2022-02-02 16:42:04 +01:00
Alexei Dobrohotov
142b6fdf2f Fix double precision bound issues in std::max/std::clamp 2022-02-02 16:57:59 +03:00
Petr Mikheev
47c37e5849 Lua command object:activateBy(actor) and handler onActivate 2022-02-01 23:42:56 +00:00
uramer
f68c0c41a9 Prioritize setting pages with hits in the name when searching 2022-02-01 23:06:53 +01:00
Evil Eye
8752f78fa4 Remove weaponless, non-biped distinction 2022-02-01 21:58:55 +01:00
uramer
ef1e72dc17 Revert from settings description to searchHints 2022-02-01 19:50:03 +01:00
uramer
01d65a14f1 Implement more advanced search, sort script setting pages by alphabet and filter match quality 2022-02-01 19:50:03 +01:00
uramer
67641dcdb7 Fix compile errors 2022-02-01 19:50:03 +01:00
uramer
086a7d9bc5 Wrap Lua settings widgets into an Adapter widget 2022-02-01 19:50:03 +01:00
uramer
db9e734a6a Fix warning 2022-02-01 19:50:02 +01:00
uramer
1455aa3e02 Allow changing script settings pages after registering them 2022-02-01 19:50:02 +01:00
uramer
5f7ab49880 Implement script setting pages' descriptions 2022-02-01 19:50:02 +01:00
uramer
a005f25c4b Use page terminology for script settings 2022-02-01 19:50:02 +01:00
uramer
e78b8402fa Fix warnings 2022-02-01 19:50:02 +01:00
uramer
a972a54ea9 Allow changing element root widget type, prevent use after free in script settings 2022-02-01 19:50:02 +01:00
uramer
64df4f54c6 Add scrolling to the script settings view 2022-02-01 19:50:02 +01:00
uramer
fba82eb1a7 Script settings tab 2022-02-01 19:50:02 +01:00
uramer
c31dedb89c Implement Yaw, Pitch and Use (attack / cast spell) in Lua self.controls 2022-02-01 18:47:20 +00:00
elsid
7ea5aa250b
Revert "Cull navmesh objects by scene bounds"
This reverts commit b0ef20c303.
2022-01-30 21:43:23 +01:00
jvoisin
4cd6d2dacf Merge branch 'rework_fixed_string' into 'master'
Rework fixed string

See merge request OpenMW/openmw!1596
2022-01-30 18:47:06 +00:00
jvoisin
43f64e9f75 Merge branch 'tasty_sujamma' into 'master'
Uncap attribute and skill damage for drain and absorb effects

See merge request OpenMW/openmw!1592
2022-01-30 17:59:49 +00:00
elsid
70623d0b23
Move FetchContent for benchmark to extern 2022-01-30 00:44:22 +01:00
psi29a
e46905450e Merge branch 'refactor/esm-recordnew' into 'master'
Use unique_ptr for ESM records

See merge request OpenMW/openmw!1603
2022-01-29 22:05:39 +00:00
psi29a
7dd02076f5 Merge branch 'offset_the_deads' into 'master'
#6410: Use the scaled mesh translation for collision shape position for living actors

See merge request OpenMW/openmw!1446
2022-01-29 20:28:23 +00:00
psi29a
7bab714825 Merge branch 'fix_circling_fargoth' into 'master'
Remove unnecessary loops from path (#6510)

Closes #6510

See merge request OpenMW/openmw!1584
2022-01-29 19:48:02 +00:00
ζeh Matt
07eb6db030
Use unique_ptr for ESM records 2022-01-29 21:09:27 +02:00
Evil Eye
79dc600dae Uncap attribute and skill damage for drain and absorb effects 2022-01-29 16:29:50 +01:00
elsid
8b7ae9afd8
Fix use after free and possible deadlock on exit
Lock Simulation weak_ptr in all visitors to avoid use after free.

And swap order for weak_ptr locking with locking collision world mutex to avoid
deadlock when underlying object tries to lock the same mutex in the destructor.

Add SimulationImpl type to avoid use of FrameData without locking weak_ptr.
2022-01-29 14:59:51 +01:00
elsid
45db56b382
Rework fixed string
* Avoid inheritance.
* Define equality operators out of the class definition.
* Replace toString with toStringView where it doesn't make sense to create a string.
2022-01-28 18:39:09 +01:00
Petr Mikheev
53f2dfd1c0 Merge branch 'lua_ui_templates' into 'master'
Lua UI templates

See merge request OpenMW/openmw!1475
2022-01-28 09:31:46 +00:00
uramer
960dd1f708 Lua UI templates 2022-01-28 09:31:45 +00:00
elsid
bf692a4bfa
Add more tests for fixed string 2022-01-28 03:39:28 +01:00
Bret Curtis
022fdc49a5 update tests to use esm3 rename 2022-01-27 21:13:38 +01:00
psi29a
84e209308d Merge branch 'refactor/interpreter' into 'master'
Cleanup interpreter code a bit

Closes #6553

See merge request OpenMW/openmw!1556
2022-01-27 19:18:57 +00:00
Matt
34723c8ea8 Cleanup interpreter code a bit 2022-01-27 19:18:57 +00:00
psi29a
6f7a067e0c Merge branch 'esmrename' into 'master'
esm refactor work

See merge request OpenMW/openmw!1575
2022-01-27 17:52:42 +00:00
psi29a
fac47ce0b5 Merge branch 'support_controller_gyro' into 'master'
Support controller gyro

Closes #6557

See merge request OpenMW/openmw!1571
2022-01-25 19:20:36 +00:00
psi29a
21ef9d4058 Merge branch 'nif_multi_parents' into 'master'
Support multiple parents for NIF nodes (#6552)

Closes #6552

See merge request OpenMW/openmw!1577
2022-01-25 19:17:19 +00:00
jvoisin
4ae1ea1ee3 Merge branch 'refidref' into 'master'
Remove `getRefIdRef` because it is the same as `getRefId`.

See merge request OpenMW/openmw!1585
2022-01-25 16:23:51 +00:00
Evil Eye
783505011c Merge branch 'fix_deprecated_warning' into 'master'
Remove usage of deprecated std::iterator

See merge request OpenMW/openmw!1589
2022-01-25 15:32:22 +00:00
Evil Eye
903ef60f9d Merge branch 'navmesh_scene_bounds' into 'master'
Limit and filter navmesh input (#5858)

Closes #5858

See merge request OpenMW/openmw!1583
2022-01-25 14:06:53 +00:00
elsid
ecc654a369 Limit and filter navmesh input (#5858) 2022-01-25 14:06:53 +00:00
elsid
12df2deb70
Remove usage of deprecated std::iterator
/home/elsid/dev/openmw/apps/openmw/mwlua/../mwbase/../mwworld/containerstore.hpp:264:23: warning: 'iterator<std::forward_iterator_tag, MWWorld::Ptr>' is deprecated [-Wdeprecated-declarations]
        : public std::iterator<std::forward_iterator_tag, PtrType, std::ptrdiff_t, PtrType *, PtrType&>
                      ^
/home/elsid/dev/openmw/apps/openmw/mwlua/../mwworld/inventorystore.hpp:79:36: note: in instantiation of template class 'MWWorld::ContainerStoreIteratorBase<MWWorld::Ptr>' requested here
            ContainerStoreIterator mSelectedEnchantItem;
                                   ^
/usr/bin/../include/c++/v1/__iterator/iterator.h:27:29: note: 'iterator<std::forward_iterator_tag, MWWorld::Ptr>' has been explicitly marked deprecated here
struct _LIBCPP_TEMPLATE_VIS _LIBCPP_DEPRECATED_IN_CXX17 iterator
                            ^
/usr/bin/../include/c++/v1/__config:1016:39: note: expanded from macro '_LIBCPP_DEPRECATED_IN_CXX17'
                                      ^
/usr/bin/../include/c++/v1/__config:993:48: note: expanded from macro '_LIBCPP_DEPRECATED'
                                               ^
2022-01-24 22:50:18 +01:00
elsid
7ec7c57879
Remove unnecessary loops from path
This prevents actors going back when a new shortest path includes a point
behind them where they were right before. Such situation can happen when path
includes off mesh connection. Resulting cost of such path can be lower than
the real one because off mesh connections are straight lines and walking
surface usually is not a plane but a surface.

Skip to path point where distance from current position to the line between
previous and this point is less than point tolerance. Which means actor is
standing very close to the edge between those points. Additionally check by
navmesh raycasting to make sure there is actually a valid path.
2022-01-24 22:32:04 +01:00
uramer
39c7325db7 Merge branch 'lua_fix_onActorActive' into 'master'
Validate that object exists before onActorActive Lua handler

See merge request OpenMW/openmw!1580
2022-01-24 13:25:20 +00:00
psi29a
fdc08cf01e Merge branch 'fix_storage' into 'master'
Fix heap use after free in components/lua/storage.cpp

See merge request OpenMW/openmw!1586
2022-01-24 12:17:19 +00:00
Petr Mikheev
067d71f7eb Fix heap use after free in components/lua/storage.cpp 2022-01-23 22:37:04 +01:00
Petr Mikheev
203ee492c8 Remove getRefIdRef because it is the same as getRefId. 2022-01-23 21:01:44 +01:00
Bret Curtis
74e7cfc023 remove unused includes: part1
remove unused imports: part2

revert one tidy we will keep for c++20
2022-01-23 17:30:25 +01:00
Bret Curtis
cdbab2325f rename esmterrain to esm3terrain 2022-01-23 17:19:30 +01:00
Bret Curtis
d1fb854521 move most of the files from esm to esm3, keep common code in esm; this is make space for a future with esm4
esm typo

esm typo
2022-01-23 17:04:48 +01:00
elsid
4b59ff2060
Include headers instead of source files 2022-01-23 15:40:30 +01:00
Petr Mikheev
24989e7bc1 Validate that object exists before onActorActive Lua handler 2022-01-23 11:30:22 +01:00
fredzio
26bdba88a2 Store std::weak_ptr into mUpdateAabb. This avoid extending the lifetime
of collision objects beyond what they should.
2022-01-22 17:17:20 +01:00
uramer
a85f2b0b2a Remove unnecessary mGuiCursorEnabled; from sensor manager 2022-01-22 13:28:07 +01:00
elsid
3f14011087
Support multiple parents for NIF nodes
Choose a parent base on which node is used to iterate over children nodes.
This leads to duplicate handing of child nodes. A node will be handled so many
times how many parents it has.

For example:
p1 p2
 \ /
  c

Will be handled as:
p1 p2
|  |
c  c

If c has children they will be handled X times c is handled.
2022-01-22 01:02:31 +01:00
elsid
580edf18b9 Use weak_ptr for Actor and Projectile simulations (#6515) 2022-01-21 00:28:56 +00:00