Commit Graph

579 Commits (master)

Author SHA1 Message Date
Alexei Kotov 080d7d2c13 Refactor NiTexturingProperty, load everything 1 year ago
Alexei Kotov 18e4af04b3 Rewrite BSVertexData loading and read FO4 geometry properly 1 year ago
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
1 year ago
Alexei Kotov eb8242946a Improve node record consistency with NifTools 1 year ago
Alexei Kotov bff9231c3b Refactor NiGeometry/BSTriShape
Don't pass invalid geometry data links to the loaders
1 year ago
Alexei Kotov deb051639e Refactor NiBoundingVolume 1 year ago
Alexei Kotov 5b0bc97db0 Refactor NiSwitchNode and NiLODNode 1 year ago
Alexei Kotov c9300cac31 Update NIF node records, first pass 1 year ago
Alexei Kotov 2f8229a54d Fix bit shift 1 year ago
Alexei Kotov f271c4305a Fix formatting 1 year ago
Alexei Kotov 8856dff3db Refactor NiParticleSystemController and update definitions 1 year ago
Alexei Kotov d55ba0cfa2 Cleanup 1 year ago
Alexei Kotov 0fe095303f Rename Controller->NiTimeController, update NiTimeController and related code 1 year ago
Alexei Kotov 04d3f6a42d Update NiPathController
Support 10.1.0.0+ NiPathController loading
1 year ago
Alexei Kotov ca85820431 Refactor NiUVController 1 year ago
Alexei Kotov b0dfd74562 NIFStream: remove getBoolean, getString 1 year ago
Alexei Kotov 05d8975ed1 Revise various NIF controller records
Mostly those that don't require external changes
1 year ago
Alexei Kotov 19d1f6f3f5 Rewrite typed NiInterpolator loading 1 year ago
Alexei Kotov 6d82f8b00d Refactor NiKeyframeController and NiTransformInterpolator 1 year ago
Alexei Kotov 735a948452 Refactor NiMultiTargetTransformController 1 year ago
Alexei Kotov 208bfa9e21 Refactor NiMaterialColorController 1 year ago
Alexei Kotov a224bea6d4 Rewrite NiBlendInterpolator+friends loading 1 year ago
Alexei Kotov 956ede52fb NIFStream: remove getShort, getMatrix3, getQuaternion 1 year ago
psi29a 42b77342c5 Merge branch 'nif' into 'master'
Modernize NIF loader, part 3

