1
0
Fork 0
mirror of https://github.com/OpenMW/openmw.git synced 2025-01-31 15:15:40 +00:00
Commit graph

8138 commits

Author SHA1 Message Date
Alexei Kotov
1aabc9aee5 Read bhkNPCollisionObject, bhkPhysicsSystem and bhkRagdollSystem 2023-09-20 08:27:20 +03:00
Alexei Kotov
b5f1d0a91b Fix formatting 2023-09-20 08:15:48 +03:00
Alexei Kotov
ad20384750 Read NiLightDimmerController 2023-09-20 07:14:07 +03:00
Alexei Kotov
312e32717c Read bhkConvexListShape and bhkConvexSweepShape 2023-09-20 07:14:03 +03:00
Alexei Kotov
0eb8d28e81 Read bhkBlendCollisionObject 2023-09-20 05:57:43 +03:00
Alexei Kotov
70877c94bc Read BSNiAlphaPropertyTestRefController 2023-09-20 05:26:41 +03:00
Alexei Kotov
9a2d385d87 Read NiAdditionalGeometryData records 2023-09-20 05:06:38 +03:00
Alexei Kotov
ecf644bda5 Read bhkCylinderShape 2023-09-20 05:06:38 +03:00
Alexei Kotov
e207285323 Read BSFrustumFOVController and BSKeyframeController 2023-09-20 05:06:38 +03:00
Alexei Kotov
5f504688ad Read BSMultiBoundAABB 2023-09-20 05:06:38 +03:00
Alexei Kotov
77c5882622 Read various FO3 shader properties
BSDistantTreeShaderProperty, DistantLODShaderProperty, HairShaderProperty, Lighting30ShaderProperty, SkyShaderProperty, TallGrassShaderProperty, TileShaderProperty, VolumetricFogShaderProperty, WaterShaderProperty
2023-09-20 05:06:38 +03:00
Alexei Kotov
30b842dd1e Read BSMeshLODTriShape and BSDynamicTriShape
Slightly clean up BSVertexData loading
Fix skin tint alpha loading in BSLightingShaderProperty
2023-09-20 05:06:38 +03:00
Alexei Kotov
a39182f7de Read a bunch more extra data records
NiStringsExtraData, BSExtraData, BSBoneLODExtraData, BSClothExtraData, BSDecalPlacementVectorExtraData, BSDistantObjectExtraData, BSDistantObjectLargeRefExtraData, BSWArray
2023-09-20 02:57:37 +03:00
psi29a
3ae189dda1 Merge branch 'nifcouriersix' into 'master'
Modernize NIF loader, part 6

See merge request OpenMW/openmw!3435
2023-09-19 08:37:23 +00:00
Alexei Kotov
82eed09604 Further adjust FO3+ shader properties based on nifly definitions 2023-09-19 00:12:05 +03:00
psi29a
eb688b603d Merge branch 'refnum_ref' into 'master'
Replace `const ESM::RefNum&` -> `ESM::RefNum`

See merge request OpenMW/openmw!3432
2023-09-18 08:35:45 +00:00
Alexei Kotov
4db994cda9 Remap FO76 shader types 2023-09-18 06:44:44 +03:00
Alexei Kotov
81441bc963 Fix formatting and typos 2023-09-18 06:44:44 +03:00
Alexei Kotov
1b93e646b8 Rename Property->NiProperty 2023-09-18 06:44:44 +03:00
Alexei Kotov
defe5ba5e7 Remove last remnants of deprecated NIFStream methods 2023-09-18 06:44:44 +03:00
Alexei Kotov
c551f23667 Update NIF property loading, second pass
Refactor all remaining NIF properties
2023-09-18 06:44:44 +03:00
Alexei Kotov
080d7d2c13 Refactor NiTexturingProperty, load everything 2023-09-18 06:44:44 +03:00
Alexei Kotov
18e4af04b3 Rewrite BSVertexData loading and read FO4 geometry properly 2023-09-17 20:15:30 +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
5b0bc97db0 Refactor NiSwitchNode and NiLODNode 2023-09-15 21:11:12 +03:00
Alexei Kotov
c9300cac31 Update NIF node records, first pass 2023-09-15 21:11:09 +03:00
Petr Mikheev
c67b866a11 Replace const ESM::RefNum& -> ESM::RefNum 2023-09-15 19:38:09 +02:00
psi29a
12159d95f3 Merge branch 'music' into 'master'
Rework music system

See merge request OpenMW/openmw!3372
2023-09-15 07:11:31 +00:00
psi29a
59f8034442 Merge branch 'sizedreads' into 'master'
Replace more sized reads

See merge request OpenMW/openmw!3425
2023-09-15 07:03:18 +00:00
Alexei Kotov
2f8229a54d Fix bit shift 2023-09-14 07:01:12 +03:00
Alexei Kotov
f271c4305a Fix formatting 2023-09-14 05:11:40 +03:00
Alexei Kotov
8856dff3db Refactor NiParticleSystemController and update definitions 2023-09-14 04:57:55 +03:00
Alexei Kotov
d55ba0cfa2 Cleanup 2023-09-14 03:12:10 +03:00
Alexei Kotov
0fe095303f Rename Controller->NiTimeController, update NiTimeController and related code 2023-09-14 03:12:10 +03:00
Alexei Kotov
04d3f6a42d Update NiPathController
Support 10.1.0.0+ NiPathController loading
2023-09-14 03:12:10 +03:00
Alexei Kotov
ca85820431 Refactor NiUVController 2023-09-14 02:07:24 +03:00
Alexei Kotov
b0dfd74562 NIFStream: remove getBoolean, getString 2023-09-14 01:54:27 +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
Alexei Kotov
19d1f6f3f5 Rewrite typed NiInterpolator loading 2023-09-14 00:34:15 +03:00
Alexei Kotov
6d82f8b00d Refactor NiKeyframeController and NiTransformInterpolator 2023-09-14 00:03:25 +03:00
Alexei Kotov
735a948452 Refactor NiMultiTargetTransformController 2023-09-13 23:43:24 +03:00
Alexei Kotov
208bfa9e21 Refactor NiMaterialColorController 2023-09-13 23:37:28 +03:00
Alexei Kotov
a224bea6d4 Rewrite NiBlendInterpolator+friends loading 2023-09-13 23:15:14 +03:00
Evil Eye
b59739a529 Replace more sized reads 2023-09-13 21:51:42 +02:00
Alexei Kotov
956ede52fb NIFStream: remove getShort, getMatrix3, getQuaternion 2023-09-13 21:56:02 +03:00
Andrei Kortunov
e1cae5a029 Rework music system 2023-09-13 09:11:07 +04:00
psi29a
090da90302 Merge branch 'factions' into 'master'
Implement Lua API for factions

