diff --git a/include/obj/NiSortAdjustNode.h b/include/obj/NiSortAdjustNode.h new file mode 100644 index 0000000000000000000000000000000000000000..7ee8882bd776d7705d3becfc6875cf673c5d9159 --- /dev/null +++ b/include/obj/NiSortAdjustNode.h @@ -0,0 +1,80 @@ +/* Copyright (c) 2006, NIF File Format Library and Tools +All rights reserved. Please see niflib.h for license. */ + +//-----------------------------------NOTICE----------------------------------// +// Some of this file is automatically filled in by a Python script. Only // +// add custom code in the designated areas or it will be overwritten during // +// the next update. // +//-----------------------------------NOTICE----------------------------------// + +#ifndef _NISORTADJUSTNODE_H_ +#define _NISORTADJUSTNODE_H_ + +//--BEGIN FILE HEAD CUSTOM CODE--// + +//--END CUSTOM CODE--// + +#include "NiNode.h" +namespace Niflib { + +class NiSortAdjustNode; +typedef Ref<NiSortAdjustNode> NiSortAdjustNodeRef; + +/*! Unknown node. Found in Loki. */ +class NiSortAdjustNode : public NiNode { +public: + /*! Constructor */ + NIFLIB_API NiSortAdjustNode(); + + /*! Destructor */ + NIFLIB_API virtual ~NiSortAdjustNode(); + + /*! + * A constant value which uniquly identifies objects of this type. + */ + NIFLIB_API static const Type TYPE; + + /*! + * A factory function used during file reading to create an instance of this type of object. + * \return A pointer to a newly allocated instance of this type of object. + */ + NIFLIB_API static NiObject * Create(); + + /*! + * Summarizes the information contained in this object in English. + * \param[in] verbose Determines whether or not detailed information about large areas of data will be printed out. + * \return A string containing a summary of the information within the object in English. This is the function that Niflyze calls to generate its analysis, so the output is the same. + */ + NIFLIB_API virtual string asString( bool verbose = false ) const; + + /*! + * Used to determine the type of a particular instance of this object. + * \return The type constant for the actual type of the object. + */ + NIFLIB_API virtual const Type & GetType() const; + + //--BEGIN MISC CUSTOM CODE--// + + //--END CUSTOM CODE--// +protected: + /*! Unknown. */ + int unknownInt1; + /*! Unknown. */ + int unknownInt2; +public: + /*! NIFLIB_HIDDEN function. For internal use only. */ + NIFLIB_HIDDEN virtual void Read( istream& in, list<unsigned int> & link_stack, const NifInfo & info ); + /*! NIFLIB_HIDDEN function. For internal use only. */ + NIFLIB_HIDDEN virtual void Write( ostream& out, const map<NiObjectRef,unsigned int> & link_map, const NifInfo & info ) const; + /*! NIFLIB_HIDDEN function. For internal use only. */ + NIFLIB_HIDDEN virtual void FixLinks( const map<unsigned int,NiObjectRef> & objects, list<unsigned int> & link_stack, const NifInfo & info ); + /*! NIFLIB_HIDDEN function. For internal use only. */ + NIFLIB_HIDDEN virtual list<NiObjectRef> GetRefs() const; +}; + +//--BEGIN FILE FOOT CUSTOM CODE--// + +//--END CUSTOM CODE--// + +} //End Niflib namespace +#endif diff --git a/niflib.vcproj b/niflib.vcproj index e48ea2ad2dac3e84ad19b1bd11c16d7a732ac320..995f65d5628f59cd8372f3c14156aec259b29d98 100644 --- a/niflib.vcproj +++ b/niflib.vcproj @@ -1511,6 +1511,10 @@ RelativePath=".\src\obj\NiSkinPartition.cpp" > </File> + <File + RelativePath=".\src\obj\NiSortAdjustNode.cpp" + > + </File> <File RelativePath=".\src\obj\NiSourceTexture.cpp" > @@ -2753,6 +2757,10 @@ RelativePath=".\include\obj\NiSkinPartition.h" > </File> + <File + RelativePath=".\include\obj\NiSortAdjustNode.h" + > + </File> <File RelativePath=".\include\obj\NiSourceTexture.h" > diff --git a/src/gen/register.cpp b/src/gen/register.cpp index f08a84434b999ee914a9d8e5e9535f2725177189..8ee0910b7836a9cb51cc3d4b497a27bcba6592cb 100644 --- a/src/gen/register.cpp +++ b/src/gen/register.cpp @@ -254,6 +254,7 @@ All rights reserved. Please see niflib.h for license. */ #include "../../include/obj/NiZBufferProperty.h" #include "../../include/obj/RootCollisionNode.h" #include "../../include/obj/NiRawImageData.h" +#include "../../include/obj/NiSortAdjustNode.h" namespace Niflib { void RegisterObjects() { @@ -506,6 +507,7 @@ namespace Niflib { ObjectRegistry::RegisterObject( "NiZBufferProperty", NiZBufferProperty::Create ); ObjectRegistry::RegisterObject( "RootCollisionNode", RootCollisionNode::Create ); ObjectRegistry::RegisterObject( "NiRawImageData", NiRawImageData::Create ); + ObjectRegistry::RegisterObject( "NiSortAdjustNode", NiSortAdjustNode::Create ); } } diff --git a/src/obj/NiSortAdjustNode.cpp b/src/obj/NiSortAdjustNode.cpp new file mode 100644 index 0000000000000000000000000000000000000000..c10c810cd04b73f782d30f2e088d96fb9f964469 --- /dev/null +++ b/src/obj/NiSortAdjustNode.cpp @@ -0,0 +1,108 @@ +/* Copyright (c) 2006, NIF File Format Library and Tools +All rights reserved. Please see niflib.h for license. */ + +//-----------------------------------NOTICE----------------------------------// +// Some of this file is automatically filled in by a Python script. Only // +// add custom code in the designated areas or it will be overwritten during // +// the next update. // +//-----------------------------------NOTICE----------------------------------// + +//--BEGIN FILE HEAD CUSTOM CODE--// + +//--END CUSTOM CODE--// + +#include "../../include/FixLink.h" +#include "../../include/ObjectRegistry.h" +#include "../../include/NIF_IO.h" +#include "../../include/obj/NiSortAdjustNode.h" +using namespace Niflib; + +//Definition of TYPE constant +const Type NiSortAdjustNode::TYPE("NiSortAdjustNode", &NiNode::TYPE ); + +NiSortAdjustNode::NiSortAdjustNode() : unknownInt1((int)1), unknownInt2((int)-1) { + //--BEGIN CONSTRUCTOR CUSTOM CODE--// + + //--END CUSTOM CODE--// +} + +NiSortAdjustNode::~NiSortAdjustNode() { + //--BEGIN DESTRUCTOR CUSTOM CODE--// + + //--END CUSTOM CODE--// +} + +const Type & NiSortAdjustNode::GetType() const { + return TYPE; +} + +NiObject * NiSortAdjustNode::Create() { + return new NiSortAdjustNode; +} + +void NiSortAdjustNode::Read( istream& in, list<unsigned int> & link_stack, const NifInfo & info ) { + //--BEGIN PRE-READ CUSTOM CODE--// + + //--END CUSTOM CODE--// + + NiNode::Read( in, link_stack, info ); + NifStream( unknownInt1, in, info ); + NifStream( unknownInt2, in, info ); + + //--BEGIN POST-READ CUSTOM CODE--// + + //--END CUSTOM CODE--// +} + +void NiSortAdjustNode::Write( ostream& out, const map<NiObjectRef,unsigned int> & link_map, const NifInfo & info ) const { + //--BEGIN PRE-WRITE CUSTOM CODE--// + + //--END CUSTOM CODE--// + + NiNode::Write( out, link_map, info ); + NifStream( unknownInt1, out, info ); + NifStream( unknownInt2, out, info ); + + //--BEGIN POST-WRITE CUSTOM CODE--// + + //--END CUSTOM CODE--// +} + +std::string NiSortAdjustNode::asString( bool verbose ) const { + //--BEGIN PRE-STRING CUSTOM CODE--// + + //--END CUSTOM CODE--// + + stringstream out; + unsigned int array_output_count = 0; + out << NiNode::asString(); + out << " Unknown Int 1: " << unknownInt1 << endl; + out << " Unknown Int 2: " << unknownInt2 << endl; + return out.str(); + + //--BEGIN POST-STRING CUSTOM CODE--// + + //--END CUSTOM CODE--// +} + +void NiSortAdjustNode::FixLinks( const map<unsigned int,NiObjectRef> & objects, list<unsigned int> & link_stack, const NifInfo & info ) { + //--BEGIN PRE-FIXLINKS CUSTOM CODE--// + + //--END CUSTOM CODE--// + + NiNode::FixLinks( objects, link_stack, info ); + + //--BEGIN POST-FIXLINKS CUSTOM CODE--// + + //--END CUSTOM CODE--// +} + +std::list<NiObjectRef> NiSortAdjustNode::GetRefs() const { + list<Ref<NiObject> > refs; + refs = NiNode::GetRefs(); + return refs; +} + +//--BEGIN MISC CUSTOM CODE--// + +//--END CUSTOM CODE--//