Added: #1440 Parser for ClassDirectory3

--HG--
branch : build_pipeline_v3
hg/feature/build_pipeline_v3
kaetemi 12 years ago
parent 8410019c50
commit 7266711002

@ -59,6 +59,7 @@ public:
inline void setB(uint32 b) { Uid = (Uid & 0xFFFFFFFF00000000L) | b; }
void serial(NLMISC::IStream &s);
std::string toString() const;
};
/**

@ -18,6 +18,9 @@
#include "nel/misc/class_id.h"
#include <sstream>
#include <iomanip>
#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();
}
}

@ -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
* <http://www.gnu.org/licenses/>.
*/
#include <nel/misc/types_nl.h>
#include "class_directory_3.h"
// STL includes
// NeL includes
// #include <nel/misc/debug.h>
// 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<ucstring>();
}
}
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 */

@ -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
* <http://www.gnu.org/licenses/>.
*/
#ifndef PIPELINE_CLASS_DIRECTORY_3_H
#define PIPELINE_CLASS_DIRECTORY_3_H
#include <nel/misc/types_nl.h>
// STL includes
// NeL includes
#include <nel/misc/class_id.h>
// 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 */

@ -33,6 +33,7 @@
// NeL includes
#include <nel/misc/ucstring.h>
#include <nel/misc/string_common.h>
// Project includes
#include "storage_object.h"
@ -81,7 +82,8 @@ void CStorageValue<ucstring>::serial(NLMISC::IStream &stream);
template <typename T>
void CStorageValue<T>::toString(std::ostream &ostream, const std::string &pad)
{
ostream << "(" << getClassName() << ") { " << Value << " } ";
std::string s = NLMISC::toString(Value);
ostream << "(" << getClassName() << ") { " << s << " } ";
}
template <>

@ -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 } } }

@ -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";

Loading…
Cancel
Save