Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void DumpNodeChildren(NiAVObject * node)
- {
- _MESSAGE("{%s} {%s} {%X}", node->GetRTTI()->name, node->m_name, node);
- if(node->m_extraDataLen > 0) {
- gLog.Indent();
- for(UInt16 i = 0; i < node->m_extraDataLen; i++) {
- _MESSAGE("{%s} {%s} {%X}", node->m_extraData[i]->GetRTTI()->name, node->m_extraData[i]->m_pcName, node);
- }
- gLog.Outdent();
- }
- //DumpClass(node);
- NiNode * niNode = node->GetAsNiNode();
- if(niNode && niNode->m_children.m_emptyRunStart > 0)
- {
- gLog.Indent();
- for(int i = 0; i < niNode->m_children.m_emptyRunStart; i++)
- {
- NiAVObject * object = niNode->m_children.m_data[i];
- if(object) {
- NiNode * childNode = object->GetAsNiNode();
- NiGeometry * geometry = object->GetAsNiGeometry();
- if(geometry) {
- _MESSAGE("{%s} {%s} {%X} Geometry", object->GetRTTI()->name, object->m_name, object);
- /*_MESSAGE("Flags: %08X", geometry->m_flags);
- if(NiGeometryData * geometryData = niptr_cast<NiGeometryData>(geometry->m_spModelData))
- _MESSAGE("GeoFlags: %08X", geometryData->m_usDataFlags);*/
- BSShaderProperty * shaderProperty = niptr_cast<BSShaderProperty>(geometry->m_spEffectState);
- if(shaderProperty->GetRTTI() == NiRTTI_BSLightingShaderProperty)
- {
- gLog.Indent();
- BSLightingShaderProperty * lightingShader = (BSLightingShaderProperty *)shaderProperty;
- BSLightingShaderMaterial * material = (BSLightingShaderMaterial *)shaderProperty->material;
- for(UInt32 i = 0; i < BSTextureSet::kNumTextures; i++)
- {
- const char * texturePath = material->textureSet->GetTexturePath(i);
- if(texturePath)
- _MESSAGE("Texture %d: %s", i, texturePath);
- //LPDIRECT3DTEXTURE9 pkD3DTexture = (LPDIRECT3DTEXTURE9)material->diffuse->rendererData->Unk_25();
- //DumpClass(pkD3DTexture, 24);
- /*std::string str("Data\\SKSE\\");
- str.append(object->m_name);
- char buff[16];
- sprintf_s(buff, "_%d", i);
- str.append(buff);
- str.append(".dds");
- //D3DXSaveTextureToFile(str.c_str(), D3DXIFF_DDS, pkD3DTexture, 0);
- SaveDDS(material->diffuse, str.c_str());*/
- }
- gLog.Outdent();
- }
- } else if(childNode) {
- DumpNodeChildren(childNode);
- } else {
- _MESSAGE("{%s} {%s} {%X}", object->GetRTTI()->name, object->m_name, object);
- }
- if(object->m_extraDataLen > 0) {
- gLog.Indent();
- for(UInt16 i = 0; i < object->m_extraDataLen; i++) {
- _MESSAGE("{%s} {%s} {%X}", object->m_extraData[i]->GetRTTI()->name, object->m_extraData[i]->m_pcName, object);
- }
- gLog.Outdent();
- }
- }
- }
- gLog.Outdent();
- }
- }
Add Comment
Please, Sign In to add comment