DatFile.cpp 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. #include "DatFile.h"
  2. #include "../../common/Logger.h"
  3. DatFile::DatFile(const Ogre::String& file):
  4. LzsFile(file)
  5. {
  6. }
  7. DatFile::DatFile(File *file, const u32 offset, const u32 length):
  8. LzsFile(file, offset, length)
  9. {
  10. }
  11. DatFile::DatFile(u8* buffer, const u32 offset, const u32 length):
  12. LzsFile(buffer, offset, length)
  13. {
  14. }
  15. DatFile::DatFile(File *file):
  16. LzsFile(file)
  17. {
  18. }
  19. DatFile::~DatFile()
  20. {
  21. }
  22. void
  23. DatFile::GetModelData( const int model_id, DatModelData& data )
  24. {
  25. LOGGER->Log( "\nDUMP sector 7 for model id " + HexToString( model_id, 2, '0' ) + "\n" );
  26. // get sector 7
  27. u32 offset = 0x1C + GetU32LE( 0x18 ) - GetU32LE( 0x00 ) + 4 + model_id * 8;
  28. data.face_id = GetU8( offset + 0x00 );
  29. LOGGER->Log( "face_id: 0x" + HexToString( data.face_id, 2, '0' ) + "\n" );
  30. data.number_of_bones = GetU8( offset + 0x01 );
  31. LOGGER->Log( "number_of_bones: 0x" + HexToString( data.number_of_bones, 2, '0' ) + "\n" );
  32. data.number_of_parts = GetU8( offset + 0x02 );
  33. LOGGER->Log( "number_of_parts: 0x" + HexToString( data.number_of_parts, 2, '0' ) + "\n" );
  34. data.number_of_animation = GetU8( offset + 0x03 );
  35. LOGGER->Log( "number_of_animation: 0x" + HexToString( data.number_of_animation, 2, '0' ) + "\n" );
  36. data.global_model_id = GetU8( offset + 0x07 );
  37. LOGGER->Log( "global_model_id: 0x" + HexToString( data.global_model_id, 2, '0' ) + "\n" );
  38. }