CUITileHUDText.cpp 6.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196
  1. #include "CUITileHUDText.h"
  2. #include "CFE.h"
  3. #include "FTTColour.h"
  4. #include "LOCstring.h"
  5. #include "CStoryCore.h"
  6. #include "CFTTColour.h"
  7. #include "FE2D.h"
  8. //-------------------------------------------------------------------------------------------------
  9. //0013CC98
  10. CUITileHUDText::CUITileHUDText() {
  11. }
  12. //-------------------------------------------------------------------------------------------------
  13. //0013D61E
  14. CUITileHUDText::~CUITileHUDText() {
  15. }
  16. //-------------------------------------------------------------------------------------------------
  17. //0013CD18
  18. void CUITileHUDText::AddTextDetails(EHudTextType, float) {
  19. }
  20. //-------------------------------------------------------------------------------------------------
  21. //0013CD84
  22. void CUITileHUDText::AddText(int, EHudTextType) {
  23. }
  24. //-------------------------------------------------------------------------------------------------
  25. //0013CE7C
  26. void CUITileHUDText::SetupText() {
  27. TileSetFont(0);
  28. TileSetFontScale(0.649999976f, -1.0f);
  29. return FTTFont_SetAlign(EFontAlign_0);
  30. }
  31. //-------------------------------------------------------------------------------------------------
  32. //0013CEA4
  33. void CUITileHUDText::GetTextWidth(int) {
  34. }
  35. //-------------------------------------------------------------------------------------------------
  36. //0013CED4
  37. void CUITileHUDText::AddText(wchar_t const*, EHudTextType) {
  38. }
  39. //-------------------------------------------------------------------------------------------------
  40. //0013CFD4
  41. void CUITileHUDText::FadeLastText() {
  42. }
  43. //-------------------------------------------------------------------------------------------------
  44. //0013CFF6
  45. void CUITileHUDText::ClearText() {
  46. }
  47. //-------------------------------------------------------------------------------------------------
  48. //0013D028
  49. void CUITileHUDText::SetWidthOffset(float) {
  50. }
  51. //-------------------------------------------------------------------------------------------------
  52. //0013D150
  53. void CUITileHUDText::Render() {
  54. float s18_f = SCR_WID;
  55. float s22_f = f_16C;
  56. float s24_f = field_1ac;
  57. SetupText();
  58. float s0_f = s18_f - s22_f;
  59. float s26_f = -60.0f;
  60. float s16_f = 0.5f;
  61. s22_f -= s24_f;
  62. float s17_f = 40.0f;
  63. s18_f = 30.0f;
  64. float s23_f = 1.29999995f;
  65. float s28_f = 4.0f;
  66. float s30_f = 15.0f;
  67. float r10_f = 0.0f;
  68. float s19_f = 13.0f;
  69. float s21_f = 0.25f;
  70. float s20_f = s0_f * s16_f;
  71. s24_f = s20_f + s18_f;
  72. wchar_t pwcbuf_sp58[0x200];
  73. // float f_sp20 = s20_f;
  74. // float f_sp1c = s22_f;
  75. int r7_i = 0;
  76. // loc_13D448
  77. while (r7_i != 4) {
  78. // loc_13D1C4
  79. if (field_1bc[r7_i].field_4 > -1 || field_1bc[r7_i].field_8[0] != 0) {
  80. // loc_13D1DC
  81. // float s2_f = field_1bc[r7_i].field_90;
  82. if (field_1bc[r7_i].field_8c > 0.0f) {
  83. float r11_f = field_1bc[r7_i].field_8c;
  84. // float s4_f = f_16C;
  85. // float s6_f = field_1ac;
  86. // s4_f += s26_f;
  87. // float s2_f = s4_f - s2_f;
  88. // //LOGE("分支1");
  89. float s25_f = f_16C + s26_f - field_1bc[r7_i].field_90 - field_1ac;
  90. // float s25_f = s2_f - s6_f;
  91. uint r0_u = FTTColour_AddPercentileAlpha(-1, r11_f);
  92. FTTFont_SetColour(r0_u, 0);
  93. int r6_i = -1;
  94. if (field_1bc[r7_i].hudTextType_94 == EHudTextType_1) {
  95. //LOGE("分支2");
  96. r6_i = -256;
  97. }
  98. if (field_1bc[r7_i].field_4 >= 0) {
  99. xsnprintf(pwcbuf_sp58, 0x200, LOCstring(field_1bc[r7_i].field_4));
  100. //LOGE("分支3");
  101. } else {
  102. // loc_13D24A
  103. CStoryCore::ProcessText(pwcbuf_sp58, 0x200,
  104. LOCstringSD(field_1bc[r7_i].field_8), -1);
  105. //LOGE("分支4");
  106. }
  107. // loc_13D262
  108. // float f_sp2c=s25_f;
  109. TextDimensions textDimensions_sp50 =
  110. TileGetTextDimsWrap(s25_f, pwcbuf_sp58);
  111. s25_f = textDimensions_sp50.field_4;
  112. // int sp28 = r6_i;
  113. r0_u = XMixCol(r6_i, 0xFF000000, 0.349999994f);
  114. s25_f += s18_f;
  115. s0_f = s25_f + s28_f;
  116. FETU_DrawBoxRoundedOutline(s20_f, field_1bc[r7_i].field_0, s22_f, s0_f,
  117. r0_u, r10_f, r10_f, r10_f, 3);
  118. //sp28=r6
  119. r0_u = FTTColour_AddPercentileAlpha(0xA0282828, r11_f);
  120. FETU_DrawBoxRounded(s20_f, field_1bc[r7_i].field_0, s22_f, s25_f, r0_u,
  121. r10_f, r10_f, r10_f, 3);
  122. // float f_sp24 = field_1bc[r7_i].field_0;
  123. r0_u = FTTColour_AddPercentileAlpha(r6_i, r11_f);
  124. FETU_DrawBoxRounded(s20_f, field_1bc[r7_i].field_0,
  125. field_1bc[r7_i].field_90, s25_f, r0_u, r10_f, r10_f,
  126. r10_f, 4);
  127. //0013D30C
  128. s0_f = f_178;
  129. float s2_f = f_17C;
  130. float s4_f = f_180;
  131. float s8_f = field_1bc[r7_i].field_90;
  132. float s10_f = field_1bc[r7_i].field_0;
  133. s0_f = s10_f + s30_f;
  134. s2_f = s24_f + s8_f;
  135. FTTFont_PrintWrapRotUnicode(
  136. s2_f, s0_f, EFontWrapType_2,
  137. f_16C + s26_f - field_1bc[r7_i].field_90 - field_1ac, SCR_HEI,
  138. f_178, f_17C, f_180, pwcbuf_sp58);
  139. r0_u = FTTColour_AddPercentileAlpha(r6_i, r11_f);
  140. float s27_f = field_1bc[r7_i].field_90;
  141. s0_f = s20_f + s27_f;
  142. s2_f = s22_f - s27_f;
  143. FETU_DrawBoxRoundedOutline(s0_f, field_1bc[r7_i].field_0, s2_f, s25_f,
  144. r0_u, r10_f, r10_f, r10_f, 8);
  145. TImage image_sp38;
  146. if (field_1bc[r7_i].hudTextType_94 != EHudTextType_1) {
  147. s27_f = s17_f;
  148. if (field_1bc[r7_i].hudTextType_94 == EHudTextType_0) {
  149. FETU_GetImage(&image_sp38, "textIcon_Mic.png", false,
  150. EFTTTexFormat_19, false, false, true);
  151. //LOGE("分支5");
  152. }
  153. } else {
  154. // loc_13D3C6
  155. FETU_GetImage(&image_sp38, "textIcon_Tutorial.png", false,
  156. EFTTTexFormat_19, false, false, true);
  157. s0_f = sinf(field_1bc[r7_i].field_98 * s19_f);
  158. s2_f = s0_f * s21_f + s23_f;
  159. s27_f = s2_f * s17_f;
  160. //LOGE("分支6");
  161. }
  162. // loc_13D402
  163. r0_u = FTTColour_AddPercentileAlpha(0xFF404040, r11_f);
  164. s0_f = field_1bc[r7_i].field_90;
  165. s2_f = s25_f - s27_f;
  166. s4_f = field_1bc[r7_i].field_0;
  167. s4_f = s2_f * s16_f + s4_f;
  168. s0_f -= s27_f;
  169. s2_f = s0_f * s16_f + s20_f;
  170. FE2D_DrawTexScaleCol(&image_sp38, s2_f, s4_f, s27_f, s27_f, r0_u);
  171. }
  172. }
  173. // loc_13D446
  174. r7_i++;
  175. // loc_13D446
  176. }
  177. // loc_13D448
  178. }
  179. //-------------------------------------------------------------------------------------------------
  180. //0013D48C
  181. EUITileAction CUITileHUDText::Process() {
  182. return EUITileAction_0;
  183. }
  184. //-------------------------------------------------------------------------------------------------
  185. //0013D618
  186. void CUITileHUDText::SetScrollSpeed(float a2) {
  187. // filed_1b8=a2;
  188. }
  189. //-------------------------------------------------------------------------------------------------