From 89ba8ec468e274b0361415b8d8a4abbc5c4922f3 Mon Sep 17 00:00:00 2001
From: Shon Ferguson <shonferg@users.sourceforge.net>
Date: Sun, 19 Nov 2006 19:02:33 +0000
Subject: [PATCH] More GCC related fixes... almost there.

---
 include/obj/NiDynamicEffect.h     |  2 +-
 include/obj/NiGeometryData.h      |  2 +-
 include/obj/NiIntegersExtraData.h |  2 +-
 include/obj/NiSkinPartition.h     | 38 +++++++++---------
 include/obj/NiTriStripsData.h     | 20 +++++-----
 src/obj/NiDynamicEffect.cpp       |  2 +-
 src/obj/NiGeometryData.cpp        |  2 +-
 src/obj/NiIntegersExtraData.cpp   |  2 +-
 src/obj/NiObjectNET.cpp           |  4 +-
 src/obj/NiSkinPartition.cpp       | 66 +++++++++++++++----------------
 src/obj/NiTriStripsData.cpp       | 30 +++++++-------
 11 files changed, 86 insertions(+), 84 deletions(-)

diff --git a/include/obj/NiDynamicEffect.h b/include/obj/NiDynamicEffect.h
index 909a4525..02e51ded 100644
--- a/include/obj/NiDynamicEffect.h
+++ b/include/obj/NiDynamicEffect.h
@@ -56,7 +56,7 @@ public:
 	 * doesn't matter because at least in version 4.0.0.2 the list is
 	 * automagically updated by the engine during the load stage.
 	 */
-	vector<uint > GetAffectedNodeListPointers() const;
+	vector<unsigned int> GetAffectedNodeListPointers() const;
 	void SetAffectedNodeListPointers( const vector<uint >& value );
 
 protected:
diff --git a/include/obj/NiGeometryData.h b/include/obj/NiGeometryData.h
index 51ec7266..57e00fca 100644
--- a/include/obj/NiGeometryData.h
+++ b/include/obj/NiGeometryData.h
@@ -132,7 +132,7 @@ public:
 	 * this mesh.
 	 * \param[in] transform The 4x4 transformation matrix to apply to the vertices and normals in this mesh.  Normals are only affected by the rotation portion of this matrix.
 	 */
-	void Transform( Matrix44 & transform );
+	void Transform( const Matrix44 & transform );
 
 protected:
 	NI_GEOMETRY_DATA_MEMBERS
diff --git a/include/obj/NiIntegersExtraData.h b/include/obj/NiIntegersExtraData.h
index 5f44c94d..0c17ce50 100644
--- a/include/obj/NiIntegersExtraData.h
+++ b/include/obj/NiIntegersExtraData.h
@@ -35,7 +35,7 @@ public:
 	/*!
 	 * Integers.
 	 */
-	vector<uint > GetData() const;
+	vector<unsigned int> GetData() const;
 	void SetData( const vector<uint >& value );
 
 protected:
diff --git a/include/obj/NiSkinPartition.h b/include/obj/NiSkinPartition.h
index 46b04962..8402547b 100644
--- a/include/obj/NiSkinPartition.h
+++ b/include/obj/NiSkinPartition.h
@@ -32,28 +32,28 @@ public:
 private:
 	static const Type TYPE;
 public:
-	virtual void Read( istream& in, list<uint> & link_stack, unsigned int version, unsigned int user_version );
-	virtual void Write( ostream& out, const map<NiObjectRef,uint> & link_map, unsigned int version, unsigned int user_version ) const;
+	virtual void Read( istream& in, list<unsigned int> & link_stack, unsigned int version, unsigned int user_version );
+	virtual void Write( ostream& out, const map<NiObjectRef,unsigned int> & link_map, unsigned int version, unsigned int user_version ) const;
 	virtual string asString( bool verbose = false ) const;
