Commit Graph

860 Commits (master)

Author SHA1 Message Date
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
elsid 624d8bc931
Support unsigned settings values 2 years ago
clang-format-bot ddb0522bbf
Apply clang-format to code base 2 years ago
elsid f269406061
Do not wrap emit expresison with parenthesis
To avoid warnings like following after clang-format applied:

apps/launcher/utils/profilescombobox.cpp:85:9: warning: misleading indentation; statement is not part of the previous 'if' [-Wmisleading-indentation]
    emit(signalProfileChanged(mOldProfile, currentText()));
        ^
apps/launcher/utils/profilescombobox.cpp:82:5: note: previous statement is here
    if (index == -1)
    ^
2 years ago
Project579 1a79f098fa Use std::filesystem::create_directories instead of std::filesystem::create_directory to recursively generate directories from the provided path. 2 years ago
Project579 ca14fc00dc Added dedicated functions for conversions between QString and std::filesystem::path. 2 years ago
Project579 c226b35f1f Fix some remaining encoding errors due to std::filesystem transition. 2 years ago
Project579 a13709c510 Replace implicit convertions from std::filesystem::path to std::string with correctly converting functions. 2 years ago
Project579 e5c417c968 Make sure all paths are passed as std::filesystem::path instead of std::string where possible. 2 years ago
psi29a 4ff7f8ddfb Merge branch 'string_viewing' into 'master'
Use string_view in yet more places

See merge request OpenMW/openmw!2348
2 years ago
Andrei Kortunov 3037f190be Implement per-font resolution 2 years ago
Evil Eye 2222b47e3d Make Settings::Manager::getString return a reference 2 years ago
mpeco aa57d04b54 functor-based Qt signal-slot syntax launcher 2 years ago
psi29a 5aa1ab2c62 Merge branch 'clean_includes' into 'master'
Cleanup includes

See merge request OpenMW/openmw!2307
2 years ago
psi29a 4078f19c74 Merge branch 'SHADER_HOT_RELOAD' into 'master'
Shaders: Hot reload, togglable by lua debug command

See merge request OpenMW/openmw!2238
2 years ago
elsid 73f885db0e
Cleanup includes 2 years ago
Andrei Kortunov c3d3f3140b Allow to change font settings in the launcher 2 years ago
Andrei Kortunov 43f552f48f Allow users to decide if they need to import bitmap fonts 2 years ago
florent.teppe df69fc7659 Post processing shaders now use the same lua commands, no more launcher option to enable live reload 2 years ago
elsid 8b8e4f78b6
Support cylinder and rotating box collision shape types for actors
Cylinder collision shape should give the best consistency between physics
simulation and pathfinding. Rotating box is already used by some actors, so
add it to have the same collision shape type for all actors.
2 years ago
Ivan Beloborodov f960e30d01 Implement Add switch for armor degradation fix. #6888 2 years ago
glassmancody.info fd4966f77a temporary fix for auto exposure 2 years ago
Andrei Kortunov 4b257e496e Use static settings map for launcher and editor - the Settings::Manager has a static data anyway 3 years ago
Cody Glassman 24749b066c Add sky blending to launcher 3 years ago
elsid 9cda505ef3
Add missing save for a setting in launcher 3 years ago
elsid 4ecee2e167
Avoid using reserved identifier in the global namespace
apps/launcher/datafilespage.cpp:762:12: warning: declaration uses identifier '_reloadCellsMutex', which is reserved in the global namespace [bugprone-reserved-identifier]
std::mutex _reloadCellsMutex;
           ^~~~~~~~~~~~~~~~~
           reloadCellsMutex

apps/openmw/mwgui/journalwindow.cpp:86:103: warning: declaration uses identifier '_sender', which is reserved in the global namespace [bugprone-reserved-identifier]
        void adviseButtonClick (char const * name, void (JournalWindowImpl::*Handler) (MyGUI::Widget* _sender))
                                                                                                      ^~~~~~~
                                                                                                      sender

apps/openmw/mwgui/journalwindow.cpp:92:100: warning: declaration uses identifier '_sender', which is reserved in the global namespace [bugprone-reserved-identifier]
        void adviseKeyPress (char const * name, void (JournalWindowImpl::*Handler) (MyGUI::Widget* _sender, MyGUI::KeyCode key, MyGUI::Char character))
                                                                                                   ^~~~~~~
                                                                                                   sender
3 years ago
AnyOldName3 6609243c87 Merge branch 'dont_notice_me_launcher_senpai' into 'master'
Don't load content entries from global and local configs

Closes #6441

