Advertisement
Pr0nogo

Untitled

Jul 4th, 2020
132
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.70 KB | None | 0 0
  1. // 3
  2. void __userpurge getTooltipInfo(BINDLG *a1@<eax>, BINDLG *a2)
  3. {
  4. BINDLG *v2; // edx
  5. BINDLG *v3; // edi
  6. unsigned __int16 *v4; // esi
  7. char *v5; // eax
  8. char v6; // dl
  9. unsigned __int8 v7; // bl
  10. WORD v8; // ax
  11. WORD v9; // di
  12. char *v10; // eax
  13. int v11; // eax
  14. int v12; // edi
  15. char v13; // dl
  16. __int16 v14; // ax
  17. __int16 v15; // si
  18. unsigned __int16 v16; // cx
  19. __int16 v17; // bx
  20. unsigned __int16 v18; // si
  21. __int16 v19; // dx
  22. __int16 wOreCost; // ax
  23. __int16 wGasCost; // cx
  24. int v22; // eax
  25. CUNIT *v23; // edi
  26. unsigned __int8 v24; // bl
  27. int v25; // eax
  28. __int16 v26; // ST24_2
  29. __int16 v27; // ax
  30. unsigned __int16 v28; // si
  31. unsigned __int16 v29; // si
  32. BYTE v30; // al
  33. __int16 v31; // di
  34. __int16 wEnergyCost; // dx
  35. int v33; // eax
  36. BINDLG *v34; // eax
  37. int v35; // ecx
  38. __int16 wEnergyCost2; // [esp-1Ch] [ebp-28h]
  39. __int16 wEnergyCost3; // [esp-18h] [ebp-24h]
  40. __int16 wSupplyReq; // [esp-14h] [ebp-20h]
  41. __int16 wSupplyReq2; // [esp-10h] [ebp-1Ch]
  42. __int16 wSupplyReq3; // [esp-Ch] [ebp-18h]
  43. char *v41; // [esp+4h] [ebp-8h]
  44. char v42; // [esp+17h] [ebp+Bh]
  45.  
  46. v2 = a2;
  47. v3 = a1;
  48. if ( a2 == a1 )
  49. {
  50. refreshSelectionScreen();
  51. wOreCostTooltip = 0;
  52. wGasCostTooltip = 0;
  53. wEnergyCostTooltip = 0;
  54. wEnergyCost2Tooltip = 0;
  55. wEnergyCost3Tooltip = 0;
  56. wSupplyReqTooltip = 0;
  57. wSupplyReq2Tooltip = 0;
  58. wSupplyReq3Tooltip = 0;
  59. wUpgradeLevelTooltip = 0;
  60. return;
  61. }
  62. if ( !a1 )
  63. {
  64. v34 = *(BINDLG **)&a2->field_3E;
  65. if ( !v34 )
  66. return;
  67. v35 = v34->lFlags;
  68. if ( !(v35 & 1) )
  69. {
  70. v34->lFlags = v35 | 1;
  71. updateDialog(v34);
  72. v2 = a2;
  73. }
  74. *(_DWORD *)&v2->field_3E = 0;
  75. LABEL_43:
  76. resetTooltipInfo();
  77. return;
  78. }
  79. if ( !(a1->lFlags & 8) )
  80. goto LABEL_43;
  81. v4 = (unsigned __int16 *)a1->lUser;
  82. v5 = getStatTxtString(v4[8]);
  83. v7 = v5[1];
  84. v41 = v5;
  85. if ( v6 & 2 )
  86. {
  87. *(_DWORD *)&a2->field_3E = v3;
  88. setDefaultTooltipInfo(0, 0, 0, 0, 0, 0, 0, 0);
  89. v8 = v4[9];
  90. wUpgradeLevelTooltip = 0;
  91. if ( v8 )
  92. {
  93. v9 = v8;
  94. if ( v7 == 2 )
  95. v9 = (unsigned __int8)getUpgradesLevel((unsigned __int8)activePortraitUnit->owner, v4[7]) + v8;
  96. v10 = getStatTxtString(v9);
  97. CreateUpgradeLevelTooltip((int)v10);
  98. }
  99. else
  100. {
  101. resetTooltipInfo();
  102. }
  103. }
  104. else
  105. {
  106. sub_418830(v3);
  107. v11 = v7 - 1;
  108. switch ( v7 )
  109. {
  110. case 1u:
  111. v12 = v4[7];
  112. v13 = unitsdat_StareditGroupFlags[v12];
  113. LOBYTE(v14) = ((unitsdat_SpecialAbilityFlags[v12] & USAFlag_2_in_1) != 0) + 1;
  114. if ( v13 & 4 )
  115. v15 = unitsdat_SupplyRequired[v12];
  116. else
  117. v15 = 0;
  118. v14 = (unsigned __int8)v14;
  119. v16 = v15 * (unsigned __int8)v14;
  120. if ( v13 & 2 )
  121. v17 = unitsdat_SupplyRequired[v12];
  122. else
  123. v17 = 0;
  124. v18 = v17 * v14;
  125. if ( v13 & 1 )
  126. v19 = unitsdat_SupplyRequired[v12];
  127. else
  128. v19 = 0;
  129. wSupplyReq3 = (unsigned __int16)(v19 * v14) >> 1;
  130. wOreCost = unitsdat_OreCost[v12];
  131. wSupplyReq2 = v18 >> 1;
  132. wSupplyReq = v16 >> 1;
  133. wGasCost = unitsdat_GasCost[v12];
  134. goto LABEL_36;
  135. case 2u:
  136. v23 = activePortraitUnit;
  137. LOBYTE(v11) = activePortraitUnit->owner;
  138. v24 = *((_BYTE *)v4 + 14);
  139. v42 = activePortraitUnit->owner;
  140. v25 = getUpgradeGasCost(v11, v24);
  141. v26 = v25;
  142. LOBYTE(v25) = v42;
  143. v27 = getUpgradeOreCost(v25, v24);
  144. setDefaultTooltipInfo(v27, 0, v26, 0, 0, 0, 0, 0);
  145. v28 = v4[7];
  146. if ( (unsigned __int8)upgrades_repeats[v28] <= 1u )
  147. goto LABEL_38;
  148. wUpgradeLevelTooltip = (unsigned __int8)getUpgradesLevel((unsigned __int8)v23->owner, v28) + 1;
  149. CreateUpgradeLevelTooltip((int)(v41 + 2));
  150. return;
  151. case 3u:
  152. v29 = v4[7];
  153. v30 = unitGetRace(activePortraitUnit);
  154. if ( v30 )
  155. {
  156. v31 = 0;
  157. if ( v30 == 1 )
  158. {
  159. wGasCost = techdata_EnergyCost[v29];
  160. goto LABEL_32;
  161. }
  162. }
  163. else
  164. {
  165. v31 = techdata_EnergyCost[v29];
  166. }
  167. wGasCost = 0;
  168. if ( v30 == 2 )
  169. {
  170. wSupplyReq3 = 0;
  171. wSupplyReq2 = 0;
  172. wSupplyReq = 0;
  173. wEnergyCost = techdata_EnergyCost[v29];
  174. wEnergyCost3 = v31;
  175. wEnergyCost2 = 0;
  176. wOreCost = 0;
  177. goto LABEL_37;
  178. }
  179. LABEL_32:
  180. wEnergyCost = 0;
  181. wSupplyReq3 = 0;
  182. wSupplyReq2 = 0;
  183. wSupplyReq = 0;
  184. wEnergyCost3 = v31;
  185. wEnergyCost2 = wGasCost;
  186. wGasCost = 0;
  187. wOreCost = 0;
  188. LABEL_37:
  189. setDefaultTooltipInfo(
  190. wOreCost,
  191. wEnergyCost,
  192. wGasCost,
  193. wEnergyCost2,
  194. wEnergyCost3,
  195. wSupplyReq,
  196. wSupplyReq2,
  197. wSupplyReq3);
  198. LABEL_38:
  199. wUpgradeLevelTooltip = 0;
  200. CreateUpgradeLevelTooltip((int)(v41 + 2));
  201. break;
  202. case 4u:
  203. v33 = v4[7];
  204. wGasCost = techdata_GasCost[v33];
  205. wOreCost = techdata_oreCost[v33];
  206. goto LABEL_35;
  207. case 5u:
  208. v22 = v4[7];
  209. wGasCost = unitsdat_GasCost[v22];
  210. wOreCost = unitsdat_OreCost[v22];
  211. goto LABEL_35;
  212. default:
  213. wGasCost = 0;
  214. wOreCost = 0;
  215. LABEL_35:
  216. wSupplyReq3 = 0;
  217. wSupplyReq2 = 0;
  218. wSupplyReq = 0;
  219. LABEL_36:
  220. wEnergyCost3 = 0;
  221. wEnergyCost = 0;
  222. wEnergyCost2 = 0;
  223. goto LABEL_37;
  224. }
  225. }
  226. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement