1
0
Fork 0
mirror of https://github.com/OpenMW/openmw.git synced 2025-07-20 04:44:07 +00:00
Commit graph

23321 commits

Author SHA1 Message Date
Andrew Lanzone
f67aae086a Improve scrolling in list windows and fix a crash in a few menus when no items are selectable 2025-05-26 23:07:20 -07:00
Andrew Lanzone
274434e0d6 Add controller support to travel window 2025-05-26 22:52:10 -07:00
Andrew Lanzone
14b0c9afbe Add controller support to barter window 2025-05-26 21:08:05 -07:00
Aussiemon
d2f1eeff98 Prevent hard freeze when camera receives invalid inputs from Lua 2025-05-26 07:22:10 +00:00
Andrew Lanzone
71fd8b8840 Add controller support to spell buying and training windows 2025-05-25 23:14:13 -07:00
Andrew Lanzone
cd745c7df3 Swap some controller button assignments 2025-05-25 22:51:43 -07:00
Andrew Lanzone
25fa9484d3 Add a default save game name in controller mode 2025-05-25 22:08:43 -07:00
Andrew Lanzone
d6ed416402 Allow pinning map window in controller mode 2025-05-25 16:12:19 -07:00
uramer
fa3e8ea74d Prevent conflicts between UI layer insertions 2025-05-25 12:32:29 +02:00
Andrew Lanzone
d6c23f7664 Add controller support to map's node dialog 2025-05-24 21:28:43 -07:00
Andrew Lanzone
cf26020ed6 Fix several minor issues with controller inventory menus 2025-05-24 20:56:43 -07:00
Andrew Lanzone
3eec24b2a6 Limit the size of controller-focused inventory windows on large screens 2025-05-24 20:08:45 -07:00
Andrew Lanzone
f1c34ea7b1 Add a tab bar above inventory to show active tab and change tabs with mouse 2025-05-24 16:00:13 -07:00
Andrew Lanzone
d759418f01 Add controller support for all four inventory menus 2025-05-24 14:17:41 -07:00
psi29a
8a10de5fed Merge branch 'kaamatan-seminggu-lagi-8165' into 'master'
Remove redundant activate check in `activateBy` #8165

See merge request OpenMW/openmw!4690
2025-05-24 12:35:09 +00:00
Kuyondo
86783e8758 also for creatures 2025-05-23 23:46:42 +08:00
Kuyondo
2df7ded814 respawning npc respawns in origin cell 2025-05-23 18:15:24 +08:00
psi29a
42ca8e31eb Merge branch 'equipunequip' into 'master'
Allow equip attach/detach keys to coincide with the start key

