CGfxCrowd.h 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142
  1. // CGfxCrowd - [2020-04-13 11:57:46]
  2. #ifndef _CGFXCROWD_H_
  3. #define _CGFXCROWD_H_
  4. #include "CFTTModel.h"
  5. #include "FTTVector.h"
  6. #include "CStaticAABBTree.h"
  7. #include "FTTUPtr.h"
  8. #include "CrowdTextureCreationData.h"
  9. #include "TDrawCall.h"
  10. #include "CGfxCrowdCardGroup.h"
  11. #include "CGfxCrowdFlagRender.h"
  12. #include "TGfxCrowdState.h"
  13. #include "CFTTRenderToTexture.h"
  14. #include "TCrowd.h"
  15. /*
  16. 0019691C CGfxCrowd::CGfxCrowd()
  17. 00196A10 CGfxCrowd::~CGfxCrowd()
  18. 001968CC CGfxCrowd::Initialise()
  19. 001968EC CGfxCrowd::Shutdown()
  20. 0019690C CGfxCrowd::Get()
  21. 00196AF8 CGfxCrowd::Shut()
  22. 00196E72 CGfxCrowd::Init()
  23. 00197140 CGfxCrowd::AddStand(CFTTModel *,CFTTMatrix32)
  24. 00199D4C CGfxCrowd::GetCapacity(CFTTModel *,CFTTMatrix32)
  25. 00199E08 CGfxCrowd::AssessDesirability(TGfxCrowdSeat &)
  26. 00199E3C CGfxCrowd::AssessDesirability(TGfxCrowdSeat &,bool)
  27. 00199ED0 CGfxCrowd::Distribute(uint)
  28. 0019CBA0 CGfxCrowd::UpdateCrowdTextures(uint)
  29. 0019F7E4 CGfxCrowd::Render()
  30. 0019F85C CGfxCrowd::RenderSteward()
  31. 0019F990 CGfxCrowd::RenderStatic()
  32. 0019FCC8 CGfxCrowd::RenderDynamic()
  33. 001A101C CGfxCrowd::Process()
  34. 001A12C8 CGfxCrowd::GetCrowdState(float &,float &,float &)
  35. 001A12E6 CGfxCrowd::GetCapacity()
  36. 001A12EA CGfxCrowd::GetTextureCreationData()
  37. 001A12F0 CGfxCrowd::GetCrowdValue(ECrowdMemberType)
  38. 001A12FC CGfxCrowd::SetCrowdValue(ECrowdMemberType,float)
  39. 0xCBD4
  40. */
  41. struct TGfxCrowdSection {
  42. int un_0;
  43. };
  44. struct TGfxCardSection {
  45. int un_0;
  46. };
  47. struct TGfxCrowdDynamic {
  48. int un_0;
  49. };
  50. /*
  51. Crowd 相关类, 重点检查 Anderson
  52. CGfxCrowd.cpp
  53. CGfxCrowdCardGroup.cpp
  54. CGfxCrowdFlagPhysics.cpp
  55. CGfxCrowdFlagRender.cpp
  56. CrowdSortB.cpp
  57. CrowdSortD.cpp
  58. CrowdTextureCreationData.cpp
  59. TCrowdMember.cpp
  60. TGfxCrowdState.cpp
  61. */
  62. class CGfxCrowd {
  63. public:
  64. CGfxCrowd(); // 0019691C
  65. ~CGfxCrowd(); // 00196A10
  66. static void Initialise(); // 001968CC
  67. static void Shutdown(); // 001968EC
  68. static CGfxCrowd *Get(); // 0019690C
  69. static void Shut(); // 00196AF8
  70. void Init(); // 00196E72
  71. void AddStand(CFTTModel *, CFTTMatrix32); // 00197140
  72. void GetCapacity(CFTTModel *, CFTTMatrix32); // 00199D4C
  73. void AssessDesirability(TGfxCrowdSeat &); // 00199E08
  74. void AssessDesirability(TGfxCrowdSeat &, bool); // 00199E3C
  75. void Distribute(uint); // 00199ED0
  76. void UpdateCrowdTextures(uint); // 0019CBA0
  77. void Render(); // 0019F7E4
  78. void RenderSteward(); // 0019F85C
  79. void RenderStatic(); // 0019F990
  80. void RenderDynamic(); // 0019FCC8
  81. void Process(); // 001A101C
  82. void GetCrowdState(float &, float &, float &); // 001A12C8
  83. int GetCapacity(); // 001A12E6
  84. CrowdTextureCreationData *GetTextureCreationData(); // 001A12EA
  85. float GetCrowdValue(ECrowdMemberType); // 001A12F0
  86. void SetCrowdValue(ECrowdMemberType, float); // 001A12FC
  87. FTTVector<TGfxCrowdSeat> vec_0;
  88. FTTVector<TGfxCrowdSeat> vec_14;
  89. FTTVector<TGfxCrowdDynamic> vec_28;
  90. FTTVector<TGfxCardSection> vec_3C;
  91. FTTVector<FTTUPtr<CGfxCrowdFlagPhysics>> vec_50;
  92. FTTVector<FTTUPtr<CGfxCrowdFlagRender>> vec_64;
  93. FTTVector<FTTUPtr<CGfxCrowdCardGroup>> vec_78;
  94. FTTUPtr<CFTTRenderHelper> aVec_8C[2];
  95. FTTUPtr<CFTTRenderHelper> tUPtr_94;
  96. FTTUPtr<CFTTRenderHelper> tUPtr_98;
  97. CFTTRenderToTexture *pRender2Tex_9C;
  98. CFTTRenderToTexture *pRender2Tex_A0;
  99. CFTTRenderToTexture *pRender2Tex_A4;
  100. FTTVector<uint> vec_A8;
  101. FTTVector<TDrawCall> vec_BC;
  102. FTTUPtr<CrowdTextureCreationData> tPtrTextureData_D0;
  103. int field_D4;
  104. int field_D8;
  105. uchar field_DC[0xBFF8]; //????????????????????????????????????????????????????? 未知
  106. int field_C0D4;
  107. FTTVector<TGfxCrowdSection> vec_C0D8;
  108. TGfxCrowdState tCrowd_C0EC[9];
  109. TGfxCrowdState tCrowd_C1A0[32][4];
  110. FTTVector<CStaticAABBTree<ushort, 16u>> vec_CBA0;
  111. bool b_CBB4;
  112. bool b_CBB5;
  113. bool b_CBB6;
  114. bool b_CBB7;
  115. float f_CBB8;
  116. uint dCrowdNewShaderID_CBBC[3]; // 00196A3C 此处可以确定是一个数组
  117. float f_CBC8[3]; // 001A12FC
  118. static CGfxCrowd *ms_pInstance;
  119. };
  120. #endif //_CGFXCROWD_H_