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