36175 Commits

Author SHA1 Message Date
elsid
c6f381f1c4
Ignore readability-identifier-naming for boost::program_options namespace alias 2025-07-27 12:21:13 +02:00
elsid
8682ea522f
Remove unused namespace alias 2025-07-27 12:20:10 +02:00
elsid
ec0c76d2f3
Ignore false positive warning
cellSize > 1 so the result of the division cannot be undefined.

/home/elsid/dev/openmw/components/esmterrain/gridsampling.hpp:18:35: error: The result of the '/' expression is undefined [clang-analyzer-core.UndefinedBinaryOperatorResult,-warnings-as-errors]
   18 |         std::size_t cell = global / (cellSize - 1);
      |                                   ^
/home/elsid/dev/openmw/components/esmterrain/storage.cpp:244:13: note: Assuming 'lodLevel' is >= 0
  244 |         if (lodLevel < 0 || 63 < lodLevel)
      |             ^~~~~~~~~~~~
/home/elsid/dev/openmw/components/esmterrain/storage.cpp:244:13: note: Left side of '||' is false
/home/elsid/dev/openmw/components/esmterrain/storage.cpp:244:29: note: Assuming 'lodLevel' is <= 63
  244 |         if (lodLevel < 0 || 63 < lodLevel)
      |                             ^~~~~~~~~~~~~
/home/elsid/dev/openmw/components/esmterrain/storage.cpp:244:9: note: Taking false branch
  244 |         if (lodLevel < 0 || 63 < lodLevel)
      |         ^
/home/elsid/dev/openmw/components/esmterrain/storage.cpp:247:13: note: Assuming 'size' is > 0
  247 |         if (size <= 0)
      |             ^~~~~~~~~
/home/elsid/dev/openmw/components/esmterrain/storage.cpp:247:9: note: Taking false branch
  247 |         if (size <= 0)
      |         ^
/home/elsid/dev/openmw/components/esmterrain/storage.cpp:272:13: note: Assuming the condition is false
  272 |         if (land != nullptr)
      |             ^~~~~~~~~~~~~~~
/home/elsid/dev/openmw/components/esmterrain/storage.cpp:272:9: note: Taking false branch
  272 |         if (land != nullptr)
      |         ^
/home/elsid/dev/openmw/components/esmterrain/storage.cpp:363:9: note: Calling 'sampleCellGrid<const (lambda at /home/elsid/dev/openmw/components/esmterrain/storage.cpp:280:35) &>'
  363 |         sampleCellGrid(cellSize, sampleSize, beginX, beginY, distance, handleSample);
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/elsid/dev/openmw/components/esmterrain/gridsampling.hpp:72:13: note: Assuming 'cellSize' is >= 2
   72 |         if (cellSize < 2 || !Misc::isPowerOfTwo(cellSize - 1))
      |             ^~~~~~~~~~~~
/home/elsid/dev/openmw/components/esmterrain/gridsampling.hpp:72:13: note: Left side of '||' is false
/home/elsid/dev/openmw/components/esmterrain/gridsampling.hpp:72:9: note: Taking false branch
   72 |         if (cellSize < 2 || !Misc::isPowerOfTwo(cellSize - 1))
      |         ^
/home/elsid/dev/openmw/components/esmterrain/gridsampling.hpp:75:13: note: Assuming 'sampleSize' is not equal to 0
   75 |         if (sampleSize == 0 || !Misc::isPowerOfTwo(sampleSize))
      |             ^~~~~~~~~~~~~~~
/home/elsid/dev/openmw/components/esmterrain/gridsampling.hpp:75:13: note: Left side of '||' is false
/home/elsid/dev/openmw/components/esmterrain/gridsampling.hpp:75:9: note: Taking false branch
   75 |         if (sampleSize == 0 || !Misc::isPowerOfTwo(sampleSize))
      |         ^
/home/elsid/dev/openmw/components/esmterrain/gridsampling.hpp:78:13: note: Assuming 'distance' is >= 2
   78 |         if (distance < 2 || !Misc::isPowerOfTwo(distance - 1))
      |             ^~~~~~~~~~~~
/home/elsid/dev/openmw/components/esmterrain/gridsampling.hpp:78:13: note: Left side of '||' is false
/home/elsid/dev/openmw/components/esmterrain/gridsampling.hpp:78:9: note: Taking false branch
   78 |         if (distance < 2 || !Misc::isPowerOfTwo(distance - 1))
      |         ^
/home/elsid/dev/openmw/components/esmterrain/gridsampling.hpp:84:13: note: Assuming 'distance' is >= 'cellSize'
   84 |         if (distance < cellSize || sampleSize > cellSize - 1)
      |             ^~~~~~~~~~~~~~~~~~~
