From d377f0dfe910f43d3c1c5755e3e90d50aba3edea Mon Sep 17 00:00:00 2001
From: Amorilia <amorilia@users.sourceforge.net>
Date: Wed, 21 Sep 2011 20:14:47 +0100
Subject: [PATCH] Regenerated code for FixLink update.

---
 docsys                                       |  2 +-
 src/obj/ATextureRenderData.cpp               |  2 +-
 src/obj/BSFrustumFOVController.cpp           |  2 +-
 src/obj/BSKeyframeController.cpp             |  2 +-
 src/obj/BSMasterParticleSystem.cpp           |  2 +-
 src/obj/BSMultiBound.cpp                     |  2 +-
 src/obj/BSMultiBoundNode.cpp                 |  2 +-
 src/obj/BSPSysMultiTargetEmitterCtlr.cpp     |  4 +--
 src/obj/BSShaderPPLightingProperty.cpp       |  2 +-
 src/obj/FxRadioButton.cpp                    |  2 +-
 src/obj/Ni3dsAlphaAnimator.cpp               |  2 +-
 src/obj/Ni3dsAnimationNode.cpp               |  2 +-
 src/obj/NiAVObject.cpp                       |  4 +--
 src/obj/NiAlphaController.cpp                |  2 +-
 src/obj/NiArkTextureExtraData.cpp            |  2 +-
 src/obj/NiBSplineInterpolator.cpp            |  4 +--
 src/obj/NiBezierMesh.cpp                     |  2 +-
 src/obj/NiBinaryVoxelExtraData.cpp           |  2 +-
 src/obj/NiBoneLODController.cpp              |  8 +++---
 src/obj/NiBoolInterpolator.cpp               |  2 +-
 src/obj/NiCamera.cpp                         |  2 +-
 src/obj/NiCollisionObject.cpp                |  2 +-
 src/obj/NiControllerManager.cpp              |  4 +--
 src/obj/NiControllerSequence.cpp             |  6 ++---
 src/obj/NiDefaultAVObjectPalette.cpp         |  2 +-
 src/obj/NiDynamicEffect.cpp                  |  2 +-
 src/obj/NiEnvMappedTriShape.cpp              |  6 ++---
 src/obj/NiExtraData.cpp                      |  2 +-
 src/obj/NiFlipController.cpp                 |  4 +--
 src/obj/NiFloatInterpolator.cpp              |  2 +-
 src/obj/NiGeomMorpherController.cpp          |  6 ++---
 src/obj/NiGeometry.cpp                       |  4 +--
 src/obj/NiGeometryData.cpp                   |  2 +-
 src/obj/NiImage.cpp                          |  2 +-
 src/obj/NiKeyframeController.cpp             |  2 +-
 src/obj/NiLODNode.cpp                        |  2 +-
 src/obj/NiLookAtController.cpp               |  2 +-
 src/obj/NiLookAtInterpolator.cpp             |  8 +++---
 src/obj/NiMeshPSysData.cpp                   |  2 +-
 src/obj/NiMorpherController.cpp              |  2 +-
 src/obj/NiMultiTargetTransformController.cpp |  2 +-
 src/obj/NiMultiTextureProperty.cpp           |  2 +-
 src/obj/NiNode.cpp                           |  4 +--
 src/obj/NiObjectNET.cpp                      |  6 ++---
 src/obj/NiPSysAgeDeathModifier.cpp           |  2 +-
 src/obj/NiPSysBombModifier.cpp               |  2 +-
 src/obj/NiPSysCollider.cpp                   |  8 +++---
 src/obj/NiPSysColliderManager.cpp            |  2 +-
 src/obj/NiPSysColorModifier.cpp              |  2 +-
 src/obj/NiPSysDragModifier.cpp               |  2 +-
 src/obj/NiPSysEmitterCtlr.cpp                |  4 +--
 src/obj/NiPSysFieldModifier.cpp              |  2 +-
 src/obj/NiPSysGravityModifier.cpp            |  2 +-
 src/obj/NiPSysMeshEmitter.cpp                |  2 +-
 src/obj/NiPSysMeshUpdateModifier.cpp         |  2 +-
 src/obj/NiPSysModifier.cpp                   |  2 +-
 src/obj/NiPSysModifierActiveCtlr.cpp         |  2 +-
 src/obj/NiPSysModifierFloatCtlr.cpp          |  2 +-
 src/obj/NiPSysVolumeEmitter.cpp              |  2 +-
 src/obj/NiParticleColorModifier.cpp          |  2 +-
 src/obj/NiParticleMeshModifier.cpp           |  2 +-
 src/obj/NiParticleMeshesData.cpp             |  2 +-
 src/obj/NiParticleModifier.cpp               |  4 +--
 src/obj/NiParticleSystem.cpp                 |  2 +-
 src/obj/NiParticleSystemController.cpp       | 12 ++++-----
 src/obj/NiParticlesData.cpp                  |  2 +-
 src/obj/NiPathController.cpp                 |  4 +--
 src/obj/NiPathInterpolator.cpp               |  4 +--
 src/obj/NiPhysXActorDesc.cpp                 | 10 ++++----
 src/obj/NiPhysXProp.cpp                      |  6 ++---
 src/obj/NiPhysXPropDesc.cpp                  |  6 ++---
 src/obj/NiPhysXShapeDesc.cpp                 |  2 +-
 src/obj/NiPhysXTransformDest.cpp             |  2 +-
 src/obj/NiPoint3InterpController.cpp         |  2 +-
 src/obj/NiPoint3Interpolator.cpp             |  2 +-
 src/obj/NiPortal.cpp                         |  2 +-
 src/obj/NiRollController.cpp                 |  2 +-
 src/obj/NiRoom.cpp                           |  6 ++---
 src/obj/NiRoomGroup.cpp                      |  4 +--
 src/obj/NiSequence.cpp                       | 12 ++++-----
 src/obj/NiSingleInterpController.cpp         |  2 +-
 src/obj/NiSkinData.cpp                       |  2 +-
 src/obj/NiSkinInstance.cpp                   |  8 +++---
 src/obj/NiSourceTexture.cpp                  |  4 +--
 src/obj/NiTextureEffect.cpp                  |  4 +--
 src/obj/NiTextureProperty.cpp                |  2 +-
 src/obj/NiTextureTransformController.cpp     |  2 +-
 src/obj/NiTexturingProperty.cpp              | 26 ++++++++++----------
 src/obj/NiTimeController.cpp                 |  4 +--
 src/obj/NiTransformInterpolator.cpp          |  2 +-
 src/obj/NiTriShapeSkinController.cpp         |  2 +-
 src/obj/NiUVController.cpp                   |  2 +-
 src/obj/NiVisController.cpp                  |  2 +-
 src/obj/bhkConstraint.cpp                    |  2 +-
 src/obj/bhkConvexListShape.cpp               |  2 +-
 src/obj/bhkListShape.cpp                     |  2 +-
 src/obj/bhkMalleableConstraint.cpp           |  4 +--
 src/obj/bhkMoppBvTreeShape.cpp               |  2 +-
 src/obj/bhkNiCollisionObject.cpp             |  2 +-
 src/obj/bhkNiTriStripsShape.cpp              |  2 +-
 src/obj/bhkPackedNiTriStripsShape.cpp        |  2 +-
 src/obj/bhkRigidBody.cpp                     |  2 +-
 src/obj/bhkTransformShape.cpp                |  2 +-
 src/obj/bhkWorldObject.cpp                   |  2 +-
 104 files changed, 172 insertions(+), 172 deletions(-)