-	virtual void FixLinks( const map<unsigned int,NiObjectRef> & objects, list<uint> & link_stack, unsigned int version, unsigned int user_version );
+	virtual void FixLinks( const map<unsigned int,NiObjectRef> & objects, list<unsigned int> & link_stack, unsigned int version, unsigned int user_version );
 	virtual list<NiObjectRef> GetRefs() const;
 	virtual const Type & GetType() const;
 
    int GetNumPartitions() const;
 
-   ushort GetWeightsPerVertex( int partition ) const;
+   unsigned short GetWeightsPerVertex( int partition ) const;
 
-   ushort GetNumVertices( int partition ) const;
+   unsigned short GetNumVertices( int partition ) const;
 
-   vector<ushort> GetVertexMap( int partition ) const;
+   vector<unsigned short> GetVertexMap( int partition ) const;
 
-   vector<ushort> GetBoneMap( int partition ) const;
+   vector<unsigned short> GetBoneMap( int partition ) const;
 
    bool HasVertexWeights( int partition ) const;
    vector<float> GetVertexWeights( int partition, int vertex ) const;
 
    bool HasVertexBoneIndices( int partition ) const;
-   vector<ushort> GetVertexBoneIndices( int partition, int vertex ) const;
+   vector<unsigned short> GetVertexBoneIndices( int partition, int vertex ) const;
 
    /*! Used to get the number of triangle strips that a particular skin partition
     * isis divided into.
@@ -61,7 +61,7 @@ public:
     * \return The number of triangle strips used by this mesh.
     * \sa NiSkinPartition::SetStripCount
     */
-   ushort GetStripCount( int partition ) const;
+   unsigned short GetStripCount( int partition ) const;
 
    /*! Used to retrieve all the triangles from a specific triangle strip in a
     * particular skin partition.
@@ -70,7 +70,7 @@ public:
     * \return A vector containing all the triangle faces from the triangle strip specified by index.
     * \sa NiSkinPartition::SetStrip
     */
-   vector<ushort> GetStrip( int partition, int index ) const;
+   vector<unsigned short> GetStrip( int partition, int index ) const;
    
    vector<Triangle> GetTriangles( int partition ) const;
 
@@ -81,16 +81,16 @@ protected:
    NiSkinPartition(Ref<NiTriBasedGeom> shape, int maxBonesPerPartition, int maxBonesPerVertex);
 
    void SetNumPartitions( int value );
-   void SetWeightsPerVertex( int partition, ushort value );
-   void SetNumVertices( int partition, ushort value );
-   void SetVertexMap( int partition, const vector<ushort>& vertexMap );
-   void SetBoneMap( int partition, const vector<ushort>& boneMap );
+   void SetWeightsPerVertex( int partition, unsigned short value );
+   void SetNumVertices( int partition, unsigned short value );
+   void SetVertexMap( int partition, const vector<unsigned short>& vertexMap );
+   void SetBoneMap( int partition, const vector<unsigned short>& boneMap );
 
    void EnableVertexWeights( int partition, bool enable);
    void SetVertexWeights( int partition, int vertex, const vector<float> & n );
 
    void EnableVertexBoneIndices( int partition, bool enable);
-   void SetVertexBoneIndices( int partition, int vertex, const vector<ushort>& boneList );
+   void SetVertexBoneIndices( int partition, int vertex, const vector<unsigned short>& boneList );
 
    /*! Used to resize the triangle strips array from a particular skin partition.
     * If the new size is smaller, strips at the end of the array will be deleted.
@@ -107,17 +107,17 @@ protected:
     * \param[in] in The vertex indices that make up this strip, in standard OpenGL triangle strip order.
     * \sa NiSkinPartition::GetStrip
     */
-   void SetStrip( int partition, int index, const vector<ushort> & in );
+   void SetStrip( int partition, int index, const vector<unsigned short> & in );
 
    void SetTriangles( int partition, const vector<Triangle> & in );
 
 protected:
 	NI_SKIN_PARTITION_MEMBERS
 private:
-	void InternalRead( istream& in, list<uint> & link_stack, unsigned int version, unsigned int user_version );
-	void InternalWrite( ostream& out, const map<NiObjectRef,uint> & link_map, unsigned int version, unsigned int user_version ) const;
+	void InternalRead( istream& in, list<unsigned int> & link_stack, unsigned int version, unsigned int user_version );
+	void InternalWrite( ostream& out, const map<NiObjectRef,unsigned int> & link_map, unsigned int version, unsigned int user_version ) const;
 	string InternalAsString( bool verbose ) const;
