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
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
elsid
d8189a5aa1
Use normalized path in SceneManager 2024-09-13 14:21:49 +02:00
psi29a
b32f68fcd2 Merge branch 'vfs_normalized_path_10' into 'master'
Use normalized path in LuaState (#8138)

See merge request OpenMW/openmw!4365
2024-09-13 08:17:46 +00:00
Cody Glassman
b346a4a858 Add frame number to available postprocess uniforms 2024-09-10 16:58:27 +00:00
elsid
32ec92e71c
Use normalized path in LuaState 2024-09-08 11:53:57 +02:00
psi29a
4c28731f6a Merge branch 'optionallightfadeout' into 'master'
Make light attenuation fade optional

See merge request OpenMW/openmw!4267
2024-09-05 07:29:48 +00:00
psi29a
e1875d459a Merge branch 'boost-config-required' into 'master'
Modernise Boost CMake stuff

Closes #8100

See merge request OpenMW/openmw!4307
2024-09-04 19:04:57 +00:00
psi29a
b3677d07fd Merge branch 'pcallallthethings' into 'master'
Wrap all memory allocating Lua functions in protected calls

Closes #8099

See merge request OpenMW/openmw!4336
2024-09-04 07:22:26 +00:00
elsid
9e36b3fc0b
Use normalized path for models settings 2024-08-30 20:50:59 +02:00
elsid
1cdbbef7ee
Use blank CellRef as default
Default constructed CellRef has some fields uninitialized.
2024-08-30 20:46:56 +02:00
Alexei Kotov
176dec45a7 Make light attenuation fade optional
This also makes Force Per Pixel Lighting caption shorter to provide more space for the new button
2024-08-30 10:03:37 +03:00
Evil Eye
032d506aa7 Fix components_tests 2024-08-24 09:10:23 +02:00
AnyOldName3
387b63909b Remove vestigial Boost libraries
Boost::zlib is basically part of Boost::iostreams, and depending on how you configure Boost, it can either be a separate library or get embedded into iostreams.
With the third-party-but-linked-on-Boost's-website package we've been using for years, it's a separate library.
Before https://gitlab.com/OpenMW/openmw/-/merge_requests/4307, we needed to explicitly link with it as CMake wasn't handling transitive dependencies for us.
With vcpkg, it's embedded, and doesn't have its own CMake config, so we couldn't explicitly link with it even if we wanted to.

Now CMake *is* handling transitive dependencies for us, we don't even need to think about this library.
It's all automatic.

Boost::locale, on the other hand, used to be something we used directly (I think for doing UTF-16/UTF-8 conversions when dealing with Windows paths).
However, it isn't anymore, and we just didn't purge it from our CMake when we should have.
It can go.
2024-08-23 14:06:13 +01:00
AnyOldName3
26be98966f Modernise Boost CMake stuff
Resolves https://gitlab.com/OpenMW/openmw/-/issues/8100

Also removes some old crud.
Hopefully the old crud is all:
* Handled automatically by CMake now we're using the modern approach.
* A hack-fix for a problem caused by not using the modern approach.
* Massively outdated so no longer necessary.

If it turns out this makes CI fail, I'll tweak things as necessary.

Changes that might not be wanted include:
* Getting rid of our BOOST_STATIC CMake option. In cases where the CMake config doesn't make the one correct choice from the build environment (i.e. because there's a choice) the CMake config exposes the option already.
  However, we were forcing this on for Windows, so that might matter.
  It seems to default to static on my machine even though I thought I read something suggesting otherwise, so we'll see how things go with that.
  If we eventually put CMake in charge of installing dependency DLLs this will be a moot point as we won't need to care.
