CFESChooseHero.cpp 8.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199
  1. #include "CFESChooseHero.h"
  2. #include "CFE.h"
  3. #include "CFTTDevice.h"
  4. #include "CFTTVector32x4.h"
  5. #include "CGFXSpec.h"
  6. #include "CGfxKits.h"
  7. #include "CGfxShadowMapManager.h"
  8. #include "CGraphicsTexLoadOptions.h"
  9. #include "CPlayerShader.h"
  10. #include "FETU.h"
  11. #include "FREE.h"
  12. #include "GFXCAMERA.h"
  13. #include "GFXRENDER.h"
  14. #include "Matrix.h"
  15. #include "SNDFE.h"
  16. #include "TGame.h"
  17. #include "XCTRL.h"
  18. #include "FE2D.h"
  19. #include "CFTTBatchModelManager.h"
  20. #include "CMessageBoxHandler.h"
  21. #include "CGfxPlayer.h"
  22. #include "CFTTCamera.h"
  23. #include "CFTTServerTime.h"
  24. #include "XSYS.h"
  25. #include "CUITileHUDText.h"
  26. #include "CFTTTextureManager.h"
  27. #include "CDataBase.h"
  28. #include "CUITileNationality.h"
  29. #include "SETUP.h"
  30. #include "memctrl.h"
  31. struct struct_CFEScreen {
  32. int vtable_ptr;
  33. CUITileManager *m_pUITileManager_4;
  34. bool m_bfield_8;
  35. int dId_C;
  36. };
  37. struct CountryInfo {
  38. const char *pc_country_code;
  39. int d_country_num;
  40. };
  41. struct SixInt {
  42. uint field_0[6];
  43. };
  44. bool CFESChooseHero::ms_bBackButtonPressed;
  45. const CountryInfo country_info_321AD4[] = {{"ES", 0xC7}, {"IT", 0xC8}, {"DE", 0xC9}, {"NL", 0xCA}, {"HR", 0xCB}, {"BR", 0xCC}, {"AR", 0xCD}, {"CZ", 0xCE}, {"PT", 0xCF}, {"TR", 0xD0}, {"FR", 0xD1}, {"RU", 0xD2}, {"CM", 0xD3}, {"GB", 0xD4}, {"GR", 0xD6}, {"GH", 0xD7}, {"EG", 0xD8}, {"UY", 0xD9}, {"CI", 0xDA}, {"MX", 0xDB}, {"PY", 0xDC}, {"NG", 0xDD}, {"US", 0xDE}, {"CO", 0xDF}, {"PL", 0xE0}, {"SE", 0xE1}, {"JP", 0xE3}, {"MA", 0xE4}, {"IE", 0xE5}, {"AU", 0xE6}, {"CL", 0xE7}, {"TN", 0xE8}, {"SN", 0xE9}, {"IR", 0XEA}, {"SA", 0xEB}, {"KR", 0xEC}, {"EC", 0xED}, {"HN", 0xEF}, {"ZA", 0xF1}, {"CR", 0xF2}, {"TT", 0xF3}, {"CA", 0xF4}, {"CN", 0xF5}, {"JM", 0xF6}, {"KP", 0xF7}, {"BB", 0xF8}, {"IN", 0xF9}, {"DZ", 0xFA}, {"SI", 0xFB}, {"RS", 0xFC}, {"DK", 0xFD}, {"SK", 0xFF}, {"CH", 0x100}, {"BE", 0x155}, {"UA", 0x164}, {"BG", 0x165}, {"RO", 0x166}, {"NO", 0X167}, {"AT", 0X168}, {"MK", 0X17C}, {"HU", 0x17F}, {"PE", 0x180}, {"SM", 0x181}, {"FI", 0x183}, {"KW", 0x185}, {"BA", 0x186}, {"IL", 0x187}, {"ME", 0x18B}, {"GE", 0x18E}, {"IS", 0x190}, {"LU", 0x194}, {"IQ", 0x1A3}, {"QA", 0x1A6}, {"HK", 0x1F9}, {"ID", 0X1FC}, {"MY", 0x1FD}, {"SG", 0x1FF}, {"TH", 0x1FA}, {"AE", 0x1FE}, {"VN", 0x1FB}, {"NZ", 0xFE}};
  46. MYSTATIC int dword_336264_mystaic[] = {0xC7, 0xC8, 0xC9, 0xCA, 0xCC, 0xCD, 0xCF, 0xD0,
  47. 0xD1, 0xD4, 0xD5, 0xDB, 0xDE, 0xE3, 0xEB, 0xEE};
  48. MYSTATIC char byte_350691_mystatic;
  49. const SixInt dword_2FE0D0[] = {{0x0, 0x0, 0x1, 0xC, 0x1, 0x1},
  50. {0x0, 0x0, 0x3, 0xC, 0x1, 0x2},
  51. {0x1, 0x1, 0x2, 0xC, 0x2, 0x1},
  52. {0x3, 0x2, 0x0, 0x6, 0x2, 0x2},
  53. {0x4, 0x3, 0x0, 0x6, 0x1, 0x0},
  54. {0x5, 0x4, 0x0, 0x7, 0x2, 0x0}};
  55. //-------------------------------------------------------------------------------------------------
  56. //001253A4 //^_- 待完成 参考https://reverseengineering.stackexchange.com/questions/4543/what-is-a-non-virtual-thunk
  57. CFESChooseHero::CFESChooseHero() {
  58. }
  59. //-------------------------------------------------------------------------------------------------
  60. //001253F0 001253F4
  61. //编译器生成的代码,不用写
  62. CFESChooseHero::~CFESChooseHero() {
  63. }
  64. //-------------------------------------------------------------------------------------------------
  65. //00125408 //^_-
  66. //单元测试等级: 测试本类成员字段的值
  67. //单元测试结果: 完全相同
  68. void CFESChooseHero::Init() {
  69. }
  70. //-------------------------------------------------------------------------------------------------
  71. //00125630 //^_^
  72. bool CFESChooseHero::UseMinimalScene() {
  73. return 0;
  74. }
  75. //-------------------------------------------------------------------------------------------------
  76. //00125648 //^_-
  77. //单元测试等级: 目测游戏表现
  78. //单元测试内容: 启动游戏到第2关(包括第2关)
  79. //单元测试结果: 正常
  80. void CFESChooseHero::SetupPlayers() {
  81. }
  82. //-------------------------------------------------------------------------------------------------
  83. //001257FC //^_^
  84. void CFESChooseHero::LocaliseCommonCountryList() {
  85. }
  86. //-------------------------------------------------------------------------------------------------
  87. //00125858 //^_-
  88. //单元测试等级: 目测游戏表现
  89. //单元测试内容: 启动游戏到第2关(包括第2关)
  90. //单元测试结果: 正常
  91. void CFESChooseHero::SetupSelectText(int d_r1_arg, float f_r2_arg, bool b_r3_arg) {
  92. }
  93. //-------------------------------------------------------------------------------------------------
  94. //001258F8 //^_^
  95. void CFESChooseHero::Exit() {
  96. }
  97. //-------------------------------------------------------------------------------------------------
  98. //0012596C //^_^
  99. void CFESChooseHero::ProcessChoosePlayer() {
  100. }
  101. //-------------------------------------------------------------------------------------------------
  102. //00125A34
  103. void CFESChooseHero::SetupNationality() {
  104. }
  105. //-------------------------------------------------------------------------------------------------
  106. //00125BFC //^_-
  107. //单元测试等级: 目测游戏表现
  108. //单元测试内容: 启动游戏到第2关(包括第2关)
  109. //单元测试结果: 正常
  110. void CFESChooseHero::ProcessPlayer() {
  111. // LOGI("CFESChooseHero::ProcessPlayer end");
  112. }
  113. //-------------------------------------------------------------------------------------------------
  114. //00125D90 //^_^
  115. void CFESChooseHero::UpdateCamera() {
  116. }
  117. //-------------------------------------------------------------------------------------------------
  118. //00125EE8 //^_-
  119. //单元测试等级: 目测游戏表现
  120. //单元测试内容: 启动游戏到第2关(包括第2关)
  121. //单元测试结果: 正常
  122. void CFESChooseHero::UpdatePosition() {
  123. }
  124. //-------------------------------------------------------------------------------------------------
  125. //00125FB8 //^_-
  126. //单元测试等级: 目测游戏表现
  127. //单元测试内容: 启动游戏到第2关(包括第2关)
  128. //单元测试结果: 正常
  129. void CFESChooseHero::Process() {
  130. // LOGI("CFESChooseHero::Process entry");
  131. //0012622C end
  132. // LOGI("CFESChooseHero::Process return 3");
  133. }
  134. //-------------------------------------------------------------------------------------------------
  135. //00126260
  136. void CFESChooseHero::ShutdownNationality() {
  137. LOGI("CFESChooseHero::ShutdownNationality: %d", this->field_450);
  138. }
  139. //-------------------------------------------------------------------------------------------------
  140. //0012627C //^_^
  141. void CFESChooseHero::ProcessNationality() {
  142. }
  143. //-------------------------------------------------------------------------------------------------
  144. //001262A2
  145. void CFESChooseHero::Render2D() {
  146. //empty
  147. }
  148. //-------------------------------------------------------------------------------------------------
  149. //001262A4 //^_-
  150. //单元测试等级: 目测游戏表现
  151. //单元测试内容: 启动游戏到第2关(包括第2关)
  152. //单元测试结果: 正常
  153. void CFESChooseHero::SetupCamera(bool b_r1_arg) {
  154. LOGI("CFESChooseHero::SetupCamera end");
  155. };
  156. //-------------------------------------------------------------------------------------------------
  157. //自己添加的函数,避免全局变量被优化没了,保证汇编相同和可以进行单元测试,整体测试的时候,这个函数可以删除
  158. void CFESChooseHeroTest(int r0) {
  159. // byte_350691_mystatic = r0;
  160. }
  161. //-------------------------------------------------------------------------------------------------
  162. //0012644C //^_-
  163. //单元测试等级: 目测游戏表现
  164. //单元测试内容: 启动游戏到第2关(包括第2关)
  165. //单元测试结果: 正常
  166. void CFESChooseHero::PreRender3D() {
  167. LOGI("CFESChooseHero::PreRender3D entry");
  168. }
  169. //-------------------------------------------------------------------------------------------------
  170. //001265F0 //^_^
  171. void CFESChooseHero::Render3D() {
  172. }
  173. //-------------------------------------------------------------------------------------------------
  174. //0012665C //^_^
  175. void CFESChooseHero::RenderScene(EGfxRenderPass egfxrenderpass_r1_arg) {
  176. }
  177. //-------------------------------------------------------------------------------------------------
  178. //00126738 //^_^
  179. void CFESChooseHero::Render2DHUD() {
  180. }
  181. //-------------------------------------------------------------------------------------------------
  182. //001268CC //未调用到
  183. void CFESChooseHero::SetNationalKit() {
  184. }
  185. //-------------------------------------------------------------------------------------------------
  186. //00126938
  187. void CFESChooseHero::BackButtonPressed() {
  188. LOGE("CFESChooseHero::BackButtonPressed");
  189. }
  190. //-------------------------------------------------------------------------------------------------