1
0
Fork 0
mirror of https://github.com/OpenMW/openmw.git synced 2025-01-19 20:53:52 +00:00
Commit graph

858 commits

Author SHA1 Message Date
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.
2024-03-08 02:11:51 +01:00
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.
2024-03-06 00:36:13 +00:00
AnyOldName3
1af59c3a43 Tooltips for data-local and resources/vfs 2024-02-29 00:48:03 +00:00
AnyOldName3
f476301670 There's no such thing as the global data directory
That's what resources/vfs is for.
2024-02-27 14:11:48 +00:00
AnyOldName3
357bf3db61 Load all config files 2024-02-25 14:01:20 +00:00
psi29a
518f34c869 Merge branch 'bsa_archive' into 'master'
Cleanup and optimize BSA archives code

See merge request OpenMW/openmw!3876
2024-02-22 08:02:12 +00:00
Andrei Kortunov
3971abf5e6 Minor launcher improvements (feature 7843) 2024-02-20 14:02:59 +04:00
Andrei Kortunov
6f1710dee1 Fix viewing distance spinbox in the launcher (bug 7840) 2024-02-19 16:14:52 +04:00
elsid
cc9f9b53ba
Convert BsaVersion to enum class 2024-02-18 14:54:51 +01:00
psi29a
1280345296 Merge branch 'copy_qtbase' into 'master'
Copy qtbase translations

See merge request OpenMW/openmw!3840
2024-02-15 09:26:42 +00:00
Andrei Kortunov
9a7b9572fd Deploy base Qt translations when needed 2024-02-15 09:26:14 +04:00
psi29a
744cd50520 Merge branch 'decoupled-audio' into 'master'
Add option to use camera as sound listener

Closes #5944

