Commit Graph

8414 Commits (master)

Author SHA1 Message Date
Kindi d21f3809bd test utf8 7 months ago
Dave Corley 798208f6e5 FIX: Bad rebase 7 months ago
Dave Corley 80360ca5eb downgrade clang-format pls 7 months ago
Dave Corley 3066695630 FIX(loadland.cpp): Minor rebase fail 7 months ago
Dave Corley 145f9c1154 CLEANUP(CS): Do heightData check in actual implementation, revert
accidental change to land condition order
7 months ago
Dave Corley bdf99c701b Fix(CS): Use ESM flags and not internal ones for verifying presence of a subrecord 7 months ago
Dave Corley 89bce6f678 Fix(CS): Enum name in accordance with current standards 7 months ago
Dave Corley 6f2ae4a33b Cleanup(CS): Improve readability and clean up some implementations 7 months ago
Dave Corley 51df924d37 Fix(Land): Restore vanilla behavior of ignoring LAND subrecords which
are not flagged to actually exist
7 months ago
Dave Corley b111d28ede Fix(CS): Generate blank lands at default height, not water level 7 months ago
Dave Corley 014e5118e9 Fix(CS): Fix crash when loading cell without VHGT 7 months ago
Dave Corley 18d6598565 Feat(CS): Add enum for actual LAND flags 7 months ago
Kindi 22d685eca3 ensure fitness 7 months ago
psi29a 9087de1596 Merge branch 'esm3_land' into 'master'
Add unit tests for saving and loading ESM3 Land

See merge request OpenMW/openmw!4159
7 months ago
Alexei Kotov 89eccffbf6 Complain if a function or an integer is used as a local variable name 7 months ago
Kagernac 7d403089ec Cleaner implementation
Retrieved the Colours straight from Settings

Made tagname clearer in openmw_list.skin.xml

Fixed minor formatting issue in validate.cpp, textcolours.cpp