See merge request OpenMW/openmw!3418
1 year ago
Alexei Kotov 9b801b0876 Fix NiParticlesData loading in Mistify 1 year ago
Alexei Kotov 4dd2f34e30 Fix Windows build 1 year ago
Alexei Kotov a7cc4e6ba6 Rename Node->NiAVObject and update everything directly related
Update NiNode
Simplify RootCollisionNode handling in BulletNifLoader
1 year ago
Alexei Kotov 878d4ddaa7 Update record pointer loading 1 year ago
Alexei Kotov 6872c7144e Rename Transformation->NiTransform and update everything directly related 1 year ago
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
1 year ago
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
1 year ago
Alexei Kotov b9f552b7f4 Preallocate lines in NiLinesData 1 year ago
Alexei Kotov 145ce8f924 Deduplicate some version checks, avoid resizing twice 1 year ago
Alexei Kotov b7c69d109f Use Fallout 3 stream version constant in NiParticlesData 1 year ago
Alexei Kotov bf64ad6470 Further cleanup 1 year ago
Alexei Kotov 5b8f574be3 Update keygroup/morph loading 1 year ago
Alexei Kotov efe1c66536 Further cleanup in NiGeometryData, update NiParticlesData to 20.2.0.7 1 year ago
Alexei Kotov fd3b24e2e6 Make better use of osg::BoundingSpheref in the NIF loader 1 year ago
Alexei Kotov 0154bb78df Modernize NiSkinPartition 1 year ago
Alexei Kotov 6ac271d5c0 Modernize NiParticlesData and NiSkinData 1 year ago
Alexei Kotov 89774716fb Modernize NiGeometryData 1 year ago
Alexei Kotov 50a5d53b41 Modernize NiKeyframeData 1 year ago
Alexei Kotov cfd37dbcc6 Modernize NiTriShapeData 1 year ago
Alexei Kotov 56ee2588a5 Fix NiSourceTexture loading for internal textures 1 year ago
Alexei Kotov 5e8f9e7dd9 Modernize NiPixelData 1 year ago
Alexei Kotov 523e7e8228 Modernize NiRotatingParticlesData and NiVisData 1 year ago
Alexei Kotov eba0ab444b Modernize NiTriStripsData 1 year ago
Alexei Kotov fda6b0b4f8 Modernize NiUVData, NiLinesData, NiTriBasedGeomData 1 year ago
Alexei Kotov 384a398b62 Modernize NiMorphData, palette and BSBound records 1 year ago
Alexei Kotov 5b07a78f2c Modernize skin instance records 1 year ago
Alexei Kotov 2edf3399e2 Modernize extra data records 1 year ago
Alexei Kotov 8a7e8a89ac Modernize Bethesda Havok records 1 year ago
Alexei Kotov bb6e008801 Modernize dynamic effects 1 year ago
Alexei Kotov 2e847a12c4 Modernize NiSourceTexture and BSShaderTextureSet 1 year ago
Alexei Kotov fb8ead2bd4 Rename nif/controlled to nif/texture 1 year ago
Alexei Kotov 4a88726aba Move particle modifiers into a dedicated file 1 year ago
Alexei Kotov 1d05aa2e37 Modernize particle modifiers 1 year ago
Alexei Kotov f8b2967dab Alphabetize NIF record type list 1 year ago
Alexei Kotov 4140f9da3c Reorganize the list of recognized NIF records 1 year ago
Alexei Kotov 4e156f2a7d NIFStream: improve handling of ranges and aligned types 1 year ago
Alexei Kotov 57144accf6 Phase out NIFStream::get[Types] 1 year ago
Alexei Kotov e7bbfed1fd Read BSTriShape bounds into array 1 year ago
Alexei Kotov 6dca3e68a6 NIFStream: don't read vectors of zero length 1 year ago
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
1 year ago
Alexei Kotov ce13f05187 NIFStream: clean up comments 1 year ago
Alexei Kotov e8f9a918ae NIFStream: use the right function for readArray 1 year ago
Alexei Kotov 4f549c267f NIFStream: rename input stream and file methods
To conform to modern style conventions
1 year ago
Alexei Kotov 62d643f668 NIFStream: Drop LittleEndian from reading methods
This is just noise. We don't clarify reading endianness for any other file format.
1 year ago
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
1 year ago
Alexei Kotov ee7accf3bd Don't read affected nodes for 10.0.1.0 NiDynamicEffect 1 year ago
Alexei Kotov baefff323c Make some NIF loading messages less confusing 1 year ago
Alexei Dobrohotov de50f30645 Read a couple of Bethesda-specific controller records
BSMaterialEmittanceMultController
BSRefractionFirePeriodController
BSRefractionStrengthController
1 year ago
psi29a c290754077 Revert "Merge branch 'loadSSEAlchemyTable' into 'master'"
This reverts merge request !3267
1 year ago
Petr Mikheev 0487bf95d1 Merge branch 'coverity49' into 'master'
Fix some Coverity warnings

See merge request OpenMW/openmw!3286
1 year ago
elsid dd54857610
Add missing array include 1 year ago
Andrei Kortunov d8ec78d732 Fix some Coverity warnings 1 year ago
alekulyn d2896945e8 Load SSE alchemy table 1 year ago
psi29a 466b2f1b74 Merge branch 'mantlingtalos' into 'master'
Copy triangle data from NiSkinPartition, a.k.a. SKYRIM TREES