See merge request OpenMW/openmw!3405
2023-09-12 19:41:54 +00: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
Andrei Kortunov
6ee86dea82 Implement Lua API for factions (feature 7468) 2023-09-12 09:49:03 +04:00
psi29a
39a209cb78
Merge branch 'settings_values_models' into 'master'
Use settings values for Models settings (#6876)

See merge request OpenMW/openmw!3413
2023-09-11 06:55:17 +00:00
psi29a
76b0aaa110
Merge branch 'mistify' into 'master'
Fix NiRotatingParticlesData loading in Mistify

See merge request OpenMW/openmw!3417
2023-09-11 06:51:24 +00:00
Alexei Kotov
9b801b0876 Fix NiParticlesData loading in Mistify 2023-09-10 19:38:05 +03:00
Alexei Kotov
4dd2f34e30 Fix Windows build 2023-09-10 09:20:06 +03: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
878d4ddaa7 Update record pointer loading 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
535290a83d Update NIF Reader class and related code
Update BSStreamHeader definitions
Fix 10.0.1.8 loading
Explicitly avoid loading 20.3.1.2
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
elsid
ad509bb954
Use settings values for Models settings 2023-09-09 13:12:08 +02:00
psi29a
61937e19a9
Merge branch 'fixstringformat' into 'master'
Fix string format

See merge request OpenMW/openmw!3408
2023-09-09 08:06:38 +00:00
Alexei Kotov
b9f552b7f4 Preallocate lines in NiLinesData 2023-09-08 15:58:26 +03:00
Kindi
c77b88cd38 fix string format 2023-09-08 10:39:28 +08:00
Alexei Kotov
145ce8f924 Deduplicate some version checks, avoid resizing twice 2023-09-06 23:55:37 +03:00
Alexei Kotov
b7c69d109f Use Fallout 3 stream version constant in NiParticlesData 2023-09-06 23:55:37 +03:00
Alexei Kotov
bf64ad6470 Further cleanup 2023-09-06 23:55:37 +03:00
Alexei Kotov
5b8f574be3 Update keygroup/morph loading 2023-09-06 23:55:36 +03:00
Alexei Kotov
efe1c66536 Further cleanup in NiGeometryData, update NiParticlesData to 20.2.0.7 2023-09-06 23:55:36 +03:00
Alexei Kotov
fd3b24e2e6 Make better use of osg::BoundingSpheref in the NIF loader 2023-09-06 23:55:36 +03:00
Alexei Kotov
0154bb78df Modernize NiSkinPartition 2023-09-06 23:55:36 +03:00
Alexei Kotov
6ac271d5c0 Modernize NiParticlesData and NiSkinData 2023-09-06 23:55:36 +03:00
Alexei Kotov
89774716fb Modernize NiGeometryData 2023-09-06 23:55:36 +03:00
Alexei Kotov
50a5d53b41 Modernize NiKeyframeData 2023-09-06 23:55:36 +03:00
Alexei Kotov
cfd37dbcc6 Modernize NiTriShapeData 2023-09-06 23:55:36 +03:00
Alexei Kotov
56ee2588a5 Fix NiSourceTexture loading for internal textures 2023-09-06 23:55:36 +03:00
Alexei Kotov
5e8f9e7dd9 Modernize NiPixelData 2023-09-06 23:55:36 +03:00
Alexei Kotov
523e7e8228 Modernize NiRotatingParticlesData and NiVisData 2023-09-06 23:55:35 +03:00
Alexei Kotov
eba0ab444b Modernize NiTriStripsData 2023-09-06 23:55:35 +03:00
Alexei Kotov
fda6b0b4f8 Modernize NiUVData, NiLinesData, NiTriBasedGeomData 2023-09-06 23:55:35 +03:00
Alexei Kotov
384a398b62 Modernize NiMorphData, palette and BSBound records 2023-09-06 23:55:35 +03:00
Alexei Kotov
5b07a78f2c Modernize skin instance records 2023-09-06 23:55:35 +03:00
psi29a
690a237896
Merge branch 'init_field' into 'master'
Init structs to make sure that we do not store a random data

See merge request OpenMW/openmw!3400
2023-09-05 07:33:39 +00:00
psi29a
08b9da0023
Merge branch 'static_copy' into 'master'
Do not copy a static string

See merge request OpenMW/openmw!3399
2023-09-05 07:33:09 +00:00
psi29a
58a3fcb972
Merge branch 'var_copy' into 'master'
Do not copy vector

See merge request OpenMW/openmw!3401
2023-09-05 07:32:57 +00:00
Andrei Kortunov
a849a053be Do not copy vector 2023-09-04 16:50:45 +04:00
psi29a
1a4b29f014
Merge branch 'fix_terrain_cache' into 'master'
Terrain cache fixes and optimizations

Closes #7557

See merge request OpenMW/openmw!3388
2023-09-04 09:39:46 +00:00
Andrei Kortunov
5d51f3ea26 Init structs to make sure that we do not store a random data 2023-09-04 12:19:56 +04:00
Andrei Kortunov
fae9ced5f9 Do not copy a static string 2023-09-04 10:24:34 +04:00
psi29a
0b74146b05
Merge branch 'luautflib' into 'master'
Lua utf-8 support

Closes #6505

See merge request OpenMW/openmw!3327
2023-09-03 17:05:27 +00:00
Kindi
7eb456a169 refactoring for readability 2023-09-03 19:20:59 +08:00
psi29a
ccc465db27
Merge branch 'nif' into 'master'
Modernize NIF loader, part 1

See merge request OpenMW/openmw!3394
2023-09-03 10:34:46 +00:00
Kindi
8798217b51 remove const keyword from all string_view 2023-09-02 12:21:07 +08:00
Kindi
db287b2bc6 dont use pass by const reference for small types in func arguments 2023-09-01 19:35:50 +08:00
Kindi
dd61caa96d using misc::stringutils::format and simplify relativeposition function 2023-09-01 19:26:18 +08:00
psi29a
3e99103beb
Merge branch 'rtd' into 'master'
Show OpenMW version and Lua API revision in documentation

Closes #6149

See merge request OpenMW/openmw!3382
2023-09-01 08:06:58 +00:00
psi29a
64bdbe339d
Merge branch 'starfieldbsa' into 'master'
Support Starfield BA2s

See merge request OpenMW/openmw!3392
2023-09-01 08:06:25 +00:00
Alexei Kotov
2edf3399e2 Modernize extra data records 2023-09-01 01:54:11 +03:00
Alexei Kotov
8a7e8a89ac Modernize Bethesda Havok records 2023-09-01 01:54:11 +03:00
Alexei Kotov
087114e55b Print unsupported interpolator record names 2023-09-01 01:27:03 +03:00
Alexei Kotov
bb6e008801 Modernize dynamic effects 2023-08-31 22:06:21 +03:00
Petr Mikheev
d39552962f Validate version of resources 2023-08-31 20:56:02 +02:00
Petr Mikheev
f260fa006e Show OpenMW version and Lua API revision in documentation. 2023-08-31 20:56:02 +02:00
Alexei Kotov
2e847a12c4 Modernize NiSourceTexture and BSShaderTextureSet 2023-08-31 20:50:30 +03:00
Alexei Kotov
fb8ead2bd4 Rename nif/controlled to nif/texture 2023-08-31 18:59:33 +03:00
Alexei Kotov
4a88726aba Move particle modifiers into a dedicated file 2023-08-31 18:43:13 +03:00
Alexei Kotov
1d05aa2e37 Modernize particle modifiers 2023-08-31 18:16:11 +03:00
psi29a
2cd17830d3
Merge branch 'nifreorg' into 'master'
Reorganize NIF record lists

See merge request OpenMW/openmw!3390
2023-08-31 14:18:26 +00:00
Alexei Kotov
b2bb19ae4d Support Starfield BA2s 2023-08-30 21:57:30 +03:00
Alexei Kotov
f8b2967dab Alphabetize NIF record type list 2023-08-30 19:20:26 +03:00
Alexei Kotov
4140f9da3c Reorganize the list of recognized NIF records 2023-08-30 19:20:26 +03:00
Alexei Kotov
4d717ade6c Allow BSA string tables to contain padding 2023-08-30 17:39:20 +03:00
Kindi
af58b531da change function names and add documentation in overview.rst 2023-08-30 02:33:27 +08:00
elsid
915a8df942
Use struct for GenericObjectCache items 2023-08-29 20:25:21 +02:00
elsid
5f4bd498cf
Move cached value into container to be removed 2023-08-29 20:25:21 +02:00
elsid
d3dca99a76
Preload terrain in single pass
Otherwise there is lodFlags mismatch because some of the neighbours are removed
during preloading. This makes rendering culling create land chunk nodes again
for the same position, lod because lodFlags are different.
2023-08-29 20:25:21 +02:00
elsid
52ab47771c
Initialize expiry delay for all GenericResourceManager instances 2023-08-29 20:25:21 +02:00
elsid
6d120f92e0
Lookup for terrain template using std::map::lower_bound instead of linear search 2023-08-29 20:25:20 +02:00
elsid
b6a3d3c906
Make BaseResourceManager abstract 2023-08-29 20:25:20 +02:00
elsid
3202900fd3
Make GenericResourceManager::setExpiryDelay final 2023-08-29 20:25:20 +02:00
psi29a
15a24a5af6 Merge branch 'formid' into 'master'
Change FormId::toString to be consistent with RefId. Remove FormIdRefId.

See merge request OpenMW/openmw!3378
2023-08-28 11:32:04 +00:00
psi29a
07edabdc75 Merge branch 'optimize_get_land' into 'master'
Optimize Storage::getLand calls

See merge request OpenMW/openmw!3379
2023-08-28 07:01:46 +00:00
Kindi
532230254b add documentation 2023-08-28 02:37:52 +08:00
Kindi
92842cedf5 len,codepoint,offset 2023-08-27 16:12:52 +08:00
Petr Mikheev
32f3a16db3 Change FormId::toString to be consistent with RefId. Remove FormIdRefId. 2023-08-27 09:55:06 +02:00
elsid
816d3772b9
Cache absent land object
This allows to save on lookup in store.
2023-08-27 01:32:36 +02:00
elsid
eba553821b
Use std::vector for LandCache implementation 2023-08-27 01:32:36 +02:00
Evil Eye
10f1e9a4e0 Load the lowest faction reaction for every faction 2023-08-25 16:57:27 +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
psi29a
86f15fa194 Merge branch 'ui' into 'master'
Control GUI from Lua

See merge request OpenMW/openmw!3236
2023-08-21 11:32:24 +00:00
psi29a
7233277d27 Merge branch 'compressedbsagozoomzoom' into 'master'
Rewrite compressed BSA loading

See merge request OpenMW/openmw!3361
2023-08-21 09:29:28 +00:00
psi29a
1c2f92cac9 Merge branch 'use_command_keys' into 'master'
Remove special handling for Mac command key, since MyGUI now switches automatically

See merge request OpenMW/openmw!3363
2023-08-21 09:27:42 +00:00
Zackhasacat
349bad4f98 Remove special handling for Mac command key, since MyGUI now switches automatically 2023-08-21 09:27:42 +00:00
psi29a
cf950c2e4a Merge branch 'sizeable' into 'master'
Replace more explicitly sized reads and variable width integers

See merge request OpenMW/openmw!3364
2023-08-21 09:27:32 +00:00
psi29a
42469c4b54 Merge branch 'crash_temporary_ui_element' into 'master'
Fix crash #7469

See merge request OpenMW/openmw!3367
2023-08-21 09:25:30 +00:00
Petr Mikheev
87eacf774a Control GUI modes from Lua 2023-08-20 17:49:56 +02:00
Petr Mikheev
f86a45d60a [Lua] add __len metafunction for readonly objects 2023-08-20 17:49:56 +02:00
uramer
e1cbeb0d3b Don't free ui element's shared_ptr right before destroying it 2023-08-20 16:02:38 +02:00
psi29a
c5789b5543 Merge branch 'Fix-BA2GNRLFile-GetFile' into 'master'
Fix BA2 general reading file

See merge request OpenMW/openmw!3365
2023-08-20 11:52:41 +00:00
psi29a
ab798be320 Merge branch 'fix_scrollbars' into 'master'
Do not use deprecated MyGUI properties

Closes #5896

See merge request OpenMW/openmw!3320
2023-08-20 11:04:23 +00:00
Alexei Kotov
ab4ed390fc Rewrite compressed BSA loading 2023-08-20 13:19:32 +03:00
Evil Eye
62f47acf6b Replace more explicitly sized reads and variable width integers 2023-08-20 11:34:05 +02:00
Evil Eye
e660a9ca16 Assign StringRefIds to attributes 2023-08-20 10:28:46 +02:00
psi29a
11ae1a1fcb Merge branch 'nifstreamingservice' into 'master'
NIFStream rewrite/refactoring/rewhatever

See merge request OpenMW/openmw!3281
2023-08-19 22:17:25 +00:00
elsid
bda29819cf
Reduce include dependency for land records 2023-08-19 01:30:17 +02:00
elsid
53c3f95ac8
Avoid redundant copy for LandData underlying data 2023-08-19 01:30:17 +02:00
elsid
955790dc31
Split ESM::Land::loadData 2023-08-19 01:30:17 +02:00
elsid
a027cd898b
Use only cell position to detect cell change 2023-08-19 01:30:17 +02:00
elsid
28614730da
Pass land reference to LandObject constructor 2023-08-19 01:30:17 +02:00
elsid
e6f35373b5
Remove ESM::LandObject dependency on ESM::Land 2023-08-19 01:30:16 +02:00
elsid
8a88a2d61f
Make ESM::LandData::mLoadFlags private 2023-08-19 01:30:16 +02:00
elsid
a17cb0ff0e
Remove unused ESM4::Land fields 2023-08-19 01:30:16 +02:00
elsid
401e748aa0
Avoid redundant casts and use static_cast 2023-08-19 01:30:16 +02:00
elsid
9aa9ce48c9
Use proper naming style for ESM4::Land static variables 2023-08-19 01:30:16 +02:00
elsid
e4e857f51f
Remove redundant ESM4::Land default constructor 2023-08-19 01:30:16 +02:00
elsid
bd426bac5c
Use static_cast 2023-08-19 01:30:16 +02:00
elsid
6f3b7072ac
Change mWnam type to std::array 2023-08-19 01:30:16 +02:00
elsid
0cb37742cb
Replace Land::swap by move assignment 2023-08-19 01:30:15 +02:00
elsid
c88e9dee27
Use unique_ptr to store LandData in ESM::Land 2023-08-19 01:30:15 +02:00
elsid
d0f8ab5767
Move getLandData definitions to class definition 2023-08-19 01:30:15 +02:00
elsid
07599d0bb0
Move condLoad to unnamed namespace 2023-08-19 01:30:13 +02:00
Cédric Mocquillon
3b1d6a7e62 Use the right size 2023-08-18 21:32:49 +02:00
elsid
dad0cb3349
Move transposeTextureData to unnamed namespace 2023-08-18 18:30:06 +02:00
elsid
a2f2b1a3d1
Remove redundant ESM::Land and LandData default constructors 2023-08-18 18:30:06 +02:00
elsid
95a39b3281
Use sized types for land records members 2023-08-18 18:30:06 +02:00
elsid
f15ccec0d9
Remove unused ESM::Land functions 2023-08-18 18:30:05 +02:00
psi29a
16628a766f Merge branch 'fallout4' into 'master'
ESM4 Loader: initial Fallout 4 support

See merge request OpenMW/openmw!3347
2023-08-18 16:22:40 +00:00
psi29a
2b78552dac Merge branch 'themostfashionablelandintes5' into 'master'
Only use loaded data for ESM4 terrain

See merge request OpenMW/openmw!3352
2023-08-18 16:21:33 +00:00
Alexei Kotov
4b38db4a69 Only use loaded data for ESM4::Land
Prevents broken vertex colors in cells that lack vertex colors
2023-08-18 16:48:55 +03:00
elsid
db16caa963
Support yaml-cpp 0.8.0 2023-08-18 15:08:00 +02:00
Petr Mikheev
4211665ede Merge branch 'sounds' into 'master'
Lua bindings for sound functions

See merge request OpenMW/openmw!3247
2023-08-18 09:15:24 +00:00
psi29a
5389d32b5c Merge branch 'applycontentfile_coverity' into 'master'
Fix coverity warning in esm3/globalscript.cpp

See merge request OpenMW/openmw!3325
2023-08-18 08:22:26 +00:00
psi29a
adb5774aa9 Merge branch 'optimize_get_blendmaps' into 'master'
Optimize land lookup on blendmaps sampling

See merge request OpenMW/openmw!3333
2023-08-18 08:22:16 +00:00
psi29a
e21e3a0d46 Merge branch 'time' into 'master'
Pause/resume the game in Lua scripts

See merge request OpenMW/openmw!3317
2023-08-18 08:22:04 +00:00
Alexei Kotov
1bd2667c66 Rename REFR::XTEL transition interior field 2023-08-17 23:28:35 +03:00
Alexei Kotov
1a62b2e6b5 ESM4: use switch-cases when relevant 2023-08-17 22:14:40 +03:00
Alexei Kotov
42c6b3b993 Use VER_100 named constant, note precautions 2023-08-17 21:36:49 +03:00
Kindi
6d02c31720 utf8.codes 2023-08-18 00:01:11 +08:00
Alexei Kotov
4e156f2a7d NIFStream: improve handling of ranges and aligned types 2023-08-17 09:15:45 +03:00
Alexei Kotov
57144accf6 Phase out NIFStream::get[Types] 2023-08-17 09:15:45 +03:00
Alexei Kotov
e7bbfed1fd Read BSTriShape bounds into array 2023-08-17 09:15:45 +03:00
Alexei Kotov
6dca3e68a6 NIFStream: don't read vectors of zero length 2023-08-17 09:15:45 +03:00
Alexei Kotov
d078907dcb NIFStream: rewrite loading for everything
Replace overloading with read() template specializations for every type that needs specific handling
Make use of the new read() or get() in all methods
Move complex string-related methods to implementation
2023-08-17 09:15:45 +03:00
Alexei Kotov
ce13f05187 NIFStream: clean up comments 2023-08-17 09:15:45 +03:00
Alexei Kotov
e8f9a918ae NIFStream: use the right function for readArray 2023-08-17 09:15:45 +03:00
Alexei Kotov
4f549c267f NIFStream: rename input stream and file methods
To conform to modern style conventions
2023-08-17 09:15:45 +03:00
Alexei Kotov
62d643f668 NIFStream: Drop LittleEndian from reading methods
This is just noise. We don't clarify reading endianness for any other file format.
2023-08-17 09:15:45 +03:00
Alexei Kotov
aed440ce64 Clean up error handling in NIFStream reading
No particular reason to introduce is_arithmetic specifically for 16-bit floats, there's no significant code duplication
Bypassing getBoolean() could be error-prone for records that are shared between pre-4.2 and post-4.2 formats
2023-08-17 09:15:45 +03:00
Alexei Kotov
9da6ce23e9 Maybe load FO4 sound descriptor records 2023-08-17 05:30:39 +03:00
Alexei Kotov
da9a834ce8 Maybe load FO4 body part data records 2023-08-17 04:54:06 +03:00
Alexei Kotov
f3c1b0e7eb Load FO4 form lists 2023-08-17 04:43:47 +03:00
Alexei Kotov
9ec68e864c Load ESM4 idle animations correctly for every game 2023-08-17 04:33:01 +03:00
Alexei Kotov
07c85addb2 Cleanup 2023-08-17 02:14:22 +03:00
Alexei Kotov
f7a85be504 Maybe load FO4 armor addon records
You still can't load into the game because of some unclear localization string problem.
But if getLocalizedString doesn't throw an exception, then it'll work. Sort of.
2023-08-17 02:14:22 +03:00
Alexei Kotov
f302f06e98 Maybe load FO4 dialogue records
The entirety of Fallout4.esm can be read now (well, in esmtool, at least)
2023-08-17 02:14:22 +03:00
Alexei Kotov
b7efdc4add Use the correct filenames for FO4 string tables 2023-08-17 02:14:22 +03:00
Alexei Kotov
cb7e9f4a01 Maybe load FO4 quest records 2023-08-17 02:14:22 +03:00
Alexei Kotov
db66149891 Skip LAND::MPCD subrecord 2023-08-17 02:14:22 +03:00
Alexei Kotov
a2e185d0f9 Maybe load FO4 worldspace records 2023-08-17 02:14:22 +03:00
Alexei Kotov
47af96eb12 Generalize extended storage subrecord handling 2023-08-17 02:14:22 +03:00
Alexei Kotov
ed75c0b311 Maybe load FO4 placed grenade subrecords 2023-08-17 02:14:22 +03:00
Alexei Kotov
3b3545fa58 Fix cell grid and owner subrecord loading for FO4 2023-08-17 02:14:22 +03:00
Alexei Kotov
ae828064a4 ESM4::NAVM: fix loading of NVNM after XXXX 2023-08-17 02:14:22 +03:00
Alexei Kotov
8822df7e4a Maybe load FO4 placed NPC records 2023-08-17 02:14:22 +03:00
Alexei Kotov
0a514db0b5 Skip more FO4 navmesh data 2023-08-17 02:14:22 +03:00
Alexei Kotov
10e841b00f Fix formatting 2023-08-17 02:14:22 +03:00
Alexei Kotov
95488d6ec9 Maybe load FO4 cell references 2023-08-17 02:14:22 +03:00
Alexei Kotov
5a73b351e2 Maybe load FO4 cell records 2023-08-17 02:14:22 +03:00
Alexei Kotov
2b1ca84cb2 Skip FO4 navmesh data 2023-08-17 02:14:22 +03:00
Alexei Kotov
6c82aef29f Maybe load FO4 region records 2023-08-17 02:14:22 +03:00
Alexei Kotov
bcaa402315 Maybe load FO4 levelled item records 2023-08-17 02:14:22 +03:00
Alexei Kotov
1b29077206 Maybe load FO4 terminal records 2023-08-17 02:14:22 +03:00
Alexei Kotov
32f8d08dd3 Maybe load FO4 note records 2023-08-17 02:14:22 +03:00
Alexei Kotov
cfa19cf719 Maybe load FO4 levelled actor records 2023-08-17 02:14:22 +03:00
Alexei Kotov
4dc4add62d Maybe load FO4 NPC records 2023-08-17 02:14:22 +03:00
Alexei Kotov
e9f9da98cf Maybe load FO4 ammunition records 2023-08-17 02:14:21 +03:00
Alexei Kotov
dcb791083e Maybe load FO4 weapon records 2023-08-17 02:14:21 +03:00
Alexei Kotov
ad8d691352 Load object templates in FO4 NPC and weapon records 2023-08-17 02:14:21 +03:00
Alexei Kotov
a188a90023 Maybe load FO4 furniture records 2023-08-17 02:14:21 +03:00
Alexei Kotov
4237da5dfd Maybe load FO4 flora records 2023-08-17 02:14:21 +03:00
Alexei Kotov
a9454fdc0a Improve FO3 idle marker record loading 2023-08-17 02:14:21 +03:00
Alexei Kotov
90d4f375b8 Maybe load FO4 moveable static records 2023-08-17 02:14:21 +03:00
Alexei Kotov
4d3edec59f Maybe load FO4 static collection records 2023-08-17 02:14:21 +03:00
Alexei Kotov
a3069ea863 Maybe load FO4 misc records 2023-08-17 02:14:21 +03:00
Alexei Kotov
f2449df2f7 Maybe load FO4 light records 2023-08-17 02:14:21 +03:00
Alexei Kotov
24d7a096ba Maybe load FO4 door records 2023-08-17 02:14:21 +03:00
Alexei Kotov
2b9b05c010 Maybe load FO4 container records 2023-08-17 02:14:21 +03:00
Alexei Kotov
60813345ae ESM4: Acknowledge all model data records 2023-08-17 02:14:15 +03:00
Alexei Kotov
d9ebdc6e41 Maybe load FO4 book records 2023-08-17 02:12:32 +03:00
Alexei Kotov
aedcc28294 Maybe load FO4 armor records 2023-08-17 02:12:32 +03:00
Alexei Kotov
db6f76fea8 Skip more CIS1/CIS2 and skip all PRTN subrecords
Avoid formatting problems with newly added skipped FO4 blocks
2023-08-17 02:12:32 +03:00
Alexei Kotov
3118800dbd Skip ESM4 destructible data for all relevant records 2023-08-17 02:12:32 +03:00
Alexei Kotov
271c14030a Maybe load FO4 ingestible records 2023-08-17 02:12:32 +03:00
Alexei Kotov
0efc9865f6 Alphabetize SubRecordTypes and include all subrecords used in FO4
SUA_BTXT => SUB_BTXT
2023-08-17 02:12:32 +03:00
Alexei Kotov
d15f301193 Load FO4 activator records 2023-08-17 02:12:32 +03:00
Alexei Kotov
a2ed295f1f Update ESM4 LTEX loading
Load grasses into a list
Fix FO4 loading
Load Havok parameters for FNV
2023-08-17 02:12:32 +03:00
Alexei Kotov
d74df61ce5 Load FO4 acoustic space records 2023-08-17 02:12:32 +03:00
Alexei Kotov
5bce6d8d44 Maybe load some FO4 static records 2023-08-17 02:12:32 +03:00
Alexei Kotov
1a7d68cd33 Skip FO4 SOUN::REPT 2023-08-17 02:12:32 +03:00
Alexei Kotov
c706a46dc4 ESM4::RACE: fix loading more than 5 head parts in FO4 2023-08-17 02:12:31 +03:00
Alexei Kotov
426eae3843 ESM4::RACE: don't use current index if it's unset
To be safer. Doesn't help with FO4 segfaults though
2023-08-17 02:12:31 +03:00
Alexei Kotov
4605894a5a Updating RACE for FO4, first pass 2023-08-17 02:12:31 +03:00
Alexei Kotov
0c05bbea37 Skip CTDA target condition subrecords 2023-08-17 02:12:31 +03:00
Alexei Kotov
22fb744751 Skip PRPS object property subrecords 2023-08-17 02:12:31 +03:00
Alexei Kotov
84d693324b ESM4: read texture set material 2023-08-17 02:12:31 +03:00
Alexei Kotov
e426dd045f Read string GMSTs correctly in >=TES5 2023-08-17 02:12:31 +03:00
Alexei Kotov
0e94ff4a73 Support unsigned int GMSTs 2023-08-17 02:12:31 +03:00
Alexei Kotov
891be9744d Skip TES4::TNAM 2023-08-17 02:12:31 +03:00
psi29a
c9f03b4174 Merge branch 'sizeup' into 'master'
Replace more sized reads

See merge request OpenMW/openmw!3322
2023-08-15 06:28:59 +00:00
Andrei Kortunov
7ce9fc25c5 Implement Lua bindings for sound system 2023-08-15 10:28:29 +04:00
Zackhasacat
3e8a1cce7c Load ESM4 Terminal objects, add lua bindings for them 2023-08-15 06:23:38 +00:00
jvoisin
4cf80cdac2 Merge branch 'fix_esm4_ai' into 'master'
Fix AI in ESM4 cells

See merge request OpenMW/openmw!3338
2023-08-14 22:00:24 +00:00
Kindi
d9c102e14d utf8.char 2023-08-13 23:37:31 +08:00
elsid
5abbc56bf2
Use proper cell size for ESM4 cells in CoordinateConverter 2023-08-13 02:24:22 +02:00
Alexei Kotov
ee7accf3bd Don't read affected nodes for 10.0.1.0 NiDynamicEffect 2023-08-12 21:48:51 +03:00
Alexei Kotov
baefff323c Make some NIF loading messages less confusing 2023-08-12 21:45:19 +03:00
Petr Mikheev
f5ddffa087 Fix coverity warning in esm3/globalscript.cpp 2023-08-12 12:35:08 +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
Kindi
8622a6da3b luautf8lib 2023-08-10 18:50:22 +08:00
Alexei Dobrohotov
de50f30645 Read a couple of Bethesda-specific controller records
BSMaterialEmittanceMultController
BSRefractionFirePeriodController
BSRefractionStrengthController
2023-08-10 01:59:10 +03:00
Petr Mikheev
87912065fd Rename MWLua::WorldView -> MWLua::ObjectLists 2023-08-08 22:57:28 +02:00
Evil Eye
9e376f3783 Replace explicitly sized reads in cellid, cellref 2023-08-08 21:41:44 +02:00
Evil Eye
48484c9416 Replace explicitly sized reads in aisequence 2023-08-08 21:06:49 +02:00
psi29a
3151452e25 Merge branch 'pandorasbox' into 'master'
Launcher, content selector: support ESM4 files, allow using game files as addon files

See merge request OpenMW/openmw!3219
2023-08-08 08:54:10 +00:00
psi29a
7b4f7b7f07 Merge branch 'adjust_refnum' into 'master'
Adjust FormId in FormIdRefId and for items in containers when loading saves

See merge request OpenMW/openmw!3293
2023-08-08 08:54:00 +00:00
Andrei Kortunov
5cfd21e9ab Do not place deprecated MyGUI property dynamically 2023-08-08 09:48:40 +04:00
Andrei Kortunov
f3cf61627c Do not use deprecated MyGUI features for list boxes 2023-08-08 09:30:13 +04:00
elsid
8e7fe44514
Support terrain sample size greater than cell size 2023-08-06 23:47:35 +02:00
elsid
2a49919b53
Move esm3terrain to esmterrain 2023-08-06 19:17:44 +02:00
elsid
28436557b1
Validate fillVertexBuffers arguments 2023-08-06 19:17:44 +02:00
elsid
fbd3d1f61d
Rename increment to sampleSize 2023-08-06 19:17:44 +02:00
elsid
0da156bdc2
Skip getLand call when no vertices are used 2023-08-06 19:17:44 +02:00
elsid
5fda4b3cfd
Precompute height cooridnates offsets 2023-08-06 19:17:43 +02:00
elsid
2c2a60b86c
Simplify filling positions 2023-08-06 19:17:43 +02:00
elsid
4a2a320e08
Use const where possible 2023-08-06 19:17:43 +02:00
elsid
d3e61e4578
Replace C-style cast by static_cast 2023-08-06 19:17:43 +02:00
elsid
e4584ce5dd
Reduce scope for normal and color 2023-08-06 19:17:43 +02:00
elsid
829f325500
Use proper name and scope for vertex coordinate variables 2023-08-06 19:17:43 +02:00
elsid
a23c98d468
Use std::size_t type for vertex coordinates 2023-08-06 19:17:43 +02:00
elsid
51b24c2b70
Fix variable name 2023-08-06 19:17:43 +02:00
elsid
c10f28a413
Pass references to fillVertexBuffers instead of osg::ref_ptr 2023-08-06 19:17:43 +02:00
psi29a
fadfffe22c Merge branch 'settings_values_map' into 'master'
Use settings values for Map settings (#6876)

See merge request OpenMW/openmw!3284
2023-08-06 16:14:09 +00:00
psi29a
ba4298f36d Merge branch 'refactor_esm4' into 'master'
Refactor components/esm4 to make it easier to load records to ESMStore

See merge request OpenMW/openmw!3301
2023-08-06 16:13:07 +00:00
psi29a
8d1a19a6f4 [#7358] Make MyGui 3.4.2 required for 0.49 2023-08-06 16:05:59 +00: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
ed81baf864 Merge branch 'chrono_fix' into 'master'
Simplify file_time_type to time_t conversion

See merge request OpenMW/openmw!3161
2023-08-03 21:47:40 +00:00
psi29a
c290754077 Revert "Merge branch 'loadSSEAlchemyTable' into 'master'"
This reverts merge request !3267
2023-08-03 19:55:06 +00:00
psi29a
9c2a2e1946 Merge branch 'nvpp_fixes' into 'master'
Improve safety of NVPP ESM records

See merge request OpenMW/openmw!3307
2023-08-03 07:15:43 +00:00
psi29a
4aaffa72e5 Merge branch 'more_coverity_fixes' into 'master'
More coverity fixes

See merge request OpenMW/openmw!3304
2023-08-03 07:15:34 +00:00
psi29a
4557d20f0b Merge branch 'coverity_strings' into 'master'
Simplify strings construction

See merge request OpenMW/openmw!3310
2023-08-03 07:15:06 +00:00
Andrei Kortunov
f5b18d2d5d Do not copy objects twice where possible 2023-08-02 20:03:48 +04:00
Andrei Kortunov
b3a981e0fc Simplify strings construction 2023-08-02 17:59:40 +04:00
psi29a
5160fbc2a0 Merge branch 'fixedtimestamp' into 'master'
Move TimeStamp to ESM3 and remove sized reads

See merge request OpenMW/openmw!3295
2023-08-02 08:11:33 +00:00
psi29a
c86eecb2ea Merge branch 'movable_objects' into 'master'
Move objects instead of copying where possible

See merge request OpenMW/openmw!3289
2023-08-01 10:43:44 +00:00
psi29a
6ff2bb8aeb Merge branch 'more_esm4_fields' into 'master'
Support ESM4 record FullName, CellFlags, X, Y fields by esmtool

See merge request OpenMW/openmw!3299
2023-08-01 07:25:34 +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
Andrei Kortunov
4e531524be Improve safety of NVPP ESM records 2023-08-01 10:39:34 +04:00
Andrei Kortunov
35561450f1 Do not copy osg::ref_ptr when possible 2023-07-31 20:43:46 +04:00
Andrei Kortunov
d3d7a663c6 Move some objects instead of copying 2023-07-31 20:43:46 +04:00
Andrei Kortunov
fe10799bfe Add an assert for possible null pointer dereference 2023-07-31 17:53:58 +04:00
Andrei Kortunov
b1c8a968ae Do not use invalid iterators 2023-07-31 17:53:33 +04:00
Andrei Kortunov
34ba2068b7 Remove dead code 2023-07-31 16:35:31 +04:00
Andrei Kortunov
1ae2a994f0 Avoid null pointer dereference 2023-07-31 16:35:29 +04:00
psi29a
b2f669ca48 Merge branch 'fix_async_load' into 'master'
Fix crash related to async content loading (#7508)

Closes #7508

See merge request OpenMW/openmw!3290
2023-07-31 10:49:33 +00:00
Petr Mikheev
0487bf95d1 Merge branch 'coverity49' into 'master'
Fix some Coverity warnings

See merge request OpenMW/openmw!3286
2023-07-31 00:09:14 +00:00
elsid
798f3cc385
Support ESM4 record FullName, CellFlags, X, Y fields by esmtool 2023-07-30 18:20:10 +02:00
elsid
fd01b4cad7
Avoid casts to read cell flags 2023-07-30 17:59:54 +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
Evil Eye
79b3855c5b Move TimeStamp to ESM3 and remove sized reads 2023-07-30 11:37:32 +02:00
Petr Mikheev
9a9f9d7081 Adjust FormId in FormIdRefId and for items in containers when loading saves 2023-07-30 02:01:09 +02:00
Petr Mikheev
2b601eea6d Fix crash related to async content loading (#7508) 2023-07-29 21:13:57 +02:00
elsid
dd54857610
Add missing array include 2023-07-29 00:29:03 +02:00
elsid
c9c32d9a0d
Cleanup includes 2023-07-29 00:16:43 +02:00
Andrei Kortunov
d8ec78d732 Fix some Coverity warnings 2023-07-28 20:58:18 +04: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
a6d6e16d48 Merge branch 'readsize' into 'master'
Disallow implicitly sized reads of ESM structs

See merge request OpenMW/openmw!3100
2023-07-28 07:01:32 +00:00
elsid
9acb93ab29
Use settings values for Map settings 2023-07-27 22:53:53 +02:00
elsid
bdb4808588
Remove unused local map hud widget size setting
Unused since d1a3cc98ff
2023-07-27 22:53:51 +02: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
psi29a
3e16ef7445 Merge branch 'esm4_achr' into 'master'
Load ESM4 actors (no rendering yet)

See merge request OpenMW/openmw!3278
2023-07-27 09:34:28 +00:00
psi29a
f5677aa352 Merge branch 'settings_values_input' into 'master'
Use settings values for Input settings (#6876)

See merge request OpenMW/openmw!3265
2023-07-27 09:33:14 +00:00
psi29a
e073eab05e Merge branch 'more_evade_directions' into 'master'
Use more evade directions and filter by supporting animation (#7450)

Closes #7450

See merge request OpenMW/openmw!3210
2023-07-27 09:32:39 +00:00
Petr Mikheev
9b511fdf7a Load ESM4 actors 2023-07-26 11:47:50 +02:00
Mads Buvik Sandvei
364f2a98e9 Use refnum instead of slot for items during spellcast 2023-07-25 21:23:59 +00:00
psi29a
2c989e4057 Merge branch 'coverityfixes' into 'master'
Correct some things based on Coverity's output

See merge request OpenMW/openmw!3272
2023-07-24 13:22:25 +00:00
psi29a
a99aa38d45 Merge branch 'mnam' into 'master'
Read STAT::MNAM

See merge request OpenMW/openmw!3273
2023-07-24 11:22:40 +00:00
psi29a
466b2f1b74 Merge branch 'mantlingtalos' into 'master'
Copy triangle data from NiSkinPartition, a.k.a. SKYRIM TREES

See merge request OpenMW/openmw!3235
2023-07-24 09:11:40 +00:00
Alexei Kotov
32022e9b5c Read STAT::MNAM 2023-07-24 10:36:39 +03:00
Alexei Kotov
353b06325e Fix unintended sign extension in compressed BSA hash generation
Which, however, never happens with non-ASCII characters
2023-07-24 01:18:56 +03:00
Alexei Kotov
a8119f3863 Fix vertex color emissive lighting mode handling 2023-07-24 00:34:30 +03:00
Alexei Kotov
0d70ae5028 Clean up primitive set copying 2023-07-23 13:32:33 +03:00
Alexei Kotov
3f252eab5d Copy triangle data from NiSkinPartition 2023-07-23 13:32:33 +03:00
elsid
6c18723bc7
Use settings values for Input settings 2023-07-22 18:27:53 +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
elsid
767a14587c
Add more debug logging on navmesh generation 2023-07-22 18:08:36 +02:00
elsid
b4868c6094
Filter evade directions by supported animations
To avoid trying those which will not lead to any actor movement due to absent
animation.
2023-07-22 17:30:40 +02:00
elsid
9817f4ca9a
Find closest position on navmesh to start and end before poly path
Start and end might not be located on navmesh and findPath may give wrong
results.
2023-07-22 17:24:51 +02:00
elsid
3dfea1dc1b
Make OutputTransformIterator more generic 2023-07-22 17:24:51 +02:00
elsid
de3a6ca6e6
Use std::span for findPath pathBuffer 2023-07-22 17:24:51 +02:00
elsid
c334176d73
Use std::span for makeSmoothPath polygonPath 2023-07-22 17:24:51 +02:00
elsid
548c38f54d
Remove unused code 2023-07-22 17:24:50 +02:00
elsid
350027c588
Remove redundant NavMesh argument from findSmoothPath 2023-07-22 17:24:50 +02:00
elsid
fcea153947
Transform path coordinates outside findSmoothPath 2023-07-22 17:24:50 +02:00
Alexei Kotov
d6e420fb48 Handle BSShader specular flag 2023-07-22 17:28:05 +03:00
psi29a
62ef209185 Merge branch 'readingbooksbutnotquite' into 'master'
Read bhkLimitedHingeConstraint

See merge request OpenMW/openmw!3254
2023-07-22 09:46:21 +00:00
psi29a
686281d276 Merge branch 'helgenkeepcalm' into 'master'
NIF additions relevant to Helgen Keep

See merge request OpenMW/openmw!3252
2023-07-22 09:44:48 +00:00
psi29a
dc405df0a5 Merge branch 'morrowind_tests' into 'master'
Add Morrowind specific tests

See merge request OpenMW/openmw!2117
2023-07-22 09:32:14 +00:00
Evil Eye
6e5d84ce37 inline 2023-07-22 08:40:02 +02:00
elsid
5a0ad8cdd7
Add Morrowind specific tests 2023-07-22 01:31:55 +02:00
elsid
9bff292a29
Log path to navmesh.db 2023-07-21 23:54:49 +02:00
Evil Eye
9d4877d432 Treat std::array like regular arrays 2023-07-21 17:00:33 +02:00
psi29a
c80a8d5293 Merge branch 'amaranth' into 'master'
Add polygon offset to decals in Skyrim models, reducing Z-fighting

See merge request OpenMW/openmw!3237
2023-07-21 09:12:28 +00: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
Evil Eye
45ba05c0ed Disallow implicitly sized reads of ESM structs 2023-07-20 19:16:53 +02:00
Alexei Kotov
6b6a3bcfca Make decal rendering more accurate for Skyrim models, reducing Z-fighting 2023-07-20 19:28:33 +03: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
Alexei Kotov
6c4957fe4a Read bhkLimitedHingeConstraint 2023-07-20 05:30:22 +03:00
Alexei Kotov
d2c797aee9 Read BSDamageStage 2023-07-20 04:20:28 +03:00
Alexei Kotov
5a3dce160c Read NiBoolTimelineInterpolator 2023-07-20 04:05:11 +03:00
Alexei Kotov
4265524ad5 Read BSRangeNode and BSBlastNode 2023-07-20 04:04:49 +03:00
Alexei Kotov
fa39f04a3a Read BSBehaviorGraphExtraData 2023-07-20 03:38:15 +03:00
Alexei Kotov
e710e94304 Read BSLightingShaderPropertyColorController 2023-07-20 03:18:09 +03:00
Alexei Kotov
c34157fc28 Fix bhkConstraintMotorCInfo loading 2023-07-20 03:14:55 +03:00
AnyOldName3
34fcfb63cf Eliminate redundant version checks 2023-07-20 00:43:56 +01:00
psi29a
baa67893b6 Merge branch 'settings_values_gui' into 'master'
Use settings values for GUI settings (#6876)

See merge request OpenMW/openmw!3238
2023-07-18 10:25:36 +00:00
psi29a
85822eca45 Merge branch 'darkmagic' into 'master'
Implement the NegativeLight flag

Closes #7477

See merge request OpenMW/openmw!3240
2023-07-18 10:25:19 +00:00
Alexei Kotov
727e5c5af2 Read IDLM model data 2023-07-17 22:51:25 +03:00
Alexei Kotov
1e7fef979a Skip MISC destruction data 2023-07-17 22:51:25 +03:00
Alexei Kotov
09f6032c9b Skip TACT::VMAD/MODS 2023-07-17 22:51:25 +03:00
Alexei Kotov
332f38b7ab Read SCRL::YNAM/ZNAM 2023-07-17 22:51:25 +03:00
Alexei Kotov
7e1e43f9c6 Allow GMSTs with empty EDID 2023-07-17 22:51:25 +03:00
Alexei Kotov
22cc7f3020 Skip LIGH destruction data 2023-07-17 22:51:25 +03:00
Evil Eye
2a1d520c9e Address feedback 2023-07-17 19:37:28 +02:00
Evil Eye
7573004efc Implement the NegativeLight flag 2023-07-17 18:00:15 +02:00
elsid
d113f0fc44
Use settings values for GUI settings 2023-07-16 20:46:54 +02:00
Alexei Kotov
25f5c5651d Sort ESM3ExteriorCellRefIds earlier than StringRefIds
Causes inconsistency with the serialized type enumeration, but necessary for COC to work correctly
2023-07-16 17:47:40 +03:00
psi29a
98bb9fc125 Merge branch 'deserializedeez' into 'master'
Make RefId::deserializeText return an empty RefId if no pre-existing StringRefId can be found

See merge request OpenMW/openmw!3226
2023-07-16 08:46:48 +00:00
psi29a
abb71eeb53 Merge branch 'plannedobsolescence' into 'master'
Allow compilation with MYGUI_DONT_USE_OBSOLETE

See merge request OpenMW/openmw!3232
2023-07-16 08:44:59 +00:00
psi29a
5bc06b3678 Merge branch 'bhkconstraint' into 'master'
Read bhkRagdollConstraint and bhkHingeConstraint

See merge request OpenMW/openmw!3231
2023-07-16 08:44:41 +00:00
Evil Eye
a0127dd7e4 Allow compilation with MYGUI_DONT_USE_OBSOLETE 2023-07-15 15:02:27 +02:00
Alexei Kotov
65fe89d8af Read NiTextureTransformController 2023-07-15 13:33:04 +03:00
Alexei Kotov
ed8fd81714 Don't mess with A/B hardcoding in constraints 2023-07-15 06:59:22 +03:00
Alexei Kotov
eb3e762c50 Read bhkHingeConstraint 2023-07-15 06:47:28 +03:00
Alexei Kotov
83be42893d Read bhkRagdollConstraint 2023-07-15 06:47:28 +03:00
Alexei Kotov
723f5c58e1 Add bhkConstraint 2023-07-15 06:47:28 +03:00
Alexei Kotov
d8f50553af Move Skyrim shader property controllers to controllers 2023-07-15 03:57:29 +03:00
Evil Eye
cd8f2355c0 Only allow StringRefId for Skill ids 2023-07-14 17:33:32 +02:00
psi29a
ce84fdf5f5 Merge branch 'limitedpower' into 'master'
Cap global map cell size (bug #6222)

Closes #6222

See merge request OpenMW/openmw!3225
2023-07-14 08:20:51 +00:00
Evil Eye
7b909c8d24 Create getRefIds 2023-07-13 20:30:16 +02:00
Evil Eye
967b5d205b Use StringRefId for skills 2023-07-13 18:55:22 +02: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
psi29a
7952b27c26 Merge branch 'xptl' into 'master'
Skip REFR::XPTL

See merge request OpenMW/openmw!3224
2023-07-13 12:08:59 +00:00
Alexei Dobrohotov
39c84c84da Cap global map cell size (bug #6222) 2023-07-13 14:53:08 +03:00
psi29a
3a1ae9df58 Merge branch 'nsaids-for-shared-memory-structs' into 'master'
Share the dump directory for crash and freeze dumps

See merge request OpenMW/openmw!3221
2023-07-13 08:01:25 +00:00
psi29a
41abbae3e7 Merge branch 'sittingontheoverlap' into 'master'
Allow subrecords to overlap the following record (bug #6025)

Closes #6025

See merge request OpenMW/openmw!3215
2023-07-13 08:00:01 +00:00
Alexei Dobrohotov
c6882dbc6b Skip REFR::XPTL
Needed by Yukichigai Unofficial Patch
2023-07-13 10:22:25 +03:00
AnyOldName3
f239988c06 Remove unused function 2023-07-12 14:48:09 +01:00
AnyOldName3
899f0a4633 Remove redundant explicit null terminator 2023-07-12 14:46:32 +01:00
AnyOldName3
677c17530e I don't like reformatting things over and over. 2023-07-11 22:58:44 +01:00
AnyOldName3
1bdcb5d6d9 Share the dump directory for crash and freeze dumps
This means the shared memory struct is just 255 bytes longer than a few
commits ago instead of 32K.

Also introduce a function for putting path strings in the shared memory
as there was too much copied and pasted code and it was error-prone.

Also free some handles once we're done with them so they don't leak.
2023-07-11 22:22:26 +01:00
Evil Eye
4eac137109 Change control flow to be easier to understand 2023-07-11 22:10:39 +02:00
Alexei Dobrohotov
5adda00f5e Content selector: allow using non-primary game files as addon files 2023-07-11 11:07:37 +03:00
psi29a
1268dde8fe Merge branch 'metermarker' into 'master'
Don't discard collision for the entire tree if BSXFlags marker flag is set

See merge request OpenMW/openmw!3216
2023-07-11 07:35:51 +00:00
Alexei Dobrohotov
d589b46f96 Launcher, content selector: support ESM4 files
Cell name loader ignores ESM4 files
2023-07-11 05:31:58 +03:00
alekulyn
b085a52681 Add template Nif record 2023-07-10 19:25:52 -05:00
alekulyn
4b90352c2f Add RC value to BSLightingShaderPropertyFloatController and change the revelant RC value in niffile 2023-07-10 19:11:28 -05:00
alekulyn
589726d4f8 Enchanting table fully ready 2023-07-10 18:12:00 -05:00
alekulyn
ed532b5aca Add BSEffectShaderPropertyFloatController record reading 2023-07-10 17:58:32 -05:00
alekulyn
7ea2ea96b6 Read new nodes pt1 2023-07-10 17:27:05 -05: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
Alexei Dobrohotov
66fd1f8862 Allow subrecords to overlap the following record (bug #6025) 2023-07-10 21:09:22 +03:00
psi29a
d9027f7eef Merge branch 'falloutfalloffnthtimesthecharm' into 'master'
BSEffectShader/NoLighting fixes

See merge request OpenMW/openmw!3211
2023-07-10 07:51:53 +00:00
Evil Eye
d3c1928f01 Fix dialogue insertion again 2023-07-09 15:24:52 +02:00
Alexei Dobrohotov
52a16e0e93 BSEffectShader/NoLighting fixes
Don't hijack BSShader::NoLighting for BSEffectShader functionality
(Fallout meshes break if you use the actual emissive color as a base color)
Don't use falloff for textureless NoLighting objects
Use falloff flag for BSEffectShader
2023-07-09 14:44:09 +03:00
psi29a
a755fa0f34 Merge branch 'cleanup_includes' into 'master'
Cleanup includes

See merge request OpenMW/openmw!3203
2023-07-09 10:15:09 +00:00
psi29a
81f8d16982 Merge branch 'loadBsTriShape' into 'master'
Load BSTriShape NIF nodes

See merge request OpenMW/openmw!3099
2023-07-09 10:14:27 +00:00
alekulyn
74aa7b947a Load BSTriShape NIF nodes 2023-07-09 10:14:27 +00:00
psi29a
da592356f1 Merge branch 'no-crash-dump-in-temp' into 'master'
Don't put crash dumps in Temp on Windows

Closes #7455

See merge request OpenMW/openmw!3200
2023-07-08 12:36:44 +00:00
elsid
f6fce5ee15
Cleanup includes 2023-07-08 11:28:56 +02:00
psi29a
cab47d0a2a Merge branch 'settings_values_general' into 'master'
Use settings values for General settings (#6876)

See merge request OpenMW/openmw!3198
2023-07-07 13:07:13 +00:00
psi29a
2a534576de Merge branch 'fix-the-comments-again' into 'master'
Restore and clarify comments damaged by !2971

Closes #7350 and #7349

See merge request OpenMW/openmw!2979
2023-07-07 13:05:48 +00:00
AnyOldName3
106dbba086 Restore and clarify comments damaged by !2971 2023-07-07 13:05:48 +00:00
Petr Mikheev
fb7ba40385 Merge branch 'lua-bb-once-and-for-all' into 'master'
Lua - Fix BB once and for all

See merge request OpenMW/openmw!3143
2023-07-05 20:21:38 +00:00
AnyOldName3
48368f79b6 Update Windows crash dump path once we know where we're logging
Manual rewrite of 5102f4b11d
2023-07-05 20:38:46 +01:00
AnyOldName3
72d99237e3 This would never have happened had clang format not tried making this function wrogn in the first place 2023-07-05 20:34:34 +01:00
AnyOldName3
1bcbc4f53f Undo clang format change because clang format in CI disagrees with clang format on my computer 2023-07-05 20:29:18 +01:00
AnyOldName3
3bb3f58c73 Don't put crash dumps in Temp on Windows
Well... unless we fail to get the user profile directory.

Also put freeze dumps in a more appropriately-named file.

Discussed in https://gitlab.com/OpenMW/openmw/-/issues/7455

Manual rewrite of c21695c951

As well as that, I found a bug where the crash dump path was being converted from a std::filesystem::path to a utf8-encoded std::string, then passed to the crash catcher, which converted it to a std::filesystem::path implicitly, but using the system eight-bit code page, which wouldn't usually be UTF-8. That's now fixed by passing the function that expects a path a path instead of a string.
2023-07-05 20:25:22 +01:00
elsid
ebb8fdc698
Use settings values for General settings 2023-07-04 21:40:04 +02:00
glassmancody.info
a659d2eaeb lua - fix bounding box once and for all 2023-07-04 09:55:11 -07:00
elsid
a6dbd819a1
Fix writing IndexRefId to ESM3
Use correct enum value.
2023-07-04 11:34:52 +02:00
psi29a
050fc20379 Merge branch 'settings_values_game' into 'master'
Use settings values for Game settings (#6876)

See merge request OpenMW/openmw!3188
2023-07-03 07:20:36 +00: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
elsid
6e8dcc16c6
Use settings values for Game settings 2023-07-01 00:59:35 +02:00
elsid
86e5b94ef6
Convert setting value int to CollisionShapeType on initialization 2023-07-01 00:59:35 +02:00
psi29a
fc5d73648a Merge branch 'schooled' into 'master'
Merge magic schools into skills

See merge request OpenMW/openmw!3148
2023-06-28 09:32:48 +00:00
alekulyn
683fb0a342 Templated nif reader function modelled after cc9cii's reader 2023-06-28 09:27:22 +00:00
Evil Eye
73c2387708 Merge schools into skills 2023-06-26 20:42:52 +02:00
psi29a
31efad1dd0 Merge branch 'fix_model_path' into 'master'
Fix #7403: incorrect model path for records created by Lua scripts

Closes #7403

See merge request OpenMW/openmw!3151
2023-06-25 20:11:43 +00:00
psi29a
dd0d66513d Merge branch 'clickbait' into 'master'
Mostly dehardcode attributes

See merge request OpenMW/openmw!3164
2023-06-25 20:11:19 +00:00
psi29a
558b3cbf60 Merge branch 'particles_fix' into 'master'
Create a stateset for every particle system to create its own defineMap

Closes #7304

See merge request OpenMW/openmw!3162
2023-06-21 14:35:13 +00:00
Andrei Kortunov
a08d921c4c Create a stateset for every particle system to create its own defineMap 2023-06-21 16:13:58 +04:00
psi29a
47b1247fa2 Merge branch 'l10n' into 'master'
Make configurable whether GMST strings have priority over built-in interface messages

See merge request OpenMW/openmw!3134
2023-06-21 06:52:30 +00:00
psi29a
abdd4f5207 Merge branch 'lua_potion_magic' into 'master'
Lua: Add effects to potionRecord, ingredientRecord

See merge request OpenMW/openmw!3160
2023-06-20 10:00:06 +00:00
Zackhasacat
611a6429a9 Lua: Add effects to potionRecord, ingredientRecord 2023-06-20 10:00:05 +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
Andrei Kortunov
2ea7eb4ba8 Simplify file_time_type to time_t conversion 2023-06-19 13:21:40 +04:00
Evil Eye
bac6777fae Reduce the number of magic numbers 2023-06-18 16:21:06 +02:00
Petr Mikheev
2f16a8d27c Fix incorrect model part for records created by Lua scripts 2023-06-18 00:19:50 +02:00
Bret Curtis
d582a26e4c Set the default to CLAMP_TO_EDGE in case it was not explicity called for 2023-06-16 09:16:07 +02:00
Bret Curtis
30da8a27ba small revert, "It is copying a texture, it is not a default initialized one. The source texture may or may not want GL_CLAMP_TO_EDGE." 2023-06-16 09:16:07 +02:00
Bret Curtis
0b1a0ad1a8 only 4 deep 2023-06-16 09:16:07 +02:00
Bret Curtis
ff6944701f Be more explicit about use of CLAMP_TO_EDGE instead of defaulting to GL CLAMP 2023-06-16 09:16:07 +02:00
elsid
04215ca9ec
Use settings values for Fog settings 2023-06-15 22:01:14 +02:00
psi29a
1630e04d1b Merge branch 'fix_7423' into 'master'
Fix #7422, #7423, #7424

Closes #7424, #7423, and #7422

See merge request OpenMW/openmw!3136
2023-06-15 11:02:21 +00: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
ab7eebb356 Fix #7423 (too strict fallback validation) 2023-06-14 20:04:16 +02:00
Petr Mikheev
718d5e4a71 Add setting "gmst overrides l10n" 2023-06-13 10:06:59 +02:00
Petr Mikheev
96399b3d23 Add fallbacks to Store<ESM::GameSetting> 2023-06-12 17:59:40 +02:00
Petr Mikheev
be45b8199e Whitelist and type validation for fallbacks 2023-06-12 17:59:40 +02:00
Petr Mikheev
3b43cc2aea Lua: change obj.rotation from Euler angles to Quaternion 2023-06-12 00:16:42 +02:00
Evil Eye
3c588900dd Apply elsid's suggestion and revert 3a888ef543 2023-06-10 22:04:14 +02:00
elsid
180dd7dc64
Log worldspace in RecastContext 2023-06-10 13:23:47 +02:00
elsid
f9e9368fda
Add operator<< for DetourSettings 2023-06-10 13:14:52 +02:00
elsid
dd08154b23
Add operator<< for DetourNavigator::AreaCosts 2023-06-10 13:14:52 +02:00
elsid
ce5fbd6b68
Write separator between Detour status flags 2023-06-10 13:14:52 +02:00
psi29a
25a719700b Merge branch 'esmtool_fallout_nv' into 'master'
Support FalloutNV.esm

See merge request OpenMW/openmw!3065
2023-06-10 08:48:54 +00:00
psi29a
ec2f0e4645 Merge branch 'fragile' into 'master'
More closely replicate Morrowind.exe's locks

Closes #7415

See merge request OpenMW/openmw!3116
2023-06-10 08:47:27 +00:00
elsid
11204d35d6
Use zlib directly for ESM4
Fallback to decompression by block of fixed size when decompressing the
whole archive fails.
2023-06-10 00:12:57 +02:00
elsid
f841a1377f
Skip ATTR subrecord in CLAS record
Present in FalloutNV.esm.
2023-06-09 23:44:39 +02:00
psi29a
2686e586e5 Merge branch 'dev-7019' into 'master'
Fix improper access of stereo manager by other shared components

See merge request OpenMW/openmw!2437
2023-06-09 21:25:21 +00:00
Evil Eye
f5a20d1e9c Change include guard name 2023-06-08 21:10:12 +02:00
Evil Eye
e8ddccaefe Use std::transform 2023-06-08 21:10:12 +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
Evil Eye
16c0f0d5cc Use a regular TypedDynamicStore for ESM:Skill 2023-06-08 18:35:47 +02:00
elsid
7d11a18907
Allow any integer number >= 0 for antialiasing level
There is wider support than just specific powers of two. The supported level
will be detected anyway.
2023-06-06 00:05:11 +02:00
psi29a
25c1e6abee Merge branch 'clickbait' into 'master'
Use std::array in various ESM structs

See merge request OpenMW/openmw!3103
2023-06-05 07:19:38 +00:00
psi29a
2f5bfb4df2 Merge branch 'fix-#7410' into 'master'
fix #7410

Closes #7410

See merge request OpenMW/openmw!3104
2023-06-04 11:28:26 +00:00
elsid
e8ef1a2a0c
Add default initialization for ESM4::TeleportDest::flags 2023-06-04 01:50:08 +02:00
elsid
67e32abd4f
Add default initialization to ESM::Position members 2023-06-04 01:50:04 +02:00
florent.teppe
04e026c53f getRecNameString now constexpr
getTypeDescription uses a static constexpr variable so we don't return ref to temp memory.
2023-06-03 20:28:25 +02:00
Evil Eye
e01a3076dd Use std::array in NpcStats 2023-06-03 14:26:37 +02:00
Evil Eye
a5bb6c7d8d Use std::array in NPDTstruct52 2023-06-03 13:27:45 +02:00
Evil Eye
dd83da5eba Use std::array in FADTstruct 2023-06-03 13:11:49 +02:00
Evil Eye
7be005c9a5 Use std::array in CLDTstruct 2023-06-03 11:58:09 +02:00
Evil Eye
8a474b9807 Use std::array in RADTstruct 2023-06-03 10:45:32 +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
psi29a
cc213fb437 Merge branch 'loadBsInvMarker' into 'master'
Load BSInvMarker NIF nodes

See merge request OpenMW/openmw!3092
2023-06-02 07:36:53 +00:00
psi29a
4335667d32 Merge branch 'esm4_cleanup' into 'master'
Clean up components/esm4

See merge request OpenMW/openmw!3086
2023-06-02 07:30:52 +00:00
psi29a
0bb652d7ce Merge branch 'clickbait' into 'master'
Resolve Attribute GMSTs

See merge request OpenMW/openmw!3090
2023-06-02 07:30:40 +00:00
alekulyn
dc860ca302 Load BSInvMarker NIF nodes 2023-06-01 15:27:42 -05:00
elsid
78b3f7288a
Support UTF-8 by StringRefId::toDebugString 2023-06-01 22:16:47 +02:00
jvoisin
3152078c7e Restore missing std::endl removed by an overeager regex 2023-06-01 13:48:41 +02:00
jvoisin
0e33730f5d Remove useless logging
As suggested in https://gitlab.com/OpenMW/openmw/-/merge_requests/3086#note_1413234840
2023-06-01 13:31:48 +02:00
jvoisin
a58dc6fd30 Use the logging system instead of std::cout in components/esm4
- Remove debug-related includes
- Add some trivial missing includes
- Remove useless {}
- Move the known-but-skipped-records are the end of the switch-cases
- Always throw on unknown records
2023-06-01 13:31:48 +02:00
psi29a
27a879de9a Merge branch 'tree_and_furniture' into 'master'
Load ESM4::Tree and ESM4::Furniture

See merge request OpenMW/openmw!3040
2023-06-01 09:15:46 +00:00
psi29a
83c8312060 Merge branch 'esm4_cell_fixes' into 'master'
A few fixes related to ESM4::Cell

See merge request OpenMW/openmw!3083
2023-06-01 07:51:34 +00:00
Evil Eye
08f35fe839 Add ESM::Skill::mWerewolfValue 2023-05-31 17:45:20 +02:00
Evil Eye
7b0680de5f Resolve attribute GMST members 2023-05-31 17:02:18 +02:00
Evil Eye
eea730768b Replace sIconNames with ESM::Skill::mIcon 2023-05-30 20:22:04 +02:00
Evil Eye
9c819b5705 Disallow formatting of UString 2023-05-30 17:35:26 +02:00
Petr Mikheev
5cb4c66266 Avoid using ESM4::Cell with uninitialized fields 2023-05-29 22:37:25 +02:00
Petr Mikheev
19fb9f8e14 Handle editor marker bit in BSXFlags 2023-05-29 18:47:27 +02:00
Petr Mikheev
788a4d32aa Handle DoubleSided and TreeAnim flags in BSLightingShaderProperty. 2023-05-29 18:47:27 +02:00
Petr Mikheev
fd90a8c9b4 Hide Nif nodes with name "EditorMarker". 2023-05-29 18:47:27 +02:00
Petr Mikheev
1b669db017 Load ESM4::Tree and ESM4::Furniture 2023-05-29 18:47:27 +02:00
Evil Eye
9c60a6fa4d Replace sSkillNameIds with ESM::Skill::mName 2023-05-29 17:56:14 +02:00
florent.teppe
9f9a6c06e0 Fix get vertex Height for esm4 2023-05-29 12:10:42 +02:00
florent.teppe
5dfa06acf8 removes unused variable
it was already mostly unused, it was usefull only in the constructor, even though it was a paramater of the constructor, so it could have been removed.
2023-05-29 12:10:42 +02:00
florent.teppe
12304d36aa std::cout => Log(Debug::Verbose) 2023-05-29 12:10:42 +02:00
florent.teppe
ad8cfde4e0 ESM::LandData no longer a virtual interface
instead it is constructed from ESM::Land or ESM4::Land
2023-05-29 12:10:42 +02:00
fteppe
22dc383f63 fixes errors and warnings
Applies review comments

getWorldspaceTerrain => returns a reference because never null
crashfix in navigator
updateLandPositions fixes naming of it
const ESM4::Land* MWWorld::Store<ESM4::Land>::search(ESM::ExteriorCellLocation cellLocation) const removes useless else
ExteriorCellLocation uses default initializers
get terrain height returns -MAX_FLOAT when there is no esm4 terrain.

applied review comments

use default initlializer when possible
factorise code
uses pattern matching in for loop.
2023-05-29 12:10:42 +02:00
florent.teppe
f600730459 fixes functions that were virtual but not tagged as override. 2023-05-29 12:10:41 +02:00
florent.teppe
7d88a240d3 no default terrain for esm4 exterior. 2023-05-29 12:10:41 +02:00
florent.teppe
2bb17279df linux build
clang format 14.0

Arm64 build
2023-05-29 12:10:41 +02:00
florent.teppe
a9e0489867 fixes stutters => bugs in the way cells were updated. 2023-05-29 11:32:14 +02:00
florent.teppe
0e4d21a40c takes the right terrain bounds. 2023-05-29 11:32:14 +02:00
florent.teppe
7bc4fc6bf9 Fix issues on terrain change
terrain Preloader now preloads the right terrain
2023-05-29 11:32:14 +02:00
florent.teppe
427b6ea39a fix bug in "fixColour" and "fixNormal"
fix issue in vtx texture selection
2023-05-29 11:32:13 +02:00
florent.teppe
c2e652b8a0 getLand taken out of loop where it's value would always be the same. 2023-05-29 11:32:13 +02:00
florent.teppe
feb60f5ad8 One landsize variable instead of two.
fixes issues in constant values.
2023-05-29 11:32:13 +02:00
florent.teppe
d0211acf9e Fixes bug in terrain loading + collision heightmap works
although terrain rendering is 100% broken right now
2023-05-29 11:32:13 +02:00
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.
2023-05-29 11:31:37 +02:00
florent.teppe
fffcf52316 land manager cache's key is an ExteriorCellLocation
ESM4::Land is now a ESM::LandData
2023-05-29 11:31:37 +02:00
florent.teppe
e0fa15b727 Abstracted Land data that can be used by esm3 and esm4. 2023-05-29 11:31:37 +02:00
florent.teppe
1b718f09c5 adding worldspace info to terrain data structures
Rendering manager can have multiple terrain, one for each queried worldspace
Terrain::World has a worldspace member
storage functions require a worldspace parameter.
2023-05-29 11:31:37 +02:00
florent.teppe
93e7b0d946 Terrain has a mandatory worldspace in constructor
getTerrainHeightAt takes a worldspace.

Doesn't change anything for now => Therrain is created with the default ESM3 worldspace, and is never changed.
2023-05-29 11:31:36 +02:00
Evil Eye
90a3a7b62f Add mWerewolfGMST 2023-05-28 15:28:34 +02:00
Evil Eye
a5e1c87fb8 Remove sGmstAttributeIds, sGmstAttributeDescIds, sAttributeIcons 2023-05-28 15:10:53 +02:00
psi29a
16a580eb21 Merge branch 'clickbait' into 'master'
Remove sAttributeIds and sSkillIds

See merge request OpenMW/openmw!3071
2023-05-28 09:14:47 +00:00
psi29a
052972033c Merge branch 'get_rid_of_asserts_in_esm' into 'master'
Replace all asserts in components/esm[34] with throw

See merge request OpenMW/openmw!3069
2023-05-28 09:14:08 +00:00
unknown
14600de185 Remove sAttributeIds and sSkillIds 2023-05-27 21:54:13 +02:00
jvoisin
c98c532213 Replace all asserts in components/esm[34] with throw 2023-05-27 16:10:53 +02:00
elsid
235eb65c97
Rename positionToCellIndex to match return type 2023-05-27 15:49:36 +02:00
psi29a
05555947c3 Merge branch 'specialdedup' into 'master'
Deduplicate specialization code

See merge request OpenMW/openmw!3063
2023-05-26 12:08:05 +00:00
jvoisin
44a65512e8 Replace another assert with a throw 2023-05-26 10:23:58 +00:00
Evil Eye
877f6747be Deduplicate specialization code 2023-05-26 12:16:47 +02:00
elsid
dc8dfe81ce
Add more details to exceptions 2023-05-25 20:56:07 +02:00
Pierre Mossler
e6838cddc7 missing include in attr.cpp 2023-05-25 10:49:27 +00:00
psi29a
d3ed04c551 Merge branch 'lua-activeeffects' into 'master'
Lua: Actor api for active effects and active spells

See merge request OpenMW/openmw!3036
2023-05-25 07:49:08 +00:00
Petr Mikheev
e74161ea8e Merge branch 'slashrslashmarijuanaenthusiasts' into 'master'
Improve Skyrim tree loading (limited)

See merge request OpenMW/openmw!3054
2023-05-24 19:16:55 +00:00
elsid
89eccab7f1
Add missing include
In file included from /home/elsid/dev/openmw/apps/openmw_test_suite/settings/testvalues.cpp:1:
/home/elsid/dev/openmw/components/misc/strings/conversion.hpp: In function ‘std::string Misc::StringUtils::toHex(std::string_view)’:
/home/elsid/dev/openmw/components/misc/strings/conversion.hpp:139:87: error: ‘uint8_t’ in namespace ‘std’ does not name a type; did you mean ‘wint_t’?
  139 |             const std::ptrdiff_t space = static_cast<std::ptrdiff_t>(static_cast<std::uint8_t>(v) <= 0xf);
      |                                                                                       ^~~~~~~
      |                                                                                       wint_t
/home/elsid/dev/openmw/components/misc/strings/conversion.hpp:140:97: error: ‘uint8_t’ in namespace ‘std’ does not name a type; did you mean ‘wint_t’?
  140 |             const auto [ptr, ec] = std::to_chars(out + space, out + space + 2, static_cast<std::uint8_t>(v), 16);
      |                                                                                                 ^~~~~~~
      |                                                                                                 wint_t
2023-05-24 12:45:50 +02:00
Mads Buvik Sandvei
410e8b100a Elsid comments 2023-05-23 19:30:29 +02:00
Mads Buvik Sandvei
5a8c6df633 clang'd 2023-05-23 18:12:06 +02:00
Mads Buvik Sandvei
4bf23f152b Revert use of string_view to std::string for effectIdTo* methods. 2023-05-23 18:12:06 +02:00
Mads Buvik Sandvei
6cfc06d7d8 There is no typo 2023-05-23 18:12:06 +02:00
Mads Buvik Sandvei
9a59330561 refactor effect names in loadmgef. Added a map from effect index to non-gmst effect name for use in lua scripts. 2023-05-23 18:11:59 +02:00
Mads Buvik Sandvei
b791ce9132 Remove redundant qualifiers 2023-05-23 18:11:44 +02:00
Mads Buvik Sandvei
7ba43c9426 actor.ActiveEffects and actor.ActiveSpells 2023-05-23 18:11:44 +02:00
elsid
2f18da08d7
Add missing include 2023-05-23 12:26:16 +02:00
psi29a
2545185d52 Merge branch 'cs_show_magic_effect_name' into 'master'
Show magic effect name instead of IndexRefId (#7366)

Closes #7366

See merge request OpenMW/openmw!3049
2023-05-23 08:21:35 +00:00
psi29a
64b07ee9f4 Merge branch 'esmtool_dawnguard_dragonborn' into 'master'
Partial support esmtool dump for Dragonborn.esm and Dawnguard.esm from Skyrim

See merge request OpenMW/openmw!3052
2023-05-23 08:20:10 +00:00
psi29a
a61f955e9f Merge branch 'case.ext' into 'master'
Fix a regression and use more starts_with and ends_with

See merge request OpenMW/openmw!3051
2023-05-23 08:18:41 +00:00
Alexei Dobrohotov
a983977e6a Fix NiSkinData loading for >4.2.1.0 2023-05-23 01:19:22 +03:00
elsid
7c16ecb258
Skip more unknown ESM4 subrecords
CNAM from HDPT is a part of Dawnguard.esm.
ATKR from RACE is a part of Dawnguard.esm.
CIS2 from SCRL is a part of Dragonborn.esm.
SPMV from RACE is a part of Dragonborn.esm.
2023-05-22 22:09:08 +02:00
elsid
e537d1d0d4
Ignore missing localization string files by esmtool
Dawnguard.esm from Skyrim depends on files stored in Dawnguard.bsa which is not
processed by esmtool.
2023-05-22 22:09:08 +02:00
elsid
358b7ad3ec
Keep ESM4 localized strings in memory
Size of the files is in order of megabytes at max. Storing offset lookup table
to read from file on demand is less efficient than reading from memory for such
size.

Read and store offsets first. Sort them to read values sequentially. Memoize
last offset and value to avoid reading the same value twice. Use seek only when
current possition does not match offset. Optimize seek for short distance by
calling read instead.
2023-05-22 22:09:06 +02:00
Alexei Dobrohotov
1b5e904285 Read BSMultiBound et al. 2023-05-22 23:05:10 +03:00
Alexei Kotov
401ebfd7f2 Merge branch 'fix_oblivion_loading' into 'master'
Fix Oblivion loading

See merge request OpenMW/openmw!3050
2023-05-22 18:18:35 +00:00
Evil Eye
9728024978 Replace compare with more idiomatic methods 2023-05-22 19:51:27 +02:00
jvoisin
7f191a2a8a Merge branch 'if_all_the_asserts' into 'master'
Replace all the `asserts` with `throw` in components/esm4/reader.cpp

See merge request OpenMW/openmw!3047
2023-05-22 17:33:55 +00:00
jvoisin
a9bf671992 Fix Oblivion loading
Found by elsid@, and due to !3043
2023-05-22 18:24:39 +02:00
Evil Eye
3138eb406b Fix case sensitive comparison 2023-05-22 18:18:01 +02:00
elsid
8f47da46ec
Show magic effect name instead of IndexRefId 2023-05-22 18:02:21 +02:00
jvoisin
8b654f276d Replace all the asserts with throw in components/esm4/reader.cpp 2023-05-22 17:42:32 +02:00
jvoisin
6da3c3e200 Fix a gcc warning about copy
```
/home/jvoisin/dev/openmw/openmw/components/fontloader/fontloader.cpp:532:29: warning: loop variable '[key, value]' creates a copy from type 'std::pair<const int, int> const' [-Wrange-loop-construct]
            for (const auto [key, value] : additional)
                            ^
/home/jvoisin/dev/openmw/openmw/components/fontloader/fontloader.cpp:532:18: note: use reference type 'std::pair<const int, int> const &' to prevent copying
            for (const auto [key, value] : additional)
                 ^~~~~~~~~~~~~~~~~~~~~~~~~
                            &
1 warning generated.
```
2023-05-22 17:18:43 +02:00
psi29a
6f8c152487 Merge branch 'convert_camera_settings' into 'master'
Use settings values for Camera settings (#6876)

See merge request OpenMW/openmw!3041
2023-05-22 09:14:06 +00:00
psi29a
dab616f4e2 Merge branch 'guiew' into 'master'
Use string_view in more places and reduce the number of empty string literals

See merge request OpenMW/openmw!3042
2023-05-22 09:12:45 +00:00
jvoisin
534e20cf3a Replace another assert with a throw
It fixes the following crash:

```nasm
[----------------------------------registers-----------------------------------]
RAX: 0xffffffffffffffe4
RBX: 0x7fffffffbd88 --> 0x0
RCX: 0x555555861f01 --> 0xd6000055555582fa
RDX: 0x1
RSI: 0x0
RDI: 0xff
RBP: 0x2e94
RSP: 0x7fffffff9bb0 --> 0x0
RIP: 0x55555574e286 (<_ZN4ESM44Cell4loadERNS_6ReaderE+182>:	mov    eax,DWORD PTR [rax+0xc])
R8 : 0x0
R9 : 0x555555836bd0 --> 0x555555861f90 --> 0x100000000000000
R10: 0xffffffff
R11: 0x0
R12: 0x7fffffffbd88 --> 0x0
R13: 0x7fffffffbd30 --> 0x7fffffffbd28 --> 0xff0001
R14: 0x7fffffff9da0 --> 0x10fc
R15: 0x7fffffff9ea8 --> 0x7fffffff9eb8 --> 0x0
EFLAGS: 0x10206 (carry PARITY adjust zero sign trap INTERRUPT direction overflow)
[-------------------------------------code-------------------------------------]
   0x55555574e27c <_ZN4ESM44Cell4loadERNS_6ReaderE+172>:	mov    rdi,r12
   0x55555574e27f <_ZN4ESM44Cell4loadERNS_6ReaderE+175>:	xor    esi,esi
   0x55555574e281 <_ZN4ESM44Cell4loadERNS_6ReaderE+177>:	call   0x5555557edfb0 <_ZNK4ESM46Reader3grpEm>
=> 0x55555574e286 <_ZN4ESM44Cell4loadERNS_6ReaderE+182>:	mov    eax,DWORD PTR [rax+0xc]
   0x55555574e289 <_ZN4ESM44Cell4loadERNS_6ReaderE+185>:	cmp    eax,0xff
   0x55555574e28e <_ZN4ESM44Cell4loadERNS_6ReaderE+190>:	ja     0x55555574e314 <_ZN4ESM44Cell4loadERNS_6ReaderE+324>
   0x55555574e294 <_ZN4ESM44Cell4loadERNS_6ReaderE+196>:	cmp    al,0x5
   0x55555574e296 <_ZN4ESM44Cell4loadERNS_6ReaderE+198>:	jne    0x55555574e314 <_ZN4ESM44Cell4loadERNS_6ReaderE+324>
[------------------------------------stack-------------------------------------]
0000| 0x7fffffff9bb0 --> 0x0
0008| 0x7fffffff9bb8 --> 0x0
0016| 0x7fffffff9bc0 --> 0x0
0024| 0x7fffffff9bc8 --> 0x0
0032| 0x7fffffff9bd0 --> 0x0
0040| 0x7fffffff9bd8 --> 0x0
0048| 0x7fffffff9be0 --> 0x0
0056| 0x7fffffff9be8 --> 0x0
[------------------------------------------------------------------------------]
Legend: code, data, rodata, value
Stopped reason: SIGSEGV
0x000055555574e286 in ESM4::Cell::load (this=0x7fffffff9da0, reader=...) at /home/jvoisin/dev/openmw/openmw/components/esm4/loadcell.cpp:68
68	   if (reader.grp().type == ESM4::Grp_ExteriorSubCell && reader.grp().label.grid[1] == 0
gdb-peda$ bt
    this=<optimized out>, reader=...) at /home/jvoisin/dev/openmw/openmw/apps/esmtool/tes4.cpp:547
    recordInvocable=...) at /home/jvoisin/dev/openmw/openmw/./components/esm4/readerutils.hpp:31
    at /home/jvoisin/dev/openmw/openmw/./components/esm4/readerutils.hpp:23
    at ../csu/libc-start.c:381
```
2023-05-21 20:07:52 +02:00
psi29a
364bc91f5b Merge branch 'fix_element_destroy' into 'master'
Fix bug in LuaUi::Element::destroy() that sometimes leads to an infinite loop on UI cleanup

See merge request OpenMW/openmw!3033
2023-05-21 17:33:56 +00:00
psi29a
e1754b840a Merge branch 'fix_empty_vector' into 'master'
Guard an undefined behaviour

Closes #6725

See merge request OpenMW/openmw!3037
2023-05-21 17:33:13 +00:00
Evil Eye
4e05dd3cd3 Make FontWrapper conditional 2023-05-21 18:21:42 +02:00
Evil Eye
492e336c0c Use string_view in more UI code 2023-05-21 18:14:12 +02:00
Alexei Dobrohotov
3e8a9d1de4 Read BSTreeNode, handle as NiNode 2023-05-21 18:16:06 +03:00
Evil Eye
5491512905 Use string_view in more places and reduce the number of empty string literals 2023-05-21 16:39:32 +02:00
elsid
5d5e6844d1
Use settings values for Camera settings 2023-05-20 22:23:09 +02:00
jvoisin
81bd034a9e Guard an undefined behaviour
`std::vector.back()` on an empty `std::vector` is undefined.
This should fix #6725.

Thanks to @Capostrophic for the investigation.
2023-05-20 19:35:06 +02:00
jvoisin
cde7aeac3d Replace an asert with a conditional throw
The assert is reachable, resulting in a brutal `abort`
instead of a nice exception.
2023-05-20 19:33:14 +02:00
Petr Mikheev
c6eed2a6c6 Fix bug in LuaUi::Element::destroy() that sometimes leads to an infinite loop on UI cleanup 2023-05-20 02:34:23 +02:00
psi29a
1ce35fa9e7 Merge branch 'lua-bounding-box' into 'master'
Expose game object's bounding box in lua api

See merge request OpenMW/openmw!3009
2023-05-19 09:33:44 +00:00
Petr Mikheev
be26fbdacb Explicitly intialize the fields in ESM4::Cell that don't have default constructors. 2023-05-18 20:21:47 +02:00
glassmancody.info
a7b7f99d72 Expose game object's bounding box in lua api 2023-05-18 11:10:10 -07:00
Petr Mikheev
61232f4b75 Fix uninitialized mWaterLevel in esm4/loadwrld.cpp 2023-05-18 02:10:39 +02:00
Petr Mikheev
493858127a Drop NIF root node transformation for Skyrim models the same way as for Morrowind models. 2023-05-18 02:10:39 +02:00
Petr Mikheev
29031d0586 Increase ESM4 active grid 2023-05-18 00:38:41 +02:00
elsid
15f3e3ae71
Support ESM4 IDLE record 2023-05-17 22:59:34 +02:00
elsid
584c0dbcdc
Support reading bool GMST by ESM4 2023-05-17 22:59:34 +02:00
elsid
010db45a10
Read ESM::FormId using ESM4::Reader::getFormId 2023-05-17 22:59:29 +02:00
elsid
a90aa7d8b2
Count navmeshdb reads for each reading job 2023-05-17 10:08:34 +02:00
elsid
5ae8b9cae1
Report raw navmesh cache counters 2023-05-17 10:08:33 +02:00
elsid
a8a76f9a05
Fix BulletShape copy constructor and use for BulletShapeInstance
Copy mVisualCollisionType.
2023-05-14 18:45:38 +02:00
elsid
04d439485b
Log more info about navmesh shapes and jobs 2023-05-14 18:34:31 +02:00
psi29a
ab17d0947a Merge branch 'esm4-exterior' into 'master'
Loading ESM4 Exteriors

See merge request OpenMW/openmw!2986
2023-05-12 23:32:55 +00:00
psi29a
c15710c35b Merge branch 'settings_values_index' into 'master'
Use typed settings storage for settings window (#6876)

See merge request OpenMW/openmw!2997
2023-05-12 21:53:59 +00:00
florent.teppe
a3bd6e7e47 ESM::ExteriorCellIndex => ESM::ExteriorCellLocation 2023-05-12 22:05:55 +02:00
florent.teppe
393357abc0 ESM::Cell::positionToCellIndex returns a ESM::ExteriorCellIndex
and takes a worldspace id as input
ESM::getCellSize takes a wordspace as input.
removed useless static in static inline funcs
2023-05-12 22:05:55 +02:00
florent.teppe
559830f59a applies review comments
Removes ToLowercase after .serializeText
removed unused variable
!ptr => ptr == nullptr
better indentation + error message on throw
friend struct std::hash<...> useless on struct with all public fields.
2023-05-12 22:05:55 +02:00
florent.teppe
3d06cabf6a indexToPosition moved from world -> esm/util.hpp 2023-05-12 22:05:55 +02:00
florent.teppe
1cf0cd5628 moved mwworld/cellutils.hpp -> esm/util.hpp 2023-05-12 22:05:54 +02:00
florent.teppe
75561abfca Factorises code and fixes preload bug. 2023-05-12 22:05:54 +02:00
florent.teppe
5648e03e9e function to get cellsize depending on the context. 2023-05-12 22:05:54 +02:00
florent.teppe
93b3d9238c mWater level disabled for skyrim. 2023-05-12 22:05:54 +02:00
florent.teppe
3de08e654f Better handling of water levels for exterior cells.
Especially for skyrim and it's weird water level values in exteriors.
If we don't have a valid exterior water level we use the world's water level
2023-05-12 22:05:54 +02:00
florent.teppe
56cb2a83ec removed sDefaultWorldspace, only sDefaultWorldspaceId now.
sDefaultWorldspaceId is a StringRefId to be able to getvalue easily.
2023-05-12 22:05:53 +02:00
florent.teppe
141878f30d int x, int y , ESM::RefId worldspace => ESM::ExteriorCellIndex
also removed the changeToExteriorCell that only took a position as input, didn't work with esm4.
2023-05-12 22:05:53 +02:00
florent.teppe
1d03b54694 maps with tuple key instead of map of map
instead of using a map with key as exterior and map of <int ,int >, Cell as value we use a single map with a tuple x,y,exterior as key
2023-05-12 22:05:53 +02:00
florent.teppe
d8a782425b can actually load and teleport to esm4 exterior spaces 2023-05-12 22:05:53 +02:00
florent.teppe
a62e75fd19 Initial attempt at loading esm4 exteriors 2023-05-12 22:05:52 +02:00
jvoisin
0270cfb733 Merge branch 'throw_with_more_info' into 'master'
show which file is not found

See merge request OpenMW/openmw!3011
2023-05-10 21:40:04 +00:00
Bret Curtis
95fff7b77b show which file is not found 2023-05-10 21:43:55 +02:00
Elias Howell
bf8fafa79a fixed some typos and spelling errors 2023-05-09 20:07:08 -04:00
elsid
258ae9d98e
Add settings index to provide lookup by category and name 2023-05-03 22:11:44 +02:00
psi29a
cdc753df70 Merge branch 'lua_refactoring' into 'master'
MWLua refactoring

See merge request OpenMW/openmw!2956
2023-05-02 19:48:21 +00:00
jvoisin
c7a3f43915 Minor header cleanup
This has been done via CLion's "unused include directive",
set to "detect completely unused".
2023-04-30 16:26:03 +02:00
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.
2023-04-26 21:15:16 +02:00
Petr Mikheev
4562b8c06b Add headers for all .cpp files in mwlua; move packages initilaization from LuaManager to luabindings.cpp 2023-04-25 23:24:51 +02:00
Petr Mikheev
c362b2efa6 Use LuaUtil::cast for casting sol::object to prevent crashing on type mismatch in Lua scripts. 2023-04-25 22:11:04 +02:00
Petr Mikheev
61578ca39b Add function LuaUtil::cast 2023-04-25 21:51:05 +02:00
psi29a
957318d0b9 Merge branch 'remove_cruft' into 'master'
remove boost::locale::conv

See merge request OpenMW/openmw!2970
2023-04-25 16:06:55 +00:00
psi29a
50bd6cf263 remove boost::locale::conv 2023-04-25 16:06:55 +00:00
Bret Curtis
0db31207dc remove remaining boost::filesystem cruft 2023-04-25 16:15:04 +02:00
elsid
35f4bcd31e
Run openmw_settings_access_benchmark in CI
Add benchmarks to access 2 and 3 settings. Use settings with max memory address
distance assuming Settings::Values is single memory location object.

Use settings-default.cfg from the source code repository to initialize settings.
2023-04-24 22:30:49 +02:00
elsid
0a678224cd
Add category to error message 2023-04-24 20:27:11 +02:00
elsid
05d09d9927
Fix msvc warning 2023-04-24 11:37:54 +02:00
elsid
8e487c283c
Store default settings values 2023-04-22 21:02:13 +02:00
Tetramir
6936c3a1c8 Merge branch 'fix_esm4' into 'master'
Fix regressions in ESM4 reader caused by !2902

See merge request OpenMW/openmw!2957
2023-04-22 18:16:06 +00:00
Petr Mikheev
7b6f0cefb9 Fix regressions in ESM4 reader caused by !2902 2023-04-22 17:07:54 +02:00
Mads Buvik Sandvei
7d69bea7dc Move InitializeStereoOperation to components/stereo 2023-04-22 16:11:53 +02:00
Mads Buvik Sandvei
fe066069d7 /components/ code should not access the stereo manager without checking whether or not stereo is enabled first. Stereo component code should not read settings itself, but rather take settings as parameters. 2023-04-22 16:11:42 +02:00
elsid
7a7c20d49e
Define single UpdateGuard type in a separate file 2023-04-22 13:22:07 +02:00
elsid
472a36d92a
Cleanup detournavigator includes 2023-04-22 13:21:59 +02:00
elsid
2cbbdc2879
Add missing files to components/detournavigator list 2023-04-21 15:36:54 +02:00
florent.teppe
3bbf60373a Keep things coherent between references and and cell table 2023-04-20 10:03:34 +02:00
psi29a
70ddca78bf Merge branch 'ref_id_print_tests' into 'master'
Add more tests for printing RefId and clarify some constants

See merge request OpenMW/openmw!2945
2023-04-20 07:29:05 +00:00
elsid
7db14b3392
Add more tests for printing RefId and clarify some constants 2023-04-20 02:35:14 +02:00
elsid
c97df7d770
Check FormIdRefId value in constructor 2023-04-20 02:19:05 +02:00
Petr Mikheev
3546d2b3e5 Make Store<ESM4::Reference> to use FormId instead of RefId 2023-04-20 01:47:16 +02:00
Petr Mikheev
00beb06391 Initial Lua bindings for ESM4 types; bindings for ESM4Door. 2023-04-20 01:47:16 +02:00
elsid
b8525e8e3d
Fix code format 2023-04-18 20:23:03 +02:00
psi29a
ed4e75df65 Merge branch 'fix_includes' into 'master'
Add missing and remove redundant includes

See merge request OpenMW/openmw!2938
2023-04-18 11:46:52 +00:00
fall-leaf
cc7e29c9a2 opensuse build fix 2023-04-17 23:40:15 +03:00
elsid
b33d12b8e1
Add missing and remove redundant includes 2023-04-17 22:02:36 +02:00
Evil Eye
97fb06d8c9 Add RefId::is 2023-04-13 17:43:13 +02:00
elsid
20129568e6
Replace VisitorCellIdIsESM3Ext with RefId::getIf function 2023-04-13 01:06:27 +02:00
elsid
8f84431840
Do not initialize settings storage for editor 2023-04-10 21:29:56 +02:00
elsid
bdc2eb5250
Check only original default settings
When more than 1 user config layers are used we still want to check only the
first layer of default settings loaded from settings-default.cfg.
2023-04-10 15:38:39 +02:00
psi29a
ad25e9b154 Merge branch 'settings_storage' into 'master'
Typed settings storage (#6876)

See merge request OpenMW/openmw!2651
2023-04-10 10:36:15 +00:00
Petr Mikheev
ff774d6406 Load more ESM4 records 2023-04-09 18:52:11 +02:00
Petr Mikheev
f09a689a4f Merge ESM::RefNum and ESM4::FormId 2023-04-09 00:23:32 +02:00
elsid
bd10becb65
Use lexicographical comparison in ESM3ExteriorCellRefId::operator< 2023-04-08 16:22:01 +02:00
psi29a
ebb5820dd1 Merge branch 'pathgridgraph' into 'master'
Refactor pathgrid indices to use size_t instead of int

See merge request OpenMW/openmw!2900
2023-04-08 00:32:43 +00:00
Evil Eye
8d8207b734 Refactor pathgrid indices to use size_t instead of int 2023-04-08 00:32:43 +00:00
elsid
794050df63
Fix and add tests for ESM3ExteriorCellRefId serialization and text representation 2023-04-08 01:06:11 +02:00
psi29a
aad9ce53db Merge branch 'esm4_gmst' into 'master'
Support loading ESM4 GMST records

See merge request OpenMW/openmw!2892
2023-04-04 09:51:02 +00:00
elsid
dbed00842e
Split components/esm4/common.hpp header 2023-04-04 10:12:20 +02:00
elsid
87ac85223a
Support loading ESM4 GMST records 2023-04-04 09:59:35 +02:00
florent.teppe
0d17e20490 Implements serialize/deserialize
fixes test compilation.
2023-04-03 18:41:25 +02:00
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
2023-04-03 14:17:35 +02:00
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
2023-04-03 14:17:31 +02:00
florent.teppe
53b14c8b42 fix tests
hopefully also fixes clang tidy
2023-04-03 14:17:17 +02:00
florent.teppe
4c15064a83 Create new Vec2i RefId for ESM3 exterior cells.
Applies the necessary changes to use !2708 for the new Id type
2023-04-03 14:17:16 +02:00
florent.teppe
1e0c3bfdec fixes integration tests
we still want to be able to write using old formats
2023-04-03 14:16:32 +02:00
florent.teppe
f99e65843a Removes most cellId.hpp include, simplifies id generation for cells. 2023-04-03 14:16:32 +02:00
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.
2023-04-03 14:16:05 +02:00
florent.teppe
fb6701ac1a ESM::CellId is no longer stored on saves. 2023-04-03 14:16:05 +02:00
florent.teppe
c39dd576f8 Gets rid of most ESM::CellId 2023-04-03 14:16:05 +02:00
florent.teppe
6895a452ef restores the concept of worldspace for MWWorld::Cell 2023-04-03 14:16:04 +02:00
florent.teppe
9f597ecfea No more Cellid used by ESM4 cells
and that also means it is no longer used by MWWorld::Cell
fixes tests
2023-04-03 14:16:04 +02:00
florent.teppe
3f678c3b0a Dest Door and teleport use ESM::RefId
This changes a lot of files as a consequence.
Still buggy, moving to exterior doesn't bring to the right place yet
coc "seyda neen" doesn't work. SO I broke somehting when fetching a cell from a name
2023-04-03 14:16:03 +02:00
florent.teppe
36502eaf75 ESM3 Cells have an Id.
Store<ESM::Cell> is updated to use it.
2023-04-03 14:16:03 +02:00
Andrei Kortunov
8c6616214b Remove redundant quotes 2023-04-03 11:28:03 +04:00
psi29a
ee970db9e0 Merge branch 'player_cell_id_test' into 'master'
Test more ESM::Player records

See merge request OpenMW/openmw!2888
2023-04-02 22:41:36 +00:00
psi29a
0a791528bc Merge branch 'fix_index_ref_id_hash' into 'master'
Shift record type value for IndexRefId hash

See merge request OpenMW/openmw!2885
2023-04-02 21:52:29 +00:00
elsid
9162eaa019
Test more ESM::Player records 2023-04-02 19:58:27 +02:00
elsid
171a25645a
Make sure there are tests for all RefId types 2023-04-02 15:46:21 +02:00
elsid
258aec223a
Shift record type value for IndexRefId hash 2023-04-02 15:00:03 +02:00
Mads Buvik Sandvei
e666f36b60 [Multiview] Fix transparent pass and vertex shader 2023-04-01 20:27:07 +00:00
psi29a
1a1f983930 Merge branch 'omwscripts_in_launcher' into 'master'
Support adding Lua mods in subdirectories in the launcher

See merge request OpenMW/openmw!2874
2023-03-31 17:53:55 +00:00
psi29a
119163e74b Merge branch 'fixemptycollisioncrash' into 'master'
Make empty collision shape for objects without any triangles.

Closes #7077

See merge request OpenMW/openmw!2871
2023-03-30 21:47:35 +00:00
psi29a
0c074990ce Merge branch 'fix_lazy_load_skyrim' into 'master'
Fix lazy load skyrim

See merge request OpenMW/openmw!2861
2023-03-30 21:42:55 +00:00
uramer
ee1551f02c Merge branch 'l10n' into 'master'
Dehardcode non-game-specific localization GMSTs

See merge request OpenMW/openmw!2855
2023-03-30 19:35:40 +00:00
fredzio
37c4587ca4 Display directories that contains omwscripts.
Display newly added omwscripts as new.
2023-03-30 21:32:01 +02:00
unelsson
3d4da02b18 Don't mess around with btEmptyShape. Use nullptr instead. 2023-03-28 23:54:26 +03:00
elsid
3e99deb0e8
Use typed settings storage for detournavigator 2023-03-28 20:47:34 +02:00
elsid
db7d0adfe8
Define settings values based on documentation
Using docs/source/reference/modding/settings/*.rst and
files/settings-default.cfg files content.
2023-03-28 20:47:34 +02:00
elsid
3bad40153c
Define typed settings storage with single time initialization
To make sure loaded settings have valid values doing the check once per loading.
And to make access more efficient.
2023-03-28 20:47:34 +02:00
florent.teppe
a3a7767093 applies review changes
filepos changed to an actual file pos
moved lambda declaration out of function call
2023-03-28 17:11:30 +02:00
florent.teppe
464092e323 fix oblivion and skyrim 2023-03-28 17:11:30 +02:00
florent.teppe
34dd24b261 Initial changes to detect when context isn't usable 2023-03-28 17:11:30 +02:00
unelsson
0a1af644af Make empty collision shape for objects without any triangles. 2023-03-28 16:12:23 +03:00
psi29a
cd6413c060 Merge branch 'fix_dialogue_title' into 'master'
Show original dialogue name

See merge request OpenMW/openmw!2862
2023-03-26 21:44:45 +00:00
Petr Mikheev
0769e3daf0 Fix #7294 (launcher creates new contentlist everytime) 2023-03-26 20:12:20 +02:00
elsid
452d1e7e49
Store original string id for Dialogue records 2023-03-26 19:07:32 +02:00
elsid
06f42ba69c
Use fixed size enum type for ESM::Dialogue::mType 2023-03-26 19:07:25 +02:00
elsid
4716583f3e
Set ESM::Dialogue::mType on blank and skip load 2023-03-26 19:07:25 +02:00
elsid
90ed24f4c9
Split type traits for ESM4, ESM3 and unite common 2023-03-26 19:07:23 +02:00
elsid
d5954aba68
Add suffix to the format version name 2023-03-26 15:21:25 +02:00
Petr Mikheev
618b912a20 Dehardcode non-game-specific localization GMSTs; Update l10n files. 2023-03-26 13:43:44 +02:00
psi29a
8f80895b59 Merge branch 'build_fix' into 'master'
Add missing include

See merge request OpenMW/openmw!2860
2023-03-26 11:09:47 +00:00
Andrei Kortunov
e1bee039ac Add missing include 2023-03-26 11:31:25 +04:00
elsid
b7fdca0fe6
Use serialized ESM::RefId for Lua records 2023-03-25 18:19:46 +01:00
elsid
cd4027ffd6
Do not use ESM::RefId::getRefIdString for spell id 2023-03-24 01:57:35 +01:00
psi29a
9a20193eb5 Merge branch 'savedgamecell' into 'master'
Fix cell name format in save menu

See merge request OpenMW/openmw!2853
2023-03-23 18:53:15 +00:00
Evil Eye
54d6fb29c2 Don't store a save's cell name as a RefID 2023-03-22 22:57:52 +01:00
psi29a
db1b260323 Merge branch 'gmst_l10n' into 'master'
Support links to GMSTs in l10n files; extract Morrowind-specific l10n files to a separate directory

See merge request OpenMW/openmw!2822
2023-03-22 20:47:53 +00:00
psi29a
1741a06cd1 Merge branch 'launcher_log' into 'master'
Setup launcher configuration manager and logging before initializing UI

See merge request OpenMW/openmw!2851
2023-03-22 09:19:25 +00:00
elsid
9815f930d9
Setup launcher configuration manager and logging before initializing UI 2023-03-21 21:29:57 +01:00
elsid
d1e8e56619
Make QuickKey type a fixed size enum class 2023-03-21 20:53:04 +01:00
elsid
eb79b29512
Use ranged for loop 2023-03-21 20:45:49 +01:00
elsid
2135eba103
Fix loading ESM3 QuickKeys 2023-03-21 20:44:42 +01:00
elsid
0b852edc7f
Remove redundant inline 2023-03-21 09:34:27 +01:00
elsid
8dd6b16fee
Avoid double lookup 2023-03-21 09:34:26 +01:00
elsid
04d7781424
Support not only StringRefId for checking first person body part 2023-03-19 17:49:41 +01:00
elsid
e6cf516e12
Support index RefId as pair of record type and std::uint32_t 2023-03-19 17:20:48 +01:00
elsid
86293af084
Support generated RefId as std::uint64_t 2023-03-19 17:20:48 +01:00
elsid
0992624c8b
Support reading and writing typed ESM::RefId to ESM 2023-03-19 17:20:48 +01:00
elsid
069d4255b9
Make ESM::RefId to be fixed size cheap to copy
Use std::variant. Store refId strings in unordered_set and use pointer to an
item there. Inserts to unordered_set do not invalidate pointers to values so the
pointer is always valid. Elements are not removed. Assume there is finite number
of string refIds.
2023-03-19 17:20:43 +01:00
elsid
3a0443c472
Make constexpr Misc::NotNullptr member functions 2023-03-18 16:36:26 +01:00
psi29a
d64eea2fc6 Merge branch '7113-move-from-std-atoi-to-std-from_char' into 'master'
Move from std::atoi to std::from_char

Closes #7113

See merge request OpenMW/openmw!2760
2023-03-18 09:30:48 +00:00
Shi Han
a90e3b8c3b Move from std::atoi to std::from_char 2023-03-18 09:30:48 +00:00
psi29a
9664a57cad Merge branch 'esmtool_strings' into 'master'
Use relative to content file path to find strings file

See merge request OpenMW/openmw!2837
2023-03-18 09:14:54 +00:00
elsid
67e96d48ba
Use relative to content file path to find strings file
To be used by esmtool when VFS is not used.
2023-03-18 03:00:18 +01:00
elsid
83d212fe0f
Use SFINAE to avoid conflicts between visit functions 2023-03-17 23:37:11 +01:00
psi29a
a60f657f5a Merge branch 'fast_cell4_load' into 'master'
Lazy loading of ESM4::reference

See merge request OpenMW/openmw!2804
2023-03-17 21:46:37 +00:00
psi29a
2ff4a5a11a Merge branch 'cs_fix_info_collection' into 'master'
Fix loading, inserting and moving topic info records

See merge request OpenMW/openmw!2806
2023-03-17 14:40:05 +00:00
Petr Mikheev
0b385d5db9 Create MWWorld::SafePtr 2023-03-13 23:44:00 +01:00
elsid
e032214fcb
Use common info ordering implementation for engine and editor 2023-03-13 21:57:41 +01:00
elsid
e892c62b10
Fix loading, inserting and moving topic info records
Topic info records need to have specific order defined via mNext and mPrev
fields (next and previous records). When loading multiple files a record may be
inserted into middle of the topic but neighborhood records may not be aware of
it. Having the order it's possible to move the records within one topic.

Sort the record once after loading all content files but preserve the order for
all other operations. Use std::map to group info ids by topic to make sure the
topics order is stable. Keep order within a topic for info ids on loading new
records. Use this order later for sorting the records.
2023-03-13 21:57:38 +01:00
psi29a
9b184a1698 Merge branch 'loadammo' into 'master'
Updates to ESM4::Ammunition loading

See merge request OpenMW/openmw!2830
2023-03-13 09:34:31 +00:00
Alexei Dobrohotov
3d87bc185d Updates to ESM4::Ammunition loading 2023-03-13 01:36:07 +03:00
psi29a
e37860c1dc Cherry pick 'openmw-48-stereo-fixes' into 'master'
Openmw 48 stereo fixes

See merge request OpenMW/openmw!2815
2023-03-12 22:20:23 +01:00
Petr Mikheev
58fdd687a8 Support links to GMST in l10n files 2023-03-12 13:12:13 +01:00
psi29a
efebb8efd8 Merge branch 'cmake_fixes' into 'master'
Formatting and coverage related CMake files fixes

See merge request OpenMW/openmw!2811
2023-03-12 11:03:06 +00:00
elsid
1cc4909144
Add --coverage to components_qt, benchmarks and openmw-cs 2023-03-10 21:36:12 +01:00
elsid
1857d8a68c
Use target_compile_options to add --coverage 2023-03-10 15:34:08 +01:00
elsid
cc066efa11
Fix identation in CMakeLists.txt 2023-03-10 15:28:06 +01:00
florent.teppe
170b732854 readers cache keep a stateless encoder
to keep access to the current encoding configuration

build linux
2023-03-10 12:39:47 +01:00
psi29a
ff7a098e74 Merge branch 'justbenormal' into 'master'
Unify collision shape transformations

See merge request OpenMW/openmw!2808
2023-03-10 07:51:01 +00:00
psi29a
b9f1d5d4e7 Merge branch 'seventeenth-times-the-charm' into 'master'
Fix #7264

Closes #7264

See merge request OpenMW/openmw!2805
2023-03-10 07:21:07 +00:00
Alexei Dobrohotov
562461a659 Unify collision shape transformations 2023-03-10 00:12:12 +03:00
psi29a
eca26e8b18 Merge branch 'Support-BA2-file-format' into 'master'
Support ba2 file format

See merge request OpenMW/openmw!2787
2023-03-08 22:00:43 +00:00