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

ModelInfo.h 1.9KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  1. #pragma once
  2. #pragma pack(push, 1)
  3. struct PaletteRpl
  4. {
  5. PaletteRpl(DWORD _dwPaletteID, BYTE _bOffset, BYTE _bLength)
  6. {
  7. dwPaletteID = _dwPaletteID;
  8. bOffset = _bOffset;
  9. bLength = _bLength;
  10. }
  11. PaletteRpl()
  12. {
  13. dwPaletteID = 0;
  14. bOffset = 0;
  15. bLength = 0;
  16. }
  17. DWORD dwPaletteID;
  18. BYTE bOffset;
  19. BYTE bLength;
  20. };
  21. #pragma pack(pop)
  22. typedef std::list< PaletteRpl > PaletteRList;
  23. #pragma pack(push, 1)
  24. struct TextureRpl
  25. {
  26. TextureRpl(BYTE _bIndex, DWORD _dwOriginID, DWORD _dwTextureID)
  27. {
  28. bIndex = _bIndex;
  29. dwOriginID = _dwOriginID;
  30. dwTextureID = _dwTextureID;
  31. }
  32. TextureRpl()
  33. {
  34. bIndex = 0;
  35. dwOriginID = 0;
  36. dwTextureID = 0;
  37. }
  38. BYTE bIndex;
  39. DWORD dwOriginID;
  40. DWORD dwTextureID;
  41. };
  42. #pragma pack(pop)
  43. typedef std::list< TextureRpl > TextureRList;
  44. #pragma pack(push, 1)
  45. struct ModelRpl
  46. {
  47. ModelRpl(BYTE _bIndex, DWORD _dwModelID)
  48. {
  49. bIndex = _bIndex;
  50. dwModelID = _dwModelID;
  51. }
  52. ModelRpl()
  53. {
  54. bIndex = 0;
  55. dwModelID = 0;
  56. }
  57. BYTE bIndex;
  58. DWORD dwModelID;
  59. };
  60. #pragma pack(pop)
  61. typedef std::list<ModelRpl> ModelRList;
  62. struct ModelInfo
  63. {
  64. ModelInfo()
  65. {
  66. bUnknown = 0x11;
  67. dwBasePalette = 0;
  68. }
  69. ~ModelInfo()
  70. {
  71. ClearInfo();
  72. }
  73. void ClearInfo()
  74. {
  75. dwBasePalette = 0;
  76. lPalettes.clear();
  77. lTextures.clear();
  78. lModels.clear();
  79. }
  80. void MergeData(ModelInfo* pSrc, DWORD dwLayer);
  81. BinaryWriter *NetData();
  82. BYTE bUnknown;
  83. DWORD dwBasePalette;
  84. PaletteRList lPalettes;
  85. TextureRList lTextures;
  86. ModelRList lModels;
  87. inline void SetBasePalette(DWORD _dwBasePalette)
  88. {
  89. dwBasePalette = _dwBasePalette;
  90. }
  91. inline void ReplacePalette(DWORD dwPaletteID, BYTE bOffset, BYTE bLength)
  92. {
  93. lPalettes.push_back(PaletteRpl(dwPaletteID, bOffset, bLength));
  94. }
  95. inline void ReplaceTexture(BYTE bIndex, DWORD dwOriginID, DWORD dwTextureID)
  96. {
  97. lTextures.push_back(TextureRpl(bIndex, dwOriginID, dwTextureID));
  98. }
  99. inline void ReplaceModel(BYTE bIndex, DWORD dwModelID)
  100. {
  101. lModels.push_back(ModelRpl(bIndex, dwModelID));
  102. }
  103. };