From 369833291e06f71c7137f52df08397805a5c684e Mon Sep 17 00:00:00 2001
From: Amorilia <amorilia@users.sourceforge.net>
Date: Sat, 2 Jul 2011 08:52:49 +0100
Subject: [PATCH] Fixed tree writing bug for test case (will fix code generator
 in next commit).

---
 src/obj/NiTimeController.cpp | 18 ++++++++++++------
 1 file changed, 12 insertions(+), 6 deletions(-)

diff --git a/src/obj/NiTimeController.cpp b/src/obj/NiTimeController.cpp
index 119dd5a1..6c0f3617 100644
--- a/src/obj/NiTimeController.cpp
+++ b/src/obj/NiTimeController.cpp
@@ -86,12 +86,18 @@ void NiTimeController::Write( ostream& out, const map<NiObjectRef,unsigned int>
 		if ( info.version < VER_3_3_0_13 ) {
 			WritePtr32( &(*target), out );
 		} else {
-			if ( target != NULL ) {
-				NifStream( link_map.find( StaticCast<NiObject>(target) )->second, out, info );
-			} else {
-				NifStream( 0xFFFFFFFF, out, info );
-			}
-		}
+                  if ( target != NULL ) {
+                    map<NiObjectRef,unsigned int>::const_iterator it = link_map.find( StaticCast<NiObject>(target) );
+                    if (it != link_map.end()) {
+                      NifStream( it->second, out, info );
+                    } else {
+                      //std::cerr << "warning: referenced block not in tree; omitting" << std::endl;
+                      NifStream( 0xFFFFFFFF, out, info );
+                    }
+                  } else {
+                    NifStream( 0xFFFFFFFF, out, info );
+                  }
+                }
 	};
 	if ( info.version <= 0x03010000 ) {
 		NifStream( unknownInteger, out, info );
-- 
GitLab