FESU.cpp 8.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182
  1. #include "FESU.h"
  2. #include "CGraphicsTexLoadOptions.h"
  3. #include "CMyProfile.h"
  4. #include "FE_Language.h"
  5. const int dword_2FE320[13] = {0, 0, 0, 1, 1, 1, 1, 2, 3, 4, 5, 6, 7};
  6. int FESU_iFont; //0035329C
  7. float g_fCurrentFontScaleX; //003532A0
  8. float g_fCurrentFontScaleY; //003532A4
  9. EFontMode FESU_eFontMode; //003532A8
  10. wchar_t sTmpCommaSeperated[256]; //003532AC
  11. //002FDE88
  12. const float flt_2FDE88[8] = {0.0277777779, 0.0277777779, 0.0277777779, 0.0199999996, 0.0199999996, 0.0199999996, 0.0199999996};
  13. //-------------------------------------------------------------------------------------------------
  14. //0014D16C //^_-
  15. //单元测试等级: 测试输入输出
  16. //单元测试结果: 0014D18A分支结果相同,其余分支结果未知
  17. int FESU_GetFontIndex(int d_r0_arg) {
  18. LOGI("FESU_GetFontIndex entry");
  19. //0014D194
  20. LOGI("FESU_GetFontIndex return 3");
  21. return 0;
  22. }
  23. //-------------------------------------------------------------------------------------------------
  24. //0014D1A0 //^_-
  25. //单元测试等级: 测试输入输出
  26. //单元测试结果: 能测试的分支输出都是相同的,没有数据的分支没有测试
  27. void FESU_GetFontDefaultScale(int d_r0_arg, float &f_r1_arg, float &f_r2_arg) {
  28. LOGI("FESU_GetFontDefaultScale entry");
  29. LOGI("FESU_GetFontDefaultScale end");
  30. }
  31. //-------------------------------------------------------------------------------------------------
  32. //0014D308 //^_-
  33. //单元测试等级: 测试输入输出
  34. //单元测试内容: 启动游戏到第2关(包括第2关)
  35. //单元测试结果: 能走到的分支,结果相同;未走到的分支在代码中已标注为"分支未测试"
  36. float FESU_SetFontScaleForWidth(wchar_t const *p_wc_r0_arg, float f_r1_arg) {
  37. LOGI("FESU_SetFontScaleForWidth entry");
  38. return 0;
  39. }
  40. //-------------------------------------------------------------------------------------------------
  41. //0014D38C
  42. void FESU_GetFontScale(float &, float &) {
  43. }
  44. //-------------------------------------------------------------------------------------------------
  45. //0014D3AC //^_^
  46. void FESU_SetFontScale(float f_r0_arg, float f_r1_arg) {
  47. LOGE("FESU_SetFontScale%f%f",f_r0_arg,f_r1_arg);
  48. }
  49. //-------------------------------------------------------------------------------------------------
  50. //0014D420 //^_- 自认为逻辑相同
  51. //单元测试等级: 无
  52. //单元测试结果: 无结果。玩了前两关游戏,函数并没有被调用到。查看IDA交叉引用,发现只有在FackBook相关的函数中被调用到
  53. float FESU_SetFontScaleForWidth(char const *pc_r0_arg, float f_r1_arg) {
  54. // LOGI("FESU_SetFontScaleForWidth entry");
  55. LOGE("FESU_SetFontScaleForWidth%p%f",pc_r0_arg,f_r1_arg);
  56. return (float)rand();
  57. }
  58. //-------------------------------------------------------------------------------------------------
  59. //0014D498 //^_-
  60. //单元测试等级: 测试输入输出
  61. //单元测试内容: 启动游戏到第6关(包括第6关)
  62. //单元测试结果: 相同
  63. //注意: 未测试的分支已标注为"分支未测试",原因是环境不支持或者IDA没有交叉引用
  64. float FESU_BalanceWithWrapWidth(wchar_t const *p_wc_r0_arg, float f_r1_arg, float f_r2_arg) {
  65. LOGI("FESU_BalanceWithWrapWidth entry");
  66. LOGE("FESU_SetFontScaleForWidth%p%f%f",p_wc_r0_arg,f_r1_arg,f_r2_arg);
  67. return (float)rand();
  68. }
  69. //-------------------------------------------------------------------------------------------------
  70. //0014D508 //^_-
  71. //单元测试等级: 测试输入输出
  72. //单元测试结果: 玩了前两关游戏,只产生一组数据,无法测试所有分支,这一组数据的测试结果相同
  73. wchar_t *FESU_GetCommaSeperatedString(long long ll_r0_r1_arg, int d_r2_arg) {
  74. LOGI("ZZFESU_GetCommaSeperatedString entry");
  75. LOGE("%lld%dFESU_GetCommaSeperatedString",ll_r0_r1_arg,d_r2_arg);
  76. return (wchar_t*)rand();
  77. }
  78. //-------------------------------------------------------------------------------------------------
  79. //0014D62C //^_^
  80. void FESU_SetFont(int d_r0_arg) {
  81. LOGE("FESU_SetFont%x",d_r0_arg);
  82. }
  83. //-------------------------------------------------------------------------------------------------
  84. //0014D658
  85. void FESU_GetFont() {
  86. }
  87. //-------------------------------------------------------------------------------------------------
  88. //0014D668 //^_^
  89. float FESU_GetFontScale() {
  90. return g_fCurrentFontScaleX;
  91. }
  92. //-------------------------------------------------------------------------------------------------
  93. //0014D678 //^_-
  94. //单元测试等级: 目测游戏表现(本可以测试输入输出的,但是进入我们的hook函数后,调用原始函数会崩溃,调用自己的函数就正常)
  95. //单元测试内容: 启动游戏到第2关(包括第2关)
  96. //单元测试结果: 正常
  97. void FESU_Capitalize(wchar_t *p_wc_r0_arg, wchar_t const *p_wc_r1_arg, int d_r2_arg) {
  98. LOGI("FESU_Capitalize entry%x%x%x",p_wc_r0_arg,p_wc_r1_arg,d_r2_arg);
  99. }
  100. //-------------------------------------------------------------------------------------------------
  101. //0014D6EC //^_-
  102. //单元测试等级: 目测游戏表现
  103. //单元测试内容: 启动游戏到第5关(包括第5关)
  104. //单元测试结果: 正常
  105. void FESU_WordsStartWithCapital(wchar_t *p_wc_r0_arg) {
  106. LOGI("FESU_WordsStartWithCapital entry");
  107. LOGI("FESU_WordsStartWithCapital end");
  108. }
  109. //-------------------------------------------------------------------------------------------------
  110. //0014D748
  111. void FESU_DrawTextDropShadowCol(wchar_t const *, float, float, uint, uint) {
  112. }
  113. //-------------------------------------------------------------------------------------------------
  114. //0014D75C
  115. void FESU_DrawTextDropShadowColOffset(wchar_t const *, float, float, uint, uint, float) {
  116. }
  117. //-------------------------------------------------------------------------------------------------
  118. //0014D7F8
  119. void FESU_ExtractInteger(wchar_t *) {
  120. }
  121. //-------------------------------------------------------------------------------------------------
  122. //0014D83C
  123. void FESU_IsAlNum(char) {
  124. }
  125. //-------------------------------------------------------------------------------------------------
  126. //0014D85C
  127. void FESU_PrintOutline(float, float, wchar_t const *, uint, uint) {
  128. }
  129. //-------------------------------------------------------------------------------------------------
  130. //0014D8E8 //^_^
  131. void FESU_FreeFonts() {
  132. }
  133. //-------------------------------------------------------------------------------------------------
  134. //0014D8F8 //^_^
  135. void FESU_LoadFonts() {
  136. }
  137. //-------------------------------------------------------------------------------------------------
  138. //0014DA58 //^_-
  139. //单元测试等级: 目测游戏表现
  140. //单元测试内容: 启动游戏到第2关(包括第2关)
  141. //单元测试结果: 正常
  142. TextDimensions FESU_DrawText(float f_r1_arg, float f_r2_arg, float f_r3_arg,
  143. float f_arg_0, wchar_t const *p_wc_arg_4, EFontAlign efontalign_arg_8,
  144. float f_arg_c, float f_arg_10) {
  145. LOGI("FESU_DrawText entry");
  146. TextDimensions textdimension_ret_value = {0};
  147. return textdimension_ret_value;
  148. }
  149. //-------------------------------------------------------------------------------------------------
  150. //0014DC2C
  151. void FESU_DrawCurveText(wchar_t const *, float, float, float) {
  152. }
  153. //-------------------------------------------------------------------------------------------------
  154. //0014DD18
  155. void FESU_RemoveSpecialCharacters(wchar_t *) {
  156. }
  157. //-------------------------------------------------------------------------------------------------
  158. //0014DE94 //^_^
  159. void FESU_PrintRotWood(float f_r0_arg, float f_r1_arg, wchar_t const *p_wc_r2_arg,
  160. float f_r3_arg, float f_arg_0, float f_arg_4) {
  161. }
  162. //-------------------------------------------------------------------------------------------------
  163. //0014DF3C //^_^
  164. void FESU_PrintRotWoodWhite(float f_r0_arg, float f_r1_arg, wchar_t const *p_wc_r2_arg, float f_r3_arg,
  165. float f_arg_0, float f_arg_4, bool b_arg_8) {
  166. }
  167. //-------------------------------------------------------------------------------------------------
  168. //0014DFE4 //^_^
  169. bool FESU_IsFontCJK() {
  170. return 0;
  171. }
  172. //-------------------------------------------------------------------------------------------------