/home/elsid/dev/openmw/components/esmterrain/gridsampling.hpp:84:13: note: Left side of '||' is false
/home/elsid/dev/openmw/components/esmterrain/gridsampling.hpp:84:36: note: Assuming the condition is true
   84 |         if (distance < cellSize || sampleSize > cellSize - 1)
      |                                    ^~~~~~~~~~~~~~~~~~~~~~~~~
/home/elsid/dev/openmw/components/esmterrain/gridsampling.hpp:84:9: note: Taking true branch
   84 |         if (distance < cellSize || sampleSize > cellSize - 1)
      |         ^
/home/elsid/dev/openmw/components/esmterrain/gridsampling.hpp:85:20: note: Calling 'sampleCellGridSimple<const (lambda at /home/elsid/dev/openmw/components/esmterrain/storage.cpp:280:35) &>'
   85 |             return sampleCellGridSimple(cellSize, sampleSize, beginX, beginY, endX, endY, f);
      |                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/elsid/dev/openmw/components/esmterrain/gridsampling.hpp:56:16: note: 'cellSize' is > 1
   56 |         assert(cellSize > 1);
      |                ^
/usr/include/assert.h💯27: note: expanded from macro 'assert'
  100 |      (static_cast <bool> (expr)                                         \
      |                           ^~~~
/home/elsid/dev/openmw/components/esmterrain/gridsampling.hpp:56:9: note: '?' condition is true
   56 |         assert(cellSize > 1);
      |         ^
/usr/include/assert.h💯7: note: expanded from macro 'assert'
  100 |      (static_cast <bool> (expr)                                         \
      |       ^
/home/elsid/dev/openmw/components/esmterrain/gridsampling.hpp:57:9: note: '?' condition is true
   57 |         assert(Misc::isPowerOfTwo(cellSize - 1));
      |         ^
/usr/include/assert.h💯7: note: expanded from macro 'assert'
  100 |      (static_cast <bool> (expr)                                         \
      |       ^
/home/elsid/dev/openmw/components/esmterrain/gridsampling.hpp:58:16: note: 'sampleSize' is not equal to 0
   58 |         assert(sampleSize != 0);
      |                ^
/usr/include/assert.h💯27: note: expanded from macro 'assert'
  100 |      (static_cast <bool> (expr)                                         \
      |                           ^~~~
/home/elsid/dev/openmw/components/esmterrain/gridsampling.hpp:58:9: note: '?' condition is true
   58 |         assert(sampleSize != 0);
      |         ^
/usr/include/assert.h💯7: note: expanded from macro 'assert'
  100 |      (static_cast <bool> (expr)                                         \
      |       ^
/home/elsid/dev/openmw/components/esmterrain/gridsampling.hpp:60:9: note: Calling 'sampleGrid<(lambda at /home/elsid/dev/openmw/components/esmterrain/gridsampling.hpp:61:13)>'
   60 |         sampleGrid(sampleSize, beginX, beginY, endX, endY,
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   61 |             [&](std::size_t globalX, std::size_t globalY, std::size_t vertX, std::size_t vertY) {
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   62 |                 const auto [cellX, x] = toCellAndLocal(beginX, globalX, cellSize);
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   63 |                 const auto [cellY, y] = toCellAndLocal(beginY, globalY, cellSize);
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   64 |                 f(cellX, cellY, x, y, vertX, vertY);
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   65 |             });
      |             ~~
/home/elsid/dev/openmw/components/esmterrain/gridsampling.hpp:33:38: note: Assuming 'y' is < 'endY'
   33 |         for (std::size_t y = beginY; y < endY; y += sampleSize)
      |                                      ^~~~~~~~
/home/elsid/dev/openmw/components/esmterrain/gridsampling.hpp:33:9: note: Loop condition is true.  Entering loop body
   33 |         for (std::size_t y = beginY; y < endY; y += sampleSize)
      |         ^
/home/elsid/dev/openmw/components/esmterrain/gridsampling.hpp:36:42: note: Assuming 'x' is < 'endX'
   36 |             for (std::size_t x = beginX; x < endX; x += sampleSize)
      |                                          ^~~~~~~~
/home/elsid/dev/openmw/components/esmterrain/gridsampling.hpp:36:13: note: Loop condition is true.  Entering loop body
   36 |             for (std::size_t x = beginX; x < endX; x += sampleSize)
      |             ^
/home/elsid/dev/openmw/components/esmterrain/gridsampling.hpp:36:42: note: Assuming 'x' is < 'endX'
   36 |             for (std::size_t x = beginX; x < endX; x += sampleSize)
      |                                          ^~~~~~~~
/home/elsid/dev/openmw/components/esmterrain/gridsampling.hpp:36:13: note: Loop condition is true.  Entering loop body
   36 |             for (std::size_t x = beginX; x < endX; x += sampleSize)
      |             ^
/home/elsid/dev/openmw/components/esmterrain/gridsampling.hpp:37:17: note: Calling 'operator()'
   37 |                 f(x, y, vertX++, vertY);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
/home/elsid/dev/openmw/components/esmterrain/gridsampling.hpp:62:41: note: Calling 'toCellAndLocal'
   62 |                 const auto [cellX, x] = toCellAndLocal(beginX, globalX, cellSize);
      |                                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/elsid/dev/openmw/components/esmterrain/gridsampling.hpp:18:35: note: The result of the '/' expression is undefined
   18 |         std::size_t cell = global / (cellSize - 1);
      |                            ~~~~~~~^~~~~~~~~~~~~~~~
2025-07-27 12:11:24 +02:00
elsid
c5d74818eb
Disable portability-template-virtual-member-function clang tidy warning
There is no compatibility problem in practice.

/home/elsid/dev/openmw/components/settings/sanitizer.hpp:11:19: error: unspecified virtual member function instantiation; the virtual member function is not instantiated but it might be with a different compiler [portability-template-virtual-member-function,-warnings-as-errors]
   11 |         virtual T apply(const T& value) const = 0;
      |                   ^
/home/elsid/dev/openmw/components/settings/sanitizerimpl.cpp:20:28: note: template instantiated here
   20 |         struct Max final : Sanitizer<T>
      |                            ^
2025-07-27 11:30:07 +02:00
Alexei Kotov
8deb050ea2 Merge branch 'ghversion' into 'master'
Use the new Windows deps on GitHub

See merge request OpenMW/openmw!4808
2025-07-27 11:41:01 +03:00
Alexei Kotov
1896375380 Merge branch 'solarpowered' into 'master'
Update sol

Closes #8591 and #8614

See merge request OpenMW/openmw!4745
2025-07-27 11:38:16 +03:00
Alexei Kotov
ed32e4405a Merge branch 'optionalglobalism' into 'master'
Remove global config on Windows

Closes #8434

See merge request OpenMW/openmw!4762
2025-07-26 23:25:55 +03:00
Skyhasacat
9f10269ecc Merge branch 'lua_weather_bindings' into 'master'
lua - add weatherbindings to openmw.core (#6976)

See merge request OpenMW/openmw!4526
2025-07-26 15:01:32 +00:00
Evil Eye
e692025579 Use the new Windows deps on GitHub 2025-07-26 16:36:50 +02:00
Sebastian Fieber
534d6b3ae9 typo 2025-07-26 13:39:37 +02:00
Evil Eye
b4a753812e Use empty paths instead of optionals 2025-07-26 10:23:19 +02:00
Evil Eye
c0b230b742 Remove global config on Windows 2025-07-26 09:45:35 +02:00
Sebastian Fieber
95fc66bccd adjusments to weatherbindings
- return nil for not existing effects
- also use currectTexturePath for cloud texture
- corrections for docs
2025-07-25 23:22:33 +02:00
Sebastian Fieber
855b236ee8 direction of the sun light != direction to the sun 2025-07-25 21:00:09 +02:00
Alexei Kotov
730a62effc Merge branch 'warn-baby-warn' into 'master'
Fix MSVC warnings

Closes #7882

See merge request OpenMW/openmw!4804
2025-07-25 21:45:34 +03:00
Sebastian Fieber
a560aceb2a correct sunDiscSunsetColor type 2025-07-25 20:37:05 +02:00
Sebastian Fieber
cbb96e0fc2 colors should use Misc::Color 2025-07-25 20:10:21 +02:00
psi29a
a599825bf8 Merge branch 'everyonelikeschameleons' into 'master'
Prevent hostile actors from engaging combat against actors with 75 chameleon

See merge request OpenMW/openmw!4806
2025-07-25 08:02:32 +00:00
psi29a
714c128947 Merge branch 'compositemipmaps' into 'master'
Apply filtering settings to composite maps

See merge request OpenMW/openmw!4805
2025-07-25 07:12:07 +00:00
psi29a
45e08f62a1 Merge branch 'smolpiranha' into 'master'
Take skin transform and skeleton root into account

Closes #4437

See merge request OpenMW/openmw!4471
2025-07-25 07:09:55 +00:00
Sebastian Fieber
b8fec360c3 typo 2025-07-25 02:20:26 +02:00
Sebastian Fieber
f1447207b2 more less preprocessed code lines 2025-07-25 01:13:43 +02:00
Sebastian Fieber
3f54d3e569 update lua api revision 2025-07-25 00:53:04 +02:00
Sebastian Fieber
27adbf0cde less preprocessed code lines 2025-07-25 00:53:04 +02:00
Sebastian Fieber
d20a56517b add getCurrentSunLightDirection 2025-07-25 00:52:56 +02:00
Sebastian Fieber
6be96da6a4 lua - add weatherbindings to core 2025-07-25 00:43:39 +02:00
Alexei Kotov
d595d9f3b8 Merge branch 'maccitest' into 'master'
Mac CI updates

See merge request OpenMW/openmw!4789
2025-07-24 18:58:49 +03:00
Evil Eye
f52d9ad977 Prevent hostile actors from engaging combat against actors with 75 chameleon 2025-07-24 17:02:42 +02:00
Evil Eye
e3c9e6fe2b Set a root for BS skins as well 2025-07-24 08:46:21 +02:00
Evil Eye
8d7218c118 Take skin transform and skeleton root into account 2025-07-24 08:40:20 +02:00
Alexei Kotov
ad996393f1 Apply filtering settings to composite maps 2025-07-24 08:41:43 +03:00
AnyOldName3
437f22ed72 Typo fix 2025-07-24 00:37:28 +01:00
AnyOldName3
092d9a4c62 Remove dumb comment 2025-07-24 00:35:22 +01:00
AnyOldName3
f8a96fae24 Some formatting changes I missed 2025-07-24 00:26:47 +01:00
AnyOldName3
be54521cfa Fix loads of warnings
These weren't detected due to https://gitlab.com/OpenMW/openmw/-/issues/7882, but now they are, so they can be fixed.
2025-07-24 00:20:05 +01:00
AnyOldName3
52b785f726 Use updated Windows dependencies
The main changes are changing an OSG option that was disabling most of our warnings, and MSVC2019 switching to a custom vcpkg triplet.
2025-07-23 23:18:03 +01:00
Evil Eye
acfe9b6785 Merge branch 'karamunsing' into 'master'
Don't deselect item when usage is denied

Closes #7693

See merge request OpenMW/openmw!4788
2025-07-23 18:43:41 +00:00
Evil Eye
362c1a7ebe Update sol 2025-07-23 17:35:35 +02:00
psi29a
d1b03734b3 Merge branch 'master' into 'master'
Save user settings when closing windows

Closes #8077

See merge request OpenMW/openmw!4367
2025-07-23 09:32:04 +00:00
Jared Davenport
324bdf8f7a Save user settings when closing windows 2025-07-23 09:32:04 +00:00
psi29a
d401dd2441 Merge branch 'ContainerCapacityCheck' into 'master'
Fix precision issue with container capacity check

Closes #8606

See merge request OpenMW/openmw!4776
2025-07-23 09:31:38 +00:00
Aussiemon
044c556f0e Fix precision issue with container capacity check 2025-07-23 09:31:38 +00:00
AnyOldName3
125bbdc118 Merge branch 'long-specular' into 'master'
Elongated specular highlight for water

See merge request OpenMW/openmw!4726
2025-07-22 13:04:03 +00:00
psi29a
b2cc549585 Merge branch 'theemperorwantedyoutohavethisinvaliditerator' into 'master'
Prevent iterator invalidation during actor traversal

Closes #4885

See merge request OpenMW/openmw!4445
2025-07-22 07:38:20 +00:00
psi29a
2b1cd1deb8 Merge branch 'getpcrunning' into 'master'
Deduplicate GetPCRunning logic

See merge request OpenMW/openmw!4800
2025-07-22 07:37:35 +00:00
Alexei Kotov
93cde36b09 Deduplicate GetPCRunning logic 2025-07-21 19:09:24 +03:00
Evil Eye
30cfb42ed1 Fix rebase fallout 2025-07-21 17:57:51 +02:00
psi29a
c30964feb2 Merge branch 'namespace_naming' into 'master'
Fix and enforce namespace naming (#8424)

See merge request OpenMW/openmw!4648
2025-07-21 10:30:47 +00:00
elsid
28851411a3
Fix and enforce namespace naming 2025-07-20 21:19:16 +02:00
AnyOldName3
9845f76583 Merge branch 'nonessentialjobs' into 'master'
Don't run some non-essential jobs on upstream branch pushes

See merge request OpenMW/openmw!4797
2025-07-20 16:59:04 +00:00