Commit Graph

860 Commits (master)

Author SHA1 Message Date
AnyOldName3 b15f7857c0 currentDir.value is already canonicalised 9 months ago
AnyOldName3 f49d270c26 Don't throw away user-provided shadow map resolutions
Resolves https://gitlab.com/OpenMW/openmw/-/issues/7891

I think this is better than just adding 8192 as an allowed option as the vast majority of GPUs would be too slow given what we know about the cost if that setting (maybe that'll change if we get rid of the unconditional conditional discard I suspect is the cause of the slowness that's there for no good reason since the shadowsbin already moves most drawables to a known alpha-free stateset).
9 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
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
AnyOldName3 1af59c3a43 Tooltips for data-local and resources/vfs 10 months ago
AnyOldName3 f476301670 There's no such thing as the global data directory
That's what resources/vfs is for.
10 months ago
AnyOldName3 357bf3db61 Load all config files 10 months ago
psi29a 518f34c869 Merge branch 'bsa_archive' into 'master'
Cleanup and optimize BSA archives code

See merge request OpenMW/openmw!3876
10 months ago
Andrei Kortunov 3971abf5e6 Minor launcher improvements (feature 7843) 10 months ago
Andrei Kortunov 6f1710dee1 Fix viewing distance spinbox in the launcher (bug 7840) 10 months ago
elsid cc9f9b53ba
Convert BsaVersion to enum class 10 months ago
psi29a 1280345296 Merge branch 'copy_qtbase' into 'master'
Copy qtbase translations

See merge request OpenMW/openmw!3840
11 months ago
Andrei Kortunov 9a7b9572fd Deploy base Qt translations when needed 11 months ago
psi29a 744cd50520 Merge branch 'decoupled-audio' into 'master'
Add option to use camera as sound listener

Closes #5944

See merge request OpenMW/openmw!3836
11 months ago
Epoch 6486f3f2cf Add option to use camera as sound listener 11 months ago
AnyOldName3 3149761c85 Fix grammar for A2C checkbox
An alternative would be *Anti-alias alpha testing*.