See merge request OpenMW/openmw!2068
3 years ago
Evil Eye 478ad07607 Only load global cfg if local wasn't found 3 years ago
elsid 7e6c13630a Use target_precompile_headers for the most expensive headers 3 years ago
Evil Eye c081b8cfa9 Don't load content entries from global and local configs 3 years ago
elsid 10fbf170a2
Reduce number of includes for boost/program_options 3 years ago
Petr Mikheev 3bf18c601c Better fog 3 years ago
psi29a aeed99ca2c Merge branch 'clean_qt_headers' into 'master'
Clean up Qt includes

See merge request OpenMW/openmw!2027
3 years ago
Alexei Kotov a8e409deef Make launcher viewing distance setup more precise 3 years ago
jvoisin 8b9ed57348 Clean up Qt includes 3 years ago
psi29a bf8cc36645 Merge branch 'camera_settings' into 'master'
In-game camera settings

Closes #6715

See merge request OpenMW/openmw!1924
3 years ago
psi29a bb0dad7c08 Update to C++20 and see if our CI can handle it. 3 years ago
Petr Mikheev 65efd6f1c2 Remove from settings.cfg camera settings that are controlled from Lua 3 years ago
ζeh Matt d5ec959449
Create platform component for platform specific things 3 years ago
Alexei Kotov d840f4e995 Launcher: Stop making redundant setting changes 3 years ago
cody glassman 04843fed6d moddable post-processing pipeline 3 years ago
cody glassman ad139f2f9a rename to windowed fullscreen 3 years ago
cody glassman 05901a2480 add borderless windows, deprecate fullscreen mode 3 years ago
fredzio bab5e56768 Make the launcher dara directory and bsa list play nicer with dark
themes.

Known issue: the padding icon for disabled data directories is of wrong
color.
3 years ago
Frederic Chardon ad1ab1c880 Follow up to !192 3 years ago
fredzio b88d32ff5b Add 3 tabs in the "Data Files" page
1 with the data directories
2 with the BSA archives
3 with the content selector

When user select a directory to be added, first we walk the directory
hierarchy to make a list of all potential data= entries. If we find
none, the selected directory is added.

If more than one data directory is found, user is presented with a
directory list to check which one(s) are to be added.

Directories containing one or more content file are marked with an icon.

data= and fallback-archive= lines are handled like content= lines:
- they are part of the profile in launcher.cfg, prefixed by the profile
name
- they are updated in openmw.cfg when profile is selected / created

Directories can be moved in the list by drag and drop or by buttons.
Insertion is possible anywhere in the list.
Global data path and data local are shown but are greyed out, as they
are always included.

No attempt is made to ensure that the user choice are valid
(dependencies, overwrite of content).

After a profile is loaded, any added content is highlighted in green.
3 years ago
psi29a 4575df957e Merge branch 'issue-6685' into 'master'
issue 6685 - wizard failure if config dir does not exist

See merge request OpenMW/openmw!1735
3 years ago
Eris Caffee ba57d0651f issue 6685 - wizard failure if config dir does not exist 3 years ago
Eris Caffee db84d9e649 Issue 2766 Warn user of old MW version detected 3 years ago
elsid 7038c82690
Configure mav navmeshdb file size from the launcher 3 years ago
elsid 1baee5ddba
Add check box to remove unused tiles 3 years ago
elsid 2d5ccc804b
Exchange binary messages between navmeshtool and launcher 3 years ago
elsid a21c17ab26
Use crash catcher in launcher 3 years ago
Petr Mikheev a453e5c198 Reuse the same code to load settings in apps/openmw, apps/launcher, apps/opencs 3 years ago
Bret Curtis 74e7cfc023 remove unused includes: part1
remove unused imports: part2

revert one tidy we will keep for c++20
3 years ago
Bret Curtis d1fb854521 move most of the files from esm to esm3, keep common code in esm; this is make space for a future with esm4
esm typo

