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

571 commits

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