Updated skin variables to be const and string_view
7 months ago
psi29a 176e6490c5 Merge branch 'stufftheminasack' into 'master'
Drop 360-degree screenshot support (#7720)

Closes #7720

See merge request OpenMW/openmw!4158
7 months ago
psi29a a80f5c109c Merge branch 'ltexerasure' into 'master'
Fix LTEX overriding and allow deletion

See merge request OpenMW/openmw!4152
7 months ago
elsid 044748725c
Add unit tests for saving and loading ESM3 Land 7 months ago
Alexei Kotov 93d1c6d7e0 Drop 360-degree screenshot support (#7720) 7 months ago
Kagernac aca39c919f Changed the tagname to match the values in settings.cfg
Changed the values from int to float in settings.cfg. This is consistent with the older format.

The prefix is no longer referenced and hardcoded. There were four original values in the old color format, the parsing had to be modified to account for floats and four values.
7 months ago
psi29a 8a6d3ea447 Merge branch 'hircinevsprimealmalexiawhowouldwin' into 'master'
Don't force Tribunal to be enabled to load Bloodmoon (#7993)

Closes #7993

See merge request OpenMW/openmw!4153
7 months ago
Kagernac 3e6ccfce1f Took @Capostrophic's suggestion about leveraging a new tag format
Removed the color settings from Textcolours, they are unneccessary

Removed the Fallback workaround as a dedicated else condition was created with the new tag "fontcolouroptional". This code section has no involvement in Fallback

openmw_list.skin.xml was updated to reflect this new tag

settings.cfg was updated with the updated variable names
7 months ago
psi29a 32dd4a4a68 Merge branch 'windows11_qss' into 'master'
Improve dark mode stylesheets

See merge request OpenMW/openmw!4148
7 months ago
Alexei Kotov eca30f7921 Don't force Tribunal to be enabled to load Bloodmoon (#7993)
Sort Bloodmoon to be after Tribunal and warn the user if Bloodmoon is loaded before enabled Tribunal
7 months ago
Evil Eye ca6baed366 Fix LTEX overriding and allow deletion 7 months ago
Andrei Kortunov 937101d580 Add a dark style sheet tweaked for Windows 11 7 months ago
Alexei Kotov 71c1b536b4 Discard culled lights specifically for post-processing light buffer 7 months ago
Alexei Kotov cbe61e2c93 In TextureType, use osg::Object's name field 7 months ago
psi29a a2e83d9a21 Merge branch 'dayofviewindependence' into 'master'
Make object light lists (mostly) view-independent

See merge request OpenMW/openmw!4128
7 months ago
psi29a e7c9574d31 Merge branch 'savetheslot' into 'master'
Convert constant effect equipment slots to refnums

Closes #7998

See merge request OpenMW/openmw!4130
7 months ago
psi29a 8cf6fde8b6 Merge branch 'fix_debug_render' into 'master'
Fix debug render for recast mesh and navmesh

See merge request OpenMW/openmw!4127
7 months ago
elsid 71369be796
Log caught exceptions 7 months ago
Alexei Kotov c92d016e43 Don't sort scene light list by camera distance if the limit isn't reached and PP doesn't need it
Also don't clip it to the single UBO scene light limit if the lighting method isn't actually single UBO
7 months ago
Alexei Kotov 916706c6c1 Make object light lists (mostly) view-independent
Remove frustum culling
Sort lights by object proximity
Restore multiple camera rendering optimization
7 months ago
psi29a 16572109fc Merge branch 'restoringthelightfacingthedark' into 'master'
Lighting fixes, non-exciting part

See merge request OpenMW/openmw!4126
7 months ago
Evil Eye cdfd305ac3 Convert constant effect equipment slots to refnums 7 months ago
elsid 10e14a3c21
Replace release by assigning nullptr
release does not call a destructor if it's the last reference. This is not a
right choice here. Even though the functions accept raw pointers they convert
them into osg::ref_ptr. So it's ok to share the ownership.
7 months ago
elsid 4b8897e33e
Use state sets without transparency support for recast mesh and agents paths 7 months ago
elsid 98d530d8cb
Share state sets for recast mesh tiles and actors paths 7 months ago
Alexei Kotov fd9361f62c Some attenuation setup fool-proofing 7 months ago
Alexei Kotov e0e4b84e40 Disable specularity for negative lights 7 months ago
Alexei Kotov debc37d93a Fade out specularity according to light fade settings as well 7 months ago
Evil Eye 6a10311ae5 Use more appropriate types in terrain storage 7 months ago
psi29a db27543ea1 Merge branch 'uniform_choice' into 'master'
Add choice widget type to postprocessing uniforms

See merge request OpenMW/openmw!3969
7 months ago
Kagernac f9577d904c This commit introduces six new color settings for dialogue topic keywords
referencing settings.cfg and settings-default.cfg. These settings work similarly
to the color references found in openmw.cfg and Morrowind.ini.

Changes include:

Removal of deprecated settings:
color topic specific
color topic exhausted
Addition of six new color settings to settings.cfg and settings-default.cfg
Updated description in settings-default.cfg to reflect the new color format
7 months ago
psi29a 2be6116ef6 Merge branch 'fix_recastmesh' into 'master'
Limit number of cached tiles with recast meshes

See merge request OpenMW/openmw!4112
7 months ago
Dave Corley c87eaefd17 Merge branch 'theeditorisjustanotherengine' into 'master'
Use ESM::ReadersCache in the editor

Closes #7896

See merge request OpenMW/openmw!4111
7 months ago
Andrei Kortunov bf682d51a6 Support dark mode on Windows (feature 7985) 7 months ago
psi29a f34994e4c8 Merge branch 'notexturetypeconfusion' into 'master'
Support defining the texture type with a state attribute (#6240)

Closes #6240

See merge request OpenMW/openmw!4079
7 months ago
Alexei Kotov 03652104fe Merge branch 'cleanup_preloading' into 'master'
Cleanup preloading code

See merge request OpenMW/openmw!4104
7 months ago
Evil Eye 77d554594f Add ReadersCache::clear 7 months ago
elsid 45d62ee59f
Limit RecastMeshManager range by active cell grid 7 months ago
elsid 49db37ee29
Merge setWorldspace and updateBounds 7 months ago
elsid 9854d42d56
Use ESM::RefId for worldspace type 7 months ago
elsid 5d28164416
Remove recast mesh tiles outside active range 7 months ago
elsid 9e2f3fd0b4
Report stats for TileCachedRecastMeshManager 7 months ago
Alexei Kotov 908f3891fb Add helper method for texture type recovery 7 months ago
Alexei Kotov 84f4ba4ca1 Support defining the texture type with a state attribute (#6240)
Named textures are still supported for easier native format compatibility (and so that I don't have to edit the documentation)
7 months ago
psi29a 9b31ecc10e Merge branch 'bufferer_log' into 'master'
Write to log file records captured before configs are loaded

See merge request OpenMW/openmw!4095
8 months ago
elsid 491a59b035
Remove unused getActiveGrid function 8 months ago
elsid 38f0533bcf
Write to log file records captured before configs are loaded 8 months ago
elsid 4ab5871dc4
Split Tee logic into different types 8 months ago
Alexei Kotov 1d96c0adbf Read BSTreadTransfInterpolator 8 months ago
Alexei Kotov 5f4a0c3bf1 Read BSAnimNote/BSAnimNotes 8 months ago
Alexei Kotov c5a11f0c9f Read BSRotAccumTransfInterpolator 8 months ago
Alexei Kotov c647374c0d Add compact B-Spline interpolators 8 months ago
Alexei Kotov d458c07b36 Add base typed B-Spline interpolators 8 months ago
Alexei Kotov 5c6fca14c1 Read NiBSplineData/NiBSplineBasisData 8 months ago
psi29a 919d1e366e Merge branch 'staticcollections' into 'master'
Place static collections to the scene and fix item modification record loading

See merge request OpenMW/openmw!4085
8 months ago
psi29a 1cde82201e Merge branch 'optimize_merge_geometry' into 'master'
Optimize geometry merging

See merge request OpenMW/openmw!4086
8 months ago
psi29a 2f8e3611fb Merge branch 'issue-7924-envvar-crashdump' into 'master'
components/crashcatcher: if OPENMW_FULL_MEMDUMP is set, generate a full memory crashdump

See merge request OpenMW/openmw!4078
8 months ago
elsid 020b31395b
Reserve arrays before merging 8 months ago
Alexei Kotov 7d979a2dfc Place ESM4 static collections to the scene 8 months ago
Austin English 50b2edc121 components/crashcatcher: if OPENMW_FULL_MEMDUMP is set, generate a full memory crashdump
[Bug #7924](https://gitlab.com/OpenMW/openmw/issues/#7924)
8 months ago
jvoisin 93aa887868 Merge branch 'itsemissivenotglow' into 'master'
Unbork glow maps

See merge request OpenMW/openmw!4077
8 months ago
Alexei Kotov c95bb4ce59 Merge branch 'split_esm_headers' into 'master'
Split ESM headers

See merge request OpenMW/openmw!4071
8 months ago
Alexei Kotov c29ceb7f7f Unbork glow maps 8 months ago
elsid a920ca9070
Report loading screens to osg stats 8 months ago
elsid 01166b1f26
Split ESM headers 8 months ago
AnyOldName3 b55a0fd32a || and && have different binding precedence 8 months ago
AnyOldName3 d148bd1cde Add bounds check 8 months ago
psi29a a57c350c08 Merge branch 'paint_svg' into 'master'
Change SVG icons color in the editor

See merge request OpenMW/openmw!4060
8 months ago
AnyOldName3 ee3d012a6a Use CLAMP_TO_EDGE for shadows
Partially mitigates https://gitlab.com/OpenMW/openmw/-/issues/7944

The border was necessary in the olden days when the FFP might have shadows, but they require shaders now.
8 months ago
psi29a e4fd852df6 Merge branch 'ba2' into 'master'
BA2 support fixes

See merge request OpenMW/openmw!4055
8 months ago
psi29a 1eb6b322a7 Merge branch 'morefunfallout4discoveries' into 'master'
Fix reading BSLightingShaderProperty backlight power in NIF Bethesda stream version 132

See merge request OpenMW/openmw!4058
8 months ago
Alexei Kotov a5d936993f Clarify Fallout 4 next gen update BA2 version naming 8 months ago
Andrei Kortunov 98abfcfe00 Use grayscale images for disabled icons 8 months ago
Andrei Kortunov 070327a259 Change SVG color in the editor 8 months ago
Alexei Kotov 52bc744642 Fix reading backlight power in NIF stream version 132 8 months ago
Alexei Kotov 52d77e3a45 Version 8 texture BA2s found 8 months ago
Alexei Kotov f0e4793321 Remove allow shadow map overlap setting (#7939) 8 months ago
Alexei Kotov 61b6150c01 Properly detect the version for post-FO4 BA2 formats 8 months ago
Alexei Kotov f796e051cb Support zlib-compressed version 3 DDS BA2s 8 months ago
Alexei Kotov b32385a0af Fix BA2 signature check 8 months ago
Alexei Kotov 22fb3d7f83 Add support for Fallout 4 next-gen update BA2s 8 months ago
psi29a 26f0e6b22c Merge branch 'nifmisc' into 'master'
Miscellaneous NIF loader corrections

See merge request OpenMW/openmw!4052
8 months ago
Alexei Kotov 7f13f6a4e9 Use osg::Fog::compare in NifOsg::Fog::compare 8 months ago
psi29a a628c658a9 Merge branch 'lessgoofymaterialptr' into 'master'
Simplify material file pointer acrobatics

See merge request OpenMW/openmw!4049
8 months ago
psi29a 99a0755094 Merge branch 'remove_natural_sort' into 'master'
Remove dead code

See merge request OpenMW/openmw!4047
8 months ago
Alexei Kotov 745be2e91b Implement NifOsg::Fog::compare() 8 months ago
Alexei Kotov a513049129 Adjust drawable property state changes
Reset shininess and specular strength when specular lighting is supposed to be disabled
Don't add the material redundantly if a sorter is pushed
Don't discard non-default emissive and specular multipliers if there's no sorter or material
8 months ago
Alexei Kotov 713e741f9c Share fog state attributes 8 months ago
Alexei Kotov d7bd5e76ca Move wrapping flag handling to relevant properties 8 months ago
psi29a 02cdeb6252 Merge branch 'scalable_editor' into 'master'
Treat editor icons as scalable

See merge request OpenMW/openmw!4042
8 months ago
Alexei Kotov 78eda530ac Simplify material file pointer acrobatics 8 months ago
Andrei Kortunov 6390fdee7a Remove dead code 8 months ago
psi29a 023c0f7a46 Merge branch 'vfs_normalized_path_6' into 'master'
Use normalized path for music related functions

See merge request OpenMW/openmw!4038
8 months ago
Andrei Kortunov 1bb48bcef7 Treat editor icons as scalable 8 months ago
Alexei Kotov 884668927f BGSM Reader: include cleanup, adjust getFile return result 8 months ago
elsid a863899eb1
Use normalized path for SoundManager::streamMusic 8 months ago
Alexei Kotov 77c3cd4467 More BGSM cleanup 8 months ago
Alexei Kotov 6be2bb70c3 Remove unused remnants of NIFStream from BGSMStream 8 months ago
Alexei Kotov ea5e101821 Handle glow maps for BGSM files 8 months ago
Alexei Kotov 8325e100df More decal deduplication 8 months ago
Alexei Kotov 5789eb73b1 Deduplicate decal and alpha handling in NifLoader 8 months ago
Alexei Kotov 4ccf9c1917 Deduplicate NifLoader texture attachment
Handle non-existent shader materials more gracefully
Deduplicate shader material drawable property handling
8 months ago
Alexei Kotov e680123482 NifLoader: Make the image manager a member 8 months ago
Alexei Kotov 8997bd6854 Apply shader material transparency parameters, get rid of unwanted shiny 8 months ago
Alexei Kotov 1d65aaee71 Formatting 8 months ago
Alexei Kotov 96f5ae5a8d Handle BGSM decal flag, hide visibility editor markers 8 months ago
Alexei Kotov 1a961f3021 Extremely early handling for BGSM/BGEM files 8 months ago
Alexei Kotov fe1cb3a5ae Add a resource manager for BGSM files 8 months ago
Alexei Kotov cb77bcc4c8 Initial BGEM file parsing 8 months ago
Alexei Kotov 484a360792 Add a safety measure for string loading in BGSM 8 months ago
Alexei Kotov f9f8c1e591 Fix depth test reading in BGSM 8 months ago
Alexei Kotov 8ef6304dd9 BGSM colors are Vec3 8 months ago
Alexei Kotov 015aca2cfd Initial BGSM file parsing 8 months ago
Alexei Kotov 124df1be61 Parse shared part of material files 8 months ago
Alexei Kotov aea7b10986 Add dummy BGSM/BGEM file reader 8 months ago
AnyOldName3 04f1dc282b Merge branch 'fix-osga-rotate-wildly' into 'master'
Fix OSGAnimation issues

See merge request OpenMW/openmw!3989
8 months ago
elsid e11a5a4352
Use normalized path for SoundManager::playPlaylist 8 months ago
elsid 82931059fd
Make NormalizedView constructor from const char* explicit 8 months ago
Sam Hellawell b7aa3b9f47 Remove rename from RenameBonesVisitor, rename to RenameAnimCallbacksVisitor 8 months ago
psi29a e4c70b7861 Merge branch 'anyoldname3-and-the-amazing-technicolour-terminal-emulator' into 'master'
Support coloured terminal output on Windows

See merge request OpenMW/openmw!4027
8 months ago
psi29a 3600c6c7c7 Merge branch 'filterview' into 'master'
Validate INFO filters when loading the record

See merge request OpenMW/openmw!4003
8 months ago
psi29a b91ff634e4 Merge branch 'navmesh_queue' into 'master'
Optimize queue for navmesh async jobs

See merge request OpenMW/openmw!4025
8 months ago
Sam Hellawell 2653b76db9 getTranslation/getTransformForNode refactor, unit tests 9 months ago
AnyOldName3 83e3718bed . c l a n g - f o r m a t 9 months ago
AnyOldName3 61364c874f Warn future me off wasting their time again 9 months ago
AnyOldName3 a7021bf9cc Clear std stream errors when reopening
Prior errors are no longer relevant.

Shouldn't make a difference unless you've tried printing something before the streams were set up.
9 months ago
Alexei Kotov 443e341ae7 Generalize unsized pixel format computation 9 months ago
Alexei Kotov 3c0c1717a9 Fix red-green normal map handling for terrain 9 months ago
Alexei Kotov 58afe1ba23 Support red-green normal maps 9 months ago
elsid 910c88325a
Add a setting to wait for all navmesh jobs on exit 9 months ago
elsid 50f4471750
Use R-tree for dynamic priority of navmesh async job 9 months ago
elsid 17bd571a65
Do not repost failed jobs
Failures should not happen except for some weird corner cases. Retrying is
unlikely to help in such situation.
9 months ago
elsid d6f3d34f2f
Remove tiles present on navmesh but outside desired area 9 months ago
elsid 61c69c5563
Use proper prefix for CollisionShapeType 9 months ago
elsid a1438f65fe
Set proper max tiles on initializing navmesh settings 9 months ago
AnyOldName3 1930bfeabb Support coloured terminal output on Windows
First try the modern Windowsy way, where we can directly query if escape sequences will be processed.
The function is available as far back as Windows 2000, but it just won't return the right flag until the Windows version is new enough.

If that fails, fall back to the Unixy way, as not all colour-supporting terminal emulators for Windows use the Win32 API to declare that capability.
The implementation isn't identical as isatty wasn't available without adding more headers, and we already have Windows.h in this file, so I might as well use the Win32 API instead of its POSIX-compatibility layer.
9 months ago
Evil Eye 6e79064a57 Fix editor oddities 9 months ago
psi29a f9e957ea0e Merge branch 'esm4scvr' into 'master'
ESM4: Make script local variable loading more reliable

See merge request OpenMW/openmw!3967
9 months ago
Evil Eye a4625ea784 Deduplicate dialogue filter parsing 9 months ago
Evil Eye fb4edda45d Validate INFO filters when loading the record 9 months ago
Sam Hellawell 8c2c66d59e .nif check, matrix mult feedback, auto usage, reuse NodeMap typedef 9 months ago
psi29a 8037a6e765 Merge branch 'portable-launcher' into 'master'
Portable Launcher (plus a whole slew of bugs fixes for problems I found that I suspect aren't on the tracker)

Closes #6846

See merge request OpenMW/openmw!3925
9 months ago
AnyOldName3 48f1f08537 Hide things that depend on present-but-inactive game files
https://gitlab.com/OpenMW/openmw/-/merge_requests/3925#note_1843962919
9 months ago
Sam Hellawell d23c10622d Use dynamic cast to check for bone 9 months ago
Sam Hellawell a51d560174 Move bone rename logic to ColladaDescriptionVisitor, undo formatting/refactoring 9 months ago
Sam Hellawell 2288a691d2 Replace osgAnimation bone underscore naming at load time, map bone instances, reset root bone transform each frame 9 months ago
AnyOldName3 bb3c22e4a5 Add and register SettingValue stream operators 9 months ago
psi29a 3da6b4f529 Merge branch 'more_stats' into 'master'
Report more stats in F4

See merge request OpenMW/openmw!3956
9 months ago
psi29a 43f2574406 Merge branch 'vaporeon' into 'master'
Make sunlight scattering and wobbly shores optional

See merge request OpenMW/openmw!3994
9 months ago
elsid 215404e126
Report more stats from caches 9 months ago
elsid ae41ebfc83
Report CellPreloader stats 9 months ago
elsid 9a24e77d3f
Show F4 stats in pages 9 months ago
Alexei Kotov 76105cc2d1 Make sunlight scattering and wobbly shores optional 9 months ago
Evil Eye 1d13f7db8f Simplify detachFromParent 9 months ago
Evil Eye 8cbcb82dd4 Prevent iterator invalidation when updating Lua UI and increase const correctness 9 months ago
psi29a 2497164b2b Merge branch 'optimize_font_loading' into 'master'
Optimize bitmap fonts loading

See merge request OpenMW/openmw!3988
9 months ago
psi29a 2056da358d Merge branch 'opencs-projectile-speed' into 'master'
OpenMW-CS: Editing and verifying of projectile speed for magic effects

See merge request OpenMW/openmw!3939
9 months ago
psi29a e8038d353f Merge branch 'esmstuff' into 'master'
Use more decomposition, string_view, and implicit sizes in ESM code

See merge request OpenMW/openmw!3975
9 months ago
Sam Hellawell deb8894035 ESM::MagicEffect::blank() set the default to 1
Signed-off-by: Sam Hellawell <sshellawell@gmail.com>
9 months ago
Andrei Kortunov f2dc25e214 Optimize bitmap fonts loading 9 months ago
psi29a f7f7502d60 Merge branch 'i-said-it-was-unlocked-damn-you' into 'master'
Fix(CS): Actually allow unlocking doors ( #7899 )

Closes #7899

See merge request OpenMW/openmw!3982
9 months ago
Dave Corley 2e68786331 Fix(CS): Actually allow unlocking doors ( #7899 ) 9 months ago
psi29a b70f1d86c5 Merge branch 'fix-sheathing-non-nifs' into 'master'
Fix weapon and shield sheathing for non-nif meshes

See merge request OpenMW/openmw!3985
9 months ago
Mads Buvik Sandvei e0b11c14c2 Remove unused member mStackable 9 months ago
Sam Hellawell 7897ff7ac9 Fix weapon sheathing for non-nif meshes 9 months ago
psi29a 012d10703f Merge branch 'spellcast-refactor' into 'master'
Spellcast related Lua API + spellcasting/activespell refactor

See merge request OpenMW/openmw!3922
9 months ago
Mads Buvik Sandvei 320d8ef014 Spellcast related Lua API + spellcasting/activespell refactor 9 months ago
Alexei Kotov 6515fdd73f Handle zero length Lua storage files more gracefully (#7823) 9 months ago
jvoisin 79a62b3ad3 Merge branch 'enable_normals_for_all' into 'master'
Restructure colormasks at higher level

See merge request OpenMW/openmw!3970
9 months ago
Cody Glassman a4dd9224df Restructure colormasks at higher level 9 months ago
Evil Eye 5a0aed3a78 Use more decomposition, string_view, and implicit sizes in ESM code 9 months ago
Evil Eye bf708acfac Merge branch 'goddamnit-there-are-more' into 'master'
Even more MSVC-specific warnings that evaded detection in CI

See merge request OpenMW/openmw!3968
9 months ago
Alexei Kotov 63276e0f1f Merge branch 'avoid_copy' into 'master'
Follow-up for YAML API

See merge request OpenMW/openmw!3961
9 months ago
Cody Glassman 098396822f add choice widget type to postprocessing uniforms 9 months ago
AnyOldName3 818a99a870 Review 9 months ago
AnyOldName3 da8150e2e4 Even more MSVC-specific warnings that evaded detection in CI 9 months ago
Alexei Kotov 3721a69747 ESM4: Make script local variable loading more reliable 9 months ago
psi29a af9f1b54da Merge branch 'lost-warnings' into 'master'
Fixes for a whole bunch of warnings

See merge request OpenMW/openmw!3950
9 months ago
Alexei Kotov 25414cd660 Merge branch 'rm_esm4_local_static' into 'master'
Remove static modifier from local variables used to store temporary loading results

See merge request OpenMW/openmw!3964
9 months ago
elsid 3358bc80bf Merge branch 'esm4fourcc' into 'master'
Get rid of ESM4::SubRecordTypes

See merge request OpenMW/openmw!3962
9 months ago
elsid 0da8b29a88
Remove static modifier from local variables used to store temporary loading results
They make the code thread unsafe because different threads will use the same
memory to write and read using different instances of the loaded objects.
9 months ago
Alexei Kotov 6b93479bd3 Get rid of ESM4::SubRecordTypes
All my homies hate ESM4::SubRecordTypes
9 months ago
Dave Corley fcff1a6739 Fix #7887, use actual instead of reported size for script data 10 months ago
Andrei Kortunov 2d3a8ca0fc Do not use an inner namespace 10 months ago
Andrei Kortunov cb831a5917 Add more includes just for sure 10 months ago
Andrei Kortunov 2523afe9c2 Use namespace instead of static class 10 months ago
Andrei Kortunov 8037ad7f00 Remove unused includes 10 months ago
psi29a 854b4f226b Merge branch 'fix_msvc_build' into 'master'
Fix build with MSVC 19.38

See merge request OpenMW/openmw!3960
10 months ago
Andrei Kortunov 4520ee465d Do not copy vector 10 months ago
elsid ee2cc8aeb7
Fix build with MSVC 19.38
components\detournavigator\navigator.hpp(44): error C3861: 'assert': identifier not found
10 months ago
elsid 16410d0960
Use std::string for ResourceManager cache key
Otherwise terrain textures cache has zero hits because it stores not normalized
paths. Due to implicit conversion it's possible to add entry with
addEntryToObjectCache passing a string that is converted into normalized path.
But then getRefFromObjectCache called with original value does not find this
entry because it's not converted and overloaded operators are used instead.
10 months ago
Andrei Kortunov 6da151cf77 Fix GCC build 10 months ago
psi29a 5d669f0470 Merge branch 'fix_ui_crashes' into 'master'
Another day, another UI crash fix

See merge request OpenMW/openmw!3949
10 months ago
psi29a 090e57b27c Merge branch 'esm3structs' into 'master'
Replace fixed size writeHNT calls with decomposition

See merge request OpenMW/openmw!3914
10 months ago
psi29a d746918563 Merge branch 'yaml_parse' into 'master'
Load YAML files via Lua

Closes #7590

See merge request OpenMW/openmw!3924
10 months ago
Alexei Kotov 6e2dbfbd74 Merge branch 'check-osg-plugins-but-better' into 'master'
Get OSG to tell us the plugin filenames it's going to use

See merge request OpenMW/openmw!3942
10 months ago
AnyOldName3 a06ab94a20 Canonicalise resolved representation of data directories 10 months ago
AnyOldName3 9638fbabb4 https://www.youtube.com/watch?v=2_6U9gkQeqY 10 months ago
AnyOldName3 ff3ffa13b6 Auto format 10 months ago
AnyOldName3 28131fd62b Fixes for a whole bunch of warnings
These warnings were always enabled, but we didn't see them due to https://gitlab.com/OpenMW/openmw/-/issues/7882.
I do not fully understand the cause of 7822 as I can't repro it in a minimal CMake project.

Some of these fixes are thought through.
Some are sensible best guesses.
Some are kind of a stab in the dark as I don't know whether there was a
possible bug the warning was telling me about that I've done nothing to
help by introducing a static_cast.

Nearly all of these warnings were about some kind of narrowing
conversion, so I'm not sure why they weren't firing with GCC and Clang,
which have -Wall -Wextra -pedantic set, which should imply -Wnarrowing,
and they can't have been affected by 7882.

There were also some warnings being triggered from Boost code.
The vast majority of library headers that do questionable things weren't
firing warnings off, but for some reason, /external:I wasn't putting
these Boost headers into external mode.

We need these warnings dealt with one way or another so we can switch
the default Windows CI from MSBuild (which doesn't do ccache) to Ninja
(which does).
I have the necessary magic for that on a branch, but the branch won't
build because of these warnings.
10 months ago
uramer 68ed771816 Fix element detachment logic 10 months ago
uramer 2f40491065 Fix crash when destroying UI element in the same frame as creating it 10 months ago
Evil Eye b52f721318 Use getSubComposite to read AMBI 10 months ago
Andrei Kortunov 715efe892f Load YAML files via Lua (feature 7590) 10 months ago
psi29a 2764d8ceff Merge branch 'fix_destroying_new_elements' into 'master'
Don't destroy root widget for new elements

See merge request OpenMW/openmw!3947
10 months ago
AnyOldName3 942eeb54c1 Yet another osgpluginchecker rewrite
It turns out that it's possible for OSG plugins to be spread across multiple directories, and OSG doesn't account for this in osgDB::listAllAvailablePlugins(), even though it works when actually loading the plugin.

Instead, use code that's much more similar to how OSG actually loads plugin, and therefore less likely to miss anything.

Incidentally make things much simpler as we don't need  awkwardness from working around osgDB::listAllAvailablePlugins()'s limitations.
10 months ago
uramer b12f98db98 Don't destroy root widget for new elements 10 months ago
elsid 859d765921
Use normalized path for NifFileManager::get 10 months ago
elsid 3ea3eeb613
Use string_view for canOptimize 10 months ago
elsid a98ce7f76a
Replace std::filesystem::path by std::string_view in Files::getHash argument 10 months ago
elsid 79b73e45a1
Replace std::filesystem::path by std::string and std::string_view in nif code
It's used only for error reporting.
10 months ago
elsid cd3c3ebadb
Use VFS::Path::Normalized for ResourceManager cache key 10 months ago
psi29a b5b6744321 Merge branch 'hotfix_ui_update' into 'master'
Fix Lua UI updates

See merge request OpenMW/openmw!3936
10 months ago
psi29a 3cb8d05fe5 Merge branch 'vfs_normalized_path_4' into 'master'
Use VFS::Path::Normalized in few more places

See merge request OpenMW/openmw!3934
10 months ago
AnyOldName3 0730dc2ebb Get OSG to tell us the plugin filenames it's going to use
That way, we don't have issues like the checker getting false positives when the right plugins are present for the wrong OSG version or build config, or false negatives when we've generated the wrong filenames.
10 months ago
uramer af8662daee Detach Lua Elements properly from their parent 10 months ago
uramer 0f60052bb8 Set Element state in Element::create 10 months ago
psi29a 6f9ceff3f3 Merge branch 'windows_build' into 'master'
Add option to disable precompiled headers

See merge request OpenMW/openmw!3933
10 months ago
elsid cc35df9409
Use VFS::Path::Normalized for fx::Technique file path 10 months ago
elsid ffbeb5ab98
Build localization path using VFS::Path::Normalized 10 months ago
elsid 84adb0a148
Make VFS::Path::Normalized constructor from std::string_view explicit 10 months ago
psi29a a926f4a5a9 Merge branch 'alt_tab_fix' into 'master'
Do not treat Alt-Tab as resolution change

Closes #7866

See merge request OpenMW/openmw!3931
10 months ago
psi29a f09f5c644c Merge branch 'update_setting_pages' into 'master'
Optimize setting group rendering

See merge request OpenMW/openmw!3929
10 months ago
AnyOldName3 e0b13f0858 Ensure default config values are present
Moving builtin.omwscripts out of the root openmw.cfg means we actually might need to use the defaults, so need to have some.
10 months ago
elsid 5859fd464c
Add option to disable precompiled headers
To be able to use ccache.

Also fix compilation errors appeared due to absence of precompiled
headers.
10 months ago
Andrei Kortunov 5dcac4c48f Do not treat Alt-Tab as resolution change (bug 7866) 10 months ago
AnyOldName3 36f5c819bb capitulate 10 months ago
AnyOldName3 243b5b6666 Hopefully convince the old MSVC version on GitLab CI to work
The old code was legal, and the things it did worked in other places, so should have worked here, too.

Hopefully just rearranging stuff convinces what I assume to be a compiler bug to not happen.
10 months ago
AnyOldName3 ed23f48754 Actually erase the things we're removing
Caused by bad copy and paste
10 months ago
uramer 9ae61f1932 Fix child UI Elements created in the same frame as parent 10 months ago
elsid 5acfb07850
Fix build with OSG_USE_UTF8_FILENAME 10 months ago
Evil Eye 1499dd2654 Add getCompositeSize and handle NPC data 10 months ago
AnyOldName3 bf24bb71b1 Explicitly use std::strong_ordering
Otherwise it's ambiguous how to build <=> from <, == and >
10 months ago
AnyOldName3 1ae2cc82a1 I do not know how this escaped formatting locally. 10 months ago
AnyOldName3 a130ca57a4 Track source of settings
This one's a biggie.

The basic idea's that GameSettings should know:
* what the interpreted value of a setting is, so it can actually be used.
* what the original value the user put in their config was, so it can be put back when the config's saved.
* which path it's processing the openmw.cfg from so relative paths can be resolved correctly.
* whether a setting's a user setting that can be modified, or from one of the other openmw.cfg files that can't necessarily be modified.

This had fairly wide-reaching implications.

The first is that paths are resolved properly in cases where they previously wouldn't have been.
Without this commit, if the launcher saw a relative path in an openmw.cfg, it'd be resolved relative to the process' working directory (which we always set to the binary directory for reasons I won't get into).
That's not what the engine does, so is bad.
It's also not something a user's likely to suspect.
This mess is no longer a problem as paths are resolved correctly when they're loaded instead of on demand when they're used by whatever uses them.

Another problem was that if paths used slugs like ?userconfig? would be written back to openmw.cfg with the slugs replaced, which defeats the object of using the slugs.
This is also fixed.

Tracking which settings are user settings and which are in a non-editable openmw.cfg allows the launcher to grey out rows so they can't be edited (which is sensible as they can't be edited on-disk) while still being aware of content files that are provided by non-user data directories etc.
This is done in a pretty straightforward way for the data directories and fallback-archives, as those bits of UI are basic, but it's more complicated for content files as that uses a nmodel/view approach and has a lot more moving parts.
Thankfully, I'd already implemented that when dealing with builtin.omwscripts, so it just needed wiring up.

One more thing of note is that I made the SettingValue struct storable as a QVariant so it could be attached to the UI widgets as userdata, and then I could just grab the original representation and use it instead of needing any complicated mapping from display value to on-disk value.
10 months ago