1
0
Fork 0
mirror of https://github.com/OpenMW/openmw.git synced 2025-01-16 16:29:55 +00:00
Commit graph

7526 commits

Author SHA1 Message Date
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