home *** CD-ROM | disk | FTP | other *** search
/ Xentax forum attachments archive / xentax.7z / 7662 / gttool_src_bin.7z / gttool / src / packed_file.h < prev    next >
Encoding:
C/C++ Source or Header  |  2014-08-01  |  1.3 KB  |  68 lines

  1. #pragma once
  2.  
  3. #include "common.h"
  4.  
  5. struct String;
  6. struct FileId;
  7. struct FileInfo;
  8.  
  9. class PackedFile
  10. {
  11. public:
  12.     static const uint32_t kMAGIC = 0x5B74516Eu;
  13.  
  14.     static const size_t kHEADER_SIZE = 0x14;
  15.     static const size_t kSEGMENT_SIZE = 0x800;
  16.  
  17.     PackedFile(const char* const file_path, const void* const data, const uint32_t data_size, const uint32_t segment_size);
  18.     ~PackedFile();
  19.  
  20.     void extract_entries(const char* const output_dir);
  21.  
  22.     bool get_file_info(const char* const file_path, FileInfo* const file_info) const;
  23.  
  24.     inline uint32_t name_table_offset() const
  25.     {
  26.         return name_table_offset_;
  27.     }
  28.  
  29.     inline uint32_t extension_table_offset() const
  30.     {
  31.         return extension_table_offset_;
  32.     }
  33.  
  34.     inline uint32_t file_info_table_offset() const
  35.     {
  36.         return file_info_table_offset_;
  37.     }
  38.  
  39.     uint32_t file_id_table_offset(const uint32_t index) const;
  40.  
  41.     inline uint32_t num_file_id_trees() const
  42.     {
  43.         return num_file_id_trees_;
  44.     }
  45.  
  46.     uint64_t data_offset() const;
  47.  
  48.     inline const void* file_data() const
  49.     {
  50.         return file_data_;
  51.     }
  52.  
  53.     inline const char* file_path() const
  54.     {
  55.         return file_path_;
  56.     }
  57.  
  58. private:
  59.     const char* file_path_;
  60.     char* file_data_;
  61.  
  62.     uint32_t segment_size_;
  63.     uint32_t name_table_offset_;
  64.     uint32_t extension_table_offset_;
  65.     uint32_t file_info_table_offset_;
  66.     uint32_t num_file_id_trees_;
  67. };
  68.