See merge request OpenMW/openmw!4691
2025-05-23 07:26:58 +00:00
Aussiemon
192cf1535b Fix second instance of mPickpocketDetected set after use 2025-05-22 16:10:05 -06:00
Aussiemon
b5aaf4ca30 Fix mPickpocketDetected flag being set after use 2025-05-22 16:03:52 -06:00
Alexei Kotov
e3daff7b17 Support extended selection in the directory picker (#8113) 2025-05-22 15:49:54 +03:00
Alexei Kotov
e8b0ee874f Launcher: Reload cells after a short delay (#8478) 2025-05-22 15:42:56 +03:00
Alexei Kotov
9387f50f77 Allow equip attach/detach keys to coincide with the start key 2025-05-22 04:53:34 +03:00
elsid
0fc22b2b2d
Check selected files existence in the reload cells thread
This reduces UI reponse time.
2025-05-21 22:11:22 +02:00
Kuyondo
30da6dc508 allow activateBy to trigger handlers 2025-05-22 02:45:29 +08:00
Andrew Lanzone
5e3a49ade5 Make right stick scroll dialog history 2025-05-20 22:41:17 -07:00
Andrew Lanzone
ba0a579371 Play correct sound and update button overlay when swapping between menus 2025-05-20 19:32:13 -07:00
Andrew Lanzone
23c733ef94 Use wrap helper function to simplify some controller handler logic 2025-05-20 00:27:14 -07:00
Andrew Lanzone
f03f242e4a Allow controller to select choice text in dialogue 2025-05-20 00:12:34 -07:00
Andrew Lanzone
f36401438f Move wrap function to windowbase so all windows can use it 2025-05-19 23:43:28 -07:00
Andrew Lanzone
0aad0d379a Minimal controller support for dialog window 2025-05-18 22:45:22 -07:00
Andrew Lanzone
a144793753 Fix Y button changing character 2025-05-18 22:45:03 -07:00
Andrew Lanzone
f80d46dc94 Add controller support to count dialog 2025-05-18 15:34:22 -07:00
Andrew Lanzone
f15cc663ae Remove old way of listening for gamepad mouse events 2025-05-18 01:42:11 -07:00
Andrew Lanzone
33a6189f7a Consolidate all gamepad cursor listening in controllermanager 2025-05-18 01:27:38 -07:00
Andrew Lanzone
e01291ec4a Add whole set of button icons 2025-05-17 22:32:03 -07:00
Andrew Lanzone
c0694d3c0e Add overlay showing what controller buttons do 2025-05-16 21:41:28 -07:00
Andrew Lanzone
8c2ecc2a88 Allow LT and RT to toggle between open gui windows 2025-05-15 00:46:02 -07:00
Andrew Lanzone
f055ccf5ba Update item view to allow controller support; test it in Container menu 2025-05-14 02:31:32 -07:00
psi29a
0251b7c820 Merge branch 'uneventful' into 'master'
Don't trigger cell change logic when the player isn't changing cells

Closes #8469

See merge request OpenMW/openmw!4657
2025-05-13 20:30:28 +00:00
Andrew Lanzone
77e17743f7 Only use bumpers to turn pages in books 2025-05-12 22:37:11 -07:00
Andrew Lanzone
65bab3858a Add basic controller support to scrolls 2025-05-12 22:36:28 -07:00
Andrew Lanzone
9a72ecb61c Don't close a book with A 2025-05-12 20:32:59 -07:00
Andrew Lanzone
9aff9cb48e Swap Topics and Quests buttons 2025-05-12 20:31:15 -07:00
Andrew Lanzone
07be682b88 Better controller support for journal; mouse for topic index A-Z 2025-05-12 20:10:13 -07:00
Andrew Lanzone
fa52fea59b Better joystick/mouse coordination in save game diaglog 2025-05-12 20:09:24 -07:00
Andrew Lanzone
a78bdee941 Reset selected button when confirmation dialog is reopened 2025-05-12 20:08:47 -07:00
Andrew Lanzone
4bad7a3074 Update character creation controller support to work better with gamepad mouse mode 2025-05-12 02:20:28 -07:00
Andrew Lanzone
83162477ec Basic controller support for all character creation windows 2025-05-12 01:34:28 -07:00
Andrew Lanzone
c4a87cfe4d Fix selecting saves with mouse controller 2025-05-11 22:59:11 -07:00
Andrew Lanzone
8f415ceab6 Convert UI widgets to local scrollbar implementation 2025-05-11 22:30:58 -07:00
Andrew Lanzone
b2620c861a Add scrollbar override to capture mouse hover events 2025-05-11 22:24:05 -07:00
Andrew Lanzone
5e7761bef1 Add controller support to text input menu 2025-05-11 14:56:58 -07:00
Andrew Lanzone
1e200ed048 Add controller support to race menu 2025-05-11 14:48:42 -07:00
Andrew Lanzone
c9ce93a22f Controller menus: don't wrap focus when only two buttons 2025-05-11 13:48:50 -07:00
Andrew Lanzone
4c5db612f0 Improve controller support for confirmation dialogs by highlighting selected choice 2025-05-11 00:32:29 -07:00
Andrew Lanzone
3b42d02cfc Add controller support to message boxes 2025-05-11 00:20:31 -07:00
Andrew Lanzone
80166cddd0 Make main menu honor controller mouse clicks 2025-05-11 00:19:01 -07:00
Andrew Lanzone
be298f78cb Basic controller support for the books 2025-05-10 23:17:23 -07:00
Andrew Lanzone
bb88becc2b Basic controller support for the journal 2025-05-10 22:50:16 -07:00
Andrew Lanzone
58c4e0ddf7 Minimal controller bindings for save/load window 2025-05-10 01:41:53 -07:00
Andrew Lanzone
2970913d55 Minimal controller bindings for settings window 2025-05-09 23:44:06 -07:00
Andrew Lanzone
fc86878922 Allow exiting credits by pressing B 2025-05-09 23:43:29 -07:00
Andy Lanzone
b4e0590a10
Merge branch 'OpenMW:master' into master 2025-05-09 22:57:21 -07:00
Andrew Lanzone
a8824b46a8 Add first batch of controller-enabled windows 2025-05-09 22:56:04 -07:00
Evil Eye
9ea1afedcc Merge branch 'baiki-isActive-kembalikan-bool' into 'master'
self:isActive() returns bool

See merge request OpenMW/openmw!4663
2025-05-09 15:17:08 +00:00
thagberg
883f9e5049 Fix anti-aliasing on macOS
Blitting to the resolve FBO in OSG::RenderStage was causing a GL_INVALID_FRAMEBUFFER_OPERATION due to a mismatch in attached colorbuffers between the FBOs bound in read and draw slots. This was because the normal attachment was invariantly attached to FBO_Interrupt, but not to other FBOs.
2025-05-07 16:31:22 -04:00
Kuyondo
77bd2250b0 isactive return bool now 2025-05-07 11:24:09 +08:00
Evil Eye
d1196ea667 Ignore resistances for base diseases 2025-05-06 20:09:48 +02:00
Andrew Lanzone
71aa11404c Add checkbox to enable controller menus to openmw launcher. 2025-05-05 22:47:55 -07:00
elsid
4a18c23e2d
Wait for the reloading cells thread on DataFilesPage destruction
Run a single thread and notify it when it has to reload cells.
2025-05-04 21:59:49 +02:00
Evil Eye
87014016a2 Stop postponing physics for objects that _don't_ have physics 2025-05-03 17:25:27 +02:00
Evil Eye
57c40bc052 Don't trigger cell change logic when the player isn't changing cells 2025-05-03 16:26:39 +02:00
elsid
b5f8a0ecdb
Fix warning: -Wstring-compare
In file included from ../../../components/esm/defs.hpp:7,
                 from ../../../apps/components_tests/esm/test_fixed_string.cpp:1:
In function 'bool ESM::operator==(const FixedString<capacity>&, const char (&)[rhsSize]) [with long unsigned int capacity = 4; long unsigned int rhsSize = 12]',
    inlined from 'virtual void {anonymous}::EsmFixedString_empty_strings_Test::TestBody()' at ../../../apps/components_tests/esm/test_fixed_string.cpp:82:13:
../../../components/esm/esmcommon.hpp:142:85: error: 'int strncmp(const char*, const char*, size_t)' of strings of length 0 and 4 and bound of 4 evaluates to nonzero [-Werror=string-compare]
  142 |         return strnlen(rhs, rhsSize) == strnlen(lhs.mData, capacity) && std::strncmp(lhs.mData, rhs, capacity) == 0;
      |                                                                         ~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
2025-04-28 22:07:00 +02:00
Alexei Kotov
55107e0913 Merge branch 'idle_select_to_group_name' into 'master'
Use string_view for sIdleSelectToGroupName

See merge request OpenMW/openmw!4646
2025-04-28 03:02:17 +03:00
Alexei Kotov
58fcc8f66d Require a non-empty argument in ShowMap (#8466) 2025-04-26 13:29:01 +03:00
elsid
fc4cc3255d
Do not build navmeshtool translation units twice 2025-04-24 23:03:07 +02:00
elsid
f487a6332b
Use string_view for sIdleSelectToGroupName 2025-04-24 23:01:30 +02:00
Kindi
0247082e19 fix signedness, remove extra semicolon, update offer 2025-04-24 20:24:55 +08:00
Sam Kaufman
1948ab21f7 Set SDL_HINT_MAC_OPENGL_ASYNC_DISPATCH.
This fixes bugs #8225 and #8462.
2025-04-23 20:33:56 -07:00
Kindi
4b94b6f678 also update draganddrop and trade items 2025-04-23 21:19:52 +08:00
elsid
626d7b2282
Add missing TargetPolygonNotFound enum value to lua bindings 2025-04-21 16:36:19 +02:00
Kindi
bdf025a532 also update companion window and tradewindow 2025-04-21 19:33:31 +08:00
Kindi
a9870bbcde update container window when item is added or removed 2025-04-21 19:33:22 +08:00
Kindi
15ceee4b1a also update companion window and tradewindow 2025-04-21 19:29:57 +08:00
Kindi
0547f09bf0 update container window when item is added or removed 2025-04-21 19:29:57 +08:00
Evil Eye
05c624bc34 Merge branch 'rm_using_namespace_fallback' into 'master'
Remove redundant using namespace Fallback

See merge request OpenMW/openmw!4638
2025-04-21 08:39:48 +00:00
Aussiemon
22c01b22c1 Clang format 2025-04-19 23:06:30 -06:00
Aussiemon
085e5d1988 Calculate spell cost when building buying window 2025-04-19 22:31:58 -06:00
elsid
042c4b2b9d
Use static_assert for compile time check 2025-04-18 14:38:23 +02:00
elsid
0d5e9ef85f
Remove redundant using namespace Fallback
C++ has ADL to find overloads. using namespace does nothing in this
case.
2025-04-18 12:27:37 +02:00
psi29a
87d77a6882 Merge branch 'rippleshaders' into 'master'
Fix crash if ripple pipeline shaders are unavailable

See merge request OpenMW/openmw!4622
2025-04-17 09:26:12 +00:00
AnyOldName3
31fcc5e126 Add test for new ReadersCache functions 2025-04-11 17:30:56 +01:00
Alexei Kotov
ec77ec299d Rescale the base travel cost by the number of followers (#8446)
Rather than the offered price.
2025-04-10 16:24:36 +03:00
psi29a
ea8369eff0 Merge branch 'dont-redraw-the-whole-gui-every-time-we-change-the-tiniest-thing' into 'master'
Be more careful when we tell Qt that data has changed

Closes #8405

See merge request OpenMW/openmw!4621
2025-04-09 11:19:32 +00:00
AnyOldName3
096759435a Add progress bars where the launcher can be limited by IO
I tested this with a USB3 external hard drive.

These two places were the only ones where we're IO-bound and block the main thread, so they're the only ones that need progress bars.

If trying to replicate this test, then it's important to unplug the hard drive between each repeat.
Apparently Windows is excellent at disk caching these days as it takes a minute and a half to start the launcher with Total Overhaul on this drive when it's just been plugged in, but less time than the first launch after a reboot on an NVME drive once the cache has been warmed up.
2025-04-09 01:36:52 +01:00
psi29a
428044abe2 Merge branch 'moveoutalready' into 'master'
Open the data directory file picker at the last opened location

Closes #8426

See merge request OpenMW/openmw!4606
2025-04-07 11:04:26 +00: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
0c4c202998 Merge branch 'ifavideofallsintheforest' into 'master'
Pause menu video playback when OpenMW is minimized

Closes #8441

See merge request OpenMW/openmw!4625
2025-04-07 11:03:37 +00:00
Alexei Kotov
8419116cae Fix crash if ripple pipeline shaders are unavailable 2025-04-07 03:31:32 +03:00
psi29a
8a0f513094 Merge branch 'fix_clang_tidy' into 'master'
Fix clang tidy checks

See merge request OpenMW/openmw!4619
2025-04-06 17:54:20 +00:00
Evil Eye
1667b11564 Pause menu video playback when OpenMW is minimized 2025-04-06 19:42:04 +02:00
psi29a
b29d89bd6a Merge branch 'enchantment404' into 'master'
Allow referenced enchantments to be missing on equipped items

See merge request OpenMW/openmw!4617
2025-04-06 16:06:10 +00:00
Evil Eye
d826962eaa Don't assume unresolved containers contain no visible items 2025-04-06 11:02:31 +02:00
AnyOldName3
7bad2864d9 Reuse QIcon
This saves more than 15% of launcher startup time on my machine (after the prior improvements - it's way less without those)
2025-04-06 02:40:42 +01:00
elsid
7c45a564a1
Fix clang-analyzer-deadcode.DeadStores 2025-04-05 12:55:17 +02:00
Evil Eye
15f4368fe6 Account for creatures not having a model in more places 2025-04-05 10:19:50 +02:00
Kindi
a5580718f7 clangformat 2025-04-05 11:26:34 +08:00
Alexei Kotov
065a388632 Allow enchantments to be missing on equipped items 2025-04-05 01:10:41 +03:00
Kindi
71a6b26b4f add missing semicolon, add leading whitespace, 2025-04-04 19:47:47 +08:00
Kindi
0a49c5f71e show global script variables in showVars 2025-04-04 15:36:01 +08:00
Kindi
0eb2ced072 update spell windows after selecting spell using quickkey 2025-04-04 12:58:07 +08:00
Alexei Kotov
468724075e Restore 0.45.0 pin button visibility conditions (#8437) 2025-04-03 11:09:50 +03:00
Evil Eye
86426aa87b Open the data directory file picker at the last opened location 2025-03-31 17:11:09 +02:00
elsid
a61ce111a5
Remove declaration without definition 2025-03-31 00:28:06 +02: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
Alexei Kotov
652113c46d Don't enable water collision when collision is disabled (#8414) 2025-03-24 21:26:37 +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
Evil Eye
73811b45b1 Clarify the resetInitialPosition loop 2025-03-23 21:44:04 +01:00
Evil Eye
88cac9b0fa Reset initial wander position when commanding actors and don't create return packages when stacking actual ai packages 2025-03-23 18:25:20 +01:00
psi29a
d13f108779 Merge branch 'nbsp' into 'master'
Non-breaking space-related fixes (#8378)

Closes #8378

See merge request OpenMW/openmw!4592
2025-03-23 16:27:07 +00:00
Alexei Kotov
7fb5d4f47a Inform the player about both resting hindrances (#8408) 2025-03-23 03:38:21 +03: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
Alexei Kotov
d6916c35bc Only print the player name if it doesn't match the profile 2025-03-21 04:10:52 +03:00
Alexei Kotov
8634b6c3ac Revise saved game dialog save info layout (#8313) 2025-03-21 03:18:32 +03:00
psi29a
241a24564a Merge branch 'doubleexit' into 'master'
Don't assume there is a GUI mode in exitCurrentGuiMode (#8380)

Closes #8380

See merge request OpenMW/openmw!4590
2025-03-18 13:16:23 +00:00
Alexei Kotov
cd3980eca4 Make figure space non-breaking 2025-03-18 10:29:29 +03:00
Alexei Kotov
b5a2a4e52d Render no-break space in books, don't consider narrow NBSP breaking 2025-03-17 22:03:38 +03:00
Alexei Kotov
887e1c04ef Spell buying window layout tweaks 2025-03-16 13:53:43 +03:00
Alexei Kotov
4db41c2111 Merchant repair menu layout tweaks 2025-03-16 13:16:59 +03:00
Alexei Kotov
e4ae0c9a95 Don't assume there is a GUI mode in exitCurrentGuiMode (#8380) 2025-03-16 09:06:01 +03:00
Evil Eye
2b5d076ff8 Merge branch 'followmeifyouwanttohit' into 'master'
Don't use attack strength as "hit ready" flag

See merge request OpenMW/openmw!4583
2025-03-15 12:02:35 +00:00
Alexei Kotov
34a5eb7512 Editor: Account for pixel ratio in instance mode mouse coordinates conversion (#6573) 2025-03-13 20:06:20 +03:00
Alexei Kotov
9f85e51934 Only log ripples pipeline once 2025-03-11 17:37:18 +03:00
Alexei Kotov
569ed4559f Merge branch 'fix_msvc_warnings' into 'master'
Fix msvc warnings

See merge request OpenMW/openmw!4579
2025-03-11 00:55:32 +03:00
Alexei Kotov
5354a5f786 Don't use attack strength as "hit ready" flag
This unbreaks follow animations' strength dependence
2025-03-11 00:44:35 +03:00
psi29a
73bb17009e Merge branch 'getsoundplaying' into 'master'
Don't require a reference for GetSoundPlaying (#8389)

Closes #8389

See merge request OpenMW/openmw!4576
2025-03-10 08:13:23 +00: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
a49a900a7b Merge branch 'fix_lua_teleport' into 'master'
Merge deleted refs when unloading a cell (#8311)

Closes #8311

See merge request OpenMW/openmw!4575
2025-03-09 15:51:01 +03:00
Alexei Kotov
8cb1838c4a Don't require a reference for GetSoundPlaying (#8389) 2025-03-09 00:52:00 +03:00
elsid
f800f63ee5
Merge deleted refs when unloading a cell
To unload objects scheduled to be teleported.
2025-03-08 12:48:28 +01:00
elsid
5776eea1b0
Avoid accessing removed character on deleting last save 2025-03-08 00:34:27 +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
Evil Eye
9bf6a15ff5 Force move the captured string 2025-03-06 17:32:56 +01:00
Alexei Kotov
59edf4750b Fix Travel window header alignment 2025-03-06 01:16:45 +03:00
psi29a
95312139d5 Merge branch 'context_matters' into 'master'
Fix in-game actions not clearing because of input bindings only initializing in menu context

See merge request OpenMW/openmw!4570
2025-03-05 21:18:02 +00:00
Alexei Kotov
918a6352e4 Let cancelled bound item effect remain active for the frame 2025-03-05 23:53:31 +03:00
Alexei Kotov
5b18edf938 Interrupt bound item effect if equipment failed (#8383) 2025-03-05 20:24:02 +03:00
Alexei Kotov
97717e6fce Merge branch 'fix_lua_vfs_crash' into 'master'
Fix crash on LuaManager::clear triggered by vfs (#8370)

Closes #8370

See merge request OpenMW/openmw!4559
2025-03-05 04:51:47 +03:00
uramer
990096ff9b Fix in-game actions not clearing because of input bindings only initializing in menu context 2025-03-04 21:08:26 +01:00
Alexei Kotov
61e2117e9d Remove excessive spacing between travel destination and price 2025-03-04 04:03:37 +03:00
Evil Eye
b0e9df0139 Ensure class members are tied to the main Lua state 2025-03-03 19:37:07 +01:00
Evil Eye
f0cee09b7c Extend lifetime of strings placed on the action queue 2025-03-03 19:36:54 +01:00
Alexei Kotov
6e9d15f91d Merge branch 'keep-menu-actions-after-load' into 'master'
#8365 Keep MENU-registered input actions between games

See merge request OpenMW/openmw!4554
2025-03-03 18:10:12 +00:00
Alexei Kotov
dc3264a3a5 Restore --export-fonts option functionality 2025-03-02 22:33:06 +03:00
elsid
1bb3198b71
Fix crash on LuaManager::clear triggered by vfs
See https://gitlab.com/OpenMW/openmw/-/issues/8370#note_2370896069.

=================================================================
==8699==ERROR: AddressSanitizer: heap-use-after-free on address 0x50800060d4b0 at pc 0x7254de50893e bp 0x7fffa97f9700 sp 0x7fffa97f96f0
READ of size 8 at 0x50800060d4b0 thread T0
    #0 0x7254de50893d  (/home/elsid/dev/LuaJIT/build/gcc/asan/install/lib/libluajit-5.1.so.2+0x6293d) (BuildId: 1249151684379d19b11900f406fea9704a6375cb)
    #1 0x7254de50ccad in lua_rawgeti (/home/elsid/dev/LuaJIT/build/gcc/asan/install/lib/libluajit-5.1.so.2+0x66cad) (BuildId: 1249151684379d19b11900f406fea9704a6375cb)
    #2 0x7254de5d4cab in luaL_unref (/home/elsid/dev/LuaJIT/build/gcc/asan/install/lib/libluajit-5.1.so.2+0x12ecab) (BuildId: 1249151684379d19b11900f406fea9704a6375cb)
    #3 0x5f96378dd1e9 in sol::stateless_reference::deref(lua_State*) const /home/elsid/dev/openmw/extern/sol3/sol/reference.hpp:440
    #4 0x5f96378dd1e9 in sol::basic_reference<false>::deref() const /home/elsid/dev/openmw/extern/sol3/sol/reference.hpp:545
    #5 0x5f96378dd1e9 in sol::basic_reference<false>::~basic_reference() /home/elsid/dev/openmw/extern/sol3/sol/reference.hpp:635
    #6 0x5f96378dd1e9 in sol::basic_object_base<sol::basic_reference<false> >::~basic_object_base() /home/elsid/dev/openmw/extern/sol3/sol/object_base.hpp:33
    #7 0x5f96378dd1e9 in sol::basic_object<sol::basic_reference<false> >::~basic_object() /home/elsid/dev/openmw/extern/sol3/sol/object.hpp:35
    #8 0x5f96378dd1e9 in ~<lambda> /home/elsid/dev/openmw/apps/openmw/mwlua/vfsbindings.cpp:195
    #9 0x5f96378dd1e9 in ~functor_function /home/elsid/dev/openmw/extern/sol3/sol/function_types_stateful.hpp:32
    #10 0x5f96378dd1e9 in destroy_at<sol::function_detail::functor_function<MWLua::initVFSPackage(const Context&)::<lambda(sol::this_state, sol::object)>::<lambda()>, false, true> > /usr/include/c++/14.2.1/bits/stl_construct.h:88
    #11 0x5f96378dd1e9 in destroy<sol::function_detail::functor_function<MWLua::initVFSPackage(const Context&)::<lambda(sol::this_state, sol::object)>::<lambda()>, false, true> > /usr/include/c++/14.2.1/bits/alloc_traits.h:599
    #12 0x5f96378dd1e9 in user_alloc_destroy<sol::function_detail::functor_function<MWLua::initVFSPackage(const Context&)::<lambda(sol::this_state, sol::object)>::<lambda()>, false, true> > /home/elsid/dev/openmw/extern/sol3/sol/stack_core.hpp:460
    #13 0x5f963a31e305 in int sol::detail::trampoline<int (*&)(lua_State*)>(lua_State*, int (*&)(lua_State*)) /home/elsid/dev/openmw/extern/sol3/sol/trampoline.hpp:158
    #14 0x5f963a31e89c in sol::detail::c_trampoline(lua_State*, int (*)(lua_State*)) /home/elsid/dev/openmw/extern/sol3/sol/trampoline.hpp:183
    #15 0x7254de4dc13a  (/home/elsid/dev/LuaJIT/build/gcc/asan/install/lib/libluajit-5.1.so.2+0x3613a) (BuildId: 1249151684379d19b11900f406fea9704a6375cb)
    #16 0x7254de4deac4  (/home/elsid/dev/LuaJIT/build/gcc/asan/install/lib/libluajit-5.1.so.2+0x38ac4) (BuildId: 1249151684379d19b11900f406fea9704a6375cb)
    #17 0x7254de4df1a2  (/home/elsid/dev/LuaJIT/build/gcc/asan/install/lib/libluajit-5.1.so.2+0x391a2) (BuildId: 1249151684379d19b11900f406fea9704a6375cb)
    #18 0x7254de4e1cf2  (/home/elsid/dev/LuaJIT/build/gcc/asan/install/lib/libluajit-5.1.so.2+0x3bcf2) (BuildId: 1249151684379d19b11900f406fea9704a6375cb)
    #19 0x7254de4e2a37  (/home/elsid/dev/LuaJIT/build/gcc/asan/install/lib/libluajit-5.1.so.2+0x3ca37) (BuildId: 1249151684379d19b11900f406fea9704a6375cb)
    #20 0x7254de50f4a4 in lua_gc (/home/elsid/dev/LuaJIT/build/gcc/asan/install/lib/libluajit-5.1.so.2+0x694a4) (BuildId: 1249151684379d19b11900f406fea9704a6375cb)
    #21 0x5f96371f615c in MWLua::LuaManager::clear() /home/elsid/dev/openmw/apps/openmw/mwlua/luamanagerimp.cpp:348
    #22 0x5f96371f91ea in MWLua::LuaManager::noGame() /home/elsid/dev/openmw/apps/openmw/mwlua/luamanagerimp.cpp:397
    #23 0x5f963a1c7170 in MWState::StateManager::cleanup(bool) /home/elsid/dev/openmw/apps/openmw/mwstate/statemanagerimp.cpp:71
    #24 0x5f963a1cabfe in MWState::StateManager::newGame(bool) /home/elsid/dev/openmw/apps/openmw/mwstate/statemanagerimp.cpp:169
    #25 0x5f963a1c7aa4 in MWState::StateManager::update(float) /home/elsid/dev/openmw/apps/openmw/mwstate/statemanagerimp.cpp:761
    #26 0x5f963a230bab in OMW::Engine::frame(unsigned int, float) /home/elsid/dev/openmw/apps/openmw/engine.cpp:238
    #27 0x5f963a2442f3 in OMW::Engine::go() /home/elsid/dev/openmw/apps/openmw/engine.cpp:1032
    #28 0x5f963633b3a7 in runApplication(int, char**) /home/elsid/dev/openmw/apps/openmw/main.cpp:228
    #29 0x5f963b375b45 in Debug::wrapApplication(int (*)(int, char**), int, char**, std::basic_string_view<char, std::char_traits<char> >) /home/elsid/dev/openmw/components/debug/debugging.cpp:457
    #30 0x5f9636331695 in main /home/elsid/dev/openmw/apps/openmw/main.cpp:240
    #31 0x7254db435487  (/usr/lib/libc.so.6+0x27487) (BuildId: 0b707b217b15b106c25fe51df3724b25848310c0)
    #32 0x7254db43554b in __libc_start_main (/usr/lib/libc.so.6+0x2754b) (BuildId: 0b707b217b15b106c25fe51df3724b25848310c0)
    #33 0x5f9636331464 in _start (/home/elsid/dev/openmw/build/gcc/asan/openmw+0x10db464) (BuildId: ac74a52ca60e8913bef6eb6b3b23d6de648cf3c9)

0x50800060d4b0 is located 16 bytes inside of 96-byte region [0x50800060d4a0,0x50800060d500)
freed by thread T0 here:
    #0 0x7254e2afc102 in free /usr/src/debug/gcc/gcc/libsanitizer/asan/asan_malloc_linux.cpp:52
    #1 0x5f963a2f84e7 in LuaUtil::LuaState::trackingAllocator(void*, void*, unsigned long, unsigned long) /home/elsid/dev/openmw/components/lua/luastate.cpp:107
    #2 0x7254de4f7779  (/home/elsid/dev/LuaJIT/build/gcc/asan/install/lib/libluajit-5.1.so.2+0x51779) (BuildId: 1249151684379d19b11900f406fea9704a6375cb)
    #3 0x7254de4de7f3  (/home/elsid/dev/LuaJIT/build/gcc/asan/install/lib/libluajit-5.1.so.2+0x387f3) (BuildId: 1249151684379d19b11900f406fea9704a6375cb)
    #4 0x7254de4e1a9a  (/home/elsid/dev/LuaJIT/build/gcc/asan/install/lib/libluajit-5.1.so.2+0x3ba9a) (BuildId: 1249151684379d19b11900f406fea9704a6375cb)
    #5 0x7254de4e2a37  (/home/elsid/dev/LuaJIT/build/gcc/asan/install/lib/libluajit-5.1.so.2+0x3ca37) (BuildId: 1249151684379d19b11900f406fea9704a6375cb)
    #6 0x7254de50f4a4 in lua_gc (/home/elsid/dev/LuaJIT/build/gcc/asan/install/lib/libluajit-5.1.so.2+0x694a4) (BuildId: 1249151684379d19b11900f406fea9704a6375cb)
    #7 0x5f96371f615c in MWLua::LuaManager::clear() /home/elsid/dev/openmw/apps/openmw/mwlua/luamanagerimp.cpp:348
    #8 0x5f96371f91ea in MWLua::LuaManager::noGame() /home/elsid/dev/openmw/apps/openmw/mwlua/luamanagerimp.cpp:397
    #9 0x5f963a1c7170 in MWState::StateManager::cleanup(bool) /home/elsid/dev/openmw/apps/openmw/mwstate/statemanagerimp.cpp:71
    #10 0x5f963a1cabfe in MWState::StateManager::newGame(bool) /home/elsid/dev/openmw/apps/openmw/mwstate/statemanagerimp.cpp:169
    #11 0x5f963a1c7aa4 in MWState::StateManager::update(float) /home/elsid/dev/openmw/apps/openmw/mwstate/statemanagerimp.cpp:761
    #12 0x5f963a230bab in OMW::Engine::frame(unsigned int, float) /home/elsid/dev/openmw/apps/openmw/engine.cpp:238
    #13 0x5f963a2442f3 in OMW::Engine::go() /home/elsid/dev/openmw/apps/openmw/engine.cpp:1032
    #14 0x5f963633b3a7 in runApplication(int, char**) /home/elsid/dev/openmw/apps/openmw/main.cpp:228
    #15 0x5f963b375b45 in Debug::wrapApplication(int (*)(int, char**), int, char**, std::basic_string_view<char, std::char_traits<char> >) /home/elsid/dev/openmw/components/debug/debugging.cpp:457
    #16 0x5f9636331695 in main /home/elsid/dev/openmw/apps/openmw/main.cpp:240
    #17 0x7254db435487  (/usr/lib/libc.so.6+0x27487) (BuildId: 0b707b217b15b106c25fe51df3724b25848310c0)
    #18 0x7254db43554b in __libc_start_main (/usr/lib/libc.so.6+0x2754b) (BuildId: 0b707b217b15b106c25fe51df3724b25848310c0)
    #19 0x5f9636331464 in _start (/home/elsid/dev/openmw/build/gcc/asan/openmw+0x10db464) (BuildId: ac74a52ca60e8913bef6eb6b3b23d6de648cf3c9)

previously allocated by thread T20 here:
    #0 0x7254e2afc3c2 in realloc /usr/src/debug/gcc/gcc/libsanitizer/asan/asan_malloc_linux.cpp:85
    #1 0x5f963a2f7080 in LuaUtil::LuaState::trackingAllocator(void*, void*, unsigned long, unsigned long) /home/elsid/dev/openmw/components/lua/luastate.cpp:110
    #2 0x7254de4e2fc8  (/home/elsid/dev/LuaJIT/build/gcc/asan/install/lib/libluajit-5.1.so.2+0x3cfc8) (BuildId: 1249151684379d19b11900f406fea9704a6375cb)
    #3 0x7254de4f7476  (/home/elsid/dev/LuaJIT/build/gcc/asan/install/lib/libluajit-5.1.so.2+0x51476) (BuildId: 1249151684379d19b11900f406fea9704a6375cb)
    #4 0x7254de50c456 in lua_newthread (/home/elsid/dev/LuaJIT/build/gcc/asan/install/lib/libluajit-5.1.so.2+0x66456) (BuildId: 1249151684379d19b11900f406fea9704a6375cb)
    #5 0x7254de5d53e5  (/home/elsid/dev/LuaJIT/build/gcc/asan/install/lib/libluajit-5.1.so.2+0x12f3e5) (BuildId: 1249151684379d19b11900f406fea9704a6375cb)
    #6 0x7254de4dc0c5  (/home/elsid/dev/LuaJIT/build/gcc/asan/install/lib/libluajit-5.1.so.2+0x360c5) (BuildId: 1249151684379d19b11900f406fea9704a6375cb)

Thread T20 created by T0 here:
    #0 0x7254e2af44cb in pthread_create /usr/src/debug/gcc/gcc/libsanitizer/asan/asan_interceptors.cpp:245
    #1 0x7254db6e2071 in __gthread_create /usr/src/debug/gcc/gcc-build/x86_64-pc-linux-gnu/libstdc++-v3/include/x86_64-pc-linux-gnu/bits/gthr-default.h:676
    #2 0x7254db6e2071 in std:🧵:_M_start_thread(std::unique_ptr<std:🧵:_State, std::default_delete<std:🧵:_State> >, void (*)()) /usr/src/debug/gcc/gcc/libstdc++-v3/src/c++11/thread.cc:172
    #3 0x5f96380fa2eb in thread<MWLua::Worker::Worker(MWLua::LuaManager&)::<lambda()> > /usr/include/c++/14.2.1/bits/std_thread.h:173
    #4 0x5f96380fa2eb in MWLua::Worker::Worker(MWLua::LuaManager&) /home/elsid/dev/openmw/apps/openmw/mwlua/worker.cpp:18
    #5 0x5f963a23faf4 in std::__detail::_MakeUniq<MWLua::Worker>::__single_object std::make_unique<MWLua::Worker, MWLua::LuaManager&>(MWLua::LuaManager&) /usr/include/c++/14.2.1/bits/unique_ptr.h:1077
    #6 0x5f963a23faf4 in OMW::Engine::prepareEngine() /home/elsid/dev/openmw/apps/openmw/engine.cpp:920
    #7 0x5f963a2413ae in OMW::Engine::go() /home/elsid/dev/openmw/apps/openmw/engine.cpp:952
    #8 0x5f963633b3a7 in runApplication(int, char**) /home/elsid/dev/openmw/apps/openmw/main.cpp:228
    #9 0x5f963b375b45 in Debug::wrapApplication(int (*)(int, char**), int, char**, std::basic_string_view<char, std::char_traits<char> >) /home/elsid/dev/openmw/components/debug/debugging.cpp:457
    #10 0x5f9636331695 in main /home/elsid/dev/openmw/apps/openmw/main.cpp:240
    #11 0x7254db435487  (/usr/lib/libc.so.6+0x27487) (BuildId: 0b707b217b15b106c25fe51df3724b25848310c0)
    #12 0x7254db43554b in __libc_start_main (/usr/lib/libc.so.6+0x2754b) (BuildId: 0b707b217b15b106c25fe51df3724b25848310c0)
    #13 0x5f9636331464 in _start (/home/elsid/dev/openmw/build/gcc/asan/openmw+0x10db464) (BuildId: ac74a52ca60e8913bef6eb6b3b23d6de648cf3c9)

SUMMARY: AddressSanitizer: heap-use-after-free (/home/elsid/dev/LuaJIT/build/gcc/asan/install/lib/libluajit-5.1.so.2+0x6293d) (BuildId: 1249151684379d19b11900f406fea9704a6375cb)
Shadow bytes around the buggy address:
  0x50800060d200: fa fa fa fa 00 00 00 00 00 00 00 00 00 00 00 fa
  0x50800060d280: fa fa fa fa 00 00 00 00 00 00 00 00 00 00 00 fa
  0x50800060d300: fa fa fa fa 00 00 00 00 00 00 00 00 00 00 00 fa
  0x50800060d380: fa fa fa fa 00 00 00 00 00 00 00 00 00 00 00 fa
  0x50800060d400: fa fa fa fa 00 00 00 00 00 00 00 00 00 00 00 fa
=>0x50800060d480: fa fa fa fa fd fd[fd]fd fd fd fd fd fd fd fd fd
  0x50800060d500: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
  0x50800060d580: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
  0x50800060d600: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
  0x50800060d680: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
  0x50800060d700: 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
==8699==ABORTING
2025-03-01 15:54:24 +01:00
elsid
d400c0959c
Hide main menu on new and loading game from menu scripts 2025-02-28 18:11:22 +01:00
Alexei Kotov
ec2c031792 Make powers immune to silence (#8371) 2025-02-27 18:27:10 +03:00
uramer
3a98b945a8 Keep MENU-registered input actions between games 2025-02-26 16:56:41 +01:00
Alexei Kotov
a6676fd6f3 Merge branch 'actionshaveeffects' into 'master'
Turn ActorActiveEffects:remove into a delayed action

Closes #8317, #8350, and #8366

See merge request OpenMW/openmw!4553
2025-02-24 22:49:52 +00:00
Evil Eye
f891a7c3b3 Turn ActorActiveEffects:remove into a delayed action 2025-02-24 17:07:32 +01:00
Evil Eye
3e3dfac4e0 Don't create a scrollbar that cannot be scrolled 2025-02-23 10:48:13 +01:00
Alexei Kotov
72cbf61b43 Rename apps/openmw/mwsound files and classes 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
89426af94a Rename apps/components_tests files to follow naming conventions 2025-02-22 23:47:12 +03:00
Alexei Kotov
a3e19f9bb7 Rename apps/openmw_tests files to follow naming conventions 2025-02-22 23:47:12 +03:00
Alexei Kotov
b997386cd3 Rename android-main.cpp to follow naming conventions 2025-02-22 23:47:09 +03:00
Alexei Kotov
04689334c5 Editor: Use the first/primary screen as last resort 2025-02-18 22:28:54 +03:00
Alexei Kotov
d71e4ec9f0 Editor: Fall back to the closest screen when necessary (#8354) 2025-02-18 13:31:13 +03:00
Evil Eye
ad8f6e5eb6 Include Ptrs with a count of 0 in cell unloading 2025-02-12 22:07:30 +01:00
psi29a
63e3b8f41b Merge branch 'levelledcreatures' into 'master'
Avoid reference to temporary in levelled creatures bindings (#8347)

Closes #8347

See merge request OpenMW/openmw!4535
2025-02-11 20:34:20 +00:00
Evil Eye
86d56a0b1a Clear queued scripts when clearing the Lua manager 2025-02-10 20:04:24 +01:00
Alexei Kotov
5626d925e3 Avoid reference to temporary in levelled creatures bindings (#8347) 2025-02-10 13:07:31 +03:00
Alexei Kotov
0f9be64904 Use the final effect cost to calculate enchantment price (#8340) 2025-02-04 09:21:13 +03:00
Alexei Kotov
fe571c1a4d Fix invisible rain when occlusion is enabled and sky blending isn't (#7273) 2025-01-31 18:13:29 +03:00
Mads Buvik Sandvei
4428c1db7d Unused includes 2025-01-30 20:53:56 +01:00
Mads Buvik Sandvei
517aa81938 Change sky blending fix to remove changing the "sky" texture slot when disabling sky blending. 2025-01-29 22:35:19 +01:00
Mads Buvik Sandvei
efe72ea2d5 Clang format 2025-01-26 20:10:58 +01:00
Mads Buvik Sandvei
dec9ce4a5f sky dummy texture not actually needed when using sky texture slot. 2025-01-26 17:41:43 +01:00
Mads Buvik Sandvei
a1df9afc9a Formatting changes 2025-01-26 17:05:42 +01:00
Mads Buvik Sandvei
6071de9d1d Set a dummy texture for sky blending, when multiview is enabled. 2025-01-26 15:20:25 +01:00
Evil Eye
7d2dd3422d Ignore missing global variables when filtering dialogue 2025-01-21 20:31:12 +01:00
Evil Eye
a645ec0910 Allow filters to apply to creatures 2025-01-21 20:25:13 +01:00
Evil Eye
3b50bcfb3a Allow GetSpellEffects to detect enchantments by id 2025-01-19 20:07:53 +01:00
psi29a
c16064e6f3 Merge branch 'nooneactuallyknowshowmorrowindcombatworks' into 'master'
Check if the victim is within weapon reach upon hit (#8280)

See merge request OpenMW/openmw!4518
2025-01-18 10:40:52 +00:00
psi29a
e515e99937 Merge branch 'loadingesm4' into 'master'
Track ESM4 file loading progress

See merge request OpenMW/openmw!4516
2025-01-17 11:59:20 +00:00
AnyOldName3
84c497b1fb capitulate 2025-01-17 01:45:09 +00:00
AnyOldName3
33553c0cf7 Handle encoding a bit more cleverly
* use the value from the existing openmw.cfg if it exists and we weren't told to use something else on the command line
* write the value to openmw.cfg if it wasn't there or we've overridden it
2025-01-17 01:34:08 +00:00
AnyOldName3
e345fca99a trim_ws, too 2025-01-17 01:21:24 +00:00
AnyOldName3
88fe079f95 Don't mangle settings with the comment character in their value
'#' is a valid character in setting values - it's only a comment if it's the first non-" \t\r\n" character on a line.
Making the comment ignoring match the parser we use elsewhere should avoid mangling data.
2025-01-17 00:53:19 +00:00
Alexei Kotov
2a62dd728f Check if the victim is within weapon reach upon hit (#8280) 2025-01-16 13:08:06 +03:00
Alexei Kotov
9fc62be2c6 Track ESM4 file loading progress 2025-01-14 20:27:02 +03:00
Alexei Kotov
fe047d98b1 Merge branch 'install-more-things' into 'master'
Install tools left out on Windows

Closes #8297

See merge request OpenMW/openmw!4510
2025-01-14 15:17:51 +00:00
psi29a
af3640217e Merge branch 'smoothlandslikesmoothlittlebabies' into 'master'
Editor: Prevent crash on smoothing undefined cell borders (#8299)

Closes #8299

See merge request OpenMW/openmw!4512
2025-01-14 11:18:28 +00:00
Alexei Kotov
df681a0da0 Merge branch 'muh-html-formatting' into 'master'
FIX: tooltips lose some of the relevant information if not stored as a QString

See merge request OpenMW/openmw!4513
2025-01-13 16:54:13 +00:00
jvoisin
7d47b225ab Merge branch '8300_create_arrows_bolts' into 'master'
Lua: Allow creating arrows and bolt records (#8300)

See merge request OpenMW/openmw!4514
2025-01-13 14:31:36 +00:00
Alexei Kotov
d3fe31803f Editor: Prevent crash on smoothing undefined cell borders (#8299) 2025-01-12 21:05:48 +03:00
Dave Corley
bc3c3bbc9c FIX: tooltips lose some of the relevant information if not stored as a QString 2025-01-12 10:07:40 -07:00
Mehdi Yousfi-Monod
ffedd62ea1 Lua: Allow creating arrows and bolt records (#8300) 2025-01-12 18:00:19 +01:00
AnyOldName3
a4bc99db7a Install tools left out on Windows 2025-01-11 19:36:24 +00:00
Alexei Kotov
383876a516 Handle weird post-processing chains gracefully (#8295) 2025-01-11 17:03:59 +03:00
Alexei Kotov
dd44b2668c Be prepared if someone feels like breaking getDeviceName 2025-01-09 18:34:29 +03:00
Alexei Kotov
d4f4b3c304 Fix default audio device switch for PulseAudio backend (#7731) 2025-01-08 07:34:15 +03:00
Evil Eye
40cba7962c Bump us up to 0.50.0 2025-01-06 16:43:54 +01:00
Alexei Kotov
4eb5b24af5 Fix localized checkbox toggling behavior 2025-01-06 09:43:44 +03: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
AnyOldName3
25c19d584f Merge branch 'effectlighting' into 'master'
Apply white ambient lighting to free magic VFX

See merge request OpenMW/openmw!4496
2025-01-05 01:22:28 +00:00
psi29a
9f90349a09 Merge branch 'cheaterrats' into 'master'
Don't stagger creatures in the middle of an attack (#8275)

Closes #8275

See merge request OpenMW/openmw!4499
2025-01-04 18:27:59 +00:00
Alexei Kotov
9b09ce53ef Don't stagger creatures in the middle of an attack (#8275) 2025-01-04 19:24:47 +03:00
psi29a
c33aaa5487 Merge branch 'disabilitybenefits' into 'master'
Allow disabling objects that have no placed instances (#4289)

Closes #4289

See merge request OpenMW/openmw!4498
2025-01-04 14:19:18 +00:00
Alexei Kotov
96a05cc72f Merge branch 'fix_vfs_lines_crash' into 'master'
Fix Lua vfs :lines() crash

See merge request OpenMW/openmw!4488
2025-01-03 14:21:59 +00:00
Evil Eye
c9ffd978ec Hoist the FileHandle check and add more tests 2025-01-02 15:55:19 +01:00
Alexei Kotov
24f1feb67a Allow disabling objects that have no placed instances (#4289) 2025-01-02 14:57:16 +03:00
psi29a
24361426c8 Merge branch 'getBoneByName_searchRoot' into 'master'
make ActorAnimation::getBoneByName take a searchRoot param

See merge request OpenMW/openmw!4491
2024-12-31 18:50:02 +00:00
Sebastian Fieber
e77db9f2ba make ActorAnimation::getBoneByName take a searchRoot param 2024-12-31 18:50:02 +00:00
Alexei Kotov
d0918ed1f2 Apply ambient lighting to free magic VFX 2024-12-31 17:37:30 +03:00
Alexei Kotov
d476c8cf57 Merge branch 'add_overwriteLighting_toggle_to_addVfx' into 'master'
add overwriteLighting a toggle option for addVfx

See merge request OpenMW/openmw!4492
2024-12-31 01:57:09 +00:00
Sebastian Fieber
5cb6da4b02 add overwriteLighting a toggle option for addVfx 2024-12-31 01:57:09 +00:00
Alexei Kotov
b29949d5a7 Merge branch 'nongeneratedactor' into 'master'
Revert conversion of actor id to generated refid

See merge request OpenMW/openmw!4493
2024-12-30 17:50:54 +00:00
Evil Eye
3fae6b8064 Revert conversion of actor id to generated refid 2024-12-28 23:59:22 +01:00
Alexei Kotov
aa277c0934 Add an option to match sunlight to the sun (#8032) 2024-12-28 18:29:35 +03:00
Alexei Kotov
efdea0fb42 Stick focused object tooltip to slightly above its top (#4710) 2024-12-23 19:02:12 +03:00
uramer
6d8753e5a8 Fix crash if someone evil calls the .lines method on a non-file 2024-12-21 16:49:11 +01:00
uramer
5f745f4074 Reference the FileHandle Lua object from lines closure tro prevent garbage collection 2024-12-21 16:43:21 +01:00
Alexei Kotov
69c4a68187 Merge branch 'fix_test_2' into 'master'
Reduce precision for random point distance comparison (#8260)

See merge request OpenMW/openmw!4486
2024-12-21 15:23:28 +00:00
elsid
a00909d139
Reduce precision for random point distance comparison 2024-12-20 14:00:49 +01:00
Evil Eye
73612b0e9c Only load FoW if it exists 2024-12-20 00:39:41 +01:00
elsid
054d5ec1d6
Reduce precision for random point position comparison 2024-12-18 22:28:55 +01:00
jvoisin
95764a9e0a Merge branch 'rollingredienteffect' into 'master'
Fix non-player ingredient casting

See merge request OpenMW/openmw!4480
2024-12-16 16:36:35 +00:00
Alexei Kotov
81f2402e66 Lua: Expose capacity for creatures as well 2024-12-15 03:20:34 +03:00
Alexei Kotov
14c6ecd889 Fix non-player ingredient casting
Always use the first effect
Don't show a message
2024-12-14 15:39:58 +03:00
psi29a
51579a8c5d Merge branch 'dependenceday' into 'master'
Fix validating ESM3 file dependencies (#8252)

Closes #8252

See merge request OpenMW/openmw!4476
2024-12-08 10:10:40 +00:00
elsid
cb654a0149
Use navigator in world destructor only when initialized
If world initialization fails, mNavigator may be nullptr.
2024-12-07 14:31:54 +01:00
Alexei Kotov
11761c5a1d Fix validating ESM3 file dependencies (#8252) 2024-12-07 09:15:04 +03:00
Evil Eye
fb02ba174d Remove period and slash from keyboard navigation and inject tabs when using a controller 2024-12-05 17:23:58 +01: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
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
Dave Corley
82d68ec9cf FIX: Correct data directory iteration order in CS 2024-11-28 18:19:12 -06: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
Evil Eye
4b93278045 Pad the interior grid 2024-11-25 16:49:59 +01:00
jvoisin
b555c980da Merge branch 'deepasapuddle' into 'master'
Change the default depth test mode from less-than to less-than-or-equal-to (#7040)

Closes #7040

See merge request OpenMW/openmw!4464
2024-11-25 01:41:17 +00:00
Evil Eye
0469ecd3c6 Reserve mFogTextures 2024-11-24 20:45:29 +01: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
9351a0e542 Merge branch 'callbackhell' into 'master'
Use the actual callback function instead of mocking it

Closes #8183

See merge request OpenMW/openmw!4452
2024-11-24 00:24:34 +00:00
psi29a
97522c22ae Merge branch 'attackanimationsareforfalsegods' into 'master'
Improve vanilla consistency of weapon animations for non-bipeds (#8223, #8237)

Closes #8237 and #8223

See merge request OpenMW/openmw!4462
2024-11-23 19:31:29 +00:00
psi29a
cb8e2809ac Merge branch 'help-i-dropped-it-into-oblivion' into 'master'
Task #8141: Merge instance drop modes

See merge request OpenMW/openmw!4350
2024-11-23 19:31:00 +00:00
psi29a
fe15803239 Merge branch 'coc' into 'master'
Use a grid based on computed bounds for interiors

See merge request OpenMW/openmw!4459
2024-11-23 19:29:22 +00:00
Alexei Kotov
5433ecf861 Change default depth test mode to <= (#7040) 2024-11-23 08:32:25 +03:00
Dave Corley
1e6ed3eb70 CLEANUP: Define the tooltip text as constexpr 2024-11-22 14:32:35 -06:00
Dave Corley
44d5939572 FEAT(InstanceMode): Add a tooltip for InstanceMode in the same style as that of PathgridMode 2024-11-22 04:24:33 -06:00
Dave Corley
fb9b191027 CLEANUP(instancemode): Always drop everything the same way 2024-11-22 04:24:30 -06:00
Dave Corley
0fea0868ed CLEANUP(values.hpp): Unbind camera speed mode (later rebind to wheel?) 2024-11-22 04:23:55 -06: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
Alexei Kotov
17203c5071 Merge branch 'forceunequip' into 'master'
Force stop weapon animation before unequipping

Closes #8230

See merge request OpenMW/openmw!4460
2024-11-19 22:49:40 +00:00
Andrei Kortunov
f0543c5500 Implement a context menu for data directories page (feature 8130) 2024-11-19 14:58:31 +04:00
Alexei Kotov
b57f4881a9 Improve vanilla consistency of weapon animations for non-bipeds (#8223, #8237)
Disable spellcast equip/unequip
Prioritize movement animations over weapon animations
2024-11-19 05:18:59 +03:00
elsid
6cd76fb8a7
Use normalized path for Class::getCorrectedModel 2024-11-18 21:21:34 +01:00
elsid
630e815f66
Forbid to use toNormalized for normalized path 2024-11-18 21:21:33 +01:00
Evil Eye
d3db436c2e Force stop weapon animation before unequipping 2024-11-18 20:07:14 +01:00
Evil Eye
c31c43bed5 Adjust canvas size when switching cells 2024-11-18 17:11:05 +01:00
AnyOldName3
4a911a647d Merge branch 'activewetshoes' into 'master'
Preserve node level data variance when merging objects in the active grid

Closes #8231

See merge request OpenMW/openmw!4456
2024-11-18 14:12:52 +00:00
Evil Eye
fc3a1833ee Use a grid based on computed bounds for interiors
Combine the cell radius (mCellDistance) and diameter (mNumCells)
members into an offset IntRect (mGrid.) The grid is centered on the
player's current cell in exteriors (with each grid square mapping to a
cell.) In interiors, the grid is centered on the cell's computed bounds.
The number of squares remains based on view distance in exteriors, but
can now stretch to encompass arbitrarily large interiors, mostly preventing
the player from walking off the map grid (interiors exceeding their
computed bounds during gameplay still cause issues.)
2024-11-17 21:14:14 +01:00
Evil Eye
326544ade5 Pack LocalMapBase members 2024-11-17 13:47:55 +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
elsid
22817dd6a1
Use normalized path for correctMeshPath 2024-11-16 12:49:11 +01:00
Evil Eye
0a07b1eb3a Preserve node level data variance when merging objects in the active grid 2024-11-16 11:56:01 +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
d6e300ba25 Make GetHealthGetRatio return 1 for actors with a max health of 0 2024-11-12 21:29:18 +01:00
Evil Eye
5dbe86e9ee Use the actual callback function instead of mocking it 2024-11-12 17:22:45 +01:00
Pi03k
306982cdd1 Move from qt_wrap_ui to AUTOUIC for opencs
Set opencs target properties in appropriate section
Use forward declaration for Ui::FileDialog

(#7348)
2024-11-10 20:38:14 +01:00
pi03k
18080a83d6 Move from qt_wrap_ui to AUTOUIC for launcher and wizard
(#7348)
2024-11-10 20:38:14 +01:00
psi29a
ac7b54af80 Merge branch 'refnumremapping' into 'master'
Use the right deserializer for unloaded scripts

See merge request OpenMW/openmw!4449
2024-11-10 16:13:07 +00:00
psi29a
f5c457c474 Merge branch 'pageswithattitude' into 'master'
Apply rotation when computing the bounding box of a paged reference

See merge request OpenMW/openmw!4447
2024-11-09 20:14:53 +00:00
Evil Eye
6572122acc Use the right deserializer for unloaded scripts 2024-11-09 13:05:39 +01:00
Alexei Kotov
32a6ed6f49 Merge branch 'creaturesstronk' into 'master'
Allow creatures' strength to be edited

See merge request OpenMW/openmw!4448
2024-11-08 20:18:24 +00:00
psi29a
d356fea5b6 Merge branch 'whycantitalkthedoorintoopening' into 'master'
Let AI open moved doors (#7548)

Closes #7548

See merge request OpenMW/openmw!4435
2024-11-07 17:55:40 +00:00
Evil Eye
7bd2f73fe5 Allow creatures' strength to be edited 2024-11-07 17:12:00 +01:00
Evil Eye
79bd6309a5 Apply rotation when computing the bounding box of a paged reference 2024-11-07 16:53:03 +01:00
elsid
afa769408a
Use normalized path for correctActorModelPath 2024-11-03 13:50:17 +01:00
psi29a
3e804042c4 Merge branch 'soitsthesametypeofstandasstarplatinum' into 'master'
Update spell window effect icons if the world is unpaused

See merge request OpenMW/openmw!4439
2024-11-01 13:53:05 +00:00
psi29a
6c52d92832 Merge branch 'ducksinarow' into 'master'
Improve memory alignment of CreatureStats to reduce memory usage

See merge request OpenMW/openmw!4433
2024-11-01 10:23:25 +00: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
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
fdafdaf599 Update spell icons if the world is unpaused 2024-10-31 11:22:49 +03:00
Alexei Kotov
476abb83d8 Don't enable groundcover for non-default worldspaces (#7692) 2024-10-30 21:23:29 +03:00
psi29a
34b6a9d402 Merge branch 'howdidabdufindthis' into 'master'
Don't assign vertical movement for inert characters out of water (#7968)

Closes #7968

See merge request OpenMW/openmw!4432
2024-10-30 14:21:34 +00:00
jvoisin
540eee9c97 Merge branch 'draganddropdead' into 'master'
Don't update displayed armor rating when there's no player pointer (#8211)

Closes #8211

See merge request OpenMW/openmw!4430
2024-10-30 12:14:15 +00:00
Alexei Kotov
4fdfd6ae91 Let AI open moved doors (#7548) 2024-10-30 12:41:36 +03:00
Evil Eye
ee16dbd2e2 Improve memory alignment of CreatureStats to reduce memory usage 2024-10-29 19:52:12 +01:00
Evil Eye
4c11dcdd7d Merge branch 'display_fix' into 'master'
Improve screen detection for editor's widgets

Closes #8146

See merge request OpenMW/openmw!4364
2024-10-29 16:51:37 +00:00
Alexei Kotov
84aebccbb0 Don't assign vertical movement for inert characters out of water (#7968) 2024-10-29 14:33:05 +03:00
Alexei Kotov
636e5ed08b Don't update displayed armor rating when there's no player pointer (#8211) 2024-10-29 10:44:28 +03:00
psi29a
64fdf72c4c Merge branch 'mfwnotext' into 'master'
Fix #8202 (probably)

Closes #8202

See merge request OpenMW/openmw!4422
2024-10-28 16:19:49 +00:00
psi29a
1dc1bfe543 Merge branch 'launcherimportdefaults' into 'master'
Save/load INI importer flags in the launcher (#8189)

Closes #8189

See merge request OpenMW/openmw!4429
2024-10-28 16:19:28 +00:00
Evil Eye
b288448893 Merge branch 'ulfricstormcloakjarlofwindhelm' into 'master'
Revise storm wind effect on velocity (bug #8206)

Closes #8206

See merge request OpenMW/openmw!4426
2024-10-28 15:33:46 +00:00
Alexei Kotov
a239724316 Revise storm wind effect on velocity (bug #8206) 2024-10-28 13:10:16 +03:00
Alexei Kotov
e78d3e8ac6 Add a lower cap to launcher viewing distance spinbox (#8208) 2024-10-28 13:04:16 +03:00
psi29a
891bb67ac5 Merge branch 'fatiguecrit' into 'master'
Only play critical hit sound for health damage (#8207)

Closes #8207

See merge request OpenMW/openmw!4427
2024-10-28 09:53:58 +00: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
Alexei Kotov
71f6341f30 Only play critical hit sound for health damage (#8207) 2024-10-27 08:17:33 +03:00
Evil Eye
a8710b7b42 Don't modify base records from Lua 2024-10-25 16:35:23 +02:00
psi29a
a11e683a40 Merge branch 'content-lists-could-provide-duplicate-fallback-archives' into 'master'
Gracefully handle content lists that specify duplicate BSAs

Closes #8200

See merge request OpenMW/openmw!4421
2024-10-25 11:08:41 +00:00
AnyOldName3
7640b6bcf4 Typo 2024-10-25 00:32:12 +00: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
psi29a
cd2f261ff5 Merge branch 'case-insensitive-bsa-name' into 'master'
Make the launcher ignore case in bsa names

Closes #8201

See merge request OpenMW/openmw!4418
2024-10-23 22:23:27 +00:00
Alexei Kotov
13cca461f2 Maybe fix #8202 2024-10-23 22:23:28 +03:00
AnyOldName3
0537b53d21 Gracefully handle content lists that specify duplicate BSAs
Previously, if fed bad data, or a content list predated a BSA being moved to a non-user config file, or possibly in other situations (but not any of the obvious ones as those had other guards), the `selectedArchives` list could be longer than the number of archives available due to duplicate entries.

This ensures they're handled like entries specifying no-longer-present archives, and just skips the duplicates.
The same would happen elsewhere in similar situations, but those code paths aren't always taken.
2024-10-22 22:40:16 +01:00
Evil Eye
9395624e5f Write SoundGens after their creatures 2024-10-22 21:25:52 +02:00
Alexei Kotov
1fcbcd5bfa Merge branch 'journalFirst' into 'master'
FIX: Serialize journal records first when saving plugins

See merge request OpenMW/openmw!4405
2024-10-22 01:37:02 +00:00
Evil Eye
ea52a5f4bd Clarify that topics should be written after journals 2024-10-21 19:57:18 +02:00
AnyOldName3
7556ab6f90 Make the launcher ignore case in bsa names 2024-10-21 18:07:13 +01:00
psi29a
cdf7bd74d5 Merge branch 'passivestorage' into 'master'
Activate global storage when setting up the player

See merge request OpenMW/openmw!4413
2024-10-21 11:01:26 +00:00
psi29a
941a6dcf89 Merge branch 'crime-interface' into 'master'
add OFFENSE_TYPE and commitCrime to lua

Closes #8109

See merge request OpenMW/openmw!4319
2024-10-20 09:37:27 +00:00
Calandiel Elende
9248e37156 add OFFENSE_TYPE and commitCrime to lua 2024-10-20 09:37:27 +00:00
psi29a
9325c80244 Merge branch 'userdataplz' into 'master'
Set SavedDataDeserializer on LocalScripts creation

See merge request OpenMW/openmw!4409
2024-10-20 09:36:13 +00:00
psi29a
083381526f Merge branch 'mourningnote' into 'master'
Play region sounds in quasi exteriors

See merge request OpenMW/openmw!4411
2024-10-20 09:35:27 +00:00
psi29a
c60e0539cc Merge branch 'dead_code' into 'master'
Remove dead code

See merge request OpenMW/openmw!4412
2024-10-20 09:34:49 +00:00
psi29a
26af518d67 Merge branch 'vfs_normalized_path_18' into 'master'
Use normalized path in PhysicsSystem (#8138)

See merge request OpenMW/openmw!4410
2024-10-20 09:34:37 +00:00
psi29a
8b3e8676bf Merge branch 'noxt' into 'master'
Remove old dependency on Xt which shouldn't be needed anymore

See merge request OpenMW/openmw!4407
2024-10-20 09:34:16 +00:00
Evil Eye
cee373aea8 Don't trigger onStateChanged until the game is in a running state 2024-10-20 10:50:18 +02:00
Evil Eye
e1046dc715 Tell the LuaManager the game has started before the player can be teleported 2024-10-19 19:15:23 +02:00
Andrei Kortunov
192807609d Remove dead code 2024-10-19 15:03:29 +04:00
Evil Eye
361586d85e Play region sounds in quasi exteriors 2024-10-19 10:43:50 +02:00
Evil Eye
a2fb575678 Set SavedDataDeserializer on LocalScripts creation 2024-10-18 18:25:43 +02:00
elsid
d2ab366233
Use normalized path in PhysicsSystem 2024-10-18 13:45:29 +02:00
Alexey Sokolov
be15db4dfb Remove old dependency on Xt which shouldn't be needed anymore 2024-10-16 14:28:34 +01:00
Andrei Kortunov
aab2f4a5bb Do not disable controllers for melee weapons sheathes (bug 8191) 2024-10-16 17:13:33 +04:00
Dave Corley
dbb29b2391 FIX: Serialize journal records first when saving plugins 2024-10-16 02:01:58 -07: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
34e32b7392 Merge branch 'thewickedmarkerofthewest' into 'master'
Emulate vanilla closest marker preference (#8187)

Closes #8187

See merge request OpenMW/openmw!4401
2024-10-15 07:43:00 +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
Alexei Kotov
77d2f18f83 Emulate vanilla closest marker preference (#8187) 2024-10-14 02:59:56 +03: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
psi29a
ef708c9cf0 Merge branch 'consistentcaptioncapitalization' into 'master'
Make OpenMW-CS preferences and OMWMusic lines more stylistically consistent

See merge request OpenMW/openmw!4394
2024-10-07 20:01:27 +00:00
AnyOldName3
6c8055134d Merge branch 'seaofnodesmorelike' into 'master'
Use more sensible types in pathgridutil

Closes #8172

See merge request OpenMW/openmw!4395
2024-10-07 12:23:27 +00:00
elsid
5532bc61c1
Support additional animation sources not only for 2 letter extensions
If extension is not 2 letters length (e.g. not .kf), replacing last 3 last
charaters leads to weird results like:
"meshes/basicplayer.dae" -> "animations/basicplayer./"

According to the doc this should be "animations/basicplayer/".
2024-10-06 16:33:59 +02:00
elsid
a6e075499b
Use normalize path in Animation::addAnimSource to change extension 2024-10-06 16:33:39 +02:00