See merge request OpenMW/openmw!3235
1 year ago
Alexei Kotov 3f252eab5d Copy triangle data from NiSkinPartition 1 year ago
Alexei Kotov d6e420fb48 Handle BSShader specular flag 1 year ago
psi29a 62ef209185 Merge branch 'readingbooksbutnotquite' into 'master'
Read bhkLimitedHingeConstraint

See merge request OpenMW/openmw!3254
1 year ago
psi29a 686281d276 Merge branch 'helgenkeepcalm' into 'master'
NIF additions relevant to Helgen Keep

See merge request OpenMW/openmw!3252
1 year ago
Alexei Kotov 6b6a3bcfca Make decal rendering more accurate for Skyrim models, reducing Z-fighting 1 year ago
Alexei Kotov 6c4957fe4a Read bhkLimitedHingeConstraint 1 year ago
Alexei Kotov d2c797aee9 Read BSDamageStage 1 year ago
Alexei Kotov 5a3dce160c Read NiBoolTimelineInterpolator 1 year ago
Alexei Kotov 4265524ad5 Read BSRangeNode and BSBlastNode 1 year ago
Alexei Kotov fa39f04a3a Read BSBehaviorGraphExtraData 1 year ago
Alexei Kotov e710e94304 Read BSLightingShaderPropertyColorController 1 year ago
Alexei Kotov c34157fc28 Fix bhkConstraintMotorCInfo loading 1 year ago
psi29a 5bc06b3678 Merge branch 'bhkconstraint' into 'master'
Read bhkRagdollConstraint and bhkHingeConstraint

See merge request OpenMW/openmw!3231
1 year ago
Alexei Kotov 65fe89d8af Read NiTextureTransformController 1 year ago
Alexei Kotov ed8fd81714 Don't mess with A/B hardcoding in constraints 1 year ago
Alexei Kotov eb3e762c50 Read bhkHingeConstraint 1 year ago
Alexei Kotov 83be42893d Read bhkRagdollConstraint 1 year ago
Alexei Kotov 723f5c58e1 Add bhkConstraint 1 year ago
Alexei Kotov d8f50553af Move Skyrim shader property controllers to controllers 1 year ago
alekulyn b085a52681 Add template Nif record 1 year ago
alekulyn 4b90352c2f Add RC value to BSLightingShaderPropertyFloatController and change the revelant RC value in niffile 1 year ago
alekulyn 589726d4f8 Enchanting table fully ready 1 year ago
alekulyn ed532b5aca Add BSEffectShaderPropertyFloatController record reading 1 year ago
alekulyn 7ea2ea96b6 Read new nodes pt1 1 year ago
psi29a d9027f7eef Merge branch 'falloutfalloffnthtimesthecharm' into 'master'
BSEffectShader/NoLighting fixes

See merge request OpenMW/openmw!3211
1 year ago
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
1 year ago
alekulyn 74aa7b947a Load BSTriShape NIF nodes 1 year ago
alekulyn 683fb0a342 Templated nif reader function modelled after cc9cii's reader 2 years ago
alekulyn dc860ca302 Load BSInvMarker NIF nodes 2 years ago
Petr Mikheev 788a4d32aa Handle DoubleSided and TreeAnim flags in BSLightingShaderProperty. 2 years ago
Petr Mikheev e74161ea8e Merge branch 'slashrslashmarijuanaenthusiasts' into 'master'
Improve Skyrim tree loading (limited)

