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
Alexei Kotov
956ede52fb
NIFStream: remove getShort, getMatrix3, getQuaternion
2023-09-13 21:56:02 +03:00
psi29a
42b77342c5
Merge branch 'nif' into 'master'
...
Modernize NIF loader, part 3
See merge request OpenMW/openmw!3418
2023-09-12 08:34:46 +00:00
Alexei Kotov
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
Alexei Kotov
b9f552b7f4
Preallocate lines in NiLinesData
2023-09-08 15:58:26 +03: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
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
bb6e008801
Modernize dynamic effects
2023-08-31 22:06:21 +03: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
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
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
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
Alexei Dobrohotov
de50f30645
Read a couple of Bethesda-specific controller records
...
BSMaterialEmittanceMultController
BSRefractionFirePeriodController
BSRefractionStrengthController
2023-08-10 01:59:10 +03:00
psi29a
c290754077
Revert "Merge branch 'loadSSEAlchemyTable' into 'master'"
...
This reverts merge request !3267
2023-08-03 19:55:06 +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
dd54857610
Add missing array include
2023-07-29 00:29:03 +02:00
Andrei Kortunov
d8ec78d732
Fix some Coverity warnings
2023-07-28 20:58:18 +04:00
alekulyn
d2896945e8
Load SSE alchemy table
2023-07-28 07:46:20 +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
3f252eab5d
Copy triangle data from NiSkinPartition
2023-07-23 13:32:33 +03: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
Alexei Kotov
6b6a3bcfca
Make decal rendering more accurate for Skyrim models, reducing Z-fighting
2023-07-20 19:28:33 +03: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
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
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
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
psi29a
d9027f7eef
Merge branch 'falloutfalloffnthtimesthecharm' into 'master'
...
BSEffectShader/NoLighting fixes
See merge request OpenMW/openmw!3211
2023-07-10 07:51:53 +00: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
alekulyn
74aa7b947a
Load BSTriShape NIF nodes
2023-07-09 10:14:27 +00:00
alekulyn
683fb0a342
Templated nif reader function modelled after cc9cii's reader
2023-06-28 09:27:22 +00:00
alekulyn
dc860ca302
Load BSInvMarker NIF nodes
2023-06-01 15:27:42 -05:00
Petr Mikheev
788a4d32aa
Handle DoubleSided and TreeAnim flags in BSLightingShaderProperty.
2023-05-29 18:47:27 +02: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
Alexei Dobrohotov
a983977e6a
Fix NiSkinData loading for >4.2.1.0
2023-05-23 01:19:22 +03:00
Alexei Dobrohotov
1b5e904285
Read BSMultiBound et al.
2023-05-22 23:05:10 +03:00
Evil Eye
9728024978
Replace compare with more idiomatic methods
2023-05-22 19:51:27 +02:00
Alexei Dobrohotov
3e8a9d1de4
Read BSTreeNode, handle as NiNode
2023-05-21 18:16:06 +03: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
Alexei Kotov
d8dad79195
Read bsLeafAnimNode
2023-02-24 20:34:41 +03:00
Alexei Kotov
9618a465ce
Read bhkCompressedMeshShape
2023-02-24 20:32:35 +03:00
Alexei Kotov
fc6bc90c3d
Read BSFurnitureMarkerNode
2023-02-24 19:38:29 +03:00
Alexei Kotov
2de81738c1
Implement the basics of BSEffectShaderProperty
2023-02-20 00:23:00 +03:00
Alexei Kotov
99aa90f90c
Rewrite NiVertexColorProperty
2023-02-11 00:58:13 +03:00
Alexei Kotov
d39127cc3d
Add NiTriBasedGeomData abstraction
2023-02-10 23:06:56 +03:00
psi29a
de2bd6d802
Merge branch 'nistringpalette' into 'master'
...
Fix NiStringPalette loading again
See merge request OpenMW/openmw!2703
2023-02-10 07:46:39 +00:00
Alexei Kotov
a4ddf443ed
Fix NiStringPalette loading
2023-02-09 21:10:25 +03:00
Alexei Kotov
c8430ee6c8
Clean up fillTriangleMesh for NiTriStrips
2023-02-09 20:24:05 +03:00
psi29a
a41cbfb349
Merge branch 'candles' into 'master'
...
Read NiBlendInterpolator records, fill in NiControllerManager fields
See merge request OpenMW/openmw!2700
2023-02-08 22:24:37 +00:00
elsid
2c43a8558a
Add option to disable debug log for unsupported nif files
...
It becomes quite extensive and not very useful when loading oblivion content
files.
2023-02-08 22:59:29 +01:00
Alexei Kotov
d7834c43e5
Fill in NiControllerManager fields
2023-02-09 00:06:08 +03:00
Alexei Kotov
091fcd837e
Read all the NiBlendInterpolator record types
2023-02-09 00:06:08 +03:00
Alexei Kotov
7ecf018743
Add NiBlendInterpolator
2023-02-08 22:58:47 +03:00
Alexei Kotov
41d6ccd3f6
Read NiDefaultAVObjectPalette
2023-02-08 15:08:52 +03:00
psi29a
5f9332751c
Merge branch 'roottrafo' into 'master'
...
Don't discard root node transformations for Gamebryo meshes
See merge request OpenMW/openmw!2697
2023-02-08 11:32:16 +00:00
Alexei Kotov
b14d1f0c6b
Don't discard root node transformations for Gamebryo meshes
2023-02-08 14:20:42 +03:00
Alexei Kotov
8ebdd1e4a5
Fix material data loading for 10.0.1.0
2023-02-08 13:46:54 +03:00
Alexei Kotov
115c30a573
Read bhkConvexTransformShape
2023-02-08 13:26:26 +03:00
Alexei Kotov
9f28a26b25
Read NiSequence/NiControllerSequence
2023-02-08 01:03:11 +03:00
jvoisin
3cbf1dc042
First pass with include-what-you-use
2022-10-09 10:39:43 +00:00
elsid
06f7e8088e
Check for negative record list length
2022-09-24 19:10:38 +02:00
elsid
0688b6de40
Separate record list reading from its state
...
To make it possible to set record list state independently from reading NIF
file.
2022-09-24 19:10:35 +02:00
elsid
c338c1e5d3
Add Nif::FileView as read only interface for Nif::NIFFile
...
To make sure interface is scoped to what users require.
2022-09-24 19:10:21 +02:00
elsid
f2fb3d6de8
Separate NIFFileReader from NIFFile
...
NIFFile might not always be created from a file or stream containing NIF data.
Basically there are 2 different responsibilities for this class:
1. Read NIF file
2. Provide input for nifosg and bulletnifloader.
Remove no longer needed NIFFileMock since the state of NIFFfile can be
initialized independently from reading NIF file.
2022-09-24 19:10:14 +02:00
elsid
b39ccbeeef
Remove NIFFile::warn and NIFFile::fail functions
...
These functions use NIFFile only as context, they are not really a part of
either reading nor state invariant. And they only confuse reader because it's
not immediatelly obvious that no code is executed after fail.
2022-09-24 19:10:05 +02:00
clang-format-bot
ddb0522bbf
Apply clang-format to code base
2022-09-22 21:35:26 +03:00
Alexei Kotov
7aee22be91
Further controller updates
...
Correct NiMaterialColorController base class
Load everything in NiGeomMorpherController
Make a guess at how weighted interpolators might be supposed to work like
2022-09-16 23:45:54 +03:00
Alexei Kotov
e2ed313389
Don't load keys for Gamebryo morphs
2022-09-16 05:55:37 +03:00
psi29a
d1c79fa8d1
Merge branch 'pre_clang_format_fixes_2' into 'master'
...
Fixes before applying clang-format 2
See merge request OpenMW/openmw!2401
2022-09-15 08:24:23 +00:00
Alexei Kotov
482de23893
Streamline NiInterpController handling
2022-09-15 00:58:10 +03:00
elsid
410a2881fe
Add comma to the last array element to prevent putting multiple elements on a single line
2022-09-14 00:36:02 +02:00
Project579
2df8bfed25
Fix build errors after rebase against master due to large amount of changes.
2022-09-11 14:41:20 +02:00
Project579
a13709c510
Replace implicit convertions from std::filesystem::path to std::string with correctly converting functions.
2022-09-11 14:41:20 +02:00
Project579
e5c417c968
Make sure all paths are passed as std::filesystem::path instead of std::string where possible.
2022-09-11 14:41:15 +02:00
Alexei Kotov
f17b1cd7ab
Load bhkCapsuleShape and bhkSphereShape
2022-09-07 16:09:19 +03:00
Alexei Kotov
44fbb5cdc3
Read NiMultiTargetTransformController
2022-09-04 08:36:32 +03:00
Alexei Kotov
8df0587793
Reformat NIF record type mapping
2022-09-04 08:36:32 +03:00
Alexei Kotov
126090bdc5
Load NiBillboardNode mode field
2022-08-31 22:32:45 +03:00
psi29a
5ee4ce1232
Merge branch 'nipixeldata' into 'master'
...
Support more NiPixelData formats (feature #6945 )
Closes #6945
See merge request OpenMW/openmw!2290
2022-08-17 12:20:00 +00:00
Alexei Kotov
edbd05a3f7
Support more NiPixelData formats (feature #6945 )
2022-08-17 14:22:27 +03:00
elsid
cc8c7002ea
Cleanup components includes
2022-08-16 19:14:04 +02:00
psi29a
bb9884c024
Merge branch 'split_stringops' into 'master'
...
Split components/misc/stringops.hpp into multiple headers
See merge request OpenMW/openmw!2233
2022-08-09 18:06:40 +00:00
elsid
f99ed6f1db
Split components/misc/stringops.hpp into multiple headers
...
Replace all ciEqual overloads with one having std::string_view as argument.
2022-08-03 22:06:24 +02:00