Clone of PhatAC @ https://github.com/floaterxk/PhatAC

TurbineData.h 1.1KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. #pragma once
  2. class TurbineData;
  3. class TurbineFile;
  4. class TurbineObject;
  5. typedef TurbineData TURBINEDATA;
  6. typedef TurbineFile TURBINEFILE;
  7. typedef TurbineObject TURBINEOBJECT;
  8. typedef struct FileInfo
  9. {
  10. DWORD dwPosition;
  11. DWORD dwLength;
  12. } FILEINFO;
  13. typedef std::map<DWORD, FILEINFO> FILEMAP;
  14. typedef std::map<DWORD, TURBINEOBJECT *> OBJECTMAP;
  15. #include "TurbineFile.h"
  16. class TurbineData
  17. {
  18. public:
  19. TurbineData();
  20. virtual ~TurbineData();
  21. void Think();
  22. DWORD GetVersion();
  23. DWORD GetFileCount();
  24. FILEMAP *GetFiles();
  25. TURBINEFILE *GetFile(DWORD dwID);
  26. TURBINEOBJECT *GetObject(DWORD dwID);
  27. BOOL FileExists(DWORD dwID);
  28. protected:
  29. void LoadFile(const char* szFile);
  30. void CloseFile();
  31. void InsertObject(DWORD dwID, TURBINEOBJECT* pObject);
  32. TURBINEOBJECT *FindObject(DWORD dwID);
  33. private:
  34. std::string m_strPath;
  35. std::string m_strFile;
  36. static void FileFoundCallback(void *This, DWORD dwFileID, BTreeEntry *pEntry);
  37. void FileFoundCallbackInternal(DWORD dwFileID, BTreeEntry *pEntry);
  38. DATDisk *m_pDATDisk;
  39. DWORD m_dwVersion;
  40. FILEMAP m_mFileInfo;
  41. OBJECTMAP m_mObjects;
  42. };