See merge request OpenMW/openmw!3836
2024-02-13 09:18:18 +00:00
Epoch
6486f3f2cf Add option to use camera as sound listener 2024-02-13 09:18:18 +00:00
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.
2024-02-11 23:49:18 +00:00
BPengu1n
4cdb76975a added force PPL checkbox 2024-02-11 16:39:16 -06:00
Andrei Kortunov
7e345436f4 Localize Launcher and Wizard 2024-02-01 09:47:25 +04:00
Yury Stepovikov
c90ebcc86b Allow multiselect in the archives tab (#7606) 2024-01-28 21:33:10 +00:00
Andrei Kortunov
a340b49cbc Enhance light settings tweaking 2024-01-16 10:23:13 +04:00
Andrei Kortunov
6cefe2c118 Rework launcher tabs 2024-01-14 14:05:14 +04:00
Yury Stepovikov
52623ddd7d Set MacOS current_path before reading configuration files [#7706] 2024-01-11 00:59:27 +00:00
Evil Eye
672cefd594 Track checked EsmFile pointers instead of full paths 2024-01-09 17:40:14 +01:00
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
2024-01-09 08:59:23 +00:00
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.
2024-01-07 17:57:11 +01:00
Andrei Kortunov
828c40c710 Do not copy due to auto misuse 2024-01-07 18:52:10 +04:00
Andrei Kortunov
7ffb2bc3c4 Use error messages instead of unhandled exceptions 2024-01-03 21:48:25 +04:00
elsid
dc8c979d1a Merge branch 'avoid_duplication' into 'master'
Store generated UI by pointer to avoid redundant processing

See merge request OpenMW/openmw!3680
2023-12-26 09:39:47 +00:00
Andrei Kortunov
1ca2a0ef66 Store generated UI by pointer to avoid redundant processing 2023-12-24 20:35:19 +04:00
Andrei Kortunov
81f7149f42 Use a multiplication sign for custom resolution 2023-12-24 19:00:16 +04:00
Andrei Kortunov
e6690bbcc7 Use CMAKE_CURRENT_SOURCE_DIR instead of CMAKE_SOURCE_DIR 2023-12-19 19:58:52 +04:00
Andrei Kortunov
2e041073fc Move *.ui files for different applications to different folders 2023-12-19 15:21:08 +04:00
Andrei Kortunov
ca19f7006c Make hardcoded strings in Launcher and Wizard localizable 2023-12-11 12:02:43 +04:00
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
2023-12-03 20:29:25 +00:00
Evil Eye
8d8e970aba Merge branch 'message_formatting' into 'master'
Do not include formatting spaces to localizable strings

See merge request OpenMW/openmw!3624
2023-12-01 15:36:22 +00:00
Andrei Kortunov
c5b16d1ba2 Do not include formatting spaces to localizable strings 2023-11-30 13:06:50 +04:00
Andrei Kortunov
5e96825e6b Highlight new items in launcher by text formatting, not by color 2023-11-29 11:14:44 +04:00
Andrei Kortunov
623510c073 Use multiplication character in the launcher instead of 'x' 2023-11-28 22:47:27 +04:00
Andrei Kortunov
81a6a7cd2f Rework resolution selection (feature 7709) 2023-11-28 22:22:34 +04:00
Andrei Kortunov
c945735f3b Fix resolution dropdown in the launcher 2023-11-26 19:07:38 +04:00
elsid
f08ab9af56
Use SDL2 generate cmake files to find the package 2023-11-24 15:56:54 +01:00
elsid
8f27178a0b
Use settings values for navigator in the launcher 2023-11-12 16:33:44 +01:00
Alexei Kotov
bdc019647a Merge branch 'figure-skaters' into 'master'
Use accumulated movement when possible

Closes #5062

See merge request OpenMW/openmw!3549
2023-11-07 03:01:56 +00:00
Mads Buvik Sandvei
9c93d907dc Settings page entry for the "player movement ignores animation" setting. 2023-11-02 19:30:51 +01:00
elsid
f4efbcc1c4
Use settings values for Shadows settings 2023-11-02 16:36:44 +01:00
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.
2023-10-27 14:31:23 +02:00
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
2023-10-22 16:20:19 +03:00
elsid
a84e412a37
Use settings values for Sound settings 2023-10-13 12:58:58 +02:00
elsid
08902371b4
Use settings values for Shaders settings 2023-10-12 20:43:53 +02:00
Petr Mikheev
f260fa006e Show OpenMW version and Lua API revision in documentation. 2023-08-31 20:56:02 +02:00
Alexei Kotov
5e5a25f901 Show BA2 files in the launcher 2023-08-17 02:12:31 +03:00
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
2023-08-08 08:54:10 +00:00
Andrei Kortunov
d3d7a663c6 Move some objects instead of copying 2023-07-31 20:43:46 +04:00
AnyOldName3
34fcfb63cf Eliminate redundant version checks 2023-07-20 00:43:56 +01:00
Alexei Dobrohotov
d589b46f96 Launcher, content selector: support ESM4 files
Cell name loader ignores ESM4 files
2023-07-11 05:31:58 +03:00
elsid
f6fce5ee15
Cleanup includes 2023-07-08 11:28:56 +02:00
elsid
86e5b94ef6
Convert setting value int to CollisionShapeType on initialization 2023-07-01 00:59:35 +02:00
Evil Eye
9214ffb50b Replace some empty constructors and destructors with default 2023-05-29 13:37:19 +02:00
psi29a
4fd8ed8f13 Merge branch 'qt_scene' into 'master'
Migrate from GraphicsWindowQt to QOpenGLWidget

See merge request OpenMW/openmw!2895
2023-04-11 10:51:07 +00:00
elsid
ec01d3cd0c
Use typed settings storage in the launcher settings page 2023-04-11 00:19:58 +02:00
elsid
121b75212f
Move SettingsPage settings related functions to anonymous namespace 2023-04-11 00:02:41 +02:00
Andrei Kortunov
8df7ce545e Migrate from GraphicsWindowQt to QOpenGLWidget 2023-04-05 19:43:42 +04:00
fredzio
37c4587ca4 Display directories that contains omwscripts.
Display newly added omwscripts as new.
2023-03-30 21:32:01 +02:00
elsid
9815f930d9
Setup launcher configuration manager and logging before initializing UI 2023-03-21 21:29:57 +01:00
elsid
de112a2950
Simplify converting file names into absolute file paths 2023-03-21 09:34:27 +01:00
elsid
d18d860ea2
Catch and log exceptions on loading cell names
Instead of terminating the process.
2023-03-21 09:34:27 +01:00
elsid
5a691380ea
Use single set to check presence of archives 2023-03-21 09:34:27 +01:00
elsid
b1765cf05a
Do single lookup for widget item 2023-03-21 09:34:27 +01:00
elsid
62536d5cf7
Use static QFile::exists instead of creating object 2023-03-21 09:34:27 +01:00
elsid
ecb9c35268
Remove unused variable 2023-03-21 09:34:27 +01:00
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.
2023-03-21 01:37:26 +01:00
elsid
ff7fcd752a
Use set to track visited directories instead of removing duplicates 2023-03-21 01:22:41 +01:00
elsid
1857d8a68c
Use target_compile_options to add --coverage 2023-03-10 15:34:08 +01:00
elsid
cc066efa11
Fix identation in CMakeLists.txt 2023-03-10 15:28:06 +01:00
psi29a
eca26e8b18 Merge branch 'Support-BA2-file-format' into 'master'
Support ba2 file format

See merge request OpenMW/openmw!2787
2023-03-08 22:00:43 +00:00
Cédric Mocquillon
c1fbe90953 Handle GNRL case of ba2 format 2023-03-02 18:19:58 +01:00
Andrei Kortunov
be488649c3 Add support for non-adaptive VSync (feature 7129) 2023-02-26 15:19:19 +04:00
Andrei Kortunov
7e2aedf637 Add an initial Qt6 support 2023-02-06 18:38:59 +04:00
psi29a
aee7716c3a Merge branch 'launcher_typed_settings' into 'master'
Typed launcher settings

See merge request OpenMW/openmw!2650
2023-02-04 23:41:59 +00:00
elsid
c44bc5ade5
Setup logging with properly initialized configuration manager
Default constructed instance may provide different paths from initialized one.
2023-01-30 09:30:55 +01:00
elsid
8be2fc9fd7
Stop updating navmeshtool progress on first bad message 2023-01-27 19:10:53 +01:00
elsid
cf75363290
Typed launcher settings
QMultiMap is not clear about what settings exist and it's not efficient way to
access them after they are loaded.
2023-01-27 12:42:05 +01:00
elsid
b1d0ee1f1b
Load only launcher.cfg from user folder
There is no other launcher.cfg.
2023-01-27 12:41:33 +01:00
elsid
0961720835
Join path components using path::operator/ instead of string::operator+ 2023-01-27 01:07:15 +01:00
florent.teppe
3780033837 Reverts Cell name to a string 2023-01-21 18:39:42 +01:00
psi29a
757cf7098d Merge branch 'minor-cleanup' into 'master'
Use dedicated function to convert QString to std::filesystem::path

See merge request OpenMW/openmw!2636
2023-01-21 16:36:07 +00:00
AnyOldName3
438b03908d Use dedicated function to convert QString to std::filesystem::path II
Some missed conversions identified in review.
2023-01-20 23:39:30 +00:00
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.
2023-01-19 22:36:51 +00:00
elsid
dd89403df0
Move ensureUtf8Encoding to named namespace
To follow https://github.com/isocpp/CppCoreGuidelines/blob/master/CppCoreGuidelines.md#sf21-dont-use-an-unnamed-anonymous-namespace-in-a-header

Add QtGlobal include to define QT_VERSION and QT_VERSION_CHECK macroses before
they're used.
2023-01-18 22:58:35 +01:00
Andrei Kortunov
0864d997d0 Add missing includes 2023-01-15 20:09:56 +04:00
Andrei Kortunov
902c48d1bb Rework launcher UI 2023-01-15 12:36:08 +04:00
jvoisin
c90d22f3b2 Replace usage of QRegularExpression::anchoredPattern with ^ and $
Using `^` and `$` is shorter than `QRegularExpression::anchoredPattern`,
and even allows us in one case to get rid of a trailing `.*`.
2023-01-12 22:52:00 +01:00
Andrei Kortunov
bfcbc2350d Handle UTF-8 in Qt streams in the Qt6-compatible way 2023-01-12 15:39:50 +04:00
Andrei Kortunov
307a60e87c Migrate from QRegExp to more modern QRegularExpression 2023-01-11 11:21:46 +04:00
glassmancody.info
9a4977d334 rain occlusion 2023-01-06 22:23:03 -08:00
Petr Mikheev
1869aeae5c Move some of player controls logic from C++ to Lua 2022-12-28 22:04:19 +01:00
florent.teppe
2c30575b3b CellName is now a RefId, makes more sense that way. 2022-12-27 19:16:21 +01:00
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.
2022-12-09 00:22:08 +00:00
Evil Eye
a648e4cc11 Add option to restore non-MCP Calm spell behaviour 2022-11-23 20:59:37 +01:00
elsid
843753da14
Remove unused includes 2022-10-09 16:44:18 +02:00
elsid
624d8bc931
Support unsigned settings values 2022-10-04 01:34:53 +02:00
clang-format-bot
ddb0522bbf
Apply clang-format to code base 2022-09-22 21:35:26 +03:00