diff --git a/docsys b/docsys
index 174aae56..8e3f22c1 160000
--- a/docsys
+++ b/docsys
@@ -1 +1 @@
-Subproject commit 174aae56e174590ebeada2159f7991a1807d309b
+Subproject commit 8e3f22c1ebedb0afed9759af2edd1bf2d498eaf0
diff --git a/src/obj/ATextureRenderData.cpp b/src/obj/ATextureRenderData.cpp
index a2073897..815a081e 100644
--- a/src/obj/ATextureRenderData.cpp
+++ b/src/obj/ATextureRenderData.cpp
@@ -255,7 +255,7 @@ void ATextureRenderData::FixLinks( const map<unsigned int,NiObjectRef> & objects
 	//--END CUSTOM CODE--//
 
 	NiObject::FixLinks( objects, link_stack, missing_link_stack, info );
-	palette = FixLink<NiPalette>( objects, link_stack, info );
+	palette = FixLink<NiPalette>( objects, link_stack, missing_link_stack, info );
 
 	//--BEGIN POST-FIXLINKS CUSTOM CODE--//
 
diff --git a/src/obj/BSFrustumFOVController.cpp b/src/obj/BSFrustumFOVController.cpp
index 74af4f83..0ebf5443 100644
--- a/src/obj/BSFrustumFOVController.cpp
+++ b/src/obj/BSFrustumFOVController.cpp
@@ -106,7 +106,7 @@ void BSFrustumFOVController::FixLinks( const map<unsigned int,NiObjectRef> & obj
 	//--END CUSTOM CODE--//
 
 	NiTimeController::FixLinks( objects, link_stack, missing_link_stack, info );
-	interpolator = FixLink<NiFloatInterpolator>( objects, link_stack, info );
+	interpolator = FixLink<NiFloatInterpolator>( objects, link_stack, missing_link_stack, info );
 
 	//--BEGIN POST-FIXLINKS CUSTOM CODE--//
 
diff --git a/src/obj/BSKeyframeController.cpp b/src/obj/BSKeyframeController.cpp
index dad44eb3..9479de4f 100644
--- a/src/obj/BSKeyframeController.cpp
+++ b/src/obj/BSKeyframeController.cpp
@@ -96,7 +96,7 @@ void BSKeyframeController::FixLinks( const map<unsigned int,NiObjectRef> & objec
 	//--END CUSTOM CODE--//
 
 	NiKeyframeController::FixLinks( objects, link_stack, missing_link_stack, info );
-	data2 = FixLink<NiKeyframeData>( objects, link_stack, info );
+	data2 = FixLink<NiKeyframeData>( objects, link_stack, missing_link_stack, info );
 
 	//--BEGIN POST-FIXLINKS CUSTOM CODE--//
 	//--END CUSTOM CODE--//
diff --git a/src/obj/BSMasterParticleSystem.cpp b/src/obj/BSMasterParticleSystem.cpp
index 6488e00d..16ed61a8 100644
--- a/src/obj/BSMasterParticleSystem.cpp
+++ b/src/obj/BSMasterParticleSystem.cpp
@@ -132,7 +132,7 @@ void BSMasterParticleSystem::FixLinks( const map<unsigned int,NiObjectRef> & obj
 
 	NiNode::FixLinks( objects, link_stack, missing_link_stack, info );
 	for (unsigned int i1 = 0; i1 < particleSystems.size(); i1++) {
-		particleSystems[i1] = FixLink<NiAVObject>( objects, link_stack, info );
+		particleSystems[i1] = FixLink<NiAVObject>( objects, link_stack, missing_link_stack, info );
 	};
 
 	//--BEGIN POST-FIXLINKS CUSTOM CODE--//
diff --git a/src/obj/BSMultiBound.cpp b/src/obj/BSMultiBound.cpp
index 440d99a5..1ecc9407 100644
--- a/src/obj/BSMultiBound.cpp
+++ b/src/obj/BSMultiBound.cpp
@@ -106,7 +106,7 @@ void BSMultiBound::FixLinks( const map<unsigned int,NiObjectRef> & objects, list
 	//--END CUSTOM CODE--//
 
 	NiObject::FixLinks( objects, link_stack, missing_link_stack, info );
-	data = FixLink<BSMultiBoundData>( objects, link_stack, info );
+	data = FixLink<BSMultiBoundData>( objects, link_stack, missing_link_stack, info );
 
 	//--BEGIN POST-FIXLINKS CUSTOM CODE--//
 
diff --git a/src/obj/BSMultiBoundNode.cpp b/src/obj/BSMultiBoundNode.cpp
index b43a30ca..1d3eedae 100644
--- a/src/obj/BSMultiBoundNode.cpp
+++ b/src/obj/BSMultiBoundNode.cpp
@@ -106,7 +106,7 @@ void BSMultiBoundNode::FixLinks( const map<unsigned int,NiObjectRef> & objects,
 	//--END CUSTOM CODE--//
 
 	NiNode::FixLinks( objects, link_stack, missing_link_stack, info );
-	multiBound = FixLink<BSMultiBound>( objects, link_stack, info );
+	multiBound = FixLink<BSMultiBound>( objects, link_stack, missing_link_stack, info );
 
 	//--BEGIN POST-FIXLINKS CUSTOM CODE--//
 
diff --git a/src/obj/BSPSysMultiTargetEmitterCtlr.cpp b/src/obj/BSPSysMultiTargetEmitterCtlr.cpp
index 73c1f6ee..407cd1ae 100644
--- a/src/obj/BSPSysMultiTargetEmitterCtlr.cpp
+++ b/src/obj/BSPSysMultiTargetEmitterCtlr.cpp
@@ -142,10 +142,10 @@ void BSPSysMultiTargetEmitterCtlr::FixLinks( const map<unsigned int,NiObjectRef>
 
 	NiPSysModifierCtlr::FixLinks( objects, link_stack, missing_link_stack, info );
 	if ( info.version <= 0x0A010000 ) {
-		data = FixLink<NiPSysEmitterCtlrData>( objects, link_stack, info );
+		data = FixLink<NiPSysEmitterCtlrData>( objects, link_stack, missing_link_stack, info );
 	};
 	if ( info.version >= 0x0A020000 ) {
-		visibilityInterpolator = FixLink<NiInterpolator>( objects, link_stack, info );
+		visibilityInterpolator = FixLink<NiInterpolator>( objects, link_stack, missing_link_stack, info );
 	};
 
 	//--BEGIN POST-FIXLINKS CUSTOM CODE--//
diff --git a/src/obj/BSShaderPPLightingProperty.cpp b/src/obj/BSShaderPPLightingProperty.cpp
index f6a1286d..7fb3d34d 100644
--- a/src/obj/BSShaderPPLightingProperty.cpp
+++ b/src/obj/BSShaderPPLightingProperty.cpp
@@ -126,7 +126,7 @@ void BSShaderPPLightingProperty::FixLinks( const map<unsigned int,NiObjectRef> &
 	//--END CUSTOM CODE--//
 
 	BSShaderLightingProperty::FixLinks( objects, link_stack, missing_link_stack, info );
-	textureSet = FixLink<BSShaderTextureSet>( objects, link_stack, info );
+	textureSet = FixLink<BSShaderTextureSet>( objects, link_stack, missing_link_stack, info );
 
 	//--BEGIN POST-FIXLINKS CUSTOM CODE--//
 
diff --git a/src/obj/FxRadioButton.cpp b/src/obj/FxRadioButton.cpp
index f6951206..21462e6b 100644
--- a/src/obj/FxRadioButton.cpp
+++ b/src/obj/FxRadioButton.cpp
@@ -127,7 +127,7 @@ void FxRadioButton::FixLinks( const map<unsigned int,NiObjectRef> & objects, lis
 
 	FxWidget::FixLinks( objects, link_stack, missing_link_stack, info );
 	for (unsigned int i1 = 0; i1 < buttons.size(); i1++) {
-		buttons[i1] = FixLink<FxRadioButton>( objects, link_stack, info );
+		buttons[i1] = FixLink<FxRadioButton>( objects, link_stack, missing_link_stack, info );
 	};
 
 	//--BEGIN POST-FIXLINKS CUSTOM CODE--//
diff --git a/src/obj/Ni3dsAlphaAnimator.cpp b/src/obj/Ni3dsAlphaAnimator.cpp
index 294d7f2e..d563532e 100644
--- a/src/obj/Ni3dsAlphaAnimator.cpp
+++ b/src/obj/Ni3dsAlphaAnimator.cpp
@@ -161,7 +161,7 @@ void Ni3dsAlphaAnimator::FixLinks( const map<unsigned int,NiObjectRef> & objects
 	//--END CUSTOM CODE--//
 
 	NiObject::FixLinks( objects, link_stack, missing_link_stack, info );
-	parent = FixLink<NiObject>( objects, link_stack, info );
+	parent = FixLink<NiObject>( objects, link_stack, missing_link_stack, info );
 
 	//--BEGIN POST-FIXLINKS CUSTOM CODE--//
 
diff --git a/src/obj/Ni3dsAnimationNode.cpp b/src/obj/Ni3dsAnimationNode.cpp
index c2b37d8f..1f230fec 100644
--- a/src/obj/Ni3dsAnimationNode.cpp
+++ b/src/obj/Ni3dsAnimationNode.cpp
@@ -183,7 +183,7 @@ void Ni3dsAnimationNode::FixLinks( const map<unsigned int,NiObjectRef> & objects
 
 	NiObject::FixLinks( objects, link_stack, missing_link_stack, info );
 	if ( hasData ) {
-		child = FixLink<NiObject>( objects, link_stack, info );
+		child = FixLink<NiObject>( objects, link_stack, missing_link_stack, info );
 	};
 
 	//--BEGIN POST-FIXLINKS CUSTOM CODE--//
diff --git a/src/obj/NiAVObject.cpp b/src/obj/NiAVObject.cpp
index 6c2188ce..855cd995 100644
--- a/src/obj/NiAVObject.cpp
+++ b/src/obj/NiAVObject.cpp
@@ -238,10 +238,10 @@ void NiAVObject::FixLinks( const map<unsigned int,NiObjectRef> & objects, list<u
 
 	NiObjectNET::FixLinks( objects, link_stack, missing_link_stack, info );
 	for (unsigned int i1 = 0; i1 < properties.size(); i1++) {
-		properties[i1] = FixLink<NiProperty>( objects, link_stack, info );
+		properties[i1] = FixLink<NiProperty>( objects, link_stack, missing_link_stack, info );
 	};
 	if ( info.version >= 0x0A000100 ) {
-		collisionObject = FixLink<NiCollisionObject>( objects, link_stack, info );
+		collisionObject = FixLink<NiCollisionObject>( objects, link_stack, missing_link_stack, info );
 	};
 
 	//--BEGIN POST-FIXLINKS CUSTOM CODE--//
diff --git a/src/obj/NiAlphaController.cpp b/src/obj/NiAlphaController.cpp
index e2b20b8a..ec437b4d 100644
--- a/src/obj/NiAlphaController.cpp
+++ b/src/obj/NiAlphaController.cpp
@@ -102,7 +102,7 @@ void NiAlphaController::FixLinks( const map<unsigned int,NiObjectRef> & objects,
 
 	NiFloatInterpController::FixLinks( objects, link_stack, missing_link_stack, info );
 	if ( info.version <= 0x0A010000 ) {
-		data = FixLink<NiFloatData>( objects, link_stack, info );
+		data = FixLink<NiFloatData>( objects, link_stack, missing_link_stack, info );
 	};
 
 	//--BEGIN POST-FIXLINKS CUSTOM CODE--//
diff --git a/src/obj/NiArkTextureExtraData.cpp b/src/obj/NiArkTextureExtraData.cpp
index 429bff7b..712347f9 100644
--- a/src/obj/NiArkTextureExtraData.cpp
+++ b/src/obj/NiArkTextureExtraData.cpp
@@ -181,7 +181,7 @@ void NiArkTextureExtraData::FixLinks( const map<unsigned int,NiObjectRef> & obje
 
 	NiExtraData::FixLinks( objects, link_stack, missing_link_stack, info );
 	for (unsigned int i1 = 0; i1 < textures.size(); i1++) {
-		textures[i1].texturingProperty = FixLink<NiTexturingProperty>( objects, link_stack, info );
+		textures[i1].texturingProperty = FixLink<NiTexturingProperty>( objects, link_stack, missing_link_stack, info );
 	};
 
 	//--BEGIN POST-FIXLINKS CUSTOM CODE--//
diff --git a/src/obj/NiBSplineInterpolator.cpp b/src/obj/NiBSplineInterpolator.cpp
index de8c1146..e4b96d7c 100644
--- a/src/obj/NiBSplineInterpolator.cpp
+++ b/src/obj/NiBSplineInterpolator.cpp
@@ -123,8 +123,8 @@ void NiBSplineInterpolator::FixLinks( const map<unsigned int,NiObjectRef> & obje
 	//--END CUSTOM CODE--//
 
 	NiInterpolator::FixLinks( objects, link_stack, missing_link_stack, info );
-	splineData = FixLink<NiBSplineData>( objects, link_stack, info );
-	basisData = FixLink<NiBSplineBasisData>( objects, link_stack, info );
+	splineData = FixLink<NiBSplineData>( objects, link_stack, missing_link_stack, info );
+	basisData = FixLink<NiBSplineBasisData>( objects, link_stack, missing_link_stack, info );
 
 	//--BEGIN POST-FIXLINKS CUSTOM CODE--//
 	//--END CUSTOM CODE--//
diff --git a/src/obj/NiBezierMesh.cpp b/src/obj/NiBezierMesh.cpp
index d018a569..6bae8a31 100644
--- a/src/obj/NiBezierMesh.cpp
+++ b/src/obj/NiBezierMesh.cpp
@@ -220,7 +220,7 @@ void NiBezierMesh::FixLinks( const map<unsigned int,NiObjectRef> & objects, list
 
 	NiAVObject::FixLinks( objects, link_stack, missing_link_stack, info );
 	for (unsigned int i1 = 0; i1 < bezierTriangle.size(); i1++) {
-		bezierTriangle[i1] = FixLink<NiBezierTriangle4>( objects, link_stack, info );
+		bezierTriangle[i1] = FixLink<NiBezierTriangle4>( objects, link_stack, missing_link_stack, info );
 	};
 
 	//--BEGIN POST-FIXLINKS CUSTOM CODE--//
diff --git a/src/obj/NiBinaryVoxelExtraData.cpp b/src/obj/NiBinaryVoxelExtraData.cpp
index 34cdfdab..377066df 100644
--- a/src/obj/NiBinaryVoxelExtraData.cpp
+++ b/src/obj/NiBinaryVoxelExtraData.cpp
@@ -99,7 +99,7 @@ void NiBinaryVoxelExtraData::FixLinks( const map<unsigned int,NiObjectRef> & obj
 	//--END CUSTOM CODE--//
 
 	NiExtraData::FixLinks( objects, link_stack, missing_link_stack, info );
-	data = FixLink<NiBinaryVoxelData>( objects, link_stack, info );
+	data = FixLink<NiBinaryVoxelData>( objects, link_stack, missing_link_stack, info );
 
 	//--BEGIN POST-FIXLINKS CUSTOM CODE--//
 	//--END CUSTOM CODE--//
diff --git a/src/obj/NiBoneLODController.cpp b/src/obj/NiBoneLODController.cpp
index 1802a287..cb4d90b5 100644
--- a/src/obj/NiBoneLODController.cpp
+++ b/src/obj/NiBoneLODController.cpp
@@ -269,18 +269,18 @@ void NiBoneLODController::FixLinks( const map<unsigned int,NiObjectRef> & object
 	NiTimeController::FixLinks( objects, link_stack, missing_link_stack, info );
 	for (unsigned int i1 = 0; i1 < nodeGroups.size(); i1++) {
 		for (unsigned int i2 = 0; i2 < nodeGroups[i1].nodes.size(); i2++) {
-			nodeGroups[i1].nodes[i2] = FixLink<NiNode>( objects, link_stack, info );
+			nodeGroups[i1].nodes[i2] = FixLink<NiNode>( objects, link_stack, missing_link_stack, info );
 		};
 	};
 	if ( ( info.version >= 0x04020200 ) && ( info.userVersion == 0 ) ) {
 		for (unsigned int i2 = 0; i2 < shapeGroups1.size(); i2++) {
 			for (unsigned int i3 = 0; i3 < shapeGroups1[i2].linkPairs.size(); i3++) {
-				shapeGroups1[i2].linkPairs[i3].shape = FixLink<NiTriBasedGeom>( objects, link_stack, info );
-				shapeGroups1[i2].linkPairs[i3].skinInstance = FixLink<NiSkinInstance>( objects, link_stack, info );
+				shapeGroups1[i2].linkPairs[i3].shape = FixLink<NiTriBasedGeom>( objects, link_stack, missing_link_stack, info );
+				shapeGroups1[i2].linkPairs[i3].skinInstance = FixLink<NiSkinInstance>( objects, link_stack, missing_link_stack, info );
 			};
 		};
 		for (unsigned int i2 = 0; i2 < shapeGroups2.size(); i2++) {
-			shapeGroups2[i2] = FixLink<NiTriBasedGeom>( objects, link_stack, info );
+			shapeGroups2[i2] = FixLink<NiTriBasedGeom>( objects, link_stack, missing_link_stack, info );
 		};
 	};
 
diff --git a/src/obj/NiBoolInterpolator.cpp b/src/obj/NiBoolInterpolator.cpp
index 1b4dc7de..9134fe15 100644
--- a/src/obj/NiBoolInterpolator.cpp
+++ b/src/obj/NiBoolInterpolator.cpp
@@ -99,7 +99,7 @@ void NiBoolInterpolator::FixLinks( const map<unsigned int,NiObjectRef> & objects
 	//--END CUSTOM CODE--//
 
 	NiKeyBasedInterpolator::FixLinks( objects, link_stack, missing_link_stack, info );
-	data = FixLink<NiBoolData>( objects, link_stack, info );
+	data = FixLink<NiBoolData>( objects, link_stack, missing_link_stack, info );
 
 	//--BEGIN POST-FIXLINKS CUSTOM CODE--//
 	//--END CUSTOM CODE--//
diff --git a/src/obj/NiCamera.cpp b/src/obj/NiCamera.cpp
index 6381a7d2..fa98fe45 100644
--- a/src/obj/NiCamera.cpp
+++ b/src/obj/NiCamera.cpp
@@ -160,7 +160,7 @@ void NiCamera::FixLinks( const map<unsigned int,NiObjectRef> & objects, list<uns
 	//--END CUSTOM CODE--//
 
 	NiAVObject::FixLinks( objects, link_stack, missing_link_stack, info );
-	unknownLink = FixLink<NiObject>( objects, link_stack, info );
+	unknownLink = FixLink<NiObject>( objects, link_stack, missing_link_stack, info );
 
 	//--BEGIN POST-FIXLINKS CUSTOM CODE--//
 	//--END CUSTOM CODE--//
diff --git a/src/obj/NiCollisionObject.cpp b/src/obj/NiCollisionObject.cpp
index b0c67e0e..3bf73b0c 100644
--- a/src/obj/NiCollisionObject.cpp
+++ b/src/obj/NiCollisionObject.cpp
@@ -96,7 +96,7 @@ void NiCollisionObject::FixLinks( const map<unsigned int,NiObjectRef> & objects,
 	//--END CUSTOM CODE--//
 
 	NiObject::FixLinks( objects, link_stack, missing_link_stack, info );
-	target = FixLink<NiAVObject>( objects, link_stack, info );
+	target = FixLink<NiAVObject>( objects, link_stack, missing_link_stack, info );
 
 	//--BEGIN POST-FIXLINKS CUSTOM CODE--//
 	//--END CUSTOM CODE--//
diff --git a/src/obj/NiControllerManager.cpp b/src/obj/NiControllerManager.cpp
index 242255c4..4bf4c827 100644
--- a/src/obj/NiControllerManager.cpp
+++ b/src/obj/NiControllerManager.cpp
@@ -144,9 +144,9 @@ void NiControllerManager::FixLinks( const map<unsigned int,NiObjectRef> & object
 
 	NiTimeController::FixLinks( objects, link_stack, missing_link_stack, info );
 	for (unsigned int i1 = 0; i1 < controllerSequences.size(); i1++) {
-		controllerSequences[i1] = FixLink<NiControllerSequence>( objects, link_stack, info );
+		controllerSequences[i1] = FixLink<NiControllerSequence>( objects, link_stack, missing_link_stack, info );
 	};
-	objectPalette = FixLink<NiDefaultAVObjectPalette>( objects, link_stack, info );
+	objectPalette = FixLink<NiDefaultAVObjectPalette>( objects, link_stack, missing_link_stack, info );
 
 	//--BEGIN POST-FIXLINKS CUSTOM CODE--//
 	//--END CUSTOM CODE--//
diff --git a/src/obj/NiControllerSequence.cpp b/src/obj/NiControllerSequence.cpp
index 43ef257c..404acce2 100644
--- a/src/obj/NiControllerSequence.cpp
+++ b/src/obj/NiControllerSequence.cpp
@@ -223,11 +223,11 @@ void NiControllerSequence::FixLinks( const map<unsigned int,NiObjectRef> & objec
 
 	NiSequence::FixLinks( objects, link_stack, missing_link_stack, info );
 	if ( info.version >= 0x0A01006A ) {
-		textKeys = FixLink<NiTextKeyExtraData>( objects, link_stack, info );
-		manager = FixLink<NiControllerManager>( objects, link_stack, info );
+		textKeys = FixLink<NiTextKeyExtraData>( objects, link_stack, missing_link_stack, info );
+		manager = FixLink<NiControllerManager>( objects, link_stack, missing_link_stack, info );
 	};
 	if ( ( info.version >= 0x0A020000 ) && ( info.version <= 0x14000005 ) ) {
-		stringPalette = FixLink<NiStringPalette>( objects, link_stack, info );
+		stringPalette = FixLink<NiStringPalette>( objects, link_stack, missing_link_stack, info );
 	};
 
 	//--BEGIN POST-FIXLINKS CUSTOM CODE--//
diff --git a/src/obj/NiDefaultAVObjectPalette.cpp b/src/obj/NiDefaultAVObjectPalette.cpp
index bb8ab971..8265a536 100644
--- a/src/obj/NiDefaultAVObjectPalette.cpp
+++ b/src/obj/NiDefaultAVObjectPalette.cpp
@@ -122,7 +122,7 @@ void NiDefaultAVObjectPalette::FixLinks( const map<unsigned int,NiObjectRef> & o
 
 	NiAVObjectPalette::FixLinks( objects, link_stack, missing_link_stack, info );
 	for (unsigned int i1 = 0; i1 < objs.size(); i1++) {
-		objs[i1].avObject = FixLink<NiAVObject>( objects, link_stack, info );
+		objs[i1].avObject = FixLink<NiAVObject>( objects, link_stack, missing_link_stack, info );
 	};
 
 	//--BEGIN POST-FIXLINKS CUSTOM CODE--//
diff --git a/src/obj/NiDynamicEffect.cpp b/src/obj/NiDynamicEffect.cpp
index 56872d82..4a1864dd 100644
--- a/src/obj/NiDynamicEffect.cpp
+++ b/src/obj/NiDynamicEffect.cpp
@@ -167,7 +167,7 @@ void NiDynamicEffect::FixLinks( const map<unsigned int,NiObjectRef> & objects, l
 	NiAVObject::FixLinks( objects, link_stack, missing_link_stack, info );
 	if ( info.version >= 0x0A010000 ) {
 		for (unsigned int i2 = 0; i2 < affectedNodes.size(); i2++) {
-			affectedNodes[i2] = FixLink<NiAVObject>( objects, link_stack, info );
+			affectedNodes[i2] = FixLink<NiAVObject>( objects, link_stack, missing_link_stack, info );
 		};
 	};
 
diff --git a/src/obj/NiEnvMappedTriShape.cpp b/src/obj/NiEnvMappedTriShape.cpp
index 21c85df1..1b705f24 100644
--- a/src/obj/NiEnvMappedTriShape.cpp
+++ b/src/obj/NiEnvMappedTriShape.cpp
@@ -176,10 +176,10 @@ void NiEnvMappedTriShape::FixLinks( const map<unsigned int,NiObjectRef> & object
 
 	NiObjectNET::FixLinks( objects, link_stack, missing_link_stack, info );
 	for (unsigned int i1 = 0; i1 < children.size(); i1++) {
-		children[i1] = FixLink<NiAVObject>( objects, link_stack, info );
+		children[i1] = FixLink<NiAVObject>( objects, link_stack, missing_link_stack, info );
 	};
-	child2 = FixLink<NiObject>( objects, link_stack, info );
-	child3 = FixLink<NiObject>( objects, link_stack, info );
+	child2 = FixLink<NiObject>( objects, link_stack, missing_link_stack, info );
+	child3 = FixLink<NiObject>( objects, link_stack, missing_link_stack, info );
 
 	//--BEGIN POST-FIXLINKS CUSTOM CODE--//
 
diff --git a/src/obj/NiExtraData.cpp b/src/obj/NiExtraData.cpp
index 9d5f0187..b24db4dd 100644
--- a/src/obj/NiExtraData.cpp
+++ b/src/obj/NiExtraData.cpp
@@ -107,7 +107,7 @@ void NiExtraData::FixLinks( const map<unsigned int,NiObjectRef> & objects, list<
 
 	NiObject::FixLinks( objects, link_stack, missing_link_stack, info );
 	if ( info.version <= 0x04020200 ) {
-		nextExtraData = FixLink<NiExtraData>( objects, link_stack, info );
+		nextExtraData = FixLink<NiExtraData>( objects, link_stack, missing_link_stack, info );
 	};
 
 	//--BEGIN POST-FIXLINKS CUSTOM CODE--//
diff --git a/src/obj/NiFlipController.cpp b/src/obj/NiFlipController.cpp
index 1ef29cd7..ad05ae24 100644
--- a/src/obj/NiFlipController.cpp
+++ b/src/obj/NiFlipController.cpp
@@ -182,12 +182,12 @@ void NiFlipController::FixLinks( const map<unsigned int,NiObjectRef> & objects,
 	NiFloatInterpController::FixLinks( objects, link_stack, missing_link_stack, info );
 	if ( info.version >= 0x04000000 ) {
 		for (unsigned int i2 = 0; i2 < sources.size(); i2++) {
-			sources[i2] = FixLink<NiSourceTexture>( objects, link_stack, info );
+			sources[i2] = FixLink<NiSourceTexture>( objects, link_stack, missing_link_stack, info );
 		};
 	};
 	if ( info.version <= 0x03010000 ) {
 		for (unsigned int i2 = 0; i2 < images.size(); i2++) {
-			images[i2] = FixLink<NiImage>( objects, link_stack, info );
+			images[i2] = FixLink<NiImage>( objects, link_stack, missing_link_stack, info );
 		};
 	};
 
diff --git a/src/obj/NiFloatInterpolator.cpp b/src/obj/NiFloatInterpolator.cpp
index 1064d485..4305126e 100644
--- a/src/obj/NiFloatInterpolator.cpp
+++ b/src/obj/NiFloatInterpolator.cpp
@@ -99,7 +99,7 @@ void NiFloatInterpolator::FixLinks( const map<unsigned int,NiObjectRef> & object
 	//--END CUSTOM CODE--//
 
 	NiKeyBasedInterpolator::FixLinks( objects, link_stack, missing_link_stack, info );
-	data = FixLink<NiFloatData>( objects, link_stack, info );
+	data = FixLink<NiFloatData>( objects, link_stack, missing_link_stack, info );
 
 	//--BEGIN POST-FIXLINKS CUSTOM CODE--//
 	//--END CUSTOM CODE--//
diff --git a/src/obj/NiGeomMorpherController.cpp b/src/obj/NiGeomMorpherController.cpp
index 7213d871..49d11beb 100644
--- a/src/obj/NiGeomMorpherController.cpp
+++ b/src/obj/NiGeomMorpherController.cpp
@@ -252,15 +252,15 @@ void NiGeomMorpherController::FixLinks( const map<unsigned int,NiObjectRef> & ob
 	//--END CUSTOM CODE--//
 
 	NiInterpController::FixLinks( objects, link_stack, missing_link_stack, info );
-	data = FixLink<NiMorphData>( objects, link_stack, info );
+	data = FixLink<NiMorphData>( objects, link_stack, missing_link_stack, info );
 	if ( ( info.version >= 0x0A01006A ) && ( info.version <= 0x14020006 ) ) {
 		for (unsigned int i2 = 0; i2 < interpolators.size(); i2++) {
-			interpolators[i2] = FixLink<NiInterpolator>( objects, link_stack, info );
+			interpolators[i2] = FixLink<NiInterpolator>( objects, link_stack, missing_link_stack, info );
 		};
 	};
 	if ( info.version >= 0x14020007 ) {
 		for (unsigned int i2 = 0; i2 < interpolatorWeights.size(); i2++) {
-			interpolatorWeights[i2].interpolator = FixLink<NiInterpolator>( objects, link_stack, info );
+			interpolatorWeights[i2].interpolator = FixLink<NiInterpolator>( objects, link_stack, missing_link_stack, info );
 		};
 	};
 
diff --git a/src/obj/NiGeometry.cpp b/src/obj/NiGeometry.cpp
index d3ff8a52..9426eedf 100644
--- a/src/obj/NiGeometry.cpp
+++ b/src/obj/NiGeometry.cpp
@@ -215,9 +215,9 @@ void NiGeometry::FixLinks( const map<unsigned int,NiObjectRef> & objects, list<u
 	//--END CUSTOM CODE--//
 
 	NiAVObject::FixLinks( objects, link_stack, missing_link_stack, info );
-	data = FixLink<NiObject>( objects, link_stack, info );
+	data = FixLink<NiObject>( objects, link_stack, missing_link_stack, info );
 	if ( info.version >= 0x0303000D ) {
-		skinInstance = FixLink<NiSkinInstance>( objects, link_stack, info );
+		skinInstance = FixLink<NiSkinInstance>( objects, link_stack, missing_link_stack, info );
 	};
 
 	//--BEGIN POST-FIXLINKS CUSTOM CODE--//
diff --git a/src/obj/NiGeometryData.cpp b/src/obj/NiGeometryData.cpp
index ae523edc..8a336813 100644
--- a/src/obj/NiGeometryData.cpp
+++ b/src/obj/NiGeometryData.cpp
@@ -342,7 +342,7 @@ void NiGeometryData::FixLinks( const map<unsigned int,NiObjectRef> & objects, li
 
 	NiObject::FixLinks( objects, link_stack, missing_link_stack, info );
 	if ( info.version >= 0x14000004 ) {
-		additionalData = FixLink<NiAdditionalGeometryData>( objects, link_stack, info );
+		additionalData = FixLink<NiAdditionalGeometryData>( objects, link_stack, missing_link_stack, info );
 	};
 
 	//--BEGIN POST-FIXLINKS CUSTOM CODE--//
diff --git a/src/obj/NiImage.cpp b/src/obj/NiImage.cpp
index 8360b20e..7bd51eed 100644
--- a/src/obj/NiImage.cpp
+++ b/src/obj/NiImage.cpp
@@ -125,7 +125,7 @@ void NiImage::FixLinks( const map<unsigned int,NiObjectRef> & objects, list<unsi
 
 	NiObject::FixLinks( objects, link_stack, missing_link_stack, info );
 	if ( (external == 0) ) {
-		imageData = FixLink<NiRawImageData>( objects, link_stack, info );
+		imageData = FixLink<NiRawImageData>( objects, link_stack, missing_link_stack, info );
 	};
 
 	//--BEGIN POST-FIXLINKS CUSTOM CODE--//
diff --git a/src/obj/NiKeyframeController.cpp b/src/obj/NiKeyframeController.cpp
index aacfa60b..7e8d8d0b 100644
--- a/src/obj/NiKeyframeController.cpp
+++ b/src/obj/NiKeyframeController.cpp
@@ -101,7 +101,7 @@ void NiKeyframeController::FixLinks( const map<unsigned int,NiObjectRef> & objec
 
 	NiSingleInterpController::FixLinks( objects, link_stack, missing_link_stack, info );
 	if ( info.version <= 0x0A010000 ) {
-		data = FixLink<NiKeyframeData>( objects, link_stack, info );
+		data = FixLink<NiKeyframeData>( objects, link_stack, missing_link_stack, info );
 	};
 
 	//--BEGIN POST-FIXLINKS CUSTOM CODE--//
diff --git a/src/obj/NiLODNode.cpp b/src/obj/NiLODNode.cpp
index 947cde2e..4d2ab4f3 100644
--- a/src/obj/NiLODNode.cpp
+++ b/src/obj/NiLODNode.cpp
@@ -159,7 +159,7 @@ void NiLODNode::FixLinks( const map<unsigned int,NiObjectRef> & objects, list<un
 
 	NiSwitchNode::FixLinks( objects, link_stack, missing_link_stack, info );
 	if ( info.version >= 0x0A010000 ) {
-		lodLevelData = FixLink<NiLODData>( objects, link_stack, info );
+		lodLevelData = FixLink<NiLODData>( objects, link_stack, missing_link_stack, info );
 	};
 
 	//--BEGIN POST-FIXLINKS CUSTOM CODE--//
diff --git a/src/obj/NiLookAtController.cpp b/src/obj/NiLookAtController.cpp
index 51fc833d..b5efbee9 100644
--- a/src/obj/NiLookAtController.cpp
+++ b/src/obj/NiLookAtController.cpp
@@ -103,7 +103,7 @@ void NiLookAtController::FixLinks( const map<unsigned int,NiObjectRef> & objects
 	//--END CUSTOM CODE--//
 
 	NiTimeController::FixLinks( objects, link_stack, missing_link_stack, info );
-	lookAtNode = FixLink<NiNode>( objects, link_stack, info );
+	lookAtNode = FixLink<NiNode>( objects, link_stack, missing_link_stack, info );
 
 	//--BEGIN POST-FIXLINKS CUSTOM CODE--//
 	//--END CUSTOM CODE--//
diff --git a/src/obj/NiLookAtInterpolator.cpp b/src/obj/NiLookAtInterpolator.cpp
index 0781971e..fb87dcd7 100644
--- a/src/obj/NiLookAtInterpolator.cpp
+++ b/src/obj/NiLookAtInterpolator.cpp
@@ -173,10 +173,10 @@ void NiLookAtInterpolator::FixLinks( const map<unsigned int,NiObjectRef> & objec
 	//--END CUSTOM CODE--//
 
 	NiInterpolator::FixLinks( objects, link_stack, missing_link_stack, info );
-	lookAt = FixLink<NiNode>( objects, link_stack, info );
-	unknownLink1 = FixLink<NiPoint3Interpolator>( objects, link_stack, info );
-	unknownLink2 = FixLink<NiFloatInterpolator>( objects, link_stack, info );
-	unknownLink3 = FixLink<NiFloatInterpolator>( objects, link_stack, info );
+	lookAt = FixLink<NiNode>( objects, link_stack, missing_link_stack, info );
+	unknownLink1 = FixLink<NiPoint3Interpolator>( objects, link_stack, missing_link_stack, info );
+	unknownLink2 = FixLink<NiFloatInterpolator>( objects, link_stack, missing_link_stack, info );
+	unknownLink3 = FixLink<NiFloatInterpolator>( objects, link_stack, missing_link_stack, info );
 
 	//--BEGIN POST-FIXLINKS CUSTOM CODE--//
 	//--END CUSTOM CODE--//
diff --git a/src/obj/NiMeshPSysData.cpp b/src/obj/NiMeshPSysData.cpp
index 0e94328a..f1f5174d 100644
--- a/src/obj/NiMeshPSysData.cpp
+++ b/src/obj/NiMeshPSysData.cpp
@@ -131,7 +131,7 @@ void NiMeshPSysData::FixLinks( const map<unsigned int,NiObjectRef> & objects, li
 	//--END CUSTOM CODE--//
 
 	NiPSysData::FixLinks( objects, link_stack, missing_link_stack, info );
-	unknownNode = FixLink<NiNode>( objects, link_stack, info );
+	unknownNode = FixLink<NiNode>( objects, link_stack, missing_link_stack, info );
 
 	//--BEGIN POST-FIXLINKS CUSTOM CODE--//
 	//--END CUSTOM CODE--//
diff --git a/src/obj/NiMorpherController.cpp b/src/obj/NiMorpherController.cpp
index 049ca5a7..68521dce 100644
--- a/src/obj/NiMorpherController.cpp
+++ b/src/obj/NiMorpherController.cpp
@@ -106,7 +106,7 @@ void NiMorpherController::FixLinks( const map<unsigned int,NiObjectRef> & object
 	//--END CUSTOM CODE--//
 
 	NiInterpController::FixLinks( objects, link_stack, missing_link_stack, info );
-	data = FixLink<NiMorphData>( objects, link_stack, info );
+	data = FixLink<NiMorphData>( objects, link_stack, missing_link_stack, info );
 
 	//--BEGIN POST-FIXLINKS CUSTOM CODE--//
 
diff --git a/src/obj/NiMultiTargetTransformController.cpp b/src/obj/NiMultiTargetTransformController.cpp
index 46964bb4..1f9fa47c 100644
--- a/src/obj/NiMultiTargetTransformController.cpp
+++ b/src/obj/NiMultiTargetTransformController.cpp
@@ -120,7 +120,7 @@ void NiMultiTargetTransformController::FixLinks( const map<unsigned int,NiObject
 
 	NiInterpController::FixLinks( objects, link_stack, missing_link_stack, info );
 	for (unsigned int i1 = 0; i1 < extraTargets.size(); i1++) {
-		extraTargets[i1] = FixLink<NiAVObject>( objects, link_stack, info );
+		extraTargets[i1] = FixLink<NiAVObject>( objects, link_stack, missing_link_stack, info );
 	};
 
 	//--BEGIN POST-FIXLINKS CUSTOM CODE--//
diff --git a/src/obj/NiMultiTextureProperty.cpp b/src/obj/NiMultiTextureProperty.cpp
index e7b57802..9901a8df 100644
--- a/src/obj/NiMultiTextureProperty.cpp
+++ b/src/obj/NiMultiTextureProperty.cpp
@@ -160,7 +160,7 @@ void NiMultiTextureProperty::FixLinks( const map<unsigned int,NiObjectRef> & obj
 	NiProperty::FixLinks( objects, link_stack, missing_link_stack, info );
 	for (unsigned int i1 = 0; i1 < 5; i1++) {
 		if ( textureElements[i1].hasImage ) {
-			textureElements[i1].image = FixLink<NiImage>( objects, link_stack, info );
+			textureElements[i1].image = FixLink<NiImage>( objects, link_stack, missing_link_stack, info );
 		};
 	};
 
diff --git a/src/obj/NiNode.cpp b/src/obj/NiNode.cpp
index 53c2feb0..1325acc7 100644
--- a/src/obj/NiNode.cpp
+++ b/src/obj/NiNode.cpp
@@ -177,10 +177,10 @@ void NiNode::FixLinks( const map<unsigned int,NiObjectRef> & objects, list<unsig
 
 	NiAVObject::FixLinks( objects, link_stack, missing_link_stack, info );
 	for (unsigned int i1 = 0; i1 < children.size(); i1++) {
-		children[i1] = FixLink<NiAVObject>( objects, link_stack, info );
+		children[i1] = FixLink<NiAVObject>( objects, link_stack, missing_link_stack, info );
 	};
 	for (unsigned int i1 = 0; i1 < effects.size(); i1++) {
-		effects[i1] = FixLink<NiDynamicEffect>( objects, link_stack, info );
+		effects[i1] = FixLink<NiDynamicEffect>( objects, link_stack, missing_link_stack, info );
 	};
 
 	//--BEGIN POST-FIXLINKS CUSTOM CODE--//
diff --git a/src/obj/NiObjectNET.cpp b/src/obj/NiObjectNET.cpp
index f7c3bf40..3f1618a6 100644
--- a/src/obj/NiObjectNET.cpp
+++ b/src/obj/NiObjectNET.cpp
@@ -205,15 +205,15 @@ void NiObjectNET::FixLinks( const map<unsigned int,NiObjectRef> & objects, list<
 
 	NiObject::FixLinks( objects, link_stack, missing_link_stack, info );
 	if ( ( info.version >= 0x03000000 ) && ( info.version <= 0x04020200 ) ) {
-		extraData = FixLink<NiExtraData>( objects, link_stack, info );
+		extraData = FixLink<NiExtraData>( objects, link_stack, missing_link_stack, info );
 	};
 	if ( info.version >= 0x0A000100 ) {
 		for (unsigned int i2 = 0; i2 < extraDataList.size(); i2++) {
-			extraDataList[i2] = FixLink<NiExtraData>( objects, link_stack, info );
+			extraDataList[i2] = FixLink<NiExtraData>( objects, link_stack, missing_link_stack, info );
 		};
 	};
 	if ( info.version >= 0x03000000 ) {
-		controller = FixLink<NiTimeController>( objects, link_stack, info );
+		controller = FixLink<NiTimeController>( objects, link_stack, missing_link_stack, info );
 	};
 
 	//--BEGIN POST-FIXLINKS CUSTOM CODE--//
diff --git a/src/obj/NiPSysAgeDeathModifier.cpp b/src/obj/NiPSysAgeDeathModifier.cpp
index e5135a3d..a74f4195 100644
--- a/src/obj/NiPSysAgeDeathModifier.cpp
+++ b/src/obj/NiPSysAgeDeathModifier.cpp
@@ -99,7 +99,7 @@ void NiPSysAgeDeathModifier::FixLinks( const map<unsigned int,NiObjectRef> & obj
 	//--END CUSTOM CODE--//
 
 	NiPSysModifier::FixLinks( objects, link_stack, missing_link_stack, info );
-	spawnModifier = FixLink<NiPSysSpawnModifier>( objects, link_stack, info );
+	spawnModifier = FixLink<NiPSysSpawnModifier>( objects, link_stack, missing_link_stack, info );
 
 	//--BEGIN POST-FIXLINKS CUSTOM CODE--//
 	//--END CUSTOM CODE--//
diff --git a/src/obj/NiPSysBombModifier.cpp b/src/obj/NiPSysBombModifier.cpp
index 0725dcd3..2de2057f 100644
--- a/src/obj/NiPSysBombModifier.cpp
+++ b/src/obj/NiPSysBombModifier.cpp
@@ -111,7 +111,7 @@ void NiPSysBombModifier::FixLinks( const map<unsigned int,NiObjectRef> & objects
 	//--END CUSTOM CODE--//
 
 	NiPSysModifier::FixLinks( objects, link_stack, missing_link_stack, info );
-	bombObject = FixLink<NiNode>( objects, link_stack, info );
+	bombObject = FixLink<NiNode>( objects, link_stack, missing_link_stack, info );
 
 	//--BEGIN POST-FIXLINKS CUSTOM CODE--//
 	//--END CUSTOM CODE--//
diff --git a/src/obj/NiPSysCollider.cpp b/src/obj/NiPSysCollider.cpp
index e256db29..6d2b54ea 100644
--- a/src/obj/NiPSysCollider.cpp
+++ b/src/obj/NiPSysCollider.cpp
@@ -167,10 +167,10 @@ void NiPSysCollider::FixLinks( const map<unsigned int,NiObjectRef> & objects, li
 	//--END CUSTOM CODE--//
 
 	NiObject::FixLinks( objects, link_stack, missing_link_stack, info );
-	spawnModifier = FixLink<NiPSysSpawnModifier>( objects, link_stack, info );
-	parent = FixLink<NiObject>( objects, link_stack, info );
-	nextCollider = FixLink<NiObject>( objects, link_stack, info );
-	colliderObject = FixLink<NiNode>( objects, link_stack, info );
+	spawnModifier = FixLink<NiPSysSpawnModifier>( objects, link_stack, missing_link_stack, info );
+	parent = FixLink<NiObject>( objects, link_stack, missing_link_stack, info );
+	nextCollider = FixLink<NiObject>( objects, link_stack, missing_link_stack, info );
+	colliderObject = FixLink<NiNode>( objects, link_stack, missing_link_stack, info );
 
 	//--BEGIN POST-FIXLINKS CUSTOM CODE--//
 	//--END CUSTOM CODE--//
diff --git a/src/obj/NiPSysColliderManager.cpp b/src/obj/NiPSysColliderManager.cpp
index 876e7cfa..1c0b633d 100644
--- a/src/obj/NiPSysColliderManager.cpp
+++ b/src/obj/NiPSysColliderManager.cpp
@@ -96,7 +96,7 @@ void NiPSysColliderManager::FixLinks( const map<unsigned int,NiObjectRef> & obje
 	//--END CUSTOM CODE--//
 
 	NiPSysModifier::FixLinks( objects, link_stack, missing_link_stack, info );
-	collider = FixLink<NiPSysCollider>( objects, link_stack, info );
+	collider = FixLink<NiPSysCollider>( objects, link_stack, missing_link_stack, info );
 
 	//--BEGIN POST-FIXLINKS CUSTOM CODE--//
 	//--END CUSTOM CODE--//
diff --git a/src/obj/NiPSysColorModifier.cpp b/src/obj/NiPSysColorModifier.cpp
index c5aa7f35..fc3ea889 100644
--- a/src/obj/NiPSysColorModifier.cpp
+++ b/src/obj/NiPSysColorModifier.cpp
@@ -96,7 +96,7 @@ void NiPSysColorModifier::FixLinks( const map<unsigned int,NiObjectRef> & object
 	//--END CUSTOM CODE--//
 
 	NiPSysModifier::FixLinks( objects, link_stack, missing_link_stack, info );
-	data = FixLink<NiColorData>( objects, link_stack, info );
+	data = FixLink<NiColorData>( objects, link_stack, missing_link_stack, info );
 
 	//--BEGIN POST-FIXLINKS CUSTOM CODE--//
 	//--END CUSTOM CODE--//
diff --git a/src/obj/NiPSysDragModifier.cpp b/src/obj/NiPSysDragModifier.cpp
index 7dc39832..9adc0914 100644
--- a/src/obj/NiPSysDragModifier.cpp
+++ b/src/obj/NiPSysDragModifier.cpp
@@ -108,7 +108,7 @@ void NiPSysDragModifier::FixLinks( const map<unsigned int,NiObjectRef> & objects
 	//--END CUSTOM CODE--//
 
 	NiPSysModifier::FixLinks( objects, link_stack, missing_link_stack, info );
-	parent = FixLink<NiObject>( objects, link_stack, info );
+	parent = FixLink<NiObject>( objects, link_stack, missing_link_stack, info );
 
 	//--BEGIN POST-FIXLINKS CUSTOM CODE--//
 	//--END CUSTOM CODE--//
diff --git a/src/obj/NiPSysEmitterCtlr.cpp b/src/obj/NiPSysEmitterCtlr.cpp
index f85a0fd2..efc37df7 100644
--- a/src/obj/NiPSysEmitterCtlr.cpp
+++ b/src/obj/NiPSysEmitterCtlr.cpp
@@ -126,10 +126,10 @@ void NiPSysEmitterCtlr::FixLinks( const map<unsigned int,NiObjectRef> & objects,
 
 	NiPSysModifierCtlr::FixLinks( objects, link_stack, missing_link_stack, info );
 	if ( info.version <= 0x0A010000 ) {
-		data = FixLink<NiPSysEmitterCtlrData>( objects, link_stack, info );
+		data = FixLink<NiPSysEmitterCtlrData>( objects, link_stack, missing_link_stack, info );
 	};
 	if ( info.version >= 0x0A020000 ) {
-		visibilityInterpolator = FixLink<NiInterpolator>( objects, link_stack, info );
+		visibilityInterpolator = FixLink<NiInterpolator>( objects, link_stack, missing_link_stack, info );
 	};
 
 	//--BEGIN POST-FIXLINKS CUSTOM CODE--//
diff --git a/src/obj/NiPSysFieldModifier.cpp b/src/obj/NiPSysFieldModifier.cpp
index 09f951cf..cc4c8858 100644
--- a/src/obj/NiPSysFieldModifier.cpp
+++ b/src/obj/NiPSysFieldModifier.cpp
@@ -118,7 +118,7 @@ void NiPSysFieldModifier::FixLinks( const map<unsigned int,NiObjectRef> & object
 	//--END CUSTOM CODE--//
 
 	NiPSysModifier::FixLinks( objects, link_stack, missing_link_stack, info );
-	fieldObject = FixLink<NiAVObject>( objects, link_stack, info );
+	fieldObject = FixLink<NiAVObject>( objects, link_stack, missing_link_stack, info );
 
 	//--BEGIN POST-FIXLINKS CUSTOM CODE--//
 
diff --git a/src/obj/NiPSysGravityModifier.cpp b/src/obj/NiPSysGravityModifier.cpp
index 521f1530..98294710 100644
--- a/src/obj/NiPSysGravityModifier.cpp
+++ b/src/obj/NiPSysGravityModifier.cpp
@@ -121,7 +121,7 @@ void NiPSysGravityModifier::FixLinks( const map<unsigned int,NiObjectRef> & obje
 	//--END CUSTOM CODE--//
 
 	NiPSysModifier::FixLinks( objects, link_stack, missing_link_stack, info );
-	gravityObject = FixLink<NiNode>( objects, link_stack, info );
+	gravityObject = FixLink<NiNode>( objects, link_stack, missing_link_stack, info );
 
 	//--BEGIN POST-FIXLINKS CUSTOM CODE--//
 	//--END CUSTOM CODE--//
diff --git a/src/obj/NiPSysMeshEmitter.cpp b/src/obj/NiPSysMeshEmitter.cpp
index 363fd20e..2bd4ca59 100644
--- a/src/obj/NiPSysMeshEmitter.cpp
+++ b/src/obj/NiPSysMeshEmitter.cpp
@@ -128,7 +128,7 @@ void NiPSysMeshEmitter::FixLinks( const map<unsigned int,NiObjectRef> & objects,
 
 	NiPSysEmitter::FixLinks( objects, link_stack, missing_link_stack, info );
 	for (unsigned int i1 = 0; i1 < emitterMeshes.size(); i1++) {
-		emitterMeshes[i1] = FixLink<NiTriBasedGeom>( objects, link_stack, info );
+		emitterMeshes[i1] = FixLink<NiTriBasedGeom>( objects, link_stack, missing_link_stack, info );
 	};
 
 	//--BEGIN POST-FIXLINKS CUSTOM CODE--//
diff --git a/src/obj/NiPSysMeshUpdateModifier.cpp b/src/obj/NiPSysMeshUpdateModifier.cpp
index 70e9081d..14338011 100644
--- a/src/obj/NiPSysMeshUpdateModifier.cpp
+++ b/src/obj/NiPSysMeshUpdateModifier.cpp
@@ -119,7 +119,7 @@ void NiPSysMeshUpdateModifier::FixLinks( const map<unsigned int,NiObjectRef> & o
 
 	NiPSysModifier::FixLinks( objects, link_stack, missing_link_stack, info );
 	for (unsigned int i1 = 0; i1 < meshes.size(); i1++) {
-		meshes[i1] = FixLink<NiAVObject>( objects, link_stack, info );
+		meshes[i1] = FixLink<NiAVObject>( objects, link_stack, missing_link_stack, info );
 	};
 
 	//--BEGIN POST-FIXLINKS CUSTOM CODE--//
diff --git a/src/obj/NiPSysModifier.cpp b/src/obj/NiPSysModifier.cpp
index 5cc1e48e..d0dfac46 100644
--- a/src/obj/NiPSysModifier.cpp
+++ b/src/obj/NiPSysModifier.cpp
@@ -105,7 +105,7 @@ void NiPSysModifier::FixLinks( const map<unsigned int,NiObjectRef> & objects, li
 	//--END CUSTOM CODE--//
 
 	NiObject::FixLinks( objects, link_stack, missing_link_stack, info );
-	target = FixLink<NiParticleSystem>( objects, link_stack, info );
+	target = FixLink<NiParticleSystem>( objects, link_stack, missing_link_stack, info );
 
 	//--BEGIN POST-FIXLINKS CUSTOM CODE--//
 	//--END CUSTOM CODE--//
diff --git a/src/obj/NiPSysModifierActiveCtlr.cpp b/src/obj/NiPSysModifierActiveCtlr.cpp
index 5d4ae3c2..7c70f183 100644
--- a/src/obj/NiPSysModifierActiveCtlr.cpp
+++ b/src/obj/NiPSysModifierActiveCtlr.cpp
@@ -101,7 +101,7 @@ void NiPSysModifierActiveCtlr::FixLinks( const map<unsigned int,NiObjectRef> & o
 
 	NiPSysModifierBoolCtlr::FixLinks( objects, link_stack, missing_link_stack, info );
 	if ( info.version <= 0x0A010000 ) {
-		data = FixLink<NiVisData>( objects, link_stack, info );
+		data = FixLink<NiVisData>( objects, link_stack, missing_link_stack, info );
 	};
 
 	//--BEGIN POST-FIXLINKS CUSTOM CODE--//
diff --git a/src/obj/NiPSysModifierFloatCtlr.cpp b/src/obj/NiPSysModifierFloatCtlr.cpp
index 14ae0b72..f38afdf9 100644
--- a/src/obj/NiPSysModifierFloatCtlr.cpp
+++ b/src/obj/NiPSysModifierFloatCtlr.cpp
@@ -101,7 +101,7 @@ void NiPSysModifierFloatCtlr::FixLinks( const map<unsigned int,NiObjectRef> & ob
 
 	NiPSysModifierCtlr::FixLinks( objects, link_stack, missing_link_stack, info );
 	if ( info.version <= 0x0A010000 ) {
-		data = FixLink<NiFloatData>( objects, link_stack, info );
+		data = FixLink<NiFloatData>( objects, link_stack, missing_link_stack, info );
 	};
 
 	//--BEGIN POST-FIXLINKS CUSTOM CODE--//
diff --git a/src/obj/NiPSysVolumeEmitter.cpp b/src/obj/NiPSysVolumeEmitter.cpp
index db4a0b2a..f7c841f5 100644
--- a/src/obj/NiPSysVolumeEmitter.cpp
+++ b/src/obj/NiPSysVolumeEmitter.cpp
@@ -101,7 +101,7 @@ void NiPSysVolumeEmitter::FixLinks( const map<unsigned int,NiObjectRef> & object
 
 	NiPSysEmitter::FixLinks( objects, link_stack, missing_link_stack, info );
 	if ( info.version >= 0x0A010000 ) {
-		emitterObject = FixLink<NiNode>( objects, link_stack, info );
+		emitterObject = FixLink<NiNode>( objects, link_stack, missing_link_stack, info );
 	};
 
 	//--BEGIN POST-FIXLINKS CUSTOM CODE--//
diff --git a/src/obj/NiParticleColorModifier.cpp b/src/obj/NiParticleColorModifier.cpp
index 887c43f9..5f28bf31 100644
--- a/src/obj/NiParticleColorModifier.cpp
+++ b/src/obj/NiParticleColorModifier.cpp
@@ -96,7 +96,7 @@ void NiParticleColorModifier::FixLinks( const map<unsigned int,NiObjectRef> & ob
 	//--END CUSTOM CODE--//
 
 	NiParticleModifier::FixLinks( objects, link_stack, missing_link_stack, info );
-	colorData = FixLink<NiColorData>( objects, link_stack, info );
+	colorData = FixLink<NiColorData>( objects, link_stack, missing_link_stack, info );
 
 	//--BEGIN POST-FIXLINKS CUSTOM CODE--//
 	//--END CUSTOM CODE--//
diff --git a/src/obj/NiParticleMeshModifier.cpp b/src/obj/NiParticleMeshModifier.cpp
index 4eede536..26a4ca74 100644
--- a/src/obj/NiParticleMeshModifier.cpp
+++ b/src/obj/NiParticleMeshModifier.cpp
@@ -119,7 +119,7 @@ void NiParticleMeshModifier::FixLinks( const map<unsigned int,NiObjectRef> & obj
 
 	NiParticleModifier::FixLinks( objects, link_stack, missing_link_stack, info );
 	for (unsigned int i1 = 0; i1 < particleMeshes.size(); i1++) {
-		particleMeshes[i1] = FixLink<NiAVObject>( objects, link_stack, info );
+		particleMeshes[i1] = FixLink<NiAVObject>( objects, link_stack, missing_link_stack, info );
 	};
 
 	//--BEGIN POST-FIXLINKS CUSTOM CODE--//
diff --git a/src/obj/NiParticleMeshesData.cpp b/src/obj/NiParticleMeshesData.cpp
index cb80bf1c..b5b0804e 100644
--- a/src/obj/NiParticleMeshesData.cpp
+++ b/src/obj/NiParticleMeshesData.cpp
@@ -96,7 +96,7 @@ void NiParticleMeshesData::FixLinks( const map<unsigned int,NiObjectRef> & objec
 	//--END CUSTOM CODE--//
 
 	NiRotatingParticlesData::FixLinks( objects, link_stack, missing_link_stack, info );
-	unknownLink2 = FixLink<NiAVObject>( objects, link_stack, info );
+	unknownLink2 = FixLink<NiAVObject>( objects, link_stack, missing_link_stack, info );
 
 	//--BEGIN POST-FIXLINKS CUSTOM CODE--//
 	//--END CUSTOM CODE--//
diff --git a/src/obj/NiParticleModifier.cpp b/src/obj/NiParticleModifier.cpp
index e8a06814..ad7fb7c6 100644
--- a/src/obj/NiParticleModifier.cpp
+++ b/src/obj/NiParticleModifier.cpp
@@ -130,9 +130,9 @@ void NiParticleModifier::FixLinks( const map<unsigned int,NiObjectRef> & objects
 	//--END CUSTOM CODE--//
 
 	NiObject::FixLinks( objects, link_stack, missing_link_stack, info );
-	nextModifier = FixLink<NiParticleModifier>( objects, link_stack, info );
+	nextModifier = FixLink<NiParticleModifier>( objects, link_stack, missing_link_stack, info );
 	if ( info.version >= 0x04000002 ) {
-		controller = FixLink<NiParticleSystemController>( objects, link_stack, info );
+		controller = FixLink<NiParticleSystemController>( objects, link_stack, missing_link_stack, info );
 	};
 
 	//--BEGIN POST-FIXLINKS CUSTOM CODE--//
diff --git a/src/obj/NiParticleSystem.cpp b/src/obj/NiParticleSystem.cpp
index c549a55b..a4217030 100644
--- a/src/obj/NiParticleSystem.cpp
+++ b/src/obj/NiParticleSystem.cpp
@@ -127,7 +127,7 @@ void NiParticleSystem::FixLinks( const map<unsigned int,NiObjectRef> & objects,
 	NiParticles::FixLinks( objects, link_stack, missing_link_stack, info );
 	if ( info.version >= 0x0A010000 ) {
 		for (unsigned int i2 = 0; i2 < modifiers.size(); i2++) {
-			modifiers[i2] = FixLink<NiPSysModifier>( objects, link_stack, info );
+			modifiers[i2] = FixLink<NiPSysModifier>( objects, link_stack, missing_link_stack, info );
 		};
 	};
 
diff --git a/src/obj/NiParticleSystemController.cpp b/src/obj/NiParticleSystemController.cpp
index 7bd6f5e3..b2700b7c 100644
--- a/src/obj/NiParticleSystemController.cpp
+++ b/src/obj/NiParticleSystemController.cpp
@@ -402,17 +402,17 @@ void NiParticleSystemController::FixLinks( const map<unsigned int,NiObjectRef> &
 	//--END CUSTOM CODE--//
 
 	NiTimeController::FixLinks( objects, link_stack, missing_link_stack, info );
-	emitter = FixLink<NiObject>( objects, link_stack, info );
+	emitter = FixLink<NiObject>( objects, link_stack, missing_link_stack, info );
 	if ( info.version <= 0x03010000 ) {
-		particleLink = FixLink<NiObject>( objects, link_stack, info );
+		particleLink = FixLink<NiObject>( objects, link_stack, missing_link_stack, info );
 	};
 	if ( info.version >= 0x04000002 ) {
-		unknownLink = FixLink<NiObject>( objects, link_stack, info );
+		unknownLink = FixLink<NiObject>( objects, link_stack, missing_link_stack, info );
 	};
-	particleExtra = FixLink<NiParticleModifier>( objects, link_stack, info );
-	unknownLink2 = FixLink<NiObject>( objects, link_stack, info );
+	particleExtra = FixLink<NiParticleModifier>( objects, link_stack, missing_link_stack, info );
+	unknownLink2 = FixLink<NiObject>( objects, link_stack, missing_link_stack, info );
 	if ( info.version <= 0x03010000 ) {
-		colorData = FixLink<NiColorData>( objects, link_stack, info );
+		colorData = FixLink<NiColorData>( objects, link_stack, missing_link_stack, info );
 	};
 
 	//--BEGIN POST-FIXLINKS CUSTOM CODE--//
diff --git a/src/obj/NiParticlesData.cpp b/src/obj/NiParticlesData.cpp
index 01ab8f0b..13e710d6 100644
--- a/src/obj/NiParticlesData.cpp
+++ b/src/obj/NiParticlesData.cpp
@@ -568,7 +568,7 @@ void NiParticlesData::FixLinks( const map<unsigned int,NiObjectRef> & objects, l
 
 	NiObject::FixLinks( objects, link_stack, missing_link_stack, info );
 	if ( info.version >= 0x14000004 ) {
-		additionalData = FixLink<NiAdditionalGeometryData>( objects, link_stack, info );
+		additionalData = FixLink<NiAdditionalGeometryData>( objects, link_stack, missing_link_stack, info );
 	};
 
 	//--BEGIN POST-FIXLINKS CUSTOM CODE--//
diff --git a/src/obj/NiPathController.cpp b/src/obj/NiPathController.cpp
index 9f08ce3b..0f6c5e29 100644
--- a/src/obj/NiPathController.cpp
+++ b/src/obj/NiPathController.cpp
@@ -136,8 +136,8 @@ void NiPathController::FixLinks( const map<unsigned int,NiObjectRef> & objects,
 	//--END CUSTOM CODE--//
 
 	NiTimeController::FixLinks( objects, link_stack, missing_link_stack, info );
-	posData = FixLink<NiPosData>( objects, link_stack, info );
-	floatData = FixLink<NiFloatData>( objects, link_stack, info );
+	posData = FixLink<NiPosData>( objects, link_stack, missing_link_stack, info );
+	floatData = FixLink<NiFloatData>( objects, link_stack, missing_link_stack, info );
 
 	//--BEGIN POST-FIXLINKS CUSTOM CODE--//
 	//--END CUSTOM CODE--//
diff --git a/src/obj/NiPathInterpolator.cpp b/src/obj/NiPathInterpolator.cpp
index 95f6c266..add4a88b 100644
--- a/src/obj/NiPathInterpolator.cpp
+++ b/src/obj/NiPathInterpolator.cpp
@@ -132,8 +132,8 @@ void NiPathInterpolator::FixLinks( const map<unsigned int,NiObjectRef> & objects
 	//--END CUSTOM CODE--//
 
 	NiKeyBasedInterpolator::FixLinks( objects, link_stack, missing_link_stack, info );
-	posData = FixLink<NiPosData>( objects, link_stack, info );
-	floatData = FixLink<NiFloatData>( objects, link_stack, info );
+	posData = FixLink<NiPosData>( objects, link_stack, missing_link_stack, info );
+	floatData = FixLink<NiFloatData>( objects, link_stack, missing_link_stack, info );
 
 	//--BEGIN POST-FIXLINKS CUSTOM CODE--//
 	//--END CUSTOM CODE--//
diff --git a/src/obj/NiPhysXActorDesc.cpp b/src/obj/NiPhysXActorDesc.cpp
index 784a07e7..1ff4c820 100644
--- a/src/obj/NiPhysXActorDesc.cpp
+++ b/src/obj/NiPhysXActorDesc.cpp
@@ -237,12 +237,12 @@ void NiPhysXActorDesc::FixLinks( const map<unsigned int,NiObjectRef> & objects,
 	//--END CUSTOM CODE--//
 
 	NiObject::FixLinks( objects, link_stack, missing_link_stack, info );
-	unknownRef0 = FixLink<NiPhysXBodyDesc>( objects, link_stack, info );
-	shapeDescription = FixLink<NiPhysXShapeDesc>( objects, link_stack, info );
-	unknownRef1 = FixLink<NiObject>( objects, link_stack, info );
-	unknownRef2 = FixLink<NiObject>( objects, link_stack, info );
+	unknownRef0 = FixLink<NiPhysXBodyDesc>( objects, link_stack, missing_link_stack, info );
+	shapeDescription = FixLink<NiPhysXShapeDesc>( objects, link_stack, missing_link_stack, info );
+	unknownRef1 = FixLink<NiObject>( objects, link_stack, missing_link_stack, info );
+	unknownRef2 = FixLink<NiObject>( objects, link_stack, missing_link_stack, info );
 	for (unsigned int i1 = 0; i1 < unknownRefs3.size(); i1++) {
-		unknownRefs3[i1] = FixLink<NiObject>( objects, link_stack, info );
+		unknownRefs3[i1] = FixLink<NiObject>( objects, link_stack, missing_link_stack, info );
 	};
 
 	//--BEGIN POST-FIXLINKS CUSTOM CODE--//
diff --git a/src/obj/NiPhysXProp.cpp b/src/obj/NiPhysXProp.cpp
index f74ccf12..40c4ce66 100644
--- a/src/obj/NiPhysXProp.cpp
+++ b/src/obj/NiPhysXProp.cpp
@@ -198,12 +198,12 @@ void NiPhysXProp::FixLinks( const map<unsigned int,NiObjectRef> & objects, list<
 
 	NiObjectNET::FixLinks( objects, link_stack, missing_link_stack, info );
 	for (unsigned int i1 = 0; i1 < unknownRefs1.size(); i1++) {
-		unknownRefs1[i1] = FixLink<NiObject>( objects, link_stack, info );
+		unknownRefs1[i1] = FixLink<NiObject>( objects, link_stack, missing_link_stack, info );
 	};
 	for (unsigned int i1 = 0; i1 < transformDests.size(); i1++) {
-		transformDests[i1] = FixLink<NiPhysXTransformDest>( objects, link_stack, info );
+		transformDests[i1] = FixLink<NiPhysXTransformDest>( objects, link_stack, missing_link_stack, info );
 	};
-	propDescription = FixLink<NiPhysXPropDesc>( objects, link_stack, info );
+	propDescription = FixLink<NiPhysXPropDesc>( objects, link_stack, missing_link_stack, info );
 
 	//--BEGIN POST-FIXLINKS CUSTOM CODE--//
 
diff --git a/src/obj/NiPhysXPropDesc.cpp b/src/obj/NiPhysXPropDesc.cpp
index 862b7d38..7a507c6d 100644
--- a/src/obj/NiPhysXPropDesc.cpp
+++ b/src/obj/NiPhysXPropDesc.cpp
@@ -222,13 +222,13 @@ void NiPhysXPropDesc::FixLinks( const map<unsigned int,NiObjectRef> & objects, l
 
 	NiObject::FixLinks( objects, link_stack, missing_link_stack, info );
 	for (unsigned int i1 = 0; i1 < actorDescs.size(); i1++) {
-		actorDescs[i1] = FixLink<NiPhysXActorDesc>( objects, link_stack, info );
+		actorDescs[i1] = FixLink<NiPhysXActorDesc>( objects, link_stack, missing_link_stack, info );
 	};
 	for (unsigned int i1 = 0; i1 < jointDescs.size(); i1++) {
-		jointDescs[i1] = FixLink<NiPhysXD6JointDesc>( objects, link_stack, info );
+		jointDescs[i1] = FixLink<NiPhysXD6JointDesc>( objects, link_stack, missing_link_stack, info );
 	};
 	for (unsigned int i1 = 0; i1 < materialDescs.size(); i1++) {
-		materialDescs[i1].materialDesc = FixLink<NiPhysXMaterialDesc>( objects, link_stack, info );
+		materialDescs[i1].materialDesc = FixLink<NiPhysXMaterialDesc>( objects, link_stack, missing_link_stack, info );
 	};
 
 	//--BEGIN POST-FIXLINKS CUSTOM CODE--//
diff --git a/src/obj/NiPhysXShapeDesc.cpp b/src/obj/NiPhysXShapeDesc.cpp
index 3b57cf97..6cfda8cf 100644
--- a/src/obj/NiPhysXShapeDesc.cpp
+++ b/src/obj/NiPhysXShapeDesc.cpp
@@ -174,7 +174,7 @@ void NiPhysXShapeDesc::FixLinks( const map<unsigned int,NiObjectRef> & objects,
 	//--END CUSTOM CODE--//
 
 	NiObject::FixLinks( objects, link_stack, missing_link_stack, info );
-	meshDescription = FixLink<NiPhysXMeshDesc>( objects, link_stack, info );
+	meshDescription = FixLink<NiPhysXMeshDesc>( objects, link_stack, missing_link_stack, info );
 
 	//--BEGIN POST-FIXLINKS CUSTOM CODE--//
 
diff --git a/src/obj/NiPhysXTransformDest.cpp b/src/obj/NiPhysXTransformDest.cpp
index 67d9c28d..e7facfdf 100644
--- a/src/obj/NiPhysXTransformDest.cpp
+++ b/src/obj/NiPhysXTransformDest.cpp
@@ -112,7 +112,7 @@ void NiPhysXTransformDest::FixLinks( const map<unsigned int,NiObjectRef> & objec
 	//--END CUSTOM CODE--//
 
 	NiObject::FixLinks( objects, link_stack, missing_link_stack, info );
-	node = FixLink<NiNode>( objects, link_stack, info );
+	node = FixLink<NiNode>( objects, link_stack, missing_link_stack, info );
 
 	//--BEGIN POST-FIXLINKS CUSTOM CODE--//
 
diff --git a/src/obj/NiPoint3InterpController.cpp b/src/obj/NiPoint3InterpController.cpp
index 3f0fa75e..a304443c 100644
--- a/src/obj/NiPoint3InterpController.cpp
+++ b/src/obj/NiPoint3InterpController.cpp
@@ -108,7 +108,7 @@ void NiPoint3InterpController::FixLinks( const map<unsigned int,NiObjectRef> & o
 
 	NiSingleInterpController::FixLinks( objects, link_stack, missing_link_stack, info );
 	if ( info.version <= 0x0A010000 ) {
-		data = FixLink<NiPosData>( objects, link_stack, info );
+		data = FixLink<NiPosData>( objects, link_stack, missing_link_stack, info );
 	};
 
 	//--BEGIN POST-FIXLINKS CUSTOM CODE--//
diff --git a/src/obj/NiPoint3Interpolator.cpp b/src/obj/NiPoint3Interpolator.cpp
index 8eda1668..3891f129 100644
--- a/src/obj/NiPoint3Interpolator.cpp
+++ b/src/obj/NiPoint3Interpolator.cpp
@@ -99,7 +99,7 @@ void NiPoint3Interpolator::FixLinks( const map<unsigned int,NiObjectRef> & objec
 	//--END CUSTOM CODE--//
 
 	NiKeyBasedInterpolator::FixLinks( objects, link_stack, missing_link_stack, info );
-	data = FixLink<NiPosData>( objects, link_stack, info );
+	data = FixLink<NiPosData>( objects, link_stack, missing_link_stack, info );
 
 	//--BEGIN POST-FIXLINKS CUSTOM CODE--//
 	//--END CUSTOM CODE--//
diff --git a/src/obj/NiPortal.cpp b/src/obj/NiPortal.cpp
index e63d2349..78e04c98 100644
--- a/src/obj/NiPortal.cpp
+++ b/src/obj/NiPortal.cpp
@@ -137,7 +137,7 @@ void NiPortal::FixLinks( const map<unsigned int,NiObjectRef> & objects, list<uns
 	//--END CUSTOM CODE--//
 
 	NiAVObject::FixLinks( objects, link_stack, missing_link_stack, info );
-	target = FixLink<NiNode>( objects, link_stack, info );
+	target = FixLink<NiNode>( objects, link_stack, missing_link_stack, info );
 
 	//--BEGIN POST-FIXLINKS CUSTOM CODE--//
 
diff --git a/src/obj/NiRollController.cpp b/src/obj/NiRollController.cpp
index 7802223e..c36605d7 100644
--- a/src/obj/NiRollController.cpp
+++ b/src/obj/NiRollController.cpp
@@ -96,7 +96,7 @@ void NiRollController::FixLinks( const map<unsigned int,NiObjectRef> & objects,
 	//--END CUSTOM CODE--//
 
 	NiSingleInterpController::FixLinks( objects, link_stack, missing_link_stack, info );
-	data = FixLink<NiFloatData>( objects, link_stack, info );
+	data = FixLink<NiFloatData>( objects, link_stack, missing_link_stack, info );
 
 	//--BEGIN POST-FIXLINKS CUSTOM CODE--//
 	//--END CUSTOM CODE--//
diff --git a/src/obj/NiRoom.cpp b/src/obj/NiRoom.cpp
index 4174229d..74adf8c1 100644
--- a/src/obj/NiRoom.cpp
+++ b/src/obj/NiRoom.cpp
@@ -236,13 +236,13 @@ void NiRoom::FixLinks( const map<unsigned int,NiObjectRef> & objects, list<unsig
 
 	NiNode::FixLinks( objects, link_stack, missing_link_stack, info );
 	for (unsigned int i1 = 0; i1 < inPortals.size(); i1++) {
-		inPortals[i1] = FixLink<NiPortal>( objects, link_stack, info );
+		inPortals[i1] = FixLink<NiPortal>( objects, link_stack, missing_link_stack, info );
 	};
 	for (unsigned int i1 = 0; i1 < portals2.size(); i1++) {
-		portals2[i1] = FixLink<NiPortal>( objects, link_stack, info );
+		portals2[i1] = FixLink<NiPortal>( objects, link_stack, missing_link_stack, info );
 	};
 	for (unsigned int i1 = 0; i1 < items.size(); i1++) {
-		items[i1] = FixLink<NiAVObject>( objects, link_stack, info );
+		items[i1] = FixLink<NiAVObject>( objects, link_stack, missing_link_stack, info );
 	};
 
 	//--BEGIN POST-FIXLINKS CUSTOM CODE--//
diff --git a/src/obj/NiRoomGroup.cpp b/src/obj/NiRoomGroup.cpp
index edda6b28..63b7b2b1 100644
--- a/src/obj/NiRoomGroup.cpp
+++ b/src/obj/NiRoomGroup.cpp
@@ -149,9 +149,9 @@ void NiRoomGroup::FixLinks( const map<unsigned int,NiObjectRef> & objects, list<
 	//--END CUSTOM CODE--//
 
 	NiNode::FixLinks( objects, link_stack, missing_link_stack, info );
-	shellLink = FixLink<NiNode>( objects, link_stack, info );
+	shellLink = FixLink<NiNode>( objects, link_stack, missing_link_stack, info );
 	for (unsigned int i1 = 0; i1 < rooms.size(); i1++) {
-		rooms[i1] = FixLink<NiRoom>( objects, link_stack, info );
+		rooms[i1] = FixLink<NiRoom>( objects, link_stack, missing_link_stack, info );
 	};
 
 	//--BEGIN POST-FIXLINKS CUSTOM CODE--//
diff --git a/src/obj/NiSequence.cpp b/src/obj/NiSequence.cpp
index d3d58a52..4f29e713 100644
--- a/src/obj/NiSequence.cpp
+++ b/src/obj/NiSequence.cpp
@@ -365,21 +365,21 @@ void NiSequence::FixLinks( const map<unsigned int,NiObjectRef> & objects, list<u
 
 	NiObject::FixLinks( objects, link_stack, missing_link_stack, info );
 	if ( info.version <= 0x0A010000 ) {
-		textKeys = FixLink<NiTextKeyExtraData>( objects, link_stack, info );
+		textKeys = FixLink<NiTextKeyExtraData>( objects, link_stack, missing_link_stack, info );
 	};
 	for (unsigned int i1 = 0; i1 < controlledBlocks.size(); i1++) {
 		if ( info.version <= 0x0A010000 ) {
-			controlledBlocks[i1].controller = FixLink<NiTimeController>( objects, link_stack, info );
+			controlledBlocks[i1].controller = FixLink<NiTimeController>( objects, link_stack, missing_link_stack, info );
 		};
 		if ( info.version >= 0x0A01006A ) {
-			controlledBlocks[i1].interpolator = FixLink<NiInterpolator>( objects, link_stack, info );
-			controlledBlocks[i1].controller = FixLink<NiTimeController>( objects, link_stack, info );
+			controlledBlocks[i1].interpolator = FixLink<NiInterpolator>( objects, link_stack, missing_link_stack, info );
+			controlledBlocks[i1].controller = FixLink<NiTimeController>( objects, link_stack, missing_link_stack, info );
 		};
 		if ( ( info.version >= 0x0A01006A ) && ( info.version <= 0x0A01006A ) ) {
-			controlledBlocks[i1].unknownLink2 = FixLink<NiObject>( objects, link_stack, info );
+			controlledBlocks[i1].unknownLink2 = FixLink<NiObject>( objects, link_stack, missing_link_stack, info );
 		};
 		if ( ( info.version >= 0x0A020000 ) && ( info.version <= 0x14000005 ) ) {
-			controlledBlocks[i1].stringPalette = FixLink<NiStringPalette>( objects, link_stack, info );
+			controlledBlocks[i1].stringPalette = FixLink<NiStringPalette>( objects, link_stack, missing_link_stack, info );
 		};
 	};
 
diff --git a/src/obj/NiSingleInterpController.cpp b/src/obj/NiSingleInterpController.cpp
index dd490b67..4b220583 100644
--- a/src/obj/NiSingleInterpController.cpp
+++ b/src/obj/NiSingleInterpController.cpp
@@ -102,7 +102,7 @@ void NiSingleInterpController::FixLinks( const map<unsigned int,NiObjectRef> & o
 
 	NiInterpController::FixLinks( objects, link_stack, missing_link_stack, info );
 	if ( info.version >= 0x0A020000 ) {
-		interpolator = FixLink<NiInterpolator>( objects, link_stack, info );
+		interpolator = FixLink<NiInterpolator>( objects, link_stack, missing_link_stack, info );
 	};
 
 	//--BEGIN POST-FIXLINKS CUSTOM CODE--//
diff --git a/src/obj/NiSkinData.cpp b/src/obj/NiSkinData.cpp
index 62fb79a1..23e4ffba 100644
--- a/src/obj/NiSkinData.cpp
+++ b/src/obj/NiSkinData.cpp
@@ -200,7 +200,7 @@ void NiSkinData::FixLinks( const map<unsigned int,NiObjectRef> & objects, list<u
 
 	NiObject::FixLinks( objects, link_stack, missing_link_stack, info );
 	if ( ( info.version >= 0x04000002 ) && ( info.version <= 0x0A010000 ) ) {
-		skinPartition = FixLink<NiSkinPartition>( objects, link_stack, info );
+		skinPartition = FixLink<NiSkinPartition>( objects, link_stack, missing_link_stack, info );
 	};
 
 	//--BEGIN POST-FIXLINKS CUSTOM CODE--//
diff --git a/src/obj/NiSkinInstance.cpp b/src/obj/NiSkinInstance.cpp
index 309e10c9..68631c4f 100644
--- a/src/obj/NiSkinInstance.cpp
+++ b/src/obj/NiSkinInstance.cpp
@@ -197,13 +197,13 @@ void NiSkinInstance::FixLinks( const map<unsigned int,NiObjectRef> & objects, li
 	//--END CUSTOM CODE--//
 
 	NiObject::FixLinks( objects, link_stack, missing_link_stack, info );
-	data = FixLink<NiSkinData>( objects, link_stack, info );
+	data = FixLink<NiSkinData>( objects, link_stack, missing_link_stack, info );
 	if ( info.version >= 0x0A020000 ) {
-		skinPartition = FixLink<NiSkinPartition>( objects, link_stack, info );
+		skinPartition = FixLink<NiSkinPartition>( objects, link_stack, missing_link_stack, info );
 	};
-	skeletonRoot = FixLink<NiNode>( objects, link_stack, info );
+	skeletonRoot = FixLink<NiNode>( objects, link_stack, missing_link_stack, info );
 	for (unsigned int i1 = 0; i1 < bones.size(); i1++) {
-		bones[i1] = FixLink<NiNode>( objects, link_stack, info );
+		bones[i1] = FixLink<NiNode>( objects, link_stack, missing_link_stack, info );
 	};
 
 	//--BEGIN POST-FIXLINKS CUSTOM CODE--//
diff --git a/src/obj/NiSourceTexture.cpp b/src/obj/NiSourceTexture.cpp
index 3e6f848d..b209b287 100644
--- a/src/obj/NiSourceTexture.cpp
+++ b/src/obj/NiSourceTexture.cpp
@@ -192,11 +192,11 @@ void NiSourceTexture::FixLinks( const map<unsigned int,NiObjectRef> & objects, l
 	NiTexture::FixLinks( objects, link_stack, missing_link_stack, info );
 	if ( info.version >= 0x0A010000 ) {
 		if ( (useExternal == 1) ) {
-			unknownLink = FixLink<NiObject>( objects, link_stack, info );
+			unknownLink = FixLink<NiObject>( objects, link_stack, missing_link_stack, info );
 		};
 	};
 	if ( (useExternal == 0) ) {
-		pixelData = FixLink<ATextureRenderData>( objects, link_stack, info );
+		pixelData = FixLink<ATextureRenderData>( objects, link_stack, missing_link_stack, info );
 	};
 
 	//--BEGIN POST-FIXLINKS CUSTOM CODE--//
diff --git a/src/obj/NiTextureEffect.cpp b/src/obj/NiTextureEffect.cpp
index c092b8fe..a99f1285 100644
--- a/src/obj/NiTextureEffect.cpp
+++ b/src/obj/NiTextureEffect.cpp
@@ -170,10 +170,10 @@ void NiTextureEffect::FixLinks( const map<unsigned int,NiObjectRef> & objects, l
 
 	NiDynamicEffect::FixLinks( objects, link_stack, missing_link_stack, info );
 	if ( info.version <= 0x03010000 ) {
-		image = FixLink<NiImage>( objects, link_stack, info );
+		image = FixLink<NiImage>( objects, link_stack, missing_link_stack, info );
 	};
 	if ( info.version >= 0x04000000 ) {
-		sourceTexture = FixLink<NiSourceTexture>( objects, link_stack, info );
+		sourceTexture = FixLink<NiSourceTexture>( objects, link_stack, missing_link_stack, info );
 	};
 
 	//--BEGIN POST-FIXLINKS CUSTOM CODE--//
diff --git a/src/obj/NiTextureProperty.cpp b/src/obj/NiTextureProperty.cpp
index d2937af3..ef983808 100644
--- a/src/obj/NiTextureProperty.cpp
+++ b/src/obj/NiTextureProperty.cpp
@@ -109,7 +109,7 @@ void NiTextureProperty::FixLinks( const map<unsigned int,NiObjectRef> & objects,
 	//--END CUSTOM CODE--//
 
 	NiProperty::FixLinks( objects, link_stack, missing_link_stack, info );
-	image = FixLink<NiImage>( objects, link_stack, info );
+	image = FixLink<NiImage>( objects, link_stack, missing_link_stack, info );
 
 	//--BEGIN POST-FIXLINKS CUSTOM CODE--//
 	//--END CUSTOM CODE--//
diff --git a/src/obj/NiTextureTransformController.cpp b/src/obj/NiTextureTransformController.cpp
index f5777e0f..d1fc01a7 100644
--- a/src/obj/NiTextureTransformController.cpp
+++ b/src/obj/NiTextureTransformController.cpp
@@ -111,7 +111,7 @@ void NiTextureTransformController::FixLinks( const map<unsigned int,NiObjectRef>
 
 	NiFloatInterpController::FixLinks( objects, link_stack, missing_link_stack, info );
 	if ( info.version <= 0x0A010000 ) {
-		data = FixLink<NiFloatData>( objects, link_stack, info );
+		data = FixLink<NiFloatData>( objects, link_stack, missing_link_stack, info );
 	};
 
 	//--BEGIN POST-FIXLINKS CUSTOM CODE--//
diff --git a/src/obj/NiTexturingProperty.cpp b/src/obj/NiTexturingProperty.cpp
index 6e7a67a5..c26fb078 100644
--- a/src/obj/NiTexturingProperty.cpp
+++ b/src/obj/NiTexturingProperty.cpp
@@ -1505,47 +1505,47 @@ void NiTexturingProperty::FixLinks( const map<unsigned int,NiObjectRef> & object
 
 	NiProperty::FixLinks( objects, link_stack, missing_link_stack, info );
 	if ( (hasBaseTexture != 0) ) {
-		baseTexture.source = FixLink<NiSourceTexture>( objects, link_stack, info );
+		baseTexture.source = FixLink<NiSourceTexture>( objects, link_stack, missing_link_stack, info );
 	};
 	if ( (hasDarkTexture != 0) ) {
-		darkTexture.source = FixLink<NiSourceTexture>( objects, link_stack, info );
+		darkTexture.source = FixLink<NiSourceTexture>( objects, link_stack, missing_link_stack, info );
 	};
 	if ( (hasDetailTexture != 0) ) {
-		detailTexture.source = FixLink<NiSourceTexture>( objects, link_stack, info );
+		detailTexture.source = FixLink<NiSourceTexture>( objects, link_stack, missing_link_stack, info );
 	};
 	if ( (hasGlossTexture != 0) ) {
-		glossTexture.source = FixLink<NiSourceTexture>( objects, link_stack, info );
+		glossTexture.source = FixLink<NiSourceTexture>( objects, link_stack, missing_link_stack, info );
 	};
 	if ( (hasGlowTexture != 0) ) {
-		glowTexture.source = FixLink<NiSourceTexture>( objects, link_stack, info );
+		glowTexture.source = FixLink<NiSourceTexture>( objects, link_stack, missing_link_stack, info );
 	};
 	if ( (hasBumpMapTexture != 0) ) {
-		bumpMapTexture.source = FixLink<NiSourceTexture>( objects, link_stack, info );
+		bumpMapTexture.source = FixLink<NiSourceTexture>( objects, link_stack, missing_link_stack, info );
 	};
 	if ( info.version >= 0x14020007 ) {
 		if ( (hasNormalTexture != 0) ) {
-			normalTexture.source = FixLink<NiSourceTexture>( objects, link_stack, info );
+			normalTexture.source = FixLink<NiSourceTexture>( objects, link_stack, missing_link_stack, info );
 		};
 		if ( (hasUnknown2Texture != 0) ) {
-			unknown2Texture.source = FixLink<NiSourceTexture>( objects, link_stack, info );
+			unknown2Texture.source = FixLink<NiSourceTexture>( objects, link_stack, missing_link_stack, info );
 		};
 	};
 	if ( (hasDecal0Texture != 0) ) {
-		decal0Texture.source = FixLink<NiSourceTexture>( objects, link_stack, info );
+		decal0Texture.source = FixLink<NiSourceTexture>( objects, link_stack, missing_link_stack, info );
 	};
 	if ( (hasDecal1Texture != 0) ) {
-		decal1Texture.source = FixLink<NiSourceTexture>( objects, link_stack, info );
+		decal1Texture.source = FixLink<NiSourceTexture>( objects, link_stack, missing_link_stack, info );
 	};
 	if ( (hasDecal2Texture != 0) ) {
-		decal2Texture.source = FixLink<NiSourceTexture>( objects, link_stack, info );
+		decal2Texture.source = FixLink<NiSourceTexture>( objects, link_stack, missing_link_stack, info );
 	};
 	if ( (hasDecal3Texture != 0) ) {
-		decal3Texture.source = FixLink<NiSourceTexture>( objects, link_stack, info );
+		decal3Texture.source = FixLink<NiSourceTexture>( objects, link_stack, missing_link_stack, info );
 	};
 	if ( info.version >= 0x0A000100 ) {
 		for (unsigned int i2 = 0; i2 < shaderTextures.size(); i2++) {
 			if ( (shaderTextures[i2].isUsed != 0) ) {
-				shaderTextures[i2].textureData.source = FixLink<NiSourceTexture>( objects, link_stack, info );
+				shaderTextures[i2].textureData.source = FixLink<NiSourceTexture>( objects, link_stack, missing_link_stack, info );
 			};
 		};
 	};
diff --git a/src/obj/NiTimeController.cpp b/src/obj/NiTimeController.cpp
index 9e724a45..99b89a47 100644
--- a/src/obj/NiTimeController.cpp
+++ b/src/obj/NiTimeController.cpp
@@ -142,9 +142,9 @@ void NiTimeController::FixLinks( const map<unsigned int,NiObjectRef> & objects,
 	//--END CUSTOM CODE--//
 
 	NiObject::FixLinks( objects, link_stack, missing_link_stack, info );
-	nextController = FixLink<NiTimeController>( objects, link_stack, info );
+	nextController = FixLink<NiTimeController>( objects, link_stack, missing_link_stack, info );
 	if ( info.version >= 0x0303000D ) {
-		target = FixLink<NiObjectNET>( objects, link_stack, info );
+		target = FixLink<NiObjectNET>( objects, link_stack, missing_link_stack, info );
 	};
 
 	//--BEGIN POST-FIXLINKS CUSTOM CODE--//
diff --git a/src/obj/NiTransformInterpolator.cpp b/src/obj/NiTransformInterpolator.cpp
index ef301d44..8286068c 100644
--- a/src/obj/NiTransformInterpolator.cpp
+++ b/src/obj/NiTransformInterpolator.cpp
@@ -128,7 +128,7 @@ void NiTransformInterpolator::FixLinks( const map<unsigned int,NiObjectRef> & ob
 	//--END CUSTOM CODE--//
 
 	NiKeyBasedInterpolator::FixLinks( objects, link_stack, missing_link_stack, info );
-	data = FixLink<NiTransformData>( objects, link_stack, info );
+	data = FixLink<NiTransformData>( objects, link_stack, missing_link_stack, info );
 
 	//--BEGIN POST-FIXLINKS CUSTOM CODE--//
 	//--END CUSTOM CODE--//
diff --git a/src/obj/NiTriShapeSkinController.cpp b/src/obj/NiTriShapeSkinController.cpp
index a472e629..c4c51ba3 100644
--- a/src/obj/NiTriShapeSkinController.cpp
+++ b/src/obj/NiTriShapeSkinController.cpp
@@ -171,7 +171,7 @@ void NiTriShapeSkinController::FixLinks( const map<unsigned int,NiObjectRef> & o
 
 	NiTimeController::FixLinks( objects, link_stack, missing_link_stack, info );
 	for (unsigned int i1 = 0; i1 < bones.size(); i1++) {
-		bones[i1] = FixLink<NiBone>( objects, link_stack, info );
+		bones[i1] = FixLink<NiBone>( objects, link_stack, missing_link_stack, info );
 	};
 
 	//--BEGIN POST-FIXLINKS CUSTOM CODE--//
diff --git a/src/obj/NiUVController.cpp b/src/obj/NiUVController.cpp
index 38f122dc..452501fb 100644
--- a/src/obj/NiUVController.cpp
+++ b/src/obj/NiUVController.cpp
@@ -99,7 +99,7 @@ void NiUVController::FixLinks( const map<unsigned int,NiObjectRef> & objects, li
 	//--END CUSTOM CODE--//
 
 	NiTimeController::FixLinks( objects, link_stack, missing_link_stack, info );
-	data = FixLink<NiUVData>( objects, link_stack, info );
+	data = FixLink<NiUVData>( objects, link_stack, missing_link_stack, info );
 
 	//--BEGIN POST-FIXLINKS CUSTOM CODE--//
 	//--END CUSTOM CODE--//
diff --git a/src/obj/NiVisController.cpp b/src/obj/NiVisController.cpp
index 297b78eb..cc08f6d6 100644
--- a/src/obj/NiVisController.cpp
+++ b/src/obj/NiVisController.cpp
@@ -101,7 +101,7 @@ void NiVisController::FixLinks( const map<unsigned int,NiObjectRef> & objects, l
 
 	NiBoolInterpController::FixLinks( objects, link_stack, missing_link_stack, info );
 	if ( info.version <= 0x0A010000 ) {
-		data = FixLink<NiVisData>( objects, link_stack, info );
+		data = FixLink<NiVisData>( objects, link_stack, missing_link_stack, info );
 	};
 
 	//--BEGIN POST-FIXLINKS CUSTOM CODE--//
diff --git a/src/obj/bhkConstraint.cpp b/src/obj/bhkConstraint.cpp
index f6a038ba..a8f0e1b0 100644
--- a/src/obj/bhkConstraint.cpp
+++ b/src/obj/bhkConstraint.cpp
@@ -122,7 +122,7 @@ void bhkConstraint::FixLinks( const map<unsigned int,NiObjectRef> & objects, lis
 
 	bhkSerializable::FixLinks( objects, link_stack, missing_link_stack, info );
 	for (unsigned int i1 = 0; i1 < entities.size(); i1++) {
-		entities[i1] = FixLink<bhkEntity>( objects, link_stack, info );
+		entities[i1] = FixLink<bhkEntity>( objects, link_stack, missing_link_stack, info );
 	};
 
 	//--BEGIN POST-FIXLINKS CUSTOM CODE--//
diff --git a/src/obj/bhkConvexListShape.cpp b/src/obj/bhkConvexListShape.cpp
index 8d09da25..001f817a 100644
--- a/src/obj/bhkConvexListShape.cpp
+++ b/src/obj/bhkConvexListShape.cpp
@@ -156,7 +156,7 @@ void bhkConvexListShape::FixLinks( const map<unsigned int,NiObjectRef> & objects
 
 	bhkShape::FixLinks( objects, link_stack, missing_link_stack, info );
 	for (unsigned int i1 = 0; i1 < subShapes.size(); i1++) {
-		subShapes[i1] = FixLink<bhkShape>( objects, link_stack, info );
+		subShapes[i1] = FixLink<bhkShape>( objects, link_stack, missing_link_stack, info );
 	};
 
 	//--BEGIN POST-FIXLINKS CUSTOM CODE--//
diff --git a/src/obj/bhkListShape.cpp b/src/obj/bhkListShape.cpp
index f49bac2a..983d009a 100644
--- a/src/obj/bhkListShape.cpp
+++ b/src/obj/bhkListShape.cpp
@@ -165,7 +165,7 @@ void bhkListShape::FixLinks( const map<unsigned int,NiObjectRef> & objects, list
 
 	bhkShapeCollection::FixLinks( objects, link_stack, missing_link_stack, info );
 	for (unsigned int i1 = 0; i1 < subShapes.size(); i1++) {
-		subShapes[i1] = FixLink<bhkShape>( objects, link_stack, info );
+		subShapes[i1] = FixLink<bhkShape>( objects, link_stack, missing_link_stack, info );
 	};
 
 	//--BEGIN POST-FIXLINKS CUSTOM CODE--//
diff --git a/src/obj/bhkMalleableConstraint.cpp b/src/obj/bhkMalleableConstraint.cpp
index c32a2787..09f37618 100644
--- a/src/obj/bhkMalleableConstraint.cpp
+++ b/src/obj/bhkMalleableConstraint.cpp
@@ -321,8 +321,8 @@ void bhkMalleableConstraint::FixLinks( const map<unsigned int,NiObjectRef> & obj
 	//--END CUSTOM CODE--//
 
 	bhkConstraint::FixLinks( objects, link_stack, missing_link_stack, info );
-	unknownLink1 = FixLink<NiObject>( objects, link_stack, info );
-	unknownLink2 = FixLink<NiObject>( objects, link_stack, info );
+	unknownLink1 = FixLink<NiObject>( objects, link_stack, missing_link_stack, info );
+	unknownLink2 = FixLink<NiObject>( objects, link_stack, missing_link_stack, info );
 
 	//--BEGIN POST-FIXLINKS CUSTOM CODE--//
 	//--END CUSTOM CODE--//
diff --git a/src/obj/bhkMoppBvTreeShape.cpp b/src/obj/bhkMoppBvTreeShape.cpp
index 88a5a9cd..426dae8b 100644
--- a/src/obj/bhkMoppBvTreeShape.cpp
+++ b/src/obj/bhkMoppBvTreeShape.cpp
@@ -139,7 +139,7 @@ void bhkMoppBvTreeShape::FixLinks( const map<unsigned int,NiObjectRef> & objects
 	//--END CUSTOM CODE--//
 
 	bhkBvTreeShape::FixLinks( objects, link_stack, missing_link_stack, info );
-	shape = FixLink<bhkShape>( objects, link_stack, info );
+	shape = FixLink<bhkShape>( objects, link_stack, missing_link_stack, info );
 
 	//--BEGIN POST-FIXLINKS CUSTOM CODE--//
 	//--END CUSTOM CODE--//
diff --git a/src/obj/bhkNiCollisionObject.cpp b/src/obj/bhkNiCollisionObject.cpp
index 6f0b10b5..d4b19b5c 100644
--- a/src/obj/bhkNiCollisionObject.cpp
+++ b/src/obj/bhkNiCollisionObject.cpp
@@ -99,7 +99,7 @@ void bhkNiCollisionObject::FixLinks( const map<unsigned int,NiObjectRef> & objec
 	//--END CUSTOM CODE--//
 
 	NiCollisionObject::FixLinks( objects, link_stack, missing_link_stack, info );
-	body = FixLink<NiObject>( objects, link_stack, info );
+	body = FixLink<NiObject>( objects, link_stack, missing_link_stack, info );
 
 	//--BEGIN POST-FIXLINKS CUSTOM CODE--//
 	//--END CUSTOM CODE--//
diff --git a/src/obj/bhkNiTriStripsShape.cpp b/src/obj/bhkNiTriStripsShape.cpp
index 1094a442..c603d316 100644
--- a/src/obj/bhkNiTriStripsShape.cpp
+++ b/src/obj/bhkNiTriStripsShape.cpp
@@ -183,7 +183,7 @@ void bhkNiTriStripsShape::FixLinks( const map<unsigned int,NiObjectRef> & object
 
 	bhkShapeCollection::FixLinks( objects, link_stack, missing_link_stack, info );
 	for (unsigned int i1 = 0; i1 < stripsData.size(); i1++) {
-		stripsData[i1] = FixLink<NiTriStripsData>( objects, link_stack, info );
+		stripsData[i1] = FixLink<NiTriStripsData>( objects, link_stack, missing_link_stack, info );
 	};
 
 	//--BEGIN POST-FIXLINKS CUSTOM CODE--//
diff --git a/src/obj/bhkPackedNiTriStripsShape.cpp b/src/obj/bhkPackedNiTriStripsShape.cpp
index 9cfa714c..33db02fd 100644
--- a/src/obj/bhkPackedNiTriStripsShape.cpp
+++ b/src/obj/bhkPackedNiTriStripsShape.cpp
@@ -162,7 +162,7 @@ void bhkPackedNiTriStripsShape::FixLinks( const map<unsigned int,NiObjectRef> &
 	//--END CUSTOM CODE--//
 
 	bhkShapeCollection::FixLinks( objects, link_stack, missing_link_stack, info );
-	data = FixLink<hkPackedNiTriStripsData>( objects, link_stack, info );
+	data = FixLink<hkPackedNiTriStripsData>( objects, link_stack, missing_link_stack, info );
 
 	//--BEGIN POST-FIXLINKS CUSTOM CODE--//
 	//--END CUSTOM CODE--//
diff --git a/src/obj/bhkRigidBody.cpp b/src/obj/bhkRigidBody.cpp
index 5c250c3c..e47712db 100644
--- a/src/obj/bhkRigidBody.cpp
+++ b/src/obj/bhkRigidBody.cpp
@@ -271,7 +271,7 @@ void bhkRigidBody::FixLinks( const map<unsigned int,NiObjectRef> & objects, list
 
 	bhkEntity::FixLinks( objects, link_stack, missing_link_stack, info );
 	for (unsigned int i1 = 0; i1 < constraints.size(); i1++) {
-		constraints[i1] = FixLink<bhkSerializable>( objects, link_stack, info );
+		constraints[i1] = FixLink<bhkSerializable>( objects, link_stack, missing_link_stack, info );
 	};
 
 	//--BEGIN POST-FIXLINKS CUSTOM CODE--//
diff --git a/src/obj/bhkTransformShape.cpp b/src/obj/bhkTransformShape.cpp
index 9806ee52..df91dfc1 100644
--- a/src/obj/bhkTransformShape.cpp
+++ b/src/obj/bhkTransformShape.cpp
@@ -124,7 +124,7 @@ void bhkTransformShape::FixLinks( const map<unsigned int,NiObjectRef> & objects,
 	//--END CUSTOM CODE--//
 
 	bhkShape::FixLinks( objects, link_stack, missing_link_stack, info );
-	shape = FixLink<bhkShape>( objects, link_stack, info );
+	shape = FixLink<bhkShape>( objects, link_stack, missing_link_stack, info );
 
 	//--BEGIN POST-FIXLINKS CUSTOM CODE--//
 	//--END CUSTOM CODE--//
diff --git a/src/obj/bhkWorldObject.cpp b/src/obj/bhkWorldObject.cpp
index 0c5a2777..48fc5959 100644
--- a/src/obj/bhkWorldObject.cpp
+++ b/src/obj/bhkWorldObject.cpp
@@ -105,7 +105,7 @@ void bhkWorldObject::FixLinks( const map<unsigned int,NiObjectRef> & objects, li
 	//--END CUSTOM CODE--//
 
 	bhkSerializable::FixLinks( objects, link_stack, missing_link_stack, info );
-	shape = FixLink<bhkShape>( objects, link_stack, info );
+	shape = FixLink<bhkShape>( objects, link_stack, missing_link_stack, info );
 
 	//--BEGIN POST-FIXLINKS CUSTOM CODE--//
 	//--END CUSTOM CODE--//
-- 
GitLab