Advertisement
expired6978

Untitled

Jun 15th, 2013
98
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.21 KB | None | 0 0
  1. void DumpNodeChildren(NiAVObject * node)
  2. {
  3. _MESSAGE("{%s} {%s} {%X}", node->GetRTTI()->name, node->m_name, node);
  4. if(node->m_extraDataLen > 0) {
  5. gLog.Indent();
  6. for(UInt16 i = 0; i < node->m_extraDataLen; i++) {
  7. _MESSAGE("{%s} {%s} {%X}", node->m_extraData[i]->GetRTTI()->name, node->m_extraData[i]->unk08, node);
  8. }
  9. gLog.Outdent();
  10. }
  11. //DumpClass(node);
  12. NiNode * niNode = node->GetAsNiNode();
  13. if(niNode && niNode->m_children.m_emptyRunStart > 0)
  14. {
  15. gLog.Indent();
  16. for(int i = 0; i < niNode->m_children.m_emptyRunStart; i++)
  17. {
  18. NiAVObject * object = niNode->m_children.m_data[i];
  19. if(object) {
  20. NiNode * childNode = object->GetAsNiNode();
  21. NiGeometry * geometry = object->GetAsNiGeometry();
  22. if(geometry) {
  23. _MESSAGE("{%s} {%s} {%X} Geometry", object->GetRTTI()->name, object->m_name, object);
  24. BSShaderProperty * shaderProperty = niptr_cast<BSShaderProperty>(geometry->m_spEffectState);
  25. if(shaderProperty->GetRTTI() == NiRTTI_BSLightingShaderProperty)
  26. {
  27. gLog.Indent();
  28. BSLightingShaderProperty * lightingShader = (BSLightingShaderProperty *)shaderProperty;
  29. BSLightingShaderMaterial * material = (BSLightingShaderMaterial *)shaderProperty->material;
  30. for(UInt32 i = 0; i < BSTextureSet::kNumTextures; i++)
  31. {
  32. const char * texturePath = material->textureSet->GetTexturePath(i);
  33. if(texturePath)
  34. _MESSAGE("Texture %d: %s", i, texturePath);
  35. }
  36. gLog.Outdent();
  37. }
  38. if(object->m_extraDataLen > 0) {
  39. gLog.Indent();
  40. for(UInt16 i = 0; i < object->m_extraDataLen; i++) {
  41. _MESSAGE("{%s} {%s} {%X}", object->m_extraData[i]->GetRTTI()->name, object->m_extraData[i]->unk08, object);
  42. }
  43. gLog.Outdent();
  44. }
  45. } else if(childNode) {
  46. DumpNodeChildren(childNode);
  47. } else {
  48. _MESSAGE("{%s} {%s} {%X}", object->GetRTTI()->name, object->m_name, object);
  49. if(object->m_extraDataLen > 0) {
  50. gLog.Indent();
  51. for(UInt16 i = 0; i < object->m_extraDataLen; i++) {
  52. _MESSAGE("{%s} {%s} {%X}", object->m_extraData[i]->GetRTTI()->name, object->m_extraData[i]->unk08, object);
  53. }
  54. gLog.Outdent();
  55. }
  56. }
  57. }
  58. }
  59. gLog.Outdent();
  60. }
  61. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement