1
0
Fork 0
mirror of https://github.com/OpenMW/openmw.git synced 2025-01-19 22:53:53 +00:00
Commit graph

667 commits

Author SHA1 Message Date
psi29a
7c14bac7c2 Merge branch 'load_save_composites' into 'master'
Write AiSequence and Script data field by field via decompose function

See merge request OpenMW/openmw!3770
2024-01-19 08:31:43 +00:00
psi29a
c84386aa4b Merge branch 'fix_navigator_update' into 'master'
Fix navmesh update on player changing tile

See merge request OpenMW/openmw!3756
2024-01-19 08:30:22 +00:00
elsid
35d9b18b4c
Add type for normalized VFS path and use for VFS::Manager file map key
This will reduce the number of path normalizations while more places will use
this type. In some cases it also will reduce number of temporary allocations for
new strings.

For now make conversion from and to std::string_view implicit to allow gradual
migration to this type.
2024-01-18 00:03:06 +01:00
elsid
a2147d70cc
Use forward declaration for some VFS types
This will allow to save on preprocessed code size in the future changes.
2024-01-16 01:32:11 +01:00
elsid
6451750890
Write AiSequence and Script data field by field via decompose function
Use the same function to load and save to have single place with field order
definition. Use concepts for overload over different types.
2024-01-14 23:04:56 +01:00
elsid
3592dc4c88
Add tests for saving and loading AiSequence::AiWander 2024-01-12 12:31:40 +01:00
uramer
4ed2af7666 Merge branch 'master' into menuscripts 2024-01-10 23:21:42 +01:00
uramer
962ecc4329 Allow menu scripts to read global sections while a game is loaded 2024-01-10 22:28:57 +01:00
elsid
69cf507db8
Fix navmesh update on player changing tile
In cases when objects are not present on the scene (e.g. generated exterior
cells) navmesh is not updated because area that suppose to be covered with it
was not updated. It was updated only during cell change. This is a regression
from d15e1dca84.

Set TileCachedRecastMeshManager range on NavMeshManager update to make sure it
always covers correct area around player.

Return a union of objects, heightfields and water ranges from
getLimitedObjectsRange intersected with range provided above.
2024-01-09 01:18:45 +01:00
elsid
067957f57b
Use "" to quote apps/openmw includes and remove unused
Using "" makes clangd to find unused includes which makes it quite easy to
remove them.
2024-01-07 17:57:11 +01:00
Evil Eye
e63933efa6 Use NAM9 for stack count 2023-12-31 17:12:46 +00:00
psi29a
67955ac55f Merge branch 'treejunk' into 'master'
Discard additional tokens in non-expression contexts

See merge request OpenMW/openmw!3700
2023-12-30 09:42:26 +00:00
Evil Eye
01eb333fad Merge branch 'generic_object_cache' into 'master'
Refactor GenericObjectCache and add unit tests

See merge request OpenMW/openmw!3689
2023-12-29 21:22:30 +00:00
psi29a
e9f3e5c6d1 Merge branch 'lua_actions_electric_boogaloo' into 'master'
Lua actions take 3

