TCrowdMember.cpp 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  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. TAABB TCrowdMember::Animate(TSATAnim_TSX* pAnim_r2, TSATAnim_TSX* pAnim_r3, unsigned int iArg_r4) {
  60. TAABB 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.Vector32_0.float_0=rand();
  66. cTAABB_sp_4.Vector32_0.float_4=rand();
  67. cTAABB_sp_4.Vector32_0.float_8=rand();
  68. cTAABB_sp_4.Vector32_C.float_0=rand();
  69. cTAABB_sp_4.Vector32_C.float_4=rand();
  70. cTAABB_sp_4.Vector32_C.float_8=rand();
  71. return cTAABB_sp_4;
  72. }
  73. //-------------------------------------------------------------------------------------------------------
  74. // 001A4704 ^_-
  75. //单元测试等级: 游戏运行正常
  76. //单元测试内容: 启动游戏到第1关,会被多次调用
  77. //单元测试结果: 正常
  78. // 这个函数在原始so中是没有栈保护的,但是其他函数是有栈保护的,模块化编译?
  79. void TCrowdMember::swap(TCrowdMember& cCrowdMember_r0, TCrowdMember& cCrowdMember_r1) {
  80. }
  81. //-------------------------------------------------------------------------------------------------------
  82. // 0019F240 ^_-
  83. //单元测试等级: 游戏运行正常
  84. //单元测试内容: 启动游戏到第1关,会被多次调用
  85. //单元测试结果: 正常
  86. //编译无栈保护选项
  87. void TCrowdMember::Render(CFTTMatrix32* viewmatrix) {
  88. LOGE("%x%x%x%x", viewmatrix->d[0][0]);
  89. LOGE("%x%x%x%x", viewmatrix->d[0][1]);
  90. LOGE("%x%x%x%x", viewmatrix->d[0][2]);
  91. LOGE("%x%x%x%x", viewmatrix->d[0][3]);
  92. LOGE("%x%x%x%x", viewmatrix->d[1][0]);
  93. LOGE("%x%x%x%x", viewmatrix->d[1][1]);
  94. LOGE("%x%x%x%x", viewmatrix->d[1][2]);
  95. LOGE("%x%x%x%x", viewmatrix->d[1][3]);
  96. LOGE("%x%x%x%x", viewmatrix->d[2][0]);
  97. LOGE("%x%x%x%x", viewmatrix->d[2][1]);
  98. LOGE("%x%x%x%x", viewmatrix->d[2][2]);
  99. LOGE("%x%x%x%x", viewmatrix->d[2][3]);
  100. LOGE("%x%x%x%x", viewmatrix->d[3][0]);
  101. LOGE("%x%x%x%x", viewmatrix->d[3][1]);
  102. LOGE("%x%x%x%x", viewmatrix->d[3][2]);
  103. LOGE("%x%x%x%x", viewmatrix->d[3][3]);
  104. }