1
0
Fork 0
mirror of https://github.com/OpenMW/openmw.git synced 2025-12-24 21:53:08 +00:00
Commit graph

8819 commits

Author SHA1 Message Date
elsid
a111391992
Check for failures after reading from stream in BSA 2025-10-06 00:02:32 +02:00
elsid
801224749f
Handle errors when computing stream size for BSA 2025-10-06 00:02:32 +02:00
elsid
796202f435
Use fail function to verify stream state in BSA
If there is a failure to read the file like unexpected EOF, bad returns
false, but fail returns true. Important for reading number of items more
than the file actually has.
2025-10-06 00:02:32 +02:00
elsid
9a449ed506
Only reserve capacity when reading collections
But do not initialize. If the meta information is invalid and has a big
value, initialization will take significant amount of time but there
might be no actual data in the file because it's too small.
2025-10-06 00:02:31 +02:00
elsid
38f6c5a68b
Properly handle duplicated BSA folders
Deduplicate folders first and then add their files to mFiles.
2025-10-06 00:02:31 +02:00
elsid
c92e321a08
Use std::string_view for BSA file name 2025-10-06 00:02:31 +02:00
elsid
c388fda5e4
Handle empty file name in BSA 2025-10-06 00:02:28 +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
44eb972770 Merge branch 'fix_copy_column_warning' of https://gitlab.com/elsid/openmw into warn-baby-warn-warning-inferno 2025-10-05 18:07:34 +01:00
AnyOldName3
91b1346761 Revert "Support wrapped arthimetic types"
elsid provided an alternative.

This reverts commit b0cf148393.
2025-10-05 18:06:41 +01:00
elsid
d171915b6a
Fix error message 2025-10-05 14:46:40 +02:00
elsid
cfd7f52a2f
Fix C4244 MSVC warning in Sqlite3::copyColumn
Make sure sqlite3_column_double is not called for int64_t and other
integral types and sqlite3_column_int64 is not called for floating point
types.

[363/1189] Building CXX object components\CMakeFiles\components.dir\RelWithDebInfo\detournavigator\navmeshdb.cpp.obj
D:\dev\openmw\components/sqlite3/request.hpp(109): warning C4244: 'argument': conversion from 'double' to 'T', possible loss of data
        with
        [
            T=int64_t
        ]
D:\dev\openmw\components/sqlite3/request.hpp(109): note: the template instantiation context (the oldest one first) is
D:\dev\openmw\components\detournavigator\navmeshdb.cpp(198): note: see reference to function template instantiation 'I Sqlite3::request<DetourNavigator::DbQueries::GetMaxTileId,DetourNavigator::TileId*,>(sqlite3 &,Sqlite3::Statement<DetourNavigator::DbQueries::GetMaxTileId> &,I,size_t)' being compiled
        with
        [
            I=DetourNavigator::TileId *
        ]
D:\dev\openmw\components/sqlite3/request.hpp(262): note: see reference to function template instantiation 'void Sqlite3::getRow<DetourNavigator::TileId>(sqlite3 &,sqlite3_stmt &,T &)' being compiled
        with
        [
            T=DetourNavigator::TileId
        ]
D:\dev\openmw\components/sqlite3/request.hpp(210): note: see reference to function template instantiation 'void Sqlite3::getColumns<std::tuple<T &>>(sqlite3 &,sqlite3_stmt &,std::tuple<T &> &)' being compiled
        with
        [
            T=DetourNavigator::TileId
        ]
D:\dev\openmw\components/sqlite3/request.hpp(203): note: see reference to function template instantiation 'void Sqlite3::getColumnsImpl<1,T>(sqlite3 &,sqlite3_stmt &,T &)' being compiled
        with
        [
            T=std::tuple<DetourNavigator::TileId &>
        ]
D:\dev\openmw\components/sqlite3/request.hpp(190): note: see reference to function template instantiation 'void Sqlite3::copyColumn<T>(sqlite3 &,sqlite3_stmt &,int,int,T &)' being compiled
        with
        [
            T=DetourNavigator::TileId
        ]