The original was wrong because anti-alias is a verb acting on alpha testing, but it treated the whole thing as a noun phrase.
11 months ago
BPengu1n 4cdb76975a added force PPL checkbox 11 months ago
Andrei Kortunov 7e345436f4 Localize Launcher and Wizard 11 months ago
Yury Stepovikov c90ebcc86b Allow multiselect in the archives tab (#7606) 11 months ago
Andrei Kortunov a340b49cbc Enhance light settings tweaking 12 months ago
Andrei Kortunov 6cefe2c118 Rework launcher tabs 12 months ago
Yury Stepovikov 52623ddd7d Set MacOS current_path before reading configuration files [#7706] 12 months ago
Evil Eye 672cefd594 Track checked EsmFile pointers instead of full paths 12 months ago
psi29a a0c0509e3f Merge branch 'rm_unused_apps_includes' into 'master'
Use "" to quote apps/openmw includes and remove unused

See merge request OpenMW/openmw!3727
12 months ago
elsid 067957f57b
Use "" to quote apps/openmw includes and remove unused
Using "" makes clangd to find unused includes which makes it quite easy to
remove them.
12 months ago
Andrei Kortunov 828c40c710 Do not copy due to auto misuse 12 months ago
Andrei Kortunov 7ffb2bc3c4 Use error messages instead of unhandled exceptions 1 year ago
elsid dc8c979d1a Merge branch 'avoid_duplication' into 'master'
Store generated UI by pointer to avoid redundant processing

See merge request OpenMW/openmw!3680
1 year ago
Andrei Kortunov 1ca2a0ef66 Store generated UI by pointer to avoid redundant processing 1 year ago
Andrei Kortunov 81f7149f42 Use a multiplication sign for custom resolution 1 year ago
Andrei Kortunov e6690bbcc7 Use CMAKE_CURRENT_SOURCE_DIR instead of CMAKE_SOURCE_DIR 1 year ago
Andrei Kortunov 2e041073fc Move *.ui files for different applications to different folders 1 year ago
Andrei Kortunov ca19f7006c Make hardcoded strings in Launcher and Wizard localizable 1 year ago
Alexei Kotov 53f5e4dd3c Merge branch 'highlight_color' into 'master'
Highlight new items in launcher by text formatting, not by color

See merge request OpenMW/openmw!3625
1 year ago
Evil Eye 8d8e970aba Merge branch 'message_formatting' into 'master'
Do not include formatting spaces to localizable strings

See merge request OpenMW/openmw!3624
1 year ago
Andrei Kortunov c5b16d1ba2 Do not include formatting spaces to localizable strings 1 year ago
Andrei Kortunov 5e96825e6b Highlight new items in launcher by text formatting, not by color 1 year ago
Andrei Kortunov 623510c073 Use multiplication character in the launcher instead of 'x' 1 year ago
Andrei Kortunov 81a6a7cd2f Rework resolution selection (feature 7709) 1 year ago
Andrei Kortunov c945735f3b Fix resolution dropdown in the launcher 1 year ago
elsid f08ab9af56
Use SDL2 generate cmake files to find the package 1 year ago
elsid 8f27178a0b
Use settings values for navigator in the launcher 1 year ago
Alexei Kotov bdc019647a Merge branch 'figure-skaters' into 'master'
Use accumulated movement when possible

Closes #5062

See merge request OpenMW/openmw!3549
1 year ago
Mads Buvik Sandvei 9c93d907dc Settings page entry for the "player movement ignores animation" setting. 1 year ago
elsid f4efbcc1c4
Use settings values for Shadows settings 1 year ago
elsid dcd81d026f
Use settings values for Video settings
* Convert window mode, vsync mode into enums, screenshot type into a struct.
* Add missing doc for screenshot type.
1 year ago
Alexei Kotov f68bd3ba97 Launcher: Improve directory appending UX and heuristics (bug #7502)
- Recognize more asset directories and omwgame files
- Always let the user append the selected directory
- Automatically pick the user-selected directory if it's the only valid directory
- Add a caption to directory selection dialog, properly handle cancellation
1 year ago
elsid a84e412a37
Use settings values for Sound settings 1 year ago
elsid 08902371b4
Use settings values for Shaders settings 1 year ago
Petr Mikheev f260fa006e Show OpenMW version and Lua API revision in documentation. 1 year ago
Alexei Kotov 5e5a25f901 Show BA2 files in the launcher 1 year ago
psi29a 3151452e25 Merge branch 'pandorasbox' into 'master'
Launcher, content selector: support ESM4 files, allow using game files as addon files

See merge request OpenMW/openmw!3219
1 year ago
Andrei Kortunov d3d7a663c6 Move some objects instead of copying 1 year ago
AnyOldName3 34fcfb63cf Eliminate redundant version checks 1 year ago
Alexei Dobrohotov d589b46f96 Launcher, content selector: support ESM4 files
Cell name loader ignores ESM4 files
1 year ago
elsid f6fce5ee15
Cleanup includes 1 year ago
elsid 86e5b94ef6
Convert setting value int to CollisionShapeType on initialization 2 years ago
Evil Eye 9214ffb50b Replace some empty constructors and destructors with default 2 years ago
psi29a 4fd8ed8f13 Merge branch 'qt_scene' into 'master'
Migrate from GraphicsWindowQt to QOpenGLWidget

See merge request OpenMW/openmw!2895
2 years ago
elsid ec01d3cd0c
Use typed settings storage in the launcher settings page 2 years ago
elsid 121b75212f
Move SettingsPage settings related functions to anonymous namespace 2 years ago
Andrei Kortunov 8df7ce545e Migrate from GraphicsWindowQt to QOpenGLWidget 2 years ago
fredzio 37c4587ca4 Display directories that contains omwscripts.
Display newly added omwscripts as new.
2 years ago
elsid 9815f930d9
Setup launcher configuration manager and logging before initializing UI 2 years ago
elsid de112a2950
Simplify converting file names into absolute file paths 2 years ago
elsid d18d860ea2
Catch and log exceptions on loading cell names
Instead of terminating the process.
2 years ago
elsid 5a691380ea
Use single set to check presence of archives 2 years ago
elsid b1765cf05a
Do single lookup for widget item 2 years ago
elsid 62536d5cf7
Use static QFile::exists instead of creating object 2 years ago
elsid ecb9c35268
Remove unused variable 2 years ago
elsid 9280957581
Save original paths
If directory path is a symlink it should be showed and written to config files
as is. Between launcher runs the resulting canonical path may be different so
the resolved path becomes outdated.
2 years ago
elsid ff7fcd752a
Use set to track visited directories instead of removing duplicates 2 years ago
elsid 1857d8a68c
Use target_compile_options to add --coverage 2 years ago
elsid cc066efa11
Fix identation in CMakeLists.txt 2 years ago
psi29a eca26e8b18 Merge branch 'Support-BA2-file-format' into 'master'
Support ba2 file format

See merge request OpenMW/openmw!2787
2 years ago
Cédric Mocquillon c1fbe90953 Handle GNRL case of ba2 format 2 years ago
Andrei Kortunov be488649c3 Add support for non-adaptive VSync (feature 7129) 2 years ago
Andrei Kortunov 7e2aedf637 Add an initial Qt6 support 2 years ago
psi29a aee7716c3a Merge branch 'launcher_typed_settings' into 'master'
Typed launcher settings

See merge request OpenMW/openmw!2650
2 years ago
elsid c44bc5ade5
Setup logging with properly initialized configuration manager
Default constructed instance may provide different paths from initialized one.
2 years ago
elsid 8be2fc9fd7
Stop updating navmeshtool progress on first bad message 2 years ago
elsid cf75363290
Typed launcher settings
QMultiMap is not clear about what settings exist and it's not efficient way to
access them after they are loaded.
2 years ago
elsid b1d0ee1f1b
Load only launcher.cfg from user folder
There is no other launcher.cfg.
2 years ago
elsid 0961720835
Join path components using path::operator/ instead of string::operator+ 2 years ago
florent.teppe 3780033837 Reverts Cell name to a string 2 years ago
psi29a 757cf7098d Merge branch 'minor-cleanup' into 'master'
Use dedicated function to convert QString to std::filesystem::path

See merge request OpenMW/openmw!2636
2 years ago
AnyOldName3 438b03908d Use dedicated function to convert QString to std::filesystem::path II
Some missed conversions identified in review.
2 years ago
AnyOldName3 f757ac642a Use dedicated function to convert QString to std::filesystem::path
I noticed this while reviewing something else and trying to find the
function to recommend using it.
2 years ago
elsid dd89403df0
Move ensureUtf8Encoding to named namespace
To follow https://github.com/isocpp/CppCoreGuidelines/blob/master/CppCoreGuidelines.md#sf21-dont-use-an-unnamed-anonymous-namespace-in-a-header

Add QtGlobal include to define QT_VERSION and QT_VERSION_CHECK macroses before
they're used.
2 years ago
Andrei Kortunov 0864d997d0 Add missing includes 2 years ago
Andrei Kortunov 902c48d1bb Rework launcher UI 2 years ago
jvoisin c90d22f3b2 Replace usage of QRegularExpression::anchoredPattern with `^` and `$`
Using `^` and `$` is shorter than `QRegularExpression::anchoredPattern`,
and even allows us in one case to get rid of a trailing `.*`.
2 years ago
Andrei Kortunov bfcbc2350d Handle UTF-8 in Qt streams in the Qt6-compatible way 2 years ago
Andrei Kortunov 307a60e87c Migrate from QRegExp to more modern QRegularExpression 2 years ago
glassmancody.info 9a4977d334 rain occlusion 2 years ago
Petr Mikheev 1869aeae5c Move some of player controls logic from C++ to Lua 2 years ago
florent.teppe 2c30575b3b CellName is now a RefId, makes more sense that way. 2 years ago
AnyOldName3 66b8d4fb29 Add a setting to control coverage adjustment
With it on, which was always the case before this setting was added,
vanilla content and poorly-made mods will look acceptable, but well-made
mods will have alpha-tested meshes appear to grow and potentially gain a
weird outline as they get further away.

With it off, which replicates the 0.46 behaviour, well-made mods will
look really good, but vanilla content and poorly-made mods will have
alpha-tested meshes shrink as they get further away.

It's been bugging me that this was forced on since 0.47 released, and
I'd hoped to figure out a solution for automatic detection at some point
before 0.48 branched off, but I didn't, so now this is what we're
getting to have Tamriel Rebuilt look right.
2 years ago
Evil Eye a648e4cc11 Add option to restore non-MCP Calm spell behaviour 2 years ago
elsid 843753da14
Remove unused includes 2 years ago