Clone of Akilla's ac2d @ https://github.com/deregtd/AC2D

cWObject.h 3.5KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187
  1. #pragma once
  2. #include "cMessage.h"
  3. #include "cPoint3D.h"
  4. #include "cThread.h"
  5. #include "cModelGroup.h"
  6. class cWObject : public cLockable {
  7. public:
  8. cWObject();
  9. ~cWObject();
  10. void ParseF745(cMessage * Message);
  11. void ParseF748(cMessage * Message);
  12. void ParseF74C(cMessage * Message);
  13. void ParseF625(cMessage * Message);
  14. void AdjustStack(DWORD Count, DWORD Value);
  15. void Set229(DWORD Type, DWORD Value);
  16. void Set22D(DWORD Type, DWORD Value);
  17. void UpdatePosition(float fTimeDiff);
  18. void PlayAnimation(WORD wAnim, WORD wStance, float fPlaySpeed, bool bSetDefault);
  19. void CalcHeading();
  20. int Draw();
  21. DWORD GetGUID();
  22. cPoint3D GetPosition();
  23. stLocation * GetLocation();
  24. stMoveInfo GetMoveInfo();
  25. DWORD GetLandblock();
  26. float GetHeading();
  27. std::string GetName();
  28. DWORD GetWielder();
  29. DWORD GetObjectFlags2();
  30. DWORD GetRadarOverride();
  31. WORD GetStance();
  32. void SetVelocity(cPoint3D NewVelocity);
  33. void SetMoveVelocities(float fFB, float fStrafe, float fTurn);
  34. //for user cacheing...
  35. std::vector<stPaletteSwap> * GetPaletteSwaps()
  36. {
  37. return &palettes;
  38. }
  39. std::vector<stTextureSwap> * GetTextureSwaps()
  40. {
  41. return &textures;
  42. }
  43. std::vector<stModelSwap> * GetModelSwaps()
  44. {
  45. return &models;
  46. }
  47. WORD GetAnimCount()
  48. {
  49. return animCount;
  50. }
  51. private:
  52. void LoadAnimset();
  53. void LoadLocationHeading(float fZ);
  54. //calculated members
  55. float m_fHeading;
  56. WORD moveCount;
  57. cPoint3D CalcPosition;
  58. bool m_bMoving;
  59. cPoint3D Velocity;
  60. float fVelocityTurn, fVelocityStrafe, fVelocityFB;
  61. WORD m_wStance;
  62. bool m_bModelUpdate;
  63. cModelGroup *m_mgModel;
  64. stLocation location;
  65. struct stAnimInfo {
  66. DWORD dwAnim;
  67. DWORD dwStartFrame;
  68. DWORD dwEndFrame;
  69. float fPlaySpeed;
  70. };
  71. struct stAnimSet {
  72. union {
  73. DWORD dwID;
  74. struct {
  75. WORD wID;
  76. WORD wStance;
  77. };
  78. };
  79. DWORD dwFlags;
  80. std::vector<stAnimInfo> vAnims;
  81. };
  82. std::map<DWORD, stAnimSet> m_mAnims;
  83. std::vector<stPaletteSwap> palettes;
  84. std::vector<stTextureSwap> textures;
  85. std::vector<stModelSwap> models;
  86. //raw members
  87. DWORD GUID;
  88. WORD portalMode;
  89. WORD unknown_1;
  90. WORD f74csequence;
  91. DWORD animConfig;
  92. DWORD soundset;
  93. DWORD unknown_blue;
  94. DWORD modelNumber;
  95. DWORD wielder;
  96. DWORD wieldingSlot;
  97. struct stEquipped {
  98. DWORD equipID;
  99. DWORD equipSlot;
  100. };
  101. std::vector<stEquipped> equipped;
  102. DWORD unknown_darkbrown;
  103. DWORD unknown_brightpurple;
  104. float unknown_lightgrey;
  105. float unknown_trio1_1, unknown_trio1_2, unknown_trio1_3;
  106. float unknown_trio2_1, unknown_trio2_2, unknown_trio2_3;
  107. float unknown_trio3_1, unknown_trio3_2, unknown_trio3_3;
  108. DWORD unknown_medgrey;
  109. float unknown_bluegrey;
  110. WORD numMovements;
  111. WORD numAnimInteract;
  112. WORD numBubbleMode;
  113. WORD numJumps;
  114. WORD numPortals;
  115. WORD animCount;
  116. WORD numOverride;
  117. WORD unknown_seagreen8;
  118. WORD numLogins;
  119. // WORD unknown_seagreen10;
  120. std::string objectName;
  121. DWORD model;
  122. DWORD icon;
  123. float m_fScale;
  124. DWORD category, behavior;
  125. std::string namePlural;
  126. BYTE itemSlots, packSlots;
  127. WORD ammunition;
  128. DWORD value;
  129. DWORD unknown_v2;
  130. float approachDistance;
  131. DWORD usableOn;
  132. DWORD iconHighlight;
  133. BYTE wieldType;
  134. WORD usesLeft;
  135. WORD totalUses;
  136. WORD stackCount;
  137. WORD stackMax;
  138. DWORD container;
  139. DWORD owner;
  140. DWORD coverage1, coverage2, coverage3;
  141. BYTE unknown5;
  142. BYTE unknown_v6;
  143. WORD unknown800000;
  144. float workmanship;
  145. WORD burden;
  146. WORD associatedSpell;
  147. DWORD houseOwnerID;
  148. DWORD dwellingaccess;
  149. WORD hookTypeUnknown;
  150. WORD hookType;
  151. DWORD hookableOn, iconOverlay, iconUnderlay;
  152. WORD unknown11a;
  153. WORD unknown11b;
  154. DWORD monarch;
  155. WORD icon2;
  156. DWORD material;
  157. };