-	void InternalFixLinks( const map<unsigned int,NiObjectRef> & objects, list<uint> & link_stack, unsigned int version, unsigned int user_version );
+	void InternalFixLinks( const map<unsigned int,NiObjectRef> & objects, list<unsigned int> & link_stack, unsigned int version, unsigned int user_version );
 	list<NiObjectRef> InternalGetRefs() const;
 };
 
diff --git a/include/obj/NiTriStripsData.h b/include/obj/NiTriStripsData.h
index fb69f88c..843d80d2 100644
--- a/include/obj/NiTriStripsData.h
+++ b/include/obj/NiTriStripsData.h
@@ -25,10 +25,10 @@ public:
 private:	
 	static const Type TYPE;
 public:
-	virtual void Read( istream& in, list<uint> & link_stack, unsigned int version, unsigned int user_version );
-	virtual void Write( ostream& out, const map<NiObjectRef,uint> & link_map, unsigned int version, unsigned int user_version ) const;
+	virtual void Read( istream& in, list<unsigned int> & link_stack, unsigned int version, unsigned int user_version );
+	virtual void Write( ostream& out, const map<NiObjectRef,unsigned int> & link_map, unsigned int version, unsigned int user_version ) const;
 	virtual string asString( bool verbose = false ) const;
-	virtual void FixLinks( const map<unsigned int,NiObjectRef> & objects, list<uint> & link_stack, unsigned int version, unsigned int user_version );
+	virtual void FixLinks( const map<unsigned int,NiObjectRef> & objects, list<unsigned int> & link_stack, unsigned int version, unsigned int user_version );
 	virtual list<NiObjectRef> GetRefs() const;
 	virtual const Type & GetType() const;
 
@@ -41,7 +41,7 @@ public:
 	 * \return The number of triangle strips used by this mesh.
 	 * \sa NiTriStripData::SetStripCount
 	 */
-	ushort GetStripCount() const;
+	unsigned short GetStripCount() const;
 
 	/*! Used to resize the triangle strips array.  If the new size is smaller, strips at the end of the array will be deleted.
 	 * \param n The new size of the triangle strips array.
@@ -56,7 +56,7 @@ public:
 	 * \return A vector containing all the triangle faces from the triangle strip specified by index.
 	 * \sa NiTriStripData::SetStrip, NiTriStripData::GetTriangles
 	 */
-	vector<ushort> GetStrip( int index ) const;
+	vector<unsigned short> GetStrip( int index ) const;
 
 	/*! This is a conveniance function which returns all triangle faces in all triangle strips that make up this mesh.  It is similar to the ITriShapeData::GetTriangles function.
 	 * \return A vector containing all the triangle faces from all the triangle strips that make up this mesh.
@@ -71,7 +71,7 @@ public:
 	 * \param in The vertex indices that make up this strip, in standard OpenGL triangle strip order.
 	 * \sa NiTriStripData::GetStrip, NiTriStripData::GetTriangles
 	 */
