diff --git a/.git-blame-ignore-revs b/.git-blame-ignore-revs new file mode 100644 index 0000000000..7e07349d62 --- /dev/null +++ b/.git-blame-ignore-revs @@ -0,0 +1,7 @@ +# This file lists revisions meant to be ignored by `git blame`. +# Pass `--ignore-revs-file .git-blame-ignore-revs` to `git blame` to make your life easier. + +# Author: Alexei Kotov +# Date: Fri Sep 2 02:52:49 2022 +0000 +# Reformat NIF record type mapping +8df0587793a07ec556dc9cb575cd2af4204c456b diff --git a/components/nif/controller.cpp b/components/nif/controller.cpp index d4ba54b840..82116378de 100644 --- a/components/nif/controller.cpp +++ b/components/nif/controller.cpp @@ -180,6 +180,23 @@ namespace Nif interpolator.post(nif); } + void NiMultiTargetTransformController::read(NIFStream *nif) + { + Controller::read(nif); + size_t numTargets = nif->getUShort(); + std::vector targets; + targets.resize(numTargets); + for (size_t i = 0; i < targets.size(); i++) + targets[i].read(nif); + mExtraTargets = targets; + } + + void NiMultiTargetTransformController::post(NIFFile *nif) + { + Controller::post(nif); + mExtraTargets.post(nif); + } + void NiFloatInterpController::read(NIFStream *nif) { Controller::read(nif); diff --git a/components/nif/controller.hpp b/components/nif/controller.hpp index e14aba46ad..06de446a0d 100644 --- a/components/nif/controller.hpp +++ b/components/nif/controller.hpp @@ -148,6 +148,14 @@ struct NiKeyframeController : public Controller void post(NIFFile *nif) override; }; +struct NiMultiTargetTransformController : public Controller +{ + NodeList mExtraTargets; + + void read(NIFStream *nif) override; + void post(NIFFile *nif) override; +}; + struct NiFloatInterpController : public Controller { NiFloatDataPtr data; diff --git a/components/nif/niffile.cpp b/components/nif/niffile.cpp index 1ce471e7dd..95a433f789 100644 --- a/components/nif/niffile.cpp +++ b/components/nif/niffile.cpp @@ -43,125 +43,126 @@ static std::map makeFactory() { return { - {"NiNode" , &construct }, - {"NiSwitchNode" , &construct }, - {"NiLODNode" , &construct }, - {"NiFltAnimationNode" , &construct }, - {"AvoidNode" , &construct }, - {"NiCollisionSwitch" , &construct }, - {"NiBSParticleNode" , &construct }, - {"NiBSAnimationNode" , &construct }, - {"NiBillboardNode" , &construct }, - {"NiTriShape" , &construct }, - {"NiTriStrips" , &construct }, - {"NiLines" , &construct }, - {"NiParticles" , &construct }, - {"NiRotatingParticles" , &construct }, - {"NiAutoNormalParticles" , &construct }, - {"NiCamera" , &construct }, - {"RootCollisionNode" , &construct }, - {"NiTexturingProperty" , &construct }, - {"NiFogProperty" , &construct }, - {"NiMaterialProperty" , &construct }, - {"NiZBufferProperty" , &construct }, - {"NiAlphaProperty" , &construct }, - {"NiVertexColorProperty" , &construct }, - {"NiShadeProperty" , &construct }, - {"NiDitherProperty" , &construct }, - {"NiWireframeProperty" , &construct }, - {"NiSpecularProperty" , &construct }, - {"NiStencilProperty" , &construct }, - {"NiVisController" , &construct }, - {"NiGeomMorpherController" , &construct }, - {"NiKeyframeController" , &construct }, - {"NiAlphaController" , &construct }, - {"NiRollController" , &construct }, - {"NiUVController" , &construct }, - {"NiPathController" , &construct }, - {"NiMaterialColorController" , &construct }, - {"NiBSPArrayController" , &construct }, - {"NiParticleSystemController" , &construct }, - {"NiFlipController" , &construct }, - {"NiAmbientLight" , &construct }, - {"NiDirectionalLight" , &construct }, - {"NiPointLight" , &construct }, - {"NiSpotLight" , &construct }, - {"NiTextureEffect" , &construct }, - {"NiExtraData" , &construct }, - {"NiVertWeightsExtraData" , &construct }, - {"NiTextKeyExtraData" , &construct }, - {"NiStringExtraData" , &construct }, - {"NiGravity" , &construct }, - {"NiPlanarCollider" , &construct }, - {"NiSphericalCollider" , &construct }, - {"NiParticleGrowFade" , &construct }, - {"NiParticleColorModifier" , &construct }, - {"NiParticleRotation" , &construct }, - {"NiFloatData" , &construct }, - {"NiTriShapeData" , &construct }, - {"NiTriStripsData" , &construct }, - {"NiLinesData" , &construct }, - {"NiVisData" , &construct }, - {"NiColorData" , &construct }, - {"NiPixelData" , &construct }, - {"NiMorphData" , &construct }, - {"NiKeyframeData" , &construct }, - {"NiSkinData" , &construct }, - {"NiUVData" , &construct }, - {"NiPosData" , &construct }, - {"NiParticlesData" , &construct }, - {"NiRotatingParticlesData" , &construct }, - {"NiAutoNormalParticlesData" , &construct }, - {"NiSequenceStreamHelper" , &construct }, - {"NiSourceTexture" , &construct }, - {"NiSkinInstance" , &construct }, - {"NiLookAtController" , &construct }, - {"NiPalette" , &construct }, - {"NiIntegerExtraData" , &construct }, - {"NiIntegersExtraData" , &construct }, - {"NiBinaryExtraData" , &construct }, - {"NiBooleanExtraData" , &construct }, - {"NiVectorExtraData" , &construct }, - {"NiColorExtraData" , &construct }, - {"NiFloatExtraData" , &construct }, - {"NiFloatsExtraData" , &construct }, - {"NiStringPalette" , &construct }, - {"NiBoolData" , &construct }, - {"NiSkinPartition" , &construct }, - {"BSXFlags" , &construct }, - {"BSBound" , &construct }, - {"NiTransformData" , &construct }, - {"BSFadeNode" , &construct }, - {"bhkBlendController" , &construct }, - {"NiFloatInterpolator" , &construct }, - {"NiBoolInterpolator" , &construct }, - {"NiPoint3Interpolator" , &construct }, - {"NiTransformController" , &construct }, - {"NiTransformInterpolator" , &construct }, - {"NiColorInterpolator" , &construct }, - {"BSShaderTextureSet" , &construct }, - {"BSLODTriShape" , &construct }, - {"BSShaderProperty" , &construct }, - {"BSShaderPPLightingProperty" , &construct }, - {"BSShaderNoLightingProperty" , &construct }, - {"BSFurnitureMarker" , &construct }, - {"NiCollisionObject" , &construct }, - {"bhkCollisionObject" , &construct }, - {"BSDismemberSkinInstance" , &construct }, - {"NiControllerManager" , &construct }, - {"bhkMoppBvTreeShape" , &construct }, - {"bhkNiTriStripsShape" , &construct }, - {"bhkPackedNiTriStripsShape" , &construct }, - {"hkPackedNiTriStripsData" , &construct }, - {"bhkConvexVerticesShape" , &construct }, - {"bhkBoxShape" , &construct }, - {"bhkListShape" , &construct }, - {"bhkRigidBody" , &construct }, - {"bhkRigidBodyT" , &construct }, - {"BSLightingShaderProperty" , &construct }, - {"NiSortAdjustNode" , &construct }, - {"NiClusterAccumulator" , &construct }, - {"NiAlphaAccumulator" , &construct }, + {"NiNode" , &construct }, + {"NiSwitchNode" , &construct }, + {"NiLODNode" , &construct }, + {"NiFltAnimationNode" , &construct }, + {"AvoidNode" , &construct }, + {"NiCollisionSwitch" , &construct }, + {"NiBSParticleNode" , &construct }, + {"NiBSAnimationNode" , &construct }, + {"NiBillboardNode" , &construct }, + {"NiTriShape" , &construct }, + {"NiTriStrips" , &construct }, + {"NiLines" , &construct }, + {"NiParticles" , &construct }, + {"NiRotatingParticles" , &construct }, + {"NiAutoNormalParticles" , &construct }, + {"NiCamera" , &construct }, + {"RootCollisionNode" , &construct }, + {"NiTexturingProperty" , &construct }, + {"NiFogProperty" , &construct }, + {"NiMaterialProperty" , &construct }, + {"NiZBufferProperty" , &construct }, + {"NiAlphaProperty" , &construct }, + {"NiVertexColorProperty" , &construct }, + {"NiShadeProperty" , &construct }, + {"NiDitherProperty" , &construct }, + {"NiWireframeProperty" , &construct }, + {"NiSpecularProperty" , &construct }, + {"NiStencilProperty" , &construct }, + {"NiVisController" , &construct }, + {"NiGeomMorpherController" , &construct }, + {"NiKeyframeController" , &construct }, + {"NiAlphaController" , &construct }, + {"NiRollController" , &construct }, + {"NiUVController" , &construct }, + {"NiPathController" , &construct }, + {"NiMaterialColorController" , &construct }, + {"NiBSPArrayController" , &construct }, + {"NiParticleSystemController" , &construct }, + {"NiFlipController" , &construct }, + {"NiAmbientLight" , &construct }, + {"NiDirectionalLight" , &construct }, + {"NiPointLight" , &construct }, + {"NiSpotLight" , &construct }, + {"NiTextureEffect" , &construct }, + {"NiExtraData" , &construct }, + {"NiVertWeightsExtraData" , &construct }, + {"NiTextKeyExtraData" , &construct }, + {"NiStringExtraData" , &construct }, + {"NiGravity" , &construct }, + {"NiPlanarCollider" , &construct }, + {"NiSphericalCollider" , &construct }, + {"NiParticleGrowFade" , &construct }, + {"NiParticleColorModifier" , &construct }, + {"NiParticleRotation" , &construct }, + {"NiFloatData" , &construct }, + {"NiTriShapeData" , &construct }, + {"NiTriStripsData" , &construct }, + {"NiLinesData" , &construct }, + {"NiVisData" , &construct }, + {"NiColorData" , &construct }, + {"NiPixelData" , &construct }, + {"NiMorphData" , &construct }, + {"NiKeyframeData" , &construct }, + {"NiSkinData" , &construct }, + {"NiUVData" , &construct }, + {"NiPosData" , &construct }, + {"NiParticlesData" , &construct }, + {"NiRotatingParticlesData" , &construct }, + {"NiAutoNormalParticlesData" , &construct }, + {"NiSequenceStreamHelper" , &construct }, + {"NiSourceTexture" , &construct }, + {"NiSkinInstance" , &construct }, + {"NiLookAtController" , &construct }, + {"NiPalette" , &construct }, + {"NiIntegerExtraData" , &construct }, + {"NiIntegersExtraData" , &construct }, + {"NiBinaryExtraData" , &construct }, + {"NiBooleanExtraData" , &construct }, + {"NiVectorExtraData" , &construct }, + {"NiColorExtraData" , &construct }, + {"NiFloatExtraData" , &construct }, + {"NiFloatsExtraData" , &construct }, + {"NiStringPalette" , &construct }, + {"NiBoolData" , &construct }, + {"NiSkinPartition" , &construct }, + {"BSXFlags" , &construct }, + {"BSBound" , &construct }, + {"NiTransformData" , &construct }, + {"BSFadeNode" , &construct }, + {"bhkBlendController" , &construct }, + {"NiFloatInterpolator" , &construct }, + {"NiBoolInterpolator" , &construct }, + {"NiPoint3Interpolator" , &construct }, + {"NiTransformController" , &construct }, + {"NiMultiTargetTransformController" , &construct }, + {"NiTransformInterpolator" , &construct }, + {"NiColorInterpolator" , &construct }, + {"BSShaderTextureSet" , &construct }, + {"BSLODTriShape" , &construct }, + {"BSShaderProperty" , &construct }, + {"BSShaderPPLightingProperty" , &construct }, + {"BSShaderNoLightingProperty" , &construct }, + {"BSFurnitureMarker" , &construct }, + {"NiCollisionObject" , &construct }, + {"bhkCollisionObject" , &construct }, + {"BSDismemberSkinInstance" , &construct }, + {"NiControllerManager" , &construct }, + {"bhkMoppBvTreeShape" , &construct }, + {"bhkNiTriStripsShape" , &construct }, + {"bhkPackedNiTriStripsShape" , &construct }, + {"hkPackedNiTriStripsData" , &construct }, + {"bhkConvexVerticesShape" , &construct }, + {"bhkBoxShape" , &construct }, + {"bhkListShape" , &construct }, + {"bhkRigidBody" , &construct }, + {"bhkRigidBodyT" , &construct }, + {"BSLightingShaderProperty" , &construct }, + {"NiSortAdjustNode" , &construct }, + {"NiClusterAccumulator" , &construct }, + {"NiAlphaAccumulator" , &construct }, }; } diff --git a/components/nif/record.hpp b/components/nif/record.hpp index 37084af44e..205273ad96 100644 --- a/components/nif/record.hpp +++ b/components/nif/record.hpp @@ -144,7 +144,8 @@ enum RecordType RC_BSLightingShaderProperty, RC_NiClusterAccumulator, RC_NiAlphaAccumulator, - RC_NiSortAdjustNode + RC_NiSortAdjustNode, + RC_NiMultiTargetTransformController }; /// Base class for all records