2025-10-05 14:39:51 +02:00
Evil Eye
23e9d1ac0c Remove redundant std::floor 2025-10-05 14:19:49 +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
Evil Eye
50ffc908e8 Use vformat_to and add more tests 2025-10-03 17:21:52 +02: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
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
Evil Eye
b2beb4a8f8 Don't break LuaUi::Element's invariant 2025-09-28 21:20:40 +02:00
Evil Eye
000c5d2a08 Ensure error marker assignment is thread safe 2025-09-25 20:47:10 +02:00
AnyOldName3
4eb69427dd One last pair of rule-of-three warnings for Clang 2025-09-25 00:05:35 +01:00
AnyOldName3
7ebb0cf577 Some warnings for Clang 2025-09-24 00:38:36 +01:00
AnyOldName3
536e7b8881 I think MSVC was right and GCC was wrong 2025-09-24 00:37:21 +01:00
AnyOldName3
372e5aa5f8 Format 2025-09-24 00:01:52 +01:00
AnyOldName3
a433114937 Rearrange extern so includes don't need to start with extern/ 2025-09-23 01:04:45 +01:00
AnyOldName3
b6f699d513 First batch of GCC/Ubuntu 24.04 warnings 2025-09-23 00:14:53 +01:00
Evil Eye
4847995861 Bump cache keys 2025-09-22 21:28:52 +02:00
Evil Eye
5308e22f6d Address more conversion warnings in the engine 2025-09-22 18:10:34 +02:00
Evil Eye
478df08433 Address more engine conversion warnings 2025-09-22 13:33:27 +02:00
Evil Eye
1caac90e93 Add btVector3 -> osg::Vec3f helper 2025-09-21 12:14:50 +02:00
elsid
91ccb0fe8d
Use proper naming for BSA File and Hash members 2025-09-20 19:21:17 +02:00
Evil Eye
3ba702690c Require SOL_PROPAGATE_EXCEPTIONS to be off 2025-09-20 16:07:59 +02:00
Evil Eye
b0cf148393 Support wrapped arthimetic types 2025-09-20 12:58:37 +02:00
Evil Eye
ff79c2d826 Turn menu.saveGame into a delayed action 2025-09-20 10:39:43 +00:00
Evil Eye
cb82d37992 Address remaining conversion warnings in components 2025-09-20 11:39:31 +02:00
Evil Eye
a8831651bb Swap arguments 2025-09-18 22:01:24 +02:00
Evil Eye
f7292680d6 Fix most conversion warnings in components 2025-09-18 22:00:55 +02:00
AnyOldName3
98291f1377 First batch of warning fixes 2025-09-18 00:38:08 +01:00
Alexei Kotov
2e18809ed9 Merge branch 'apply_xtra_data_after_drawable_properties' into 'master'
Distortion effect related fixes

