109 Commits

Author SHA1 Message Date
elsid 0406ac535c Add TileCachedRecastMeshManager test for adding heightfields and water 2026-04-04 09:12:48 -07:00
elsid 256e185847 Add navigator test for lifted heightfield 2026-04-04 09:12:46 -07:00
elsid a1c9eeb9c2 Use real min max height when possible
To reduce AABB size by z axis.
2026-04-04 09:12:29 -07:00
elsid c5667e0815 Do not post empty and out of range tiles
If a tile has no geometry and is known to be empty navmesh tile there is
no need to process it again.

If a tile is too far from player it will not be processed anyway.
2026-04-04 09:12:27 -07:00
elsid a8b13f22a8 Reduce chance of 2 test runs having the same output directory 2026-04-02 21:11:10 -07:00
Evil Eye 52e1f61d26 Make the shader path independent of the working directory 2026-03-22 21:59:02 +01:00
Cody Glassman e53536a3ec Remove exclusive FFP mode 2026-03-15 14:13:19 -05:00
elsid dacf6cdc01 Add join function to create normalized path
To reduce the number of allocations.

Add append member function as /= implementation having naming consistent
with std::filsystem::path.

Make sure append for empty Normalized does not add leading separator
(consistent with std::filesystem::path).
2026-02-15 22:43:31 +01:00
Alexei Kotov aecb07e159 Merge branch 'luascriptid' into 'master'
Save Lua script ids instead of paths

See merge request OpenMW/openmw!5092
2026-02-09 13:53:12 +03:00
Telvanni 4Life 12dca7ecef Changed skills and attributes in ENAMstruct to use RefIds instead of indices. 2026-02-04 11:59:20 -05:00
Evil Eye ee1cee1181 Reassign script id and test script order changes 2026-02-04 16:36:53 +01:00
Evil Eye fdc2e63152 Save Lua script ids instead of paths 2026-02-04 16:36:51 +01:00
Telvanni 4Life 2c76043cf5 - Changed sol magic bindings to use RefIds instead of integer indexes for magic effects.
- Fixed silly namespace oversight causing linker errors.
- Fixed type mismatches occluded by linker errors.
- Fixed unit tests.
2026-01-08 07:40:02 -05:00
psi29a f0e31e69dd Merge branch 'refnumhitman' into 'master'
Replace ActorIds with RefNums

Closes #7602

See merge request OpenMW/openmw!4323
2026-01-08 09:23:20 +00:00
AnyOldName3 16efa6e5b5 Support long paths on Windows
Apparently we'd never bothered opting in, despite nearly everything in all out apps being entirely compatible and designed with long paths in mind.

GetModuleFileNameW is a bit awkward as it's just about the only Win32 function that returns the minimum of the buffer size and the string size - nearly everything else returns the full size even if it won't fit, so you can pass it a null pointer and a size of zero, and it'll tell you how much space you need to allocate.

I pretty much just copied the mostly-working long-path-friendly call site in the crash catcher to windowspath.cpp, but I also noticed that if the function failed and returned zero, the original implementation would loop forever, so I fixed that.

There was some code that could be ditched from the catch monitor as \\?\ is a prefix you can use to opt into long paths for a single API call instead of using the manifest to set it everywhere.
2026-01-07 15:12:22 +00:00
Evil Eye 20ddb848d4 Stop using actor ids in the essimporter and tests 2025-12-26 11:07:31 +01:00
jvoisin dbcedf614d Merge branch 'recindex' into 'master'
Rename all remaining recIndex variations to recordIndex

See merge request OpenMW/openmw!5059
2025-12-24 20:31:05 +00:00
Evil Eye 71b394b88d Reimplement tests in Lua 2025-12-23 17:47:29 +01:00
Evil Eye 8107fc451f Remove dead code 2025-12-22 17:24:29 +01:00
Alexei Kotov a6195698ae recIndex => recordIndex 2025-12-21 00:40:12 +03:00
Alexei Kotov a0b73d5e62 Make NIF base record members conform to the naming conventions 2025-12-16 13:23:30 +03:00
Evil Eye 2d33ead98d Fix NormalizedView::stem to include dots 2025-12-12 23:14:57 +01:00
Evil Eye fdbcada044 Don't accept table like objects in getFieldOrNil 2025-12-09 11:48:02 +01:00
Alexei Kotov cd4901245e Merge branch 'vfs_normalized_path_25' into 'master'
Use normalized path for correctResourcePath and related functions (#8138)

See merge request OpenMW/openmw!5031
2025-12-09 09:44:50 +03:00
elsid 878f9f8433 Add extension path type 2025-12-08 20:38:23 +01:00
elsid b5196b2fd1 Use normalized path for correctResourcePath and related functions 2025-12-08 20:38:15 +01:00
Alexei Kotov ee9d7db3c1 Merge branch 'gmstl10n' into 'master'
Allow composition of GMST l10n values

See merge request OpenMW/openmw!4873
2025-12-07 14:02:12 +03:00
elsid 66923870da Use normalized path to implement correctResourcePath 2025-12-06 00:12:43 +01:00
elsid 1b362140ae Remove duplicated and leading slashes in normalizeFilenameInPlace
To be consistent with correctResourcePath.
2025-12-06 00:12:43 +01:00
elsid 96869fd9b9 Add namespace prefix to all VFS::Path related tests 2025-12-06 00:12:42 +01:00
elsid 538e5d5502 Use normalizeFilename in correctResourcePath 2025-12-06 00:12:42 +01:00
elsid cd03de2577 Cleanup resource helpers tests 2025-12-06 00:12:42 +01:00
Evil Eye bb4937f827 Allow composition of GMST l10n values 2025-11-24 19:33:28 +01: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
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
Andrei Kortunov 6d3f5cf70c Dehardcode script settings window font and colors 2025-11-08 20:31:24 +04:00
AnyOldName3 0a9f5a3c66 Resolve merge conflicts from !4938 and !4956 2025-11-02 18:05:38 +00: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
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
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 000c5d2a08 Ensure error marker assignment is thread safe 2025-09-25 20:47:10 +02:00
Evil Eye 1caac90e93 Add btVector3 -> osg::Vec3f helper 2025-09-21 12:14:50 +02:00
Evil Eye 71fa8c9f7d Fix conversion warnings in components_tests 2025-09-20 12:12:31 +02:00
Evil Eye 14e1ec6d87 Use pathhelpers to populate Collections 2025-09-01 17:57:44 +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