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

6922 commits

Author SHA1 Message Date
elsid
d1e8e56619
Make QuickKey type a fixed size enum class 2023-03-21 20:53:04 +01:00
elsid
eb79b29512
Use ranged for loop 2023-03-21 20:45:49 +01:00
elsid
2135eba103
Fix loading ESM3 QuickKeys 2023-03-21 20:44:42 +01:00
elsid
0b852edc7f
Remove redundant inline 2023-03-21 09:34:27 +01:00
elsid
8dd6b16fee
Avoid double lookup 2023-03-21 09:34:26 +01:00
elsid
04d7781424
Support not only StringRefId for checking first person body part 2023-03-19 17:49:41 +01:00
elsid
e6cf516e12
Support index RefId as pair of record type and std::uint32_t 2023-03-19 17:20:48 +01:00
elsid
86293af084
Support generated RefId as std::uint64_t 2023-03-19 17:20:48 +01:00
elsid
0992624c8b
Support reading and writing typed ESM::RefId to ESM 2023-03-19 17:20:48 +01:00
elsid
069d4255b9
Make ESM::RefId to be fixed size cheap to copy
Use std::variant. Store refId strings in unordered_set and use pointer to an
item there. Inserts to unordered_set do not invalidate pointers to values so the
pointer is always valid. Elements are not removed. Assume there is finite number
of string refIds.
2023-03-19 17:20:43 +01:00
elsid
3a0443c472
Make constexpr Misc::NotNullptr member functions 2023-03-18 16:36:26 +01:00
psi29a
d64eea2fc6 Merge branch '7113-move-from-std-atoi-to-std-from_char' into 'master'
Move from std::atoi to std::from_char

Closes #7113

See merge request OpenMW/openmw!2760
2023-03-18 09:30:48 +00:00
Shi Han
a90e3b8c3b Move from std::atoi to std::from_char 2023-03-18 09:30:48 +00:00
psi29a
9664a57cad Merge branch 'esmtool_strings' into 'master'
Use relative to content file path to find strings file

See merge request OpenMW/openmw!2837
2023-03-18 09:14:54 +00:00
elsid
67e96d48ba
Use relative to content file path to find strings file
To be used by esmtool when VFS is not used.
2023-03-18 03:00:18 +01:00
elsid
83d212fe0f
Use SFINAE to avoid conflicts between visit functions 2023-03-17 23:37:11 +01:00
psi29a
a60f657f5a Merge branch 'fast_cell4_load' into 'master'
Lazy loading of ESM4::reference

See merge request OpenMW/openmw!2804
2023-03-17 21:46:37 +00:00
psi29a
2ff4a5a11a Merge branch 'cs_fix_info_collection' into 'master'
Fix loading, inserting and moving topic info records

See merge request OpenMW/openmw!2806
2023-03-17 14:40:05 +00:00
Petr Mikheev
0b385d5db9 Create MWWorld::SafePtr 2023-03-13 23:44:00 +01:00
elsid
e032214fcb
Use common info ordering implementation for engine and editor 2023-03-13 21:57:41 +01:00
elsid
e892c62b10
Fix loading, inserting and moving topic info records
Topic info records need to have specific order defined via mNext and mPrev
fields (next and previous records). When loading multiple files a record may be
inserted into middle of the topic but neighborhood records may not be aware of
it. Having the order it's possible to move the records within one topic.

Sort the record once after loading all content files but preserve the order for
all other operations. Use std::map to group info ids by topic to make sure the
topics order is stable. Keep order within a topic for info ids on loading new
records. Use this order later for sorting the records.
2023-03-13 21:57:38 +01:00
psi29a
9b184a1698 Merge branch 'loadammo' into 'master'
Updates to ESM4::Ammunition loading

See merge request OpenMW/openmw!2830
2023-03-13 09:34:31 +00:00
Alexei Dobrohotov
3d87bc185d Updates to ESM4::Ammunition loading 2023-03-13 01:36:07 +03:00
psi29a
e37860c1dc Cherry pick 'openmw-48-stereo-fixes' into 'master'
Openmw 48 stereo fixes

See merge request OpenMW/openmw!2815
2023-03-12 22:20:23 +01:00
Petr Mikheev
58fdd687a8 Support links to GMST in l10n files 2023-03-12 13:12:13 +01:00
psi29a
efebb8efd8 Merge branch 'cmake_fixes' into 'master'
Formatting and coverage related CMake files fixes

See merge request OpenMW/openmw!2811
2023-03-12 11:03:06 +00:00
elsid
1cc4909144
Add --coverage to components_qt, benchmarks and openmw-cs 2023-03-10 21:36:12 +01:00
elsid
1857d8a68c
Use target_compile_options to add --coverage 2023-03-10 15:34:08 +01:00
elsid
cc066efa11
Fix identation in CMakeLists.txt 2023-03-10 15:28:06 +01:00
florent.teppe
170b732854 readers cache keep a stateless encoder
to keep access to the current encoding configuration

build linux
2023-03-10 12:39:47 +01:00
psi29a
ff7a098e74 Merge branch 'justbenormal' into 'master'
Unify collision shape transformations

