From a1a5a2c3d72d136b74cc9257b9042e1125635b3e Mon Sep 17 00:00:00 2001 From: David Wyand Date: Wed, 3 Oct 2012 18:06:15 -0400 Subject: [PATCH] Fix for Issue #56 for ShapeEditor save crash --- Engine/source/ts/tsMesh.cpp | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/Engine/source/ts/tsMesh.cpp b/Engine/source/ts/tsMesh.cpp index ec0ca6168..54c4beeaa 100644 --- a/Engine/source/ts/tsMesh.cpp +++ b/Engine/source/ts/tsMesh.cpp @@ -2636,10 +2636,14 @@ void TSMesh::disassemble() { const TSDrawPrimitive& prim = primitives[i]; - TriListOpt::OptimizeTriangleOrdering(verts.size(), prim.numElements, - indices.address() + prim.start, tmpIdxs.address()); - dCopyArray(indices.address() + prim.start, tmpIdxs.address(), - prim.numElements); + // only optimize triangle lists (strips and fans are assumed to be already optimized) + if ( (prim.matIndex & TSDrawPrimitive::TypeMask) == TSDrawPrimitive::Triangles ) + { + TriListOpt::OptimizeTriangleOrdering(verts.size(), prim.numElements, + indices.address() + prim.start, tmpIdxs.address()); + dCopyArray(indices.address() + prim.start, tmpIdxs.address(), + prim.numElements); + } } }