See merge request OpenMW/openmw!3054
2 years ago
Alexei Dobrohotov a983977e6a Fix NiSkinData loading for >4.2.1.0 2 years ago
Alexei Dobrohotov 1b5e904285 Read BSMultiBound et al. 2 years ago
Evil Eye 9728024978 Replace compare with more idiomatic methods 2 years ago
Alexei Dobrohotov 3e8a9d1de4 Read BSTreeNode, handle as NiNode 2 years ago
Petr Mikheev 493858127a Drop NIF root node transformation for Skyrim models the same way as for Morrowind models. 2 years ago
Alexei Kotov d8dad79195 Read bsLeafAnimNode 2 years ago
Alexei Kotov 9618a465ce Read bhkCompressedMeshShape 2 years ago
Alexei Kotov fc6bc90c3d Read BSFurnitureMarkerNode 2 years ago
Alexei Kotov 2de81738c1 Implement the basics of BSEffectShaderProperty 2 years ago
Alexei Kotov 99aa90f90c Rewrite NiVertexColorProperty 2 years ago
Alexei Kotov d39127cc3d Add NiTriBasedGeomData abstraction 2 years ago
psi29a de2bd6d802 Merge branch 'nistringpalette' into 'master'
Fix NiStringPalette loading again

See merge request OpenMW/openmw!2703
2 years ago
Alexei Kotov a4ddf443ed Fix NiStringPalette loading 2 years ago
Alexei Kotov c8430ee6c8 Clean up fillTriangleMesh for NiTriStrips 2 years ago
psi29a a41cbfb349 Merge branch 'candles' into 'master'
Read NiBlendInterpolator records, fill in NiControllerManager fields

See merge request OpenMW/openmw!2700
2 years ago
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.
2 years ago
Alexei Kotov d7834c43e5 Fill in NiControllerManager fields 2 years ago
Alexei Kotov 091fcd837e Read all the NiBlendInterpolator record types 2 years ago
Alexei Kotov 7ecf018743 Add NiBlendInterpolator 2 years ago
Alexei Kotov 41d6ccd3f6 Read NiDefaultAVObjectPalette 2 years ago
psi29a 5f9332751c Merge branch 'roottrafo' into 'master'
Don't discard root node transformations for Gamebryo meshes

See merge request OpenMW/openmw!2697
2 years ago
Alexei Kotov b14d1f0c6b Don't discard root node transformations for Gamebryo meshes 2 years ago
Alexei Kotov 8ebdd1e4a5 Fix material data loading for 10.0.1.0 2 years ago
Alexei Kotov 115c30a573 Read bhkConvexTransformShape 2 years ago
Alexei Kotov 9f28a26b25 Read NiSequence/NiControllerSequence 2 years ago
jvoisin 3cbf1dc042 First pass with include-what-you-use 2 years ago
elsid 06f7e8088e
Check for negative record list length 2 years ago
elsid 0688b6de40
Separate record list reading from its state
To make it possible to set record list state independently from reading NIF
file.
2 years ago
elsid c338c1e5d3
Add Nif::FileView as read only interface for Nif::NIFFile
To make sure interface is scoped to what users require.
2 years ago
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.
2 years ago
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.
2 years ago
clang-format-bot ddb0522bbf
Apply clang-format to code base 2 years ago
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
2 years ago
Alexei Kotov e2ed313389 Don't load keys for Gamebryo morphs 2 years ago
psi29a d1c79fa8d1 Merge branch 'pre_clang_format_fixes_2' into 'master'
Fixes before applying clang-format 2

See merge request OpenMW/openmw!2401
2 years ago
Alexei Kotov 482de23893 Streamline NiInterpController handling 2 years ago
elsid 410a2881fe
Add comma to the last array element to prevent putting multiple elements on a single line 2 years ago
Project579 2df8bfed25 Fix build errors after rebase against master due to large amount of changes. 2 years ago
Project579 a13709c510 Replace implicit convertions from std::filesystem::path to std::string with correctly converting functions. 2 years ago
Project579 e5c417c968 Make sure all paths are passed as std::filesystem::path instead of std::string where possible. 2 years ago
Alexei Kotov f17b1cd7ab Load bhkCapsuleShape and bhkSphereShape 2 years ago