See merge request OpenMW/openmw!2808
2023-03-10 07:51:01 +00:00
psi29a
b9f1d5d4e7 Merge branch 'seventeenth-times-the-charm' into 'master'
Fix #7264

Closes #7264

See merge request OpenMW/openmw!2805
2023-03-10 07:21:07 +00:00
Alexei Dobrohotov
562461a659 Unify collision shape transformations 2023-03-10 00:12:12 +03:00
psi29a
eca26e8b18 Merge branch 'Support-BA2-file-format' into 'master'
Support ba2 file format

See merge request OpenMW/openmw!2787
2023-03-08 22:00:43 +00:00
Alexei Dobrohotov
2277bdc1ae Improve btTriangleMesh abuse (bug #6027, part 2) 2023-03-08 06:13:32 +03:00
AnyOldName3
ccdb1bf6b7 Ensure shader requirements are pushed at least once for subgraph
Shaders, if deemed necessary, get attached to the node mentioned by the
top of the requirements stack. Previously an empty stack was incorrectly
assumed to mean no shaders were required, but we found out that was
wrong. We need to put shaders *somewhere*, and the root of the subgraph
we're modifying should be the best place.
2023-03-08 00:28:48 +00:00
AnyOldName3
aee1edaf9e Partially revert "Attach shaders to geometry that lacks a stateset if necessary"
This reverts commit 6aef366fd3.
2023-03-08 00:15:49 +00:00
Cédric Mocquillon
19fbba080d Add a check if the requested file is not found 2023-03-06 21:26:51 +01:00
Cédric Mocquillon
7f936ad18f Some cleanup on includes 2023-03-06 21:26:20 +01:00
Cédric Mocquillon
64ce6eb6bc Merge the two identical conditions 2023-03-06 21:25:53 +01:00
Cédric Mocquillon
1a7b2cd611 Fix remaining bugs 2023-03-06 15:50:45 +01:00
AnyOldName3
4aa40897ca Revert "Apply ShaderVisitor to Rig/MorphGeometry source geometry"
This reverts commit 471f6abf6c.

The commit should be redundant as of 20e799dadc
2023-03-06 00:54:57 +00:00
Alexei Dobrohotov
20e799dadc Use Rig/MorphGeometry state for its child geometry
Cherry-pick of ed44095cdc from 0.48 branch
2023-03-06 00:54:02 +00:00
Evil Eye
c6a545766c Remove redundant string_view 2023-03-05 21:45:03 +01:00
unknown
868a398b86 Allow comparison operators of arbitrary length 2023-03-05 19:15:43 +01:00
florent.teppe
214cb8d8fe Only loads ESM4::reference when they are needed
and only those from the cell they are a part of.
The cell stores where it starts in the file for quick access later.
2023-03-04 23:40:41 +01:00
psi29a
a91b4e0cce Merge branch 'duplicated_locales' into 'master'
Ignore duplicated preferred l10n locales

See merge request OpenMW/openmw!2796
2023-03-04 12:42:25 +00:00
psi29a
afa6643c6e Merge branch 'maybe-fix-freeze-catcher' into 'master'
Fix Windows freeze catcher

See merge request OpenMW/openmw!2795
2023-03-04 12:42:06 +00:00
Petr Mikheev
e70ab80b90 Ignore duplicated preferred l10n locales 2023-03-04 10:20:03 +01:00
AnyOldName3
5b3e9e15ee Maybe fix Windows freeze catcher
It looks like it's never actually been capable of creating a minidump since the original MR was merged. It worked briefly, and then apparently I managed to dissappear an important function call when rearranging things.
2023-03-04 00:28:22 +00:00
Petr Mikheev
e007dc9d6b Log reserving texture units 2023-03-04 00:55:34 +01:00
Cédric Mocquillon
d2244c8d97 Fix detectVersion 2023-03-03 20:49:31 +01:00
Cédric Mocquillon
78251a2bb1 Move outside the condition + fix bug: missing offset 2023-03-03 17:09:38 +01:00
Cédric Mocquillon
d73ab7ef6f Add comments 2023-03-03 17:09:38 +01:00
Cédric Mocquillon
24272d07bf Share generateHash used in ba2dx10file and ba2gnrlfile 2023-03-03 17:09:35 +01:00
elsid
cd6a5b5a0e
Support asymmetric comparison between ESM::RefId and std::string_view 2023-03-03 15:44:18 +01:00
elsid
dfcea389be
Add helper functions for string comparison to RefId 2023-03-03 00:39:55 +01:00
elsid
6518688120
Reorder RefId members 2023-03-02 23:29:40 +01:00
Cédric Mocquillon
d30deef4b5 Use the right archive type to load bsa according to their type 2023-03-02 21:07:54 +01:00
Cédric Mocquillon
974799c011 Handle DX10 case of ba2 format 2023-03-02 18:40:44 +01:00
Cédric Mocquillon
c1fbe90953 Handle GNRL case of ba2 format 2023-03-02 18:19:58 +01:00
psi29a
340a2aa826 Merge branch 'ref_id_cmp_string_view' into 'master'
Support RefId comparison with std::string_view

See merge request OpenMW/openmw!2784
2023-03-02 12:49:28 +00:00
psi29a
3d8acf17bd Merge branch 'shadervisitor' into 'master'
Attach shaders to geometry that lacks a stateset if necessary (bug #7251)

See merge request OpenMW/openmw!2782
2023-03-01 17:09:32 +00:00
Alexei Dobrohotov
471f6abf6c Apply ShaderVisitor to Rig/MorphGeometry source geometry 2023-03-01 18:27:44 +03:00
elsid
2fcb94064d
Support RefId comparison with std::string_view 2023-02-28 23:04:48 +01:00
Alexei Kotov
7fd9b27b54 Don't combine static node collision geometry (bug #6027) 2023-03-01 00:41:04 +03:00
Alexei Dobrohotov
6aef366fd3 Attach shaders to geometry that lacks a stateset if necessary 2023-02-28 20:13:16 +03:00
psi29a
a9fdb51041 Merge branch 'fix_lua_memoryleak' into 'master'
Fix Lua memory leak (#7128)

Closes #7128

See merge request OpenMW/openmw!2774
2023-02-28 08:33:48 +00:00
Alexei Dobrohotov
540fa00f12 Don't use ESM4::Lighting fog power as fog density 2023-02-27 05:50:58 +03:00
Cody Glassman
6a64f352a4 fix shader compilation 2023-02-26 14:31:53 -08:00
Petr Mikheev
7b3aa621a4 [Lua] Fix memory leak in sandboxed "require". 2023-02-26 19:59:53 +01:00
Petr Mikheev
d0a82437a4 [Lua] Fix memory tracking 2023-02-26 18:46:57 +01:00
psi29a
2b9f962f7c Merge branch 'minimal_element_leak' into 'master'
Minimal solution to UI Element leak

See merge request OpenMW/openmw!2770
2023-02-26 14:57:30 +00:00
psi29a
e8e97679f7 Merge branch 'vsync' into 'master'
Add support for non-adaptive VSync

Closes #7129

See merge request OpenMW/openmw!2769
2023-02-26 13:28:56 +00:00
uramer
38bceb653d Set Element layout to nil on destroy 2023-02-26 14:13:06 +01:00
Andrei Kortunov
be488649c3 Add support for non-adaptive VSync (feature 7129) 2023-02-26 15:19:19 +04:00
Alexei Kotov
a2fdaf8531 Merge branch 'Error-marker-loading-failure-not-handled' into 'master'
Use the embedded marker error if we fail to load the error marker model from the vfs

See merge request OpenMW/openmw!2757
2023-02-26 06:31:09 +00:00
psi29a
4faa1bf3e8 Merge branch 'moo-bitch-get-out-my-hay' into 'master'
Don't use FFP-friendly texture image units for shadow maps

Closes #7102

See merge request OpenMW/openmw!2682
2023-02-25 23:12:32 +00:00
Cody Glassman
ac4787aeec shade refactor 2023-02-25 11:03:39 -08:00
Alexei Kotov
d8dad79195 Read bsLeafAnimNode 2023-02-24 20:34:41 +03:00
Alexei Kotov
9618a465ce Read bhkCompressedMeshShape 2023-02-24 20:32:35 +03:00
Alexei Kotov
fc6bc90c3d Read BSFurnitureMarkerNode 2023-02-24 19:38:29 +03:00
Alexei Kotov
e15434be94 Disable falloff in BSEffectShader for now 2023-02-24 19:36:39 +03:00
Alexei Dobrohotov
0f222d270e Prefer the earliest eponymous nodes in skeletons (bug #3842) 2023-02-23 15:36:04 +03:00
Cédric Mocquillon
f7b45a6262 Add method to load and clone the error marker used by the scene manager 2023-02-22 19:51:37 +01:00
Cédric Mocquillon
97c42768e6 Use the embedded marker error if we fail to load the error marker model from the vfs 2023-02-22 19:51:34 +01:00
psi29a
ee41151520 Merge branch 'Get-Skyrimesm-Loading' into 'master'
Load esm files from vfs

See merge request OpenMW/openmw!2756
2023-02-20 21:00:09 +00:00
Bret Curtis
db2368fced small fix for gcc12 2023-02-20 10:55:46 +01:00
Alexei Kotov
8d3c5c0f05 Unify texture wrapping setup 2023-02-20 00:23:00 +03:00
Alexei Kotov
2de81738c1 Implement the basics of BSEffectShaderProperty 2023-02-20 00:23:00 +03:00
Cédric Mocquillon
6e23ad82d5 Load esm files from vfs 2023-02-19 21:58:19 +01:00
psi29a
0f331a4fc5 Merge branch 'lua_callback' into 'master'
Fix potential memory leak in LuaUtil::Callback

See merge request OpenMW/openmw!2733
2023-02-18 21:05:07 +00:00
psi29a
0ed1310417 Merge branch 'fix_fog_state_load' into 'master'
Fix loading fog state

See merge request OpenMW/openmw!2743
2023-02-18 07:27:05 +00:00
elsid
b5ec584be2
Replace ESM::RefId::sEmpty by default constructed RefId where possible
Static const is only required to provide a reference or a pointer when it is not
possible with default constructed temporary.
2023-02-18 01:07:15 +01:00
elsid
959de6f4c1
Avoid UB on empty fog data record 2023-02-17 23:42:49 +01:00
elsid
28f7a89530
Reuse dtNavMeshQuery
To avoid redundant allocations.
2023-02-17 15:05:25 +01:00
elsid
996153f78d
Convert RefId to class 2023-02-15 23:20:44 +01:00
Petr Mikheev
b71eac3e76 Fix #7210 2023-02-15 10:31:10 +01:00
Petr Mikheev
eceeb15ee5 Fix bug in lua_ui/content.lua: getmetatable(ui.content{}) shouldn't return a global mutable table 2023-02-14 21:08:19 +01:00
Petr Mikheev
65885d994f Don't expose LuaUtil::Callback to lua 2023-02-14 21:08:19 +01:00
Petr Mikheev
71ba7b88e2 Move asyncpackage from apps/openmw/mwlua to components/lua 2023-02-14 20:03:32 +01:00
elsid
6d261d38dd
Add functions to read and write ESM::RefId and use them
To be later changed with another implementation.
2023-02-13 22:07:58 +01:00
elsid
80e6d6cbe3
Support variable size strings in ESM3 2023-02-13 10:18:32 +01:00
elsid
beb017e699
Do not truncate too long strings on writing ESM 2023-02-13 10:18:32 +01:00
elsid
c0c723bb1b
Add const to read only function 2023-02-13 10:18:32 +01:00
Alexei Kotov
0ba179c332 Discard terrain base layer alpha in non-shader rendering path (bug #6657) 2023-02-13 03:43:59 +03:00
psi29a
02651cd96c Merge branch 'texturefx' into 'master'
Propagate dynamic effects to node's immediate children (bug #6550)

Closes #6550

See merge request OpenMW/openmw!2721
2023-02-11 21:42:30 +00:00
elsid
2e64155c0f
Use signed type for left record and files size in ESM3 reader context
Otherwise reading some of the records like ESM::CellRef without a subrecord
after could lead to underflow of ESM_Context::leftRec which makes
ESM::ESMReader::hasMoreSubs to return true and load hangs for a while trying to
read the same subrecord many times.

Fix ESM::Variant tests since it's now required to have a record for any ESM
data. Add 16 (size of record header) to all expected data sizes.
2023-02-11 16:09:14 +01:00
Alexei Kotov
9deed5c03e Propagate dynamic effects to node's immediate children (bug #6550) 2023-02-11 17:37:25 +03:00
elsid
a5ec108cfb
Add missing space 2023-02-11 15:14:02 +01:00
elsid
4f683d1ee9
Throw exception on failed write 2023-02-11 15:14:02 +01:00
psi29a
5f1da29881 Merge branch 'bsapriority' into 'master'
Files::Collections: prefer files from highest priority folders (bug #7092)

Closes #7092

See merge request OpenMW/openmw!2716
2023-02-11 10:50:55 +00:00
psi29a
83894bae8a Merge branch 'nif' into 'master'
Add NiTriBasedGeomData abstraction, bring NiVertexColorProperty to modern standards

See merge request OpenMW/openmw!2714
2023-02-11 10:33:08 +00:00
Alexei Kotov
536370c76d Files::Collections: prefer files from highest priority folders 2023-02-11 01:25:00 +03:00
Alexei Kotov
99aa90f90c Rewrite NiVertexColorProperty 2023-02-11 00:58:13 +03:00
Alexei Kotov
d39127cc3d Add NiTriBasedGeomData abstraction 2023-02-10 23:06:56 +03:00
elsid
080700f8fe
Name all custom ESM format versions and add tests 2023-02-10 19:54:15 +01:00
psi29a
de2bd6d802 Merge branch 'nistringpalette' into 'master'
Fix NiStringPalette loading again

See merge request OpenMW/openmw!2703
2023-02-10 07:46:39 +00:00
AnyOldName3
8ea2e15446 clang-format some more
LLVM shouldn't make me download everything they've ever made in the same
package as clang-format.
2023-02-10 00:40:48 +00:00
AnyOldName3
83b940397e AdD lInE bReAk ThAt ClAnG-fOrMaT wAnTeD 2023-02-10 00:12:55 +00:00
Alexei Kotov
a4ddf443ed Fix NiStringPalette loading 2023-02-09 21:10:25 +03:00
Alexei Kotov
c8430ee6c8 Clean up fillTriangleMesh for NiTriStrips 2023-02-09 20:24:05 +03:00
AnyOldName3
7d4410d4fb Use reserveGlobalTextureUnits for shadow maps 2023-02-09 01:32:48 +00:00
psi29a
a41cbfb349 Merge branch 'candles' into 'master'
Read NiBlendInterpolator records, fill in NiControllerManager fields

See merge request OpenMW/openmw!2700
2023-02-08 22:24:37 +00:00
elsid
2c43a8558a
Add option to disable debug log for unsupported nif files
It becomes quite extensive and not very useful when loading oblivion content
files.
2023-02-08 22:59:29 +01:00
Alexei Kotov
d7834c43e5 Fill in NiControllerManager fields 2023-02-09 00:06:08 +03:00
Alexei Kotov
091fcd837e Read all the NiBlendInterpolator record types 2023-02-09 00:06:08 +03:00
Alexei Kotov
7ecf018743 Add NiBlendInterpolator 2023-02-08 22:58:47 +03:00
elsid
02ada74fa1
Do not try to dereference nullptr in object cache 2023-02-08 20:19:59 +01:00
Alexei Kotov
41d6ccd3f6 Read NiDefaultAVObjectPalette 2023-02-08 15:08:52 +03:00
psi29a
5f9332751c Merge branch 'roottrafo' into 'master'
Don't discard root node transformations for Gamebryo meshes

See merge request OpenMW/openmw!2697
2023-02-08 11:32:16 +00:00
Alexei Kotov
b14d1f0c6b Don't discard root node transformations for Gamebryo meshes 2023-02-08 14:20:42 +03:00
Alexei Kotov
8ebdd1e4a5 Fix material data loading for 10.0.1.0 2023-02-08 13:46:54 +03:00
Alexei Kotov
115c30a573 Read bhkConvexTransformShape 2023-02-08 13:26:26 +03:00
AnyOldName3
9be3d2668a Break out of loops when uniform is found 2023-02-07 22:19:53 +00:00
Alexei Kotov
9f28a26b25 Read NiSequence/NiControllerSequence 2023-02-08 01:03:11 +03:00
psi29a
944931c9bf Merge branch 'load_esm4_lights' into 'master'
Adds ESM4 light into ESM4 Cells

See merge request OpenMW/openmw!2692
2023-02-07 16:50:10 +00:00
florent.teppe
486d15b19e moved light common to its own file
moved esm4light to it's own file
2023-02-07 16:29:17 +01:00
florent.teppe
dc961e3189 Adds the light into the scene.
Common struct for ESM3 and ESM4 light
2023-02-07 10:07:59 +01:00
elsid
627bed09ee
Remove redundant operator<< overloads from Log 2023-02-06 21:18:35 +01:00
psi29a
a0795ba7ae Merge branch 'launch_fix' into 'master'
Fix some non-ASCII path issues

Closes #6817

See merge request OpenMW/openmw!2686
2023-02-06 19:50:30 +00:00
florent.teppe
a71a86e64a Load light models in the engine. Doesn't emit light 2023-02-06 20:22:17 +01:00
psi29a
15b3af92df Merge branch 'macos_lua_fix' into 'master'
make sure lua works with macos packages

See merge request OpenMW/openmw!2687
2023-02-06 18:53:19 +00:00
psi29a
4f001d8736 Merge branch 'qt6' into 'master'
Add an initial Qt6 support

See merge request OpenMW/openmw!2684
2023-02-06 16:55:20 +00:00
Andrei Kortunov
7e2aedf637 Add an initial Qt6 support 2023-02-06 18:38:59 +04:00
Bret Curtis
a708fb4a5c make sure lua works with macos packages 2023-02-06 14:35:22 +01:00
Andrei Kortunov
8925f854e7 Fix non-ASCII path logging 2023-02-06 15:12:24 +04:00
Andrei Kortunov
5836d27928 Fix ContentSelector usage with non-ASCII paths 2023-02-06 13:36:02 +04:00
psi29a
4032c447e9 Merge branch 'load-ESM4-Cell' into 'master'
Can load and coc into an interrior oblivion cell

See merge request OpenMW/openmw!2647
2023-02-06 08:56:23 +00:00
glassmancody.info
e778ffee9b po2 scaling for average luminance 2023-02-05 12:30:38 -08:00
elsid
e92ada09af
Replace QRegExp by QRegularExpression 2023-02-05 13:30:26 +01:00
AnyOldName3
80d6f6bc97 Add line break that clang-format wanted 2023-02-05 02:07:00 +00:00
AnyOldName3
0edc8fc77d Don't use FFP-friendly texture image units for shadow maps
This more-or-less gets rid of the shadow system's only depencency on FFP
stuff. All that remains is it using OSG cameras, which OSG provides a
uniform-based implementation of, too, which we can trivially migrate to.

This should mean we're not eating any of the ~8 FPP-friendly texture
units, which is good as Morrowind models can use all of those on their
(although they very rarely do), and instead use some of the ~160
shader-only texture image units. This just requires not calling
glEnable(GL_TEXTURE_2D), accomplished by changing
setTextureAttributeAndModes to setTextureAttribute.

Also changes from using glTexGen and its eye plane matrices to pass the
shadow space matrix for each light to explicit uniforms. Thankfully, the
maths was a simple combination of the valid region matrix and eye plane
matrix maths.

As of this commit, I believe this kills shadows in one eye for stereo
rendering.
2023-02-05 00:40:33 +00:00
psi29a
aee7716c3a Merge branch 'launcher_typed_settings' into 'master'
Typed launcher settings

See merge request OpenMW/openmw!2650
2023-02-04 23:41:59 +00:00
florent.teppe
084207af64 Avoids a lot a special cases for ESM3 vs ESM4 cells. 2023-02-04 23:25:06 +01:00
florent.teppe
1caed2de2a Applies some review comments.
Proper visit for ESM::CellVariant

Fixed MWWorldCell constructor
2023-02-04 17:09:54 +01:00
elsid
f1dbd9b959
Fix -Wduplicated-branches warnings 2023-02-04 00:10:30 +01:00
elsid
c79c14da91
Fix -Wnon-virtual-dtor warnings 2023-02-03 23:00:09 +01:00
psi29a
00978ed7a4 Merge branch 'wherefore_art_thou_horatius' into 'master'
Fix global variable replacement in dialogue

Closes #7197

See merge request OpenMW/openmw!2675
2023-02-01 23:38:32 +00:00
psi29a
68b3b90255 Merge branch 'ui_content_leak' into 'master'
Move implementation of UI Content to Lua (#7155)

See merge request OpenMW/openmw!2661
2023-02-01 22:51:47 +00:00
Evil Eye
8d2b5ed8ee Combine initializer_lists 2023-02-01 22:27:22 +01:00
Evil Eye
d3bc79e9b2 Reduce code duplication 2023-02-01 21:57:50 +01:00
Evil Eye
32ac7406ab Fix global variable replacement in dialogue 2023-02-01 17:49:11 +01:00
Evil Eye
571e11cd42 Restore 0936d716d96cd45b3efc2d1a3697614f7f96952d 2023-02-01 17:26:39 +01:00
uramer
e96681151c Get rid of the LuaUI::Content namespace 2023-02-01 17:18:50 +01:00
uramer
d24c506b0e Move metatable protection asserts to tests 2023-02-01 16:34:32 +01:00
uramer
2a35bae655 Use range_error for invalid indexes 2023-02-01 16:24:58 +01:00
uramer
fb0646dda1 Remove Ui Content counter in Lua profiler 2023-01-31 19:52:28 +01:00
uramer
bbbef96087 Switch to loadInternalLib 2023-01-31 19:50:33 +01:00
uramer
c7b0c0a406 Protecd UI Content's metatable 2023-01-30 23:22:18 +01:00
florent.teppe
4e7cde5d72 applied some review changes.
crashfix tests
2023-01-30 20:49:34 +01:00
psi29a
92f88c16a9 Merge branch 'remove-strerror' into 'master'
Remove strerror usages

Closes #7151

See merge request OpenMW/openmw!2664
2023-01-30 17:09:39 +00:00
psi29a
bc90636316 Merge branch 'fix-7117' into 'master'
Replace boost::scoped_array with std::vector

Closes #7117

See merge request OpenMW/openmw!2662
2023-01-30 14:12:04 +00:00
psi29a
ef0a81e811 Merge branch 'integration_tests_crash_log' into 'master'
Use proper log paths and print crash log in integration tests CI job

See merge request OpenMW/openmw!2668
2023-01-30 12:12:21 +00:00
Petr Mikheev
3096111abb Merge branch 'docs_fixes' into 'master'
Documentation and API fixes (part of !2529)

See merge request OpenMW/openmw!2649
2023-01-30 10:13:26 +00:00
uramer
c17eedd348 Documentation and API fixes (part of !2529) 2023-01-30 10:13:26 +00:00
elsid
c44bc5ade5
Setup logging with properly initialized configuration manager
Default constructed instance may provide different paths from initialized one.
2023-01-30 09:30:55 +01:00
elsid
007ad4e4d1
Write crash log to temporary directory
To make sure current user has rights to do so.
2023-01-30 09:30:55 +01:00
Andrzej Głuszak
9b0a499b58 Remove strerror usages 2023-01-29 22:41:59 +01:00
Andrzej Głuszak
c9e5f0208d Replace boost::scoped_array with std::vector 2023-01-29 20:40:07 +01:00
uramer
259f104311 Clean up 2023-01-29 19:40:13 +01:00
uramer
749c89e26e Add missing to_string 2023-01-29 19:28:54 +01:00
uramer
3618b3f409 Fix Content::View::remove 2023-01-29 18:52:18 +01:00
uramer
fc1430af95 Move implementation of UI Content to Lua 2023-01-29 17:07:38 +01:00
psi29a
3a9a60a453 Merge branch 'esmtool_esm4_globals' into 'master'
Support more fields in esmtool for ESM4

See merge request OpenMW/openmw!2659
2023-01-29 11:30:01 +00:00
florent.teppe
ebfee18e35 implements std::visit for CellVariant, fixes struct vs class forward decl 2023-01-29 11:28:39 +01:00
florent.teppe
aa29f86efe fixed struct vs class. 2023-01-29 10:59:39 +01:00
elsid
d541436b15
Support parent, type and value fields in esmtool for ESM4 2023-01-29 03:02:00 +01:00
elsid
e7acced5e9
Move metafunctions to check ESM4 field existence to a separate header 2023-01-29 03:00:48 +01:00
elsid
5bb088218e
Restore original formId
To make sure esmtool prints original value and not a result of conversion.
2023-01-29 02:35:06 +01:00
florent.teppe
f9da66e9ee Greatly improved how the variant on MWWorld::CellRef works 2023-01-28 18:57:55 +01:00
florent.teppe
216ca71149 Applied review comments
getEditorName => getNameId
restored cosntructor in CoordinateConverter
2023-01-28 12:14:00 +01:00
florent.teppe
e6e27413d9 gives MWWorld::CellRef the MWWorld::Cell treatment
MWWorld::CellRef now has a variant, and datas that are part of the intersection of both ESM4::Reference and ESM::CellRef are part of MWWorld::CellRef

For ESM4 most data isn't filled in, so it returns default values.
2023-01-27 19:40:45 +01:00
elsid
8be2fc9fd7
Stop updating navmeshtool progress on first bad message 2023-01-27 19:10:53 +01:00
florent.teppe
23614ae2ae Renamed esm3esm4bridge => esmbridge 2023-01-27 18:40:15 +01:00
florent.teppe
5037dcf9bc Fixes a crash on launch and some compile issue
also uses std::visit in cellstore comparison to avoid missing combinasion

split loadrefs in loadref of ESM4 and ESM3.
2023-01-27 16:41:00 +01:00
florent.teppe
cb8cdd8831 ESM::CellVariant aans MWWorld:Cell now take reference in constructor: signals that nullptr isn't accepted.
also applied other review comments.
2023-01-27 14:07:50 +01:00
florent.teppe
531e55e04c Better handling of the esm3 vs esm4 cell problem
Common attribute are in one structure that has two constructors, one for ESM3 vs ESM4 Cell
Mood part of MWWorld::Cell
2023-01-27 13:39:39 +01:00
elsid
cf75363290
Typed launcher settings
QMultiMap is not clear about what settings exist and it's not efficient way to
access them after they are loaded.
2023-01-27 12:42:05 +01:00
elsid
0961720835
Join path components using path::operator/ instead of string::operator+ 2023-01-27 01:07:15 +01:00
florent.teppe
3515c8e61a Static references are created as refcells, nothing displayed yet. 2023-01-26 22:37:32 +01:00
florent.teppe
c896a2ca48 Crashfix on launch 2023-01-26 22:37:32 +01:00
florent.teppe
0018bcf7de Should make cellvariant safer to use.
Hopefully clang tidy agrees.
2023-01-26 22:37:32 +01:00
florent.teppe
e81e278363 Implements some cell params + linux compile fix 2023-01-26 22:37:31 +01:00
florent.teppe
562e129bd0 encapsulations of esm3 cell and esm4 cells. 2023-01-26 22:37:31 +01:00
florent.teppe
08b68fcd48 Cannot load a cell yet, but getting more necessary parts in 2023-01-26 22:36:11 +01:00
Evil Eye
d40a9ec5bc Use worldspace coords in AiWanderStorage 2023-01-23 21:06:50 +01:00
psi29a
1422053fa9 Merge branch 'more_uniforms' into 'master'
[Postprocessing] Add sky and ambient colors

See merge request OpenMW/openmw!2638
2023-01-21 22:42:21 +00:00
psi29a
eb853b1315 Merge branch 'ptmikheev-master-patch-34687' into 'master'
Fix constexprant

See merge request OpenMW/openmw!2643
2023-01-21 22:42:03 +00:00
Petr Mikheev
24ef6d29d4 Fix constexprant 2023-01-21 21:58:17 +00:00
florent.teppe
a4137e941c std::string_view can be used in map and unordered map
This avoids some unecessary dynamic allocations.
Also applies some review advice.
2023-01-21 19:19:26 +01:00
florent.teppe
63e44eddc9 Navigator doesn't use RefId anymore 2023-01-21 18:39:57 +01:00
florent.teppe
150e2ba885 Revert "Use ESM::RefId for worldspace in detournavigator"
This reverts commit b4ab153418.

# Conflicts:
#	apps/navmeshtool/worldspacedata.cpp
2023-01-21 18:39:57 +01:00
florent.teppe
3780033837 Reverts Cell name to a string 2023-01-21 18:39:42 +01:00
glassmancody.info
564c408663 expose more uniforms to postprocessing 2023-01-20 17:43:54 -08:00
Petr Mikheev
95999afefd Apply clang-format to the previous commit 2023-01-20 23:44:12 +01:00
Petr Mikheev
ca48b778c3 Merge branch 'addutils' into 'master'
Add remap and round to lua utils

See merge request OpenMW/openmw!2605
2023-01-20 22:28:34 +00:00
Kindi
07da7eddea Add remap and round to lua utils 2023-01-20 22:28:34 +00:00
elsid
dd89403df0
Move ensureUtf8Encoding to named namespace
To follow https://github.com/isocpp/CppCoreGuidelines/blob/master/CppCoreGuidelines.md#sf21-dont-use-an-unnamed-anonymous-namespace-in-a-header

Add QtGlobal include to define QT_VERSION and QT_VERSION_CHECK macroses before
they're used.
2023-01-18 22:58:35 +01:00
psi29a
ee980721b8 Merge branch 'debug_lua_memory' into 'master'
Additional information in Lua profiler

See merge request OpenMW/openmw!2612
2023-01-18 14:33:05 +00:00
psi29a
fbeacc1e0f Merge branch 'navigator_check_agent_bounds' into 'master'
Check agent bounds on adding agent to navigator

See merge request OpenMW/openmw!2629
2023-01-18 14:31:22 +00:00
psi29a
54c18ea86d Merge branch 'change-const-to-constexpr' into 'master'
change const to constexpr

Closes #6797

See merge request OpenMW/openmw!2630
2023-01-18 14:30:36 +00:00
elsid
cf1d8544e3
Check agent bounds on adding agent to navigator
Do not add agent bounds which are not supported by recastnavigation with given
settings and log such events.

To avoid reaching navmesh tile generation to find out it can't be generated for
such agent bounds.
2023-01-18 12:00:48 +01:00
James-Deciutiis
4e61fec14d change const to constexpr 2023-01-17 19:31:52 -08:00
Andrei Kortunov
ee9ab8d393 Use STL-style iterators instead of Java-style ones 2023-01-15 20:23:18 +04:00
Andrei Kortunov
792feae39e Do not use deprecated implicit conversion 2023-01-15 20:23:18 +04:00
Andrei Kortunov
0864d997d0 Add missing includes 2023-01-15 20:09:56 +04:00
psi29a
a7a89ba7c1 Merge branch 'launcher' into 'master'
Rework how OpenMW launcher looks

Closes #6922

See merge request OpenMW/openmw!2587
2023-01-15 16:00:59 +00:00
psi29a
dc3ec1a0a0 Merge branch 'mwscript' into 'master'
Multiple mwscript optimizations and some refactoring

See merge request OpenMW/openmw!2600
2023-01-15 15:59:30 +00:00
psi29a
32733d23fa Merge branch 'xanim' into 'master'
X-file handling fixes (bug #5371)

Closes #5371

See merge request OpenMW/openmw!2614
2023-01-15 15:57:27 +00:00
Andrei Kortunov
902c48d1bb Rework launcher UI 2023-01-15 12:36:08 +04:00
elsid
44429f0393
Limit NavMeshManager update range by player tile and max tiles
Object AABB may be much larger than area currently covered by navmesh. In this
case all tiles beyond covered range should be ignored. Attempt to iterate over
them will not result in any new tile updates but can take quite a while. At
maximum this can be pow(INT_MAX - INT_MIN, 2) iterations.

Use arbitrary time limit to check for update call to finish in the test.
2023-01-15 04:46:29 +01:00
Alexei Kotov
6ff9b5d326 Make use of ends_with for KF 2023-01-15 01:48:06 +03:00
Alexei Kotov
434b4deda1 Don't use xkf if xnif is merely the base model (bug #5371) 2023-01-14 04:55:12 +03:00
Alexei Kotov
4d0788e016 Use xnif if its xkf is present even if xnif isn't 2023-01-14 03:35:50 +03:00
elsid
d4ab1101eb
Change Interpreter type aliases to be fixed size types
Remove no longer relevant comment for float type.
2023-01-14 00:09:01 +01:00
elsid
b88f0d2dbd
Replace mwscript program serialization into a vector with simple struct
Mostly to avoid string literal lookup by index with iteration over all preciding
literals and calling strlen. This is very inefficient. In genral this makes code
much more straightforward but also makes it portable since now int and float of
different sizes are properly supported.
2023-01-14 00:07:37 +01:00
Petr Mikheev
d9e9db0983 Additional information in Lua profiler 2023-01-13 21:14:23 +01:00
psi29a
25d7ee7fdc Merge branch 'streams' into 'master'
Setup utf8qtextstream in the way consistent with other Qt components

See merge request OpenMW/openmw!2611
2023-01-13 11:23:44 +00:00
Andrei Kortunov
8da93d4b12 Setup utf8qtextstream in the way consistent with other Qt components 2023-01-13 13:10:34 +04:00
jvoisin
c90d22f3b2 Replace usage of QRegularExpression::anchoredPattern with ^ and $
Using `^` and `$` is shorter than `QRegularExpression::anchoredPattern`,
and even allows us in one case to get rid of a trailing `.*`.
2023-01-12 22:52:00 +01:00
Andrei Kortunov
bfcbc2350d Handle UTF-8 in Qt streams in the Qt6-compatible way 2023-01-12 15:39:50 +04:00
elsid
60eede6a1d
Fix variable naming styleguide 2023-01-11 23:47:42 +01:00
elsid
0ab3090385
Make Runtime::getPC and setPC inline 2023-01-11 23:47:42 +01:00
elsid
46b4427d2e
Remove user defined constructor for Runtime 2023-01-11 23:47:42 +01:00
elsid
9c8df09475
Remove user defined constructors for Interpreter 2023-01-11 23:47:42 +01:00
Andrei Kortunov
307a60e87c Migrate from QRegExp to more modern QRegularExpression 2023-01-11 11:21:46 +04:00
elsid
c173348cbe
Use default initializers for ESM::RefNum members
Instead of unset function that is removed now and assignments all over the code.
2023-01-10 00:44:51 +01:00
psi29a
6a250c5900 Merge branch 'baby_it_is_occluded_outside' into 'master'
Weather Particle Occlusion (#5492)

Closes #5492

See merge request OpenMW/openmw!1328
2023-01-07 22:18:45 +00:00
psi29a
83718878b2 Merge branch 'Load_ESM4' into 'master'
Loading ESM4 data and storing them in the ESMStore

See merge request OpenMW/openmw!2557
2023-01-07 22:17:17 +00:00