706
|
1 #include <assert.h>
|
|
2
|
|
3 #include "MM7.h"
|
|
4
|
|
5 #include "MapInfo.h"
|
|
6 #include "Game.h"
|
|
7 #include "GUIWindow.h"
|
|
8 #include "GUIFont.h"
|
|
9 #include "GUIButton.h"
|
|
10 #include "GUIProgressBar.h"
|
|
11 #include "Party.h"
|
|
12 #include "AudioPlayer.h"
|
|
13 #include "Outdoor.h"
|
|
14 #include "IndoorCamera.h"
|
|
15 #include "Overlays.h"
|
|
16 #include "Monsters.h"
|
|
17 #include "Arcomage.h"
|
|
18 #include "LOD.h"
|
|
19 #include "Actor.h"
|
|
20 #include "Allocator.h"
|
|
21 #include "Events.h"
|
|
22 #include "Viewport.h"
|
|
23 #include "FrameTableInc.h"
|
|
24 #include "Math.h"
|
|
25 #include "SpriteObject.h"
|
|
26 #include "ObjectList.h"
|
|
27 #include "Chest.h"
|
|
28 #include "PaletteManager.h"
|
|
29 #include "DecorationList.h"
|
|
30 #include "SaveLoad.h"
|
|
31 #include "stru123.h"
|
|
32 #include "Time.h"
|
|
33 #include "IconFrameTable.h"
|
|
34 #include "Awards.h"
|
|
35 #include "Autonotes.h"
|
|
36 #include "stru160.h"
|
|
37 #include "stru279.h"
|
|
38 #include "TurnEngine.h"
|
|
39 #include "stru277.h"
|
|
40 #include "Weather.h"
|
|
41 #include "stru272.h"
|
|
42 #include "stru298.h"
|
|
43 #include "StorylineTextTable.h"
|
|
44 #include "Events2D.h"
|
|
45 #include "texts.h"
|
|
46 #include "stru351.h"
|
|
47
|
|
48 #include "mm7_data.h"
|
|
49
|
|
50
|
|
51
|
|
52
|
|
53
|
|
54 //----- (00419719) --------------------------------------------------------
|
|
55 char __fastcall CharacterUI_SkillsTab_Draw(unsigned int uPlayerID)
|
|
56 {
|
|
57 unsigned int v1; // esi@1
|
|
58 Player *pPlayer; // ebp@1
|
|
59 unsigned int v3; // eax@1
|
|
60 signed int v4; // ecx@1
|
|
61 int v5; // edi@3
|
|
62 GUIWindow *v6; // ecx@3
|
|
63 int v7; // eax@4
|
|
64 GUIButton *v8; // edx@5
|
|
65 int v9; // eax@7
|
|
66 unsigned int v10; // ecx@9
|
|
67 unsigned __int16 v11; // ax@9
|
|
68 int v12; // eax@9
|
|
69 unsigned __int8 v13; // cf@12
|
|
70 unsigned __int8 v14; // zf@12
|
|
71 unsigned int v15; // eax@12
|
|
72 char *v16; // ecx@22
|
|
73 GUIWindow *v17; // ecx@33
|
|
74 int v18; // edx@34
|
|
75 GUIButton *v19; // eax@35
|
|
76 int v20; // edx@37
|
|
77 unsigned __int16 v21; // cx@39
|
|
78 unsigned int v22; // eax@39
|
|
79 int v23; // edi@39
|
|
80 unsigned int v24; // eax@42
|
|
81 char v25; // sf@52
|
|
82 char *v26; // ecx@52
|
|
83 int v27; // edi@63
|
|
84 GUIWindow *v28; // ecx@63
|
|
85 int v29; // edx@64
|
|
86 GUIButton *v30; // eax@65
|
|
87 int v31; // edx@67
|
|
88 unsigned int v32; // ecx@69
|
|
89 int v33; // eax@69
|
|
90 unsigned int v34; // eax@72
|
|
91 char *v35; // ecx@82
|
|
92 GUIWindow *v36; // ecx@93
|
|
93 int v37; // edx@94
|
|
94 GUIButton *v38; // eax@94
|
|
95 int v39; // edx@97
|
|
96 unsigned __int16 v40; // cx@99
|
|
97 unsigned int v41; // eax@99
|
|
98 int v42; // edi@99
|
|
99 unsigned int v43; // eax@102
|
|
100 char *v44; // ecx@112
|
|
101 char *v46; // [sp-Ch] [bp-4Ch]@19
|
|
102 char *v47; // [sp-Ch] [bp-4Ch]@49
|
|
103 char *v48; // [sp-Ch] [bp-4Ch]@79
|
|
104 char *v49; // [sp-Ch] [bp-4Ch]@109
|
|
105 unsigned int v50; // [sp-8h] [bp-48h]@19
|
|
106 unsigned int v51; // [sp-8h] [bp-48h]@49
|
|
107 unsigned int v52; // [sp-8h] [bp-48h]@79
|
|
108 unsigned int v53; // [sp-8h] [bp-48h]@109
|
|
109 int v54; // [sp-4h] [bp-44h]@19
|
|
110 int v55; // [sp-4h] [bp-44h]@49
|
|
111 int v56; // [sp-4h] [bp-44h]@79
|
|
112 int v57; // [sp-4h] [bp-44h]@109
|
|
113 unsigned int v58; // [sp+10h] [bp-30h]@9
|
|
114 unsigned int v59; // [sp+10h] [bp-30h]@39
|
|
115 unsigned int v60; // [sp+10h] [bp-30h]@69
|
|
116 unsigned int v61; // [sp+10h] [bp-30h]@99
|
|
117 int v62; // [sp+14h] [bp-2Ch]@4
|
|
118 int v63; // [sp+14h] [bp-2Ch]@34
|
|
119 int v64; // [sp+14h] [bp-2Ch]@64
|
|
120 int v65; // [sp+14h] [bp-2Ch]@94
|
|
121 signed int i; // [sp+18h] [bp-28h]@4
|
|
122 signed int v67; // [sp+18h] [bp-28h]@34
|
|
123 signed int v68; // [sp+18h] [bp-28h]@64
|
|
124 signed int v69; // [sp+18h] [bp-28h]@94
|
|
125 int v70; // [sp+1Ch] [bp-24h]@3
|
|
126 int v71; // [sp+1Ch] [bp-24h]@33
|
|
127 int v72; // [sp+1Ch] [bp-24h]@63
|
|
128 int v73; // [sp+1Ch] [bp-24h]@93
|
|
129 int uY; // [sp+20h] [bp-20h]@9
|
|
130 int uYa; // [sp+20h] [bp-20h]@33
|
|
131 int uYb; // [sp+20h] [bp-20h]@69
|
|
132 int uYc; // [sp+20h] [bp-20h]@93
|
|
133 unsigned int a5; // [sp+24h] [bp-1Ch]@1
|
|
134 unsigned int v79; // [sp+28h] [bp-18h]@1
|
|
135 int *v80; // [sp+2Ch] [bp-14h]@3
|
|
136 int *v81; // [sp+2Ch] [bp-14h]@33
|
|
137 int *v82; // [sp+2Ch] [bp-14h]@63
|
|
138 int *v83; // [sp+2Ch] [bp-14h]@93
|
|
139 unsigned int v84; // [sp+30h] [bp-10h]@1
|
|
140 int v85; // [sp+34h] [bp-Ch]@1
|
|
141 unsigned int v86; // [sp+38h] [bp-8h]@1
|
|
142 unsigned __int16 v87; // [sp+3Ch] [bp-4h]@9
|
|
143 char *v88; // [sp+3Ch] [bp-4h]@24
|
|
144 char *v89; // [sp+3Ch] [bp-4h]@54
|
|
145 unsigned __int16 v90; // [sp+3Ch] [bp-4h]@69
|
|
146 char *v91; // [sp+3Ch] [bp-4h]@84
|
|
147 char *v92; // [sp+3Ch] [bp-4h]@114
|
|
148
|
|
149 v1 = uPlayerID;
|
|
150 a5 = GenerateColorAsCloseAsPossibleToR8G8B8InTargetFormat(0xFFu, 0xFFu, 0x9Bu);
|
|
151 v84 = GenerateColorAsCloseAsPossibleToR8G8B8InTargetFormat(0, 0xAFu, 0xFFu);
|
|
152 v85 = pGUIWindow_CurrentMenu->pCurrentPosActiveItem;
|
|
153 v86 = GenerateColorAsCloseAsPossibleToR8G8B8InTargetFormat(0xFFu, 0, 0);
|
|
154 v79 = GenerateColorAsCloseAsPossibleToR8G8B8InTargetFormat(0, 0xFFu, 0);
|
|
155 pPlayer = &pParty->pPlayers[v1-1];
|
|
156 v3 = pIcons_LOD->LoadTexture("fr_skill", TEXTURE_16BIT_PALETTE);
|
|
157 pRenderer->DrawTextureIndexed(8u, 8u, (Texture *)(v3 != -1 ? (int)&pIcons_LOD->pTextures[v3] : 0));
|
|
158 v4 = v79;
|
|
159 if ( !pPlayer->uSkillPoints )
|
|
160 v4 = 65535;
|
|
161 sprintf(
|
|
162 pTmpBuf,
|
|
163 "%s \f%05d%s\f00000\r177%s: \f%05d%d\f00000",
|
|
164 pGlobalTXT_LocalizationStrings[206], // Skills for
|
|
165 a5,
|
|
166 pPlayer->pName,
|
|
167 pGlobalTXT_LocalizationStrings[207], // Skill Points
|
|
168 v4,
|
|
169 pPlayer->uSkillPoints);
|
|
170 pGUIWindow_CurrentMenu->DrawText(pFontArrus, 24, 18, 0, pTmpBuf, 0, 0, 0);
|
|
171 v5 = 2 * LOBYTE(pFontLucida->uFontHeight) + 13;// Weapons, Level
|
|
172 sprintf(pTmpBuf, "%s\r400%s", pGlobalTXT_LocalizationStrings[242], pGlobalTXT_LocalizationStrings[131]);
|
|
173 pGUIWindow_CurrentMenu->DrawText(pFontArrus, 24, v5, a5, pTmpBuf, 0, 0, 0);
|
|
174 v6 = pGUIWindow_CurrentMenu;
|
|
175 v70 = 0;
|
|
176 v80 = pWeaponSkills;
|
|
177 do
|
|
178 {
|
|
179 v62 = *v80;
|
|
180 v7 = 0;
|
|
181 for ( i = 0; i < (signed int)v6->uNumControls; v7 = i++ + 1 )
|
|
182 {
|
|
183 v8 = v6->pControlsHead;
|
|
184 if ( v7 > 0 )
|
|
185 {
|
|
186 do
|
|
187 {
|
|
188 v8 = v8->pNext;
|
|
189 --v7;
|
|
190 }
|
|
191 while ( v7 );
|
|
192 }
|
|
193 v9 = v8->field_1C;
|
|
194 if ( SBYTE1(v9) >= 0 )
|
|
195 continue;
|
|
196 BYTE1(v9) &= 0x7Fu;
|
|
197 if ( v9 != v62 )
|
|
198 continue;
|
|
199 v5 = v8->uY;
|
|
200 v10 = pPlayer->uSkillPoints;
|
|
201 ++v70;
|
|
202 v11 = pPlayer->pActiveSkills[v62];
|
|
203 v87 = pPlayer->pActiveSkills[v62];
|
|
204 v12 = v11 & 0x3F;
|
|
205 v58 = 0;
|
|
206 uY = v12;
|
|
207 if ( v10 >= v12 + 1 )
|
|
208 v58 = v84;
|
|
209 if ( v85 == i )
|
|
210 {
|
|
211 v13 = v10 < v12;
|
|
212 v14 = v10 == v12;
|
|
213 v15 = v86;
|
|
214 if ( !(v13 | v14) )
|
|
215 v15 = v79;
|
|
216 v58 = v15;
|
|
217 }
|
|
218 else
|
|
219 {
|
|
220 v15 = v58;
|
|
221 }
|
|
222 if ( HIBYTE(v87) & 1 )
|
|
223 {
|
|
224 if ( !v15 )
|
|
225 v15 = GenerateColorAsCloseAsPossibleToR8G8B8InTargetFormat(0xFFu, 0xFFu, 0x9Bu);
|
|
226 v54 = uY;
|
|
227 v50 = v58;
|
|
228 v46 = pGlobalTXT_LocalizationStrings[96];
|
|
229 }
|
|
230 else
|
|
231 {
|
|
232 if ( !(v87 & 0xC0) )
|
|
233 {
|
|
234 sprintf(pTmpBuf, "%s\r400%2d", pSkillNames[v62], uY);
|
|
235 pGUIWindow_CurrentMenu->DrawText(pFontLucida, 24, v5, v58, pTmpBuf, 0, 0, 0);
|
|
236 v6 = pGUIWindow_CurrentMenu;
|
|
237 continue;
|
|
238 }
|
|
239 v16 = pGlobalTXT_LocalizationStrings[432];
|
|
240 if ( (v87 & 0x80u) == 0 )
|
|
241 v16 = pGlobalTXT_LocalizationStrings[433];
|
|
242 v88 = v16;
|
|
243 if ( !v15 )
|
|
244 v15 = GenerateColorAsCloseAsPossibleToR8G8B8InTargetFormat(0xFFu, 0xFFu, 0x9Bu);
|
|
245 v54 = uY;
|
|
246 v50 = v58;
|
|
247 v46 = v88;
|
|
248 }
|
|
249 sprintf(pTmpBuf, "%s ", pSkillNames[v62], v15, v46, v50, v54);
|
|
250 pGUIWindow_CurrentMenu->DrawText(pFontLucida, 24, v5, v58, pTmpBuf, 0, 0, 0);
|
|
251 v6 = pGUIWindow_CurrentMenu;
|
|
252 }
|
|
253 ++v80;
|
|
254 }
|
|
255 while ( v80 <= &pWeaponSkills[8]);
|
|
256 if ( !v70 )
|
|
257 {
|
|
258 v5 = v5 + LOBYTE(pFontLucida->uFontHeight) - 3;
|
|
259 v6->DrawText(pFontLucida, 24, v5, 0, pGlobalTXT_LocalizationStrings[153], 0, 0, 0);
|
|
260 }
|
|
261 uYa = v5 + 2 * LOBYTE(pFontLucida->uFontHeight) - 10;
|
|
262 sprintf(pTmpBuf, "%s\r400%s", pGlobalTXT_LocalizationStrings[138], pGlobalTXT_LocalizationStrings[131]);
|
|
263 pGUIWindow_CurrentMenu->DrawText(pFontArrus, 24, uYa, a5, pTmpBuf, 0, 0, 0);
|
|
264 v17 = pGUIWindow_CurrentMenu;
|
|
265 v71 = 0;
|
|
266 v81 = pMagicSkills;
|
|
267 do
|
|
268 {
|
|
269 v18 = 0;
|
|
270 v67 = 0;
|
|
271 v63 = *v81;
|
|
272 while ( v67 < (signed int)v17->uNumControls )
|
|
273 {
|
|
274 v19 = v17->pControlsHead;
|
|
275 if ( v18 > 0 )
|
|
276 {
|
|
277 do
|
|
278 {
|
|
279 v19 = v19->pNext;
|
|
280 --v18;
|
|
281 }
|
|
282 while ( v18 );
|
|
283 }
|
|
284 v20 = v19->field_1C;
|
|
285 if ( SBYTE1(v20) >= 0 || (BYTE1(v20) &= 0x7Fu, v20 != v63) )
|
|
286 {
|
|
287 v18 = v67++ + 1;
|
|
288 continue;
|
|
289 }
|
|
290 ++v71;
|
|
291 uYa = v19->uY;
|
|
292 v21 = pPlayer->pActiveSkills[v63];
|
|
293 v22 = pPlayer->uSkillPoints;
|
|
294 v23 = pPlayer->pActiveSkills[v63] & 0x3F;
|
|
295 v59 = 0;
|
|
296 if ( v22 >= v23 + 1 )
|
|
297 v59 = v84;
|
|
298 if ( v85 == v67 )
|
|
299 {
|
|
300 v13 = v22 < v23;
|
|
301 v14 = v22 == v23;
|
|
302 v24 = v86;
|
|
303 if ( !(v13 | v14) )
|
|
304 v24 = v79;
|
|
305 v59 = v24;
|
|
306 }
|
|
307 else
|
|
308 {
|
|
309 v24 = v59;
|
|
310 }
|
|
311 if ( HIBYTE(v21) & 1 )
|
|
312 {
|
|
313 if ( !v24 )
|
|
314 v24 = GenerateColorAsCloseAsPossibleToR8G8B8InTargetFormat(0xFFu, 0xFFu, 0x9Bu);
|
|
315 v55 = v23;
|
|
316 v51 = v59;
|
|
317 v47 = pGlobalTXT_LocalizationStrings[96];
|
|
318 }
|
|
319 else
|
|
320 {
|
|
321 if ( !(v21 & 0xC0) )
|
|
322 {
|
|
323 sprintf(pTmpBuf, "%s\r400%2d", pSkillNames[v63], v23);
|
|
324 pGUIWindow_CurrentMenu->DrawText(pFontLucida, 24, uYa, v59, pTmpBuf, 0, 0, 0);
|
|
325 v17 = pGUIWindow_CurrentMenu;
|
|
326 v18 = v67++ + 1;
|
|
327 continue;
|
|
328 }
|
|
329 v25 = (v21 & 0x80u) != 0;
|
|
330 v26 = pGlobalTXT_LocalizationStrings[432];
|
|
331 if ( !v25 )
|
|
332 v26 = pGlobalTXT_LocalizationStrings[433];
|
|
333 v89 = v26;
|
|
334 if ( !v24 )
|
|
335 v24 = GenerateColorAsCloseAsPossibleToR8G8B8InTargetFormat(0xFFu, 0xFFu, 0x9Bu);
|
|
336 v55 = v23;
|
|
337 v51 = v59;
|
|
338 v47 = v89;
|
|
339 }
|
|
340 sprintf(pTmpBuf, "%s ", pSkillNames[v63], v24, v47, v51, v55);
|
|
341 //LABEL_58:
|
|
342 pGUIWindow_CurrentMenu->DrawText(pFontLucida, 24, uYa, v59, pTmpBuf, 0, 0, 0);
|
|
343 v17 = pGUIWindow_CurrentMenu;
|
|
344 //LABEL_59:
|
|
345 v18 = v67++ + 1;
|
|
346 }
|
|
347 ++v81;
|
|
348 }
|
|
349 while ( v81 <= &pMagicSkills[8]);
|
|
350 if ( !v71 )
|
|
351 v17->DrawText(
|
|
352 pFontLucida,
|
|
353 24,
|
|
354 LOBYTE(pFontLucida->uFontHeight) + uYa - 3,
|
|
355 0,
|
|
356 pGlobalTXT_LocalizationStrings[153],
|
|
357 0,
|
|
358 0,
|
|
359 0);
|
|
360 v27 = 2 * LOBYTE(pFontLucida->uFontHeight) + 13;
|
|
361 sprintf(pTmpBuf, "%s\r177%s", pGlobalTXT_LocalizationStrings[11], pGlobalTXT_LocalizationStrings[131]);
|
|
362 pGUIWindow_CurrentMenu->DrawText(pFontArrus, 248, v27, a5, pTmpBuf, 0, 0, 0);
|
|
363 v28 = pGUIWindow_CurrentMenu;
|
|
364 v72 = 0;
|
|
365 v82 = pArmorSkills;
|
|
366 do
|
|
367 {
|
|
368 v29 = 0;
|
|
369 v68 = 0;
|
|
370 v64 = *v82;
|
|
371 while ( v68 < (signed int)v28->uNumControls )
|
|
372 {
|
|
373 v30 = v28->pControlsHead;
|
|
374 if ( v29 > 0 )
|
|
375 {
|
|
376 do
|
|
377 {
|
|
378 v30 = v30->pNext;
|
|
379 --v29;
|
|
380 }
|
|
381 while ( v29 );
|
|
382 }
|
|
383 v31 = v30->field_1C;
|
|
384 if ( SBYTE1(v31) >= 0 || (BYTE1(v31) &= 0x7Fu, v31 != v64) )
|
|
385 {
|
|
386 v29 = v68++ + 1;
|
|
387 continue;
|
|
388 }
|
|
389 v27 = v30->uY;
|
|
390 ++v72;
|
|
391 v60 = 0;
|
|
392 v90 = pPlayer->pActiveSkills[v64];
|
|
393 v32 = pPlayer->uSkillPoints;
|
|
394 v33 = pPlayer->pActiveSkills[v64] & 0x3F;
|
|
395 uYb = v33;
|
|
396 if ( v32 >= v33 + 1 )
|
|
397 v60 = v84;
|
|
398 if ( v85 == v68 )
|
|
399 {
|
|
400 v13 = v32 < v33;
|
|
401 v14 = v32 == v33;
|
|
402 v34 = v86;
|
|
403 if ( !(v13 | v14) )
|
|
404 v34 = v79;
|
|
405 v60 = v34;
|
|
406 }
|
|
407 else
|
|
408 {
|
|
409 v34 = v60;
|
|
410 }
|
|
411 if ( (pPlayer->pActiveSkills[v64] >> 8) & 1 )
|
|
412 {
|
|
413 if ( !v34 )
|
|
414 v34 = GenerateColorAsCloseAsPossibleToR8G8B8InTargetFormat(0xFFu, 0xFFu, 0x9Bu);
|
|
415 v56 = uYb;
|
|
416 v52 = v60;
|
|
417 v48 = pGlobalTXT_LocalizationStrings[96];
|
|
418 }
|
|
419 else
|
|
420 {
|
|
421 if ( !(v90 & 0xC0) )
|
|
422 {
|
|
423 sprintf(pTmpBuf, "%s\r177%2d", pSkillNames[v64], uYb);
|
|
424 pGUIWindow_CurrentMenu->DrawText(pFontLucida, 248, v27, v60, pTmpBuf, 0, 0, 0);
|
|
425 v28 = pGUIWindow_CurrentMenu;
|
|
426 v29 = v68++ + 1;
|
|
427 continue;
|
|
428 }
|
|
429 v35 = pGlobalTXT_LocalizationStrings[432];
|
|
430 if ( (v90 & 0x80u) == 0 )
|
|
431 v35 = pGlobalTXT_LocalizationStrings[433];
|
|
432 v91 = v35;
|
|
433 if ( !v34 )
|
|
434 v34 = GenerateColorAsCloseAsPossibleToR8G8B8InTargetFormat(0xFFu, 0xFFu, 0x9Bu);
|
|
435 v56 = uYb;
|
|
436 v52 = v60;
|
|
437 v48 = v91;
|
|
438 }
|
|
439 sprintf(pTmpBuf, "%s ", pSkillNames[v64], v34, v48, v52, v56);
|
|
440 //LABEL_88:
|
|
441 pGUIWindow_CurrentMenu->DrawText(pFontLucida, 248, v27, v60, pTmpBuf, 0, 0, 0);
|
|
442 v28 = pGUIWindow_CurrentMenu;
|
|
443 //LABEL_89:
|
|
444 v29 = v68++ + 1;
|
|
445 }
|
|
446 ++v82;
|
|
447 }
|
|
448 while ( v82 <= &pArmorSkills[4]);
|
|
449 if ( !v72 )
|
|
450 {
|
|
451 v27 = v27 + LOBYTE(pFontLucida->uFontHeight) - 3;
|
|
452 v28->DrawText(pFontLucida, 248, v27, 0, pGlobalTXT_LocalizationStrings[153], 0, 0, 0);
|
|
453 }
|
|
454 uYc = v27 + 2 * LOBYTE(pFontLucida->uFontHeight) - 10;
|
|
455 sprintf(pTmpBuf, "%s\r177%s", pGlobalTXT_LocalizationStrings[143], pGlobalTXT_LocalizationStrings[131]);
|
|
456 pGUIWindow_CurrentMenu->DrawText(pFontArrus, 248, uYc, a5, pTmpBuf, 0, 0, 0);
|
|
457 v36 = pGUIWindow_CurrentMenu;
|
|
458 v73 = 0;
|
|
459 v83 = pMiscSkills;
|
|
460 do
|
|
461 {
|
|
462 v37 = 0;
|
|
463 v69 = 0;
|
|
464 v38 = (GUIButton *)*v83;
|
|
465 v65 = *v83;
|
|
466 while ( v69 < (signed int)v36->uNumControls )
|
|
467 {
|
|
468 v38 = v36->pControlsHead;
|
|
469 if ( v37 > 0 )
|
|
470 {
|
|
471 do
|
|
472 {
|
|
473 v38 = v38->pNext;
|
|
474 --v37;
|
|
475 }
|
|
476 while ( v37 );
|
|
477 }
|
|
478 v39 = v38->field_1C;
|
|
479 if ( SBYTE1(v39) >= 0 || (BYTE1(v39) &= 0x7Fu, v39 != v65) )
|
|
480 {
|
|
481 //goto LABEL_119;
|
|
482 v37 = v69++ + 1;
|
|
483 continue;
|
|
484 }
|
|
485 ++v73;
|
|
486 uYc = v38->uY;
|
|
487 v40 = pPlayer->pActiveSkills[v65];
|
|
488 v41 = pPlayer->uSkillPoints;
|
|
489 v42 = pPlayer->pActiveSkills[v65] & 0x3F;
|
|
490 v61 = 0;
|
|
491 if ( v41 >= v42 + 1 )
|
|
492 v61 = v84;
|
|
493 if ( v85 == v69 )
|
|
494 {
|
|
495 v13 = v41 < v42;
|
|
496 v14 = v41 == v42;
|
|
497 v43 = v86;
|
|
498 if ( !(v13 | v14) )
|
|
499 v43 = v79;
|
|
500 v61 = v43;
|
|
501 }
|
|
502 else
|
|
503 {
|
|
504 v43 = v61;
|
|
505 }
|
|
506 if ( HIBYTE(v40) & 1 )
|
|
507 {
|
|
508 if ( !v43 )
|
|
509 v43 = GenerateColorAsCloseAsPossibleToR8G8B8InTargetFormat(0xFFu, 0xFFu, 0x9Bu);
|
|
510 v57 = v42;
|
|
511 v53 = v61;
|
|
512 v49 = pGlobalTXT_LocalizationStrings[96];
|
|
513 }
|
|
514 else
|
|
515 {
|
|
516 if ( !(v40 & 0xC0) )
|
|
517 {
|
|
518 sprintf(pTmpBuf, "%s\r177%2d", pSkillNames[v65], v42);
|
|
519 LOBYTE(v38) = pGUIWindow_CurrentMenu->DrawText(pFontLucida, 248, uYc, v61, pTmpBuf, 0, 0, 0);
|
|
520 v36 = pGUIWindow_CurrentMenu;
|
|
521 v37 = v69++ + 1;
|
|
522 continue;
|
|
523 }
|
|
524 v25 = (v40 & 0x80u) != 0;
|
|
525 v44 = pGlobalTXT_LocalizationStrings[432];
|
|
526 if ( !v25 )
|
|
527 v44 = pGlobalTXT_LocalizationStrings[433];
|
|
528 v92 = v44;
|
|
529 if ( !v43 )
|
|
530 v43 = GenerateColorAsCloseAsPossibleToR8G8B8InTargetFormat(0xFFu, 0xFFu, 0x9Bu);
|
|
531 v57 = v42;
|
|
532 v53 = v61;
|
|
533 v49 = v92;
|
|
534 }
|
|
535 sprintf(pTmpBuf, "%s ", pSkillNames[v65], v43, v49, v53, v57);
|
|
536 LOBYTE(v38) = pGUIWindow_CurrentMenu->DrawText(pFontLucida, 248, uYc, v61, pTmpBuf, 0, 0, 0);
|
|
537 v36 = pGUIWindow_CurrentMenu;
|
|
538 v37 = v69++ + 1;
|
|
539 }
|
|
540 ++v83;
|
|
541 }
|
|
542 while ( v83 <= &pMiscSkills[11]);
|
|
543 if ( !v73 )
|
|
544 LOBYTE(v38) = v36->DrawText(
|
|
545 pFontLucida,
|
|
546 248,
|
|
547 LOBYTE(pFontLucida->uFontHeight) + uYc - 3,
|
|
548 0,
|
|
549 pGlobalTXT_LocalizationStrings[153],
|
|
550 0,
|
|
551 0,
|
|
552 0);
|
|
553 return (char)v38;
|
|
554 }
|
|
555
|
|
556 //----- (0041A000) --------------------------------------------------------
|
|
557 void CharacterUI_AwardsTab_Draw( unsigned int uPlayerID )
|
|
558 {
|
|
559 //unsigned int v1; // esi@1
|
|
560 unsigned int v2; // ebx@1
|
|
561 unsigned int award_texture_id; // eax@1
|
|
562 unsigned int result; // eax@1
|
|
563 int v5; // eax@15
|
|
564 char *v6; // ebx@15
|
|
565 int v7; // eax@23
|
|
566 int v8; // eax@24
|
|
567 int v9; // eax@25
|
|
568 int v10; // eax@27
|
|
569 int v11; // eax@32
|
|
570 int v12; // eax@33
|
|
571 int v13; // eax@34
|
|
572 signed int v14; // eax@43
|
|
573 unsigned int v15; // eax@43
|
|
574 int v16; // eax@43
|
|
575 int v17; // [sp-4h] [bp-D4h]@16
|
|
576 char Source[100]; // [sp+Ch] [bp-C4h]@1
|
|
577 GUIWindow a1; // [sp+70h] [bp-60h]@1
|
|
578 unsigned int v20; // [sp+C4h] [bp-Ch]@15
|
|
579 int v21; // [sp+C8h] [bp-8h]@14
|
|
580 int v22; // [sp+CCh] [bp-4h]@40
|
|
581
|
|
582 auto player = &pParty->pPlayers[uPlayerID - 1];
|
|
583 //v1 = uPlayerID;
|
|
584 v2 = GenerateColorAsCloseAsPossibleToR8G8B8InTargetFormat(0xFFu, 0xFFu, 0x9Bu);
|
|
585 award_texture_id = pIcons_LOD->LoadTexture("fr_award", TEXTURE_16BIT_PALETTE);
|
|
586 pRenderer->DrawTextureIndexed(8u, 8u, (Texture *)(award_texture_id != -1 ? &pIcons_LOD->pTextures[award_texture_id] : 0));
|
|
587 sprintfex(pTmpBuf, "%s \f%05d", pGlobalTXT_LocalizationStrings[LOCSTR_AVARDS_FOR], v2);
|
|
588 sprintfex(Source, pGlobalTXT_LocalizationStrings[LOCSTR_S_THE_S], player->pName, pClassNames[player->classType]);
|
|
589 strcat(pTmpBuf, Source);
|
|
590 strcat(pTmpBuf, "\f00000");
|
|
591 pGUIWindow_CurrentMenu->DrawText(pFontArrus, 24, 18, 0, pTmpBuf, 0, 0, 0);
|
|
592 result = dword_506528;
|
|
593 a1.uFrameX = 12;
|
|
594 a1.uFrameY = 48;
|
|
595 a1.uFrameWidth = 424;
|
|
596 a1.uFrameHeight = 290;
|
|
597 a1.uFrameZ = 435;
|
|
598 a1.uFrameW = 337;
|
|
599 if ( dword_506544 && awards_count + dword_506528 < awards_count2 )
|
|
600 result = dword_506528++ + 1;
|
|
601 if ( dword_506548 && result )
|
|
602 {
|
|
603 --result;
|
|
604 dword_506528 = result;
|
|
605 }
|
|
606 if ( dword_50651C < 0 )
|
|
607 {
|
|
608 result += awards_count;
|
|
609 dword_506528 = result;
|
|
610 if ( (signed int)(awards_count + result) > awards_count2 )
|
|
611 {
|
|
612 result = awards_count2 - awards_count;
|
|
613 dword_506528 = result;
|
|
614 }
|
|
615 }
|
|
616 else if ( dword_50651C > 0 )
|
|
617 {
|
|
618 result -= awards_count;
|
|
619 dword_506528 = result;
|
|
620 if ( (result & 0x80000000u) != 0 )
|
|
621 {
|
|
622 result = 0;
|
|
623 dword_506528 = result;
|
|
624 }
|
|
625 }
|
|
626 //LABEL_14:
|
|
627 dword_506544 = 0;
|
|
628 dword_506548 = 0;
|
|
629 awards_count = 0;
|
|
630 dword_50651C = 0;
|
|
631 v21 = result;
|
|
632 if ( (signed int)result < awards_count2 )
|
|
633 {
|
|
634 while ( 1 )
|
|
635 {
|
|
636 v5 = achievedAwardsIndex[v21];
|
|
637 v20 = achievedAwardsIndex[v21];
|
|
638 v6 = (char *)pAwards[v20].pText;//(char *)dword_723E80_award_related[v20 / 4];
|
|
639 if ( v5 != 1 )
|
|
640 {
|
|
641 if (!( (v5 < 85 || v5 > 91) && (v5 < 103 || v5 > 104) ))
|
|
642 {
|
|
643 if ( v5 > 89 )
|
|
644 {
|
|
645 if ( v5 == 90 )
|
|
646 {
|
|
647 v10 = (unsigned __int8)pParty->uNumArenaKnightWins;
|
|
648 v22 = v10;
|
|
649 }
|
|
650 else if ( v5 == 91 )
|
|
651 {
|
|
652 v10 = (unsigned __int8)pParty->uNumArenaLordWins;
|
|
653 v22 = v10;
|
|
654 }
|
|
655 else if ( v5 == 103 )
|
|
656 {
|
|
657 v10 = pParty->field_874;
|
|
658 v22 = v10;
|
|
659 }
|
|
660 else if ( v5 == 104 )
|
|
661 {
|
|
662 v10 = pParty->field_878;
|
|
663 v22 = v10;
|
|
664 }
|
|
665 }
|
|
666 else
|
|
667 {
|
|
668 if ( v5 == 89 )
|
|
669 {
|
|
670 v10 = (unsigned __int8)pParty->uNumArenaSquireWins;
|
|
671 v22 = v10;
|
|
672 }
|
|
673 else if ( v5 == 85 )
|
|
674 {
|
|
675 v10 = pParty->uNumDeaths;
|
|
676 v22 = v10;
|
|
677 }
|
|
678 else if ( v5 == 86 )
|
|
679 {
|
|
680 v10 = pParty->uNumBountiesCollected;
|
|
681 v22 = v10;
|
|
682 }
|
|
683 else if ( v5 == 87 )
|
|
684 {
|
|
685 v10 = pParty->uNumPrisonTerms;
|
|
686 v22 = v10;
|
|
687 }
|
|
688 else if ( v5 == 88)
|
|
689 {
|
|
690 v10 = (unsigned __int8)pParty->uNumArenaPageWins;
|
|
691 v22 = v10;
|
|
692 }
|
|
693 }
|
|
694 v17 = v22;
|
|
695 sprintf(pTmpBuf, v6, v17);
|
|
696 v6 = pTmpBuf;
|
|
697 }
|
|
698 }
|
|
699 else
|
|
700 {
|
|
701 v17 = pParty->uFine;
|
|
702 sprintf(pTmpBuf, v6, v17);
|
|
703 v6 = pTmpBuf;
|
|
704 }
|
|
705 v14 = pAwards[v20].uSort;//dword_723E84[v20 / 4];
|
|
706 ++awards_count;
|
|
707 v15 = GenerateColorAsCloseAsPossibleToR8G8B8InTargetFormat(
|
|
708 pAwardsTextColors[3 * v14 % 6],
|
|
709 pAwardsTextColors[3 * v14 % 6 + 1],
|
|
710 pAwardsTextColors[3 * v14 % 6 + 2]);
|
|
711 a1.DrawText(pFontArrus, 0, 0, v15, v6, 0, 0, 0);
|
|
712 v16 = pFontArrus->CalcTextHeight(v6, &a1, 0, 0);
|
|
713 result = v16 + a1.uFrameY + 4;
|
|
714 if ( (signed int)result <= (signed int)a1.uFrameHeight )
|
|
715 {
|
|
716 ++v21;
|
|
717 a1.uFrameY = result;
|
|
718 result = v21;
|
|
719 if ( v21 < awards_count2 )
|
|
720 continue;
|
|
721 }
|
|
722 return;
|
|
723 }
|
|
724
|
|
725 }
|
|
726 return;
|
|
727 }
|
|
728
|
|
729
|
|
730
|
|
731
|
|
732
|
|
733
|
|
734 //----- (0041A2C1) --------------------------------------------------------
|
|
735 unsigned int __fastcall GetSizeInInventorySlots(unsigned int uNumPixels)
|
|
736 {
|
|
737 if ( (signed int)uNumPixels < 14 )
|
|
738 uNumPixels = 14;
|
|
739 return ((signed int)(uNumPixels - 14) >> 5) + 1;
|
|
740 }
|
|
741
|
|
742 //----- (0041A2D1) --------------------------------------------------------
|
|
743 void __fastcall CharacterUI_InventoryTab_Draw(unsigned int uPlayerID, char a2)
|
|
744 {
|
|
745 Player *pPlayer; // esi@1
|
|
746 char v3; // bl@1
|
|
747 unsigned int v4; // eax@2
|
|
748 ItemGen *pItem; // ebx@5
|
|
749 unsigned int v6; // eax@6
|
|
750 Texture *v7; // esi@6
|
|
751 __int16 v8; // ax@6
|
|
752 signed int v9; // edi@6
|
|
753 signed int v10; // ecx@6
|
|
754 signed int v11; // edx@6
|
|
755 signed int v12; // eax@11
|
|
756 int v13; // eax@13
|
|
757 signed int v14; // edx@13
|
|
758 int v15; // eax@13
|
|
759 unsigned int v16; // ebx@15
|
|
760 unsigned int v17; // edi@15
|
|
761 Texture *pTexture; // ebx@24
|
|
762 double v19; // st7@26
|
|
763 const char *v20; // [sp-8h] [bp-40h]@20
|
|
764 Player *pPlayer2; // [sp+14h] [bp-24h]@1
|
|
765 int uTextureId; // [sp+18h] [bp-20h]@6
|
|
766 int *v23; // [sp+1Ch] [bp-1Ch]@1
|
|
767 int v24; // [sp+20h] [bp-18h]@5
|
|
768 ItemGen *pItem2; // [sp+24h] [bp-14h]@5
|
|
769 int v26; // [sp+28h] [bp-10h]@3
|
|
770 unsigned int uCellID; // [sp+2Ch] [bp-Ch]@3
|
|
771 unsigned int uCellX; // [sp+30h] [bp-8h]@5
|
|
772 unsigned int uCellY; // [sp+34h] [bp-4h]@5
|
|
773
|
|
774 v23 = pRenderer->pActiveZBuffer;
|
|
775 pPlayer = pPlayers[uPlayerID];
|
|
776 v3 = a2;
|
|
777 pPlayer2 = pPlayers[uPlayerID];
|
|
778 pRenderer->DrawTextureIndexed(8, 8, (Texture *)(uTextureID_507958 != -1 ? (int)&pIcons_LOD->pTextures[uTextureID_507958] : 0));
|
|
779 if ( v3 )
|
|
780 {
|
|
781 v4 = pIcons_LOD->LoadTexture("fr_strip", TEXTURE_16BIT_PALETTE);
|
|
782 pRenderer->DrawTextureIndexed(8u, 0x131u, (Texture *)(v4 != -1 ? (int)&pIcons_LOD->pTextures[v4] : 0));
|
|
783 }
|
|
784 uCellID = 0;
|
|
785 v26 = (int)pPlayer->pInventoryIndices;
|
|
786 do
|
|
787 {
|
|
788 if ( *(int *)v26 > 0 )
|
|
789 {
|
|
790 v24 = *(int *)v26 - 1;
|
|
791 uCellY = 32 * (uCellID / 14) + 17;
|
|
792 pItem = &pPlayer->pInventoryItems[v24];
|
|
793 uCellX = 32 * (uCellID % 14) + 14;
|
|
794 pItem2 = pItem;
|
|
795 if ( pItem->uItemID )
|
|
796 {
|
|
797 v6 = pIcons_LOD->LoadTexture(pItemsTable->pItems[pItem->uItemID].pIconName, TEXTURE_16BIT_PALETTE);
|
|
798 uTextureId = v6;
|
|
799 v7 = (Texture *)(v6 != -1 ? (int)&pIcons_LOD->pTextures[v6] : 0);
|
|
800 v8 = (v6 != -1 ? pIcons_LOD->pTextures[v6].uTextureWidth : 24);
|
|
801 v9 = v7->uTextureHeight;
|
|
802 v10 = v7->uTextureWidth;
|
|
803 v11 = v7->uTextureWidth;
|
|
804 if ( v10 < 14 )
|
|
805 v11 = 14;
|
|
806 if ( (v11 - 14) >> 5 == 0 && v8 < 32 )
|
|
807 uCellX += (32 - v10) / 2;
|
|
808 v12 = v7->uTextureWidth;
|
|
809 if ( v10 < 14 )
|
|
810 v12 = 14;
|
|
811 v13 = v12 - 14;
|
|
812 v14 = v7->uTextureHeight;
|
|
813 LOBYTE(v13) = v13 & 0xE0;
|
|
814 v15 = v13 + 32;
|
|
815 if ( v9 < 14 )
|
|
816 v14 = 14;
|
|
817 v16 = pItem->uAttributes;
|
|
818 v17 = uCellX + ((v15 - v10) >> 1) + pSRZBufferLineOffsets[uCellY + ((((v14 - 14) & 0xFFFFFFE0) - v9 + 32) >> 1)];
|
|
819 if ( !(v16 & 0xF0) )
|
|
820 {
|
|
821 if (pItem->Identified() || pCurrentScreen != SCREEN_HOUSE )
|
|
822 {
|
|
823 if (pItem->Broken())
|
|
824 pRenderer->DrawTransparentRedShade(uCellX, uCellY, v7);
|
|
825 else
|
|
826 pRenderer->DrawTextureTransparent(uCellX, uCellY, v7);
|
|
827 }
|
|
828 else
|
|
829 {
|
|
830 pRenderer->DrawTransparentGreenShade(uCellX, uCellY, v7);
|
|
831 }
|
|
832 ZBuffer_Fill(&v23[v17], uTextureId, v24 + 1);
|
|
833 pPlayer = pPlayer2;
|
|
834 //goto LABEL_34;
|
|
835 ++uCellID;
|
|
836 v26 += 4;
|
|
837 continue;
|
|
838 }
|
|
839 if ( (unsigned __int8)(v16 & 0xF0) != 16 )
|
|
840 {
|
|
841 if ( (unsigned __int8)(v16 & 0xF0) == 32 )
|
|
842 {
|
|
843 v20 = "sp28a";
|
|
844 pTexture = &pIcons_LOD->pTextures[pIcons_LOD->LoadTexture(v20, TEXTURE_16BIT_PALETTE)];
|
|
845 dword_50C9A8 -= pEventTimer->uTimeElapsed;
|
|
846 if ( dword_50C9A8 <= 0 )
|
|
847 {
|
|
848 dword_50C9A8 = 0;
|
|
849 LOBYTE(pItem2->uAttributes) &= 0xFu;
|
|
850 ptr_50C9A4 = 0;
|
|
851 }
|
|
852 v19 = (double)GetTickCount() * 0.1;
|
|
853 pRenderer->_4A63E6(uCellX, uCellY, v7, pTexture, (signed __int64)v19, 0, 255);
|
|
854 ZBuffer_Fill(&v23[v17], uTextureId, v24 + 1);
|
|
855 pPlayer = pPlayer2;
|
|
856 //goto LABEL_34;
|
|
857 ++uCellID;
|
|
858 v26 += 4;
|
|
859 continue;
|
|
860 }
|
|
861 if ( (unsigned __int8)(v16 & 0xF0) == 64 )
|
|
862 {
|
|
863 v20 = "sp30a";
|
|
864 pTexture = &pIcons_LOD->pTextures[pIcons_LOD->LoadTexture(v20, TEXTURE_16BIT_PALETTE)];
|
|
865 dword_50C9A8 -= pEventTimer->uTimeElapsed;
|
|
866 if ( dword_50C9A8 <= 0 )
|
|
867 {
|
|
868 dword_50C9A8 = 0;
|
|
869 LOBYTE(pItem2->uAttributes) &= 0xFu;
|
|
870 ptr_50C9A4 = 0;
|
|
871 }
|
|
872 v19 = (double)GetTickCount() * 0.1;
|
|
873 pRenderer->_4A63E6(uCellX, uCellY, v7, pTexture, (signed __int64)v19, 0, 255);
|
|
874 ZBuffer_Fill(&v23[v17], uTextureId, v24 + 1);
|
|
875 pPlayer = pPlayer2;
|
|
876 //goto LABEL_34;
|
|
877 ++uCellID;
|
|
878 v26 += 4;
|
|
879 continue;
|
|
880 }
|
|
881 if ( (unsigned __int8)(v16 & 0xF0) == 128 )
|
|
882 {
|
|
883 v20 = "sp91a";
|
|
884 pTexture = &pIcons_LOD->pTextures[pIcons_LOD->LoadTexture(v20, TEXTURE_16BIT_PALETTE)];
|
|
885 dword_50C9A8 -= pEventTimer->uTimeElapsed;
|
|
886 if ( dword_50C9A8 <= 0 )
|
|
887 {
|
|
888 dword_50C9A8 = 0;
|
|
889 LOBYTE(pItem2->uAttributes) &= 0xFu;
|
|
890 ptr_50C9A4 = 0;
|
|
891 }
|
|
892 v19 = (double)GetTickCount() * 0.1;
|
|
893 pRenderer->_4A63E6(uCellX, uCellY, v7, pTexture, (signed __int64)v19, 0, 255);
|
|
894 ZBuffer_Fill(&v23[v17], uTextureId, v24 + 1);
|
|
895 pPlayer = pPlayer2;
|
|
896 //goto LABEL_34;
|
|
897 ++uCellID;
|
|
898 v26 += 4;
|
|
899 continue;
|
|
900 }
|
|
901 }
|
|
902 v20 = "sptext01";
|
|
903 pTexture = &pIcons_LOD->pTextures[pIcons_LOD->LoadTexture(v20, TEXTURE_16BIT_PALETTE)];
|
|
904 dword_50C9A8 -= pEventTimer->uTimeElapsed;
|
|
905 if ( dword_50C9A8 <= 0 )
|
|
906 {
|
|
907 dword_50C9A8 = 0;
|
|
908 LOBYTE(pItem2->uAttributes) &= 0xFu;
|
|
909 ptr_50C9A4 = 0;
|
|
910 }
|
|
911 v19 = (double)GetTickCount() * 0.1;
|
|
912 pRenderer->_4A63E6(uCellX, uCellY, v7, pTexture, (signed __int64)v19, 0, 255);
|
|
913 ZBuffer_Fill(&v23[v17], uTextureId, v24 + 1);
|
|
914 pPlayer = pPlayer2;
|
|
915 }
|
|
916 }
|
|
917 //LABEL_34:
|
|
918 ++uCellID;
|
|
919 v26 += 4;
|
|
920 }
|
|
921 while ( uCellID < 126 );
|
|
922 }
|
|
923
|
|
924 //----- (0041A556) --------------------------------------------------------
|
|
925 void __cdecl draw_leather()
|
|
926 {
|
|
927 pRenderer->DrawTextureIndexed(8, 8, pIcons_LOD->GetTexture(uTextureID_Leather));
|
|
928 }
|
|
929
|
|
930 //----- (0041A57E) --------------------------------------------------------
|
|
931 void QuickRefDraw()
|
|
932 {
|
|
933 unsigned int v0; // ebx@1
|
|
934 //unsigned int v1; // eax@1
|
|
935 Player *pPlayer; // ebp@2
|
|
936 int v3; // eax@6
|
|
937 int v4; // edi@6
|
|
938 unsigned int v5; // eax@7
|
|
939 unsigned int v6; // edi@9
|
|
940 unsigned int v7; // edi@11
|
|
941 signed int v8; // eax@13
|
|
942 unsigned int v9; // eax@13
|
|
943 unsigned int v10; // edi@13
|
|
944 int v11; // eax@15
|
|
945 unsigned int v12; // eax@15
|
|
946 unsigned int v13; // edi@15
|
|
947 int v14; // eax@17
|
|
948 int v15; // ST18_4@17
|
|
949 int v16; // ebx@17
|
|
950 int v17; // eax@17
|
|
951 unsigned int v18; // eax@17
|
|
952 unsigned int v19; // edi@17
|
|
953 int v20; // eax@19
|
|
954 unsigned int v21; // edi@19
|
|
955 char *v22; // eax@21
|
|
956 unsigned int v23; // edi@21
|
|
957 int v24; // eax@23
|
|
958 unsigned int v25; // edi@23
|
|
959 char *v26; // eax@25
|
|
960 unsigned int v27; // edi@25
|
|
961 int v28; // ecx@27
|
|
962 char *v29; // eax@27
|
|
963 signed int v30; // edx@27
|
|
964 unsigned int v31; // edi@31
|
|
965 unsigned int v32; // edi@33
|
|
966 const char *v33; // ST10_4@35
|
|
967 unsigned int v34; // eax@35
|
|
968 unsigned int v35; // edi@35
|
|
969 unsigned __int8 v36; // al@37
|
|
970 char *v37; // eax@38
|
|
971 int v38; // eax@41
|
|
972 signed int v39; // edi@42
|
|
973 char *v40; // eax@45
|
|
974 unsigned int v41; // eax@45
|
|
975 signed int v43; // [sp+10h] [bp-1Ch]@1
|
|
976 unsigned int v44; // [sp+14h] [bp-18h]@2
|
|
977 int v45; // [sp+18h] [bp-14h]@1
|
|
978 unsigned int v46; // [sp+1Ch] [bp-10h]@1
|
|
979 unsigned int v47; // [sp+20h] [bp-Ch]@1
|
|
980 unsigned int v48; // [sp+24h] [bp-8h]@33
|
|
981 //unsigned int v49; // [sp+28h] [bp-4h]@1
|
|
982
|
|
983 v0 = 0;
|
|
984 v47 = GenerateColorAsCloseAsPossibleToR8G8B8InTargetFormat(0xFFu, 0xFFu, 0x9Bu);
|
|
985 //v49 = GenerateColorAsCloseAsPossibleToR8G8B8InTargetFormat(0xFFu, 0, 0);
|
|
986 v46 = GenerateColorAsCloseAsPossibleToR8G8B8InTargetFormat(0, 0xFFu, 0);
|
|
987 //v1 = pIcons_LOD->LoadTexture("quikref", TEXTURE_16BIT_PALETTE);
|
|
988 pRenderer->DrawTextureIndexed(8, 8, pIcons_LOD->LoadTexturePtr("quikref", TEXTURE_16BIT_PALETTE));
|
|
989 v43 = 0;
|
|
990 v45 = LOBYTE(pFontArrus->uFontHeight) + 1;
|
|
991 do
|
|
992 {
|
|
993 pPlayer = &pParty->pPlayers[v43];
|
|
994 v44 = 94 * v43 + 89;
|
|
995 if ( v43 == v0 )
|
|
996 pGUIWindow_CurrentMenu->DrawTextInRect(pFontArrus, 0x16u, 0x12u, v0, pGlobalTXT_LocalizationStrings[149], 60, v0);//Name
|
|
997 pGUIWindow_CurrentMenu->DrawTextInRect(pFontArrus, 94 * v43 + 89, 0x12u, v47, pPlayer->pName, 84, v0);
|
|
998 if ( v43 == v0 )
|
|
999 pGUIWindow_CurrentMenu->DrawTextInRect(pFontArrus, 0x16u, 0x2Fu, v0, pGlobalTXT_LocalizationStrings[131], 60, v0); //.
|
|
1000 v3 = pPlayer->GetActualLevel();
|
|
1001 sprintf(pTmpBuf, "%lu", v3);
|
|
1002 v4 = pPlayer->GetBaseLevel();
|
|
1003 if ( pPlayer->GetActualLevel() <= v4 )
|
|
1004 v5 = pPlayer->GetExperienceDisplayColor();
|
|
1005 else
|
|
1006 v5 = GenerateColorAsCloseAsPossibleToR8G8B8InTargetFormat(0, 0xFFu, v0);
|
|
1007 pGUIWindow_CurrentMenu->DrawTextInRect(pFontArrus, v44, 0x2Fu, v5, pTmpBuf, 84, v0);
|
|
1008 v6 = v45 + 47;
|
|
1009 if ( v43 == v0 )
|
|
1010 pGUIWindow_CurrentMenu->DrawTextInRect(pFontArrus, 0x16u, v45 + 47, v0, pGlobalTXT_LocalizationStrings[41], 60, v0);//
|
|
1011 pGUIWindow_CurrentMenu->DrawTextInRect(pFontArrus, v44, v6, v0, pClassNames[pPlayer->classType], 84, v0);
|
|
1012 v7 = v45 + v6;
|
|
1013 if ( v43 == v0 )
|
|
1014 pGUIWindow_CurrentMenu->DrawTextInRect(pFontArrus, 0x16u, v7, v0, pGlobalTXT_LocalizationStrings[107], 60, v0);//.
|
|
1015 sprintf(pTmpBuf, "%d", pPlayer->sHealth);
|
|
1016 v8 = pPlayer->GetMaxHealth();
|
|
1017 v9 = UI_GetHealthManaStringColor(pPlayer->sHealth, v8);
|
|
1018 pGUIWindow_CurrentMenu->DrawTextInRect(pFontArrus, v44, v7, v9, pTmpBuf, 84, v0);
|
|
1019 v10 = v45 + v7;
|
|
1020 if ( v43 == v0 )
|
|
1021 pGUIWindow_CurrentMenu->DrawTextInRect(pFontArrus, 0x16u, v10, v0, pGlobalTXT_LocalizationStrings[209], 60, v0);//
|
|
1022 sprintf(pTmpBuf, "%d", pPlayer->sMana);
|
|
1023 v11 = pPlayer->GetMaxMana();
|
|
1024 v12 = UI_GetHealthManaStringColor(pPlayer->sMana, v11);
|
|
1025 pGUIWindow_CurrentMenu->DrawTextInRect(pFontArrus, v44, v10, v12, pTmpBuf, 84, v0);
|
|
1026 v13 = v45 + v10;
|
|
1027 if ( v43 == v0 )
|
|
1028 pGUIWindow_CurrentMenu->DrawTextInRect(pFontArrus, 0x16u, v13, v0, pGlobalTXT_LocalizationStrings[0], 60, v0);//
|
|
1029 v14 = pPlayer->GetActualAC();
|
|
1030 sprintf(pTmpBuf, "%d", v14);
|
|
1031 v15 = v0;
|
|
1032 v16 = pPlayer->GetBaseAC();
|
|
1033 v17 = pPlayer->GetActualAC();
|
|
1034 v18 = UI_GetHealthManaStringColor(v17, v16);
|
|
1035 pGUIWindow_CurrentMenu->DrawTextInRect(pFontArrus, v44, v13, v18, pTmpBuf, 84, v15);
|
|
1036 v0 = 0;
|
|
1037 v19 = v45 + v13;
|
|
1038 if ( !v43 )
|
|
1039 pGUIWindow_CurrentMenu->DrawTextInRect(pFontArrus, 0x16u, v19, 0, pGlobalTXT_LocalizationStrings[18], 60, 0);//
|
|
1040 v20 = pPlayer->GetActualAttack(0);
|
|
1041 sprintf(pTmpBuf, "%+d", v20);
|
|
1042 pGUIWindow_CurrentMenu->DrawTextInRect(pFontArrus, v44, v19, 0, pTmpBuf, 84, 0);
|
|
1043 v21 = v45 + v19;
|
|
1044 if ( !v43 )
|
|
1045 pGUIWindow_CurrentMenu->DrawTextInRect(pFontArrus, 0x16u, v21, 0, pGlobalTXT_LocalizationStrings[66], 60, 0);//.
|
|
1046 v22 = pPlayer->GetMeleeDamageString();
|
|
1047 pGUIWindow_CurrentMenu->DrawTextInRect(pFontArrus, v44, v21, 0, v22, 84, 0);
|
|
1048 v23 = v45 + v21;
|
|
1049 if ( !v43 )
|
|
1050 pGUIWindow_CurrentMenu->DrawTextInRect(pFontArrus, 0x16u, v23, 0, pGlobalTXT_LocalizationStrings[203], 60, 0);//
|
|
1051 v24 = pPlayer->GetRangedAttack();
|
|
1052 sprintf(pTmpBuf, "%+d", v24);
|
|
1053 pGUIWindow_CurrentMenu->DrawTextInRect(pFontArrus, v44, v23, 0, pTmpBuf, 84, 0);
|
|
1054 v25 = v45 + v23;
|
|
1055 if ( !v43 )
|
|
1056 pGUIWindow_CurrentMenu->DrawTextInRect(pFontArrus, 0x16u, v25, 0, pGlobalTXT_LocalizationStrings[66], 60, 0);//.
|
|
1057 v26 = pPlayer->GetRangedDamageString();
|
|
1058 pGUIWindow_CurrentMenu->DrawTextInRect(pFontArrus, v44, v25, 0, v26, 84, 0);
|
|
1059 v27 = v45 + v25;
|
|
1060 if ( !v43 )
|
|
1061 pGUIWindow_CurrentMenu->DrawTextInRect(pFontArrus, 0x16u, v27, 0, pGlobalTXT_LocalizationStrings[205], 60, 0);//
|
|
1062 v28 = 0;
|
|
1063 v29 = (char *)pPlayer->pActiveSkills;
|
|
1064 v30 = 36;
|
|
1065 do
|
|
1066 {
|
|
1067 if ( *(short *)v29 )
|
|
1068 ++v28;
|
|
1069 v29 += 2;
|
|
1070 --v30;
|
|
1071 }
|
|
1072 while ( v30 );
|
|
1073 sprintf(pTmpBuf, "%lu", v28);
|
|
1074 pGUIWindow_CurrentMenu->DrawTextInRect(pFontArrus, v44, v27, 0, pTmpBuf, 84, 0);
|
|
1075 v31 = v45 + v27;
|
|
1076 if ( !v43 )
|
|
1077 pGUIWindow_CurrentMenu->DrawTextInRect(pFontArrus, 0x16u, v31, 0, pGlobalTXT_LocalizationStrings[168], 60, 0);//
|
|
1078 sprintf(pTmpBuf, "%lu", pPlayer->uSkillPoints);
|
|
1079 pGUIWindow_CurrentMenu->DrawTextInRect(pFontArrus, v44, v31, pPlayer->uSkillPoints != 0 ? v46 : 0, pTmpBuf, 84, 0);
|
|
1080 v32 = v45 + v31;
|
|
1081 v48 = pPlayer->GetMajorConditionIdx();
|
|
1082 if ( !v43 )
|
|
1083 pGUIWindow_CurrentMenu->DrawTextInRect(pFontArrus, 0x16u, v32, 0, pGlobalTXT_LocalizationStrings[45], 60, 0);//.
|
|
1084 v33 = aCharacterConditionNames[v48];
|
|
1085 v34 = GetConditionDrawColor(v48);
|
|
1086 pGUIWindow_CurrentMenu->DrawTextInRect(pFontArrus, v44, v32, v34, v33, 84, 0);
|
|
1087 v35 = v45 + v32;
|
|
1088 if ( !v43 )
|
|
1089 pGUIWindow_CurrentMenu->DrawTextInRect(pFontArrus, 0x16u, v35, 0, pGlobalTXT_LocalizationStrings[170], 60, 0);//..
|
|
1090 v36 = pPlayer->uQuickSpell;
|
|
1091 if ( v36 )
|
|
1092 v37 = pSpellStats->pInfos[v36].pShortName;
|
|
1093 else
|
|
1094 v37 = pGlobalTXT_LocalizationStrings[153];//
|
|
1095 pGUIWindow_CurrentMenu->DrawTextInRect(pFontArrus, v44, v35, 0, v37, 84, 0);
|
|
1096 ++v43;
|
|
1097 }
|
|
1098 while ( v43 < 4 );
|
|
1099
|
|
1100 v38 = GetPartyReputation();
|
|
1101 if ( v38 >= 0 )
|
|
1102 {
|
|
1103 if ( v38 <= 5 )
|
|
1104 v39 = GenerateColorAsCloseAsPossibleToR8G8B8InTargetFormat(0xFF, 0xFF, 0xFF);
|
|
1105 else
|
|
1106 v39 = GenerateColorAsCloseAsPossibleToR8G8B8InTargetFormat(0xFF, 0, 0);
|
|
1107 }
|
|
1108 else
|
|
1109 v39 = v46;
|
|
1110
|
|
1111 v40 = GetReputationString(v38);
|
|
1112 sprintf(pTmpBuf, "%s: \f%05d%s\f00000", pGlobalTXT_LocalizationStrings[180], v39, v40);//Reputation
|
|
1113 pGUIWindow_CurrentMenu->DrawText(pFontArrus, 22, 323, 0, pTmpBuf, 0, 0, 0);
|
|
1114 v41 = pParty->GetPartyFame();
|
|
1115 sprintf(pTmpBuf, "\r261%s: %d", pGlobalTXT_LocalizationStrings[84], v41);// Fame
|
|
1116 pGUIWindow_CurrentMenu->DrawText(pFontArrus, 0, 323, 0, pTmpBuf, 0, 0, 0);
|
|
1117 }
|
|
1118
|
|
1119 //----- (0041ABFD) --------------------------------------------------------
|
|
1120 void __thiscall CharacterUI_CharacterScreen_Draw(unsigned int uPlayerIdx)
|
|
1121 {
|
|
1122 unsigned int v1; // edi@1
|
|
1123 unsigned int v2; // eax@6
|
|
1124 Texture *pTexture; // ecx@6
|
|
1125 GUIButton *pButton; // eax@6
|
|
1126 unsigned int v5; // eax@7
|
|
1127 unsigned int v6; // eax@10
|
|
1128 unsigned int v7; // eax@11
|
|
1129
|
|
1130 v1 = uPlayerIdx;
|
|
1131 if ( uPlayerIdx )
|
|
1132 {
|
|
1133 pRenderer->ClearZBuffer(0, 479);
|
|
1134 switch ( pWindowList_at_506F50_minus1_indexing_buttons____and_an_int_[0] )
|
|
1135 {
|
|
1136 case WINDOW_CharacterWindow_Stats: // stats
|
|
1137 sub_4196A0();
|
|
1138 sub_419379();
|
|
1139 CharacterUI_StatsTab_Draw(v1);
|
|
1140 v7 = pIcons_LOD->LoadTexture("ib-cd1-d", TEXTURE_16BIT_PALETTE);
|
|
1141 pTexture = (Texture *)(v7 != -1 ? (int)&pIcons_LOD->pTextures[v7] : 0);
|
|
1142 pButton = pCharacterScreen_StatsBtn;
|
|
1143 pRenderer->DrawTextureIndexed(pButton->uX, pButton->uY, pTexture);
|
|
1144 break;
|
|
1145 case WINDOW_CharacterWindow_Skills: // skills
|
|
1146 if ( dword_507CC0 != uActiveCharacter )
|
|
1147 {
|
|
1148 sub_4196A0();
|
|
1149 CharacterUI_SkillScreen_Draw();
|
|
1150 }
|
|
1151 sub_419379();
|
|
1152 CharacterUI_SkillsTab_Draw(v1);
|
|
1153 v6 = pIcons_LOD->LoadTexture("ib-cd2-d", TEXTURE_16BIT_PALETTE);
|
|
1154 pTexture = (Texture *)(v6 != -1 ? (int)&pIcons_LOD->pTextures[v6] : 0);
|
|
1155 pButton = pCharacterScreen_SkillsBtn;
|
|
1156 pRenderer->DrawTextureIndexed(pButton->uX, pButton->uY, pTexture);
|
|
1157 break;
|
|
1158 case WINDOW_CharacterWindow_Awards: // awards
|
|
1159 sub_4196A0();
|
|
1160 sub_419379();
|
|
1161 sub_419220();
|
|
1162 CharacterUI_AwardsTab_Draw(v1);
|
|
1163 v5 = pIcons_LOD->LoadTexture("ib-cd4-d", TEXTURE_16BIT_PALETTE);
|
|
1164 pTexture = (Texture *)(v5 != -1 ? (int)&pIcons_LOD->pTextures[v5] : 0);
|
|
1165 pButton = pCharacterScreen_AwardsBtn;
|
|
1166 pRenderer->DrawTextureIndexed(pButton->uX, pButton->uY, pTexture);
|
|
1167 break;
|
|
1168 case WINDOW_CharacterWindow_Inventory: // inventory and other
|
|
1169 sub_4196A0();
|
|
1170 sub_419379();
|
|
1171 CharacterUI_InventoryTab_Draw(v1, 0);
|
|
1172 v2 = pIcons_LOD->LoadTexture("ib-cd3-d", TEXTURE_16BIT_PALETTE);
|
|
1173 pTexture = (Texture *)(v2 != -1 ? (int)&pIcons_LOD->pTextures[v2] : 0);
|
|
1174 pButton = pCharacterScreen_InventoryBtn;
|
|
1175 pRenderer->DrawTextureIndexed(pButton->uX, pButton->uY, pTexture);
|
|
1176 break;
|
|
1177 default:
|
|
1178 break;
|
|
1179 }
|
|
1180 if ( bRingsShownInCharScreen )
|
|
1181 CharacterUI_DrawPaperdollWithRingOverlay(v1);
|
|
1182 else
|
|
1183 CharacterUI_DrawPaperdoll(v1);
|
|
1184 }
|
|
1185 }
|
|
1186
|
|
1187 //----- (0043CC7C) --------------------------------------------------------
|
|
1188 void __fastcall CharacterUI_DrawPaperdoll(unsigned int uPlayerID)
|
|
1189 {
|
|
1190 //Player **ppPlayer; // esi@1
|
|
1191 Player *pPlayer; // ebx@1
|
|
1192 //enum CHARACTER_RACE pRace; // edi@1
|
|
1193 signed int pSex; // eax@1
|
|
1194 //int v5; // edi@4
|
|
1195 unsigned int v6; // ecx@9
|
|
1196 int v7; // ecx@10
|
|
1197 unsigned int v8; // eax@14
|
|
1198 int v9; // eax@15
|
|
1199 int v10; // edx@15
|
|
1200 int v11; // ecx@15
|
|
1201 int v12; // eax@15
|
|
1202 unsigned int v13; // edi@15
|
|
1203 unsigned int v14; // ebx@18
|
|
1204 int v15; // ecx@18
|
|
1205 Texture *v16; // ebp@27
|
|
1206 double v17; // st7@29
|
|
1207 int v18; // edi@30
|
|
1208 char *v19; // eax@30
|
|
1209 Texture *v20; // edi@31
|
|
1210 unsigned int v21; // eax@37
|
|
1211 int v22; // edi@38
|
|
1212 int v23; // eax@38
|
|
1213 int v24; // ebx@38
|
|
1214 int v25; // eax@38
|
|
1215 LODFile_IconsBitmaps *v26; // ecx@42
|
|
1216 Texture *v27; // edi@51
|
|
1217 double v28; // st7@51
|
|
1218 char v29; // zf@54
|
|
1219 char *v30; // eax@54
|
|
1220 unsigned int v31; // eax@59
|
|
1221 int v32; // edx@60
|
|
1222 int v33; // eax@65
|
|
1223 int v34; // eax@74
|
|
1224 int v35; // ebx@74
|
|
1225 unsigned int v36; // ecx@74
|
|
1226 int v37; // eax@74
|
|
1227 LODFile_IconsBitmaps *v38; // ecx@78
|
|
1228 Texture *v39; // edi@85
|
|
1229 double v40; // st7@87
|
|
1230 int v41; // edi@88
|
|
1231 Texture *v42; // edi@89
|
|
1232 unsigned int v43; // eax@93
|
|
1233 int v44; // edx@94
|
|
1234 int v45; // eax@98
|
|
1235 int v46; // eax@106
|
|
1236 int v47; // ecx@106
|
|
1237 int v48; // ebx@106
|
|
1238 int v49; // eax@106
|
|
1239 LODFile_IconsBitmaps *v50; // ecx@110
|
|
1240 Texture *v51; // edi@117
|
|
1241 double v52; // st7@119
|
|
1242 int v53; // edi@120
|
|
1243 Texture *v54; // edi@121
|
|
1244 char *v55; // eax@122
|
|
1245 unsigned int v56; // eax@127
|
|
1246 int v57; // edi@128
|
|
1247 int v58; // ecx@128
|
|
1248 int v59; // ebx@129
|
|
1249 int v60; // ecx@132
|
|
1250 int v61; // eax@134
|
|
1251 int v62; // ecx@136
|
|
1252 Texture *v63; // edi@145
|
|
1253 double v64; // st7@147
|
|
1254 int v65; // edi@148
|
|
1255 char *v66; // eax@148
|
|
1256 Texture *v67; // edi@149
|
|
1257 //Player *v68; // ebx@155
|
|
1258 unsigned int v69; // edx@155
|
|
1259 int v70; // edx@156
|
|
1260 unsigned int v71; // eax@160
|
|
1261 int v72; // edi@161
|
|
1262 int v73; // edx@163
|
|
1263 int v74; // ecx@168
|
|
1264 unsigned int v75; // ebx@170
|
|
1265 int v76; // ecx@172
|
|
1266 Texture *v77; // edi@181
|
|
1267 double v78; // st7@183
|
|
1268 int v79; // edi@184
|
|
1269 char *v80; // eax@184
|
|
1270 Texture *v81; // edi@185
|
|
1271 unsigned int v82; // eax@192
|
|
1272 int v83; // eax@193
|
|
1273 int v84; // eax@197
|
|
1274 int v85; // eax@197
|
|
1275 int v86; // ecx@197
|
|
1276 int v87; // eax@197
|
|
1277 int v88; // eax@198
|
|
1278 int v89; // eax@199
|
|
1279 int v90; // edi@201
|
|
1280 int v91; // edi@213
|
|
1281 int v92; // ebx@213
|
|
1282 int v93; // edi@214
|
|
1283 int v94; // ebx@214
|
|
1284 int v95; // eax@214
|
|
1285 char *v96; // edi@226
|
|
1286 double v97; // st7@228
|
|
1287 int v98; // edi@229
|
|
1288 char *v99; // eax@229
|
|
1289 Render *v100; // ecx@229
|
|
1290 Texture *v101; // edi@230
|
|
1291 int v102; // edi@236
|
|
1292 int v103; // eax@237
|
|
1293 int v104; // ecx@237
|
|
1294 int v105; // edx@237
|
|
1295 int v106; // edx@238
|
|
1296 int v107; // edx@239
|
|
1297 int v108; // edx@240
|
|
1298 int v109; // edi@250
|
|
1299 char *v110; // edx@250
|
|
1300 unsigned int v111; // eax@259
|
|
1301 int v112; // eax@260
|
|
1302 int v113; // eax@260
|
|
1303 int v114; // eax@265
|
|
1304 int v115; // eax@274
|
|
1305 int v116; // ebx@274
|
|
1306 unsigned int v117; // edi@274
|
|
1307 double v118; // st7@286
|
|
1308 int v119; // edi@287
|
|
1309 char *v120; // eax@287
|
|
1310 Texture *v121; // edi@288
|
|
1311 unsigned int v122; // edi@295
|
|
1312 int v123; // ebx@297
|
|
1313 int v124; // edi@298
|
|
1314 int v125; // ecx@303
|
|
1315 int v126; // eax@312
|
|
1316 unsigned int v127; // ebx@314
|
|
1317 int v128; // ecx@316
|
|
1318 Texture *v129; // edi@325
|
|
1319 double v130; // st7@327
|
|
1320 int v131; // edi@328
|
|
1321 char *v132; // eax@328
|
|
1322 Texture *v133; // edi@329
|
|
1323 unsigned int v134; // eax@335
|
|
1324 int v135; // eax@336
|
|
1325 int v136; // edx@336
|
|
1326 int v137; // eax@336
|
|
1327 unsigned int v138; // ebx@339
|
|
1328 int v139; // ecx@339
|
|
1329 Texture *v140; // edi@348
|
|
1330 double v141; // st7@350
|
|
1331 int v142; // edi@351
|
|
1332 char *v143; // eax@351
|
|
1333 Texture *v144; // edi@352
|
|
1334 unsigned int v145; // eax@358
|
|
1335 int v146; // eax@359
|
|
1336 int v147; // ecx@359
|
|
1337 int v148; // eax@359
|
|
1338 int v149; // edx@359
|
|
1339 int v150; // ebx@362
|
|
1340 int v151; // ecx@363
|
|
1341 int v152; // ecx@364
|
|
1342 unsigned int v153; // eax@370
|
|
1343 unsigned int v154; // edi@370
|
|
1344 int v155; // eax@370
|
|
1345 LODFile_IconsBitmaps *v156; // ecx@374
|
|
1346 Texture *v157; // ebp@381
|
|
1347 double v158; // st7@383
|
|
1348 Texture *v159; // edi@385
|
|
1349 char *v160; // eax@386
|
|
1350 unsigned int v161; // eax@393
|
|
1351 int v162; // eax@394
|
|
1352 unsigned int v163; // [sp-Ch] [bp-58h]@230
|
|
1353 unsigned int v164; // [sp-Ch] [bp-58h]@233
|
|
1354 signed int v165; // [sp-Ch] [bp-58h]@235
|
|
1355 char *v166; // [sp-8h] [bp-54h]@16
|
|
1356 const char *v167; // [sp-8h] [bp-54h]@23
|
|
1357 const char *v168; // [sp-8h] [bp-54h]@43
|
|
1358 const char *v169; // [sp-8h] [bp-54h]@79
|
|
1359 const char *v170; // [sp-8h] [bp-54h]@111
|
|
1360 const char *v171; // [sp-8h] [bp-54h]@141
|
|
1361 const char *v172; // [sp-8h] [bp-54h]@177
|
|
1362 const char *v173; // [sp-8h] [bp-54h]@222
|
|
1363 int v174; // [sp-8h] [bp-54h]@228
|
|
1364 unsigned int v175; // [sp-8h] [bp-54h]@230
|
|
1365 unsigned int v176; // [sp-8h] [bp-54h]@233
|
|
1366 signed int v177; // [sp-8h] [bp-54h]@235
|
|
1367 const char *v178; // [sp-8h] [bp-54h]@242
|
|
1368 const char *v179; // [sp-8h] [bp-54h]@280
|
|
1369 const char *v180; // [sp-8h] [bp-54h]@321
|
|
1370 char *v181; // [sp-8h] [bp-54h]@337
|
|
1371 const char *v182; // [sp-8h] [bp-54h]@344
|
|
1372 const char *v183; // [sp-8h] [bp-54h]@375
|
|
1373 signed int v184; // [sp-4h] [bp-50h]@66
|
|
1374 signed int v185; // [sp-4h] [bp-50h]@99
|
|
1375 signed int v186; // [sp-4h] [bp-50h]@202
|
|
1376 int v187; // [sp-4h] [bp-50h]@228
|
|
1377 Texture *v188; // [sp-4h] [bp-50h]@230
|
|
1378 Texture *v189; // [sp-4h] [bp-50h]@233
|
|
1379 Texture *v190; // [sp-4h] [bp-50h]@235
|
|
1380 signed int v191; // [sp-4h] [bp-50h]@266
|
|
1381 signed int v192; // [sp-4h] [bp-50h]@304
|
|
1382 unsigned int a3; // [sp+10h] [bp-3Ch]@7
|
|
1383 int a3a; // [sp+10h] [bp-3Ch]@15
|
|
1384 int a3b; // [sp+10h] [bp-3Ch]@38
|
|
1385 unsigned int a3c; // [sp+10h] [bp-3Ch]@74
|
|
1386 unsigned int a3d; // [sp+10h] [bp-3Ch]@106
|
|
1387 int a3e; // [sp+10h] [bp-3Ch]@129
|
|
1388 int a3f; // [sp+10h] [bp-3Ch]@168
|
|
1389 unsigned int a3g; // [sp+10h] [bp-3Ch]@216
|
|
1390 unsigned int a3h; // [sp+10h] [bp-3Ch]@274
|
|
1391 int a3i; // [sp+10h] [bp-3Ch]@312
|
|
1392 int a3j; // [sp+10h] [bp-3Ch]@336
|
|
1393 int a3k; // [sp+10h] [bp-3Ch]@362
|
|
1394 signed int a2; // [sp+14h] [bp-38h]@7
|
|
1395 unsigned int a2a; // [sp+14h] [bp-38h]@15
|
|
1396 Texture *a2b; // [sp+14h] [bp-38h]@49
|
|
1397 int a2c; // [sp+14h] [bp-38h]@74
|
|
1398 int a2d; // [sp+14h] [bp-38h]@106
|
|
1399 int a2e; // [sp+14h] [bp-38h]@129
|
|
1400 int a2f; // [sp+14h] [bp-38h]@168
|
|
1401 int a2g; // [sp+14h] [bp-38h]@214
|
|
1402 int a2h; // [sp+14h] [bp-38h]@274
|
|
1403 Texture *a2i; // [sp+14h] [bp-38h]@284
|
|
1404 int a2j; // [sp+14h] [bp-38h]@312
|
|
1405 int a2k; // [sp+14h] [bp-38h]@336
|
|
1406 //Player *v217; // [sp+18h] [bp-34h]@1
|
|
1407 int v218; // [sp+1Ch] [bp-30h]@15
|
|
1408 int v219; // [sp+1Ch] [bp-30h]@60
|
|
1409 int v220; // [sp+1Ch] [bp-30h]@94
|
|
1410 int v221; // [sp+1Ch] [bp-30h]@128
|
|
1411 int v222; // [sp+1Ch] [bp-30h]@161
|
|
1412 int v223; // [sp+1Ch] [bp-30h]@213
|
|
1413 char v224; // [sp+1Ch] [bp-30h]@237
|
|
1414 int v225; // [sp+1Ch] [bp-30h]@260
|
|
1415 int v226; // [sp+1Ch] [bp-30h]@298
|
|
1416 int v227; // [sp+1Ch] [bp-30h]@336
|
|
1417 int v228; // [sp+1Ch] [bp-30h]@359
|
|
1418 int v229; // [sp+20h] [bp-2Ch]@15
|
|
1419 int v230; // [sp+20h] [bp-2Ch]@38
|
|
1420 int v231; // [sp+20h] [bp-2Ch]@60
|
|
1421 int v232; // [sp+20h] [bp-2Ch]@94
|
|
1422 int v233; // [sp+20h] [bp-2Ch]@128
|
|
1423 int v234; // [sp+20h] [bp-2Ch]@161
|
|
1424 int v235; // [sp+20h] [bp-2Ch]@197
|
|
1425 int v236; // [sp+20h] [bp-2Ch]@260
|
|
1426 int v237; // [sp+20h] [bp-2Ch]@298
|
|
1427 int v238; // [sp+20h] [bp-2Ch]@336
|
|
1428 int pBodyComplection; // [sp+24h] [bp-28h]@6
|
|
1429 int v240; // [sp+28h] [bp-24h]@7
|
|
1430 unsigned int v241; // [sp+2Ch] [bp-20h]@38
|
|
1431 int v242; // [sp+2Ch] [bp-20h]@197
|
|
1432 unsigned int v243; // [sp+2Ch] [bp-20h]@370
|
|
1433 int v244; // [sp+34h] [bp-18h]@6
|
|
1434 signed int v245; // [sp+34h] [bp-18h]@361
|
|
1435 unsigned int uPlayerID_; // [sp+38h] [bp-14h]@1
|
|
1436 int uPlayerID_a; // [sp+38h] [bp-14h]@9
|
|
1437 signed int IsDwarf; // [sp+40h] [bp-Ch]@4
|
|
1438 int v249; // [sp+40h] [bp-Ch]@358
|
|
1439 //signed int v250; // [sp+44h] [bp-8h]@1
|
|
1440
|
|
1441 pPlayer = pPlayers[uPlayerID];
|
|
1442 uPlayerID_ = uPlayerID;
|
|
1443 pIcons_LOD->LoadTexture("sptext01", TEXTURE_16BIT_PALETTE);
|
|
1444 pSex = pPlayer->GetSexByVoice();
|
|
1445 if ( pPlayer->GetRace() && pPlayer->GetRace() != 1 && pPlayer->GetRace() != 2 )
|
|
1446 {
|
|
1447 IsDwarf = 1;
|
|
1448 pBodyComplection = (pSex != 0) + 2;
|
|
1449 }
|
|
1450 else
|
|
1451 {
|
|
1452 IsDwarf = 0;
|
|
1453 pBodyComplection = pSex != 0;
|
|
1454 }
|
|
1455 v244 = pPlayer->uFace;
|
727
|
1456 pRenderer->ResetTextureClipRect();
|
|
1457 pRenderer->DrawTextureIndexed(0x1D3u, 0, pIcons_LOD->GetTexture(uTextureID_BACKDOLL));//
|
706
|
1458 if ( !IsPlayerWearingWatersuit[uPlayerID_] )
|
|
1459 {
|
|
1460 v21 = pPlayer->pEquipment.uBow; //
|
|
1461 if ( !v21 )
|
|
1462 goto LABEL_59;
|
|
1463 v230 = pPlayer->pEquipment.uBow;
|
|
1464 v22 = (int)&pPlayer->pInventoryItems[v21-1];
|
|
1465 v23 = *(int *)v22;
|
|
1466 v24 = pPaperdoll_BodyX + paperdoll_Weapon[pBodyComplection][2][0] - pItemsTable->pItems[v23].uEquipX;
|
|
1467 a3b = pPaperdoll_BodyY + paperdoll_Weapon[pBodyComplection][2][1] - pItemsTable->pItems[v23].uEquipY;
|
|
1468 v241 = pIcons_LOD->LoadTexture(pItemsTable->pItems[v23].pIconName, TEXTURE_16BIT_PALETTE);
|
|
1469 v25 = *(int *)(v22 + 20);
|
|
1470 if ( !(*(int *)(v22 + 20) & 0xF0) )
|
|
1471 {
|
|
1472 if ( v25 & 2 )
|
|
1473 {
|
|
1474 v27 = (Texture *)(v241 != -1 ? (int)&pIcons_LOD->pTextures[v241] : 0);
|
|
1475 pRenderer->DrawTransparentRedShade(v24, a3b, v27);
|
|
1476 }
|
|
1477 else
|
|
1478 {
|
|
1479 v29 = (v25 & 1) == 0;
|
|
1480 v30 = (char *)&pIcons_LOD->pTextures[v241];
|
|
1481 if ( v29 )
|
|
1482 {
|
|
1483 v27 = (Texture *)(v241 != -1 ? (int)v30 : 0);
|
|
1484 pRenderer->DrawTransparentGreenShade(v24, a3b, (Texture *)(v241 != -1 ? (int)v30 : 0));
|
|
1485 }
|
|
1486 else
|
|
1487 {
|
|
1488 v27 = (Texture *)(v241 != -1 ? (int)v30 : 0);
|
|
1489 pRenderer->DrawTextureTransparent(v24, a3b, (Texture *)(v241 != -1 ? (int)v30 : 0));
|
|
1490 }
|
|
1491 }
|
|
1492 LABEL_57:
|
|
1493 if ( !bRingsShownInCharScreen )
|
710
|
1494 pRenderer->DrawMaskToZBuffer(v24, a3b, v27, v230);
|
706
|
1495 LABEL_59:
|
|
1496 v31 = pPlayer->pEquipment.uCloak;//
|
|
1497 if ( !v31 )
|
|
1498 goto LABEL_93;
|
|
1499 v231 = pPlayer->pEquipment.uCloak;
|
|
1500 v32 = (int)&pPlayer->pInventoryItems[v31-1];
|
|
1501 v219 = v32;
|
|
1502 if ( *(int *)v32 != 525 )
|
|
1503 {
|
|
1504 switch ( *(int *)v32 )
|
|
1505 {
|
|
1506 case 0x212:
|
|
1507 v184 = 6;
|
|
1508 break;
|
|
1509 case 0x223:
|
|
1510 v184 = 7;
|
|
1511 break;
|
|
1512 case 0x224:
|
|
1513 v184 = 8;
|
|
1514 break;
|
|
1515 default:
|
|
1516 if ( *(int *)v32 != 550 )
|
|
1517 {
|
|
1518 v33 = *(int *)v32 - 105;
|
|
1519 LABEL_72:
|
|
1520 if ( v33 < 0 || v33 >= 10 )
|
|
1521 goto LABEL_93;
|
|
1522 LABEL_74:
|
|
1523 v34 = v33 + 10 * pBodyComplection;
|
|
1524 v35 = paperdoll_array_511828[0][v34];//Texture_Cloak
|
|
1525 a2c = pPaperdoll_BodyX + paperdoll_Cloak[0][v34][0];
|
|
1526 v36 = pPaperdoll_BodyY + paperdoll_Cloak[0][v34][1];
|
|
1527 v37 = *(int *)(v32 + 20);
|
|
1528 a3c = v36;
|
|
1529 if ( !(v37 & 0xF0) )
|
|
1530 {
|
|
1531 v41 = v35 + 1;
|
|
1532 if ( v37 & 2 )
|
|
1533 {
|
|
1534 v42 = (Texture *)(v41 != 0 ? (int)&pIcons_LOD->pTextures[v35] : 0);
|
|
1535 pRenderer->DrawTransparentRedShade(a2c, v36, v42);
|
|
1536 }
|
|
1537 else
|
|
1538 {
|
|
1539 v42 = (Texture *)(v41 != 0 ? (int)&pIcons_LOD->pTextures[v35] : 0);
|
|
1540 pRenderer->DrawTextureTransparent(a2c, v36, v42);
|
|
1541 }
|
|
1542 if ( !bRingsShownInCharScreen )
|
710
|
1543 pRenderer->DrawMaskToZBuffer(a2c, a3c, v42, v231);
|
706
|
1544 LABEL_93:
|
|
1545 v240 = 4 * uPlayerID_ - 4;
|
|
1546 pRenderer->DrawTextureTransparent(pPaperdoll_BodyX, pPaperdoll_BodyY,
|
|
1547 (Texture *)(*(unsigned int *)((char *)papredoll_dbods + v240) != -1 ? (int)&pIcons_LOD->pTextures[*(unsigned int *)((char *)papredoll_dbods + v240)] : 0));
|
|
1548 v43 = pPlayer->pEquipment.uBody;//
|
|
1549 if ( !v43 )
|
|
1550 goto LABEL_127;
|
|
1551 v232 = pPlayer->pEquipment.uBody;
|
|
1552 v44 = (int)&pPlayer->pInventoryItems[v43-1];
|
|
1553 v220 = v44;
|
|
1554 if ( *(int *)v44 != 504 )
|
|
1555 {
|
|
1556 if ( *(int *)v44 == 505 )
|
|
1557 {
|
|
1558 v185 = 14;
|
|
1559 }
|
|
1560 else
|
|
1561 {
|
|
1562 if ( *(int *)v44 == 516 )
|
|
1563 {
|
|
1564 v185 = 13;
|
|
1565 }
|
|
1566 else
|
|
1567 {
|
|
1568 if ( *(int *)v44 != 533 )
|
|
1569 {
|
|
1570 v45 = *(int *)v44 - 66;
|
|
1571 LABEL_104:
|
|
1572 if ( v45 < 0 || v45 >= 17 )
|
|
1573 goto LABEL_127;
|
|
1574 LABEL_106:
|
|
1575 v46 = 17 * pBodyComplection + v45;
|
|
1576 a2d = pPaperdoll_BodyX + paperdoll_Armor[0][v46][0];
|
|
1577 v47 = pPaperdoll_BodyY + paperdoll_Armor[0][v46][1];
|
|
1578 v48 = paperdoll_array_511290[0][v46][0];//Texture_Armor
|
|
1579 v49 = *(int *)(v44 + 20);
|
|
1580 a3d = v47;
|
|
1581 if ( !(v49 & 0xF0) )
|
|
1582 {
|
|
1583 v53 = v48 + 1;
|
|
1584 if ( v49 & 2 )
|
|
1585 {
|
|
1586 v54 = (Texture *)(v53 != 0 ? (int)&pIcons_LOD->pTextures[v48] : 0);
|
|
1587 pRenderer->DrawTransparentRedShade(a2d, v47, v54);
|
|
1588 }
|
|
1589 else
|
|
1590 {
|
|
1591 v29 = (v49 & 1) == 0;
|
|
1592 v55 = (char *)&pIcons_LOD->pTextures[v48];
|
|
1593 if ( v29 )
|
|
1594 {
|
|
1595 v54 = (Texture *)(v53 != 0 ? (int)v55 : 0);
|
|
1596 pRenderer->DrawTransparentGreenShade(a2d, v47, v54);
|
|
1597 }
|
|
1598 else
|
|
1599 {
|
|
1600 v54 = (Texture *)(v53 != 0 ? (int)v55 : 0);
|
|
1601 pRenderer->DrawTextureTransparent(a2d, v47, v54);
|
|
1602 }
|
|
1603 }
|
|
1604 if ( !bRingsShownInCharScreen )
|
710
|
1605 pRenderer->DrawMaskToZBuffer(a2d, a3d, v54, v232);
|
706
|
1606 LABEL_127:
|
|
1607 v56 = pPlayer->pEquipment.field_20;
|
|
1608 if ( !v56 )
|
|
1609 goto LABEL_155;
|
|
1610 v233 = pPlayer->pEquipment.field_20;
|
|
1611 v57 = (int)&pPlayer->pInventoryItems[v56-1];
|
|
1612 v221 = v57;
|
|
1613 v58 = *(int *)v57;
|
|
1614 if ( *(int *)v57 == 529 )
|
|
1615 {
|
|
1616 a3e = pPaperdoll_BodyY + paperdoll_Boot[pBodyComplection][5][1];
|
|
1617 a2e = pPaperdoll_BodyX + paperdoll_Boot[pBodyComplection][5][0];
|
|
1618 v59 = papredoll_flying_feet[v244];
|
|
1619 }
|
|
1620 else
|
|
1621 {
|
|
1622 if ( v58 == 512 )
|
|
1623 {
|
|
1624 a3e = pPaperdoll_BodyY + paperdoll_Boot[pBodyComplection][6][1];
|
|
1625 a2e = pPaperdoll_BodyX + paperdoll_Boot[pBodyComplection][6][0];
|
|
1626 v59 = dword_511638[pBodyComplection][5];
|
|
1627 }
|
|
1628 else
|
|
1629 {
|
|
1630 v60 = v58 - 115;
|
|
1631 if ( v60 < 0 || v60 >= 5 )
|
|
1632 {
|
|
1633 a2e = 0;
|
|
1634 a3e = 0;
|
|
1635 v59 = dword_511638[pBodyComplection][0];
|
|
1636 }
|
|
1637 else
|
|
1638 {
|
|
1639 v61 = v60 + 7 * pBodyComplection;
|
|
1640 a3e = pPaperdoll_BodyY + paperdoll_Boot[0][v61][1];
|
|
1641 a2e = pPaperdoll_BodyX + paperdoll_Boot[0][v61][0];
|
|
1642 v59 = dword_511638[0][v60 + 6 * pBodyComplection];
|
|
1643 }
|
|
1644 }
|
|
1645 }
|
|
1646 v62 = *(int *)(v57 + 20);
|
|
1647 if ( !(*(int *)(v57 + 20) & 0xF0) )
|
|
1648 {
|
|
1649 v65 = v59 + 1;
|
|
1650 v66 = (char *)&pIcons_LOD->pTextures[v59];
|
|
1651 if ( v62 & 2 )
|
|
1652 {
|
|
1653 v67 = (Texture *)(v65 != 0 ? (int)v66 : 0);
|
|
1654 pRenderer->DrawTransparentRedShade(a2e, a3e, v67);
|
|
1655 }
|
|
1656 else
|
|
1657 {
|
|
1658 if ( v62 & 1 )
|
|
1659 {
|
|
1660 v67 = (Texture *)(v65 != 0 ? (int)v66 : 0);
|
|
1661 pRenderer->DrawTextureTransparent(a2e, a3e, v67);
|
|
1662 }
|
|
1663 else
|
|
1664 {
|
|
1665 v67 = (Texture *)(v65 != 0 ? (int)v66 : 0);
|
|
1666 pRenderer->DrawTransparentGreenShade(a2e, a3e, v67);
|
|
1667 }
|
|
1668 }
|
|
1669 if ( !bRingsShownInCharScreen )
|
710
|
1670 pRenderer->DrawMaskToZBuffer(a2e, a3e, v67, v233);
|
706
|
1671 LABEL_155:
|
|
1672 v69 = pPlayer->pEquipment.uMainHand;
|
|
1673 uPlayerID_a = 2 * pBodyComplection;
|
|
1674 if ( !v69 || (v70 = *(int *)&pPlayer->pInventoryItems[v69-1], pItemsTable->pItems[v70].uEquipType != 1)
|
|
1675 && (pItemsTable->pItems[v70].uSkillType != 4 || pPlayer->pEquipment.uOffHand) )
|
|
1676 pRenderer->DrawTextureTransparent(pPaperdoll_BodyX + pPaperdoll_LeftHand[pBodyComplection][0],
|
|
1677 pPaperdoll_BodyY + pPaperdoll_LeftHand[pBodyComplection][1],
|
|
1678 (Texture *)(*(unsigned int *)((char *)papredoll_dlads + v240) != -1 ? (int)&pIcons_LOD->pTextures[*(unsigned int *)((char *)papredoll_dlads + v240)] : 0));
|
|
1679 v71 = pPlayer->pEquipment.uBelt;
|
|
1680 if ( v71 )
|
|
1681 {
|
|
1682 v234 = pPlayer->pEquipment.uBelt;
|
|
1683 v72 = (int)&pPlayer->pInventoryItems[v71-1];
|
|
1684 v222 = v72;
|
|
1685 if ( *(int *)v72 == 524 )
|
|
1686 {
|
|
1687 v73 = 5;
|
|
1688 }
|
|
1689 else
|
|
1690 {
|
|
1691 if ( *(int *)v72 == 535 )
|
|
1692 {
|
|
1693 v73 = 6;
|
|
1694 goto LABEL_168;
|
|
1695 }
|
|
1696 v73 = *(int *)v72 - 100;
|
|
1697 }
|
|
1698 if ( v73 >= 0 && v73 < 7 )
|
|
1699 {
|
|
1700 LABEL_168:
|
|
1701 v74 = 7 * pBodyComplection + v73;
|
|
1702 a2f = pPaperdoll_BodyX + paperdoll_Belt[0][v74][0];
|
|
1703 a3f = pPaperdoll_BodyY + paperdoll_Belt[0][v74][1];
|
|
1704 if ( IsDwarf != 1 || v73 == 5 )
|
|
1705 v75 = stru_511718[pBodyComplection].texids[v73];
|
|
1706 else
|
|
1707 v75 = stru_511718[pBodyComplection - 2].texids[v73];
|
|
1708 v76 = *(int *)&pPlayer->field_1F5[36 * v71 + 15];
|
|
1709 if ( !(*(int *)&pPlayer->field_1F5[36 * v71 + 15] & 0xF0) )
|
|
1710 {
|
|
1711 v79 = v75 + 1;
|
|
1712 v80 = (char *)&pIcons_LOD->pTextures[v75];
|
|
1713 if ( v76 & 2 )
|
|
1714 {
|
|
1715 v81 = (Texture *)(v79 != 0 ? (int)v80 : 0);
|
|
1716 pRenderer->DrawTransparentRedShade(a2f, a3f, v81);
|
|
1717 }
|
|
1718 else
|
|
1719 {
|
|
1720 if ( v76 & 1 )
|
|
1721 {
|
|
1722 v81 = (Texture *)(v79 != 0 ? (int)v80 : 0);
|
|
1723 pRenderer->DrawTextureTransparent(a2f, a3f, v81);
|
|
1724 }
|
|
1725 else
|
|
1726 {
|
|
1727 v81 = (Texture *)(v79 != 0 ? (int)v80 : 0);
|
|
1728 pRenderer->DrawTransparentGreenShade(a2f, a3f, v81);
|
|
1729 }
|
|
1730 }
|
|
1731 if ( !bRingsShownInCharScreen )
|
710
|
1732 pRenderer->DrawMaskToZBuffer(a2f, a3f, v81, v234);
|
706
|
1733 goto LABEL_192;
|
|
1734 }
|
|
1735 if ( (*(int *)&pPlayer->field_1F5[36 * v71 + 15] & 0xF0) != 16 )
|
|
1736 {
|
|
1737 if ( (*(int *)&pPlayer->field_1F5[36 * v71 + 15] & 0xF0) == 32 )
|
|
1738 {
|
|
1739 v172 = "sp28a";
|
|
1740 v77 = &pIcons_LOD->pTextures[pIcons_LOD->LoadTexture(v172, TEXTURE_16BIT_PALETTE)];
|
|
1741 dword_50C9A8 -= pEventTimer->uTimeElapsed;
|
|
1742 if ( dword_50C9A8 <= 0 )
|
|
1743 {
|
|
1744 dword_50C9A8 = 0;
|
|
1745 *(char *)(v222 + 20) &= 0xFu;
|
|
1746 ptr_50C9A4 = 0;
|
|
1747 }
|
|
1748 v78 = (double)GetTickCount() * 0.1;
|
|
1749 pRenderer->_4A63E6(a2f, a3f, (Texture *)(v75 != -1 ? (int)&pIcons_LOD->pTextures[v75] : 0), v77, (signed __int64)v78, 0, 255);
|
|
1750 goto LABEL_192;
|
|
1751 }
|
|
1752 if ( (*(int *)&pPlayer->field_1F5[36 * v71 + 15] & 0xF0) == 64 )
|
|
1753 {
|
|
1754 v172 = "sp30a";
|
|
1755 v77 = &pIcons_LOD->pTextures[pIcons_LOD->LoadTexture(v172, TEXTURE_16BIT_PALETTE)];
|
|
1756 dword_50C9A8 -= pEventTimer->uTimeElapsed;
|
|
1757 if ( dword_50C9A8 <= 0 )
|
|
1758 {
|
|
1759 dword_50C9A8 = 0;
|
|
1760 *(char *)(v222 + 20) &= 0xFu;
|
|
1761 ptr_50C9A4 = 0;
|
|
1762 }
|
|
1763 v78 = (double)GetTickCount() * 0.1;
|
|
1764 pRenderer->_4A63E6(a2f, a3f, (Texture *)(v75 != -1 ? (int)&pIcons_LOD->pTextures[v75] : 0), v77, (signed __int64)v78, 0, 255);
|
|
1765 goto LABEL_192;
|
|
1766 }
|
|
1767 if ( (*(int *)&pPlayer->field_1F5[36 * v71 + 15] & 0xF0) == 128 )
|
|
1768 {
|
|
1769 v172 = "sp91a";
|
|
1770 v77 = &pIcons_LOD->pTextures[pIcons_LOD->LoadTexture(v172, TEXTURE_16BIT_PALETTE)];
|
|
1771 dword_50C9A8 -= pEventTimer->uTimeElapsed;
|
|
1772 if ( dword_50C9A8 <= 0 )
|
|
1773 {
|
|
1774 dword_50C9A8 = 0;
|
|
1775 *(char *)(v222 + 20) &= 0xFu;
|
|
1776 ptr_50C9A4 = 0;
|
|
1777 }
|
|
1778 v78 = (double)GetTickCount() * 0.1;
|
|
1779 pRenderer->_4A63E6(a2f, a3f, (Texture *)(v75 != -1 ? (int)&pIcons_LOD->pTextures[v75] : 0), v77, (signed __int64)v78, 0, 255);
|
|
1780 goto LABEL_192;
|
|
1781 }
|
|
1782 }
|
|
1783 v172 = "sptext01";
|
|
1784 v77 = &pIcons_LOD->pTextures[pIcons_LOD->LoadTexture(v172, TEXTURE_16BIT_PALETTE)];
|
|
1785 dword_50C9A8 -= pEventTimer->uTimeElapsed;
|
|
1786 if ( dword_50C9A8 <= 0 )
|
|
1787 {
|
|
1788 dword_50C9A8 = 0;
|
|
1789 *(char *)(v222 + 20) &= 0xFu;
|
|
1790 ptr_50C9A4 = 0;
|
|
1791 }
|
|
1792 v78 = (double)GetTickCount() * 0.1;
|
|
1793 pRenderer->_4A63E6(a2f, a3f, (Texture *)(v75 != -1 ? (int)&pIcons_LOD->pTextures[v75] : 0), v77, (signed __int64)v78, 0, 255);
|
|
1794 goto LABEL_192;
|
|
1795 }
|
|
1796 }
|
|
1797 LABEL_192:
|
|
1798 v82 = pPlayer->pEquipment.uMainHand;
|
|
1799 if ( v82 )
|
|
1800 {
|
|
1801 v83 = *(int *)&pPlayer->pInventoryItems[v82-1];
|
|
1802 if ( pItemsTable->pItems[v83].uEquipType == 1
|
|
1803 || pItemsTable->pItems[v83].uSkillType == 4 && !pPlayer->pEquipment.uOffHand )
|
|
1804 pRenderer->DrawTextureTransparent(pPaperdoll_BodyX + pPaperdoll_SecondLeftHand[0][uPlayerID_a],
|
|
1805 pPaperdoll_BodyY + pPaperdoll_SecondLeftHand[0][uPlayerID_a + 1],
|
|
1806 (Texture *)(*(unsigned int *)((char *)papredoll_dlaus + v240) != -1 ? (int)&pIcons_LOD->pTextures[*(unsigned int *)((char *)papredoll_dlaus + v240)] : 0));
|
|
1807 }
|
|
1808 v84 = pPlayer->pEquipment.uBody;
|
|
1809 v235 = v84;
|
|
1810 v85 = (int)((char *)pPlayer + 36 * v84);
|
|
1811 v242 = v85;
|
|
1812 v86 = *(int *)(v85 + 496);
|
|
1813 v87 = *(int *)(v85 + 496) - 504;
|
|
1814 if ( v87 )
|
|
1815 {
|
|
1816 v88 = v87 - 1;
|
|
1817 if ( v88 )
|
|
1818 {
|
|
1819 v89 = v88 - 11;
|
|
1820 if ( v89 )
|
|
1821 {
|
|
1822 if ( v89 != 17 )
|
|
1823 {
|
|
1824 v90 = v86 - 66;
|
|
1825 LABEL_207:
|
|
1826 if ( v90 < 0 || v90 > 17 )
|
|
1827 {
|
|
1828 LABEL_259:
|
|
1829 v111 = pPlayer->pEquipment.uCloak;
|
|
1830 if ( !v111 )
|
|
1831 goto LABEL_293;
|
|
1832 v236 = pPlayer->pEquipment.uCloak;
|
|
1833 v112 = (int)&pPlayer->pInventoryItems[v111-1];
|
|
1834 v225 = v112;
|
|
1835 v113 = *(int *)v112;
|
|
1836 if ( v113 != 525 )
|
|
1837 {
|
|
1838 switch ( v113 )
|
|
1839 {
|
|
1840 case 530:
|
|
1841 v191 = 6;
|
|
1842 break;
|
|
1843 case 547:
|
|
1844 v191 = 7;
|
|
1845 break;
|
|
1846 case 548:
|
|
1847 v191 = 8;
|
|
1848 break;
|
|
1849 default:
|
|
1850 if ( v113 != 550 )
|
|
1851 {
|
|
1852 v114 = v113 - 105;
|
|
1853 LABEL_272:
|
|
1854 if ( v114 < 0 || v114 >= 10 )
|
|
1855 goto LABEL_293;
|
|
1856 LABEL_274:
|
|
1857 v115 = v114 + 10 * pBodyComplection;
|
|
1858 v116 = dword_511788[v115];
|
|
1859 v115 *= 8;
|
|
1860 v117 = pPaperdoll_BodyX + *(int *)((char *)&dword_4E56B0 + v115);
|
|
1861 a2h = pPaperdoll_BodyX + *(int *)((char *)&dword_4E56B0 + v115);
|
|
1862 a3h = pPaperdoll_BodyY + *(int *)((char *)&dword_4E56B4 + v115);
|
|
1863 if ( v116 == pIcons_LOD->FindTextureByName("pending") )
|
|
1864 {
|
|
1865 LABEL_292:
|
|
1866 LABEL_293:
|
|
1867 if ( v244 == 12 || v244 == 13 )
|
|
1868 {
|
|
1869 v122 = papredoll_dbrds[v244];
|
|
1870 if ( v122 != pIcons_LOD->FindTextureByName("Pending") )
|
|
1871 pRenderer->DrawTextureTransparent(pPaperdoll_BodyX + pPaperdoll_Beards[2 * v244 - 24],
|
|
1872 pPaperdoll_BodyY + pPaperdoll_Beards[2 * v244 - 23],
|
|
1873 (Texture *)(v122 != -1 ? (int)&pIcons_LOD->pTextures[v122] : 0));
|
|
1874 }
|
|
1875 v123 = pPlayer->pEquipment.uHelm;
|
|
1876 if ( !v123 )
|
|
1877 goto LABEL_335;
|
|
1878 v237 = v123;
|
|
1879 v124 = (int)&pPlayer->pInventoryItems[v123-1];
|
|
1880 v226 = v124;
|
|
1881 if ( *(int *)v124 != 521 )
|
|
1882 {
|
|
1883 switch ( *(int *)v124 )
|
|
1884 {
|
|
1885 case 0x20A:
|
|
1886 v192 = 12;
|
|
1887 break;
|
|
1888 case 0x20B:
|
|
1889 v192 = 13;
|
|
1890 break;
|
|
1891 case 0x214:
|
|
1892 v192 = 14;
|
|
1893 break;
|
|
1894 default:
|
|
1895 if ( *(int *)v124 != 544 )
|
|
1896 {
|
|
1897 v125 = *(int *)v124 - 89;
|
|
1898 if ( v125 < 0 || v125 >= 16 )
|
|
1899 goto LABEL_335;
|
|
1900 goto LABEL_312;
|
|
1901 }
|
|
1902 v192 = 15;
|
|
1903 break;
|
|
1904 }
|
|
1905 v125 = v192;
|
|
1906 LABEL_312:
|
|
1907 v126 = 2 * (v125 + 16 * pBodyComplection);
|
|
1908 a2j = pPaperdoll_BodyX + dword_4E58D0[v126];
|
|
1909 a3i = pPaperdoll_BodyY + dword_4E58D4[v126];
|
|
1910 if ( IsDwarf != 1 || *(int *)v124 != 92 )
|
|
1911 v127 = stru_511698[0].texids[v125 + 16 * pSex];
|
|
1912 else
|
|
1913 v127 = papredoll_dbrds[11];
|
|
1914 v128 = *(int *)(v124 + 20);
|
|
1915 if ( *(int *)(v124 + 20) & 0xF0 )
|
|
1916 {
|
|
1917 if ( (*(int *)(v124 + 20) & 0xF0) != 16 )
|
|
1918 {
|
|
1919 if ( (*(int *)(v124 + 20) & 0xF0) == 32 )
|
|
1920 {
|
|
1921 v180 = "sp28a";
|
|
1922 v129 = &pIcons_LOD->pTextures[pIcons_LOD->LoadTexture(v180, TEXTURE_16BIT_PALETTE)];
|
|
1923 dword_50C9A8 -= pEventTimer->uTimeElapsed;
|
|
1924 if ( dword_50C9A8 <= 0 )
|
|
1925 {
|
|
1926 dword_50C9A8 = 0;
|
|
1927 *(char *)(v226 + 20) &= 0xFu;
|
|
1928 ptr_50C9A4 = 0;
|
|
1929 }
|
|
1930 v130 = (double)GetTickCount() * 0.1;
|
|
1931 pRenderer->_4A63E6(a2j, a3i, (Texture *)(v127 != -1 ? (int)&pIcons_LOD->pTextures[v127] : 0),
|
|
1932 v129, (signed __int64)v130, 0, 255);
|
|
1933 goto LABEL_335;
|
|
1934 }
|
|
1935 if ( (*(int *)(v124 + 20) & 0xF0) == 64 )
|
|
1936 {
|
|
1937 v180 = "sp30a";
|
|
1938 v129 = &pIcons_LOD->pTextures[pIcons_LOD->LoadTexture(v180, TEXTURE_16BIT_PALETTE)];
|
|
1939 dword_50C9A8 -= pEventTimer->uTimeElapsed;
|
|
1940 if ( dword_50C9A8 <= 0 )
|
|
1941 {
|
|
1942 dword_50C9A8 = 0;
|
|
1943 *(char *)(v226 + 20) &= 0xFu;
|
|
1944 ptr_50C9A4 = 0;
|
|
1945 }
|
|
1946 v130 = (double)GetTickCount() * 0.1;
|
|
1947 pRenderer->_4A63E6(a2j, a3i, (Texture *)(v127 != -1 ? (int)&pIcons_LOD->pTextures[v127] : 0),
|
|
1948 v129, (signed __int64)v130, 0, 255);
|
|
1949 goto LABEL_335;
|
|
1950 }
|
|
1951 if ( (*(int *)(v124 + 20) & 0xF0) == 128 )
|
|
1952 {
|
|
1953 v180 = "sp91a";
|
|
1954 v129 = &pIcons_LOD->pTextures[pIcons_LOD->LoadTexture(v180, TEXTURE_16BIT_PALETTE)];
|
|
1955 dword_50C9A8 -= pEventTimer->uTimeElapsed;
|
|
1956 if ( dword_50C9A8 <= 0 )
|
|
1957 {
|
|
1958 dword_50C9A8 = 0;
|
|
1959 *(char *)(v226 + 20) &= 0xFu;
|
|
1960 ptr_50C9A4 = 0;
|
|
1961 }
|
|
1962 v130 = (double)GetTickCount() * 0.1;
|
|
1963 pRenderer->_4A63E6(a2j, a3i, (Texture *)(v127 != -1 ? (int)&pIcons_LOD->pTextures[v127] : 0),
|
|
1964 v129, (signed __int64)v130, 0, 255);
|
|
1965 goto LABEL_335;
|
|
1966 }
|
|
1967 }
|
|
1968 v180 = "sptext01";
|
|
1969 v129 = &pIcons_LOD->pTextures[pIcons_LOD->LoadTexture(v180, TEXTURE_16BIT_PALETTE)];
|
|
1970 dword_50C9A8 -= pEventTimer->uTimeElapsed;
|
|
1971 if ( dword_50C9A8 <= 0 )
|
|
1972 {
|
|
1973 dword_50C9A8 = 0;
|
|
1974 *(char *)(v226 + 20) &= 0xFu;
|
|
1975 ptr_50C9A4 = 0;
|
|
1976 }
|
|
1977 v130 = (double)GetTickCount() * 0.1;
|
|
1978 pRenderer->_4A63E6(a2j, a3i, (Texture *)(v127 != -1 ? (int)&pIcons_LOD->pTextures[v127] : 0),
|
|
1979 v129, (signed __int64)v130, 0, 255);
|
|
1980 goto LABEL_335;
|
|
1981 }
|
|
1982 v131 = v127 + 1;
|
|
1983 v132 = (char *)&pIcons_LOD->pTextures[v127];
|
|
1984 if ( v128 & 2 )
|
|
1985 {
|
|
1986 v133 = (Texture *)(v131 != 0 ? (int)v132 : 0);
|
|
1987 pRenderer->DrawTransparentRedShade(a2j, a3i, v133);
|
|
1988 }
|
|
1989 else
|
|
1990 {
|
|
1991 if ( v128 & 1 )
|
|
1992 {
|
|
1993 v133 = (Texture *)(v131 != 0 ? (int)v132 : 0);
|
|
1994 pRenderer->DrawTextureTransparent(a2j, a3i, v133);
|
|
1995 }
|
|
1996 else
|
|
1997 {
|
|
1998 v133 = (Texture *)(v131 != 0 ? (int)v132 : 0);
|
|
1999 pRenderer->DrawTransparentGreenShade(a2j, a3i, v133);
|
|
2000 }
|
|
2001 }
|
|
2002 if ( !bRingsShownInCharScreen )
|
710
|
2003 pRenderer->DrawMaskToZBuffer(a2j, a3i, v133, v237);
|
706
|
2004 LABEL_335:
|
|
2005 v134 = pPlayer->pEquipment.uMainHand;
|
|
2006 if ( !v134 )
|
|
2007 goto LABEL_358;
|
|
2008 v238 = pPlayer->pEquipment.uMainHand;
|
|
2009 v135 = (int)&pPlayer->pInventoryItems[v134-1];
|
|
2010 v227 = v135;
|
|
2011 v136 = *(int *)v135;
|
|
2012 v137 = *(int *)v135;
|
|
2013 a2k = pPaperdoll_BodyX + paperdoll_Weapon[pBodyComplection][1][0] - pItemsTable->pItems[v137].uEquipX;
|
|
2014 a3j = pPaperdoll_BodyY + paperdoll_Weapon[pBodyComplection][1][1] - pItemsTable->pItems[v137].uEquipY;
|
|
2015 if ( v136 == 64 )
|
|
2016 v181 = "item64v1";
|
|
2017 else
|
|
2018 v181 = pItemsTable->pItems[v137].pIconName;
|
|
2019 v138 = pIcons_LOD->LoadTexture(v181, TEXTURE_16BIT_PALETTE);
|
|
2020 v139 = *(int *)(v227 + 20);
|
|
2021 if ( !(*(int *)(v227 + 20) & 0xF0) )
|
|
2022 {
|
|
2023 v142 = v138 + 1;
|
|
2024 v143 = (char *)&pIcons_LOD->pTextures[v138];
|
|
2025 if ( v139 & 2 )
|
|
2026 {
|
|
2027 v144 = (Texture *)(v142 != 0 ? (int)v143 : 0);
|
|
2028 pRenderer->DrawTransparentRedShade(a2k, a3j, v144);
|
|
2029 }
|
|
2030 else
|
|
2031 {
|
|
2032 if ( v139 & 1 )
|
|
2033 {
|
|
2034 v144 = (Texture *)(v142 != 0 ? (int)v143 : 0);
|
|
2035 pRenderer->DrawTextureTransparent(a2k, a3j, v144);
|
|
2036 }
|
|
2037 else
|
|
2038 {
|
|
2039 v144 = (Texture *)(v142 != 0 ? (int)v143 : 0);
|
|
2040 pRenderer->DrawTransparentGreenShade(a2k, a3j, v144);
|
|
2041 }
|
|
2042 }
|
|
2043 if ( !bRingsShownInCharScreen )
|
710
|
2044 pRenderer->DrawMaskToZBuffer(a2k, a3j, v144, v238);
|
706
|
2045 LABEL_358:
|
|
2046 v145 = pPlayer->pEquipment.uOffHand;
|
|
2047 v249 = pPlayer->pEquipment.uOffHand;
|
|
2048 if ( !v145 )
|
|
2049 goto LABEL_393;
|
|
2050 v146 = (int)&pPlayer->pInventoryItems[v145-1];
|
|
2051 v228 = v146;
|
|
2052 v147 = *(int *)v146;
|
|
2053 v148 = *(int *)v146;
|
|
2054 v149 = pItemsTable->pItems[v148].uSkillType;
|
|
2055 if ( v149 != 2 && v149 != 1 )
|
|
2056 {
|
|
2057 v245 = 0;
|
|
2058 v150 = pPaperdoll_BodyX + paperdoll_Weapon[pBodyComplection][0][0] - pItemsTable->pItems[v148].uEquipX;
|
|
2059 a3k = pPaperdoll_BodyY + paperdoll_Weapon[pBodyComplection][0][1] - pItemsTable->pItems[v148].uEquipY;
|
|
2060 goto LABEL_370;
|
|
2061 }
|
|
2062 v151 = v147 - 400;
|
|
2063 v245 = 1;
|
|
2064 if ( v151 )
|
|
2065 {
|
|
2066 v152 = v151 - 3;
|
|
2067 if ( v152 )
|
|
2068 {
|
|
2069 if ( v152 != 12 )
|
|
2070 {
|
|
2071 v150 = pPaperdoll_BodyX + paperdoll_Weapon[pBodyComplection][0][0] - pItemsTable->pItems[v148].uEquipX;
|
|
2072 a3k = pPaperdoll_BodyY + paperdoll_Weapon[pBodyComplection][0][1] - pItemsTable->pItems[v148].uEquipY;
|
|
2073 goto LABEL_370;
|
|
2074 }
|
|
2075 v150 = 595;
|
|
2076 a3k = 33;
|
|
2077 LABEL_370:
|
|
2078 v153 = pIcons_LOD->LoadTexture(pItemsTable->pItems[v148].pIconName, TEXTURE_16BIT_PALETTE);
|
|
2079 v154 = v153;
|
|
2080 v243 = v153;
|
|
2081 v155 = *(int *)(v228 + 20);
|
|
2082 if ( !(*(int *)(v228 + 20) & 0xF0) )
|
|
2083 {
|
|
2084 if ( v155 & 2 )
|
|
2085 {
|
|
2086 v159 = (Texture *)(v243 != -1 ? (int)&pIcons_LOD->pTextures[v243] : 0);
|
|
2087 pRenderer->DrawTransparentRedShade(v150, a3k, v159);
|
|
2088 }
|
|
2089 else
|
|
2090 {
|
|
2091 v29 = (v155 & 1) == 0;
|
|
2092 v160 = (char *)&pIcons_LOD->pTextures[v243];
|
|
2093 if ( v29 )
|
|
2094 {
|
|
2095 v159 = (Texture *)(v243 != -1 ? (int)v160 : 0);
|
|
2096 pRenderer->DrawTransparentGreenShade(v150, a3k, (Texture *)(v243 != -1 ? (int)v160 : 0));
|
|
2097 }
|
|
2098 else
|
|
2099 {
|
|
2100 v159 = (Texture *)(v243 != -1 ? (int)v160 : 0);
|
|
2101 pRenderer->DrawTextureTransparent(v150, a3k, (Texture *)(v243 != -1 ? (int)v160 : 0));
|
|
2102 }
|
|
2103 }
|
|
2104 if ( !bRingsShownInCharScreen )
|
710
|
2105 pRenderer->DrawMaskToZBuffer(v150, a3k, v159, v249);
|
706
|
2106 if ( v245 )
|
|
2107 pRenderer->DrawTextureTransparent(pPaperdoll_BodyX + pPaperdollLeftEmptyHand[uPlayerID_a],
|
|
2108 pPaperdoll_BodyY + pPaperdollLeftEmptyHand[uPlayerID_a + 1],
|
|
2109 (Texture *)(*(unsigned int *)((char *)papredoll_dlhs
|
|
2110 + v240) != -1 ? (int)&pIcons_LOD->pTextures[*(unsigned int *)((char *)papredoll_dlhs + v240)] : 0));
|
|
2111 goto LABEL_393;
|
|
2112 }
|
|
2113 if ( (*(int *)(v228 + 20) & 0xF0) != 16 )
|
|
2114 {
|
|
2115 if ( (*(int *)(v228 + 20) & 0xF0) == 32 )
|
|
2116 {
|
|
2117 v183 = "sp28a";
|
|
2118 }
|
|
2119 else
|
|
2120 {
|
|
2121 if ( (*(int *)(v228 + 20) & 0xF0) != 64 )
|
|
2122 {
|
|
2123 v156 = pIcons_LOD;
|
|
2124 if ( (*(int *)(v228 + 20) & 0xF0) == 128 )
|
|
2125 {
|
|
2126 v183 = "sp91a";
|
|
2127 v157 = &pIcons_LOD->pTextures[v156->LoadTexture(v183, TEXTURE_16BIT_PALETTE)];
|
|
2128 dword_50C9A8 -= pEventTimer->uTimeElapsed;
|
|
2129 if ( dword_50C9A8 <= 0 )
|
|
2130 {
|
|
2131 dword_50C9A8 = 0;
|
|
2132 *(char *)(v228 + 20) &= 0xFu;
|
|
2133 ptr_50C9A4 = 0;
|
|
2134 }
|
|
2135 v158 = (double)GetTickCount() * 0.1;
|
|
2136 pRenderer->_4A63E6(v150, a3k, (Texture *)(v154 != -1 ? (int)&pIcons_LOD->pTextures[v154] : 0),
|
|
2137 v157, (signed __int64)v158, 0, 255);
|
|
2138 if ( v245 )
|
|
2139 pRenderer->DrawTextureTransparent(pPaperdoll_BodyX + pPaperdollLeftEmptyHand[uPlayerID_a],
|
|
2140 pPaperdoll_BodyY + pPaperdollLeftEmptyHand[uPlayerID_a + 1],
|
|
2141 (Texture *)(*(unsigned int *)((char *)papredoll_dlhs
|
|
2142 + v240) != -1 ? (int)&pIcons_LOD->pTextures[*(unsigned int *)((char *)papredoll_dlhs + v240)] : 0));
|
|
2143 goto LABEL_393;
|
|
2144 }
|
|
2145 v183 = "sptext01";
|
|
2146 v157 = &pIcons_LOD->pTextures[v156->LoadTexture(v183, TEXTURE_16BIT_PALETTE)];
|
|
2147 dword_50C9A8 -= pEventTimer->uTimeElapsed;
|
|
2148 if ( dword_50C9A8 <= 0 )
|
|
2149 {
|
|
2150 dword_50C9A8 = 0;
|
|
2151 *(char *)(v228 + 20) &= 0xFu;
|
|
2152 ptr_50C9A4 = 0;
|
|
2153 }
|
|
2154 v158 = (double)GetTickCount() * 0.1;
|
|
2155 pRenderer->_4A63E6(v150, a3k, (Texture *)(v154 != -1 ? (int)&pIcons_LOD->pTextures[v154] : 0),
|
|
2156 v157, (signed __int64)v158, 0, 255);
|
|
2157 if ( v245 )
|
|
2158 pRenderer->DrawTextureTransparent(pPaperdoll_BodyX + pPaperdollLeftEmptyHand[uPlayerID_a],
|
|
2159 pPaperdoll_BodyY + pPaperdollLeftEmptyHand[uPlayerID_a + 1],
|
|
2160 (Texture *)(*(unsigned int *)((char *)papredoll_dlhs
|
|
2161 + v240) != -1 ? (int)&pIcons_LOD->pTextures[*(unsigned int *)((char *)papredoll_dlhs + v240)] : 0));
|
|
2162 goto LABEL_393;
|
|
2163 }
|
|
2164 v183 = "sp30a";
|
|
2165 }
|
|
2166 v156 = pIcons_LOD;
|
|
2167 v157 = &pIcons_LOD->pTextures[v156->LoadTexture(v183, TEXTURE_16BIT_PALETTE)];
|
|
2168 dword_50C9A8 -= pEventTimer->uTimeElapsed;
|
|
2169 if ( dword_50C9A8 <= 0 )
|
|
2170 {
|
|
2171 dword_50C9A8 = 0;
|
|
2172 *(char *)(v228 + 20) &= 0xFu;
|
|
2173 ptr_50C9A4 = 0;
|
|
2174 }
|
|
2175 v158 = (double)GetTickCount() * 0.1;
|
|
2176 pRenderer->_4A63E6(v150, a3k, (Texture *)(v154 != -1 ? (int)&pIcons_LOD->pTextures[v154] : 0),
|
|
2177 v157, (signed __int64)v158, 0, 255);
|
|
2178 if ( v245 )
|
|
2179 pRenderer->DrawTextureTransparent(pPaperdoll_BodyX + pPaperdollLeftEmptyHand[uPlayerID_a],
|
|
2180 pPaperdoll_BodyY + pPaperdollLeftEmptyHand[uPlayerID_a + 1],
|
|
2181 (Texture *)(*(unsigned int *)((char *)papredoll_dlhs
|
|
2182 + v240) != -1 ? (int)&pIcons_LOD->pTextures[*(unsigned int *)((char *)papredoll_dlhs + v240)] : 0));
|
|
2183 goto LABEL_393;
|
|
2184 }
|
|
2185 v156 = pIcons_LOD;
|
|
2186 v183 = "sptext01";
|
|
2187 v157 = &pIcons_LOD->pTextures[v156->LoadTexture(v183, TEXTURE_16BIT_PALETTE)];
|
|
2188 dword_50C9A8 -= pEventTimer->uTimeElapsed;
|
|
2189 if ( dword_50C9A8 <= 0 )
|
|
2190 {
|
|
2191 dword_50C9A8 = 0;
|
|
2192 *(char *)(v228 + 20) &= 0xFu;
|
|
2193 ptr_50C9A4 = 0;
|
|
2194 }
|
|
2195 v158 = (double)GetTickCount() * 0.1;
|
|
2196 pRenderer->_4A63E6(v150, a3k, (Texture *)(v154 != -1 ? (int)&pIcons_LOD->pTextures[v154] : 0),
|
|
2197 v157, (signed __int64)v158, 0, 255);
|
|
2198 if ( v245 )
|
|
2199 pRenderer->DrawTextureTransparent(pPaperdoll_BodyX + pPaperdollLeftEmptyHand[uPlayerID_a],
|
|
2200 pPaperdoll_BodyY + pPaperdollLeftEmptyHand[uPlayerID_a + 1],
|
|
2201 (Texture *)(*(unsigned int *)((char *)papredoll_dlhs
|
|
2202 + v240) != -1 ? (int)&pIcons_LOD->pTextures[*(unsigned int *)((char *)papredoll_dlhs + v240)] : 0));
|
|
2203 goto LABEL_393;
|
|
2204 }
|
|
2205 a3k = 28;
|
|
2206 }
|
|
2207 else
|
|
2208 {
|
|
2209 a3k = 86;
|
|
2210 }
|
|
2211 v150 = 596;
|
|
2212 goto LABEL_370;
|
|
2213 }
|
|
2214 if ( (*(int *)(v227 + 20) & 0xF0) != 16 )
|
|
2215 {
|
|
2216 if ( (*(int *)(v227 + 20) & 0xF0) == 32 )
|
|
2217 {
|
|
2218 v182 = "sp28a";
|
|
2219 v140 = &pIcons_LOD->pTextures[pIcons_LOD->LoadTexture(v182, TEXTURE_16BIT_PALETTE)];
|
|
2220 dword_50C9A8 -= pEventTimer->uTimeElapsed;
|
|
2221 if ( dword_50C9A8 <= 0 )
|
|
2222 {
|
|
2223 dword_50C9A8 = 0;
|
|
2224 *(char *)(v227 + 20) &= 0xFu;
|
|
2225 ptr_50C9A4 = 0;
|
|
2226 }
|
|
2227 v141 = (double)GetTickCount() * 0.1;
|
|
2228 pRenderer->_4A63E6(a2k, a3j, (Texture *)(v138 != -1 ? (int)&pIcons_LOD->pTextures[v138] : 0),
|
|
2229 v140, (signed __int64)v141, 0, 255);
|
|
2230 goto LABEL_358;
|
|
2231 }
|
|
2232 if ( (*(int *)(v227 + 20) & 0xF0) == 64 )
|
|
2233 {
|
|
2234 v182 = "sp30a";
|
|
2235 v140 = &pIcons_LOD->pTextures[pIcons_LOD->LoadTexture(v182, TEXTURE_16BIT_PALETTE)];
|
|
2236 dword_50C9A8 -= pEventTimer->uTimeElapsed;
|
|
2237 if ( dword_50C9A8 <= 0 )
|
|
2238 {
|
|
2239 dword_50C9A8 = 0;
|
|
2240 *(char *)(v227 + 20) &= 0xFu;
|
|
2241 ptr_50C9A4 = 0;
|
|
2242 }
|
|
2243 v141 = (double)GetTickCount() * 0.1;
|
|
2244 pRenderer->_4A63E6(a2k, a3j, (Texture *)(v138 != -1 ? (int)&pIcons_LOD->pTextures[v138] : 0),
|
|
2245 v140, (signed __int64)v141, 0, 255);
|
|
2246 goto LABEL_358;
|
|
2247 }
|
|
2248 if ( (*(int *)(v227 + 20) & 0xF0) == 128 )
|
|
2249 {
|
|
2250 v182 = "sp91a";
|
|
2251 v140 = &pIcons_LOD->pTextures[pIcons_LOD->LoadTexture(v182, TEXTURE_16BIT_PALETTE)];
|
|
2252 dword_50C9A8 -= pEventTimer->uTimeElapsed;
|
|
2253 if ( dword_50C9A8 <= 0 )
|
|
2254 {
|
|
2255 dword_50C9A8 = 0;
|
|
2256 *(char *)(v227 + 20) &= 0xFu;
|
|
2257 ptr_50C9A4 = 0;
|
|
2258 }
|
|
2259 v141 = (double)GetTickCount() * 0.1;
|
|
2260 pRenderer->_4A63E6(a2k, a3j, (Texture *)(v138 != -1 ? (int)&pIcons_LOD->pTextures[v138] : 0),
|
|
2261 v140, (signed __int64)v141, 0, 255);
|
|
2262 goto LABEL_358;
|
|
2263 }
|
|
2264 }
|
|
2265 v182 = "sptext01";
|
|
2266 v140 = &pIcons_LOD->pTextures[pIcons_LOD->LoadTexture(v182, TEXTURE_16BIT_PALETTE)];
|
|
2267 dword_50C9A8 -= pEventTimer->uTimeElapsed;
|
|
2268 if ( dword_50C9A8 <= 0 )
|
|
2269 {
|
|
2270 dword_50C9A8 = 0;
|
|
2271 *(char *)(v227 + 20) &= 0xFu;
|
|
2272 ptr_50C9A4 = 0;
|
|
2273 }
|
|
2274 v141 = (double)GetTickCount() * 0.1;
|
|
2275 pRenderer->_4A63E6(a2k, a3j, (Texture *)(v138 != -1 ? (int)&pIcons_LOD->pTextures[v138] : 0),
|
|
2276 v140, (signed __int64)v141, 0, 255);
|
|
2277 goto LABEL_358;
|
|
2278 }
|
|
2279 v125 = 11;
|
|
2280 if ( v125 < 0 || v125 >= 16 )
|
|
2281 goto LABEL_335;
|
|
2282 goto LABEL_312;
|
|
2283 }
|
|
2284 if ( !(*(int *)(v225 + 20) & 0xF0) )
|
|
2285 {
|
|
2286 v119 = v116 + 1;
|
|
2287 v120 = (char *)&pIcons_LOD->pTextures[v116];
|
|
2288 if ( *(int *)(v225 + 20) & 2 )
|
|
2289 {
|
|
2290 v121 = (Texture *)(v119 != 0 ? (int)v120 : 0);
|
|
2291 pRenderer->DrawTransparentRedShade(a2h, a3h, v121);
|
|
2292 }
|
|
2293 else
|
|
2294 {
|
|
2295 v121 = (Texture *)(v119 != 0 ? (int)v120 : 0);
|
|
2296 pRenderer->DrawTextureTransparent(a2h, a3h, v121);
|
|
2297 }
|
|
2298 if ( !bRingsShownInCharScreen )
|
710
|
2299 pRenderer->DrawMaskToZBuffer(a2h, a3h, v121, v236);
|
706
|
2300 goto LABEL_292;
|
|
2301 }
|
|
2302 if ( (*(int *)(v225 + 20) & 0xF0) != 16 )
|
|
2303 {
|
|
2304 if ( (*(int *)(v225 + 20) & 0xF0) == 32 )
|
|
2305 {
|
|
2306 v179 = "sp28a";
|
|
2307 a2i = &pIcons_LOD->pTextures[pIcons_LOD->LoadTexture(v179, TEXTURE_16BIT_PALETTE)];
|
|
2308 dword_50C9A8 -= pEventTimer->uTimeElapsed;
|
|
2309 if ( dword_50C9A8 <= 0 )
|
|
2310 {
|
|
2311 dword_50C9A8 = 0;
|
|
2312 *(char *)(v225 + 20) &= 0xFu;
|
|
2313 ptr_50C9A4 = 0;
|
|
2314 }
|
|
2315 v118 = (double)GetTickCount() * 0.1;
|
|
2316 pRenderer->_4A63E6(v117, a3h, (Texture *)(v116 != -1 ? (int)&pIcons_LOD->pTextures[v116] : 0),
|
|
2317 a2i, (signed __int64)v118, 0, 255);
|
|
2318 goto LABEL_292;
|
|
2319 }
|
|
2320 if ( (*(int *)(v225 + 20) & 0xF0) == 64 )
|
|
2321 {
|
|
2322 v179 = "sp30a";
|
|
2323 a2i = &pIcons_LOD->pTextures[pIcons_LOD->LoadTexture(v179, TEXTURE_16BIT_PALETTE)];
|
|
2324 dword_50C9A8 -= pEventTimer->uTimeElapsed;
|
|
2325 if ( dword_50C9A8 <= 0 )
|
|
2326 {
|
|
2327 dword_50C9A8 = 0;
|
|
2328 *(char *)(v225 + 20) &= 0xFu;
|
|
2329 ptr_50C9A4 = 0;
|
|
2330 }
|
|
2331 v118 = (double)GetTickCount() * 0.1;
|
|
2332 pRenderer->_4A63E6(v117, a3h, (Texture *)(v116 != -1 ? (int)&pIcons_LOD->pTextures[v116] : 0),
|
|
2333 a2i, (signed __int64)v118, 0, 255);
|
|
2334 goto LABEL_292;
|
|
2335 }
|
|
2336 if ( (*(int *)(v225 + 20) & 0xF0) == 128 )
|
|
2337 {
|
|
2338 v179 = "sp91a";
|
|
2339 a2i = &pIcons_LOD->pTextures[pIcons_LOD->LoadTexture(v179, TEXTURE_16BIT_PALETTE)];
|
|
2340 dword_50C9A8 -= pEventTimer->uTimeElapsed;
|
|
2341 if ( dword_50C9A8 <= 0 )
|
|
2342 {
|
|
2343 dword_50C9A8 = 0;
|
|
2344 *(char *)(v225 + 20) &= 0xFu;
|
|
2345 ptr_50C9A4 = 0;
|
|
2346 }
|
|
2347 v118 = (double)GetTickCount() * 0.1;
|
|
2348 pRenderer->_4A63E6(v117, a3h, (Texture *)(v116 != -1 ? (int)&pIcons_LOD->pTextures[v116] : 0),
|
|
2349 a2i, (signed __int64)v118, 0, 255);
|
|
2350 goto LABEL_292;
|
|
2351 }
|
|
2352 }
|
|
2353 v179 = "sptext01";
|
|
2354 a2i = &pIcons_LOD->pTextures[pIcons_LOD->LoadTexture(v179, TEXTURE_16BIT_PALETTE)];
|
|
2355 dword_50C9A8 -= pEventTimer->uTimeElapsed;
|
|
2356 if ( dword_50C9A8 <= 0 )
|
|
2357 {
|
|
2358 dword_50C9A8 = 0;
|
|
2359 *(char *)(v225 + 20) &= 0xFu;
|
|
2360 ptr_50C9A4 = 0;
|
|
2361 }
|
|
2362 v118 = (double)GetTickCount() * 0.1;
|
|
2363 pRenderer->_4A63E6(v117, a3h, (Texture *)(v116 != -1 ? (int)&pIcons_LOD->pTextures[v116] : 0),
|
|
2364 a2i, (signed __int64)v118, 0, 255);
|
|
2365 goto LABEL_292;
|
|
2366 }
|
|
2367 v191 = 9;
|
|
2368 break;
|
|
2369 }
|
|
2370 v114 = v191;
|
|
2371 goto LABEL_274;
|
|
2372 }
|
|
2373 v114 = 5;
|
|
2374 goto LABEL_272;
|
|
2375 }
|
|
2376 LABEL_209:
|
|
2377 if ( pPlayer->pEquipment.uMainHand
|
|
2378 && (pPlayer->GetEquippedItemEquipType(1u) == 1
|
|
2379 || pPlayer->GetEquippedItemSkillType(EQUIP_TWO_HANDED) == 4
|
|
2380 && !pPlayer->pEquipment.uOffHand) )
|
|
2381 {
|
|
2382 v91 = 17 * pBodyComplection + v90;
|
|
2383 v92 = v91;
|
|
2384 v223 = paperdoll_array_511290[0][v91][2];
|
|
2385 if ( v223 == pIcons_LOD->FindTextureByName("pending") )
|
|
2386 {
|
|
2387 v93 = 2 * v91;
|
|
2388 v94 = paperdoll_array_511290[0][v92][1];
|
|
2389 a2g = pPaperdoll_BodyX + paperdoll_shoulder[0][0][v93];
|
|
2390 v95 = paperdoll_shoulder[0][0][v93 + 1];
|
|
2391 }
|
|
2392 else
|
|
2393 {
|
|
2394 v94 = v223;
|
|
2395 a2g = pPaperdoll_BodyX + dword_4E5270[2 * v91];
|
|
2396 v95 = dword_4E5270[2 * v91 + 1];
|
|
2397 }
|
|
2398 a3g = pPaperdoll_BodyY + v95;
|
|
2399 if ( v94 == pIcons_LOD->FindTextureByName("pending") )
|
|
2400 goto LABEL_259;
|
|
2401 if ( *(int *)(v242 + 516) & 0xF0 )
|
|
2402 {
|
|
2403 if ( (*(int *)(v242 + 516) & 0xF0) != 16 )
|
|
2404 {
|
|
2405 if ( (*(int *)(v242 + 516) & 0xF0) == 32 )
|
|
2406 {
|
|
2407 v173 = "sp28a";
|
|
2408 v96 = (char *)&pIcons_LOD->pTextures[pIcons_LOD->LoadTexture(v173, TEXTURE_16BIT_PALETTE)];
|
|
2409 dword_50C9A8 -= pEventTimer->uTimeElapsed;
|
|
2410 if ( dword_50C9A8 <= 0 )
|
|
2411 {
|
|
2412 dword_50C9A8 = 0;
|
|
2413 *(char *)(v242 + 516) &= 0xFu;
|
|
2414 ptr_50C9A4 = 0;
|
|
2415 }
|
|
2416 v187 = 255;
|
|
2417 v174 = 0;
|
|
2418 v97 = (double)GetTickCount();
|
|
2419 pRenderer->_4A63E6(a2g, a3g, (Texture *)(v94 != -1 ? (int)&pIcons_LOD->pTextures[v94] : 0),
|
|
2420 (Texture *)v96, (signed __int64)(v97 * 0.1), v174, v187);
|
|
2421 goto LABEL_259;
|
|
2422 }
|
|
2423 if ( (*(int *)(v242 + 516) & 0xF0) == 64 )
|
|
2424 {
|
|
2425 v173 = "sp30a";
|
|
2426 v96 = (char *)&pIcons_LOD->pTextures[pIcons_LOD->LoadTexture(v173, TEXTURE_16BIT_PALETTE)];
|
|
2427 dword_50C9A8 -= pEventTimer->uTimeElapsed;
|
|
2428 if ( dword_50C9A8 <= 0 )
|
|
2429 {
|
|
2430 dword_50C9A8 = 0;
|
|
2431 *(char *)(v242 + 516) &= 0xFu;
|
|
2432 ptr_50C9A4 = 0;
|
|
2433 }
|
|
2434 v187 = 255;
|
|
2435 v174 = 0;
|
|
2436 v97 = (double)GetTickCount();
|
|
2437 pRenderer->_4A63E6(a2g, a3g, (Texture *)(v94 != -1 ? (int)&pIcons_LOD->pTextures[v94] : 0),
|
|
2438 (Texture *)v96, (signed __int64)(v97 * 0.1), v174, v187);
|
|
2439 goto LABEL_259;
|
|
2440 }
|
|
2441 if ( (*(int *)(v242 + 516) & 0xF0) == 128 )
|
|
2442 {
|
|
2443 v173 = "sp91a";
|
|
2444 v96 = (char *)&pIcons_LOD->pTextures[pIcons_LOD->LoadTexture(v173, TEXTURE_16BIT_PALETTE)];
|
|
2445 dword_50C9A8 -= pEventTimer->uTimeElapsed;
|
|
2446 if ( dword_50C9A8 <= 0 )
|
|
2447 {
|
|
2448 dword_50C9A8 = 0;
|
|
2449 *(char *)(v242 + 516) &= 0xFu;
|
|
2450 ptr_50C9A4 = 0;
|
|
2451 }
|
|
2452 v187 = 255;
|
|
2453 v174 = 0;
|
|
2454 v97 = (double)GetTickCount();
|
|
2455 pRenderer->_4A63E6(a2g, a3g, (Texture *)(v94 != -1 ? (int)&pIcons_LOD->pTextures[v94] : 0),
|
|
2456 (Texture *)v96, (signed __int64)(v97 * 0.1), v174, v187);
|
|
2457 goto LABEL_259;
|
|
2458 }
|
|
2459 }
|
|
2460 v173 = "sptext01";
|
|
2461 v96 = (char *)&pIcons_LOD->pTextures[pIcons_LOD->LoadTexture(v173, TEXTURE_16BIT_PALETTE)];
|
|
2462 dword_50C9A8 -= pEventTimer->uTimeElapsed;
|
|
2463 if ( dword_50C9A8 <= 0 )
|
|
2464 {
|
|
2465 dword_50C9A8 = 0;
|
|
2466 *(char *)(v242 + 516) &= 0xFu;
|
|
2467 ptr_50C9A4 = 0;
|
|
2468 }
|
|
2469 v187 = 255;
|
|
2470 v174 = 0;
|
|
2471 v97 = (double)GetTickCount();
|
|
2472 pRenderer->_4A63E6(a2g, a3g, (Texture *)(v94 != -1 ? (int)&pIcons_LOD->pTextures[v94] : 0),
|
|
2473 (Texture *)v96, (signed __int64)(v97 * 0.1), v174, v187);
|
|
2474 goto LABEL_259;
|
|
2475 }
|
|
2476 v98 = v94 + 1;
|
|
2477 v99 = (char *)&pIcons_LOD->pTextures[v94];
|
|
2478 v100 = pRenderer;
|
|
2479 if ( *(int *)(v242 + 516) & 2 )
|
|
2480 {
|
|
2481 v101 = (Texture *)(v98 != 0 ? (int)v99 : 0);
|
|
2482 v188 = v101;
|
|
2483 v175 = a3g;
|
|
2484 v163 = a2g;
|
|
2485 v100->DrawTransparentRedShade(v163, v175, v188);
|
|
2486 if ( !bRingsShownInCharScreen )
|
710
|
2487 pRenderer->DrawMaskToZBuffer(a2g, a3g, v101, v235);
|
706
|
2488 goto LABEL_259;
|
|
2489 }
|
|
2490 if ( *(char *)(v242 + 516) & 1 )
|
|
2491 {
|
|
2492 v101 = (Texture *)(v98 != 0 ? (int)v99 : 0);
|
|
2493 v189 = v101;
|
|
2494 v176 = a3g;
|
|
2495 v164 = a2g;
|
|
2496 pRenderer->DrawTextureTransparent(v164, v176, v189);
|
|
2497 if ( !bRingsShownInCharScreen )
|
710
|
2498 pRenderer->DrawMaskToZBuffer(a2g, a3g, v101, v235);
|
706
|
2499 goto LABEL_259;
|
|
2500 }
|
|
2501 v101 = (Texture *)(v98 != 0 ? (int)v99 : 0);
|
|
2502 v190 = v101;
|
|
2503 v177 = a3g;
|
|
2504 v165 = a2g;
|
|
2505 pRenderer->DrawTransparentGreenShade(v165, v177, v190);
|
|
2506 if ( !bRingsShownInCharScreen )
|
710
|
2507 pRenderer->DrawMaskToZBuffer(a2g, a3g, v101, v235);
|
706
|
2508 goto LABEL_259;
|
|
2509 }
|
|
2510 v102 = 17 * pBodyComplection + v90;
|
|
2511 v94 = paperdoll_array_511290[0][v102][1];
|
|
2512 if ( v94 == pIcons_LOD->FindTextureByName("pending") )
|
|
2513 goto LABEL_259;
|
|
2514 v103 = pPaperdoll_BodyX + paperdoll_shoulder[0][v102][0];
|
|
2515 v104 = pPaperdoll_BodyY + paperdoll_shoulder[0][v102][1];
|
|
2516 v224 = *(int *)(v242 + 516);
|
|
2517 v105 = *(int *)(v242 + 516) & 0xF0;
|
|
2518 a2g = pPaperdoll_BodyX + paperdoll_shoulder[0][v102][0];
|
|
2519 a3g = pPaperdoll_BodyY + paperdoll_shoulder[0][v102][1];
|
|
2520 if ( !v105 )
|
|
2521 {
|
|
2522 v109 = v94 + 1;
|
|
2523 v110 = (char *)&pIcons_LOD->pTextures[v94];
|
|
2524 if ( v224 & 2 )
|
|
2525 {
|
|
2526 v101 = (Texture *)(v109 != 0 ? (int)v110 : 0);
|
|
2527 v188 = v101;
|
|
2528 v175 = v104;
|
|
2529 v163 = v103;
|
|
2530 v100 = pRenderer;
|
|
2531 v100->DrawTransparentRedShade(v163, v175, v188);
|
|
2532 if ( !bRingsShownInCharScreen )
|
710
|
2533 pRenderer->DrawMaskToZBuffer(a2g, a3g, v101, v235);
|
706
|
2534 goto LABEL_259;
|
|
2535 }
|
|
2536 if ( v224 & 1 )
|
|
2537 {
|
|
2538 v101 = (Texture *)(v109 != 0 ? (int)v110 : 0);
|
|
2539 v189 = v101;
|
|
2540 v176 = v104;
|
|
2541 v164 = v103;
|
|
2542 v100 = pRenderer;
|
|
2543 pRenderer->DrawTextureTransparent(v164, v176, v189);
|
|
2544 if ( !bRingsShownInCharScreen )
|
710
|
2545 pRenderer->DrawMaskToZBuffer(a2g, a3g, v101, v235);
|
706
|
2546 goto LABEL_259;
|
|
2547 }
|
|
2548 v101 = (Texture *)(v109 != 0 ? (int)v110 : 0);
|
|
2549 v190 = v101;
|
|
2550 v177 = v104;
|
|
2551 v165 = v103;
|
|
2552 v100 = pRenderer;
|
|
2553 pRenderer->DrawTransparentGreenShade(v165, v177, v190);
|
|
2554 if ( !bRingsShownInCharScreen )
|
710
|
2555 pRenderer->DrawMaskToZBuffer(a2g, a3g, v101, v235);
|
706
|
2556 goto LABEL_259;
|
|
2557 }
|
|
2558 v106 = v105 - 16;
|
|
2559 if ( v106 )
|
|
2560 {
|
|
2561 v107 = v106 - 16;
|
|
2562 if ( !v107 )
|
|
2563 {
|
|
2564 v178 = "sp28a";
|
|
2565 v96 = (char *)&pIcons_LOD->pTextures[pIcons_LOD->LoadTexture(v178, TEXTURE_16BIT_PALETTE)];
|
|
2566 dword_50C9A8 -= pEventTimer->uTimeElapsed;
|
|
2567 if ( dword_50C9A8 <= 0 )
|
|
2568 {
|
|
2569 dword_50C9A8 = 0;
|
|
2570 *(char *)(v242 + 516) &= 0xFu;
|
|
2571 ptr_50C9A4 = 0;
|
|
2572 }
|
|
2573 v187 = 255;
|
|
2574 v174 = 0;
|
|
2575 v97 = (double)GetTickCount();
|
|
2576 pRenderer->_4A63E6(a2g, a3g, (Texture *)(v94 != -1 ? (int)&pIcons_LOD->pTextures[v94] : 0),
|
|
2577 (Texture *)v96, (signed __int64)(v97 * 0.1), v174, v187);
|
|
2578 goto LABEL_259;
|
|
2579 }
|
|
2580 v108 = v107 - 32;
|
|
2581 if ( !v108 )
|
|
2582 {
|
|
2583 v178 = "sp30a";
|
|
2584 v96 = (char *)&pIcons_LOD->pTextures[pIcons_LOD->LoadTexture(v178, TEXTURE_16BIT_PALETTE)];
|
|
2585 dword_50C9A8 -= pEventTimer->uTimeElapsed;
|
|
2586 if ( dword_50C9A8 <= 0 )
|
|
2587 {
|
|
2588 dword_50C9A8 = 0;
|
|
2589 *(char *)(v242 + 516) &= 0xFu;
|
|
2590 ptr_50C9A4 = 0;
|
|
2591 }
|
|
2592 v187 = 255;
|
|
2593 v174 = 0;
|
|
2594 v97 = (double)GetTickCount();
|
|
2595 pRenderer->_4A63E6(a2g, a3g, (Texture *)(v94 != -1 ? (int)&pIcons_LOD->pTextures[v94] : 0),
|
|
2596 (Texture *)v96, (signed __int64)(v97 * 0.1), v174, v187);
|
|
2597 goto LABEL_259;
|
|
2598 }
|
|
2599 if ( v108 == 64 )
|
|
2600 {
|
|
2601 v178 = "sp91a";
|
|
2602 v96 = (char *)&pIcons_LOD->pTextures[pIcons_LOD->LoadTexture(v178, TEXTURE_16BIT_PALETTE)];
|
|
2603 dword_50C9A8 -= pEventTimer->uTimeElapsed;
|
|
2604 if ( dword_50C9A8 <= 0 )
|
|
2605 {
|
|
2606 dword_50C9A8 = 0;
|
|
2607 *(char *)(v242 + 516) &= 0xFu;
|
|
2608 ptr_50C9A4 = 0;
|
|
2609 }
|
|
2610 v187 = 255;
|
|
2611 v174 = 0;
|
|
2612 v97 = (double)GetTickCount();
|
|
2613 pRenderer->_4A63E6(a2g, a3g, (Texture *)(v94 != -1 ? (int)&pIcons_LOD->pTextures[v94] : 0),
|
|
2614 (Texture *)v96, (signed __int64)(v97 * 0.1), v174, v187);
|
|
2615 goto LABEL_259;
|
|
2616 }
|
|
2617 }
|
|
2618 v178 = "sptext01";
|
|
2619 v96 = (char *)&pIcons_LOD->pTextures[pIcons_LOD->LoadTexture(v178, TEXTURE_16BIT_PALETTE)];
|
|
2620 dword_50C9A8 -= pEventTimer->uTimeElapsed;
|
|
2621 if ( dword_50C9A8 <= 0 )
|
|
2622 {
|
|
2623 dword_50C9A8 = 0;
|
|
2624 *(char *)(v242 + 516) &= 0xFu;
|
|
2625 ptr_50C9A4 = 0;
|
|
2626 }
|
|
2627 v187 = 255;
|
|
2628 v174 = 0;
|
|
2629 v97 = (double)GetTickCount();
|
|
2630 pRenderer->_4A63E6(a2g, a3g, (Texture *)(v94 != -1 ? (int)&pIcons_LOD->pTextures[v94] : 0),
|
|
2631 (Texture *)v96, (signed __int64)(v97 * 0.1), v174, v187);
|
|
2632 goto LABEL_259;
|
|
2633 }
|
|
2634 v186 = 16;
|
|
2635 }
|
|
2636 else
|
|
2637 {
|
|
2638 v186 = 13;
|
|
2639 }
|
|
2640 }
|
|
2641 else
|
|
2642 {
|
|
2643 v186 = 14;
|
|
2644 }
|
|
2645 v90 = v186;
|
|
2646 goto LABEL_209;
|
|
2647 }
|
|
2648 v90 = 15;
|
|
2649 goto LABEL_207;
|
|
2650 }
|
|
2651 if ( (*(int *)(v57 + 20) & 0xF0) != 16 )
|
|
2652 {
|
|
2653 if ( (*(int *)(v57 + 20) & 0xF0) == 32 )
|
|
2654 {
|
|
2655 v171 = "sp28a";
|
|
2656 v63 = &pIcons_LOD->pTextures[pIcons_LOD->LoadTexture(v171, TEXTURE_16BIT_PALETTE)];
|
|
2657 dword_50C9A8 -= pEventTimer->uTimeElapsed;
|
|
2658 if ( dword_50C9A8 <= 0 )
|
|
2659 {
|
|
2660 dword_50C9A8 = 0;
|
|
2661 *(char *)(v221 + 20) &= 0xFu;
|
|
2662 ptr_50C9A4 = 0;
|
|
2663 }
|
|
2664 v64 = (double)GetTickCount() * 0.1;
|
|
2665 pRenderer->_4A63E6(a2e, a3e, (Texture *)(v59 != -1 ? (int)&pIcons_LOD->pTextures[v59] : 0), v63,
|
|
2666 (signed __int64)v64, 0, 255);
|
|
2667 goto LABEL_155;
|
|
2668 }
|
|
2669 if ( (*(int *)(v57 + 20) & 0xF0) == 64 )
|
|
2670 {
|
|
2671 v171 = "sp30a";
|
|
2672 v63 = &pIcons_LOD->pTextures[pIcons_LOD->LoadTexture(v171, TEXTURE_16BIT_PALETTE)];
|
|
2673 dword_50C9A8 -= pEventTimer->uTimeElapsed;
|
|
2674 if ( dword_50C9A8 <= 0 )
|
|
2675 {
|
|
2676 dword_50C9A8 = 0;
|
|
2677 *(char *)(v221 + 20) &= 0xFu;
|
|
2678 ptr_50C9A4 = 0;
|
|
2679 }
|
|
2680 v64 = (double)GetTickCount() * 0.1;
|
|
2681 pRenderer->_4A63E6(a2e, a3e, (Texture *)(v59 != -1 ? (int)&pIcons_LOD->pTextures[v59] : 0), v63,
|
|
2682 (signed __int64)v64, 0, 255);
|
|
2683 goto LABEL_155;
|
|
2684 }
|
|
2685 if ( (*(int *)(v57 + 20) & 0xF0) == 128 )
|
|
2686 {
|
|
2687 v171 = "sp91a";
|
|
2688 v63 = &pIcons_LOD->pTextures[pIcons_LOD->LoadTexture(v171, TEXTURE_16BIT_PALETTE)];
|
|
2689 dword_50C9A8 -= pEventTimer->uTimeElapsed;
|
|
2690 if ( dword_50C9A8 <= 0 )
|
|
2691 {
|
|
2692 dword_50C9A8 = 0;
|
|
2693 *(char *)(v221 + 20) &= 0xFu;
|
|
2694 ptr_50C9A4 = 0;
|
|
2695 }
|
|
2696 v64 = (double)GetTickCount() * 0.1;
|
|
2697 pRenderer->_4A63E6(a2e, a3e, (Texture *)(v59 != -1 ? (int)&pIcons_LOD->pTextures[v59] : 0), v63,
|
|
2698 (signed __int64)v64, 0, 255);
|
|
2699 goto LABEL_155;
|
|
2700 }
|
|
2701 }
|
|
2702 v171 = "sptext01";
|
|
2703 v63 = &pIcons_LOD->pTextures[pIcons_LOD->LoadTexture(v171, TEXTURE_16BIT_PALETTE)];
|
|
2704 dword_50C9A8 -= pEventTimer->uTimeElapsed;
|
|
2705 if ( dword_50C9A8 <= 0 )
|
|
2706 {
|
|
2707 dword_50C9A8 = 0;
|
|
2708 *(char *)(v221 + 20) &= 0xFu;
|
|
2709 ptr_50C9A4 = 0;
|
|
2710 }
|
|
2711 v64 = (double)GetTickCount() * 0.1;
|
|
2712 pRenderer->_4A63E6(a2e, a3e, (Texture *)(v59 != -1 ? (int)&pIcons_LOD->pTextures[v59] : 0), v63,
|
|
2713 (signed __int64)v64, 0, 255);
|
|
2714 goto LABEL_155;
|
|
2715 }
|
|
2716 if ( (*(int *)(v44 + 20) & 0xF0) != 16 )
|
|
2717 {
|
|
2718 if ( (*(int *)(v44 + 20) & 0xF0) == 32 )
|
|
2719 {
|
|
2720 v170 = "sp28a";
|
|
2721 }
|
|
2722 else
|
|
2723 {
|
|
2724 if ( (*(int *)(v44 + 20) & 0xF0) != 64 )
|
|
2725 {
|
|
2726 v50 = pIcons_LOD;
|
|
2727 if ( (*(int *)(v44 + 20) & 0xF0) == 128 )
|
|
2728 {
|
|
2729 v170 = "sp91a";
|
|
2730 v51 = &pIcons_LOD->pTextures[v50->LoadTexture(v170, TEXTURE_16BIT_PALETTE)];
|
|
2731 dword_50C9A8 -= pEventTimer->uTimeElapsed;
|
|
2732 if ( dword_50C9A8 <= 0 )
|
|
2733 {
|
|
2734 dword_50C9A8 = 0;
|
|
2735 *(char *)(v220 + 20) &= 0xFu;
|
|
2736 ptr_50C9A4 = 0;
|
|
2737 }
|
|
2738 v52 = (double)GetTickCount() * 0.1;
|
|
2739 pRenderer->_4A63E6(a2d, a3d, (Texture *)(v48 != -1 ? (int)&pIcons_LOD->pTextures[v48] : 0),
|
|
2740 v51, (signed __int64)v52, 0, 255);
|
|
2741 goto LABEL_127;
|
|
2742 }
|
|
2743 v170 = "sptext01";
|
|
2744 v51 = &pIcons_LOD->pTextures[v50->LoadTexture(v170, TEXTURE_16BIT_PALETTE)];
|
|
2745 dword_50C9A8 -= pEventTimer->uTimeElapsed;
|
|
2746 if ( dword_50C9A8 <= 0 )
|
|
2747 {
|
|
2748 dword_50C9A8 = 0;
|
|
2749 *(char *)(v220 + 20) &= 0xFu;
|
|
2750 ptr_50C9A4 = 0;
|
|
2751 }
|
|
2752 v52 = (double)GetTickCount() * 0.1;
|
|
2753 pRenderer->_4A63E6(a2d, a3d, (Texture *)(v48 != -1 ? (int)&pIcons_LOD->pTextures[v48] : 0),
|
|
2754 v51, (signed __int64)v52, 0, 255);
|
|
2755 goto LABEL_127;
|
|
2756 }
|
|
2757 v170 = "sp30a";
|
|
2758 }
|
|
2759 v50 = pIcons_LOD;
|
|
2760 v51 = &pIcons_LOD->pTextures[v50->LoadTexture(v170, TEXTURE_16BIT_PALETTE)];
|
|
2761 dword_50C9A8 -= pEventTimer->uTimeElapsed;
|
|
2762 if ( dword_50C9A8 <= 0 )
|
|
2763 {
|
|
2764 dword_50C9A8 = 0;
|
|
2765 *(char *)(v220 + 20) &= 0xFu;
|
|
2766 ptr_50C9A4 = 0;
|
|
2767 }
|
|
2768 v52 = (double)GetTickCount() * 0.1;
|
|
2769 pRenderer->_4A63E6(a2d, a3d, (Texture *)(v48 != -1 ? (int)&pIcons_LOD->pTextures[v48] : 0),
|
|
2770 v51, (signed __int64)v52, 0, 255);
|
|
2771 goto LABEL_127;
|
|
2772 }
|
|
2773 v50 = pIcons_LOD;
|
|
2774 v170 = "sptext01";
|
|
2775 v51 = &pIcons_LOD->pTextures[v50->LoadTexture(v170, TEXTURE_16BIT_PALETTE)];
|
|
2776 dword_50C9A8 -= pEventTimer->uTimeElapsed;
|
|
2777 if ( dword_50C9A8 <= 0 )
|
|
2778 {
|
|
2779 dword_50C9A8 = 0;
|
|
2780 *(char *)(v220 + 20) &= 0xFu;
|
|
2781 ptr_50C9A4 = 0;
|
|
2782 }
|
|
2783 v52 = (double)GetTickCount() * 0.1;
|
|
2784 pRenderer->_4A63E6(a2d, a3d, (Texture *)(v48 != -1 ? (int)&pIcons_LOD->pTextures[v48] : 0),
|
|
2785 v51, (signed __int64)v52, 0, 255);
|
|
2786 goto LABEL_127;
|
|
2787 }
|
|
2788 v185 = 16;
|
|
2789 }
|
|
2790 }
|
|
2791 v45 = v185;
|
|
2792 goto LABEL_106;
|
|
2793 }
|
|
2794 v45 = 15;
|
|
2795 goto LABEL_104;
|
|
2796 }
|
|
2797 if ( (*(int *)(v32 + 20) & 0xF0) != 16 )
|
|
2798 {
|
|
2799 if ( (*(int *)(v32 + 20) & 0xF0) == 32 )
|
|
2800 {
|
|
2801 v169 = "sp28a";
|
|
2802 }
|
|
2803 else
|
|
2804 {
|
|
2805 if ( (*(int *)(v32 + 20) & 0xF0) != 64 )
|
|
2806 {
|
|
2807 v38 = pIcons_LOD;
|
|
2808 if ( (*(int *)(v32 + 20) & 0xF0) == 128 )
|
|
2809 {
|
|
2810 v169 = "sp91a";
|
|
2811 v39 = &pIcons_LOD->pTextures[v38->LoadTexture(v169, TEXTURE_16BIT_PALETTE)];
|
|
2812 dword_50C9A8 -= pEventTimer->uTimeElapsed;
|
|
2813 if ( dword_50C9A8 <= 0 )
|
|
2814 {
|
|
2815 dword_50C9A8 = 0;
|
|
2816 *(char *)(v219 + 20) &= 0xFu;
|
|
2817 ptr_50C9A4 = 0;
|
|
2818 }
|
|
2819 v40 = (double)GetTickCount() * 0.1;
|
|
2820 pRenderer->_4A63E6(a2c, a3c, (Texture *)(v35 != -1 ? (int)&pIcons_LOD->pTextures[v35] : 0), v39,
|
|
2821 (signed __int64)v40, 0, 255);
|
|
2822 goto LABEL_93;
|
|
2823 }
|
|
2824 v169 = "sptext01";
|
|
2825 v39 = &pIcons_LOD->pTextures[v38->LoadTexture(v169, TEXTURE_16BIT_PALETTE)];
|
|
2826 dword_50C9A8 -= pEventTimer->uTimeElapsed;
|
|
2827 if ( dword_50C9A8 <= 0 )
|
|
2828 {
|
|
2829 dword_50C9A8 = 0;
|
|
2830 *(char *)(v219 + 20) &= 0xFu;
|
|
2831 ptr_50C9A4 = 0;
|
|
2832 }
|
|
2833 v40 = (double)GetTickCount() * 0.1;
|
|
2834 pRenderer->_4A63E6(a2c, a3c, (Texture *)(v35 != -1 ? (int)&pIcons_LOD->pTextures[v35] : 0), v39,
|
|
2835 (signed __int64)v40, 0, 255);
|
|
2836 goto LABEL_93;
|
|
2837 }
|
|
2838 v169 = "sp30a";
|
|
2839 }
|
|
2840 v38 = pIcons_LOD;
|
|
2841 v39 = &pIcons_LOD->pTextures[v38->LoadTexture(v169, TEXTURE_16BIT_PALETTE)];
|
|
2842 dword_50C9A8 -= pEventTimer->uTimeElapsed;
|
|
2843 if ( dword_50C9A8 <= 0 )
|
|
2844 {
|
|
2845 dword_50C9A8 = 0;
|
|
2846 *(char *)(v219 + 20) &= 0xFu;
|
|
2847 ptr_50C9A4 = 0;
|
|
2848 }
|
|
2849 v40 = (double)GetTickCount() * 0.1;
|
|
2850 pRenderer->_4A63E6(a2c, a3c, (Texture *)(v35 != -1 ? (int)&pIcons_LOD->pTextures[v35] : 0), v39,
|
|
2851 (signed __int64)v40, 0, 255);
|
|
2852 goto LABEL_93;
|
|
2853 }
|
|
2854 v38 = pIcons_LOD;
|
|
2855 v169 = "sptext01";
|
|
2856 v39 = &pIcons_LOD->pTextures[v38->LoadTexture(v169, TEXTURE_16BIT_PALETTE)];
|
|
2857 dword_50C9A8 -= pEventTimer->uTimeElapsed;
|
|
2858 if ( dword_50C9A8 <= 0 )
|
|
2859 {
|
|
2860 dword_50C9A8 = 0;
|
|
2861 *(char *)(v219 + 20) &= 0xFu;
|
|
2862 ptr_50C9A4 = 0;
|
|
2863 }
|
|
2864 v40 = (double)GetTickCount() * 0.1;
|
|
2865 pRenderer->_4A63E6(a2c, a3c, (Texture *)(v35 != -1 ? (int)&pIcons_LOD->pTextures[v35] : 0), v39,
|
|
2866 (signed __int64)v40, 0, 255);
|
|
2867 goto LABEL_93;
|
|
2868 }
|
|
2869 v184 = 9;
|
|
2870 break;
|
|
2871 }
|
|
2872 v33 = v184;
|
|
2873 goto LABEL_74;
|
|
2874 }
|
|
2875 v33 = 5;
|
|
2876 goto LABEL_72;
|
|
2877 }
|
|
2878 if ( (*(int *)(v22 + 20) & 0xF0) != 16 )
|
|
2879 {
|
|
2880 if ( (*(int *)(v22 + 20) & 0xF0) == 32 )
|
|
2881 {
|
|
2882 v168 = "sp28a";
|
|
2883 }
|
|
2884 else
|
|
2885 {
|
|
2886 if ( (*(int *)(v22 + 20) & 0xF0) != 64 )
|
|
2887 {
|
|
2888 v26 = pIcons_LOD;
|
|
2889 if ( (*(int *)(v22 + 20) & 0xF0) == 128 )
|
|
2890 {
|
|
2891 v168 = "sp91a";
|
|
2892 a2b = &pIcons_LOD->pTextures[v26->LoadTexture(v168, TEXTURE_16BIT_PALETTE)];
|
|
2893 dword_50C9A8 -= pEventTimer->uTimeElapsed;
|
|
2894 if ( dword_50C9A8 <= 0 )
|
|
2895 {
|
|
2896 dword_50C9A8 = 0;
|
|
2897 *(char *)(v22 + 20) &= 0xFu;
|
|
2898 ptr_50C9A4 = 0;
|
|
2899 }
|
|
2900 v27 = (Texture *)(v241 != -1 ? (int)&pIcons_LOD->pTextures[v241] : 0);
|
|
2901 v28 = (double)GetTickCount() * 0.1;
|
|
2902 pRenderer->_4A63E6(v24, a3b, v27, a2b, (signed __int64)v28, 0, 255);
|
|
2903 goto LABEL_57;
|
|
2904 }
|
|
2905 v168 = "sptext01";
|
|
2906 a2b = &pIcons_LOD->pTextures[v26->LoadTexture(v168, TEXTURE_16BIT_PALETTE)];
|
|
2907 dword_50C9A8 -= pEventTimer->uTimeElapsed;
|
|
2908 if ( dword_50C9A8 <= 0 )
|
|
2909 {
|
|
2910 dword_50C9A8 = 0;
|
|
2911 *(char *)(v22 + 20) &= 0xFu;
|
|
2912 ptr_50C9A4 = 0;
|
|
2913 }
|
|
2914 v27 = (Texture *)(v241 != -1 ? (int)&pIcons_LOD->pTextures[v241] : 0);
|
|
2915 v28 = (double)GetTickCount() * 0.1;
|
|
2916 pRenderer->_4A63E6(v24, a3b, v27, a2b, (signed __int64)v28, 0, 255);
|
|
2917 goto LABEL_57;
|
|
2918 }
|
|
2919 v168 = "sp30a";
|
|
2920 }
|
|
2921 v26 = pIcons_LOD;
|
|
2922 a2b = &pIcons_LOD->pTextures[v26->LoadTexture(v168, TEXTURE_16BIT_PALETTE)];
|
|
2923 dword_50C9A8 -= pEventTimer->uTimeElapsed;
|
|
2924 if ( dword_50C9A8 <= 0 )
|
|
2925 {
|
|
2926 dword_50C9A8 = 0;
|
|
2927 *(char *)(v22 + 20) &= 0xFu;
|
|
2928 ptr_50C9A4 = 0;
|
|
2929 }
|
|
2930 v27 = (Texture *)(v241 != -1 ? (int)&pIcons_LOD->pTextures[v241] : 0);
|
|
2931 v28 = (double)GetTickCount() * 0.1;
|
|
2932 pRenderer->_4A63E6(v24, a3b, v27, a2b, (signed __int64)v28, 0, 255);
|
|
2933 goto LABEL_57;
|
|
2934 }
|
|
2935 v26 = pIcons_LOD;
|
|
2936 v168 = "sptext01";
|
|
2937 a2b = &pIcons_LOD->pTextures[v26->LoadTexture(v168, TEXTURE_16BIT_PALETTE)];
|
|
2938 dword_50C9A8 -= pEventTimer->uTimeElapsed;
|
|
2939 if ( dword_50C9A8 <= 0 )
|
|
2940 {
|
|
2941 dword_50C9A8 = 0;
|
|
2942 *(char *)(v22 + 20) &= 0xFu;
|
|
2943 ptr_50C9A4 = 0;
|
|
2944 }
|
|
2945 v27 = (Texture *)(v241 != -1 ? (int)&pIcons_LOD->pTextures[v241] : 0);
|
|
2946 v28 = (double)GetTickCount() * 0.1;
|
|
2947 pRenderer->_4A63E6(v24, a3b, v27, a2b, (signed __int64)v28, 0, 255);
|
|
2948 goto LABEL_57;;
|
|
2949 }
|
|
2950 a3 = pPaperdoll_BodyY;
|
|
2951 a2 = pPaperdoll_BodyX;
|
|
2952 v240 = 4 * uPlayerID_ - 4;
|
|
2953 pRenderer->DrawTextureTransparent(pPaperdoll_BodyX, pPaperdoll_BodyY,
|
|
2954 (Texture *)(*(unsigned int *)((char *)papredoll_dbods + v240) != -1 ? (int)&pIcons_LOD->pTextures[*(unsigned int *)((char *)papredoll_dbods + v240)] : 0));
|
|
2955 if ( !bRingsShownInCharScreen )
|
710
|
2956 pRenderer->DrawMaskToZBuffer(a2, a3,
|
706
|
2957 (Texture *)(*(unsigned int *)((char *)papredoll_dbods + v240) != -1 ? (int)&pIcons_LOD->pTextures[*(unsigned int *)((char *)papredoll_dbods + v240)] : 0),
|
|
2958 pPlayer->pEquipment.uBody);
|
|
2959 uPlayerID_a = 2 * pBodyComplection;
|
|
2960 v6 = pPlayer->pEquipment.uMainHand;
|
|
2961 if ( !v6
|
|
2962 || (v7 = *(int *)&pPlayer->pInventoryItems[v6-1], pItemsTable->pItems[v7].uEquipType != 1)
|
|
2963 && (pItemsTable->pItems[v7].uSkillType != 4 || pPlayer->pEquipment.uOffHand) )
|
|
2964 pRenderer->DrawTextureTransparent(pPaperdoll_BodyX + pPaperdoll_LeftHand[pBodyComplection][0], pPaperdoll_BodyY + pPaperdoll_LeftHand[pBodyComplection][1],
|
|
2965 (Texture *)(*(unsigned int *)((char *)papredoll_dlads + v240) != -1 ? (int)&pIcons_LOD->pTextures[*(unsigned int *)((char *)papredoll_dlads + v240)] : 0));
|
|
2966 v8 = pPlayer->pEquipment.uMainHand;
|
|
2967 if ( v8 )
|
|
2968 {
|
|
2969 v229 = pPlayer->pEquipment.uMainHand;
|
|
2970 v9 = (int)&pPlayer->pInventoryItems[v8-1];
|
|
2971 // v10 = pBodyComplection << 7;
|
|
2972 v218 = v9;
|
|
2973 v11 = *(int *)v9;
|
|
2974 v12 = *(int *)v9;
|
|
2975 v13 = pPaperdoll_BodyX + paperdoll_Weapon[pBodyComplection][1][0] - pItemsTable->pItems[v12].uEquipX;
|
|
2976 a2a = v13;
|
|
2977 a3a = pPaperdoll_BodyY + paperdoll_Weapon[pBodyComplection][1][1] - pItemsTable->pItems[v12].uEquipY;
|
|
2978 if ( v11 == 64 )
|
|
2979 v166 = "item64v1";
|
|
2980 else
|
|
2981 v166 = pItemsTable->pItems[v12].pIconName;
|
|
2982 v14 = pIcons_LOD->LoadTexture(v166, TEXTURE_16BIT_PALETTE);
|
|
2983 v15 = *(int *)(v218 + 20);
|
|
2984 if ( *(int *)(v218 + 20) & 0xF0 )
|
|
2985 {
|
|
2986 if ( (*(int *)(v218 + 20) & 0xF0) != 16 )
|
|
2987 {
|
|
2988 if ( (*(int *)(v218 + 20) & 0xF0) == 32 )
|
|
2989 {
|
|
2990 v167 = "sp28a";
|
|
2991 //v16 = (Texture *)(72 * pIcons_LOD->LoadTexture(v167, TEXTURE_16BIT_PALETTE) + 7145548);
|
|
2992 v16 = &pIcons_LOD->pTextures[pIcons_LOD->LoadTexture(v167, TEXTURE_16BIT_PALETTE)];
|
|
2993 dword_50C9A8 -= pEventTimer->uTimeElapsed;
|
|
2994 if ( dword_50C9A8 <= 0 )
|
|
2995 {
|
|
2996 dword_50C9A8 = 0;
|
|
2997 *(char *)(v218 + 20) &= 0xFu;
|
|
2998 ptr_50C9A4 = 0;
|
|
2999 }
|
|
3000 v17 = (double)GetTickCount() * 0.1;
|
|
3001 pRenderer->_4A63E6(v13, a3a, (Texture *)(v14 != -1 ? (int)&pIcons_LOD->pTextures[v14] : 0), v16, (signed __int64)v17, 0, 255);
|
|
3002 goto LABEL_393;;
|
|
3003 }
|
|
3004 if ( (*(int *)(v218 + 20) & 0xF0) == 64 )
|
|
3005 {
|
|
3006 v167 = "sp30a";
|
|
3007 //v16 = (Texture *)(72 * pIcons_LOD->LoadTexture(v167, TEXTURE_16BIT_PALETTE) + 7145548);
|
|
3008 v16 = &pIcons_LOD->pTextures[pIcons_LOD->LoadTexture(v167, TEXTURE_16BIT_PALETTE)];
|
|
3009 dword_50C9A8 -= pEventTimer->uTimeElapsed;
|
|
3010 if ( dword_50C9A8 <= 0 )
|
|
3011 {
|
|
3012 dword_50C9A8 = 0;
|
|
3013 *(char *)(v218 + 20) &= 0xFu;
|
|
3014 ptr_50C9A4 = 0;
|
|
3015 }
|
|
3016 v17 = (double)GetTickCount() * 0.1;
|
|
3017 pRenderer->_4A63E6(v13, a3a, (Texture *)(v14 != -1 ? (int)&pIcons_LOD->pTextures[v14] : 0), v16, (signed __int64)v17, 0, 255);
|
|
3018 goto LABEL_393;
|
|
3019 }
|
|
3020 if ( (*(int *)(v218 + 20) & 0xF0) == 128 )
|
|
3021 {
|
|
3022 v167 = "sp91a";
|
|
3023 //v16 = (Texture *)(72 * pIcons_LOD->LoadTexture(v167, TEXTURE_16BIT_PALETTE) + 7145548);
|
|
3024 v16 = &pIcons_LOD->pTextures[pIcons_LOD->LoadTexture(v167, TEXTURE_16BIT_PALETTE)];
|
|
3025 dword_50C9A8 -= pEventTimer->uTimeElapsed;
|
|
3026 if ( dword_50C9A8 <= 0 )
|
|
3027 {
|
|
3028 dword_50C9A8 = 0;
|
|
3029 *(char *)(v218 + 20) &= 0xFu;
|
|
3030 ptr_50C9A4 = 0;
|
|
3031 }
|
|
3032 v17 = (double)GetTickCount() * 0.1;
|
|
3033 pRenderer->_4A63E6(v13, a3a, (Texture *)(v14 != -1 ? (int)&pIcons_LOD->pTextures[v14] : 0), v16, (signed __int64)v17, 0, 255);
|
|
3034 goto LABEL_393;
|
|
3035 }
|
|
3036 }
|
|
3037 v167 = "sptext01";
|
|
3038 //v16 = (Texture *)(72 * pIcons_LOD->LoadTexture(v167, TEXTURE_16BIT_PALETTE) + 7145548);
|
|
3039 v16 = &pIcons_LOD->pTextures[pIcons_LOD->LoadTexture(v167, TEXTURE_16BIT_PALETTE)];
|
|
3040 dword_50C9A8 -= pEventTimer->uTimeElapsed;
|
|
3041 if ( dword_50C9A8 <= 0 )
|
|
3042 {
|
|
3043 dword_50C9A8 = 0;
|
|
3044 *(char *)(v218 + 20) &= 0xFu;
|
|
3045 ptr_50C9A4 = 0;
|
|
3046 }
|
|
3047 v17 = (double)GetTickCount() * 0.1;
|
|
3048 pRenderer->_4A63E6(v13, a3a, (Texture *)(v14 != -1 ? (int)&pIcons_LOD->pTextures[v14] : 0), v16, (signed __int64)v17, 0, 255);
|
|
3049 goto LABEL_393;
|
|
3050 }
|
|
3051 v18 = v14 + 1;
|
|
3052 v19 = (char *)&pIcons_LOD->pTextures[v14];
|
|
3053 if ( v15 & 2 )
|
|
3054 {
|
|
3055 v20 = (Texture *)(v18 != 0 ? (int)v19 : 0);
|
|
3056 pRenderer->DrawTransparentRedShade(a2a, a3a, v20);
|
|
3057 }
|
|
3058 else
|
|
3059 {
|
|
3060 if ( v15 & 1 )
|
|
3061 {
|
|
3062 v20 = (Texture *)(v18 != 0 ? (int)v19 : 0);
|
|
3063 pRenderer->DrawTextureTransparent(a2a, a3a, v20);
|
|
3064 }
|
|
3065 else
|
|
3066 {
|
|
3067 v20 = (Texture *)(v18 != 0 ? (int)v19 : 0);
|
|
3068 pRenderer->DrawTransparentGreenShade(a2a, a3a, v20);
|
|
3069 }
|
|
3070 }
|
|
3071 if ( !bRingsShownInCharScreen )
|
710
|
3072 pRenderer->DrawMaskToZBuffer(a2a, a3a, v20, v229);
|
706
|
3073 }
|
|
3074 LABEL_393:
|
|
3075 pRenderer->DrawTextureTransparent(pPaperdoll_BodyX + pPaperdoll_RightHand[uPlayerID_a],
|
|
3076 pPaperdoll_BodyY + pPaperdoll_RightHand[uPlayerID_a + 1],
|
|
3077 (Texture *)(*(unsigned int *)((char *)papredoll_drhs + v240) != -1 ? (int)&pIcons_LOD->pTextures[*(unsigned int *)((char *)papredoll_drhs + v240)] : 0));
|
|
3078 v161 = pPlayer->pEquipment.uMainHand;
|
|
3079 if ( v161 )
|
|
3080 {
|
|
3081 v162 = *(int *)&pPlayer->pInventoryItems[v161-1];
|
|
3082 if ( pItemsTable->pItems[v162].uEquipType == 1 || pItemsTable->pItems[v162].uSkillType == 4 && !pPlayer->pEquipment.uOffHand )
|
|
3083 pRenderer->DrawTextureTransparent(pPaperdoll_BodyX + pPaperdoll_SecondLeftHand[0][uPlayerID_a],
|
|
3084 pPaperdoll_BodyY + pPaperdoll_SecondLeftHand[0][uPlayerID_a + 1],
|
|
3085 (Texture *)(*(unsigned int *)((char *)papredoll_dlhus + v240) != -1 ? (int)&pIcons_LOD->pTextures[*(unsigned int *)((char *)papredoll_dlhus + v240)] : 0));
|
|
3086 }
|
|
3087 if ( !bRingsShownInCharScreen )
|
|
3088 pRenderer->DrawTextureTransparent(0x25Bu, 0x12Bu,
|
|
3089 (Texture *)(uTextureID_MAGNIF_B != -1 ? (int)&pIcons_LOD->pTextures[uTextureID_MAGNIF_B] : 0));
|
|
3090 pRenderer->DrawTextureTransparent(0x1D4u, 0,
|
|
3091 (Texture *)(uTextureID_507B04 != -1 ? (int)&pIcons_LOD->pTextures[uTextureID_507B04] : 0));
|
|
3092 }
|
|
3093
|
|
3094
|
|
3095 //----- (0043E825) --------------------------------------------------------
|
|
3096 void __fastcall CharacterUI_DrawPaperdollWithRingOverlay(unsigned int uPlayerID)
|
|
3097 {
|
|
3098 unsigned int v1; // ebx@1
|
|
3099 Player *pPlayer; // edi@1
|
|
3100 int v3; // ecx@1
|
|
3101 int *v4; // edi@3
|
|
3102 unsigned int v5; // ebx@3
|
|
3103 int v6; // eax@3
|
|
3104 LODFile_IconsBitmaps *v7; // ecx@7
|
|
3105 double v8; // st7@16
|
|
3106 int v9; // edi@17
|
|
3107 Texture *v10; // edi@18
|
|
3108 unsigned __int8 v11; // zf@19
|
|
3109 Texture *v12; // eax@19
|
|
3110 char v13; // sf@24
|
|
3111 unsigned __int8 v14; // of@24
|
|
3112 unsigned int v15; // eax@25
|
|
3113 unsigned int v16; // ebx@26
|
|
3114 int v17; // eax@26
|
|
3115 LODFile_IconsBitmaps *v18; // ecx@30
|
|
3116 double v19; // st7@39
|
|
3117 int v20; // edi@40
|
|
3118 int v21; // eax@41
|
|
3119 signed int v22; // ebx@41
|
|
3120 Texture *v23; // edi@41
|
|
3121 int v24; // eax@42
|
|
3122 char *v25; // eax@42
|
|
3123 unsigned int v26; // eax@46
|
|
3124 int v27; // edi@47
|
|
3125 unsigned int v28; // ebx@47
|
|
3126 int v29; // eax@47
|
|
3127 LODFile_IconsBitmaps *v30; // ecx@51
|
|
3128 Texture *v31; // esi@58
|
|
3129 double v32; // st7@60
|
|
3130 int v33; // esi@61
|
|
3131 int v34; // esi@62
|
|
3132 Texture *v35; // eax@63
|
|
3133 const char *v36; // [sp-8h] [bp-38h]@8
|
|
3134 const char *v37; // [sp-8h] [bp-38h]@31
|
|
3135 const char *v38; // [sp-8h] [bp-38h]@52
|
|
3136 int v39; // [sp+10h] [bp-20h]@3
|
|
3137 Texture *v40; // [sp+10h] [bp-20h]@14
|
|
3138 int v41; // [sp+10h] [bp-20h]@26
|
|
3139 Texture *v42; // [sp+10h] [bp-20h]@37
|
|
3140 int v43; // [sp+10h] [bp-20h]@47
|
|
3141 unsigned int a3; // [sp+14h] [bp-1Ch]@3
|
|
3142 unsigned int a2; // [sp+18h] [bp-18h]@3
|
|
3143 unsigned int *v46; // [sp+1Ch] [bp-14h]@1
|
|
3144 Player *v47; // [sp+20h] [bp-10h]@1
|
|
3145 int v48; // [sp+24h] [bp-Ch]@1
|
|
3146 int v49; // [sp+24h] [bp-Ch]@26
|
|
3147
|
|
3148 v1 = uPlayerID;
|
|
3149 pPlayer = pPlayers[uPlayerID];
|
|
3150 v47 = pPlayers[uPlayerID];
|
|
3151 pIcons_LOD->LoadTexture("sptext01", TEXTURE_16BIT_PALETTE);
|
|
3152 CharacterUI_DrawPaperdoll(v1);
|
|
3153 pRenderer->DrawTextureTransparent(0x1D9u, 0, (Texture *)(uTextureID_BACKHAND != -1 ? &pIcons_LOD->pTextures[uTextureID_BACKHAND] : 0));
|
|
3154 pRenderer->DrawTextureTransparent(0x1D4u, 0, (Texture *)(uTextureID_507B04 != -1 ? &pIcons_LOD->pTextures[uTextureID_507B04] : 0));
|
|
3155 pRenderer->DrawTextureIndexed(pCharacterScreen_DetalizBtn->uX, pCharacterScreen_DetalizBtn->uY,
|
|
3156 (Texture *)(uTextureID_5118C8 != -1 ? &pIcons_LOD->pTextures[uTextureID_5118C8] : 0));
|
|
3157 v3 = 0;
|
|
3158 v46 = &pPlayer->pEquipment.field_28;
|
|
3159 v48 = 0;
|
|
3160 do
|
|
3161 {
|
|
3162 if ( !*v46 )
|
|
3163 goto LABEL_24;
|
|
3164 v39 = *v46;
|
|
3165 v4 = (int *)&pPlayer->pInventoryItems[*v46-1].uItemID;
|
|
3166 a3 = pPaperdollRingsY[v3];
|
|
3167 a2 = pPaperdollRingsX[v3];
|
|
3168 v5 = pIcons_LOD->LoadTexture(pItemsTable->pItems[*v4].pIconName, TEXTURE_16BIT_PALETTE);
|
|
3169 v6 = *(int *)(v4 + 20);
|
|
3170 if ( *(int *)(v4 + 20) & 0xF0 )
|
|
3171 {
|
|
3172 if ( (*(int *)(v4 + 20) & 0xF0) != 16 )
|
|
3173 {
|
|
3174 if ( (*(int *)(v4 + 20) & 0xF0) == 32 )
|
|
3175 {
|
|
3176 v36 = "sp28a";
|
|
3177 }
|
|
3178 else
|
|
3179 {
|
|
3180 if ( (*(int *)(v4 + 20) & 0xF0) != 64 )
|
|
3181 {
|
|
3182 v7 = pIcons_LOD;
|
|
3183 if ( (*(int *)(v4 + 20) & 0xF0) == 128 )
|
|
3184 {
|
|
3185 v36 = "sp91a";
|
|
3186 LABEL_14:
|
|
3187 v40 = &pIcons_LOD->pTextures[v7->LoadTexture(v36, TEXTURE_16BIT_PALETTE)];
|
|
3188 dword_50C9A8 -= pEventTimer->uTimeElapsed;
|
|
3189 if ( dword_50C9A8 <= 0 )
|
|
3190 {
|
|
3191 dword_50C9A8 = 0;
|
|
3192 *(char *)(v4 + 20) &= 0xFu;
|
|
3193 ptr_50C9A4 = 0;
|
|
3194 }
|
|
3195 v8 = (double)GetTickCount() * 0.1;
|
|
3196 pRenderer->_4A63E6(a2, a3, (Texture *)(v5 != -1 ? (int)&pIcons_LOD->pTextures[v5] : 0),
|
|
3197 v40, (signed __int64)v8, 0, 255);
|
|
3198 goto LABEL_23;
|
|
3199 }
|
|
3200 LABEL_13:
|
|
3201 v36 = "sptext01";
|
|
3202 goto LABEL_14;
|
|
3203 }
|
|
3204 v36 = "sp30a";
|
|
3205 }
|
|
3206 v7 = pIcons_LOD;
|
|
3207 goto LABEL_14;
|
|
3208 }
|
|
3209 v7 = pIcons_LOD;
|
|
3210 goto LABEL_13;
|
|
3211 }
|
|
3212 v9 = v5 + 1;
|
|
3213 if ( v6 & 2 )
|
|
3214 {
|
|
3215 v10 = (Texture *)(v9 != 0 ? (int)&pIcons_LOD->pTextures[v5] : 0);
|
|
3216 pRenderer->DrawTransparentRedShade(a2, a3, v10);
|
|
3217 }
|
|
3218 else
|
|
3219 {
|
|
3220 v11 = (v6 & 1) == 0;
|
|
3221 v12 = &pIcons_LOD->pTextures[v5];
|
|
3222 if ( v11 )
|
|
3223 {
|
|
3224 v10 = (Texture *)(v9 != 0 ? (int)v12 : 0);
|
|
3225 pRenderer->DrawTransparentGreenShade(a2, a3, v10);
|
|
3226 }
|
|
3227 else
|
|
3228 {
|
|
3229 v10 = (Texture *)(v9 != 0 ? (int)v12 : 0);
|
|
3230 pRenderer->DrawTextureTransparent(a2, a3, v10);
|
|
3231 }
|
|
3232 }
|
|
3233 pRenderer->_4A601E(a2, a3, v10, v39);
|
|
3234 LABEL_23:
|
|
3235 pPlayer = v47;
|
|
3236 LABEL_24:
|
|
3237 v46 += 4;
|
|
3238 v3 = v48 + 4;
|
|
3239 v14 = __OFSUB__(v48 + 4, 20);
|
|
3240 v11 = v48 == 16;
|
|
3241 v13 = v48 - 16 < 0;
|
|
3242 v48 += 4;
|
|
3243 }
|
|
3244 while ( (unsigned __int8)(v13 ^ v14) | v11 );
|
|
3245 v15 = pPlayer->pEquipment.field_24;
|
|
3246 if ( !v15 )
|
|
3247 goto LABEL_46;
|
|
3248 v41 = pPlayer->pEquipment.field_24;
|
|
3249 v49 = (int)&pPlayer->pInventoryItems[v15-1];
|
|
3250 v16 = pIcons_LOD->LoadTexture(pItemsTable->pItems[*(int *)v49].pIconName, TEXTURE_16BIT_PALETTE);
|
|
3251 v17 = *(int *)(v49 + 20);
|
|
3252 if ( !(*(int *)(v49 + 20) & 0xF0) )
|
|
3253 {
|
|
3254 v20 = v16 + 1;
|
|
3255 if ( v17 & 2 )
|
|
3256 {
|
|
3257 v21 = 9 * v16;
|
|
3258 v22 = 493;
|
|
3259 v23 = (Texture *)(v20 != 0 ? (int)&pIcons_LOD->pTextures[8 * v21 / 0x48u] : 0);
|
|
3260 pRenderer->DrawTransparentRedShade(0x1EDu, 0x5Bu, v23);
|
|
3261 }
|
|
3262 else
|
|
3263 {
|
|
3264 v11 = (v17 & 1) == 0;
|
|
3265 v24 = 9 * v16;
|
|
3266 v22 = 493;
|
|
3267 v25 = (char *)&pIcons_LOD->pTextures[8 * v24 / 0x48u];
|
|
3268 if ( v11 )
|
|
3269 {
|
|
3270 v23 = (Texture *)(v20 != 0 ? (int)v25 : 0);
|
|
3271 pRenderer->DrawTransparentGreenShade(493, 91, v23);
|
|
3272 }
|
|
3273 else
|
|
3274 {
|
|
3275 v23 = (Texture *)(v20 != 0 ? (int)v25 : 0);
|
|
3276 pRenderer->DrawTextureTransparent(0x1EDu, 0x5Bu, v23);
|
|
3277 }
|
|
3278 }
|
|
3279 pRenderer->_4A601E(v22, 91, v23, v41);
|
|
3280 pPlayer = v47;
|
|
3281 goto LABEL_46;
|
|
3282 }
|
|
3283 if ( (*(int *)(v49 + 20) & 0xF0) == 16 )
|
|
3284 {
|
|
3285 v18 = pIcons_LOD;
|
|
3286 goto LABEL_36;
|
|
3287 }
|
|
3288 if ( (*(int *)(v49 + 20) & 0xF0) == 32 )
|
|
3289 {
|
|
3290 v37 = "sp28a";
|
|
3291 goto LABEL_34;
|
|
3292 }
|
|
3293 if ( (*(int *)(v49 + 20) & 0xF0) == 64 )
|
|
3294 {
|
|
3295 v37 = "sp30a";
|
|
3296 LABEL_34:
|
|
3297 v18 = pIcons_LOD;
|
|
3298 goto LABEL_37;
|
|
3299 }
|
|
3300 v18 = pIcons_LOD;
|
|
3301 if ( (*(int *)(v49 + 20) & 0xF0) == 128 )
|
|
3302 {
|
|
3303 v37 = "sp91a";
|
|
3304 goto LABEL_37;
|
|
3305 }
|
|
3306 LABEL_36:
|
|
3307 v37 = "sptext01";
|
|
3308 LABEL_37:
|
|
3309 v42 = &pIcons_LOD->pTextures[v18->LoadTexture(v37, TEXTURE_16BIT_PALETTE)];
|
|
3310 dword_50C9A8 -= pEventTimer->uTimeElapsed;
|
|
3311 if ( dword_50C9A8 <= 0 )
|
|
3312 {
|
|
3313 dword_50C9A8 = 0;
|
|
3314 *(char *)(v49 + 20) &= 0xFu;
|
|
3315 ptr_50C9A4 = 0;
|
|
3316 }
|
|
3317 v19 = (double)GetTickCount() * 0.1;
|
|
3318 pRenderer->_4A63E6(
|
|
3319 0x1EDu,
|
|
3320 0x5Bu,
|
|
3321 (Texture *)(v16 != -1 ? (int)&pIcons_LOD->pTextures[v16] : 0),
|
|
3322 v42,
|
|
3323 (signed __int64)v19,
|
|
3324 0,
|
|
3325 255);
|
|
3326 LABEL_46:
|
|
3327 v26 = pPlayer->pEquipment.field_1C;
|
|
3328 if ( !v26 )
|
|
3329 return;
|
|
3330 v43 = pPlayer->pEquipment.field_1C;
|
|
3331 v27 = (int)&pPlayer->pInventoryItems[v26-1];
|
|
3332 v28 = pIcons_LOD->LoadTexture(pItemsTable->pItems[*(int *)v27].pIconName, TEXTURE_16BIT_PALETTE);
|
|
3333 v29 = *(int *)(v27 + 20);
|
|
3334 if ( !(*(int *)(v27 + 20) & 0xF0) )
|
|
3335 {
|
|
3336 v33 = v28 + 1;
|
|
3337 if ( v29 & 2 )
|
|
3338 {
|
|
3339 v34 = v33 != 0 ? (int)&pIcons_LOD->pTextures[v28] : 0;
|
|
3340 pRenderer->DrawTransparentRedShade(0x24Au, 0x58u, (Texture *)v34);
|
|
3341 }
|
|
3342 else
|
|
3343 {
|
|
3344 v11 = (v29 & 1) == 0;
|
|
3345 v35 = &pIcons_LOD->pTextures[v28];
|
|
3346 if ( v11 )
|
|
3347 {
|
|
3348 v34 = v33 != 0 ? (int)v35 : 0;
|
|
3349 pRenderer->DrawTransparentGreenShade(586, 88, (Texture *)v34);
|
|
3350 }
|
|
3351 else
|
|
3352 {
|
|
3353 v34 = v33 != 0 ? (int)v35 : 0;
|
|
3354 pRenderer->DrawTextureTransparent(0x24Au, 0x58u, (Texture *)v34);
|
|
3355 }
|
|
3356 }
|
|
3357 pRenderer->_4A601E(586, 88, (Texture *)v34, v43);
|
|
3358 return;
|
|
3359 }
|
|
3360 if ( (*(int *)(v27 + 20) & 0xF0) == 16 )
|
|
3361 {
|
|
3362 v30 = pIcons_LOD;
|
|
3363 goto LABEL_57;
|
|
3364 }
|
|
3365 if ( (*(int *)(v27 + 20) & 0xF0) == 32 )
|
|
3366 {
|
|
3367 v38 = "sp28a";
|
|
3368 goto LABEL_55;
|
|
3369 }
|
|
3370 if ( (*(int *)(v27 + 20) & 0xF0) == 64 )
|
|
3371 {
|
|
3372 v38 = "sp30a";
|
|
3373 LABEL_55:
|
|
3374 v30 = pIcons_LOD;
|
|
3375 goto LABEL_58;
|
|
3376 }
|
|
3377 v30 = pIcons_LOD;
|
|
3378 if ( (*(int *)(v27 + 20) & 0xF0) == 128 )
|
|
3379 {
|
|
3380 v38 = "sp91a";
|
|
3381 goto LABEL_58;
|
|
3382 }
|
|
3383 LABEL_57:
|
|
3384 v38 = "sptext01";
|
|
3385 LABEL_58:
|
|
3386 v31 = &pIcons_LOD->pTextures[v30->LoadTexture(v38, TEXTURE_16BIT_PALETTE)];
|
|
3387 dword_50C9A8 -= pEventTimer->uTimeElapsed;
|
|
3388 if ( dword_50C9A8 <= 0 )
|
|
3389 {
|
|
3390 dword_50C9A8 = 0;
|
|
3391 *(char *)(v27 + 20) &= 0xFu;
|
|
3392 ptr_50C9A4 = 0;
|
|
3393 }
|
|
3394 v32 = (double)GetTickCount() * 0.1;
|
|
3395 pRenderer->_4A63E6(0x24Au, 0x58u, (Texture *)(v28 != -1 ? (int)&pIcons_LOD->pTextures[v28] : 0),
|
|
3396 v31, (signed __int64)v32, 0, 255);
|
|
3397 }
|
|
3398
|
|
3399 //----- (0043BCA7) --------------------------------------------------------
|
|
3400 void CharacterUI_LoadPaperdollTextures()
|
|
3401 {
|
|
3402 int v0; // edi@7
|
|
3403 enum CHARACTER_RACE pRace; // ebx@7
|
|
3404 signed int pSex; // eax@7
|
|
3405 int v3; // ebx@10
|
|
3406 Player *pPlayer; // edi@12
|
|
3407 unsigned __int8 v5; // cl@12
|
|
3408 int v6; // edi@16
|
|
3409 unsigned int v7; // eax@16
|
|
3410 Player *pPlayer2; // ebx@16
|
|
3411 char *v9; // ebx@16
|
|
3412 char v10; // al@16
|
|
3413 signed int v11; // edi@21
|
|
3414 Player *pPlayer3; // ebx@23
|
|
3415 //Player *pPlayer4; // edi@29
|
|
3416 //int v14; // ebp@29
|
|
3417 //stru331 *v15; // edi@65
|
|
3418 //signed int v16; // ebx@66
|
|
3419 //unsigned int v17; // eax@67
|
|
3420 //unsigned int *v18; // ecx@67
|
|
3421 //unsigned int *v19; // ebx@68
|
|
3422 //int v20; // edi@73
|
|
3423 int v21; // ebp@73
|
|
3424 unsigned int v22; // eax@76
|
|
3425 int v23; // ecx@76
|
|
3426 unsigned int v24; // eax@78
|
|
3427 int v25; // ecx@78
|
|
3428 int v26; // ebx@79
|
|
3429 unsigned int v27; // eax@80
|
|
3430 int v28; // ecx@80
|
|
3431 //int result; // eax@83
|
|
3432 int v30; // [sp+10h] [bp-28h]@5
|
|
3433 //signed int v31; // [sp+10h] [bp-28h]@68
|
|
3434 signed int v32; // [sp+10h] [bp-28h]@75
|
|
3435 signed int v33; // [sp+10h] [bp-28h]@77
|
|
3436 int v34; // [sp+10h] [bp-28h]@79
|
|
3437 //char *v35; // [sp+14h] [bp-24h]@65
|
|
3438 int v36; // [sp+14h] [bp-24h]@75
|
|
3439 int v37; // [sp+14h] [bp-24h]@77
|
|
3440 signed int v38; // [sp+14h] [bp-24h]@79
|
|
3441 //unsigned int *v39; // [sp+18h] [bp-20h]@66
|
|
3442 int *v40; // [sp+18h] [bp-20h]@73
|
|
3443 //unsigned int *v41; // [sp+1Ch] [bp-1Ch]@73
|
|
3444 int v42; // [sp+20h] [bp-18h]@6
|
|
3445 int v43; // [sp+20h] [bp-18h]@73
|
|
3446 char pContainer[128]; // [sp+24h] [bp-14h]@12
|
|
3447
|
|
3448 uTextureID_MAGNIF_B = pIcons_LOD->LoadTexture("MAGNIF-B", TEXTURE_16BIT_PALETTE);
|
|
3449 //if ( !pParty->uAlignment || pParty->uAlignment == 1 || pParty->uAlignment == 2 )
|
|
3450 uTextureID_BACKDOLL = pIcons_LOD->LoadTexture("BACKDOLL", TEXTURE_16BIT_PALETTE);
|
|
3451 uTextureID_507B04 = uTextureID_right_panel;
|
|
3452 v30 = 0;
|
|
3453 uTextureID_BACKHAND = pIcons_LOD->LoadTexture("BACKHAND", TEXTURE_16BIT_PALETTE);
|
|
3454 uTextureID_5118C8 = uExitCancelTextureId;
|
|
3455 do
|
|
3456 {
|
|
3457 v42 = v30 + 1;
|
|
3458 if ( sub_43EE77_ProbablyIfUnderwaterSuitIsEquipped(v30 + 1) )
|
|
3459 {
|
|
3460 v0 = v30;
|
|
3461 pRace = pPlayers[v30 + 1]->GetRace();
|
|
3462 pSex = pPlayers[v30 + 1]->GetSexByVoice();
|
|
3463 if ( pRace && pRace != 1 && pRace != 2 )//race == 3
|
|
3464 v3 = (pSex != 0) + 3;
|
|
3465 else
|
|
3466 v3 = (pSex != 0) + 1;
|
|
3467 wsprintfA(pContainer, "pc23v%dBod", v3);
|
|
3468 papredoll_dbods[v0] = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE);//Body texture
|
|
3469 wsprintfA(pContainer, "pc23v%dlad", v3);
|
|
3470 papredoll_dlads[v0] = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE);// Left Hand
|
|
3471 wsprintfA(pContainer, "pc23v%dlau", v3);
|
|
3472 papredoll_dlaus[v0] = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE);// Left Hand2
|
|
3473 wsprintfA(pContainer, "pc23v%drh", v3);
|
|
3474 papredoll_drhs[v0] = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE);// Right Hand
|
|
3475 wsprintfA(pContainer, "pc23v%dlh", v3);
|
|
3476 papredoll_dlhs[v0] = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE);// Left Fist
|
|
3477 wsprintfA(pContainer, "pc23v%dlhu", v3);
|
|
3478 papredoll_dlhus[v0] = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE); // Left Fist 2
|
|
3479 pPlayer = pPlayers[v0 + 1];
|
|
3480 v5 = pPlayer->uFace;
|
|
3481 if ( v5 == 12 || v5 == 13 )
|
|
3482 papredoll_dbrds[(char)v5] = 0;
|
|
3483 papredoll_flying_feet[pPlayer->uFace] = 0;
|
|
3484 IsPlayerWearingWatersuit[v30 + 1] = 1;
|
|
3485 }
|
|
3486 else
|
|
3487 {
|
|
3488 v6 = v30;
|
|
3489 papredoll_dbods[v30] = pIcons_LOD->LoadTexture(dbod_texnames_by_face[pPlayers[v30 + 1]->uFace], TEXTURE_16BIT_PALETTE);
|
|
3490 papredoll_dlads[v30] = pIcons_LOD->LoadTexture(dlad_texnames_by_face[pPlayers[v30 + 1]->uFace], TEXTURE_16BIT_PALETTE);
|
|
3491 papredoll_dlaus[v30] = pIcons_LOD->LoadTexture(dlau_texnames_by_face[pPlayers[v30 + 1]->uFace], TEXTURE_16BIT_PALETTE);
|
|
3492 papredoll_drhs[v30] = pIcons_LOD->LoadTexture(drh_texnames_by_face[pPlayers[v30 + 1]->uFace], TEXTURE_16BIT_PALETTE);
|
|
3493 papredoll_dlhs[v30] = pIcons_LOD->LoadTexture(dlh_texnames_by_face[pPlayers[v30 + 1]->uFace], TEXTURE_16BIT_PALETTE);
|
|
3494 v7 = pIcons_LOD->LoadTexture(dlhu_texnames_by_face[pPlayers[v30 + 1]->uFace], TEXTURE_16BIT_PALETTE);
|
|
3495 pPlayer2 = pPlayers[v30 + 1];
|
|
3496 papredoll_dlhus[v30] = v7;
|
|
3497 v9 = (char *)&pPlayer2->uFace;
|
|
3498 v10 = *v9;
|
|
3499 if ( *v9 == 12 || v10 == 13 )
|
|
3500 {
|
|
3501 wsprintfA(pContainer, "pc%02dbrd", v10 + 1);
|
|
3502 v9 = (char *)&pPlayers[v6 + 1]->uFace;
|
|
3503 papredoll_dbrds[*v9] = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE);
|
|
3504 }
|
|
3505 wsprintfA(pContainer, "item281pc%02d", *v9 + 1);
|
|
3506 papredoll_flying_feet[pPlayers[v6 + 1]->uFace] = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE);
|
|
3507 IsPlayerWearingWatersuit[v30 + 1] = 0;
|
|
3508 }
|
|
3509 ++v30;
|
|
3510 }
|
|
3511 while ( v42 < 4 );
|
|
3512 uTextureID_ar_up_up = pIcons_LOD->LoadTexture("ar_up_up", TEXTURE_16BIT_PALETTE);
|
|
3513 uTextureID_ar_up_dn = pIcons_LOD->LoadTexture("ar_up_dn", TEXTURE_16BIT_PALETTE);
|
|
3514 uTextureID_ar_dn_up = pIcons_LOD->LoadTexture("ar_dn_up", TEXTURE_16BIT_PALETTE);
|
|
3515 uTextureID_ar_dn_dn = pIcons_LOD->LoadTexture("ar_dn_dn", TEXTURE_16BIT_PALETTE);
|
|
3516 papredoll_dbrds[9] = pIcons_LOD->LoadTexture("ib-cd1-d", TEXTURE_16BIT_PALETTE);
|
|
3517 papredoll_dbrds[7] = pIcons_LOD->LoadTexture("ib-cd2-d", TEXTURE_16BIT_PALETTE);
|
|
3518 papredoll_dbrds[5] = pIcons_LOD->LoadTexture("ib-cd3-d", TEXTURE_16BIT_PALETTE);
|
|
3519 papredoll_dbrds[3] = pIcons_LOD->LoadTexture("ib-cd4-d", TEXTURE_16BIT_PALETTE);
|
|
3520 papredoll_dbrds[1] = pIcons_LOD->LoadTexture("ib-cd5-d", TEXTURE_16BIT_PALETTE);
|
|
3521 v11 = 0;
|
|
3522 do
|
|
3523 {
|
|
3524 byte_5111C0[v11] = 0;
|
|
3525 if ( pParty->pPickedItem.uItemID != v11 + 66 )
|
|
3526 {
|
|
3527 pPlayer3 = pParty->pPlayers;
|
|
3528 while ( !sub_43EE15_player_has_item(v11 + 66, pPlayer3, 0) )
|
|
3529 {
|
|
3530 ++pPlayer3;
|
|
3531 if ( (signed int)pPlayer3 >= (signed int)pParty->pHirelings )
|
|
3532 goto LABEL_28;
|
|
3533 }
|
|
3534 }
|
|
3535 byte_5111C0[v11] = 1;
|
|
3536 LABEL_28:
|
|
3537 ++v11;
|
|
3538 }
|
|
3539 while ( v11 < 54 );
|
|
3540
|
|
3541 memset(byte_5111F6, 0, 16);
|
|
3542 for (uint i = 0; i < 4; ++i)
|
|
3543 {
|
|
3544 auto player = pParty->pPlayers + i;
|
|
3545
|
|
3546 if (sub_43EE15_player_has_item(ITEM_ARTICACT_GOVERNONS_ARMOR, player, 1)) byte_5111F6[0] = 1;
|
|
3547 if (sub_43EE15_player_has_item(ITEM_ARTIFACT_YORUBA, player, 1)) byte_5111F6[1] = 1;
|
|
3548 if (sub_43EE15_player_has_item(ITEM_RELIC_HARECS_LEATHER, player, 1)) byte_5111F6[2] = 1;
|
|
3549 if (sub_43EE15_player_has_item(ITEM_ARTIFACT_LEAGUE_BOOTS, player, 1)) byte_5111F6[3] = 1;
|
|
3550 if (sub_43EE15_player_has_item(ITEM_RELIC_TALEDONS_HELM, player, 1)) byte_5111F6[4] = 1;
|
|
3551 if (sub_43EE15_player_has_item(ITEM_RELIC_SCHOLARS_CAP, player, 1)) byte_5111F6[5] = 1;
|
|
3552 if (sub_43EE15_player_has_item(ITEM_RELIC_PHYNAXIAN_CROWN, player, 1)) byte_5111F6[6] = 1;
|
|
3553 if (sub_43EE15_player_has_item(ITEM_ARTIFACT_MINDS_EYE, player, 1)) byte_5111F6[7] = 1;
|
|
3554 if (sub_43EE15_player_has_item(ITEM_RARE_SHADOWS_MASK, player, 1)) byte_5111F6[8] = 1;
|
|
3555 if (sub_43EE15_player_has_item(ITEM_RILIC_TITANS_BELT, player, 1)) byte_5111F6[9] = 1;
|
|
3556 if (sub_43EE15_player_has_item(ITEM_ARTIFAT_HEROS_BELT, player, 1)) byte_5111F6[10] = 1;
|
|
3557 if (sub_43EE15_player_has_item(ITEM_RELIC_TWILIGHT, player, 1)) byte_5111F6[11] = 1;
|
|
3558 if (sub_43EE15_player_has_item(ITEM_ARTIFACT_CLOAK_OF_THE_SHEEP, player, 1)) byte_5111F6[12] = 1;
|
|
3559 if (sub_43EE15_player_has_item(ITEM_RARE_SUN_CLOAK, player, 1)) byte_5111F6[13] = 1;
|
|
3560 if (sub_43EE15_player_has_item(ITEM_RARE_MOON_CLOAK, player, 1)) byte_5111F6[14] = 1;
|
|
3561 if (sub_43EE15_player_has_item(ITEM_RARE_VAMPIRES_CAPE, player, 1)) byte_5111F6[15] = 1;
|
|
3562 if (sub_43EE15_player_has_item(ITEM_ELVEN_CHAINMAIL, player, 1)) byte_5111F6[16] = 1;
|
|
3563 }
|
|
3564
|
|
3565 //v14 = 1;
|
|
3566 //v15 = &stru_511698.field_2C;
|
|
3567 //v35 = (char *)&stru_511718.field_18;
|
|
3568 for (uint i = 0; i < 2; ++i)
|
|
3569 {
|
|
3570 //v16 = 0;
|
|
3571 //v39 = (unsigned int *)(v35 - 24);
|
|
3572 for (uint j = 0; j < 5; ++j)
|
|
3573 {
|
|
3574 _43C91D_FormItemTextureFilename(pContainer, j + 100, i + 1, 0);
|
|
3575 //v17 = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE);
|
|
3576 //++v16;
|
|
3577 //v18 = v39;
|
|
3578 //++v39;
|
|
3579 //*v18 = v17;
|
|
3580 stru_511718[i].texids[j] = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE);
|
|
3581 }
|
|
3582 //while ( v16 < 5 );
|
|
3583
|
|
3584 //*(int *)v35 = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE);
|
|
3585 _43C91D_FormItemTextureFilename(pContainer, 535, i + 1, 0);
|
|
3586 stru_511718[i].texid2 = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE);
|
|
3587
|
|
3588 //v31 = 0;
|
|
3589 //v19 = (unsigned int *)((char *)v15 - 44);
|
|
3590 for (uint j = 0; j < 11; ++j)
|
|
3591 {
|
|
3592 _43C91D_FormItemTextureFilename(pContainer, j + 89, i + 1, 0);
|
|
3593 //*v19 = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE);
|
|
3594 //++v19;
|
|
3595 stru_511698[i].texids[j] = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE);
|
|
3596 }
|
|
3597 //while ( v31 < 11 );
|
|
3598
|
|
3599 _43C91D_FormItemTextureFilename(pContainer, 521, i + 1, 0);
|
|
3600 stru_511698[i].texid1 = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE);
|
|
3601 _43C91D_FormItemTextureFilename(pContainer, 522, i + 1, 0);
|
|
3602 stru_511698[i].texid2 = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE);
|
|
3603 _43C91D_FormItemTextureFilename(pContainer, 523, i + 1, 0);
|
|
3604 stru_511698[i].texid3 = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE);
|
|
3605 _43C91D_FormItemTextureFilename(pContainer, 532, i + 1, 0);
|
|
3606 stru_511698[i].texid4 = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE);
|
|
3607 _43C91D_FormItemTextureFilename(pContainer, 544, i + 1, 0);
|
|
3608 stru_511698[i].texid5 = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE);
|
|
3609 if ( _43ED6F_check_party_races(true) )
|
|
3610 papredoll_dbrds[11] = pIcons_LOD->LoadTexture("item092v3", TEXTURE_16BIT_PALETTE);
|
|
3611 //v35 += 28;
|
|
3612 //++v14;
|
|
3613 //++v15;
|
|
3614 }
|
|
3615 //while ( v14 - 1 < 2 );
|
|
3616
|
|
3617 v43 = 0;
|
|
3618 //v20 = 1;
|
|
3619 v40 = &dword_511638[0][5];
|
|
3620 v21 = (int)paperdoll_array_511290[0][13];
|
|
3621 //v41 = (unsigned int *)&stru_511718.texid1;
|
|
3622 for (uint i = 0; i < 4; ++i)
|
|
3623 {
|
|
3624 if ( sub_43EDB9_get_some_race_sex_relation_2(i) )
|
|
3625 {
|
|
3626 _43C91D_FormItemTextureFilename(pContainer, 524, i + 1, 0);
|
|
3627 v32 = 66;
|
|
3628 stru_511718[i].texid1 = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE);
|
|
3629 v36 = v21 - 152;
|
|
3630 do
|
|
3631 {
|
|
3632 _43C91D_FormItemTextureFilename(pContainer, v32, i + 1, 0);
|
|
3633 *(int *)(v36 - 4) = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE);
|
|
3634 _43C91D_FormItemTextureFilename(pContainer, v32, i + 1, 1);
|
|
3635 *(int *)v36 = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE);
|
|
3636 _43C91D_FormItemTextureFilename(pContainer, v32, i + 1, 2);
|
|
3637 v22 = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE);
|
|
3638 v23 = v36;
|
|
3639 v36 += 12;
|
|
3640 ++v32;
|
|
3641 *(int *)(v23 + 4) = v22;
|
|
3642 }
|
|
3643 while ( v32 - 66 < 13 );
|
|
3644 _43C91D_FormItemTextureFilename(pContainer, 516, i + 1, 0);
|
|
3645 *(int *)v21 = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE);
|
|
3646 _43C91D_FormItemTextureFilename(pContainer, 516, i + 1, 1);
|
|
3647 *(int *)(v21 + 4) = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE);
|
|
3648 _43C91D_FormItemTextureFilename(pContainer, 516, i + 1, 2);
|
|
3649 *(int *)(v21 + 8) = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE);
|
|
3650 _43C91D_FormItemTextureFilename(pContainer, 505, i + 1, 0);
|
|
3651 *(int *)(v21 + 12) = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE);
|
|
3652 _43C91D_FormItemTextureFilename(pContainer, 505, i + 1, 1);
|
|
3653 *(int *)(v21 + 16) = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE);
|
|
3654 _43C91D_FormItemTextureFilename(pContainer, 505, i + 1, 2);
|
|
3655 *(int *)(v21 + 20) = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE);
|
|
3656 _43C91D_FormItemTextureFilename(pContainer, 504, i + 1, 0);
|
|
3657 *(int *)(v21 + 24) = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE);
|
|
3658 _43C91D_FormItemTextureFilename(pContainer, 504, i + 1, 1);
|
|
3659 *(int *)(v21 + 28) = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE);
|
|
3660 _43C91D_FormItemTextureFilename(pContainer, 504, i + 1, 2);
|
|
3661 *(int *)(v21 + 32) = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE);
|
|
3662 _43C91D_FormItemTextureFilename(pContainer, 533, i + 1, 0);
|
|
3663 *(int *)(v21 + 36) = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE);
|
|
3664 _43C91D_FormItemTextureFilename(pContainer, 533, i + 1, 1);
|
|
3665 *(int *)(v21 + 40) = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE);
|
|
3666 _43C91D_FormItemTextureFilename(pContainer, 533, i + 1, 2);
|
|
3667 *(int *)(v21 + 44) = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE);
|
|
3668 v33 = 0;
|
|
3669 v37 = (int)(v40 - 5);
|
|
3670 do
|
|
3671 {
|
|
3672 _43C91D_FormItemTextureFilename(pContainer, v33 + 115, i + 1, 0);
|
|
3673 v24 = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE);
|
|
3674 ++v33;
|
|
3675 v25 = v37;
|
|
3676 v37 += 4;
|
|
3677 *(int *)v25 = v24;
|
|
3678 }
|
|
3679 while ( v33 < 5 );
|
|
3680 _43C91D_FormItemTextureFilename(pContainer, 512, i + 1, 0);
|
|
3681 v26 = v43;
|
|
3682 v38 = 105;
|
|
3683 v34 = v43;
|
|
3684 *v40 = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE);
|
|
3685 do
|
|
3686 {
|
|
3687 _43C91D_FormItemTextureFilename(pContainer, v38, i + 1, 0);
|
|
3688 *(int *)((char *)paperdoll_array_511828 + v34) = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE);
|
|
3689 _43C91D_FormItemTextureFilename(pContainer, v38, i + 1, 1);
|
|
3690 v27 = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE);
|
|
3691 v28 = v34;
|
|
3692 v34 += 4;
|
|
3693 ++v38;
|
|
3694 *(int *)((char *)dword_511788 + v28) = v27;
|
|
3695 }
|
|
3696 while ( v38 - 105 < 5 );
|
|
3697 _43C91D_FormItemTextureFilename(pContainer, 525, i + 1, 0);
|
|
3698 *(int *)((char *)&paperdoll_array_511828[0][5] + v43) = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE);
|
|
3699 _43C91D_FormItemTextureFilename(pContainer, 530, i + 1, 0);
|
|
3700 *(int *)((char *)&paperdoll_array_511828[0][6] + v43) = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE);
|
|
3701 _43C91D_FormItemTextureFilename(pContainer, 547, i + 1, 0);
|
|
3702 *(int *)((char *)&paperdoll_array_511828[0][7] + v43) = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE);
|
|
3703 _43C91D_FormItemTextureFilename(pContainer, 548, i + 1, 0);
|
|
3704 *(int *)((char *)&paperdoll_array_511828[0][8] + v43) = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE);
|
|
3705 _43C91D_FormItemTextureFilename(pContainer, 550, i + 1, 0);
|
|
3706 *(int *)((char *)&paperdoll_array_511828[0][9] + v43) = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE);
|
|
3707 _43C91D_FormItemTextureFilename(pContainer, 525, i + 1, 1);
|
|
3708 *(int *)((char *)&dword_51179C + v43) = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE);
|
|
3709 _43C91D_FormItemTextureFilename(pContainer, 530, i + 1, 1);
|
|
3710 *(int *)((char *)&dword_5117A0 + v43) = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE);
|
|
3711 _43C91D_FormItemTextureFilename(pContainer, 547, i + 1, 1);
|
|
3712 *(int *)((char *)&dword_5117A4 + v43) = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE);
|
|
3713 _43C91D_FormItemTextureFilename(pContainer, 548, i + 1, 1);
|
|
3714 *(int *)((char *)&dword_5117A8 + v43) = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE);
|
|
3715 _43C91D_FormItemTextureFilename(pContainer, 550, i + 1, 1);
|
|
3716 *(int *)((char *)&dword_5117AC + v43) = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE);
|
|
3717 }
|
|
3718 else
|
|
3719 {
|
|
3720 v26 = v43;
|
|
3721 }
|
|
3722 //v41 += 7;
|
|
3723 v40 += 6;
|
|
3724 v21 += 204;
|
|
3725 //++v20;
|
|
3726 //result = v20 - 1;
|
|
3727 v43 = v26 + 40;
|
|
3728 }
|
|
3729 //while ( v20 - 1 < 4 );
|
|
3730 //return result;
|
|
3731 }
|
|
3732
|
|
3733 //----- (00419401) --------------------------------------------------------
|
|
3734 void __cdecl CharacterUI_SkillScreen_Draw()
|
|
3735 {
|
|
3736 unsigned int v0; // ecx@3
|
|
3737 GUIButton *pButton; // eax@3
|
|
3738 GUIFont *v2; // eax@8
|
|
3739 unsigned int v3; // esi@8
|
|
3740 int v4; // eax@10
|
|
3741 unsigned int v5; // esi@14
|
|
3742 int v6; // eax@17
|
|
3743 unsigned int v7; // esi@19
|
|
3744 int v8; // eax@21
|
|
3745 unsigned int v9; // esi@25
|
|
3746 int v10; // eax@27
|
|
3747 int a2; // [sp+10h] [bp-14h]@1
|
|
3748 int v12; // [sp+14h] [bp-10h]@8
|
|
3749 int v13; // [sp+14h] [bp-10h]@19
|
|
3750 int *v14; // [sp+18h] [bp-Ch]@8
|
|
3751 int *v15; // [sp+18h] [bp-Ch]@14
|
|
3752 int *v16; // [sp+18h] [bp-Ch]@19
|
|
3753 int *v17; // [sp+18h] [bp-Ch]@25
|
|
3754 Player *v18; // [sp+1Ch] [bp-8h]@8
|
|
3755 int a5; // [sp+20h] [bp-4h]@8
|
|
3756
|
|
3757 a2 = 0;
|
|
3758 if ( dword_507CC0 )
|
|
3759 sub_4196A0();
|
|
3760 v0 = uActiveCharacter;
|
|
3761 dword_507CC0 = uActiveCharacter;
|
|
3762 for ( pButton = pGUIWindow_CurrentMenu->pControlsHead; pButton; pButton = pButton->pNext )
|
|
3763 {
|
|
3764 if ( pButton->uControlID == 120 )
|
|
3765 {
|
|
3766 dword_50698C = pButton->uX;
|
|
3767 dword_506988 = pButton->uY;
|
|
3768 dword_506984 = pButton->uZ;
|
|
3769 dword_506980 = pButton->uW;
|
|
3770 pButton->uW = 0;
|
|
3771 pButton->uZ = 0;
|
|
3772 pButton->uY = 0;
|
|
3773 pButton->uX = 0;
|
|
3774 v0 = uActiveCharacter;
|
|
3775 }
|
|
3776 }
|
|
3777 v12 = 0;
|
|
3778 a5 = pGUIWindow_CurrentMenu->uNumControls;
|
|
3779 v18 = &pParty->pPlayers[v0-1];
|
|
3780 v2 = pFontLucida;
|
|
3781 v14 = pWeaponSkills;
|
|
3782 v3 = 2 * LOBYTE(pFontLucida->uFontHeight) + 13;
|
|
3783 do
|
|
3784 {
|
|
3785 if ( v18->pActiveSkills[*v14] & 0x3F )//crash
|
|
3786 {
|
|
3787 v4 = LOBYTE(v2->uFontHeight);
|
|
3788 v3 = v3 + v4 - 3;
|
|
3789 ++a2;
|
|
3790 ++v12;
|
|
3791 pGUIWindow_CurrentMenu->CreateButton(0x18u, v3, 0xCCu, v4 - 3, 3, *v14 | 0x8000, 0x79u, *v14, 0, "", 0, 0);
|
|
3792 v2 = pFontLucida;
|
|
3793 }
|
|
3794 ++v14;
|
|
3795 }
|
|
3796 while ( v14 <= &pWeaponSkills[8] );
|
|
3797 if ( !v12 )
|
|
3798 v3 = v3 + LOBYTE(v2->uFontHeight) - 3;
|
|
3799 v15 = pMagicSkills;
|
|
3800 v5 = v3 + 2 * LOBYTE(v2->uFontHeight) - 6;
|
|
3801 do
|
|
3802 {
|
|
3803 if ( v18->pActiveSkills[*v15] & 0x3F && a2 < 15 )
|
|
3804 {
|
|
3805 v6 = LOBYTE(v2->uFontHeight);
|
|
3806 v5 = v5 + v6 - 3;
|
|
3807 ++a2;
|
|
3808 pGUIWindow_CurrentMenu->CreateButton(0x18u, v5, 0xCCu, v6 - 3, 3, *v15 | 0x8000, 0x79u, *v15, 0, "", 0, 0);
|
|
3809 v2 = pFontLucida;
|
|
3810 }
|
|
3811 ++v15;
|
|
3812 }
|
|
3813 while ( v15 <= &pMagicSkills[8] );
|
|
3814 v13 = 0;
|
|
3815 v16 = pArmorSkills;
|
|
3816 v7 = 2 * LOBYTE(v2->uFontHeight) + 13;
|
|
3817 do
|
|
3818 {
|
|
3819 if ( v18->pActiveSkills[*v16] & 0x3F )
|
|
3820 {
|
|
3821 v8 = LOBYTE(v2->uFontHeight);
|
|
3822 v7 = v7 + v8 - 3;
|
|
3823 ++a2;
|
|
3824 ++v13;
|
|
3825 pGUIWindow_CurrentMenu->CreateButton(0xF6u, v7, 0xCCu, v8 - 3, 3, *v16 | 0x8000, 0x79u, *v16, 0, "", 0, 0);
|
|
3826 v2 = pFontLucida;
|
|
3827 }
|
|
3828 ++v16;
|
|
3829 }
|
|
3830 while ( v16 <= &pArmorSkills[4] );
|
|
3831 if ( !v13 )
|
|
3832 v7 = v7 + LOBYTE(v2->uFontHeight) - 3;
|
|
3833 v17 = pMiscSkills;
|
|
3834 v9 = v7 + 2 * LOBYTE(v2->uFontHeight) - 6;
|
|
3835 do
|
|
3836 {
|
|
3837 if ( v18->pActiveSkills[*v17] & 0x3F )
|
|
3838 {
|
|
3839 v10 = LOBYTE(v2->uFontHeight);
|
|
3840 v9 = v9 + v10 - 3;
|
|
3841 ++a2;
|
|
3842 pGUIWindow_CurrentMenu->CreateButton(0xF6u, v9, 0xCCu, v10 - 3, 3, *v17 | 0x8000, 0x79u, *v17, 0, "", 0, 0);
|
|
3843 v2 = pFontLucida;
|
|
3844 }
|
|
3845 ++v17;
|
|
3846 }
|
|
3847 while ( v17 <= &pMiscSkills[11] );
|
|
3848 if ( a2 )
|
|
3849 pGUIWindow_CurrentMenu->_41D08F(a2, 1, 0, a5);
|
|
3850 }
|
|
3851
|
|
3852
|
|
3853 //----- (00418511) --------------------------------------------------------
|
|
3854 char __fastcall CharacterUI_StatsTab_Draw(unsigned int uPlayerID)
|
|
3855 {
|
|
3856 Player *pPlayer; // edi@1
|
|
3857 unsigned int v2; // eax@1
|
|
3858 unsigned int v3; // eax@1
|
|
3859 unsigned int v4; // eax@2
|
|
3860 int v5; // ST20_4@4
|
|
3861 int v6; // ST1C_4@4
|
|
3862 int v7; // ebp@4
|
|
3863 int v8; // eax@4
|
|
3864 unsigned int v9; // eax@4
|
|
3865 int v10; // ST34_4@4
|
|
3866 int v11; // ST20_4@4
|
|
3867 int v12; // ST1C_4@4
|
|
3868 int v13; // ebp@4
|
|
3869 int v14; // eax@4
|
|
3870 unsigned int v15; // eax@4
|
|
3871 int v16; // ST34_4@4
|
|
3872 int v17; // ST20_4@4
|
|
3873 int v18; // ST1C_4@4
|
|
3874 int v19; // ebp@4
|
|
3875 int v20; // eax@4
|
|
3876 unsigned int v21; // eax@4
|
|
3877 int v22; // ST34_4@4
|
|
3878 int v23; // ST20_4@4
|
|
3879 int v24; // ST1C_4@4
|
|
3880 int v25; // ebp@4
|
|
3881 int v26; // eax@4
|
|
3882 unsigned int v27; // eax@4
|
|
3883 int v28; // ST34_4@4
|
|
3884 int v29; // ST20_4@4
|
|
3885 int v30; // ST1C_4@4
|
|
3886 int v31; // ebp@4
|
|
3887 int v32; // eax@4
|
|
3888 unsigned int v33; // eax@4
|
|
3889 int v34; // ST34_4@4
|
|
3890 int v35; // ST20_4@4
|
|
3891 int v36; // ST1C_4@4
|
|
3892 int v37; // ebp@4
|
|
3893 int v38; // eax@4
|
|
3894 unsigned int v39; // eax@4
|
|
3895 int v40; // ST34_4@4
|
|
3896 int v41; // ST20_4@4
|
|
3897 int v42; // ST1C_4@4
|
|
3898 int v43; // ebp@4
|
|
3899 int v44; // eax@4
|
|
3900 unsigned int v45; // eax@4
|
|
3901 int v46; // ebp@4
|
|
3902 signed int v47; // ST20_4@6
|
|
3903 int v48; // ST1C_4@6
|
|
3904 signed int v49; // eax@6
|
|
3905 unsigned int v50; // eax@6
|
|
3906 int v51; // ST20_4@8
|
|
3907 int v52; // ST1C_4@8
|
|
3908 int v53; // eax@8
|
|
3909 unsigned int v54; // eax@8
|
|
3910 int v55; // ST34_4@8
|
|
3911 int v56; // ST20_4@8
|
|
3912 int v57; // ST1C_4@8
|
|
3913 int v58; // ebp@8
|
|
3914 int v59; // eax@8
|
|
3915 unsigned int v60; // eax@8
|
|
3916 unsigned int v61; // ebp@8
|
|
3917 unsigned int v62; // eax@8
|
|
3918 char *v63; // ST20_4@8
|
|
3919 signed int v64; // eax@8
|
|
3920 unsigned int v65; // ebp@8
|
|
3921 unsigned __int8 v66; // al@8
|
|
3922 char *v67; // eax@9
|
|
3923 unsigned int v68; // ST20_4@11
|
|
3924 unsigned int v69; // ST1C_4@11
|
|
3925 signed int v70; // ebp@11
|
|
3926 signed int v71; // eax@11
|
|
3927 unsigned int v72; // eax@11
|
|
3928 int v73; // ST20_4@13
|
|
3929 int v74; // ST1C_4@13
|
|
3930 int v75; // ebp@13
|
|
3931 int v76; // eax@13
|
|
3932 unsigned int v77; // eax@13
|
|
3933 char *v78; // ecx@14
|
|
3934 int v79; // ST20_4@16
|
|
3935 char *v80; // ST40_4@16
|
|
3936 unsigned int v81; // eax@16
|
|
3937 int v82; // ST34_4@16
|
|
3938 int v83; // eax@16
|
|
3939 int v84; // ST34_4@16
|
|
3940 char *v85; // eax@16
|
|
3941 int v86; // ST34_4@16
|
|
3942 int v87; // eax@16
|
|
3943 int v88; // ST34_4@16
|
|
3944 char *v89; // eax@16
|
|
3945 int v90; // eax@16
|
|
3946 int v91; // ST20_4@19
|
|
3947 unsigned int v92; // eax@19
|
|
3948 int v93; // eax@19
|
|
3949 int v94; // ST20_4@22
|
|
3950 unsigned int v95; // eax@22
|
|
3951 int v96; // eax@22
|
|
3952 int v97; // ST20_4@25
|
|
3953 unsigned int v98; // eax@25
|
|
3954 int v99; // eax@25
|
|
3955 int v100; // ST20_4@27
|
|
3956 unsigned int v101; // eax@27
|
|
3957 int v102; // eax@27
|
|
3958 int v103; // ST20_4@30
|
|
3959 unsigned int v104; // eax@30
|
|
3960 char *v105; // ST20_4@32
|
|
3961 unsigned int v106; // eax@32
|
|
3962 int v107; // eax@33
|
|
3963 int v108; // ST20_4@36
|
|
3964 unsigned int v109; // eax@36
|
|
3965 char *v110; // ST20_4@38
|
|
3966 unsigned int v111; // eax@38
|
|
3967 int uY; // [sp+10h] [bp-10h]@6
|
|
3968 int uYa; // [sp+10h] [bp-10h]@11
|
|
3969 int uYb; // [sp+10h] [bp-10h]@13
|
|
3970 int uYc; // [sp+10h] [bp-10h]@16
|
|
3971 int uYd; // [sp+10h] [bp-10h]@19
|
|
3972 int uYe; // [sp+10h] [bp-10h]@22
|
|
3973 int uYf; // [sp+10h] [bp-10h]@25
|
|
3974 int uYg; // [sp+10h] [bp-10h]@27
|
|
3975 int uYh; // [sp+10h] [bp-10h]@33
|
|
3976 const char *a2; // [sp+14h] [bp-Ch]@4
|
|
3977 const char *a2a; // [sp+14h] [bp-Ch]@6
|
|
3978 const char *a2b; // [sp+14h] [bp-Ch]@11
|
|
3979 const char *a2c; // [sp+14h] [bp-Ch]@16
|
|
3980 const char *a2d; // [sp+14h] [bp-Ch]@19
|
|
3981 const char *a2e; // [sp+14h] [bp-Ch]@22
|
|
3982 const char *a2f; // [sp+14h] [bp-Ch]@25
|
|
3983 const char *a2g; // [sp+14h] [bp-Ch]@27
|
|
3984 const char *a2h; // [sp+14h] [bp-Ch]@33
|
|
3985 int v131; // [sp+18h] [bp-8h]@16
|
|
3986 int v132; // [sp+18h] [bp-8h]@19
|
|
3987 int v133; // [sp+18h] [bp-8h]@22
|
|
3988 int v134; // [sp+18h] [bp-8h]@25
|
|
3989 int v135; // [sp+18h] [bp-8h]@27
|
|
3990 int v136; // [sp+18h] [bp-8h]@33
|
|
3991 int v137; // [sp+1Ch] [bp-4h]@27
|
|
3992 int v138; // [sp+1Ch] [bp-4h]@33
|
|
3993
|
|
3994 pPlayer = &pParty->pPlayers[uPlayerID-1];
|
|
3995 v2 = pIcons_LOD->LoadTexture("fr_stats", TEXTURE_16BIT_PALETTE);
|
|
3996 pRenderer->DrawTextureIndexed(8, 8, (Texture *)(v2 != -1 ? (int)&pIcons_LOD->pTextures[v2] : 0));
|
|
3997 v3 = GenerateColorAsCloseAsPossibleToR8G8B8InTargetFormat(0xFFu, 0xFFu, 0x9Bu);
|
|
3998 sprintf(pTmpBuf, "\f%05d", v3);
|
|
3999 sprintf(pTmpBuf2, pGlobalTXT_LocalizationStrings[429], pPlayer->pName, pClassNames[pPlayer->classType]);//^Pi[%s] %s
|
|
4000 strcat(pTmpBuf, pTmpBuf2);
|
|
4001 if ( pPlayer->uSkillPoints )
|
|
4002 v4 = GenerateColorAsCloseAsPossibleToR8G8B8InTargetFormat(0, 0xFFu, 0);
|
|
4003 else
|
|
4004 v4 = 0xFFFFu;
|
|
4005 sprintf(pTmpBuf2, "\f00000\r180%s: \f%05d%d\f00000\n\n\n", pGlobalTXT_LocalizationStrings[207], v4, pPlayer->uSkillPoints);//Skill points
|
|
4006 strcat(pTmpBuf, pTmpBuf2);
|
|
4007 pGUIWindow_CurrentMenu->DrawText(pFontArrus, 26, 18, 0, pTmpBuf, 0, 0, 0);
|
|
4008 v5 = pPlayer->GetBaseStrength();
|
|
4009 v6 = pPlayer->GetActualMight();
|
|
4010 v7 = pPlayer->GetBaseStrength();
|
|
4011 v8 = pPlayer->GetActualMight();
|
|
4012 v9 = UI_GetHealthManaStringColor(v8, v7);
|
|
4013 sprintf(pTmpBuf, "%s\f%05u\r424%d\f00000 /\t185%d\n", pGlobalTXT_LocalizationStrings[144], v9, v6, v5);//Might
|
|
4014 pGUIWindow_CurrentMenu->DrawText(pFontArrus, 26, 53, 0, pTmpBuf, 0, 0, 0);
|
|
4015 v10 = LOBYTE(pFontArrus->uFontHeight) + 51;
|
|
4016 v11 = pPlayer->GetBaseIntelligence();
|
|
4017 v12 = pPlayer->GetActualIntelligence();
|
|
4018 v13 = pPlayer->GetBaseIntelligence();
|
|
4019 v14 = pPlayer->GetActualIntelligence();
|
|
4020 v15 = UI_GetHealthManaStringColor(v14, v13);
|
|
4021 sprintf(pTmpBuf, "%s\f%05u\r424%d\f00000 /\t185%d\n", pGlobalTXT_LocalizationStrings[116], v15, v12, v11);//Intellect
|
|
4022 pGUIWindow_CurrentMenu->DrawText(pFontArrus, 26, v10, 0, pTmpBuf, 0, 0, 0);
|
|
4023 v16 = LOBYTE(pFontArrus->uFontHeight) + v10 - 2;
|
|
4024 v17 = pPlayer->GetBaseWillpower();
|
|
4025 v18 = pPlayer->GetActualWillpower();
|
|
4026 v19 = pPlayer->GetBaseWillpower();
|
|
4027 v20 = pPlayer->GetActualWillpower();
|
|
4028 v21 = UI_GetHealthManaStringColor(v20, v19);
|
|
4029 sprintf(pTmpBuf, "%s\f%05u\r424%d\f00000 /\t185%d\n", pGlobalTXT_LocalizationStrings[163], v21, v18, v17);//
|
|
4030 pGUIWindow_CurrentMenu->DrawText(pFontArrus, 26, v16, 0, pTmpBuf, 0, 0, 0);
|
|
4031 v22 = LOBYTE(pFontArrus->uFontHeight) + v16 - 2;
|
|
4032 v23 = pPlayer->GetBaseEndurance();
|
|
4033 v24 = pPlayer->GetActualEndurance();
|
|
4034 v25 = pPlayer->GetBaseEndurance();
|
|
4035 v26 = pPlayer->GetActualEndurance();
|
|
4036 v27 = UI_GetHealthManaStringColor(v26, v25);
|
|
4037 sprintf(pTmpBuf, "%s\f%05u\r424%d\f00000 /\t185%d\n", pGlobalTXT_LocalizationStrings[75], v27, v24, v23);//
|
|
4038 pGUIWindow_CurrentMenu->DrawText(pFontArrus, 26, v22, 0, pTmpBuf, 0, 0, 0);
|
|
4039 v28 = LOBYTE(pFontArrus->uFontHeight) + v22 - 2;
|
|
4040 v29 = pPlayer->GetBaseAccuracy();
|
|
4041 v30 = pPlayer->GetActualAccuracy();
|
|
4042 v31 = pPlayer->GetBaseAccuracy();
|
|
4043 v32 = pPlayer->GetActualAccuracy();
|
|
4044 v33 = UI_GetHealthManaStringColor(v32, v31);
|
|
4045 sprintf(pTmpBuf, "%s\f%05u\r424%d\f00000 /\t185%d\n", pGlobalTXT_LocalizationStrings[1], v33, v30, v29);
|
|
4046 pGUIWindow_CurrentMenu->DrawText(pFontArrus, 26, v28, 0, pTmpBuf, 0, 0, 0);
|
|
4047 v34 = LOBYTE(pFontArrus->uFontHeight) + v28 - 2;
|
|
4048 v35 = pPlayer->GetBaseSpeed();
|
|
4049 v36 = pPlayer->GetActualSpeed();
|
|
4050 v37 = pPlayer->GetBaseSpeed();
|
|
4051 v38 = pPlayer->GetActualSpeed();
|
|
4052 v39 = UI_GetHealthManaStringColor(v38, v37);
|
|
4053 sprintf(pTmpBuf, "%s\f%05u\r424%d\f00000 /\t185%d\n", pGlobalTXT_LocalizationStrings[211], v39, v36, v35);
|
|
4054 pGUIWindow_CurrentMenu->DrawText(pFontArrus, 26, v34, 0, pTmpBuf, 0, 0, 0);
|
|
4055 v40 = LOBYTE(pFontArrus->uFontHeight) + v34 - 2;
|
|
4056 v41 = pPlayer->GetBaseLuck();
|
|
4057 v42 = pPlayer->GetActualLuck();
|
|
4058 v43 = pPlayer->GetBaseLuck();
|
|
4059 v44 = pPlayer->GetActualLuck();
|
|
4060 v45 = UI_GetHealthManaStringColor(v44, v43);
|
|
4061 sprintf(pTmpBuf, "%s\f%05u\r424%d\f00000 /\t185%d\n\n", pGlobalTXT_LocalizationStrings[136], v45, v42, v41);
|
|
4062 pGUIWindow_CurrentMenu->DrawText(pFontArrus, 26, v40, 0, pTmpBuf, 0, 0, 0);
|
|
4063 a2 = "%s\f%05u\r424%d\f00000 /\t185%d\n";
|
|
4064 v46 = v40 + 2 * LOBYTE(pFontArrus->uFontHeight) + 5;
|
|
4065 if ( pPlayer->GetMaxHealth() >= 1000 )
|
|
4066 a2 = "%s\f%05u\r388%d\f00000 / %d\n";
|
|
4067 v47 = pPlayer->GetMaxHealth();
|
|
4068 v48 = pPlayer->sHealth;
|
|
4069 v49 = pPlayer->GetMaxHealth();
|
|
4070 v50 = UI_GetHealthManaStringColor(pPlayer->sHealth, v49);
|
|
4071 sprintf(pTmpBuf, a2, pGlobalTXT_LocalizationStrings[108], v50, v48, v47);
|
|
4072 pGUIWindow_CurrentMenu->DrawText(pFontArrus, 26, v46, 0, pTmpBuf, 0, 0, 0);
|
|
4073 a2a = "%s\f%05u\r424%d\f00000 /\t185%d\n";
|
|
4074 uY = LOBYTE(pFontArrus->uFontHeight) + v46 - 2;
|
|
4075 if ( pPlayer->GetMaxMana() >= 1000 )
|
|
4076 a2a = "%s\f%05u\r388%d\f00000 / %d\n";
|
|
4077 v51 = pPlayer->GetMaxMana();
|
|
4078 v52 = pPlayer->sMana;
|
|
4079 v53 = pPlayer->GetMaxMana();
|
|
4080 v54 = UI_GetHealthManaStringColor(pPlayer->sMana, v53);
|
|
4081 sprintf(pTmpBuf, a2a, pGlobalTXT_LocalizationStrings[212], v54, v52, v51);
|
|
4082 pGUIWindow_CurrentMenu->DrawText(pFontArrus, 26, uY, 0, pTmpBuf, 0, 0, 0);
|
|
4083 v55 = LOBYTE(pFontArrus->uFontHeight) + uY - 2;
|
|
4084 v56 = pPlayer->GetBaseAC();
|
|
4085 v57 = pPlayer->GetActualAC();
|
|
4086 v58 = pPlayer->GetBaseAC();
|
|
4087 v59 = pPlayer->GetActualAC();
|
|
4088 v60 = UI_GetHealthManaStringColor(v59, v58);
|
|
4089 sprintf(pTmpBuf, "%s\f%05u\r424%d\f00000 /\t185%d\n\n", pGlobalTXT_LocalizationStrings[12], v60, v57, v56);
|
|
4090 pGUIWindow_CurrentMenu->DrawText(pFontArrus, 26, v55, 0, pTmpBuf, 0, 0, 0);
|
|
4091 v61 = v55 + 2 * LOBYTE(pFontArrus->uFontHeight) - 2;
|
|
4092 v62 = pPlayer->GetMajorConditionIdx();
|
|
4093 v63 = aCharacterConditionNames[v62];
|
|
4094 v64 = GetConditionDrawColor(v62);
|
|
4095 sprintf(pTmpBuf, "%s: \f%05d%s\n", pGlobalTXT_LocalizationStrings[47], v64, v63);
|
|
4096 pGUIWindow_CurrentMenu->DrawTextInRect(pFontArrus, 0x1Au, v61, 0, pTmpBuf, 226, 0);
|
|
4097 v65 = LOBYTE(pFontArrus->uFontHeight) + v61 - 1;
|
|
4098 v66 = pPlayer->uQuickSpell;
|
|
4099 if ( v66 )
|
|
4100 v67 = pSpellStats->pInfos[v66].pShortName;
|
|
4101 else
|
|
4102 v67 = pGlobalTXT_LocalizationStrings[153];
|
|
4103 sprintf(pTmpBuf, "%s: %s", pGlobalTXT_LocalizationStrings[172], v67);
|
|
4104 pGUIWindow_CurrentMenu->DrawTextInRect(pFontArrus, 0x1Au, v65, 0, pTmpBuf, 226, 0);
|
|
4105 v68 = pPlayer->GetBaseAge();
|
|
4106 v69 = pPlayer->GetActualAge();
|
|
4107 v70 = pPlayer->GetBaseAge();
|
|
4108 v71 = pPlayer->GetActualAge();
|
|
4109 v72 = UI_GetHealthManaStringColor(v71, v70);
|
|
4110 sprintf(pTmpBuf, "%s\f%05u\t100%d\f00000 / %d\n", pGlobalTXT_LocalizationStrings[5], v72, v69, v68);
|
|
4111 pGUIWindow_CurrentMenu->DrawText(pFontArrus, 266, 50, 0, pTmpBuf, 0, 0, 0);
|
|
4112 a2b = "%s\f%05u\t100%d\f00000 / %d\n";
|
|
4113 uYa = LOBYTE(pFontArrus->uFontHeight) + 48;
|
|
4114 if ( pPlayer->GetBaseLevel() > 99 )
|
|
4115 a2b = format_4E2E68;
|
|
4116 v73 = pPlayer->GetBaseLevel();
|
|
4117 v74 = pPlayer->GetActualLevel();
|
|
4118 v75 = pPlayer->GetBaseLevel();
|
|
4119 v76 = pPlayer->GetActualLevel();
|
|
4120 v77 = UI_GetHealthManaStringColor(v76, v75);
|
|
4121 sprintf(pTmpBuf, a2b, pGlobalTXT_LocalizationStrings[131], v77, v74, v73);
|
|
4122 pGUIWindow_CurrentMenu->DrawText(pFontArrus, 266, uYa, 0, pTmpBuf, 0, 0, 0);
|
|
4123 uYb = uYa + LOBYTE(pFontArrus->uFontHeight) - 2;
|
|
4124 if ( (signed __int64)pPlayer->uExperience <= 9999999 )
|
|
4125 v78 = pGlobalTXT_LocalizationStrings[83];
|
|
4126 else
|
|
4127 v78 = pGlobalTXT_LocalizationStrings[17];
|
|
4128 v79 = LODWORD(pPlayer->uExperience);
|
|
4129 v80 = v78;
|
|
4130 v81 = pPlayer->GetExperienceDisplayColor();
|
|
4131 sprintf(pTmpBuf, "%s\r180\f%05d%lu\f00000\n\n", v80, v81, v79);
|
|
4132 pGUIWindow_CurrentMenu->DrawText(pFontArrus, 266, uYb, 0, pTmpBuf, 0, 0, 0);
|
|
4133 v82 = uYb + 2 * LOBYTE(pFontArrus->uFontHeight);
|
|
4134 v83 = pPlayer->GetActualAttack(0);
|
|
4135 sprintf(pTmpBuf, "%s\t100%+d\n", pGlobalTXT_LocalizationStrings[18], v83);
|
|
4136 pGUIWindow_CurrentMenu->DrawText(pFontArrus, 266, v82, 0, pTmpBuf, 0, 0, 0);
|
|
4137 v84 = v82 + LOBYTE(pFontArrus->uFontHeight) - 2;
|
|
4138 v85 = pPlayer->GetMeleeDamageString();
|
|
4139 sprintf(pTmpBuf, "%s\t100 %s\n", pGlobalTXT_LocalizationStrings[53], v85);
|
|
4140 pGUIWindow_CurrentMenu->DrawText(pFontArrus, 266, v84, 0, pTmpBuf, 0, 0, 0);
|
|
4141 v86 = v84 + LOBYTE(pFontArrus->uFontHeight) - 2;
|
|
4142 v87 = pPlayer->GetRangedAttack();
|
|
4143 sprintf(pTmpBuf, "%s\t100%+d\n", pGlobalTXT_LocalizationStrings[203], v87);
|
|
4144 pGUIWindow_CurrentMenu->DrawText(pFontArrus, 266, v86, 0, pTmpBuf, 0, 0, 0);
|
|
4145 v88 = v86 + LOBYTE(pFontArrus->uFontHeight) - 2;
|
|
4146 v89 = pPlayer->GetRangedDamageString();
|
|
4147 sprintf(pTmpBuf, "%s\t100 %s\n\n", pGlobalTXT_LocalizationStrings[53], v89);
|
|
4148 pGUIWindow_CurrentMenu->DrawText(pFontArrus, 266, v88, 0, pTmpBuf, 0, 0, 0);
|
|
4149 a2c = format_4E2E10;
|
|
4150 uYc = v88 + 2 * LOBYTE(pFontArrus->uFontHeight) - 4;
|
|
4151 v131 = pPlayer->GetActualResistance(CHARACTER_ATTRIBUTE_RESIST_FIRE);
|
|
4152 v90 = pPlayer->GetBaseResistance(CHARACTER_ATTRIBUTE_RESIST_FIRE);
|
|
4153 if ( v131 > 99 || v90 > 99 )
|
|
4154 a2c = format_4E2E68;
|
|
4155 v91 = v90;
|
|
4156 v92 = UI_GetHealthManaStringColor(v131, v90);
|
|
4157 sprintf(pTmpBuf, a2c, pGlobalTXT_LocalizationStrings[87], v92, v131, v91);
|
|
4158 pGUIWindow_CurrentMenu->DrawText(pFontArrus, 266, uYc, 0, pTmpBuf, 0, 0, 0);
|
|
4159 a2d = format_4E2E10;
|
|
4160 uYd = uYc + LOBYTE(pFontArrus->uFontHeight) - 2;
|
|
4161 v132 = pPlayer->GetActualResistance(CHARACTER_ATTRIBUTE_RESIST_AIR);
|
|
4162 v93 = pPlayer->GetBaseResistance(CHARACTER_ATTRIBUTE_RESIST_AIR);
|
|
4163 if ( v132 > 99 || v93 > 99 )
|
|
4164 a2d = format_4E2E68;
|
|
4165 v94 = v93;
|
|
4166 v95 = UI_GetHealthManaStringColor(v132, v93);
|
|
4167 sprintf(pTmpBuf, a2d, pGlobalTXT_LocalizationStrings[6], v95, v132, v94);
|
|
4168 pGUIWindow_CurrentMenu->DrawText(pFontArrus, 266, uYd, 0, pTmpBuf, 0, 0, 0);
|
|
4169 a2e = format_4E2E10;
|
|
4170 uYe = uYd + LOBYTE(pFontArrus->uFontHeight) - 2;
|
|
4171 v133 = pPlayer->GetActualResistance(CHARACTER_ATTRIBUTE_RESIST_WATER);
|
|
4172 v96 = pPlayer->GetBaseResistance(CHARACTER_ATTRIBUTE_RESIST_WATER);
|
|
4173 if ( v133 > 99 || v96 > 99 )
|
|
4174 a2e = format_4E2E68;
|
|
4175 v97 = v96;
|
|
4176 v98 = UI_GetHealthManaStringColor(v133, v96);
|
|
4177 sprintf(pTmpBuf, a2e, pGlobalTXT_LocalizationStrings[240], v98, v133, v97);
|
|
4178 pGUIWindow_CurrentMenu->DrawText(pFontArrus, 266, uYe, 0, pTmpBuf, 0, 0, 0);
|
|
4179 a2f = format_4E2E10;
|
|
4180 uYf = uYe + LOBYTE(pFontArrus->uFontHeight) - 2;
|
|
4181 v134 = pPlayer->GetActualResistance(CHARACTER_ATTRIBUTE_RESIST_EARTH);
|
|
4182 v99 = pPlayer->GetBaseResistance(CHARACTER_ATTRIBUTE_RESIST_EARTH);
|
|
4183 if ( v134 > 99 )
|
|
4184 a2f = format_4E2E68;
|
|
4185 v100 = v99;
|
|
4186 v101 = UI_GetHealthManaStringColor(v134, v99);
|
|
4187 sprintf(pTmpBuf, a2f, pGlobalTXT_LocalizationStrings[70], v101, v134, v100);
|
|
4188 pGUIWindow_CurrentMenu->DrawText(pFontArrus, 266, uYf, 0, pTmpBuf, 0, 0, 0);
|
|
4189 a2g = format_4E2E10;
|
|
4190 uYg = uYf + LOBYTE(pFontArrus->uFontHeight) - 2;
|
|
4191 v135 = pPlayer->GetActualResistance(CHARACTER_ATTRIBUTE_RESIST_MIND);
|
|
4192 v102 = pPlayer->GetBaseResistance(CHARACTER_ATTRIBUTE_RESIST_MIND);
|
|
4193 v137 = v102;
|
|
4194 if ( v135 > 99 || v102 > 99 )
|
|
4195 a2g = format_4E2E68;
|
|
4196 v103 = v102;
|
|
4197 v104 = UI_GetHealthManaStringColor(v135, v102);
|
|
4198 sprintf(pTmpBuf, a2g, pGlobalTXT_LocalizationStrings[142], v104, v135, v103);
|
|
4199 if ( pPlayer->classType == PLAYER_CLASS_LICH && v137 == 200 )
|
|
4200 {
|
|
4201 v105 = pGlobalTXT_LocalizationStrings[625];
|
|
4202 v106 = UI_GetHealthManaStringColor(v135, 200);
|
|
4203 sprintf(pTmpBuf, format_4E2E00, pGlobalTXT_LocalizationStrings[142], v106, v105);
|
|
4204 }
|
|
4205 pGUIWindow_CurrentMenu->DrawText(pFontArrus, 266, uYg, 0, pTmpBuf, 0, 0, 0);
|
|
4206 a2h = format_4E2E10;
|
|
4207 uYh = uYg + LOBYTE(pFontArrus->uFontHeight) - 2;
|
|
4208 v136 = pPlayer->GetActualResistance(CHARACTER_ATTRIBUTE_RESIST_BODY);
|
|
4209 v107 = pPlayer->GetBaseResistance(CHARACTER_ATTRIBUTE_RESIST_BODY);
|
|
4210 v138 = v107;
|
|
4211 if ( v136 > 99 || v107 > 99 )
|
|
4212 a2h = format_4E2E68;
|
|
4213 v108 = v107;
|
|
4214 v109 = UI_GetHealthManaStringColor(v136, v107);
|
|
4215 sprintf(pTmpBuf, a2h, pGlobalTXT_LocalizationStrings[29], v109, v136, v108);
|
|
4216 if ( pPlayer->classType == PLAYER_CLASS_LICH && v138 == 200 )
|
|
4217 {
|
|
4218 v110 = pGlobalTXT_LocalizationStrings[625];
|
|
4219 v111 = UI_GetHealthManaStringColor(v136, 200);
|
|
4220 sprintf(pTmpBuf, format_4E2E00, pGlobalTXT_LocalizationStrings[29], v111, v110);
|
|
4221 }
|
|
4222 return pGUIWindow_CurrentMenu->DrawText(pFontArrus, 266, uYh, 0, pTmpBuf, 0, 0, 0);
|
|
4223 }
|
|
4224
|
|
4225 //----- (00419100) --------------------------------------------------------
|
|
4226 void FillAwardsData()
|
|
4227 {
|
|
4228 Player *pPlayer; // esi@1
|
|
4229
|
|
4230 pPlayer = pPlayers[uActiveCharacter];
|
|
4231 memset(&achievedAwardsIndex, 0, 4000);
|
|
4232 memset(pTmpBuf2, 0, 0x7D0u);
|
|
4233 dword_506544 = 0;
|
|
4234 dword_506548 = 0;
|
|
4235 awards_count = 0;
|
|
4236 dword_50651C = 0;
|
|
4237 dword_506528 = 0;
|
|
4238 for(int i=0; i<105; ++i)
|
|
4239 {
|
|
4240 if ( _449B57_test_bit((unsigned char*)&pPlayer->_guilds_member_bits, i) && pAwards[i].pText )
|
|
4241 achievedAwardsIndex[awards_count++] = i;
|
|
4242 }
|
|
4243 awards_count2 = awards_count;
|
|
4244 awards_count = 0;
|
|
4245 //sort awards index
|
|
4246 if ( awards_count2>0 )
|
|
4247 {
|
|
4248 for(int i=0; i<awards_count2; ++i)
|
|
4249 achievedAwardsIndex[awards_count2 + i] = rand() % 16;
|
|
4250
|
|
4251 for(int i=1; i<awards_count2-1; ++i)
|
|
4252 {
|
|
4253 for (int j = i; j < awards_count2-1; ++j )
|
|
4254 {
|
|
4255 int tmp=achievedAwardsIndex[j];
|
|
4256 if(pAwards[j].uSort < pAwards[i].uSort)
|
|
4257 {
|
|
4258 achievedAwardsIndex[j] = achievedAwardsIndex[i];
|
|
4259 achievedAwardsIndex[i] = tmp;
|
|
4260 }
|
|
4261 }
|
|
4262 }
|
|
4263 }
|
|
4264 }
|