-	void SetStrip( int index, const vector<ushort> & in );
+	void SetStrip( int index, const vector<unsigned short> & in );
 
    /*! Replaces the triangle face data in this mesh with new data.
    * \param in A vector containing the new face data.  Maximum size is 65,535.
@@ -82,15 +82,15 @@ public:
 private:
    void SetNvTriangles( const vector<Triangle> & in );
    void SetTSTriangles( const vector<Triangle> & in );
-	ushort CalcTriangleCount() const;
+	unsigned short CalcTriangleCount() const;
 
 protected:
 	NI_TRI_STRIPS_DATA_MEMBERS
 private:
-	void InternalRead( istream& in, list<uint> & link_stack, unsigned int version, unsigned int user_version );
-	void InternalWrite( ostream& out, const map<NiObjectRef,uint> & link_map, unsigned int version, unsigned int user_version ) const;
+	void InternalRead( istream& in, list<unsigned int> & link_stack, unsigned int version, unsigned int user_version );
+	void InternalWrite( ostream& out, const map<NiObjectRef,unsigned int> & link_map, unsigned int version, unsigned int user_version ) const;
 	string InternalAsString( bool verbose ) const;
-	void InternalFixLinks( const map<unsigned int,NiObjectRef> & objects, list<uint> & link_stack, unsigned int version, unsigned int user_version );
+	void InternalFixLinks( const map<unsigned int,NiObjectRef> & objects, list<unsigned int> & link_stack, unsigned int version, unsigned int user_version );
 	list<NiObjectRef> InternalGetRefs() const;
 };
 
diff --git a/src/obj/NiDynamicEffect.cpp b/src/obj/NiDynamicEffect.cpp
index 90cd0971..4c80666c 100644
--- a/src/obj/NiDynamicEffect.cpp
+++ b/src/obj/NiDynamicEffect.cpp
@@ -52,7 +52,7 @@ void NiDynamicEffect::SetAffectedNodes( const vector<Ref<NiAVObject > >& value )
 	affectedNodes = value;
 }
 
-vector<uint > NiDynamicEffect::GetAffectedNodeListPointers() const {
+vector<unsigned int> NiDynamicEffect::GetAffectedNodeListPointers() const {
 	return affectedNodeListPointers;
 }
 
diff --git a/src/obj/NiGeometryData.cpp b/src/obj/NiGeometryData.cpp
index 8fb26c7b..4626f4d0 100644
--- a/src/obj/NiGeometryData.cpp
+++ b/src/obj/NiGeometryData.cpp
@@ -127,7 +127,7 @@ float NiGeometryData::GetRadius() const {
 	return radius;
 }
 
-void NiGeometryData::Transform( Matrix44 & transform ) {
+void NiGeometryData::Transform( const Matrix44 & transform ) {
 	Matrix44 rotation = Matrix44( transform.GetRotation() );
 
 	//Apply the transformations
diff --git a/src/obj/NiIntegersExtraData.cpp b/src/obj/NiIntegersExtraData.cpp
index 1e9392ba..7da13114 100644
--- a/src/obj/NiIntegersExtraData.cpp
+++ b/src/obj/NiIntegersExtraData.cpp
@@ -35,7 +35,7 @@ const Type & NiIntegersExtraData::GetType() const {
 	return TYPE;
 };
 
-vector<uint> NiIntegersExtraData::GetData() const {
+vector<unsigned int> NiIntegersExtraData::GetData() const {
 	return data;
 };
 	
diff --git a/src/obj/NiObjectNET.cpp b/src/obj/NiObjectNET.cpp
index 80fa6b19..fe4cdede 100644
--- a/src/obj/NiObjectNET.cpp
+++ b/src/obj/NiObjectNET.cpp
@@ -82,7 +82,9 @@ void NiObjectNET::RemoveExtraData( NiExtraData * obj ) {
 			(*extra) = (*extra)->GetNextExtraData();
 		} else {
 			//Advance to the next extra data
-			extra = &((*extra)->GetNextExtraData());
+			NiExtraDataRef temp = (*extra)->GetNextExtraData();
+			extra = &temp;
+			temp = NULL;
 		}
 	}
 }
diff --git a/src/obj/NiSkinPartition.cpp b/src/obj/NiSkinPartition.cpp
index 4dffd89a..bb18c7ef 100644
--- a/src/obj/NiSkinPartition.cpp
+++ b/src/obj/NiSkinPartition.cpp
@@ -14,8 +14,8 @@ All rights reserved.  Please see niflib.h for licence. */
 using namespace Niflib;
 
 typedef vector<float> WeightList;
-typedef vector<ushort> BoneList;
-typedef vector<ushort> Strip;
+typedef vector<unsigned short> BoneList;
+typedef vector<unsigned short> Strip;
 typedef vector<Strip> Strips;
 typedef vector<Triangle> Triangles;
 
