1
0
Fork 0
mirror of https://github.com/OpenMW/openmw.git synced 2025-10-17 06:46:35 +00:00
Commit graph

8660 commits

Author SHA1 Message Date
elsid
dea69b229c
Remove small translation units
Remove .cpp files with small amount of code which don't have additional
includes compared to corresponding .hpp files. This reduces the total
size of preprocessed code of the project and should reduce compilation
time.
2025-08-29 00:41:47 +02:00
Alexei Kotov
60d31e978a Merge branch 'parameter_naming' into 'master'
Fix and enforce parameter naming (#8424)

See merge request OpenMW/openmw!4890
2025-08-28 14:10:44 +03:00
Cody Glassman
bfc25a3194 Make most weather bindings read/write 2025-08-28 03:22:33 +03:00
elsid
0f36b7fc97
Fix and enforce parameter naming 2025-08-27 12:45:09 +02:00
Alexei Kotov
944925663d Merge branch 'dontreplacedepth' into 'master'
Don't run osg::Depth replacement visitor for NIF templates

See merge request OpenMW/openmw!4876
2025-08-25 09:15:20 +03:00
Cody Glassman
d72451da62 remove unecassary visitor for soft particles 2025-08-23 09:09:18 -07:00
psi29a
14d9be7885 Merge branch 'thegaidenshinjieffect' into 'master'
Use std::string_view and std::format in components/fx

See merge request OpenMW/openmw!4857
2025-08-23 09:54:09 +00:00
Alexei Kotov
47130e2155 Don't run osg::Depth replacement visitor for NIF templates 2025-08-23 09:19:42 +03:00
Evil Eye
d66b86f2c9 Implement missing hex float format options 2025-08-21 22:00:00 +02:00
Evil Eye
59753d8b8e Leave from_chars to figure out the length 2025-08-21 09:42:02 +02:00
Evil Eye
86605f3531 Make 0-width precision be 0 2025-08-21 08:57:00 +02:00
Evil Eye
6453d3e201 Use std::from_chars in MessageFormatParser 2025-08-20 19:51:02 +02:00
elsid
3067294f0d
Add and fix -Wshadow 2025-08-18 21:09:06 +02:00
Evil Eye
a6c942b33a Account for numeric precision and infinities. Also pretend to be more like GLSL 2025-08-18 19:52:28 +02:00
Evil Eye
3f2fd06514 Work around Apple Clang 2025-08-17 11:26:30 +02:00
Evil Eye
5f3f3a7e1d Address feedback 2025-08-17 08:48:04 +02:00
Evil Eye
86e40f5b6b Remove potential sources of UB 2025-08-16 14:01:21 +02:00
Evil Eye
55c72ecb29 Use string_view in components/fx 2025-08-16 13:49:07 +02:00
Evil Eye
cf3d0b7dd3 Use std::format in components/fx 2025-08-16 13:46:34 +02:00
Evil Eye
a30b4ad615 Undo changes to nifkey.hpp 2025-08-07 20:57:40 +02:00
Evil Eye
a085036a92 Resolve a number of Coverity defects 2025-08-06 19:52:09 +02:00
Evil Eye
60d5e4d30b Merge branch 'local_variable_naming' into 'master'
Fix and enforce local variable naming (#8424)

See merge request OpenMW/openmw!4832
2025-08-06 17:50:33 +00:00
elsid
d121b606b6
Fix and enforce local variable naming 2025-08-05 21:27:48 +02:00
Andrew Lanzone
8e76a0ab06 Merge branch 'master' of https://gitlab.com/OpenMW/openmw 2025-08-04 16:44:12 -07:00
Alexei Kotov
aae81264a2 Merge branch 'skibidi-dop-doppler' into 'master'
Doppler, take two

See merge request OpenMW/openmw!4660
2025-08-04 09:24:50 +03:00
Skyhasacat
c71448359b Merge branch '32bitfixes' into 'master'
fix 32bit builds. closes #8625

Closes #8625

See merge request OpenMW/openmw!4791
2025-08-03 21:00:52 +00:00
psi29a
cc2ec85244 Merge branch 'tex' into 'master'
ESM4 landscape texturing

See merge request OpenMW/openmw!4799
2025-08-03 19:56:34 +00:00
Evil Eye
c77a849e9e Merge branch 'cleanup_includes' into 'master'
Cleanup includes

See merge request OpenMW/openmw!4828
2025-08-03 19:11:55 +00:00
Evil Eye
485517cf64 Use std::hash 2025-08-03 20:52:22 +02:00
zlice
0d7efaa2e3 fix 32bit builds 2025-08-03 20:52:22 +02:00
elsid
eeca0b13b0
Add missing files to components/detournavigator list 2025-08-02 12:45:03 +02:00
elsid
a2bc1569e0
Remove unused includes 2025-08-02 12:45:03 +02:00
Petr Mikheev
0b5c8271e0 ESM4 landscape textures 2025-08-01 18:45:24 +02:00
elsid
0801e0512d
Do thread safe local static based initialization 2025-08-01 11:48:35 +02:00
psi29a
b160cee0b7 Merge branch 'sonarview' into 'master'
Address string_view conversions flagged by SonarQube

See merge request OpenMW/openmw!4693
2025-08-01 08:06:36 +00:00
psi29a
2a8dc56619 Merge branch 'pedanticmsvc' into 'master'
Resolve unused code warnings when compiling in Debug mode using MSVC

See merge request OpenMW/openmw!4820
2025-08-01 08:06:11 +00:00
Andy Lanzone
59aba3ae7e Merge branch openmw:master into master 2025-07-31 18:02:10 -07:00
Mads Buvik Sandvei
34eb3d485d [Lua] Partially dehardcode onHit 2025-07-30 20:21:15 +00:00
Evil Eye
bc05628fa8 Resolve unused code warnings when compiling in Debug mode using MSVC 2025-07-30 20:44:59 +02:00
Evil Eye
75845bf863 Work around compiler versions that haven't addressed defect 3865 2025-07-30 19:41:14 +02:00
Evil Eye
ee540039a1 Address string_view conversions flagged by SonarQube 2025-07-30 19:37:37 +02:00
Alexei Kotov
399ec4eccc Merge branch 'qt6' into 'master'
Drop support for Qt5

Closes #8578

See merge request OpenMW/openmw!4742
2025-07-30 13:26:46 +03:00
psi29a
4efc8bf99d Merge branch 'fix_clang_tidy' into 'master'
Fix clang tidy warnings

See merge request OpenMW/openmw!4811
2025-07-28 15:55:53 +00:00
Alexei Kotov
0a8373987d Merge branch 'aiwander' into 'master'
Build checkpoints based path for wandering actors (#8433)

Closes #8433

See merge request OpenMW/openmw!4652
2025-07-28 00:48:17 +03:00
Andy Lanzone
31580ffb71 Merge branch openmw:master into master 2025-07-27 13:21:40 -07: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
4433e3c2de
Build path over navmesh for wandering actors
Using a path over pathgrid as checkpoints.

This allows to avoid having paths going through obstacles if they are
placed over pathgrid points.
2025-07-27 11:17:17 +02:00
elsid
3f1ac1848c
Move getClosestPoint to a separate file 2025-07-27 11:17:17 +02:00
elsid
50f5bc51c6
Store allowed positions as osg::Vec3f
There is no need to store pathgrid points.
2025-07-27 11:16:47 +02:00
Evil Eye
2bce45260c Drop support for Qt5 2025-07-27 10:47:34 +02:00