1
0
Fork 0
mirror of https://github.com/OpenMW/openmw.git synced 2026-01-03 16:13:07 +00:00
Commit graph

23865 commits

Author SHA1 Message Date
Alexei Kotov
ebad87bffb Properly resolve exterior cell names during name-based search 2025-12-02 18:41:15 +03:00
Alexei Kotov
2b5d7c9d7d Merge branch 'spellviewcursor' into 'master'
Hide the cursor in spell lists when controller tooltips are on (#8770)

Closes #8770

See merge request OpenMW/openmw!4979
2025-12-02 06:39:20 +03:00
Alexei Kotov
20d14b57c1 Expose sunlight direction to post-processing (#8826) 2025-11-29 20:27:34 +03:00
Alexei Kotov
96565e9afb Merge branch 'fix_clang_tidy_warnings' into 'master'
Fix clang tidy warnings (version 21.1.6)

See merge request OpenMW/openmw!5015
2025-11-27 01:16:51 +03:00
Alexei Kotov
c31b4efc01 Merge branch 'globaltargetnumberone' into 'master'
Improve support for global script targets

Closes #2316, #7830, and #2311

See merge request OpenMW/openmw!4812
2025-11-27 01:16:25 +03:00
Alexei Kotov
a00ede3595 Merge branch 'master' into 'master'
Fix 'Show Controller Tooltips By Default' option being ignored

Closes #8799

See merge request OpenMW/openmw!5003
2025-11-26 16:41:45 +03:00
Andy Lanzone
94caf98ece Fix 'Show Controller Tooltips By Default' option being ignored 2025-11-26 16:41:45 +03:00
elsid
feb9cc004c
Fix portability-avoid-pragma-once warnings
components/misc/helpviewer.hpp:1:1: error: avoid 'pragma once' directive; use include guards instead [portability-avoid-pragma-once,-warnings-as-errors]
    1 | #pragma once
      | ^

apps/opencs/view/world/tableheadermouseeventhandler.hpp:1:1: error: avoid 'pragma once' directive; use include guards instead [portability-avoid-pragma-once,-warnings-as-errors]
    1 | #pragma once
      | ^
2025-11-25 21:16:50 +01:00
Nova
87dc3cd0e8 Enforced local scripts can only modify self.
Updated documentation to use self and player in examples.
2025-11-24 23:45:53 +03:00
Nova
dcbda0cbaa Forgot the luamanagerimp.hpp include. 2025-11-24 23:45:53 +03:00
Nova
96ab0752db Add Lua API for werewolf state management
Adds a new function to force the player or NPCS to turn into a werewolf.
- setWerewolf(bool): Transform a PC or NPC into/out of werewolf form

This enables modders to control werewolf transformations

Useage Example:

-- Turn player into werewolf
types.NPC.setWerewolf(self, true)
2025-11-24 23:45:52 +03:00
Evil Eye
bb4937f827 Allow composition of GMST l10n values 2025-11-24 19:33:28 +01:00
Evil Eye
f8374f2ff0 Merge branch 'fix-8705' into 'master'
Feature #8705: Use texture-based LUT for moddable global map colors

See merge request OpenMW/openmw!4932
2025-11-23 20:54:11 +00:00
Andrzej Głuszak
1bc95605ce Feature #8705: Use texture-based LUT for moddable global map colors 2025-11-23 20:54:11 +00:00
Alexei Kotov
c687a21ccb Merge branch 'enum_naming' into 'master'
Fix and enforce enum naming (#8424)

See merge request OpenMW/openmw!4986
2025-11-23 22:36:23 +03:00
Evil Eye
ba2130b35d Properly update the map when changing the view distance 2025-11-23 14:31:02 +01:00
Evil Eye
99dfd746f4 Account for view distance changes 2025-11-23 14:30:25 +01:00
Evil Eye
a7a99145cf Remove rendered segments outside the map grid again 2025-11-23 14:30:24 +01:00
Evil Eye
cd60d0e8c5 Properly account for map tile visibility 2025-11-23 14:28:13 +01:00
Evil Eye
839520b9a4 Draw and recycle door markers consistently 2025-11-23 14:28:12 +01:00
Evil Eye
6eb005ff3e Only count rendered neighbours 2025-11-23 14:27:01 +01:00
Evil Eye
97a34c63ed Prevent door markers from being rendered when they shouldn't be 2025-11-23 14:27:01 +01:00
Evil Eye
4457c1e47a Remove the need to cast door marker widgets 2025-11-23 14:26:59 +01:00
Evil Eye
d148ccbb93 Remove logically redundant code 2025-11-23 14:20:54 +01:00
Evil Eye
e7fbb3e33c Make LocalMap methods const 2025-11-23 14:20:53 +01:00
Alexei Kotov
d1d598adc7 Hide the cursor in spell lists when controller tooltips are on (#8770) 2025-11-23 15:27:08 +03:00
elsid
7e1c1e8625
Use proper type for bhkRagdollTemplate::mBones 2025-11-23 13:21:41 +01:00
Alexei Kotov
b49b048f72 Merge branch 'warn-baby-warn-warning-inferno' into 'master'
Warning inferno - fix warnings, then fix warnings

Closes #8674

See merge request OpenMW/openmw!4927
2025-11-23 15:01:53 +03:00
Alexei Kotov
46e0369fee Merge branch 'fix_benchmark_distribution' into 'master'
Use uniform_real_distribution for agent half extents

See merge request OpenMW/openmw!5005
2025-11-23 15:00:08 +03:00
elsid
d4ce5a2ac6
Fix and enforce enum naming 2025-11-22 11:19:18 +01:00
elsid
cde34d8041 Fix C4244 in navmeshtilescache benchmark
apps\benchmarks\detournavigator\navmeshtilescache.cpp(97): warning C4244: 'argument': conversion from 'double' to 'size_t', possible loss of data
apps\benchmarks\detournavigator\navmeshtilescache.cpp(97): note: the template instantiation context (the oldest one first) is
apps\benchmarks\detournavigator\navmeshtilescache.cpp(192): note: see reference to function template instantiation 'void `anonymous-namespace'::getFromFilledCache<1048576,100>(benchmark::State &)' being compiled
apps\benchmarks\detournavigator\navmeshtilescache.cpp(179): note: see reference to function template instantiation 'void `anonymous-namespace'::generateKeys<std::back_insert_iterator<std::vector<`anonymous-namespace'::Key,std::allocator<`anonymous-namespace'::Key>>>,std::linear_congruential_engine<unsigned int,48271,0,2147483647>>(_T0,size_t,_T1 &)' being compiled
        with
        [
            _T0=std::back_insert_iterator<std::vector<`anonymous-namespace'::Key,std::allocator<`anonymous-namespace'::Key>>>,
            _T1=std::linear_congruential_engine<unsigned int,48271,0,2147483647>
        ]
apps\benchmarks\detournavigator\navmeshtilescache.cpp(153): note: see reference to function template instantiation '`anonymous-namespace'::Key `anonymous-namespace'::generateKey<_T1>(size_t,_T0 &)' being compiled
        with
        [
            _T1=std::linear_congruential_engine<unsigned int,48271,0,2147483647>,
            _T0=std::linear_congruential_engine<unsigned int,48271,0,2147483647>
        ]
apps\benchmarks\detournavigator\navmeshtilescache.cpp(141): note: see reference to function template instantiation 'DetourNavigator::Mesh `anonymous-namespace'::generateMesh<_T0>(size_t,_T0 &)' being compiled
        with
        [
            _T0=std::linear_congruential_engine<unsigned int,48271,0,2147483647>
        ]
apps\benchmarks\detournavigator\navmeshtilescache.cpp(99): warning C4244: 'argument': conversion from 'double' to 'size_t', possible loss of data
apps\benchmarks\detournavigator\navmeshtilescache.cpp(112): warning C4244: '=': conversion from 'double' to 'float', possible loss of data
apps\benchmarks\detournavigator\navmeshtilescache.cpp(112): note: the template instantiation context (the oldest one first) is
apps\benchmarks\detournavigator\navmeshtilescache.cpp(144): note: see reference to function template instantiation 'DetourNavigator::Heightfield `anonymous-namespace'::generateHeightfield<_T0>(_T0 &)' being compiled
        with
        [
            _T0=std::linear_congruential_engine<unsigned int,48271,0,2147483647>
        ]
2025-11-21 15:37:40 +00:00
elsid
c844e93f82 Use uniform_real_distribution for agent half extents
They have float type.
2025-11-21 15:37:01 +00:00
elsid
0a2234ad3e
Fix C4244 in navmeshtilescache benchmark
apps\benchmarks\detournavigator\navmeshtilescache.cpp(97): warning C4244: 'argument': conversion from 'double' to 'size_t', possible loss of data
apps\benchmarks\detournavigator\navmeshtilescache.cpp(97): note: the template instantiation context (the oldest one first) is
apps\benchmarks\detournavigator\navmeshtilescache.cpp(192): note: see reference to function template instantiation 'void `anonymous-namespace'::getFromFilledCache<1048576,100>(benchmark::State &)' being compiled
apps\benchmarks\detournavigator\navmeshtilescache.cpp(179): note: see reference to function template instantiation 'void `anonymous-namespace'::generateKeys<std::back_insert_iterator<std::vector<`anonymous-namespace'::Key,std::allocator<`anonymous-namespace'::Key>>>,std::linear_congruential_engine<unsigned int,48271,0,2147483647>>(_T0,size_t,_T1 &)' being compiled
        with
        [
            _T0=std::back_insert_iterator<std::vector<`anonymous-namespace'::Key,std::allocator<`anonymous-namespace'::Key>>>,
            _T1=std::linear_congruential_engine<unsigned int,48271,0,2147483647>
        ]
apps\benchmarks\detournavigator\navmeshtilescache.cpp(153): note: see reference to function template instantiation '`anonymous-namespace'::Key `anonymous-namespace'::generateKey<_T1>(size_t,_T0 &)' being compiled
        with
        [
            _T1=std::linear_congruential_engine<unsigned int,48271,0,2147483647>,
            _T0=std::linear_congruential_engine<unsigned int,48271,0,2147483647>
        ]
apps\benchmarks\detournavigator\navmeshtilescache.cpp(141): note: see reference to function template instantiation 'DetourNavigator::Mesh `anonymous-namespace'::generateMesh<_T0>(size_t,_T0 &)' being compiled
        with
        [
            _T0=std::linear_congruential_engine<unsigned int,48271,0,2147483647>
        ]
apps\benchmarks\detournavigator\navmeshtilescache.cpp(99): warning C4244: 'argument': conversion from 'double' to 'size_t', possible loss of data
apps\benchmarks\detournavigator\navmeshtilescache.cpp(112): warning C4244: '=': conversion from 'double' to 'float', possible loss of data
apps\benchmarks\detournavigator\navmeshtilescache.cpp(112): note: the template instantiation context (the oldest one first) is
apps\benchmarks\detournavigator\navmeshtilescache.cpp(144): note: see reference to function template instantiation 'DetourNavigator::Heightfield `anonymous-namespace'::generateHeightfield<_T0>(_T0 &)' being compiled
        with
        [
            _T0=std::linear_congruential_engine<unsigned int,48271,0,2147483647>
        ]
2025-11-21 13:57:51 +01:00
elsid
d7db0d3d46
Use uniform_real_distribution for agent half extents
They have float type.
2025-11-19 20:17:22 +01:00
Dave Corley
f773da37ee FEAT: Add & document autocalc flag on potions (#8796) 2025-11-16 12:56:41 +03:00
Evil Eye
2386c9d1dc Move 0 check to the top 2025-11-15 11:03:56 +01:00
Evil Eye
f2dd080c14 Clamp index before subtracting 2025-11-14 16:45:32 +01:00
daniil.mitrofanov
b228473929
Fix grammar and plural consistency issues
Fixed grammar issue:
- Added missing comma after 'however' on line 23 in README.md

Fixed plural consistency in script-warn option:
- Source (options.cpp lines 63-64): 'warning' → 'warnings'
- Documentation (README.md lines 73-74): Updated to match corrected output

The README help text is meant to mirror 'openmw --help' output, so both
the source and documentation are updated for consistency.

All three script-warn options now consistently use plural 'warnings':
- 0 - ignore warnings
- 1 - show warnings but consider script as correctly compiled anyway
- 2 - treat warnings as errors
2025-11-11 23:55:42 +04:00
jvoisin
429305401e Merge branch 'keywordsoup' into 'master'
Fix KeywordSearch

Closes #8760

See merge request OpenMW/openmw!4960
2025-11-10 21:20:09 +00:00
jvoisin
c09cb5c0de Merge branch 'fileview' into 'master'
Use std::string_view in file collections

See merge request OpenMW/openmw!4909
2025-11-10 21:08:05 +00:00
AnyOldName3
ef8e7d97cb Resolve merge conflicts from !4971 2025-11-10 16:01:47 +00:00
AnyOldName3
f31ec2b3a5 Merge branch 'printf' into 'master'
Bring messagebox format parsing more in line with printf/vanilla

Closes #8732

See merge request OpenMW/openmw!4878
2025-11-10 15:23:48 +00:00
AnyOldName3
1fadb167c9 Merge branch 'patient0' into 'master'
Allow non-player actors to catch diseases

Closes #8765

See merge request OpenMW/openmw!4968
2025-11-10 14:39:08 +00:00
uramer
3be1010d03 Merge branch 'protectthecall' into 'master'
Ensure LuaUtil::call is invoked from a safe context

Closes #8769

See merge request OpenMW/openmw!4971
2025-11-10 09:50:10 +00:00
Alexei Kotov
ba72415369 Merge branch 'itemviewfocus' into 'master'
Don't reset item view focus during realignment (#8771)

Closes #8771

See merge request OpenMW/openmw!4985
2025-11-10 06:33:56 +03:00
Alexei Kotov
8b6a552f5a Merge branch 'handtwohand' into 'master'
Use Hand To Hand Hit 2 sound (#8731)

Closes #8731

See merge request OpenMW/openmw!4978
2025-11-10 06:30:18 +03:00
Andrei Kortunov
6d3f5cf70c Dehardcode script settings window font and colors 2025-11-08 20:31:24 +04:00
Alexei Kotov
ba197863cf Don't reset item view focus during realignment (#8771) 2025-11-08 02:26:17 +03:00
Evil Eye
492716ee6b Type check the ignore list 2025-11-03 07:07:08 +03:00
Evil Eye
3558f9c48b Don't attempt to parse table-like objects as ignore lists 2025-11-03 07:07:08 +03:00
AnyOldName3
0a9f5a3c66 Resolve merge conflicts from !4938 and !4956 2025-11-02 18:05:38 +00:00
Alexei Kotov
d0a533bf02 Use Hand To Hand Hit 2 sound (#8731) 2025-11-02 08:20:40 +03:00
Andrzej Głuszak
c4b28a39c3 Lua: Return nil instead of empty strings for optional RefId fields
Implement sol_lua_push for ESM::RefId to automatically convert empty
RefIds to nil in Lua. This fixes cell.region and cell.worldSpaceId
returning empty strings, and applies the same pattern consistently
across all Lua bindings.

Removes LuaUtil::serializeRefId as it's no longer needed.

Fixes #8718
2025-11-02 05:08:25 +03:00
Andrei Kortunov
2fe63177b7 Translate cell name directly 2025-11-02 04:22:47 +03:00
Andrei Kortunov
d6cc205b86 Localize cell names in the Lua API (feature 8725) 2025-11-02 04:22:46 +03:00
Evil Eye
4f8b418c23 Ensure LuaUtil::call is invoked from a safe context 2025-10-30 22:24:53 +01:00
uramer
8b2be21eea Merge branch 'almanac' into 'master'
Improve weather documentation and prevent division by 0

See merge request OpenMW/openmw!4966
2025-10-28 17:10:48 +00:00
jvoisin
25b2a8c82f Merge branch 'finitehit' into 'master'
Require finite values in Actor._onHit

See merge request OpenMW/openmw!4965
2025-10-28 17:06:05 +00:00
Evil Eye
1ae5adba78 Allow non-player actors to catch diseases 2025-10-27 19:49:51 +01:00
Evil Eye
83fe65cff7 Improve weather documentation and prevent division by 0 2025-10-27 19:22:37 +01:00
Evil Eye
c0ac3388df Require finite values in Actor._onHit 2025-10-27 16:58:04 +01:00
Evil Eye
801b8b567e Use ptrdiff_t 2025-10-25 12:33:56 +02:00
Evil Eye
b24732728c Address potential UB reported by котverity 2025-10-25 11:40:12 +02:00
Evil Eye
823dc6a896 Return type as a sol::object instead of a table proxy 2025-10-23 20:51:01 +02:00
Evil Eye
e59f3327ef Fix KeywordSearch 2025-10-22 18:28:48 +02:00
Evil Eye
cc10352def Address comments 2025-10-22 17:27:51 +02:00
Alexei Kotov
ce4606705f Merge branch 'permanentlyinvalid' into 'master'
Remove invalid permanent effects

Closes #8737

See merge request OpenMW/openmw!4950
2025-10-19 00:21:01 +03:00
Alexei Kotov
081cf2cf25 Merge branch 'noitemview' into 'master'
Fix UB in item view controller refocusing during redraw

Closes #8724

See merge request OpenMW/openmw!4948
2025-10-18 18:55:03 +03:00
Alexei Kotov
1f839d264d Merge branch 'fix_qt_build' into 'master'
Do not implicitly convert QByteArray to const char*

See merge request OpenMW/openmw!4941
2025-10-18 18:41:24 +03:00
Evil Eye
03a46650af Merge branch 'stast_handler' into 'master'
Use abbreviation for GUI stat name

See merge request OpenMW/openmw!4952
2025-10-16 17:46:28 +00:00
Alexei Kotov
2c0205db79 Merge branch 'fix_msvc_tests' into 'master'
Fix tests for MSVC

See merge request OpenMW/openmw!4951
2025-10-15 21:02:06 +03:00
Evil Eye
5242610366 Differentiate between invalid and unapplied effects and stop marking unapplied revertable effects as applied in godmode 2025-10-14 21:26:06 +02:00
Evil Eye
34ff702212 Allow skills to be fortified by absorbing from a creature 2025-10-14 20:33:00 +02:00
Andrei Kortunov
ed15542d8b Use abbreviation for GUI stat name 2025-10-14 11:14:00 +04:00
Alexei Kotov
6e8322c466 Merge branch 'focus_unify' into 'master'
Unify focus object terminology

See merge request OpenMW/openmw!4949
2025-10-13 23:19:52 +03:00
Dave Corley
7e41d81c9e Always use squared distance in types.Actor.isInActorsProcessingRange 2025-10-13 23:18:31 +03:00
elsid
7bf1ea32b0
Disable not working tests for MSVC
std::streambuf in MSVC does not support buffers larger than 2**31 - 1:
https://developercommunity.visualstudio.com/t/stdbasic-stringbuf-is-broken/290124

Simple test to check if it works:

TEST(IMemStreamTest, shouldRead)
{
    std::string src(std::numeric_limits<uint32_t>::max() / 2 + 1, '\0');
    Files::IMemStream stream(src.data(), src.size());
    std::string dst(src.size(), '\0');
    stream.read(dst.data(), src.size());
    EXPECT_FALSE(stream.fail()) << std::generic_category().message(errno);
}
2025-10-12 11:11:24 +02:00
elsid
ab4637f6c7
Do not rely on std::string::reserve
Passing an object with capacity through std::ostringstream may change
its capacity. Use malloc instead to make sure the memory is allocated.
2025-10-12 11:11:22 +02:00
Evil Eye
f783993c56 Don't mark skill affecting effects as invalid if the target is a creature 2025-10-11 14:47:45 +02:00
Evil Eye
b905836f45 Remove invalid permanent effects 2025-10-11 13:21:22 +02:00
Andrei Kortunov
48e1ee3ac7 Unify focus object terminology 2025-10-11 13:01:26 +04:00
Alexei Kotov
c75aed5175 Merge branch 'solidlyrooted' into 'master'
Don't break LuaUi::Element's invariant

Closes #8720

See merge request OpenMW/openmw!4930
2025-10-11 11:59:17 +03:00
Alexei Kotov
1afbc6ba63 Fix UB in item view controller refocusing during redraw (#8724)
std::clamp's upper bound goes negative when there are no items
2025-10-11 10:26:41 +03:00
Alexei Kotov
3f6ecc4de1 Merge branch 'shield_sheath' into 'master'
Fix shield equip and unequip animations, add docs for shield sheathing feature

See merge request OpenMW/openmw!4936
2025-10-11 09:13:30 +03:00
Alexei Kotov
afe4edc3c3 Merge branch 'fix_bsatool_afl_findings' into 'master'
Fix AFL findings in bsatool

See merge request OpenMW/openmw!4925
2025-10-11 08:57:48 +03:00
elsid
c87cc643d1
Add tests for BSAFile 2025-10-06 00:02:32 +02:00
elsid
d7f6d7c13c
Add unit tests for CompressedBSAFile 2025-10-06 00:02:32 +02:00
elsid
0bae2b14b1
Do not implicitly convert QByteArray to const char*
Operators supporting this conversion can be disabled via
QT_NO_CAST_FROM_BYTEARRAY breaking the build. For example:

https://koschei.fedoraproject.org//package/openmw
https://kojipkgs.fedoraproject.org/work/tasks/5096/137735096/build.log
2025-10-05 23:52:25 +02:00
AnyOldName3
06cb00bb0b Resolve merge conflicts from !4924 and !4928
luamanagerimp still needs float frameDuration, and reordering a bunch of fields in the scene manager conflicted with changing the type of maxanisotropy.
2025-10-04 23:08:20 +01:00
Andrei Kortunov
d9b441ccaa Fix shield equip and unequip animations, add docs for shield sheathing feature (bug 8734) 2025-10-04 16:07:15 +04:00
Alexei Kotov
ef05e089ab Merge branch 'encucumberance' into 'master'
Update encumbrance unconditionally (#8729)

Closes #8729

See merge request OpenMW/openmw!4934
2025-10-04 11:14:35 +03:00
Alexei Kotov
d9bcc3dc4f Merge branch 'kelapasawit8123' into 'master'
Make weapon usage less restrictive

See merge request OpenMW/openmw!4906
2025-10-03 21:03:14 +03:00
Evil Eye
50ffc908e8 Use vformat_to and add more tests 2025-10-03 17:21:52 +02:00
Evil Eye
5dcb0e19fb Use static_cast for consistency 2025-10-02 18:15:33 +02:00
Alexei Kotov
0eb1a79b00 Update encumbrance unconditionally (#8729)
The flag is only set when items are physically added/removed, which doesn't happen during barter
2025-10-02 08:29:24 +03:00
Alexei Kotov
f60875dd8f Merge branch 'soontm' into 'master'
Bump us up to 0.51

See merge request OpenMW/openmw!4900
2025-10-02 00:01:10 +03:00
AnyOldName3
5b94502c7f Use float directly 2025-09-30 16:49:53 +01:00
AnyOldName3
f5889ba067 Tidying based on review
1.1 was changed to 1.f instead of 1.1f, so that's been fixed.

Reduce the number of casts in RenderingManager::updateProjectionMatrix()
2025-09-29 14:12:29 +01:00
Alexei Kotov
ae0886ae36 Make sure gamepad triggers can be bound (#8721) 2025-09-29 02:19:06 +03:00
Evil Eye
b2beb4a8f8 Don't break LuaUi::Element's invariant 2025-09-28 21:20:40 +02:00