From 7266711002099e1c87a903d85db15f66b51745cd Mon Sep 17 00:00:00 2001 From: kaetemi Date: Sat, 18 Aug 2012 20:36:26 +0200 Subject: [PATCH] Added: #1440 Parser for ClassDirectory3 --HG-- branch : build_pipeline_v3 --- code/nel/include/nel/misc/class_id.h | 1 + code/nel/src/misc/class_id.cpp | 24 + .../tools/pipeline/max/class_directory_3.cpp | 172 ++++++++ .../tools/pipeline/max/class_directory_3.h | 117 +++++ code/nel/tools/pipeline/max/storage_value.h | 4 +- code/nel/tools/pipeline/max_dump/info.txt | 412 ++++++++++++++++++ code/nel/tools/pipeline/max_dump/main.cpp | 5 +- 7 files changed, 732 insertions(+), 3 deletions(-) create mode 100644 code/nel/tools/pipeline/max/class_directory_3.cpp create mode 100644 code/nel/tools/pipeline/max/class_directory_3.h diff --git a/code/nel/include/nel/misc/class_id.h b/code/nel/include/nel/misc/class_id.h index 5d05465ef..10235bb6c 100644 --- a/code/nel/include/nel/misc/class_id.h +++ b/code/nel/include/nel/misc/class_id.h @@ -59,6 +59,7 @@ public: inline void setB(uint32 b) { Uid = (Uid & 0xFFFFFFFF00000000L) | b; } void serial(NLMISC::IStream &s); + std::string toString() const; }; /** diff --git a/code/nel/src/misc/class_id.cpp b/code/nel/src/misc/class_id.cpp index b13bbc8d4..b4bc751f1 100644 --- a/code/nel/src/misc/class_id.cpp +++ b/code/nel/src/misc/class_id.cpp @@ -18,6 +18,9 @@ #include "nel/misc/class_id.h" +#include +#include + #include "nel/misc/stream.h" @@ -32,6 +35,27 @@ void CClassId::serial(NLMISC::IStream &s) s.serial(Uid); } +std::string CClassId::toString() const +{ + std::stringstream ss; + ss << "(0x"; + { + std::stringstream ss1; + ss1 << std::hex << std::setfill('0'); + ss1 << std::setw(8) << a(); + ss << ss1.str(); + } + ss << ", 0x"; + { + std::stringstream ss1; + ss1 << std::hex << std::setfill('0'); + ss1 << std::setw(8) << b(); + ss << ss1.str(); + } + ss << ")"; + return ss.str(); +} + } diff --git a/code/nel/tools/pipeline/max/class_directory_3.cpp b/code/nel/tools/pipeline/max/class_directory_3.cpp new file mode 100644 index 000000000..84a1fcd8d --- /dev/null +++ b/code/nel/tools/pipeline/max/class_directory_3.cpp @@ -0,0 +1,172 @@ +/** + * \file class_directory_3.cpp + * \brief CClassDirectory3 + * \date 2012-08-18 18:01GMT + * \author Jan Boon (Kaetemi) + * CClassDirectory3 + */ + +/* + * Copyright (C) 2012 by authors + * + * This file is part of RYZOM CORE PIPELINE. + * RYZOM CORE PIPELINE is free software: you can redistribute it + * and/or modify it under the terms of the GNU Affero General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * RYZOM CORE PIPELINE is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty + * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public + * License along with RYZOM CORE PIPELINE. If not, see + * . + */ + +#include +#include "class_directory_3.h" + +// STL includes + +// NeL includes +// #include + +// Project includes + +using namespace std; +// using namespace NLMISC; + +namespace PIPELINE { +namespace MAX { + +//////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////// + +CClassDirectory3::CClassDirectory3() +{ + +} + +CClassDirectory3::~CClassDirectory3() +{ + +} + +std::string CClassDirectory3::getClassName() +{ + return "ClassDirectory3"; +} + +void CClassDirectory3::toString(std::ostream &ostream, const std::string &pad) +{ + CStorageContainer::toString(ostream, pad); +} + +IStorageObject *CClassDirectory3::createChunkById(uint16 id, bool container) +{ + if (container) + { + switch (id) + { + case 0x2040: // ClassEntry + return new CClassEntry(); + } + } + return CStorageContainer::createChunkById(id, container); +} + +void CClassDirectory3::serialized(TStorageObjectContainer::iterator soit, bool container) +{ + CStorageContainer::serialized(soit, container); +} + +//////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////// + +CClassEntry::CClassEntry() +{ + +} + +CClassEntry::~CClassEntry() +{ + +} + +std::string CClassEntry::getClassName() +{ + return "ClassEntry"; +} + +void CClassEntry::toString(std::ostream &ostream, const std::string &pad) +{ + CStorageContainer::toString(ostream, pad); +} + +IStorageObject *CClassEntry::createChunkById(uint16 id, bool container) +{ + if (!container) + { + switch (id) + { + case 0x2060: // ClassDirectoryHeader + return new CClassDirectoryHeader(); + case 0x2042: // ClassName + return new CStorageValue(); + } + } + return CStorageContainer::createChunkById(id, container); +} + +void CClassEntry::serialized(TStorageObjectContainer::iterator soit, bool container) +{ + CStorageContainer::serialized(soit, container); +} + +//////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////// + +CClassDirectoryHeader::CClassDirectoryHeader() +{ + +} + +CClassDirectoryHeader::~CClassDirectoryHeader() +{ + +} + +std::string CClassDirectoryHeader::getClassName() +{ + return "ClassDirectoryHeader"; +} + +void CClassDirectoryHeader::serial(NLMISC::IStream &stream) +{ + stream.serial(DllIndex); + stream.serial(ClassID); + stream.serial(SuperClassID); +} + +void CClassDirectoryHeader::toString(std::ostream &ostream, const std::string &pad) +{ + ostream << "(" << getClassName() << ") { "; + ostream << "\n" << pad << "DllIndex: " << DllIndex; + ostream << "\n" << pad << "ClassID: " << NLMISC::toString(ClassID); + ostream << "\n" << pad << "SuperClassID: " << SuperClassID; + ostream << "} "; +} + +//////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////// + +} /* namespace MAX */ +} /* namespace PIPELINE */ + +/* end of file */ diff --git a/code/nel/tools/pipeline/max/class_directory_3.h b/code/nel/tools/pipeline/max/class_directory_3.h new file mode 100644 index 000000000..f2e396dbb --- /dev/null +++ b/code/nel/tools/pipeline/max/class_directory_3.h @@ -0,0 +1,117 @@ +/** + * \file class_directory_3.h + * \brief CClassDirectory3 + * \date 2012-08-18 18:01GMT + * \author Jan Boon (Kaetemi) + * CClassDirectory3 + */ + +/* + * Copyright (C) 2012 by authors + * + * This file is part of RYZOM CORE PIPELINE. + * RYZOM CORE PIPELINE is free software: you can redistribute it + * and/or modify it under the terms of the GNU Affero General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * RYZOM CORE PIPELINE is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty + * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public + * License along with RYZOM CORE PIPELINE. If not, see + * . + */ + +#ifndef PIPELINE_CLASS_DIRECTORY_3_H +#define PIPELINE_CLASS_DIRECTORY_3_H +#include + +// STL includes + +// NeL includes +#include + +// Project includes +#include "storage_object.h" +#include "storage_value.h" + +namespace PIPELINE { +namespace MAX { + +/** + * \brief CClassDirectory3 + * \date 2012-08-18 18:01GMT + * \author Jan Boon (Kaetemi) + * CClassDirectory3 + */ +class CClassDirectory3 : public CStorageContainer +{ +public: + CClassDirectory3(); + virtual ~CClassDirectory3(); + + // inherited + virtual std::string getClassName(); + virtual void toString(std::ostream &ostream, const std::string &pad = ""); + +protected: + virtual IStorageObject *createChunkById(uint16 id, bool container); + virtual void serialized(TStorageObjectContainer::iterator soit, bool container); + +}; /* class CClassDirectory3 */ + +/** + * \brief CClassEntry + * \date 2012-08-18 18:01GMT + * \author Jan Boon (Kaetemi) + * CClassEntry + */ +class CClassEntry : public CStorageContainer +{ +public: + CClassEntry(); + virtual ~CClassEntry(); + + // inherited + virtual std::string getClassName(); + virtual void toString(std::ostream &ostream, const std::string &pad = ""); + +protected: + virtual IStorageObject *createChunkById(uint16 id, bool container); + virtual void serialized(TStorageObjectContainer::iterator soit, bool container); + +}; /* class CClassEntry */ + +/** + * \brief CClassDirectoryHeader + * \date 2012-08-18 18:01GMT + * \author Jan Boon (Kaetemi) + * CClassDirectoryHeader + */ +class CClassDirectoryHeader : public IStorageObject +{ +public: + CClassDirectoryHeader(); + virtual ~CClassDirectoryHeader(); + + // public data + sint32 DllIndex; + NLMISC::CClassId ClassID; + uint32 SuperClassID; + + // inherited + virtual std::string getClassName(); + virtual void serial(NLMISC::IStream &stream); + virtual void toString(std::ostream &ostream, const std::string &pad = ""); + +}; /* class CClassDirectoryHeader */ + +} /* namespace MAX */ +} /* namespace PIPELINE */ + +#endif /* #ifndef PIPELINE_CLASS_DIRECTORY_3_H */ + +/* end of file */ diff --git a/code/nel/tools/pipeline/max/storage_value.h b/code/nel/tools/pipeline/max/storage_value.h index f0eab9688..396eab6b4 100644 --- a/code/nel/tools/pipeline/max/storage_value.h +++ b/code/nel/tools/pipeline/max/storage_value.h @@ -33,6 +33,7 @@ // NeL includes #include +#include // Project includes #include "storage_object.h" @@ -81,7 +82,8 @@ void CStorageValue::serial(NLMISC::IStream &stream); template void CStorageValue::toString(std::ostream &ostream, const std::string &pad) { - ostream << "(" << getClassName() << ") { " << Value << " } "; + std::string s = NLMISC::toString(Value); + ostream << "(" << getClassName() << ") { " << s << " } "; } template <> diff --git a/code/nel/tools/pipeline/max_dump/info.txt b/code/nel/tools/pipeline/max_dump/info.txt index 0cd24f236..d98eb4bf4 100644 --- a/code/nel/tools/pipeline/max_dump/info.txt +++ b/code/nel/tools/pipeline/max_dump/info.txt @@ -333,3 +333,415 @@ Scene: 190 | 00 15 00 00 00 07 00 0f 00 00 00 40 20 81 10 00 | ...........@.... 1a0 | 00 00 00 40 0e 00 15 00 00 00 08 00 0f 00 00 00 | ...@............ 1b0 | 40 00 81 10 00 00 00 00 40 0e 00 15 00 00 00 09 | @.......@....... + + + + +max 2010 +(DllDirectory) { +0x21c0: (CStorageValue) { 786432216 } +0x2038: (DllEntry) { + 0x2039: (CStorageValue) { Viewport Manager for DirectX (Autodesk) } + 0x2037: (CStorageValue) { ViewportManager.gup } } +0x2038: (DllEntry) { + 0x2039: (CStorageValue) { mental ray: Material Custom Attributes (Autodesk) } + 0x2037: (CStorageValue) { mrMaterialAttribs.gup } } +0x2038: (DllEntry) { + 0x2039: (CStorageValue) { Custom Attribute Container (Autodesk) } + 0x2037: (CStorageValue) { CustAttribContainer.dlo } } +0x2038: (DllEntry) { + 0x2039: (CStorageValue) { Standard Materials and Textures (Autodesk) } + 0x2037: (CStorageValue) { mtl.dlt } } +0x2038: (DllEntry) { + 0x2039: (CStorageValue) { Standard Samplers (Autodesk) } + 0x2037: (CStorageValue) { samplers.dlh } } +0x2038: (DllEntry) { + 0x2039: (CStorageValue) { Default Materials and Textures (Autodesk) } + 0x2037: (CStorageValue) { mtlgen.dlt } } +0x2038: (DllEntry) { + 0x2039: (CStorageValue) { ProSound - Multitrack Audio } + 0x2037: (CStorageValue) { ProSound.dlc } } +0x2038: (DllEntry) { + 0x2039: (CStorageValue) { Editable Poly Object (Autodesk) } + 0x2037: (CStorageValue) { EPoly.dlo } } +0x2038: (DllEntry) { + 0x2039: (CStorageValue) { Standard Pre-Filter Kernels (Autodesk) } + 0x2037: (CStorageValue) { kernel.dlk } } +0x2038: (DllEntry) { + 0x2039: (CStorageValue) { Default Scanline Renderer (Autodesk) } + 0x2037: (CStorageValue) { rend.dlr } } +0x2038: (DllEntry) { + 0x2039: (CStorageValue) { Standard Controllers (Autodesk) } + 0x2037: (CStorageValue) { ctrl.dlc } } +0x2038: (DllEntry) { + 0x2039: (CStorageValue) { Block Manager Utility (Autodesk) } + 0x2037: (CStorageValue) { AcadBlocks.dlu } } +0x2038: (DllEntry) { + 0x2039: (CStorageValue) { Propagation Manager Utility (Autodesk) } + 0x2037: (CStorageValue) { InstanceMgr.dlu } } +0x2038: (DllEntry) { + 0x2039: (CStorageValue) { Scene Effect Manager (Autodesk) } + 0x2037: (CStorageValue) { SceneEffectLoader.dlu } } +0x2038: (DllEntry) { + 0x2039: (CStorageValue) { Change Reaction Controller (Autodesk) } + 0x2037: (CStorageValue) { reactor.dlc } } +0x2038: (DllEntry) { + 0x2039: (CStorageValue) { ParameterEditor (Autodesk) } + 0x2037: (CStorageValue) { ParamEditor.gup } } +0x2038: (DllEntry) { + 0x2039: (CStorageValue) { Bitmap Proxies (Autodesk) } + 0x2037: (CStorageValue) { BitmapProxies.dlu } } +0x2038: (DllEntry) { + 0x2039: (CStorageValue) { Standard Bitmap Storages and Filters (Autodesk) } + 0x2037: (CStorageValue) { StorageAndFilter.bms } } +0x2038: (DllEntry) { + 0x2039: (CStorageValue) { Biped Controller (Autodesk) } + 0x2037: (CStorageValue) { biped.dlc } } } + +max 2010 +(ClassDirectory3) { +0x2040: (ClassEntry) { + 0x2060: (ClassDirectoryHeader) { + DllIndex: -1 + ClassID: (0x00000000, 0x00000082) + SuperClassID: 130} + 0x2042: (CStorageValue) { ParamBlock2 } } +0x2040: (ClassEntry) { + 0x2060: (ClassDirectoryHeader) { + DllIndex: 0 + ClassID: (0x30420c1e, 0x5a06293c) + SuperClassID: 4448} + 0x2042: (CStorageValue) { ViewportManager } } +0x2040: (ClassEntry) { + 0x2060: (ClassDirectoryHeader) { + DllIndex: 1 + ClassID: (0x25dc8980, 0x218ab459) + SuperClassID: 4448} + 0x2042: (CStorageValue) { mental ray: material custom attribute } } +0x2040: (ClassEntry) { + 0x2060: (ClassDirectoryHeader) { + DllIndex: 2 + ClassID: (0x23b708db, 0x5ddb3626) + SuperClassID: 256} + 0x2042: (CStorageValue) { CustAttribContainer } } +0x2040: (ClassEntry) { + 0x2060: (ClassDirectoryHeader) { + DllIndex: 3 + ClassID: (0x00000000, 0x00001200) + SuperClassID: 4224} + 0x2042: (CStorageValue) { Texmaps } } +0x2040: (ClassEntry) { + 0x2060: (ClassDirectoryHeader) { + DllIndex: 3 + ClassID: (0x00000000, 0x00000038) + SuperClassID: 4272} + 0x2042: (CStorageValue) { Blinn } } +0x2040: (ClassEntry) { + 0x2060: (ClassDirectoryHeader) { + DllIndex: -1 + ClassID: (0x00000000, 0x00000008) + SuperClassID: 8} + 0x2042: (CStorageValue) { ParamBlock } } +0x2040: (ClassEntry) { + 0x2060: (ClassDirectoryHeader) { + DllIndex: 4 + ClassID: (0x00000000, 0x25773211) + SuperClassID: 4368} + 0x2042: (CStorageValue) { Max 2.5 Star } } +0x2040: (ClassEntry) { + 0x2060: (ClassDirectoryHeader) { + DllIndex: 3 + ClassID: (0x00000000, 0x00000002) + SuperClassID: 3072} + 0x2042: (CStorageValue) { Standard } } +0x2040: (ClassEntry) { + 0x2060: (ClassDirectoryHeader) { + DllIndex: -1 + ClassID: (0x00000000, 0x00002007) + SuperClassID: 36867} + 0x2042: (CStorageValue) { Bezier Float } } +0x2040: (ClassEntry) { + 0x2060: (ClassDirectoryHeader) { + DllIndex: 5 + ClassID: (0x00000000, 0x00000100) + SuperClassID: 3104} + 0x2042: (CStorageValue) { Placement } } +0x2040: (ClassEntry) { + 0x2060: (ClassDirectoryHeader) { + DllIndex: 5 + ClassID: (0x00000000, 0x00000100) + SuperClassID: 3136} + 0x2042: (CStorageValue) { Output } } +0x2040: (ClassEntry) { + 0x2060: (ClassDirectoryHeader) { + DllIndex: 3 + ClassID: (0x00000000, 0x00000240) + SuperClassID: 3088} + 0x2042: (CStorageValue) { Bitmap } } +0x2040: (ClassEntry) { + 0x2060: (ClassDirectoryHeader) { + DllIndex: -2 + ClassID: (0x222b9eb9, 0x64c75fec) + SuperClassID: 3072} + 0x2042: (CStorageValue) { NeL Material } } +0x2040: (ClassEntry) { + 0x2060: (ClassDirectoryHeader) { + DllIndex: -1 + ClassID: (0x00000000, 0x00000c80) + SuperClassID: 256} + 0x2042: (CStorageValue) { Material Editor } } +0x2040: (ClassEntry) { + 0x2060: (ClassDirectoryHeader) { + DllIndex: -1 + ClassID: (0x00000000, 0x00003333) + SuperClassID: 256} + 0x2042: (CStorageValue) { MtlBaseLib } } +0x2040: (ClassEntry) { + 0x2060: (ClassDirectoryHeader) { + DllIndex: 6 + ClassID: (0x5b918e4e, 0x476fa9de) + SuperClassID: 3328} + 0x2042: (CStorageValue) { WaveMaster } } +0x2040: (ClassEntry) { + 0x2060: (ClassDirectoryHeader) { + DllIndex: 6 + ClassID: (0x5b918e4a, 0x476fa9de) + SuperClassID: 3328} + 0x2042: (CStorageValue) { ProSound } } +0x2040: (ClassEntry) { + 0x2060: (ClassDirectoryHeader) { + DllIndex: -1 + ClassID: (0x00000000, 0x00000002) + SuperClassID: 1} + 0x2042: (CStorageValue) { RootNode } } +0x2040: (ClassEntry) { + 0x2060: (ClassDirectoryHeader) { + DllIndex: -1 + ClassID: (0x00000000, 0x00002008) + SuperClassID: 36875} + 0x2042: (CStorageValue) { Bezier Position } } +0x2040: (ClassEntry) { + 0x2060: (ClassDirectoryHeader) { + DllIndex: -1 + ClassID: (0x00000000, 0x00442313) + SuperClassID: 36876} + 0x2042: (CStorageValue) { TCB Rotation } } +0x2040: (ClassEntry) { + 0x2060: (ClassDirectoryHeader) { + DllIndex: -1 + ClassID: (0x00000000, 0x00002010) + SuperClassID: 36877} + 0x2042: (CStorageValue) { Bezier Scale } } +0x2040: (ClassEntry) { + 0x2060: (ClassDirectoryHeader) { + DllIndex: -1 + ClassID: (0x00000000, 0x00002005) + SuperClassID: 36872} + 0x2042: (CStorageValue) { Position/Rotation/Scale } } +0x2040: (ClassEntry) { + 0x2060: (ClassDirectoryHeader) { + DllIndex: -1 + ClassID: (0x00000000, 0x0d9c20ff) + SuperClassID: 36880} + 0x2042: (CStorageValue) { Master Point Controller } } +0x2040: (ClassEntry) { + 0x2060: (ClassDirectoryHeader) { + DllIndex: 7 + ClassID: (0x192f6098, 0x1bf8338d) + SuperClassID: 16} + 0x2042: (CStorageValue) { Editable Poly } } +0x2040: (ClassEntry) { + 0x2060: (ClassDirectoryHeader) { + DllIndex: -1 + ClassID: (0x1dba1df0, 0x7e9858fe) + SuperClassID: 4336} + 0x2042: (CStorageValue) { Base Layer } } +0x2040: (ClassEntry) { + 0x2060: (ClassDirectoryHeader) { + DllIndex: -1 + ClassID: (0x00000000, 0x00000001) + SuperClassID: 1} + 0x2042: (CStorageValue) { Node } } +0x2040: (ClassEntry) { + 0x2060: (ClassDirectoryHeader) { + DllIndex: 8 + ClassID: (0x00000000, 0x77912301) + SuperClassID: 4256} + 0x2042: (CStorageValue) { Area } } +0x2040: (ClassEntry) { + 0x2060: (ClassDirectoryHeader) { + DllIndex: 9 + ClassID: (0x00000000, 0x00000001) + SuperClassID: 3840} + 0x2042: (CStorageValue) { Default Scanline Renderer } } +0x2040: (ClassEntry) { + 0x2060: (ClassDirectoryHeader) { + DllIndex: -1 + ClassID: (0x06546546, 0x46576167) + SuperClassID: 512} + 0x2042: (CStorageValue) { RenderElementMgr } } +0x2040: (ClassEntry) { + 0x2060: (ClassDirectoryHeader) { + DllIndex: -1 + ClassID: (0x00000000, 0x00002011) + SuperClassID: 36869} + 0x2042: (CStorageValue) { Bezier Color } } +0x2040: (ClassEntry) { + 0x2060: (ClassDirectoryHeader) { + DllIndex: -1 + ClassID: (0x00000000, 0xee448b23) + SuperClassID: 4112} + 0x2042: (CStorageValue) { RenderEnvironment } } +0x2040: (ClassEntry) { + 0x2060: (ClassDirectoryHeader) { + DllIndex: -1 + ClassID: (0x00000000, 0x00008d52) + SuperClassID: 256} + 0x2042: (CStorageValue) { NamedSelSetList } } +0x2040: (ClassEntry) { + 0x2060: (ClassDirectoryHeader) { + DllIndex: -1 + ClassID: (0x90f2ee71, 0x8d73b8aa) + SuperClassID: 512} + 0x2042: (CStorageValue) { TVNode } } +0x2040: (ClassEntry) { + 0x2060: (ClassDirectoryHeader) { + DllIndex: 10 + ClassID: (0x00000000, 0x4b4b1000) + SuperClassID: 36867} + 0x2042: (CStorageValue) { Float List } } +0x2040: (ClassEntry) { + 0x2060: (ClassDirectoryHeader) { + DllIndex: 10 + ClassID: (0x00000000, 0x4b4b1001) + SuperClassID: 36869} + 0x2042: (CStorageValue) { Point3 List } } +0x2040: (ClassEntry) { + 0x2060: (ClassDirectoryHeader) { + DllIndex: 10 + ClassID: (0x00000000, 0x4b4b1005) + SuperClassID: 36882} + 0x2042: (CStorageValue) { Point4 List } } +0x2040: (ClassEntry) { + 0x2060: (ClassDirectoryHeader) { + DllIndex: 10 + ClassID: (0x00000000, 0x4b4b1002) + SuperClassID: 36875} + 0x2042: (CStorageValue) { Position List } } +0x2040: (ClassEntry) { + 0x2060: (ClassDirectoryHeader) { + DllIndex: 10 + ClassID: (0x00000000, 0x4b4b1003) + SuperClassID: 36876} + 0x2042: (CStorageValue) { Rotation List } } +0x2040: (ClassEntry) { + 0x2060: (ClassDirectoryHeader) { + DllIndex: 10 + ClassID: (0x00000000, 0x4b4b1004) + SuperClassID: 36877} + 0x2042: (CStorageValue) { Scale List } } +0x2040: (ClassEntry) { + 0x2060: (ClassDirectoryHeader) { + DllIndex: 10 + ClassID: (0x00000000, 0x4b4b1015) + SuperClassID: 36881} + 0x2042: (CStorageValue) { Block Control } } +0x2040: (ClassEntry) { + 0x2060: (ClassDirectoryHeader) { + DllIndex: 11 + ClassID: (0x11793bed, 0x1f8c3646) + SuperClassID: 36867} + 0x2042: (CStorageValue) { Block Manager Wrapper } } +0x2040: (ClassEntry) { + 0x2060: (ClassDirectoryHeader) { + DllIndex: 12 + ClassID: (0x7620792b, 0x5a1b661e) + SuperClassID: 36867} + 0x2042: (CStorageValue) { Propagation Manager Wrapper } } +0x2040: (ClassEntry) { + 0x2060: (ClassDirectoryHeader) { + DllIndex: 13 + ClassID: (0xf4044794, 0x368d1139) + SuperClassID: 36867} + 0x2042: (CStorageValue) { Scene Effect Loader } } +0x2040: (ClassEntry) { + 0x2060: (ClassDirectoryHeader) { + DllIndex: 14 + ClassID: (0x087906d7, 0x294a389c) + SuperClassID: 256} + 0x2042: (CStorageValue) { Reaction Manager } } +0x2040: (ClassEntry) { + 0x2060: (ClassDirectoryHeader) { + DllIndex: 15 + ClassID: (0x265a2326, 0x28250b30) + SuperClassID: 4448} + 0x2042: (CStorageValue) { ParameterCollectorCA } } +0x2040: (ClassEntry) { + 0x2060: (ClassDirectoryHeader) { + DllIndex: 16 + ClassID: (0x01513165, 0x4a0c66e1) + SuperClassID: 2912} + 0x2042: (CStorageValue) { } } +0x2040: (ClassEntry) { + 0x2060: (ClassDirectoryHeader) { + DllIndex: -1 + ClassID: (0x2c1a0a7b, 0x0c6f6387) + SuperClassID: 36879} + 0x2042: (CStorageValue) { SceneAppData Latch } } +0x2040: (ClassEntry) { + 0x2060: (ClassDirectoryHeader) { + DllIndex: 17 + ClassID: (0x68c22d6f, 0x5bf94f11) + SuperClassID: 2912} + 0x2042: (CStorageValue) { BitmapPagerData } } +0x2040: (ClassEntry) { + 0x2060: (ClassDirectoryHeader) { + DllIndex: 10 + ClassID: (0x781f1430, 0x0f4871a5) + SuperClassID: 36879} + 0x2042: (CStorageValue) { MasterLayerControlManager } } +0x2040: (ClassEntry) { + 0x2060: (ClassDirectoryHeader) { + DllIndex: 18 + ClassID: (0x30935afc, 0x57a52b8c) + SuperClassID: 36879} + 0x2042: (CStorageValue) { Max Mixer Clip } } +0x2040: (ClassEntry) { + 0x2060: (ClassDirectoryHeader) { + DllIndex: -1 + ClassID: (0x00000000, 0x00000001) + SuperClassID: 4294966784} + 0x2042: (CStorageValue) { Grid Reference } } +0x2040: (ClassEntry) { + 0x2060: (ClassDirectoryHeader) { + DllIndex: -1 + ClassID: (0x00000000, 0x17356912) + SuperClassID: 4240} + 0x2042: (CStorageValue) { RenderEffects } } +0x2040: (ClassEntry) { + 0x2060: (ClassDirectoryHeader) { + DllIndex: 9 + ClassID: (0x00000000, 0x00000100) + SuperClassID: 4304} + 0x2042: (CStorageValue) { Shadow Map } } +0x2040: (ClassEntry) { + 0x2060: (ClassDirectoryHeader) { + DllIndex: -1 + ClassID: (0x51ff028e, 0x0d7374fc) + SuperClassID: 512} + 0x2042: (CStorageValue) { Layer Manager } } +0x2040: (ClassEntry) { + 0x2060: (ClassDirectoryHeader) { + DllIndex: -1 + ClassID: (0x00000000, 0x2cf03595) + SuperClassID: 256} + 0x2042: (CStorageValue) { TrackSetList } } +0x2040: (ClassEntry) { + 0x2060: (ClassDirectoryHeader) { + DllIndex: -1 + ClassID: (0x00000000, 0x00002222) + SuperClassID: 256} + 0x2042: (CStorageValue) { Scene } } } + + + diff --git a/code/nel/tools/pipeline/max_dump/main.cpp b/code/nel/tools/pipeline/max_dump/main.cpp index 0f1421ba6..011c87d61 100644 --- a/code/nel/tools/pipeline/max_dump/main.cpp +++ b/code/nel/tools/pipeline/max_dump/main.cpp @@ -19,12 +19,13 @@ #include "../max/storage_stream.h" #include "../max/storage_object.h" #include "../max/dll_directory.h" +#include "../max/class_directory_3.h" //static const char *filename = "/srv/work/database/interfaces/anims_max/cp_fy_hof_species.max"; static const char *filename = "/home/kaetemi/source/minimax/GE_Acc_MikotoBaniere.max"; //static const char *filename = "/home/kaetemi/3dsMax/scenes/test2008.max"; //static const char *filename = "/home/kaetemi/3dsMax/scenes/teapot_test_scene.max"; -static const char *streamname = "DllDirectory"; +static const char *streamname = "ClassDirectory3"; inline uint8 cleanChar(uint8 c) { @@ -311,7 +312,7 @@ int main(int argc, char **argv) //gsf_input_dump(input, 1); // just a regular hex dump of this input stream PIPELINE::MAX::CStorageStream instream(input); //dumpContainer(instream, ""); - PIPELINE::MAX::CDllDirectory ctr; + PIPELINE::MAX::CClassDirectory3 ctr; ctr.serial(instream); ctr.toString(std::cout); std::cout << "\n";