diff --git a/obj/APSysData.cpp b/obj/APSysData.cpp index dfff18ab60c04954c894c56c5951e998cfb81dad..e33b4e3765b705fc22d0deb061a09238dbbd2ac7 100644 --- a/obj/APSysData.cpp +++ b/obj/APSysData.cpp @@ -11,18 +11,70 @@ APSysData::APSysData() A_P_SYS_DATA_CONSTRUCT {} APSysData::~APSysData() {} void APSysData::Read( istream& in, list<uint> link_stack, unsigned int version ) { - A_P_SYS_DATA_READ + //A_P_SYS_DATA_READ +TriBasedGeomData::Read( in, link_stack, version ); \ +ushort numVertices = ushort(vertices.size()); +NifStream( hasUnknownFloats1, in, version ); \ +if ( hasUnknownFloats1 != 0 ) { \ + unknownFloats1.resize(numVertices); \ + for (uint i1 = 0; i1 < numVertices; i1++) { \ + NifStream( unknownFloats1[i1], in, version ); \ + }; \ +}; \ +NifStream( unknownShort3, in, version ); \ +NifStream( hasUnknownFloats2, in, version ); \ +if ( hasUnknownFloats2 != 0 ) { \ + unknownFloats2.resize(numVertices); \ + for (uint i1 = 0; i1 < numVertices; i1++) { \ + NifStream( unknownFloats2[i1], in, version ); \ + }; \ +}; \ +NifStream( unknownByte1, in, version ); \ } void APSysData::Write( ostream& out, map<NiObjectRef,uint> link_map, unsigned int version ) const { - A_P_SYS_DATA_WRITE + //A_P_SYS_DATA_WRITE +TriBasedGeomData::Write( out, link_map, version ); \ +ushort numVertices = ushort(vertices.size()); +NifStream( hasUnknownFloats1, out, version ); \ +if ( hasUnknownFloats1 != 0 ) { \ + for (uint i1 = 0; i1 < numVertices; i1++) { \ + NifStream( unknownFloats1[i1], out, version ); \ + }; \ +}; \ +NifStream( unknownShort3, out, version ); \ +NifStream( hasUnknownFloats2, out, version ); \ +if ( hasUnknownFloats2 != 0 ) { \ + for (uint i1 = 0; i1 < numVertices; i1++) { \ + NifStream( unknownFloats2[i1], out, version ); \ + }; \ +}; \ +NifStream( unknownByte1, out, version ); \ } string APSysData::asString( bool verbose ) const { - A_P_SYS_DATA_STRING + //A_P_SYS_DATA_STRING +ushort numVertices = ushort(vertices.size()); +stringstream out; \ +out << TriBasedGeomData::asString(); \ +out << "Has Unknown Floats 1: " << hasUnknownFloats1 << endl; \ +if ( hasUnknownFloats1 != 0 ) { \ + for (uint i1 = 0; i1 < numVertices; i1++) { \ + out << " Unknown Floats 1[" << i1 << "]: " << unknownFloats1[i1] << endl; \ + }; \ +}; \ +out << "Unknown Short 3: " << unknownShort3 << endl; \ +out << "Has Unknown Floats 2: " << hasUnknownFloats2 << endl; \ +if ( hasUnknownFloats2 != 0 ) { \ + for (uint i1 = 0; i1 < numVertices; i1++) { \ + out << " Unknown Floats 2[" << i1 << "]: " << unknownFloats2[i1] << endl; \ + }; \ +}; \ +out << "Unknown Byte 1: " << unknownByte1 << endl; \ +return out.str(); \ } void APSysData::FixLinks( const vector<NiObjectRef> & objects, list<uint> link_stack, unsigned int version ) { - A_P_SYS_DATA_FIXLINKS + //A_P_SYS_DATA_FIXLINKS // no links } diff --git a/obj/TriBasedGeomData.h b/obj/TriBasedGeomData.h index 5cfab3529500c418af9ac10c4bf38b86470c08ef..a01568315e4009247274f08cbd01840506f94fa3 100644 --- a/obj/TriBasedGeomData.h +++ b/obj/TriBasedGeomData.h @@ -27,7 +27,7 @@ public: Vector3 Center() const; float Radius() const; -private: +protected: TRI_BASED_GEOM_DATA_MEMBERS }; #endif