From b695827f866e91f4e4b3169aa6bdac96b3d55cb0 Mon Sep 17 00:00:00 2001 From: Amorilia <amorilia@users.sourceforge.net> Date: Sat, 17 Sep 2011 09:22:03 +0100 Subject: [PATCH] Fixed two NiSkinPartition.SetTriangles bugs (see niftools issue #3395584). --- src/obj/NiSkinPartition.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/obj/NiSkinPartition.cpp b/src/obj/NiSkinPartition.cpp index 492fbc17..9f188a4a 100644 --- a/src/obj/NiSkinPartition.cpp +++ b/src/obj/NiSkinPartition.cpp @@ -642,10 +642,13 @@ void NiSkinPartition::SetTriangles( int partition, const vector<Triangle> & in ) if ( in.size() > 65535 || in.size() < 0 ) { throw runtime_error("Invalid Triangle Count: must be between 0 and 65535."); } + if ( partition < 0 || partition >= numSkinPartitionBlocks) { + throw runtime_error("Invalid partition number."); + }; SkinPartition& part = skinPartitionBlocks[partition]; part.triangles = in; part.hasFaces = (in.size() > 0) ? true : (part.strips.size() != 0); - part.numTriangles = (unsigned int)(in.size()) * 3; + part.numTriangles = (unsigned short)(in.size()); } NiSkinPartition::NiSkinPartition(Ref<NiTriBasedGeom> shape) { -- GitLab