TCrowdMember.cpp 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126
  1. #include "TCrowdMember.h"
  2. #include "XSYS.h"
  3. #include "CGfxPlayer.h"
  4. #include "CGfxCharacter.h"
  5. #include "CFTTTextureManager.h"
  6. #include "CFTTMaterialManager.h"
  7. #include "CPlayerShader.h"
  8. #include "CGfxCrowd.h"
  9. #include "CPBRLighting.h"
  10. #include "CFTTModel.h"
  11. #include "CGraphicsTexLoadOptions.h"
  12. #include "CFTTBatchModelManager.h"
  13. #include "CFTTBatchModelBin.h"
  14. #include "CFTTModel.h"
  15. #include "Matrix.h"
  16. #include "SAT.h"
  17. #include "TAABB.h"
  18. #include "global_func.h"
  19. static const char* SkinWhite[] = {"skin_white", "skin_white_tan", "skin_black_light", "skin_black_med", "skin_black_dark", "skin_asian"};
  20. bool bBoneBody[44] = {0, 0, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0}; // 0033F954
  21. static int dword_2FF20C[17] = {0x2, 0xB, 0x1E, 0x8, 0x1B, 0x22, 0xF, 0x12, 0xA, 0x25, 0x1D, 0x1C, 0x9, 0x6, 0x19, 0x1A, 0x7}; // 002FF20C
  22. //-------------------------------------------------------------------------------------------------------
  23. // 0019EB18 ^_- BUG
  24. //单元测试等级: 游戏运行正常
  25. //单元测试内容: 启动游戏到第1关,会被多次调用
  26. //单元测试结果: 正常
  27. //编译无栈保护选项
  28. void TCrowdMember::Setup(ECrowdMemberType e_r1, uchar uc_r2) {
  29. #if 0
  30. #endif
  31. LOGE("%x",this);
  32. LOGE("%x",e_r1);
  33. LOGE("%x",uc_r2);
  34. }
  35. //-------------------------------------------------------------------------------------------------------
  36. // 001A40C8 ^_-
  37. //单元测试等级: 游戏运行正常
  38. //单元测试内容: 启动游戏到第1关,会被多次调用
  39. //单元测试结果: 正常
  40. //编译无栈保护选项
  41. TCrowdMember::TCrowdMember() {
  42. LOGE("TCrowdMember::TCrowdMember%x",this);
  43. }
  44. //-------------------------------------------------------------------------------------------------------
  45. // 001A46C8 ^_^
  46. //单元测试等级: 游戏运行正常
  47. //单元测试内容: 启动游戏到第1关,会被多次调用
  48. //单元测试结果: 正常
  49. //编译无栈保护选项
  50. //偏移地址不同导致代码二进制不同,但汇编代码相同
  51. TCrowdMember::~TCrowdMember() {
  52. }
  53. //-------------------------------------------------------------------------------------------------------
  54. // 0019EE90 ^_-
  55. //单元测试等级: 游戏运行正常
  56. //单元测试内容: 启动游戏到第1关,会被多次调用
  57. //单元测试结果: 正常
  58. //编译无栈保护选项
  59. CFTTMatrix32 TCrowdMember::Animate(TSATAnim_TSX* pAnim_r2, TSATAnim_TSX* pAnim_r3, unsigned int iArg_r4) {
  60. CFTTMatrix32 cTAABB_sp_4;
  61. LOGE("%x",this);
  62. LOGE("%x",pAnim_r2);
  63. LOGE("%x",pAnim_r3);
  64. LOGE("%x",iArg_r4);
  65. cTAABB_sp_4.d[0][0] =rand() ;
  66. cTAABB_sp_4.d[0][1] =rand() ;
  67. cTAABB_sp_4.d[0][2] =rand() ;
  68. cTAABB_sp_4.d[0][3] =rand() ;
  69. cTAABB_sp_4.d[1][0] =rand() ;
  70. cTAABB_sp_4.d[1][1] =rand() ;
  71. cTAABB_sp_4.d[1][2] =rand() ;
  72. cTAABB_sp_4.d[1][3] =rand() ;
  73. cTAABB_sp_4.d[2][0] =rand() ;
  74. cTAABB_sp_4.d[2][1] =rand() ;
  75. cTAABB_sp_4.d[2][2] =rand() ;
  76. cTAABB_sp_4.d[2][3] =rand() ;
  77. cTAABB_sp_4.d[3][0] =rand() ;
  78. cTAABB_sp_4.d[3][1] =rand() ;
  79. cTAABB_sp_4.d[3][2] =rand() ;
  80. cTAABB_sp_4.d[3][3] =rand() ;
  81. return cTAABB_sp_4;
  82. }
  83. //-------------------------------------------------------------------------------------------------------
  84. // 001A4704 ^_-
  85. //单元测试等级: 游戏运行正常
  86. //单元测试内容: 启动游戏到第1关,会被多次调用
  87. //单元测试结果: 正常
  88. // 这个函数在原始so中是没有栈保护的,但是其他函数是有栈保护的,模块化编译?
  89. void TCrowdMember::swap(TCrowdMember& cCrowdMember_r0, TCrowdMember& cCrowdMember_r1) {
  90. }
  91. //-------------------------------------------------------------------------------------------------------
  92. // 0019F240 ^_-
  93. //单元测试等级: 游戏运行正常
  94. //单元测试内容: 启动游戏到第1关,会被多次调用
  95. //单元测试结果: 正常
  96. //编译无栈保护选项
  97. void TCrowdMember::Render(CFTTMatrix32* viewmatrix) {
  98. LOGE("%x%x%x%x", viewmatrix->d[0][0]);
  99. LOGE("%x%x%x%x", viewmatrix->d[0][1]);
  100. LOGE("%x%x%x%x", viewmatrix->d[0][2]);
  101. LOGE("%x%x%x%x", viewmatrix->d[0][3]);
  102. LOGE("%x%x%x%x", viewmatrix->d[1][0]);
  103. LOGE("%x%x%x%x", viewmatrix->d[1][1]);
  104. LOGE("%x%x%x%x", viewmatrix->d[1][2]);
  105. LOGE("%x%x%x%x", viewmatrix->d[1][3]);
  106. LOGE("%x%x%x%x", viewmatrix->d[2][0]);
  107. LOGE("%x%x%x%x", viewmatrix->d[2][1]);
  108. LOGE("%x%x%x%x", viewmatrix->d[2][2]);
  109. LOGE("%x%x%x%x", viewmatrix->d[2][3]);
  110. LOGE("%x%x%x%x", viewmatrix->d[3][0]);
  111. LOGE("%x%x%x%x", viewmatrix->d[3][1]);
  112. LOGE("%x%x%x%x", viewmatrix->d[3][2]);
  113. LOGE("%x%x%x%x", viewmatrix->d[3][3]);
  114. }