See merge request OpenMW/openmw!4904
2025-09-01 21:57:31 +03:00
Evil Eye
14e1ec6d87 Use pathhelpers to populate Collections 2025-09-01 17:57:44 +02:00
Evil Eye
2105e98d0a Use std::string_view in collections 2025-09-01 17:08:33 +02:00
Alexei Kotov
ea3240ce03 Merge branch 'vfs_normalized_path_23' into 'master'
Use normalized path in Lua vfs bindings (#8138)

See merge request OpenMW/openmw!4903
2025-09-01 15:06:27 +03:00
Cody Glassman
f2a82701b4 make sure we apply extra data statesets at right time 2025-08-31 11:16:54 -07:00
psi29a
92b7ed5964 Merge branch 'waste-of-time' into 'master'
Disable expensive post-cull bounds calculations that never help very much

See merge request OpenMW/openmw!4894
2025-08-31 18:01:51 +00:00
psi29a
0ab79c4370 Merge branch 'formatcomponents' into 'master'
Remove StringUtils::format from components

See merge request OpenMW/openmw!4880
2025-08-31 17:59:35 +00:00
Evil Eye
5d4fc96062 Bump us up to 0.51 2025-08-30 14:21:31 +02:00
elsid
1348065be3
Use normalized path in Lua vfs bindings 2025-08-29 22:47:00 +02:00
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
AnyOldName3
48e5358587 Disable expensive post-cull bounds calculations that never help very much 2025-08-27 23:57:07 +01:00
elsid
0f36b7fc97
Fix and enforce parameter naming 2025-08-27 12:45:09 +02:00
Evil Eye
e88e60f475 Check length before dereferencing 2025-08-26 18:08:38 +02:00
Evil Eye
79a1f1c3d2 Address feedback 2025-08-25 16:46:04 +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
Evil Eye
e97542a487 Fix include 2025-08-24 16:11:34 +02:00
Evil Eye
2321086876 Replace StringUtils::format in components/misc 2025-08-24 16:01:17 +02:00
Evil Eye
9cce6bad68 Replace StringUtils::format in components/shader 2025-08-24 15:43:11 +02:00
Evil Eye
ecbc3a7b9e Reduce string usage in ShaderManager 2025-08-24 15:40:55 +02:00
Evil Eye
924d591158 Replace StringUtils::format in components/sceneutil 2025-08-24 14:35:44 +02:00
Evil Eye
26e562490f Replace StringUtils::format in components/lua 2025-08-24 14:28:17 +02:00
Evil Eye
58a232d6c7 Replace StringUtils::format in components/interpreter 2025-08-24 14:07:41 +02:00
Evil Eye
a0d081adb9 Replace StringUtils::format in components/detournavigator 2025-08-24 13:55:33 +02:00
Cody Glassman
d72451da62 remove unecassary visitor for soft particles 2025-08-23 09:09:18 -07:00
Evil Eye
06ef34cbdf Bring messagebox format parsing more in line with printf/vanilla 2025-08-23 17:26:18 +02: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
Evil Eye
35a9a47eac Convert global script targets 2025-07-27 17:04:14 +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
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
Andrew Lanzone
360c801b73 Remove local wrapper of MyGUI::Scrollbar 2025-07-26 23:54:25 -07: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
Andy Lanzone
c015599356 Merge branch openmw:master into master 2025-07-26 00:17:39 -07: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
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
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
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
elsid
28851411a3
Fix and enforce namespace naming 2025-07-20 21:19:16 +02:00
Andy Lanzone
6114a01ad4 Merge branch openmw:master into master 2025-07-19 18:10:08 -07:00
psi29a
412134da99 Merge branch 'bsazoomies' into 'master'
Use zlib directly for BSA file decompression (#8569)

Closes #8569

See merge request OpenMW/openmw!4795
2025-07-18 19:56:15 +00:00
Evil Eye
22232e8710 Merge branch 'sortedanimations' into 'master'
Assume NIF controller data is already sorted (#8545)

Closes #8545

See merge request OpenMW/openmw!4794
2025-07-18 19:29:24 +00:00
Alexei Kotov
f7238cd043 Merge branch 'document_object_cache' into 'master'
Add documentation for update function of Generic Object Cache

See merge request OpenMW/openmw!4164
2025-07-18 21:51:16 +03:00
Alexei Kotov
4a0c998f53 Avoid zero division during animation interpolation 2025-07-18 00:13:01 +03:00
Alexei Kotov
93cb69b012 Assume NIF controller data is already sorted (#8545) 2025-07-18 00:09:28 +03:00
Alexei Kotov
6796121305 Use zlib directly for BSA file decompression (#8569) 2025-07-17 22:25:18 +03:00
Andrew Lanzone
eba063ac23 Merge branch 'master' of https://gitlab.com/OpenMW/openmw 2025-07-17 08:14:28 -07:00
psi29a
0006cb22e2 Merge branch 'FillJournalConsoleCommand' into 'master'
Implement FillJournal script instruction

Closes #8509

See merge request OpenMW/openmw!4676
2025-07-17 14:22:53 +00:00
psi29a
e1847d2670 Merge branch 'master' into 'master'
Bump libsdl to 2.0.20

See merge request OpenMW/openmw!4779
2025-07-17 14:20:13 +00:00
Andy Lanzone
f45053ad25 Bump libsdl to 2.0.20 2025-07-17 14:20:13 +00:00
psi29a
418879bada Merge branch 'tcbtakethree' into 'master'
Re-reimplement TCB interpolation for scalars and vectors (#2379)

See merge request OpenMW/openmw!4784
2025-07-16 14:12:48 +00:00
Andy Lanzone
a3a1b6d11f Merge branch openmw:master into master 2025-07-14 17:48:36 -07:00
Alexei Kotov
a12a0916ed Merge branch 'too-many-markers' into 'master'
FEAT(CS): Replace selection markers with a real one (#8139)

Closes #8139

See merge request OpenMW/openmw!4349
2025-07-14 23:18:46 +03:00
Dave Corley
9dd028b260 FEAT(CS): Replace selection markers with a real one (#8139) 2025-07-14 23:18:45 +03:00
Alexei Kotov
a03a2a5ff2 Re-reimplement TCB interpolation for scalars and vectors (#2379) 2025-07-14 13:09:23 +03:00
Andrew Lanzone
6a02e6a4bc Merge branch 'master' of https://gitlab.com/OpenMW/openmw 2025-07-13 14:55:27 -07:00
Alexei Kotov
119a87b7f4 Revert "Merge branch 'tbcornottbcwaititstcbactually' into 'master'"
This reverts merge request !4539
2025-07-13 18:02:15 +03:00
Andy Lanzone
3600a5c716 Merge branch openmw:master into master 2025-07-12 14:13:10 -07:00
elsid
f5e66f3e24
Remove unused includes 2025-07-12 12:31:15 +02:00
Alexei Kotov
6d74a4607c Restore some omitted object cache remarks that seemed useful 2025-07-10 17:25:27 +03:00
Florian Heberer
a00e5ec828 Add documentation for update function of Generic Object Cache 2025-07-10 17:18:18 +03:00
Dave Corley
7bc507eb58 FIX: Skip only the current subrecord when reading quest status 2025-07-10 17:08:47 +03:00
Andy Lanzone
d46f034e5d Merge branch openmw:master into master 2025-07-08 19:46:37 -07:00
psi29a
c691c72cec Merge branch 'esm4sound' into 'master'
Initial support of ESM4 sounds

See merge request OpenMW/openmw!3784
2025-07-08 10:32:24 +00:00
Alexei Kotov
c0276b6890 Merge branch 'cpputil2lua' into 'master'
Move some util to lua

See merge request OpenMW/openmw!4750
2025-07-08 12:45:14 +03:00
Petr Mikheev
10dba7cda7 Initial support of ESM4 sounds; play opening sound of ESM4 doors. 2025-07-08 11:14:13 +02:00
Kuyondo
f87d6818b7 pressing enter for newline 2025-07-08 05:02:53 +08:00