1
0
Fork 0
mirror of https://github.com/OpenMW/openmw.git synced 2025-09-13 16:54:06 +00:00
Commit graph

8677 commits

Author SHA1 Message Date
Andy Lanzone
43b5176367
Merge branch 'OpenMW:master' into master 2025-06-02 00:47:04 -07:00
psi29a
1fff2f0199 Merge branch 'setnew' into 'master'
Don't use item(QString) while marking new content files

See merge request OpenMW/openmw!4701
2025-06-02 07:08:05 +00:00
Andy Lanzone
51f9ce890e
Merge branch 'OpenMW:master' into master 2025-06-01 22:57:37 -07:00
psi29a
65155a6e6a Merge branch 'datachangedcalls' into 'master'
Content selector: Cut down on unnecessary dataChanged calls (#8478)

See merge request OpenMW/openmw!4671
2025-06-01 10:46:45 +00:00
Alexei Kotov
3dfc3d7022 Don't use item(QString) while marking new content files 2025-06-01 03:22:18 +03:00
Andy Lanzone
6185683ca3
Merge branch 'OpenMW:master' into master 2025-05-31 15:29:25 -07:00
Evil Eye
9929c35021 Correctly format single digit hex values 2025-05-31 15:43:50 +02:00
Alexei Kotov
e7976a544a Increment some new Qt progress bars the canonical way 2025-05-29 03:33:03 +03:00
Aussiemon
d2f1eeff98 Prevent hard freeze when camera receives invalid inputs from Lua 2025-05-26 07:22:10 +00:00
Andrew Lanzone
d759418f01 Add controller support for all four inventory menus 2025-05-24 14:17:41 -07:00
Evil Eye
5cf8191cea Fix compilation on MSVC 2025-05-22 17:31:33 +02:00
Alexei Kotov
2342dbe0f5 Merge branch 'fix_launcher_ui_freeze' into 'master'
Make launcher UI on content files selection more responsive (#8478)

See merge request OpenMW/openmw!4682
2025-05-22 15:37:23 +03:00
psi29a
6ef3c089bf Merge branch 'flagsgamefiles' into 'master'
Make the horrifying content model flags() game search less horrifying (#8478)

See merge request OpenMW/openmw!4688
2025-05-22 09:45:30 +00:00
elsid
157e8c763c
Show progress dialog for setting content list 2025-05-22 07:47:58 +02:00
elsid
3955428f87
Show progress dialog on updating content selection 2025-05-22 07:47:38 +02:00
Alexei Kotov
5ffcd21eee Content selector: Cut down on unnecessary dataChanged calls (#8478)
setData shouldn't do dataChanged calls setCheckState already does
setCheckState should emit dataChanged for downstream dependencies unconditionally
setCheckState shouldn't emit dataChanged for upstream dependencies that weren't enabled
2025-05-22 01:01:41 +03:00
Alexei Kotov
2c6d11f95e Make the horrifying content model flags() game search less horrifying
Properly exit early and cache game file check result
2025-05-20 16:15:16 +03:00
AnyOldName3
47fff7f998 Disable shadows even harder
On GPUs that can detect when all fragments in an execution group take the same branch, this might run faster. Even if it doesn't, it might suppress any weirdness coming from sampling the dummy shadow maps.
2025-05-19 15:06:19 +01:00
Andrew Lanzone
0aad0d379a Minimal controller support for dialog window 2025-05-18 22:45:22 -07:00
Evil Eye
f32d62def8 Merge branch 'setcheckstateesmfile' into 'master'
Avoid repeated item(QString) in plugin toggling-related code

See merge request OpenMW/openmw!4678
2025-05-18 16:41:46 +00:00
Evil Eye
a7a072e3f8 Merge branch 'qfileinfo' into 'master'
Avoid unnecessary file system access in plugin toggling

See merge request OpenMW/openmw!4679
2025-05-17 10:25:02 +00:00
Alexei Kotov
f7f5665588 Avoid repeated item(QString) in plugin toggling-related code 2025-05-15 23:17:17 +03:00
Alexei Kotov
89d6408587 Avoid unnecessary file system access in plugin toggling 2025-05-15 23:00:08 +03:00
Alexei Kotov
54eea09a9e Fix out-of-bounds index dataChanged calls 2025-05-15 21:18:10 +03:00
Andrew Lanzone
b2620c861a Add scrollbar override to capture mouse hover events 2025-05-11 22:24:05 -07:00
Andy Lanzone
b4e0590a10
Merge branch 'OpenMW:master' into master 2025-05-09 22:57:21 -07:00
psi29a
1f724cc336 Merge branch 'postprocessingglslversion' into 'master'
Fix post-processing shader glsl_version bumping

See merge request OpenMW/openmw!4653
2025-05-07 17:57:15 +00:00
Andrew Lanzone
71aa11404c Add checkbox to enable controller menus to openmw launcher. 2025-05-05 22:47:55 -07:00
Alexei Kotov
72e73784fb Fix post-processing shader glsl_version bumping 2025-04-29 04:25:24 +03:00
elsid
891d6fd0ba
Fix warning: -Wmaybe-uninitialized
In member function 'ESM::RefId {anonymous}::IdGettingVisitor::operator()(const MWWorld::Ptr&) const',
    inlined from 'constexpr _Res std::__invoke_impl(__invoke_other, _Fn&&, _Args&& ...) [with _Res = ESM::RefId; _Fn = {anonymous}::IdGettingVisitor; _Args = {const MWWorld::Ptr&}]' at /usr/include/c++/13/bits/invoke.h:61:36,
    inlined from 'constexpr typename std::__invoke_result<_Functor, _ArgTypes>::type std::__invoke(_Callable&&, _Args&& ...) [with _Callable = {anonymous}::IdGettingVisitor; _Args = {const MWWorld::Ptr&}]' at /usr/include/c++/13/bits/invoke.h:96:40,
    inlined from 'static constexpr decltype(auto) std::__detail::__variant::__gen_vtable_impl<std::__detail::__variant::_Multi_array<_Result_type (*)(_Visitor, _Variants ...)>, std::integer_sequence<long unsigned int, __indices ...> >::__visit_invoke(_Visitor&&, _Variants ...) [with _Result_type = std::__detail::__variant::__deduce_visit_result<ESM::RefId>; _Visitor = {anonymous}::IdGettingVisitor&&; _Variants = {const std::variant<MWWorld::Ptr, std::pair<ESM::FormId, ESM::RefId> >&}; long unsigned int ...__indices = {0}]' at /usr/include/c++/13/variant:1060:24,
    inlined from 'constexpr decltype(auto) std::__do_visit(_Visitor&&, _Variants&& ...) [with _Result_type = __detail::__variant::__deduce_visit_result<ESM::RefId>; _Visitor = {anonymous}::IdGettingVisitor; _Variants = {const variant<MWWorld::Ptr, pair<ESM::FormId, ESM::RefId> >&}]' at /usr/include/c++/13/variant:1815:5,
    inlined from 'constexpr std::__detail::__variant::__visit_result_t<_Visitor, _Variants ...> std::visit(_Visitor&&, _Variants&& ...) [with _Visitor = {anonymous}::IdGettingVisitor; _Variants = {const variant<MWWorld::Ptr, pair<ESM::FormId, ESM::RefId> >&}]' at /usr/include/c++/13/variant:1878:34,
    inlined from 'ESM::RefId MWScript::GlobalScriptDesc::getId() const' at ../../../apps/openmw/mwscript/globalscripts.cpp:120:26:
../../../apps/openmw/mwscript/globalscripts.cpp:91:35: error: '*(const uint32_t*)((char*)&<unnamed> + offsetof(ESM::RefId, ESM::RefId::mValue.std::variant<ESM::EmptyRefId, ESM::ESM3ExteriorCellRefId, ESM::StringRefId, ESM::FormId, ESM::GeneratedRefId, ESM::IndexRefId>::<unnamed>.std::__detail::__variant::_Variant_base<ESM::EmptyRefId, ESM::ESM3ExteriorCellRefId, ESM::StringRefId, ESM::FormId, ESM::GeneratedRefId, ESM::IndexRefId>::<unnamed>.std::__detail::__variant::_Move_assign_base<true, ESM::EmptyRefId, ESM::ESM3ExteriorCellRefId, ESM::StringRefId, ESM::FormId, ESM::GeneratedRefId, ESM::IndexRefId>::<unnamed>.std::__detail::__variant::_Copy_assign_base<true, ESM::EmptyRefId, ESM::ESM3ExteriorCellRefId, ESM::StringRefId, ESM::FormId, ESM::GeneratedRefId, ESM::IndexRefId>::<unnamed>.std::__detail::__variant::_Move_ctor_base<true, ESM::EmptyRefId, ESM::ESM3ExteriorCellRefId, ESM::StringRefId, ESM::FormId, ESM::GeneratedRefId, ESM::IndexRefId>::<unnamed>.std::__detail::__variant::_Copy_ctor_base<true, ESM::EmptyRefId, ESM::ESM3ExteriorCellRefId, ESM::StringRefId, ESM::FormId, ESM::GeneratedRefId, ESM::IndexRefId>::<unnamed>.std::__detail::__variant::_Variant_storage<true, ESM::EmptyRefId, ESM::ESM3ExteriorCellRefId, ESM::StringRefId, ESM::FormId, ESM::GeneratedRefId, ESM::IndexRefId>::_M_u))' may be used uninitialized [-Werror=maybe-uninitialized]
   91 |                 return ESM::RefId();
      |                                   ^
../../../apps/openmw/mwscript/globalscripts.cpp: In member function 'ESM::RefId MWScript::GlobalScriptDesc::getId() const':
../../../apps/openmw/mwscript/globalscripts.cpp:91:35: note: '<anonymous>' declared here
   91 |                 return ESM::RefId();
      |                                   ^
2025-04-28 22:00:03 +02:00
Evil Eye
b4d5013679 Merge branch 'lua_state' into 'master'
Use unique_ptr to handle lua state lifetime

See merge request OpenMW/openmw!4636
2025-04-23 18:54:40 +00:00
Evil Eye
e20d52d23c Merge branch 'namespace_typo' into 'master'
Fix typo in namespace name

See merge request OpenMW/openmw!4635
2025-04-21 08:41:27 +00:00
AnyOldName3
e2e7b58b3a Handle normalHeightMap as special case 2025-04-20 23:55:38 +01:00
elsid
6f89d38b78
Replace includes by forward declaration 2025-04-20 02:28:34 +02:00
AnyOldName3
4707c7e2fc Format 2025-04-20 00:17:03 +01:00
AnyOldName3
115fc08904 Don't forget parallax when reapplying shader visitor
Fixes https://gitlab.com/OpenMW/openmw/-/issues/8341

I don't think this should go into 0.49 because there may be implications beyond what I've thought of and I'd rather we had a full dev cycle to notice any regressions.

The fix is a little janky, but makes use of some dead code we've had since the introduction of normal-height maps nearly a decade ago, so it's a safe bet that it was never intended to be dead code.
The main effect of the jankiness is that we'll add some pointless @defines for normalHeightMap that none of our shaders use and which will always be zero.
2025-04-20 00:12:53 +01:00
elsid
f80283422f
Use unique_ptr to handle lua state lifetime 2025-04-18 14:01:07 +02:00
elsid
972995d124
Fix typo in namespace name 2025-04-18 12:27:48 +02:00
elsid
0d5e9ef85f
Remove redundant using namespace Fallback
C++ has ADL to find overloads. using namespace does nothing in this
case.
2025-04-18 12:27:37 +02:00
Alexei Kotov
271ab2e109 Merge branch 'dont-ask-the-disk-for-things-we-already-know' into 'master'
Avoid IO in resolveParentFileIndices

See merge request OpenMW/openmw!4627
2025-04-14 13:11:57 +03:00
AnyOldName3
deb070389f Improve Windows crash/freeze catcher UX
* Change crash log to crash dump in messages.
* Make the freeze catcher popup disappear more quickly when OpenMW thaws - we got a few freeze dumps from after a thaw.
* Improve freeze catcher message - hopefully fewer users think it's a false positive they're expected to put up with and we get future reports sooner.
2025-04-12 18:38:55 +01:00
AnyOldName3
a5a6f33578 Manual reformatting that wasn't done automatically on my machine 2025-04-11 17:41:40 +01:00
AnyOldName3
d74a0edb82 Format 2025-04-11 17:37:55 +01:00
AnyOldName3
396cd1c727 Fix Windows Debug build
This was a regression from https://gitlab.com/OpenMW/openmw/-/merge_requests/4596

Also move more things into the anonymous namespace because there's not really a reason not to and I had to rearrange things anyway.
2025-04-11 17:33:19 +01:00
AnyOldName3
48572e4c96 Even more elses 2025-04-10 18:32:52 +01:00
AnyOldName3
37dc1a6a76 Remove redundant elses 2025-04-10 16:51:23 +01:00
AnyOldName3
15162a734d Avoid IO in resolveParentFileIndices
In the olden days, we passed it a vector of open ESMReader instances, as they knew the filenames and sizes, so were a convenient source of this knowledge.

When the ReadersCache was introduced as a pool of readers to limit the maximum number of simultaneously open file handles (to avoid going over the OS' limit) it was a poor substitute.
* We iterate over all the earlier readers in order in a double loop, which is the worst case scenario for an LRU pool as once we're past the size limit, we're guaranteed maximum thrashing - the least recently used item is the most likely to be used next, so the worst to evict.
* We didn't want to read any ESM files, just know whether they'd been read and what their sizes were, so didn't want to open a file handle, which the ReadersCache forced us to do.

Obviously, opening lots of file handles isn't fast, and as this was an operation done for each content file which iterated over the file's masters and within that loop iterated over every loaded file, that's O(n^3) complexity in the worst case, and for things like delta plugin merged plugins, they hit the worst case in long load orders.

This resolves the freeze reported as https://gitlab.com/OpenMW/openmw/-/issues/8425, but there may be other freezes on launch.
2025-04-10 16:16:19 +01:00
psi29a
ea8369eff0 Merge branch 'dont-redraw-the-whole-gui-every-time-we-change-the-tiniest-thing' into 'master'
Be more careful when we tell Qt that data has changed

Closes #8405

See merge request OpenMW/openmw!4621
2025-04-09 11:19:32 +00:00
AnyOldName3
096759435a Add progress bars where the launcher can be limited by IO
I tested this with a USB3 external hard drive.

These two places were the only ones where we're IO-bound and block the main thread, so they're the only ones that need progress bars.

If trying to replicate this test, then it's important to unplug the hard drive between each repeat.
Apparently Windows is excellent at disk caching these days as it takes a minute and a half to start the launcher with Total Overhaul on this drive when it's just been plugged in, but less time than the first launch after a reboot on an NVME drive once the cache has been warmed up.
2025-04-09 01:36:52 +01:00
AnyOldName3
894ea4ba62 Don't precompute load order errors after every change
It's much slower than doing it on demand as it only takes a microsecond, but for a really big load order, there are hundreds of thousands of intermediate calls before everything's set up and we can draw the GUI.
2025-04-08 01:19:24 +01:00
AnyOldName3
d6b61f1f54 Sprinkle some const&
QStringView required more fighting as loads of call sites take a const&
2025-04-08 00:34:45 +01:00
AnyOldName3
e779f115ef Exclude directories from containsDataFiles
Also include capo's microoptimisation even though it doesn't make things any faster.
2025-04-07 16:11:27 +01:00
psi29a
bd1c2a11d7 Merge branch 'herbalfish' into 'master'
Fix some graphic herbalism issues

See merge request OpenMW/openmw!4624
2025-04-07 11:03:55 +00:00
psi29a
211a5e5bda Merge branch 'lightminimumradius' into 'master'
Give point lights a minimum radius of 16

See merge request OpenMW/openmw!4601
2025-04-06 16:03:35 +00:00
Evil Eye
962ef91e25 Allow skinned plants to be harvested 2025-04-06 11:01:26 +02:00
AnyOldName3
973282e471 Optimise ContentSelectorModel::ContentModel::item
This saves about 5% of remaining launcher startup time

Not using fileProperty avoids loads of QVariant conversions.
2025-04-06 02:46:31 +01:00
AnyOldName3
1237746549 Be more careful when we tell Qt that data has changed
Unchecking files only changes whether they're checked, and doesn't completely rearrange the table and change the number of elements it has, so we only need to change the check state, not the whole layout.

It's way faster to just query all the data once after setting a content list than it is to query the data for all files between the old and new location of a file when we change any file's location in the load order.
2025-04-06 01:31:05 +01:00
Alexei Kotov
3523ba564a Merge branch 'non-deprecated-known-folder-api' into 'master'
Use non-deprecated known folder API

See merge request OpenMW/openmw!4603
2025-04-02 19:20:21 +03:00
psi29a
747771ac5e Merge branch 'fontexport' into 'master'
Restore --export-fonts option functionality

See merge request OpenMW/openmw!4561
2025-03-27 11:04:35 +00:00
AnyOldName3
166852254f Use non-deprecated known folder API
SHGetFolderPathW was deprecated in Windows Vista nearly two decades ago. ShGetKnownFolderPath is the replacement.

Also log if there was an error. Someone seemed to be getting an error on Discord, despite other apps being able to get the path just fine with these functions.

Also don't pass the flags to create the folders if they don't exist. We probably don't have the right permissions and if they don't exist, then there are bigger problems. Maybe this will fix the issue the user was having.

Also add a comment about global config on Windows being fundamentally wrong.
2025-03-25 01:32:44 +00:00
Alexei Kotov
f8be5fdd2a Give point lights a minimum radius of 16 2025-03-24 22:14:08 +03:00
elsid
ada48d9021
Reduce a chance to have a deadlock in the AsyncNavMeshUpdater
* Do not fail tile generation if debug mesh writing fails.
* Mark some functions as noexcept to better crash than have a deadlock.
* Unlock tile and remove job if there on exception while processing it.
2025-03-23 23:33:40 +01:00
elsid
7112217adc
Use temporary directory for tests output 2025-03-23 23:33:40 +01:00
elsid
87a2f776b7
Add version to the recast log prefix 2025-03-23 23:33:39 +01:00
elsid
51258662b5
Support max log level for Recast via env variable
Do not write to log if log message level is greater than one speficied
in the OPENMW_RECAST_MAX_LOG_LEVEL env variable. Use Error by default.
2025-03-21 15:34:47 +01:00
elsid
e5f6b77c29
Skip SLSD, SCVR, SCRV subrecords in QUST record
Present in:

Fallout 3 GOTY English/Data/Anchorage.esm
Fallout 3 GOTY English/Data/BrokenSteel.esm
Fallout 3 GOTY English/Data/PointLookout.esm
Fallout 3 GOTY English/Data/ThePitt.esm
Fallout 3 GOTY English/Data/Zeta.esm
2025-03-15 13:11:26 +01:00
elsid
e5ad1cd214 Do not use no longer supported std::char_traits
/usr/bin/../include/c++/v1/string_view:300:42: error: implicit instantiation of undefined template 'std::char_traits<signed char>'
  300 |   static_assert(is_same<_CharT, typename traits_type::char_type>::value,
      |                                          ^
/home/elsid/dev/openmw/components/to_utf8/to_utf8.cpp:55:41: note: in instantiation of template class 'std::basic_string_view<signed char>' requested here
   55 |     std::basic_string_view<signed char> getTranslationArray(FromType sourceEncoding)
      |                                         ^
/usr/bin/../include/c++/v1/__fwd/string.h:23:29: note: template is declared here
   23 | struct _LIBCPP_TEMPLATE_VIS char_traits;
      |                             ^

std::char_traits support for non char types was removed from libc++19:
https://reviews.llvm.org/D157058.
2025-03-11 20:32:36 +03:00
Alexei Kotov
3f63700e99 Improve topic and magic effect list padding accuracy
This also touches the quest list, but there are bigger problems with the journal than just padding
2025-03-10 05:48:54 +03:00
elsid
51d73e37df
Fix msvc warnings
components\lua\configuration.cpp(133): warning C4267: 'argument': conversion from 'size_t' to 'int', possible loss of data
components\esm3\effectlist.cpp(35): warning C4267: '=': conversion from 'size_t' to 'uint32_t', possible loss of data
components_tests\misc\testmathutil.cpp(54): warning C4305: 'argument': truncation from 'const double' to 'osg::Vec3f::value_type'
components_tests\misc\testmathutil.cpp(62): warning C4305: 'argument': truncation from 'const double' to 'osg::Vec3f::value_type'
components_tests\misc\testmathutil.cpp(131): warning C4305: 'argument': truncation from 'const double' to 'osg::Vec3f::value_type'
components_tests\misc\testmathutil.cpp(135): warning C4305: 'argument': truncation from 'const double' to 'osg::Vec3f::value_type'
components_tests\misc\testmathutil.cpp(135): warning C4305: 'argument': truncation from 'const double' to 'osg::Vec3f::value_type'
components_tests\misc\testmathutil.cpp(139): warning C4305: 'argument': truncation from 'const double' to 'osg::Vec3f::value_type'
2025-03-09 17:55:17 +01:00
Alexei Kotov
5f92d520ee Merge branch 'mainmembers' into 'master'
Fix more potential use-after-free issues

See merge request OpenMW/openmw!4566
2025-03-07 00:25:35 +03:00
psi29a
8bbb46b52c Merge branch 'frankfontaine' into 'master'
Properly implement bitmap font kerning (#8378)

See merge request OpenMW/openmw!4565
2025-03-05 21:16:19 +00:00
psi29a
888415059c Merge branch 'fontainofdreams' into 'master'
Allow bitmap font texture reading to end prematurely (#8378)

See merge request OpenMW/openmw!4564
2025-03-05 13:11:10 +00:00
psi29a
1e0bdcc270 Merge branch 'elefont' into 'master'
Further revise bitmap glyph replacements (#7531)

See merge request OpenMW/openmw!4563
2025-03-05 13:09:53 +00:00
Evil Eye
b0e9df0139 Ensure class members are tied to the main Lua state 2025-03-03 19:37:07 +01:00
Alexei Kotov
fd358396fc Properly implement bitmap font kerning 2025-03-03 08:42:39 +03:00
Alexei Kotov
24468fd965 Allow bitmap font texture to end prematurely 2025-03-03 08:29:00 +03:00
Alexei Kotov
c8fe596fc4 Add some remaining missing bitmap substitutions 2025-03-03 08:02:34 +03:00
Alexei Kotov
c50d8195bb Remove custom substitutions for glyphs that may exist in the font 2025-03-03 08:02:16 +03:00
Alexei Kotov
dc3264a3a5 Restore --export-fonts option functionality 2025-03-02 22:33:06 +03:00
uramer
3a98b945a8 Keep MENU-registered input actions between games 2025-02-26 16:56:41 +01:00
Alexei Kotov
fc850cfe69 Rename components/crashcatcher files to follow naming conventions 2025-02-23 00:18:07 +03:00
Alexei Kotov
ac9505b536 Rename components/to_utf8 directory and files to follow naming conventions 2025-02-23 00:18:07 +03:00
Alexei Kotov
dd16c87080 Rename components/platform files to follow naming conventions 2025-02-22 23:47:11 +03:00
Alexei Kotov
7df74664e4 Rename gl4es-init.cpp/h to follow naming conventions 2025-02-22 21:49:49 +03:00
Alexei Kotov
3793ff8be8 Standardize components/fx file include guards 2025-02-22 21:14:58 +03:00
Alexei Kotov
5d5595cc5b Standardize components/bsa file include guards and order 2025-02-22 21:12:28 +03:00
Alexei Kotov
8b911ce3eb Rename components/fx files to follow naming conventions 2025-02-22 21:00:40 +03:00
Alexei Kotov
0254feefe3 Rename bsa_file.cpp/hpp to follow naming conventions 2025-02-22 20:52:39 +03:00
Alexei Kotov
602a429a68 Fix UB when pathgrid geometry is generated and all pathgrid edges are invalid 2025-02-16 17:46:52 +03:00
Alexei Kotov
1a9e29844b Implement TCB interpolation for vectors and scalars (#2379) 2025-02-13 13:41:34 +03:00
psi29a
782c274d86 Merge branch 'shutupsdl' into 'master'
Silence SDL3 window/display events coming from SDL2-compat

See merge request OpenMW/openmw!4531
2025-02-10 16:58:28 +00:00
psi29a
d2610973dd Merge branch 'shutupssg' into 'master'
Add a dummy serializer for billboards

See merge request OpenMW/openmw!4532
2025-02-10 16:58:21 +00:00
Alexei Kotov
c1960635d2 Optimize NIF boolean vector reading 2025-02-07 04:55:06 +03:00
Alexei Kotov
eaf9488ba0 Silence SDL3 window/display events coming from SDL2-compat 2025-02-04 20:30:19 +03:00
Alexei Kotov
cfa1ad0b33 Add a dummy serializer for billboards 2025-02-04 20:22:14 +03:00
Alexei Kotov
a17bffda26 Merge branch 'blencludes' into 'master'
Remove superfluous includes from animblendrules.cpp

See merge request OpenMW/openmw!4523
2025-01-31 14:46:12 +00:00
Mads Buvik Sandvei
5b1aafb77a Formatting mistakes 2025-01-29 23:01:34 +01:00
Mads Buvik Sandvei
a1df9afc9a Formatting changes 2025-01-26 17:05:42 +01:00
Mads Buvik Sandvei
ea51c55d00 Restore valid per view shadow settings. 2025-01-26 16:31:52 +01:00
Mads Buvik Sandvei
a2f5e1c075 Fix multiview use in techniques 2025-01-26 16:26:36 +01:00
Evil Eye
af9a9a6d64 Remove superfluous includes from animblendrules.cpp 2025-01-20 16:49:22 +01:00
Alexei Kotov
9fc62be2c6 Track ESM4 file loading progress 2025-01-14 20:27:02 +03:00
AnyOldName3
806635b96c Don't unnecessarily overwrite openmw.cfg
We don't need to risk reformatting the user's potentially-handwritten file if it parses to the same thing as we're about to write.
2025-01-12 18:21:06 +00:00
psi29a
ec43849020 Merge branch 'sensiblechain' into 'master'
Handle weird post-processing chains gracefully (#8295)

Closes #8295

See merge request OpenMW/openmw!4509
2025-01-12 17:58:41 +00:00
Alexei Kotov
383876a516 Handle weird post-processing chains gracefully (#8295) 2025-01-11 17:03:59 +03:00
AnyOldName3
e1208b64e7 Update comments 2025-01-09 17:16:06 +00:00
AnyOldName3
29af981345 Don't give commas special meaning when matching comments to openmw.cfg values
Previously, comments would be associated with the openmw.cfg line that followed them, but only up to the first comma.
This meant that if you had fallback=thing,otherthing and fallback=thing,thirdthing, comments above the thirdthing line would be moved above the otherthing line, even though both lines would be kept when the file was written out.

This seemed to be an attempt at a feature when cc9cii first implemented the comment preservation system, but it only seems to cause confusion.
2025-01-09 15:21:14 +00:00
elsid
6464d99134
Throw system error on open file failure 2025-01-06 23:38:32 +01:00
elsid
be1ce81be7
Write debug recast mesh before generating navmesh 2025-01-06 23:38:29 +01:00
Evil Eye
40cba7962c Bump us up to 0.50.0 2025-01-06 16:43:54 +01:00
psi29a
52d1493500 Merge branch 'suntzuquote' into 'master'
Add an option to match sunlight to the sun (#8032)

Closes #8032

See merge request OpenMW/openmw!4490
2025-01-05 20:08:28 +00:00
Evil Eye
f92b5040c6 Don't add auto started local Lua scripts twice 2025-01-01 13:21:28 +01:00
Alexei Kotov
aa277c0934 Add an option to match sunlight to the sun (#8032) 2024-12-28 18:29:35 +03:00
Evil Eye
6090bfcdab Work around a regression in MSVC 2024-12-09 17:23:17 +01:00
psi29a
a66d4d77bc Merge branch 'todd1252encoding' into 'master'
Revise bitmap glyph replacements (#7531)

Closes #7531

See merge request OpenMW/openmw!4444
2024-12-05 08:01:03 +00:00
Alexei Kotov
b285e2f85f Merge branch 'fix_findpath_use_after_free' into 'master'
Fix findPath returning a raw vector

Closes #8238

See merge request OpenMW/openmw!4470
2024-12-03 09:24:45 +00:00
uramer
1675c74036 Fix findPath returning a raw vector 2024-12-02 21:22:29 +01:00
psi29a
c454675cff Merge branch 'nilightcolorcontroller' into 'master'
Give NiLightColorController its own struct

See merge request OpenMW/openmw!4472
2024-12-02 16:40:05 +00:00
Alexei Kotov
23a46a1bf9 Merge branch 'vfs_normalized_path_22' into 'master'
Use normalized path for KeyframeManager::get (#8138)

See merge request OpenMW/openmw!4463
2024-12-01 21:45:01 +00:00
Alexei Kotov
a923e311f5 Give NiLightColorController its own struct 2024-12-01 02:00:12 +03:00
psi29a
064e3c7c2e Merge branch 'useniftestinstead' into 'master'
Remove write nif debug log setting

See merge request OpenMW/openmw!4468
2024-11-28 18:05:22 +00:00
psi29a
7b992f98e7 Merge branch 'poisoncrank' into 'master'
Save interior fog bounds center to preserve rotation when expanding them

Closes #7013

See merge request OpenMW/openmw!4466
2024-11-27 08:18:29 +00:00
Alexei Kotov
95c38bacc7 Remove write nif debug log setting 2024-11-26 21:31:25 +03:00
psi29a
1dac165356 Merge branch 'precomputedbonematrices' into 'master'
Precompute bone matrices before skinning

See merge request OpenMW/openmw!4467
2024-11-26 09:25:14 +00:00
psi29a
690de3c3f9 Merge branch 'exorcisingtoddfrommyoblivioncopy' into 'master'
Support ESM4::Light with no spotlight data again

See merge request OpenMW/openmw!4465
2024-11-25 08:55:05 +00:00
Alexei Kotov
0f4e0ac818 Precompute bone matrices during skinning 2024-11-25 02:14:41 +03:00
Evil Eye
d57d5d9247 Save interior fog bounds center to preserve rotation when expanding them 2024-11-24 11:49:33 +01:00
Alexei Kotov
ec564b14df Support ESM4::Light with no spotlight data 2024-11-24 03:12:52 +03:00
Alexei Kotov
5433ecf861 Change default depth test mode to <= (#7040) 2024-11-23 08:32:25 +03:00
psi29a
cf3badb8a4 Merge branch 'data_files_menu' into 'master'
Implement a context menu for data directories page

Closes #8130

See merge request OpenMW/openmw!4458
2024-11-21 11:52:16 +00:00
elsid
a550a8af36
Use normalized path for KeyframeManager::get 2024-11-20 21:29:36 +01:00
Andrei Kortunov
bd59247270 Avoid trailing line breaks 2024-11-20 09:04:22 +04:00
elsid
630e815f66
Forbid to use toNormalized for normalized path 2024-11-18 21:21:33 +01:00
psi29a
79dbbceb10 Merge branch 'vfs_normalized_path_20' into 'master'
Use normalized path for correctMeshPath and getLODMeshName (#8138)

See merge request OpenMW/openmw!4455
2024-11-17 12:30:15 +00:00
Alexei Kotov
d11bd7397b Revise bitmap glyph replacements (#7531) 2024-11-16 22:48:52 +03:00
elsid
22817dd6a1
Use normalized path for correctMeshPath 2024-11-16 12:49:11 +01:00
elsid
36198e9413
Use normalized path for getLODMeshName 2024-11-15 01:05:36 +01:00
Andrei Kortunov
2522fe9517 Remove dead code 2024-11-14 22:16:05 +04:00
Evil Eye
d88ddc97cc Avoid an apparent compiler error in MSVC 2019 2024-11-11 17:54:48 +01:00
Pi03k
05a71e982d Move from qt_wrap_ui to AUTOUIC for qt components lib
(#7348)
2024-11-10 20:38:14 +01:00
Evil Eye
6572122acc Use the right deserializer for unloaded scripts 2024-11-09 13:05:39 +01:00
elsid
afa769408a
Use normalized path for correctActorModelPath 2024-11-03 13:50:17 +01:00
elsid
376911f645
Reduce duplication for getting file name 2024-11-03 13:50:17 +01:00
psi29a
362eec43be Merge branch 'noblacklisting' into 'master'
Exterminate script blacklisting (#8214)

Closes #8214

See merge request OpenMW/openmw!4440
2024-11-01 10:22:26 +00:00
psi29a
62079499c1 Merge branch 'nowaterculling' into 'master'
Allow opting out of water culling (#7318)

Closes #7318

See merge request OpenMW/openmw!4441
2024-11-01 10:21:45 +00:00
Evil Eye
81612a5358 Merge branch 'constcorrectattributes' into 'master'
Sprinkle const-correctness in NifLoader

See merge request OpenMW/openmw!4436
2024-10-31 18:55:45 +00:00
Alexei Kotov
5d37cb3b74 Exterminate script blacklisting (#8214) 2024-10-31 14:59:55 +03:00
Alexei Kotov
4f521a94d7 Allow opting out of water culling (#7318) 2024-10-31 14:54:05 +03:00
Alexei Kotov
e27732421e Adjust intro comment for user openmw-cs.cfg (#5859) 2024-10-30 20:23:46 +03:00
Alexei Kotov
b71ec84004 Sprinkle const-correctness in NifLoader 2024-10-30 17:10:08 +03:00
Alexei Kotov
964dafd42c Share texture type attributes 2024-10-29 12:48:54 +03:00
psi29a
1349fdb4f2 Merge branch 'serializable_readonly' into 'master'
Support table-valued settings

See merge request OpenMW/openmw!3917
2024-10-28 18:44:36 +00:00
uramer
e248ba293a Use sol helpers for metatable keys 2024-10-28 16:45:51 +01:00
Alexei Kotov
eea916a43d Save/load INI importer flags in the launcher (#8189) 2024-10-27 21:30:23 +03:00
Evil Eye
7bbb1bf05d Merge branch 'loosey-goosey' into 'master'
Store original representation of paths in content lists. Also compare against existing content lists in a more forgiving way.

See merge request OpenMW/openmw!4424
2024-10-27 12:31:41 +00:00
AnyOldName3
31c84e0407 We don't need to capture constexpr stuff 2024-10-25 00:49:46 +00:00
AnyOldName3
7640b6bcf4 Typo 2024-10-25 00:32:12 +00:00
AnyOldName3
b596902329 c a p i t u l a t e
Looks like I forgot to reformat after a typo fix.
2024-10-25 00:53:27 +01:00
AnyOldName3
c2b383ea92 Store original representation of paths in content lists
Also compare against existing content lists in a more forgiving way.

The first improvement makes it possible to use relative paths in openmw.cfg without the launcher canonicalising them.
This was really annoying if you used a relative path on purpose.
It also stops the launcher converting all paths to Qt's convention, where forward slashes are used on Windows even though they're not native.
The engine doesn't care, so you could always put either in the config file, but the launcher wouldn't stand for that, and would make them match.

To make this work, we need to store a path's originalRepresentation in the content list, compare paths loaded from openmw.cfg based on their originalRepresentation, and convert paths from originalRepresentation to absolute value when loading them from a content list.

The second improvement means that paths that are equivalent, but expressed differently (e.g. mismatched case on Windows, mismatched separators on Windows, or mild differences like unnecessary `./`es and doubled separators) don't trigger the creation of a new effectively-identical content list.

To make this work, we had to switch the comparison to lexicaly normalise the path first.
It could only be lexical normalisation as originalRepresentation might be absolute, relative, or absolute-but-based-on-a-path-slug, and we didn't want slugs to break things or relative paths to count as equivalent to absolute ones that refer to the same file.
The comparison is case-insensitive on Windows, and case-sensitive elsewhere.
This isn't strictly right, as you can have case-sensitive things mounted on Windows or tell a Linux directory to be case-insensitive, but we can't tell when that might happen based on a lexical path as it depends on real directory properties (and might differ for different parts of the path, which is too much hassle to support).
2024-10-25 00:49:59 +01:00
AnyOldName3
6330d80b9e Don't expect TangentSpaceGenerator to work without texcoords 2024-10-24 13:36:49 +01:00
Alexei Kotov
e9627e9b0c Merge branch 'cifileprofiles' into 'master'
Compare content files and archives case insensitively when matching existing profiles

See merge request OpenMW/openmw!4419
2024-10-24 03:23:10 +00:00
Evil Eye
6d182dcdae Compare content files and archives case insensitively when matching existing profiles 2024-10-21 19:42:37 +02:00
AnyOldName3
7556ab6f90 Make the launcher ignore case in bsa names 2024-10-21 18:07:13 +01:00
elsid
d2ab366233
Use normalized path in PhysicsSystem 2024-10-18 13:45:29 +02:00
Petr Mikheev
bac0018a09 Merge branch 'unloadedcontainers' into 'master'
Fix Lua memory usage

See merge request OpenMW/openmw!4363
2024-10-15 21:18:13 +00:00
Evil Eye
68ebefc2dd Fix Lua memory usage 2024-10-15 21:18:13 +00:00
psi29a
3e3ff00c72 Merge branch 'dialoguestuff' into 'master'
Improve TESCS dialogue compatibility

Closes #8181

See merge request OpenMW/openmw!4396
2024-10-15 07:42:47 +00:00
elsid
d1ccb4b804
Use normalized path for groundcover 2024-10-13 13:27:23 +02:00
psi29a
974c0ce158 Merge branch 'vfs_normalized_path_16' into 'master'
Use normalized path in multiple places and fix additional animation sources loading (#8138)

See merge request OpenMW/openmw!4398
2024-10-07 20:02:54 +00:00
Evil Eye
ffe164b28d Add a test and address feedback 2024-10-06 11:32:24 +02:00
elsid
6e0eb64538
Use normalized path for glow texture names 2024-10-06 11:19:58 +02:00
Evil Eye
7ce83c6cc8 Ensure NAME is null terminated for TESCS compatibility 2024-10-03 22:22:51 +02:00
Evil Eye
403189c711 Switch between DrawElementsUInt and DrawElementsUShort on demand 2024-10-03 19:05:57 +02:00
Evil Eye
5e16579793 Switch to DrawElementsUInt 2024-10-03 16:32:47 +02:00
Evil Eye
6644a7f27b Use more sensible types in pathgridutil 2024-10-02 21:10:51 +02:00
psi29a
f27030a87c Merge branch 'uipointers' into 'master'
Prevent stale pointers in UI widgets

See merge request OpenMW/openmw!4393
2024-10-02 10:31:19 +00:00
Alexei Kotov
56e200f8ac Merge branch 'ripply-doll' into 'master'
Fix inventory doll when non-compute-shader ripples are used with FFP

See merge request OpenMW/openmw!4390
2024-10-02 08:43:41 +00:00
Evil Eye
481e63ffa7 Prevent stale pointers in UI widgets 2024-09-29 22:36:31 +02:00
elsid
63e984ba24
Use normalized path in BulletShapeManager 2024-09-27 23:33:58 +02:00
psi29a
cb009db4bb Merge branch 'topicHighlighting' into 'master'
Topic Highlighting Mouse Over Fix

See merge request OpenMW/openmw!4113
2024-09-27 06:36:17 +00:00
psi29a
d1059aee8c Merge branch 'test_ptr' into 'master'
Add tests for MWWorld::Ptr

See merge request OpenMW/openmw!4344
2024-09-26 07:36:23 +00:00
AnyOldName3
95a1183ad3 Fix OpenGL debug groups 2024-09-25 16:10:18 +01:00
Evil Eye
772a0b3711 Merge branch 'vfs_normalized_path_14' into 'master'
Use normalized path in multiple places (#8138)

See merge request OpenMW/openmw!4383
2024-09-22 16:38:55 +00:00
elsid
cd6e49796e
Properly initialize local static pointers and collections
Static variables should be initalized once instead of initializing them with
nullptr and then doing actual initialization behind if condition. Otherwise a
race condition may happen leading to undefined behaviour.
2024-09-21 13:52:43 +02:00
Alexei Kotov
2ab6dd0229 Address my own review concerns
Correct the number of hyphens in documentation
Use the correct settings tag
Simplify color values
2024-09-19 04:05:54 +03:00
elsid
5f2582fe68
Use normalized path in SceneManager::checkLoaded 2024-09-19 00:51:17 +02:00
elsid
28faae69b0
Use normalized path in TextureManager 2024-09-19 00:39:43 +02:00
elsid
a78f5182e4
Replace toNormalized by Normalized
fname type cannot be changed because it's part of mygui library interface.
2024-09-18 23:53:20 +02:00
elsid
85edc49f2f
Remove unused argument 2024-09-18 23:53:04 +02:00
elsid
597d1853ee
Use normalized path in ESM LuaScripts 2024-09-18 23:52:44 +02:00
elsid
2ddc77138a
Use normalized path in ESM4 reader 2024-09-18 23:52:20 +02:00
Alexei Kotov
6e70893113 Parse bhkPoseArray 2024-09-18 23:53:33 +03:00
Alexei Kotov
695932d2db Parse BSDistantObjectInstancedNode 2024-09-18 23:53:33 +03:00
Alexei Kotov
7149fbb408 Parse NiPSysRotDampeningCtlr 2024-09-18 22:03:15 +03:00
Evil Eye
74d699c502 Merge branch 'vfs_normalized_path_13' into 'master'
Use normalized path in ImageManager (#8138)

See merge request OpenMW/openmw!4377
2024-09-18 18:47:27 +00:00
elsid
1fd6ac6438
Use normalized path in ImageManager 2024-09-17 00:49:57 +02:00
Alexei Kotov
5f7fa640b0 Parse bhkRagdollTemplate/bhkRagdollTemplateData 2024-09-17 00:26:06 +03:00
elsid
b4f77e8bd7
Store Lua script path as VFS normalized 2024-09-15 13:53:20 +02:00
jvoisin
f2be4072d9 Merge branch 'fix_build' into 'master'
Fix build with msvc

See merge request OpenMW/openmw!4372
2024-09-14 22:43:05 +00:00
elsid
ec6af1ef32
Fix build with msvc
components\resource\cachestats.hpp(23): error C2039: 'string': is not a member of 'std'
2024-09-14 14:05:24 +02:00