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