Commit Graph

634 Commits (42c7fc8e921272d18830054fd217e6188b81a110)

Author SHA1 Message Date
Alexei Kotov c7d5ea9fbf Improve BulletNifLoader handling of extra data
Only handle extra data for the root node(s)
Properly handle MRK flag editor marker filtering
Fix BSXFlags test
1 year ago
jvoisin 32a9581394 Merge branch 'deepdepths' into 'master'
Depth flag handling fixes (bug #7380)

See merge request OpenMW/openmw!3568
1 year ago
AnyOldName3 9b6d82566f Merge branch 'unbound' into 'master'
Don't use Bounding Box node bounds as the original collision shape

See merge request OpenMW/openmw!3562
1 year ago
Alexei Kotov 116ef1c62b Depth flag handling fixes (bug #7380)
Properly disable depth test while allowing depth writes to happen
Remove NiStencilProperty interaction
Don't set up depth flags for BSShaderPPLightingProperty
1 year ago
Alexei Kotov 2c1db92d04 Don't use Bounding Box node bounds as the original collision shape
Bounding Box node bounds are not used for non-actor collision in Morrowind and the generated box isn't actually used for actor collision in OpenMW
Preserving btBoxShape cloning code because it might get used in the future
1 year ago
Alexei Kotov af08205f19 Support BSShader/BSLightingShader depth flags 1 year ago
Alexei Kotov 9405e5cb3c BulletNifLoader: Replicate node bounds handling more closely 1 year ago
Alexei Kotov 8db631c6b6 Update BSXFlags test 1 year ago
Alexei Kotov 1b93e646b8 Rename Property->NiProperty 1 year ago
Alexei Kotov 9ae1077808 Update NIF property loading, first pass
Revise all FO3+ shader properties (attempt reading FO4, FO76 and Starfield properties)
Use constants for most instances of property flags
Drop invalid usage of non-existent double-sided flag for BSShader
Make formatting more consistent, drop unnecessary comments
1 year ago
Alexei Kotov eb8242946a Improve node record consistency with NifTools 1 year ago
Alexei Kotov bff9231c3b Refactor NiGeometry/BSTriShape
Don't pass invalid geometry data links to the loaders
1 year ago
Alexei Kotov deb051639e Refactor NiBoundingVolume 1 year ago
Alexei Kotov 0fe095303f Rename Controller->NiTimeController, update NiTimeController and related code 1 year ago
Alexei Kotov 05d8975ed1 Revise various NIF controller records
Mostly those that don't require external changes
1 year ago
psi29a 42b77342c5 Merge branch 'nif' into 'master'
Modernize NIF loader, part 3

See merge request OpenMW/openmw!3418
1 year ago
Alexei Kotov a7cc4e6ba6 Rename Node->NiAVObject and update everything directly related
Update NiNode
Simplify RootCollisionNode handling in BulletNifLoader
1 year ago
Alexei Kotov 6872c7144e Rename Transformation->NiTransform and update everything directly related 1 year ago
Alexei Kotov ef896faa90 Rename Named->NiObjectNET and update everything directly related to it
BulletNifLoader: properly check if the node has animation controllers
Flatten extra data linked list
1 year ago
elsid 053a3caf7b
Pass cache expiry delay to GenericResourceManager constructor 1 year ago
Alexei Kotov 89774716fb Modernize NiGeometryData 1 year ago
Alexei Kotov cfd37dbcc6 Modernize NiTriShapeData 1 year ago
Alexei Kotov eba0ab444b Modernize NiTriStripsData 1 year ago
Alexei Kotov 5b07a78f2c Modernize skin instance records 1 year ago
Alexei Kotov 2edf3399e2 Modernize extra data records 1 year ago
Petr Mikheev 32f3a16db3 Change FormId::toString to be consistent with RefId. Remove FormIdRefId. 1 year ago
psi29a 5b3e2fbf1c Merge branch 'clickbait' into 'master'
Assign StringRefIds to attributes

See merge request OpenMW/openmw!3256
1 year ago
Petr Mikheev 87eacf774a Control GUI modes from Lua 1 year ago
Evil Eye e660a9ca16 Assign StringRefIds to attributes 1 year ago
elsid 07c1177b0d
Optimize land lookup on blendmaps sampling
Minimize number of getLand calls by grouping samples per cell.
1 year ago
elsid ce6ffba986
Move blendmap sampling logic into separate function 1 year ago
elsid 8e7fe44514
Support terrain sample size greater than cell size 1 year ago
Petr Mikheev 957880d515 Add to ESMStore the records that are needed to render ESM4 actors; cleanup usage of `records.hpp` 1 year ago
Petr Mikheev 5d54ca6fdb Refactor components/esm4 1 year ago
psi29a c290754077 Revert "Merge branch 'loadSSEAlchemyTable' into 'master'"
This reverts merge request !3267
1 year ago
psi29a 23671ced33 Merge branch 'fix_use_after_move' into 'master'
Fix use after move in InfoOrder::insertInfo

See merge request OpenMW/openmw!3296
1 year ago
psi29a 1d207ed318 Merge branch 'test_load_deleted_dialinfo' into 'master'
Add test to ensure deleted DialInfos are removed

See merge request OpenMW/openmw!3297
1 year ago
elsid 662991dda9
Add test to ensure deleted DialInfos are removed 1 year ago
elsid 66c5944ecf
Fix use after move in InfoOrder::insertInfo
When it->second.mPosition->mPrev != value.mPrev value is first moved into
*mPosition and then used to get mPrev. Since mPrev is RefId and it's copy-only
type there is no real problem but coverity complains about it.

Also enforce contract of insertInfo to support move-only types by adding a test
for a value type with deleted copy constructors.
1 year ago
elsid dd54857610
Add missing array include 1 year ago
psi29a 81deb3796b Merge branch 'loadSSEAlchemyTable' into 'master'
Load SSE alchemy table

See merge request OpenMW/openmw!3267
1 year ago
alekulyn d2896945e8 Load SSE alchemy table 1 year ago
psi29a e76ce6b696 Merge branch 'fix_find_path' into 'master'
Remove stepping from findSmoothPath and other tweaks (#7241 , #7485)

Closes #7485 and #7241

See merge request OpenMW/openmw!3264
1 year ago
Petr Mikheev 9b511fdf7a Load ESM4 actors 1 year ago
elsid e00eb50587
Remove stepping from findSmoothPath
This is not used anyway. There are features like smooth movement which remove
all redundant points.

Use single findStraightPath call instead of multiple.
1 year ago
psi29a 9410eed9e5 Merge branch 'bump-cmake-version' into 'master'
Bump required CMake version to 3.16

See merge request OpenMW/openmw!3242
1 year ago
psi29a ec9b4c4563 Merge branch 'caius4friends' into 'master'
Fix dialogue insertion again

See merge request OpenMW/openmw!3212
1 year ago
psi29a 03dbe1c9f3 Merge branch 'stringrefidskills' into 'master'
Assign StringRefIds to skills

See merge request OpenMW/openmw!3146
1 year ago
AnyOldName3 34fcfb63cf Eliminate redundant version checks 1 year ago
Evil Eye ac9378fa08 Replace Skill::mIndex with Skill::refIdToIndex 2 years ago
Evil Eye c59032fd66 Make RefId::deserializeText return an empty RefId if no pre-existing StringRefId can be found 2 years ago
Evil Eye 974b4739fa Add a test for three way merges 2 years ago
Alexei Dobrohotov 2de8c6b3c0 Don't discard collision for the entire tree if BSXFlags marker flag is set 2 years ago
unknown 09147934fb Adjust unit tests 2 years ago
elsid a6dbd819a1
Fix writing IndexRefId to ESM3
Use correct enum value.
2 years ago
psi29a 6601b0cb15 Merge branch 'fastandloose' into 'master'
Drop support for --fs-strict

Closes #7394

See merge request OpenMW/openmw!3093
2 years ago
psi29a 68415a952e Merge branch 'lua_quat' into 'master'
Breaking change in Lua API: change obj.rotation from Euler angles to Quaternion

See merge request OpenMW/openmw!3123
2 years ago
elsid 04215ca9ec
Use settings values for Fog settings 2 years ago
psi29a 807893eb45 Merge branch 'clickbait' into 'master'
Mostly dehardcode skills

See merge request OpenMW/openmw!3112
2 years ago
Petr Mikheev 3b43cc2aea Lua: change obj.rotation from Euler angles to Quaternion 2 years ago
elsid e6e6b65ab3
Remove redundant manipulators 2 years ago
Evil Eye e791d2b498 Fix unit tests 2 years ago
Evil Eye eeda48ec50 Drop support for --fs-strict 2 years ago
Evil Eye da4e04522b More closely replicate Morrowind.exe's locks 2 years ago
Evil Eye 65b22975c9 Remove SkillEnum 2 years ago
psi29a 55cd30ea3b Merge branch 'string_ref_id_utf8' into 'master'
Support UTF-8 by StringRefId::toDebugString (#7407)

Closes #7407

See merge request OpenMW/openmw!3096
2 years ago
elsid 78b3f7288a
Support UTF-8 by StringRefId::toDebugString 2 years ago
Petr Mikheev 420916327d Fix the bug "ESMStore::setUp() is called twice" that causes duplicated objects in ESM4 cells 2 years ago
Petr Mikheev bf49855d9f Test handling of BSXFlags in bulletnifloader 2 years ago
florent.teppe c35c7b3640 ESM4::Land loaded, added to store and to land objects
it does not work yet. Some things are displayed, but it looks all wrong.
2 years ago
elsid 04d439485b
Log more info about navmesh shapes and jobs 2 years ago
psi29a ab17d0947a Merge branch 'esm4-exterior' into 'master'
Loading ESM4 Exteriors

See merge request OpenMW/openmw!2986
2 years ago
psi29a c15710c35b Merge branch 'settings_values_index' into 'master'
Use typed settings storage for settings window (#6876)

See merge request OpenMW/openmw!2997
2 years ago
florent.teppe 43e247d458 fixes tests
fix linux build + clang-tidy
2 years ago
Evil Eye 3cf0977c0b Remove dialogue related instances of getRefIdString 2 years ago
elsid 258ae9d98e
Add settings index to provide lookup by category and name 2 years ago
elsid 0601d7213e
Remove ESM::RefId::sEmpty
This variable is only required to return empty RefId as const reference. There
is no point in doing so for a type cheap to copy.
2 years ago
Petr Mikheev 61578ca39b Add function LuaUtil::cast 2 years ago
psi29a 406eb1f9cc Merge branch 'replace_boost' into 'master'
replace boost where not needed

See merge request OpenMW/openmw!2962
2 years ago
psi29a 71aaa56ae3 replace boost where not needed 2 years ago
elsid 499d086cc1
Add tests for Settings::Values 2 years ago
elsid 1fbf50fb13
Use PROJECT_SOURCE_DIR in tests 2 years ago
florent.teppe fc3d113d29 fix tests 2 years ago
florent.teppe 3bbf60373a Keep things coherent between references and and cell table 2 years ago
elsid 7db14b3392
Add more tests for printing RefId and clarify some constants 2 years ago
elsid c97df7d770
Check FormIdRefId value in constructor 2 years ago
Petr Mikheev f09a689a4f Merge ESM::RefNum and ESM4::FormId 2 years ago
psi29a edfc6b78c8 Merge branch 'fix_esm3_exterior_cell_ref_id' into 'master'
Use lexicographical comparison in ESM3ExteriorCellRefId::operator< (#7316)

Closes #7316

See merge request OpenMW/openmw!2909
2 years ago
elsid bd10becb65
Use lexicographical comparison in ESM3ExteriorCellRefId::operator< 2 years ago
elsid aa77e727b8
Fix build with clang and libc++
libc++ does not have such function:

apps/openmw_test_suite/esm3/testesmwriter.cpp:73:30: error: no member named 'view' in 'std::ostringstream'
            EXPECT_EQ(stream.view().size(), size);
                      ~~~~~~ ^
2 years ago
elsid 794050df63
Fix and add tests for ESM3ExteriorCellRefId serialization and text representation 2 years ago
elsid 5b14ff4470
Add tests to verify RefId size written to ESM file 2 years ago
elsid fd9f652f43
Add CurrentContentFormatVersion to Esm3SaveLoadRecordTest parameters 2 years ago
elsid e3944f741e
Test save/load for all ESM::CellRef fields 2 years ago
florent.teppe 0d17e20490 Implements serialize/deserialize
fixes test compilation.
2 years ago
florent.teppe 21bd28542a Applies review advice
2d coord hash moved to hash.hpp file
format version adds suffix to be more coherent
don't use ESM::RefId::sEmpty
RefId equality with string_view, conversion to refId unecessary
action teleport remove test that mCellId is empty
removes some const references, when copy is enough
invalid refid => empty refid
removes useless change
2 years ago
florent.teppe d782d37ee2 Make sure Vec2iRefId is trivially copyable on GCC 11.3
std::pair<int, int> isn't trivially copyable on some compilers
so a specific struct is defined, it's an int pair, but it should be recognised by GCC 11.3 as trivially copyable

Vec2iRefId => ESM3ExteriorCellRefId

more explcit name and use mX,mY instead of pair
renamed files and enum
2 years ago
florent.teppe c2182c2fcc Get Rid of ESM::CellId almost everywhere
it was a competing concept from using RefIds for cell.
There is almost no point to it now, except to load older data.
2 years ago
florent.teppe fb6701ac1a ESM::CellId is no longer stored on saves. 2 years ago
florent.teppe 6c6dbccd0a fix crash on reset
fix tests
2 years ago