* Bumping the minimum version of Boost to 1.70.0, as that's the first with working CMake config.
  It's from 2019, so plausibly there are distros too scared to use a library from five years ago as it can't legally drink in the US (although it could in limited quantities with parental supervision in the UK, as long as it's just something inconsequential like a single sip of beer).
2024-08-23 14:06:13 +01:00
jvoisin
830a26f75e Merge branch 'realloc' into 'master'
Don't assume realloc always succeeds

See merge request OpenMW/openmw!4331
2024-08-23 10:34:38 +00:00
Evil Eye
c9783344a0 Wrap all memory allocating Lua functions in protected calls 2024-08-22 22:22:28 +02:00
psi29a
566e5b5588 Merge branch 'some-launcher-fixes' into 'master'
Some launcher fixes

Closes #8080

See merge request OpenMW/openmw!4287
2024-08-22 11:11:23 +00:00
Evil Eye
aa808d63bc Return nullptr straight away 2024-08-21 16:40:39 +02:00
Evil Eye
4652151630 Don't assume realloc always succeeds 2024-08-20 19:49:13 +02:00
elsid
92a0bbb454
Use normalized path in l10m manager 2024-08-18 21:07:46 +02:00
uramer
2460b5f4ef Merge branch 'swizzle_bop_boom_bazingle_v2' into 'master'
lua - add swizzling to vector types

See merge request OpenMW/openmw!4304
2024-08-16 13:22:22 +00:00
Cody Glassman
a53d002262 lua - add swizzling to vector types 2024-08-05 06:53:59 -07:00
elsid
d85130c4c0
Init potentially unread fields for HDPT 2024-08-04 18:42:39 +02:00
AnyOldName3
f1795a4698 c a p i t u l a t e 2024-07-31 00:08:29 +01:00
AnyOldName3
cd7941dc9f Some launcher fixes
I tried to fix https://gitlab.com/OpenMW/openmw/-/issues/8080 by making it so that instead of crashing, we showed an error.

In doing so, I discovered some problems with plugin sorting and the refresh button, like:
* it forgetting the non-user content files somewhere
* nothing guaranteeing that built-in content files stay at the top of the list and them only being there because the first data directory that provides them is usually the first data directory
* it forgetting the non-user content files somewhere else
* it looking like it'd forget any kind of non-user setting under certain circumstances

I fixed those problems too
2024-07-31 00:04:38 +01:00
elsid
2ebe83c4d5
Use proper order for printf arguments 2024-07-28 20:08:02 +02:00
Cody Glassman
77eeb5bd92 Merge branch 'master' into 'master'
HALF_FLOAT  and normals changes

See merge request OpenMW/openmw!4240
2024-07-27 15:21:45 +00:00
Jared Davenport
349931b5cd HALF_FLOAT and normals changes 2024-07-27 15:21:44 +00:00
psi29a
79a9f8c23c Merge branch 'thedreughtookmyenchantmentsandarentgivingthemback' into 'master'
Rebuild ESMStore indices before loading any cell or player state

See merge request OpenMW/openmw!4278
2024-07-27 09:37:44 +00:00
Evil Eye
5c4deb3f88 Prevent older binaries from incorrectly loading newer saves 2024-07-25 22:37:44 +02:00
Alexei Kotov
03091f8ce0 Make Coverity happy about animation blending 2024-07-25 02:28:07 +03:00
psi29a
312b7af954 Merge branch 'lua_context_api' into 'master'
Remove getRealFrameDuration in global context, context caching helpers

See merge request OpenMW/openmw!4273
2024-07-24 21:26:32 +00:00
Anton Uramer
6851e6e56a Context helpers for caching packages, split up core bindings into multiple caches, remove getRealFrameDuration in global context 2024-07-24 09:28:50 +02:00
elsid
8cc744997f
Make path helpers constexpr and noexcept 2024-07-22 22:01:05 +02:00
elsid
7e1ecfc0ee
Pass normalized path to RetrieveAnimationsVisitor 2024-07-22 22:01:05 +02:00
elsid
616b033c36
Move parseTextKey and parseTimeSignature to unnamed namespace 2024-07-22 22:01:05 +02:00
elsid
6e97deb3f7
Use normalized path for text key files 2024-07-22 22:01:04 +02:00
Alexei Kotov
1f4ab3b668 Merge branch 'animationblending' into 'master'
Animation blending implementation. Flexible and moddable through .yaml blending config files.

See merge request OpenMW/openmw!3497
2024-07-22 13:16:06 +00:00
psi29a
2743c4920e Merge branch 'vfs_normalized_view_string' into 'master'
Do not allow to construct NormalizedView from std::string

See merge request OpenMW/openmw!4263
2024-07-22 07:22:02 +00:00
psi29a
f2aa30f7a5 Merge branch 'fix_nan_get_angles' into 'master'
Avoid getting nan in conversion to euler angles (#7772)

Closes #7772

See merge request OpenMW/openmw!4258
2024-07-22 07:21:29 +00:00
elsid
34f5bc6fce
Use std math functions
To avoid implicit conversions from float to double and back.
2024-07-21 02:06:05 +02:00
elsid
041b3b233a
Normalize forward and up vectors
To avoid having any of their components to be out of the range [-1, 1].
2024-07-21 01:26:57 +02:00
elsid
a49de4b9f1
Do not allow to construct NormalizedView from std::string
To avoid implicit conversion via Normalized which creates NormalizedView from a
temporary Normalized. Mark constructors explicit on purpose so there is no
ambiguity on implicit conversion when there is an overloaded function like:

void f(const Normalized&);
void f(NormalizedView);
2024-07-20 23:58:48 +02:00
Sam Hellawell
9beb380c7d Remove M_PI, documenation cleanup 2024-07-19 00:05:16 +01:00
Sam Hellawell
340252007b fitsRuleString dont reference string_view 2024-07-19 00:04:16 +01:00
Sam Hellawell
014cba807b Refactor easings, serialize per-line items, constexpr path 2024-07-19 00:04:16 +01:00
Sam Hellawell
eb290bebbb Refactor AnimBlendControllers 2024-07-19 00:04:16 +01:00
Sam Hellawell
4040bd9231 FIx GCC debug build error 2024-07-19 00:04:16 +01:00
Sam Hellawell
00a7d0281f Cleanup, refactor, rename AnimBlendControllerBase -> AnimBlendController 2024-07-19 00:04:16 +01:00
Sam Hellawell
42406ed0af Use META_Object, ignore for serialize 2024-07-19 00:04:16 +01:00
Sam Hellawell
13e1df3bf0 Grammar cleanup, code cleanup, reduce logging, revert mRotation change 2024-07-19 00:04:16 +01:00
Sam Hellawell
28c8e6b1fe Cleanup loadRules method, smooth animation transitions game.rst docuemntation 2024-07-19 00:04:16 +01:00
Sam Hellawell
1282be9d29 Fix stats reporting 2024-07-19 00:04:15 +01:00
Max Yari
55ffb6d7d2 Animation blending implementation for NIF and osgAnimation through YAML files
Signed-off-by: Sam Hellawell <sshellawell@gmail.com>
2024-07-19 00:04:15 +01:00
psi29a
a9281b5246 Merge branch 'fix/osg-animation-rename-update-order-sucks-this-took-too-long' into 'master'
Fix osgAnimation for multiple creatures (#8045)

Closes #8045

See merge request OpenMW/openmw!4253
2024-07-16 13:34:41 +00:00
elsid
75d9ab4d57
Pass Quat and Matrixf by reference
They don't fit into registers so without optimizations they are copied via
stack.
2024-07-15 22:08:54 +02:00
Sam Hellawell
db30d9a37a Code cleanup, fix missing const 2024-07-14 20:38:24 +01:00
Sam Hellawell
df0a7a849b Merge branch 'master' of https://gitlab.com/OpenMW/openmw.git into fix/osg-animation-rename-update-order-sucks-this-took-too-long 2024-07-14 02:39:09 +01:00
Sam Hellawell
56a40577ed Revert move of default anim rename 2024-07-14 02:38:57 +01:00
Sam Hellawell
03413a895f Fix osgAnimation for multiple creatures (#8045) 2024-07-14 02:34:09 +01:00
elsid
6a67263d6b
Separate the log level and the flag for writing the log level 2024-07-13 11:15:34 +02:00
elsid
98a8dcbdbf
Limit log buffer size 2024-07-13 11:15:34 +02:00
elsid
c83acac32c
Add a function to get debug level 2024-07-13 11:15:34 +02:00
elsid
0749cc4dac
Remove unused include 2024-07-13 11:15:34 +02:00
elsid
1bdc01273e
Move "debugging" function into Debug namespace 2024-07-13 11:15:33 +02:00
elsid
ea84d1ce0c
Remove unused mode argument 2024-07-13 11:14:56 +02:00
Dave Corley
5bca2919c2 CLEANUP: Don't assign invalid extents when loading bounding boxes 2024-07-11 04:06:06 -05:00
psi29a
664a844853 Merge branch 'fix_get_angles_zyx' into 'master'
Fix getAnglesZYX (#7741)

Closes #7741

See merge request OpenMW/openmw!4199
2024-07-11 09:04:07 +00:00
psi29a
7d0fca1bf5 Merge branch 'noscript' into 'master'
Make mwscript return nil for records that don't have a script

See merge request OpenMW/openmw!4236
2024-07-09 07:47:24 +00:00
psi29a
3a5ed998e7 Merge branch 'timeplayed' into 'master'
Remove time played setting

See merge request OpenMW/openmw!4235
2024-07-08 07:29:29 +00:00
Evil Eye
ee653eb2b8 Make mwscript return nil for records that don't have a script 2024-07-07 13:58:34 +02:00
psi29a
e8c422697f Merge branch 'first_person_mesh_distortion' into 'master'
Fix distortion breaking in first person meshes

See merge request OpenMW/openmw!4231
2024-07-06 07:46:35 +00:00
psi29a
804b589a68 Merge branch 'qt_follow_up' into 'master'
Cleanup changes in Qt applications

See merge request OpenMW/openmw!4225
2024-07-05 08:11:42 +00:00
Alexei Kotov
888abc0097 Remove time played setting 2024-07-05 07:13:45 +03:00
Andrei Kortunov
871263d436 Check if file is successfully opened 2024-07-04 09:55:24 +04:00
Cody Glassman
45362e0ede fix distortion breaking in first person meshes 2024-07-03 13:51:57 -07:00
Evil Eye
d3e3083006 CI match script names and remove dead code 2024-07-01 16:57:40 +02:00
psi29a
ee1352f918 Merge branch 'luautf8allcompilers' into 'master'
Don't use codecvt for utf8.char

Closes #6505

See merge request OpenMW/openmw!4216
2024-07-01 07:44:16 +00:00
psi29a
045bccb3e9 Merge branch 'copycompiler' into 'master'
Avoid a few copies in mwscript

See merge request OpenMW/openmw!4215
2024-07-01 07:43:53 +00:00
Kindi
624a4f46b5 dont use codecvt for utf8.char 2024-06-30 01:49:24 +08:00
Evil Eye
1cea604257 Use string_view in register methods 2024-06-29 15:37:13 +02:00
Evil Eye
ad7fb3d13f Avoid a few copies in mwscript 2024-06-29 10:31:49 +02:00
elsid
89bb04e8fd
Exit with fatal error on duplicated instruction code
Instead of causing SIGABRT which is more confusing.
2024-06-28 22:24:24 +02:00
psi29a
6754b8d941 Revert "Merge branch 'were_engineers_not_salt_miners' into 'master'"
This reverts merge request !4178
2024-06-25 20:58:31 +00:00
psi29a
9a864f309a Merge branch 'theluareloaded' into 'master'
Check the result of loading from bytecode

Closes #7787

See merge request OpenMW/openmw!4189
2024-06-25 07:19:33 +00:00
psi29a
cd365b4e8c Merge branch 'youre_outta_range_joe' into 'master'
FIX: check we're not going out of range while listing content files, fix #8029

Closes #8029

See merge request OpenMW/openmw!4201
2024-06-24 18:02:31 +00:00
psi29a
11c2cf0780 Merge branch 'esm_script' into 'master'
Make loading and saving ESM3 script record more robust

See merge request OpenMW/openmw!4195
2024-06-24 17:59:20 +00:00
psi29a
57adb93075 Merge branch 'coverity' into 'master'
Coverity fixes

See merge request OpenMW/openmw!4198
2024-06-24 07:10:28 +00:00
psi29a
456ac2a85b Merge branch 'were_engineers_not_salt_miners' into 'master'
FEAT: Lua Engine Handler for MWScript `startscript` functionality

See merge request OpenMW/openmw!4178
2024-06-24 07:09:24 +00:00
Dave Corley
1a79e79f57 FEAT: Lua Engine Handler for MWScript startscript functionality 2024-06-24 07:09:23 +00:00
psi29a
d3c3d0cf44 Merge branch 'indexthemoon' into 'master'
Move Lua index helpers to components and make owner.factionRank match other ranks

See merge request OpenMW/openmw!4186
2024-06-24 07:06:24 +00:00
Dave Corley
d03f25437b CLEANUP(contentmodel): Use auto for insertPosition declaration to
avoid possible narrowing
2024-06-23 20:06:23 -05:00
Dave Corley
fbdc4f4881 CLEANUP(contentmodel): Use ranges::find_if instead of a loop 2024-06-23 18:15:27 -05:00
elsid
89a30532b7
Fix getAnglesZYX implementation 2024-06-23 16:08:09 +02:00
Dave Corley
40aee53831 CLEANUP(contentmodel): Actually, no, I hate while loops 2024-06-23 06:07:16 -05:00
Dave Corley
b43743212e FIX: check we're not going out of range while listing content files, fix #8029 2024-06-23 06:07:12 -05:00
Alexei Kotov
162ac6a75e Avoid copying shader material shared_ptr in NifLoader 2024-06-22 14:34:09 +03:00
Evil Eye
5b82c7a95d Don't assume execution of an internal Lua script can't fail 2024-06-22 11:26:32 +02:00
Evil Eye
83e8729256 Check the result of loading from bytecode 2024-06-21 22:35:34 +02:00
elsid
5c3ae3d94c
Make loading and saving script record more robust
* Check the header presence before using it.
* Write the header based on the actual content.
2024-06-21 20:37:37 +02:00
elsid
4571a8b88a
Remove unused SCHD type 2024-06-21 15:39:17 +02:00