esm typo
3 years ago
Cody Glassman 8ec0a52605 Toggable day night switch (#5928) 3 years ago
elsid ed3286994c
Fix ASAN error: heap-use-after-free
=================================================================
==20931==ERROR: AddressSanitizer: heap-use-after-free on address 0x607000206030 at pc 0x7fc8b0f3a72b bp 0x7ffcee176860 sp 0x7ffcee176008
READ of size 13 at 0x607000206030 thread T0
    #0 0x7fc8b0f3a72a in __interceptor_strlen /build/gcc/src/gcc/libsanitizer/sanitizer_common/sanitizer_common_interceptors.inc:389
    #1 0x562e069a0af7 in QString::fromUtf8(char const*, int) /usr/include/qt/QtCore/qstring.h:706
    #2 0x562e069a0af7 in Launcher::AdvancedPage::AdvancedPage(Config::GameSettings&, QWidget*) /home/elsid/dev/openmw/apps/launcher/advancedpage.cpp:29
    #3 0x562e06959613 in Launcher::MainDialog::createPages() /home/elsid/dev/openmw/apps/launcher/maindialog.cpp:127
    #4 0x562e069691d2 in Launcher::MainDialog::setup() /home/elsid/dev/openmw/apps/launcher/maindialog.cpp:228
    #5 0x562e06969d88 in Launcher::MainDialog::showFirstRunDialog() /home/elsid/dev/openmw/apps/launcher/maindialog.cpp:188
    #6 0x562e06957025 in main /home/elsid/dev/openmw/apps/launcher/main.cpp:35
    #7 0x7fc8ad0d9b24 in __libc_start_main (/usr/lib/libc.so.6+0x27b24)
    #8 0x562e0690fced in _start (/home/elsid/dev/openmw/build/gcc/asan/openmw-launcher+0x56ced)

0x607000206030 is located 16 bytes inside of 64-byte region [0x607000206020,0x607000206060)
freed by thread T0 here:
    #0 0x7fc8b0fb3f19 in __interceptor_free /build/gcc/src/gcc/libsanitizer/asan/asan_malloc_linux.cpp:127
    #1 0x7fc8b0de3388  (/usr/lib/libopenal.so.1+0x40388)

previously allocated by thread T0 here:
    #0 0x7fc8b0fb4fd6 in __interceptor_posix_memalign /build/gcc/src/gcc/libsanitizer/asan/asan_malloc_linux.cpp:226
    #1 0x7fc8b0e379cb  (/usr/lib/libopenal.so.1+0x949cb)

SUMMARY: AddressSanitizer: heap-use-after-free /build/gcc/src/gcc/libsanitizer/sanitizer_common/sanitizer_common_interceptors.inc:389 in __interceptor_strlen
Shadow bytes around the buggy address:
  0x0c0e80038bb0: 00 00 00 00 00 00 00 00 00 fa fa fa fa fa 00 00
  0x0c0e80038bc0: 00 00 00 00 00 00 00 fa fa fa fa fa 00 00 00 00
  0x0c0e80038bd0: 00 00 00 00 00 fa fa fa fa fa 00 00 00 00 00 00
  0x0c0e80038be0: 00 00 02 fa fa fa fa fa 00 00 00 00 00 00 00 00
  0x0c0e80038bf0: 02 fa fa fa fa fa fd fd fd fd fd fd fd fd fa fa
=>0x0c0e80038c00: fa fa fa fa fd fd[fd]fd fd fd fd fd fa fa fa fa
  0x0c0e80038c10: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
  0x0c0e80038c20: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
  0x0c0e80038c30: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
  0x0c0e80038c40: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
  0x0c0e80038c50: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
Shadow byte legend (one shadow byte represents 8 application bytes):
  Addressable:           00
  Partially addressable: 01 02 03 04 05 06 07
  Heap left redzone:       fa
  Freed heap region:       fd
  Stack left redzone:      f1
  Stack mid redzone:       f2
  Stack right redzone:     f3
  Stack after return:      f5
  Stack use after scope:   f8
  Global redzone:          f9
  Global init order:       f6
  Poisoned by user:        f7
  Container overflow:      fc
  Array cookie:            ac
  Intra object redzone:    bb
  ASan internal:           fe
  Left alloca redzone:     ca
  Right alloca redzone:    cb
  Shadow gap:              cc
==20931==ABORTING
3 years ago
elsid 8fedca5780
Fix navmesh cache progress bar jumps
When initial approximation of maximum progress based on numer of cells is too
high comparing to real number of navmesh tiles.
3 years ago
elsid 9e0451c714
Support navmesh generation from launcher 3 years ago
Thomas Lowe f50cbcad81 * AA combo box no longer disables the AA alpha test checkbox.
* Updated AA alpha test description to be more accurate
3 years ago
Thomas Lowe 4f77c18af4 Removed unneeded signal. 3 years ago
Thomas Lowe 5f355a14cd Changed default setting for anti-alias alpha test to true.
Added checkbox in advanced page for anti-alias alpha test, connected to AA combobox in the graphics page.
3 years ago
psi29a 5c5c71778a Merge branch 'circular' into 'master'
Consistently sort content files

See merge request OpenMW/openmw!1350
3 years ago
Alexei Kotov 5afd6b0e46 Merge branch 'adding_settingint_methods' into 'master'
Adding saveSettingInt() and loadSettingInt()

See merge request OpenMW/openmw!1167
3 years ago
psi29a 5836d0225f Merge branch 'leave_butter_to_soften' into 'master'
Soft Particles (#6128)

See merge request OpenMW/openmw!980
3 years ago
Evil Eye a3e039d862 Explicitely sort by file name after adding all data dirs 3 years ago
glassmancody.info 4461366761 settings update and launcher option 3 years ago
Petr Mikheev 37386f417e Support *.omwscripts in openmw-launcher 3 years ago
elsid 18d3102148
Do not use union to access FIXED_STRING<4> as int
https://en.cppreference.com/w/cpp/language/union:
> It's undefined behavior to read from the member of the union that wasn't most recently written.
3 years ago
pi03k e4eeb9cce9 Remove 'no relevant classes' moc warning 3 years ago
Thunderforge 42ce22f568 Adding saveSettingInt() and loadSettingInt()
Convenience methods for saving and loading integer settings. Versions for QSpinBox and QComboBox are included. Right now, only simple settings are used for it; we have some additional settings that include validation that aren't using these new methods.
3 years ago
elsid e9b8933b2f
Do no link binaries with Qt where it's not used
Define components_qt static library with all qt dependent components that also
depends on other components. Link only cs, wizard and launcher with qt
dependent components.
3 years ago
glassmancody.info 166e23a6d9 fix CI artifacts, missing header 3 years ago
psi29a b92c6985cd Merge branch 'auto_in_most_apps' into 'master'
Using auto keyword in most apps

See merge request OpenMW/openmw!885
3 years ago
psi29a 7d7427015e Merge branch 'removing_unused_launcher_imports' into 'master'
Removing unused imports in the Launcher

See merge request OpenMW/openmw!884
3 years ago
Cédric Mocquillon 1051745f29 [Launcher] Add new setting 'allow zooming' to advanced tab in the launcher 3 years ago
elsid 4259f7f230
Add setting to enable/disabled notification for saved screenshots 4 years ago
Evil Eye b2acb322af Merge branch 'modernize_use_override_for_most_apps' into 'master'
Using override keyword in most apps

See merge request OpenMW/openmw!886
4 years ago
Thunderforge 89950e5528 Preventing type conversion of double to float for objectPagingMinSize 4 years ago
Thunderforge 9f2f5174d4 Adding Object Paging Min Size combo box to Advanced -> Visuals
Requested in Discord by CMAugust and hammered out with a few other users.
4 years ago
Thunderforge efcdb2dfdd Using override keyword in most apps
Detected by clang-tidy's modernize-use-override

Future MRs can be created to run this on OpenMW and OpenMW CS
4 years ago
Thunderforge ded7bd92e6 Using auto keyword in most apps
Detected by clang-tidy's modernize-use-auto
4 years ago
Thunderforge 6ba23a028c Removing unused imports in the Launcher 4 years ago
Thunderforge 4a15868c0e Moving Lighting Method from Advanced -> Visuals to Graphics -> Lighting
The plan is to add additional options to this new tab, and since it's of similar status as the Shaders settings, it makes sense to put them next to them on the Graphics page.
4 years ago
psi29a 4bc7012104 Merge branch 'pack-default-settings' into 'master'
Pack default settings

Closes #5925

See merge request OpenMW/openmw!822
4 years ago
AnyOldName3 09f39b29f0 Load defaults.bin instead of settings-default.cfg. Do not decode yet. 4 years ago
AnyOldName3 92325976e9 Update documentation to refer to defaults.bin 4 years ago
Thunderforge ead51784dc [Launcher] Replacing static method access through instances
This addresses the Clang Tidy check [readability-static-accessed-through-instance](https://clang.llvm.org/extra/clang-tidy/checks/readability-static-accessed-through-instance.html). It also simplifies the code by reducing the number of parameters we're passing around.
4 years ago
psi29a b10a817f7e Merge branch 'useuless_launcher' into 'master'
Remove some useless includes from the launcher

See merge request OpenMW/openmw!775

(cherry picked from commit a84bd643b334eb6ac715681c497184ac22212ced)

d3fff8cf Remove some useless includes from the launcher
4 years ago
Simon Meulenbeek cd419256ad don't forget to close the audio device after you're done with it. 4 years ago
Andrei Kortunov 33b8233887 Validate GUI scaling and place it to the launcher 4 years ago
psi29a f1cfdafd4d Merge branch 'why_are_the_christmas_lights_still_up' into 'master'
Remove 8 light limit and add configurable lighting enhancements

See merge request OpenMW/openmw!618
4 years ago
glassmancody.info 582f7b52cf Merge remote-tracking branch 'upstream/master' into why_are_the_christmas_lights_still_up 4 years ago
glassmancody.info 9e80091aff clear up force shaders and make it less convoluted 4 years ago
glassmancody.info d4e7d25d14 Make life not suck for whoever wants to edit lighting shaders 4 years ago
glassmancody.info 4ba473b684 Finalize settings, torch fix 4 years ago
elsid 634556be9d
Add setting to allow following creatures to find path over water surface 4 years ago
Andrei Kortunov b96929f3fc Avoid division by zero 4 years ago
Simon Meulenbeek 75b4871bab Add Audio settings to openmw-launcher 4 years ago
Alexei Dobrohotov 7be7af13d7 Downgrade FOV-dependent view distance factor to a recommendation 4 years ago