See merge request OpenMW/openmw!2628
2023-12-29 18:56:59 +00:00
uramer
0e2e386dc9 Lua actions take 3 2023-12-29 18:56:59 +00:00
elsid
fd2fc63dd3
Support heterogeneous lookup in GenericObjectCache 2023-12-28 21:58:41 +01:00
elsid
56401a90a1
Merge GenericObjectCache update and remove functions
They are always called together. Single iteration over the items is more
efficient along with locking the mutex only once.
2023-12-28 21:58:33 +01:00
Evil Eye
02775c490b Discard additional tokens in non-expression contexts 2023-12-28 21:49:25 +01:00
AnyOldName3
a497d40689 Merge branch 'vfs_string_view' into 'master'
Use string_view for VFS (#6125)

See merge request OpenMW/openmw!3688
2023-12-26 18:40:25 +00:00
psi29a
5d53eb7566 Merge branch 'russianroulette' into 'master'
BulletNifLoader: Handle NiSkinPartition, reduce false-positive collision generation for NiSwitchNode children

See merge request OpenMW/openmw!3634
2023-12-26 10:33:20 +00:00
elsid
71e33cf8b2
Add unit tests for GenericObjectCache 2023-12-25 14:12:16 +01:00
elsid
0d8dc5aabc
Use string_view for VFS lookups 2023-12-25 12:21:01 +01:00
Alexei Kotov
7e3270abc9 Merge branch 'unsave' into 'master'
Drop support for saves made prior to 0.40

See merge request OpenMW/openmw!3645
2023-12-13 00:33:20 +00:00
Evil Eye
78da1eb41f Merge branch 'settings_values_editor_2' into 'master'
Use settings values for editor (#6876)

See merge request OpenMW/openmw!3633
2023-12-12 17:00:43 +00:00
jvoisin
47b87f1ff2 Merge branch 'reanimaterescaling' into 'master'
Restore animated collision shape rescaling (take 3)

See merge request OpenMW/openmw!3635
2023-12-10 12:55:57 +00:00
Evil Eye
7b8c0d1d88 Remove dropped formats from tests 2023-12-09 19:00:42 +01:00
Alexei Kotov
754c5a8e2a Restore animated collision shape rescaling 2023-12-06 00:54:54 +03:00
Alexei Kotov
b93291840e BulletNifLoader: Handle NiSkinPartition
Add NiSkinPartition recovery helper method
2023-12-04 15:53:24 +03:00
elsid
e1a68d8cf5
Ignore absent default setting value 2023-12-03 17:18:26 +01:00
Evil Eye
194bcb0187 Drop support for save game format 0 (pre 0.37) 2023-12-01 16:37:29 +01:00
elsid
94b085af9e
Add Navigator and Lua API function to find nearest position on navmesh 2023-11-18 23:54:37 +01:00
elsid
1322f7b75b
Deduplicate height field data definition 2023-11-18 22:38:00 +01:00
elsid
9c526b6639
Add Navigator test for zero distance path 2023-11-18 22:35:10 +01:00
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
2023-11-14 01:30:36 +03:00
jvoisin
32a9581394 Merge branch 'deepdepths' into 'master'
Depth flag handling fixes (bug #7380)

See merge request OpenMW/openmw!3568
2023-11-08 22:47:29 +00:00
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
2023-11-08 16:33:16 +00:00
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
2023-11-06 02:19:56 +03:00
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
2023-11-04 00:56:14 +03:00
Alexei Kotov
af08205f19 Support BSShader/BSLightingShader depth flags 2023-11-03 18:38:01 +03:00
Alexei Kotov
9405e5cb3c BulletNifLoader: Replicate node bounds handling more closely 2023-10-19 03:11:55 +03:00
Alexei Kotov
8db631c6b6 Update BSXFlags test 2023-10-15 15:32:59 +03:00
Alexei Kotov
1b93e646b8 Rename Property->NiProperty 2023-09-18 06:44:44 +03:00
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
2023-09-17 19:22:16 +03:00
Alexei Kotov
eb8242946a Improve node record consistency with NifTools 2023-09-16 19:17:40 +03:00
Alexei Kotov
bff9231c3b Refactor NiGeometry/BSTriShape
Don't pass invalid geometry data links to the loaders
2023-09-16 19:17:40 +03:00
Alexei Kotov
deb051639e Refactor NiBoundingVolume 2023-09-15 21:11:12 +03:00
Alexei Kotov
0fe095303f Rename Controller->NiTimeController, update NiTimeController and related code 2023-09-14 03:12:10 +03:00
Alexei Kotov
05d8975ed1 Revise various NIF controller records
Mostly those that don't require external changes
2023-09-14 01:44:41 +03:00
psi29a
42b77342c5 Merge branch 'nif' into 'master'
Modernize NIF loader, part 3

See merge request OpenMW/openmw!3418
2023-09-12 08:34:46 +00:00
Alexei Kotov
a7cc4e6ba6 Rename Node->NiAVObject and update everything directly related
Update NiNode
Simplify RootCollisionNode handling in BulletNifLoader
2023-09-10 07:18:39 +03:00
Alexei Kotov
6872c7144e Rename Transformation->NiTransform and update everything directly related 2023-09-10 07:18:39 +03:00
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
2023-09-10 07:18:39 +03:00
elsid
053a3caf7b
Pass cache expiry delay to GenericResourceManager constructor 2023-09-09 19:35:20 +02:00
Alexei Kotov
89774716fb Modernize NiGeometryData 2023-09-06 23:55:36 +03:00
Alexei Kotov
cfd37dbcc6 Modernize NiTriShapeData 2023-09-06 23:55:36 +03:00
Alexei Kotov
eba0ab444b Modernize NiTriStripsData 2023-09-06 23:55:35 +03:00
Alexei Kotov
5b07a78f2c Modernize skin instance records 2023-09-06 23:55:35 +03:00
Alexei Kotov
2edf3399e2 Modernize extra data records 2023-09-01 01:54:11 +03:00
Petr Mikheev
32f3a16db3 Change FormId::toString to be consistent with RefId. Remove FormIdRefId. 2023-08-27 09:55:06 +02:00
psi29a
5b3e2fbf1c Merge branch 'clickbait' into 'master'
Assign StringRefIds to attributes

See merge request OpenMW/openmw!3256
2023-08-21 18:59:44 +00:00
Petr Mikheev
87eacf774a Control GUI modes from Lua 2023-08-20 17:49:56 +02:00
Evil Eye
e660a9ca16 Assign StringRefIds to attributes 2023-08-20 10:28:46 +02:00
elsid
07c1177b0d
Optimize land lookup on blendmaps sampling
Minimize number of getLand calls by grouping samples per cell.
2023-08-12 02:57:16 +02:00
elsid
ce6ffba986
Move blendmap sampling logic into separate function 2023-08-12 02:45:09 +02:00
elsid
8e7fe44514
Support terrain sample size greater than cell size 2023-08-06 23:47:35 +02:00
Petr Mikheev
957880d515 Add to ESMStore the records that are needed to render ESM4 actors; cleanup usage of records.hpp 2023-08-05 13:18:09 +02:00
Petr Mikheev
5d54ca6fdb Refactor components/esm4 2023-08-05 13:12:24 +02:00
psi29a
c290754077 Revert "Merge branch 'loadSSEAlchemyTable' into 'master'"
This reverts merge request !3267
2023-08-03 19:55:06 +00:00
psi29a
23671ced33 Merge branch 'fix_use_after_move' into 'master'
Fix use after move in InfoOrder::insertInfo

See merge request OpenMW/openmw!3296
2023-08-01 07:25:17 +00:00
psi29a
1d207ed318 Merge branch 'test_load_deleted_dialinfo' into 'master'
Add test to ensure deleted DialInfos are removed

See merge request OpenMW/openmw!3297
2023-07-31 10:50:07 +00:00
elsid
662991dda9
Add test to ensure deleted DialInfos are removed 2023-07-30 14:11:13 +02:00
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.
2023-07-30 13:37:53 +02:00
elsid
dd54857610
Add missing array include 2023-07-29 00:29:03 +02:00
psi29a
81deb3796b Merge branch 'loadSSEAlchemyTable' into 'master'
Load SSE alchemy table

See merge request OpenMW/openmw!3267
2023-07-28 07:46:20 +00:00
alekulyn
d2896945e8 Load SSE alchemy table 2023-07-28 07:46:20 +00:00
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
2023-07-27 09:34:50 +00:00
Petr Mikheev
9b511fdf7a Load ESM4 actors 2023-07-26 11:47:50 +02:00
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.
2023-07-22 18:08:40 +02:00
psi29a
9410eed9e5 Merge branch 'bump-cmake-version' into 'master'
Bump required CMake version to 3.16

See merge request OpenMW/openmw!3242
2023-07-20 17:40:29 +00:00
psi29a
ec9b4c4563 Merge branch 'caius4friends' into 'master'
Fix dialogue insertion again

See merge request OpenMW/openmw!3212
2023-07-20 15:29:57 +00:00
psi29a
03dbe1c9f3 Merge branch 'stringrefidskills' into 'master'
Assign StringRefIds to skills

See merge request OpenMW/openmw!3146
2023-07-20 07:15:49 +00:00
AnyOldName3
34fcfb63cf Eliminate redundant version checks 2023-07-20 00:43:56 +01:00
Evil Eye
ac9378fa08 Replace Skill::mIndex with Skill::refIdToIndex 2023-07-13 18:55:21 +02:00
Evil Eye
c59032fd66 Make RefId::deserializeText return an empty RefId if no pre-existing StringRefId can be found 2023-07-13 16:49:23 +02:00
Evil Eye
974b4739fa Add a test for three way merges 2023-07-12 21:38:20 +02:00
Alexei Dobrohotov
2de8c6b3c0 Don't discard collision for the entire tree if BSXFlags marker flag is set 2023-07-10 23:37:37 +03:00
unknown
09147934fb Adjust unit tests 2023-07-09 18:48:14 +02:00
elsid
a6dbd819a1
Fix writing IndexRefId to ESM3
Use correct enum value.
2023-07-04 11:34:52 +02:00
psi29a
6601b0cb15 Merge branch 'fastandloose' into 'master'
Drop support for --fs-strict

Closes #7394

See merge request OpenMW/openmw!3093
2023-07-02 19:24:14 +00:00
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
2023-06-20 09:59:06 +00:00
elsid
04215ca9ec
Use settings values for Fog settings 2023-06-15 22:01:14 +02:00
psi29a
807893eb45 Merge branch 'clickbait' into 'master'
Mostly dehardcode skills

See merge request OpenMW/openmw!3112
2023-06-15 07:03:13 +00:00
Petr Mikheev
3b43cc2aea Lua: change obj.rotation from Euler angles to Quaternion 2023-06-12 00:16:42 +02:00
elsid
e6e6b65ab3
Remove redundant manipulators 2023-06-10 13:14:52 +02:00
Evil Eye
e791d2b498 Fix unit tests 2023-06-08 21:10:11 +02:00
Evil Eye
eeda48ec50 Drop support for --fs-strict 2023-06-08 21:10:09 +02:00
Evil Eye
da4e04522b More closely replicate Morrowind.exe's locks 2023-06-08 20:10:32 +02:00
Evil Eye
65b22975c9 Remove SkillEnum 2023-06-08 18:35:50 +02:00
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
2023-06-03 08:17:19 +00:00
elsid
78b3f7288a
Support UTF-8 by StringRefId::toDebugString 2023-06-01 22:16:47 +02:00