diff --git a/libs/xassets/xmaterialtechniqueset.cpp b/libs/xassets/xmaterialtechniqueset.cpp new file mode 100644 index 0000000..2e0d437 --- /dev/null +++ b/libs/xassets/xmaterialtechniqueset.cpp @@ -0,0 +1,63 @@ +#include "xmaterialtechniqueset.h" +#include "qdebug.h" +#include "qfiledevice.h" + +XMaterialTechniqueSet::XMaterialTechniqueSet() + : XAsset() + , mName() + , mWorldVertFormat(0) + , mRemappedTechniqueSet() + , mTechniques(26) +{ + SetType(ASSET_TYPE_TECHNIQUE_SET); + SetName("Technique Set"); +} + +XMaterialTechniqueSet::~XMaterialTechniqueSet() +{ + +} + +void XMaterialTechniqueSet::ParseData(QDataStream *aStream) +{ + qDebug() << aStream->device()->pos(); + mName.ParsePtr(aStream); + + *aStream + >> mWorldVertFormat; + + aStream->skipRawData(2); + + qint32 remappedPtr; + *aStream + >> remappedPtr; + + for (int i = 0; i < 26; i++) + { + qDebug() << aStream->device()->pos(); + XMaterialTechnique newTechnique; + newTechnique.ParsePtr(aStream); + mTechniques.append(newTechnique); + } + qDebug() << aStream->device()->pos(); + + mName.ParseData(aStream); + + for (int i = 0; i < 26; i++) + { + XMaterialTechnique newTechnique = mTechniques[i]; + newTechnique.ParseData(aStream); + } +} + +void XMaterialTechniqueSet::Clear() +{ + mName.Clear(); + mWorldVertFormat = 0; + + delete mRemappedTechniqueSet; + mRemappedTechniqueSet = new XMaterialTechniqueSet(); + + mTechniques.clear(); + mTechniques = QVector(26); +}