@@ -31,11 +31,11 @@ NiSkinPartition::NiSkinPartition() NI_SKIN_PARTITION_CONSTRUCT {}
 
 NiSkinPartition::~NiSkinPartition() {}
 
-void NiSkinPartition::Read( istream& in, list<uint> & link_stack, unsigned int version, unsigned int user_version ) {
+void NiSkinPartition::Read( istream& in, list<unsigned int> & link_stack, unsigned int version, unsigned int user_version ) {
 	InternalRead( in, link_stack, version, user_version );
 }
 
-void NiSkinPartition::Write( ostream& out, const map<NiObjectRef,uint> & link_map, unsigned int version, unsigned int user_version ) const {
+void NiSkinPartition::Write( ostream& out, const map<NiObjectRef,unsigned int> & link_map, unsigned int version, unsigned int user_version ) const {
 	InternalWrite( out, link_map, version, user_version );
 }
 
@@ -43,7 +43,7 @@ string NiSkinPartition::asString( bool verbose ) const {
 	return InternalAsString( verbose );
 }
 
-void NiSkinPartition::FixLinks( const map<unsigned int,NiObjectRef> & objects, list<uint> & link_stack, unsigned int version, unsigned int user_version ) {
+void NiSkinPartition::FixLinks( const map<unsigned int,NiObjectRef> & objects, list<unsigned int> & link_stack, unsigned int version, unsigned int user_version ) {
 	InternalFixLinks( objects, link_stack, version, user_version );
 }
 
@@ -74,36 +74,36 @@ void NiSkinPartition::SetNumPartitions( int value ) {
    numSkinPartitionBlocks = value;
 }
 
-ushort NiSkinPartition::GetWeightsPerVertex( int partition ) const {
+unsigned short NiSkinPartition::GetWeightsPerVertex( int partition ) const {
    return skinPartitionBlocks[partition].numWeightsPerVertex;
 }
 
-void NiSkinPartition::SetWeightsPerVertex( int partition, ushort value ) {
+void NiSkinPartition::SetWeightsPerVertex( int partition, unsigned short value ) {
    skinPartitionBlocks[partition].numWeightsPerVertex = value;
 }
 
-ushort NiSkinPartition::GetNumVertices( int partition ) const {
+unsigned short NiSkinPartition::GetNumVertices( int partition ) const {
    return skinPartitionBlocks[partition].numVertices;
 }
 
-void NiSkinPartition::SetNumVertices( int partition, ushort value ) {
+void NiSkinPartition::SetNumVertices( int partition, unsigned short value ) {
    skinPartitionBlocks[partition].numVertices = value;
 }
 
-vector<ushort> NiSkinPartition::GetBoneMap( int partition ) const {
+vector<unsigned short> NiSkinPartition::GetBoneMap( int partition ) const {
    return skinPartitionBlocks[partition].bones;
 }
 
-void NiSkinPartition::SetBoneMap( int partition, const vector<ushort>& boneMap ) {
+void NiSkinPartition::SetBoneMap( int partition, const vector<unsigned short>& boneMap ) {
    skinPartitionBlocks[partition].bones = boneMap;
-   skinPartitionBlocks[partition].numBones = (ushort)boneMap.size();
+   skinPartitionBlocks[partition].numBones = (unsigned short)boneMap.size();
 }
 
-vector<ushort> NiSkinPartition::GetVertexMap( int partition ) const {
+vector<unsigned short> NiSkinPartition::GetVertexMap( int partition ) const {
    return skinPartitionBlocks[partition].vertexMap;
 }
 
-void NiSkinPartition::SetVertexMap( int partition, const vector<ushort>& vertexMap ) {
+void NiSkinPartition::SetVertexMap( int partition, const vector<unsigned short>& vertexMap ) {
    SkinPartition& part = skinPartitionBlocks[partition];
    if (vertexMap.empty()) {
       part.vertexMap.clear();
@@ -111,7 +111,7 @@ void NiSkinPartition::SetVertexMap( int partition, const vector<ushort>& vertexM
       part.hasVertexMap = false;
    } else {
       part.vertexMap = vertexMap;
-      part.numVertices = ushort(vertexMap.size());
+      part.numVertices = (unsigned short)(vertexMap.size());
       part.hasVertexMap = true;
    }
 }
@@ -156,17 +156,17 @@ void NiSkinPartition::EnableVertexBoneIndices( int partition, bool enable) {
    skinPartitionBlocks[partition].hasBoneIndices = enable;
 }
 
-vector<ushort> NiSkinPartition::GetVertexBoneIndices( int partition, int vertex ) const {
+vector<unsigned short> NiSkinPartition::GetVertexBoneIndices( int partition, int vertex ) const {
    const vector<byte>& bones = skinPartitionBlocks[partition].boneIndices[vertex];
-   vector<ushort> value;
+   vector<unsigned short> value;
    size_t n = bones.size();
    value.resize(bones.size());
    for (size_t i=0; i<n; ++i)
-      value[i] = ushort(bones[i]);
+      value[i] = (unsigned short)(bones[i]);
    return value;
 }
 
-void NiSkinPartition::SetVertexBoneIndices( int partition, int vertex, const vector<ushort>& boneList ) {
+void NiSkinPartition::SetVertexBoneIndices( int partition, int vertex, const vector<unsigned short>& boneList ) {
    vector<byte>& bones = skinPartitionBlocks[partition].boneIndices[vertex];
    size_t n = boneList.size();
    bones.resize(n);
@@ -174,8 +174,8 @@ void NiSkinPartition::SetVertexBoneIndices( int partition, int vertex, const vec
       bones[i] = byte(boneList[i]);
 }
 
-ushort NiSkinPartition::GetStripCount( int partition ) const {
-   return (ushort)skinPartitionBlocks[partition].strips.size();
+unsigned short NiSkinPartition::GetStripCount( int partition ) const {
+   return (unsigned short)skinPartitionBlocks[partition].strips.size();
 }
 
 void NiSkinPartition::SetStripCount( int partition, int n ) {
@@ -185,17 +185,17 @@ void NiSkinPartition::SetStripCount( int partition, int n ) {
    part.hasStrips = (n!=0);
 }
 
-vector<ushort> NiSkinPartition::GetStrip( int partition, int index ) const {
+vector<unsigned short> NiSkinPartition::GetStrip( int partition, int index ) const {
    return skinPartitionBlocks[partition].strips[index];
 }
 
-void NiSkinPartition::SetStrip( int partition, int index, const vector<ushort> & in ) {
+void NiSkinPartition::SetStrip( int partition, int index, const vector<unsigned short> & in ) {
    SkinPartition& part = skinPartitionBlocks[partition];
    part.strips[index] = in;
-   part.stripLengths[index] = ushort(in.size());
+   part.stripLengths[index] = (unsigned short)(in.size());
 
    int len = 0;
-   for (vector<ushort>::iterator itr = part.stripLengths.begin(); itr != part.stripLengths.end(); ++itr) {
+   for (vector<unsigned short>::iterator itr = part.stripLengths.begin(); itr != part.stripLengths.end(); ++itr) {
       len += ((*itr) - 2);
    }
    if (len < 0)
@@ -215,7 +215,7 @@ void NiSkinPartition::SetTriangles( int partition, const vector<Triangle> & in )
    SkinPartition& part = skinPartitionBlocks[partition];
    part.triangles = in;
    part.hasStrips = (in.size() > 0) ? false : (part.strips.size() != 0);
-   part.numTriangles = uint(in.size()) * 3;
+   part.numTriangles = (unsigned int)(in.size()) * 3;
 }
 
 NiSkinPartition::NiSkinPartition(Ref<NiTriBasedGeom> shape) {
@@ -235,7 +235,7 @@ NiSkinPartition::NiSkinPartition(Ref<NiTriBasedGeom> shape) {
    int nWeightsPerVertex = 4;
    vector<WeightList> vertexWeights;
    BoneList boneMap;
-   vector<ushort> vertexMap;
+   vector<unsigned short> vertexMap;
    Strips strips;
    vector<BoneList> boneIndexList;
    Triangles triangles;
@@ -284,7 +284,7 @@ NiSkinPartition::NiSkinPartition(Ref<NiTriBasedGeom> shape) {
    SetNumPartitions(1);
    SetWeightsPerVertex(0, nWeightsPerVertex);
    SetBoneMap(0, boneMap);
-   SetNumVertices(0, ushort(vertexMap.size()) );
+   SetNumVertices(0, (unsigned short)(vertexMap.size()) );
    SetVertexMap(0, vertexMap);
    EnableVertexWeights(0, true);
    EnableVertexBoneIndices(0, true);
@@ -295,7 +295,7 @@ NiSkinPartition::NiSkinPartition(Ref<NiTriBasedGeom> shape) {
 
    // Special case for pre-stripped data
    if (NiTriStripsDataRef stripData = DynamicCast<NiTriStripsData>(geomData)) {
-      ushort nstrips = stripData->GetStripCount();
+      unsigned short nstrips = stripData->GetStripCount();
       SetStripCount(0, nstrips);
       for (int i=0; i<int(nstrips); ++i) {
          SetStrip(0, i, stripData->GetStrip(i));
@@ -326,8 +326,8 @@ NiSkinPartition::NiSkinPartition(Ref<NiTriBasedGeom> shape) {
          SetStripCount(0, numGroups);
          for (int g=0; g<numGroups; g++) {
             if (groups[g].type == PT_STRIP) {
-               vector<Niflib::ushort> strip(groups[g].numIndices);
-               for (size_t s=0; s<groups[g].numIndices; s++)
+               vector<unsigned short> strip(groups[g].numIndices);
+               for ( unsigned int s = 0; s<groups[g].numIndices; s++ )
                   strip[s] = groups[g].indices[s];
                SetStrip(0, g, strip);
             }
@@ -644,7 +644,7 @@ NiSkinPartition::NiSkinPartition(Ref<NiTriBasedGeom> shape, int maxBonesPerParti
 
       Triangles& triangles = part.triangles;
 
-      vector<ushort>& vertices = part.vertexMap;
+      vector<unsigned short>& vertices = part.vertexMap;
       for( Triangles::iterator tri = triangles.begin(); tri !=  triangles.end(); ++tri) {
          for ( int t = 0; t < 3; t++ ) {
             if ( vertices.end() == find(vertices.begin(), vertices.end(), (*tri)[t] ) )
@@ -695,7 +695,7 @@ NiSkinPartition::NiSkinPartition(Ref<NiTriBasedGeom> shape, int maxBonesPerParti
       //   SetStripCount(p, numGroups);
       //   for (int g=0; g<numGroups; g++) {
       //      if (groups[g].type == PT_STRIP) {
-      //         vector<Niflib::ushort> strip(groups[g].numIndices);
+      //         vector<Niflib::unsigned short> strip(groups[g].numIndices);
       //         for (size_t s=0; s<groups[g].numIndices; s++)
       //            strip[s] = groups[g].indices[s];
       //         SetStrip(p, g, strip);
diff --git a/src/obj/NiTriStripsData.cpp b/src/obj/NiTriStripsData.cpp
index 63d38255..ecebf955 100644
--- a/src/obj/NiTriStripsData.cpp
+++ b/src/obj/NiTriStripsData.cpp
@@ -20,11 +20,11 @@ NiTriStripsData::NiTriStripsData() NI_TRI_STRIPS_DATA_CONSTRUCT {}
 
 NiTriStripsData::~NiTriStripsData() {}
 
-void NiTriStripsData::Read( istream& in, list<uint> & link_stack, unsigned int version, unsigned int user_version ) {
+void NiTriStripsData::Read( istream& in, list<unsigned int> & link_stack, unsigned int version, unsigned int user_version ) {
 	InternalRead( in, link_stack, version, user_version );
 }
 
-void NiTriStripsData::Write( ostream& out, const map<NiObjectRef,uint> & link_map, unsigned int version, unsigned int user_version ) const {
+void NiTriStripsData::Write( ostream& out, const map<NiObjectRef,unsigned int> & link_map, unsigned int version, unsigned int user_version ) const {
 	InternalWrite( out, link_map, version, user_version );
 }
 
@@ -32,7 +32,7 @@ string NiTriStripsData::asString( bool verbose ) const {
 	return InternalAsString( verbose );
 }
 
-void NiTriStripsData::FixLinks( const map<unsigned int,NiObjectRef> & objects, list<uint> & link_stack, unsigned int version, unsigned int user_version ) {
+void NiTriStripsData::FixLinks( const map<unsigned int,NiObjectRef> & objects, list<unsigned int> & link_stack, unsigned int version, unsigned int user_version ) {
 	InternalFixLinks( objects, link_stack, version, user_version );
 }
 
@@ -51,8 +51,8 @@ NiTriStripsData::NiTriStripsData(const vector<Triangle> &tris, bool nvtristrips)
       SetTSTriangles(tris);
 }
 
-ushort NiTriStripsData::GetStripCount() const {
-	return ushort(points.size());
+unsigned short NiTriStripsData::GetStripCount() const {
+	return (unsigned short)(points.size());
 }
 
 void NiTriStripsData::SetStripCount(int n) {
@@ -65,7 +65,7 @@ void NiTriStripsData::SetStripCount(int n) {
 }
 
 //Getters
-vector<ushort> NiTriStripsData::GetStrip( int index ) const {
+vector<unsigned short> NiTriStripsData::GetStrip( int index ) const {
 	return points[index];
 }
 
@@ -76,7 +76,7 @@ vector<Triangle> NiTriStripsData::GetTriangles() const {
 	int n = 0; // Current triangle
 
 	//Cycle through all strips
-	vector< vector<ushort> >::const_iterator it;
+	vector< vector<unsigned short> >::const_iterator it;
 	Triangle t;
 	for (it = points.begin(); it != points.end(); ++it ) {
 		//The first three values in the strip are the first triangle
@@ -91,7 +91,7 @@ vector<Triangle> NiTriStripsData::GetTriangles() const {
 		++n;
 
 		//The remaining triangles use the previous two indices as their first two indices.
-		for( uint i = 3; i < it->size(); ++i ) {
+		for( unsigned int i = 3; i < it->size(); ++i ) {
 			//Odd numbered triangles need to be reversed to keep the vertices in counter-clockwise order
 			if ( i % 2 == 0 ) {
 				t.Set( (*it)[i - 2], (*it)[i - 1], (*it)[i] );
@@ -113,20 +113,20 @@ vector<Triangle> NiTriStripsData::GetTriangles() const {
 }
 
 //Setter
-void NiTriStripsData::SetStrip( int index, const vector<ushort> & in ) {
+void NiTriStripsData::SetStrip( int index, const vector<unsigned short> & in ) {
 	points[index] = in;
 
 	//Recalculate Triangle Count
 	numTriangles = CalcTriangleCount();
 }
 
-ushort NiTriStripsData::CalcTriangleCount() const {
+unsigned short NiTriStripsData::CalcTriangleCount() const {
 
 	//Calculate number of triangles
 	//Sum of length of each strip - 2
-	ushort numTriangles = 0;
-	for ( uint i = 0; i < points.size(); ++i ) {
-		numTriangles += ushort(points[i].size() - 2);
+	unsigned short numTriangles = 0;
+	for ( unsigned int i = 0; i < points.size(); ++i ) {
+		numTriangles += (unsigned short)(points[i].size() - 2);
 	}
 
 	return numTriangles;
@@ -167,8 +167,8 @@ void NiTriStripsData::SetNvTriangles( const vector<Triangle> & in ) {
    SetStripCount(numGroups);
    for (int g=0; g<numGroups; g++) {
       if (groups[g].type == PT_STRIP) {
-         vector<Niflib::ushort> strip(groups[g].numIndices);
-         for (size_t s=0; s<groups[g].numIndices; s++)
+         vector<unsigned short> strip(groups[g].numIndices);
+         for (unsigned int s=0; s<groups[g].numIndices; s++)
             strip[s] = groups[g].indices[s];
          SetStrip(g, strip);
       }
-- 
GitLab