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