comparison mm7_5.cpp @ 18:d5954a85577a

17.01.13 (WrawPaperdoll work)
author Ritor1
date Thu, 17 Jan 2013 17:56:08 +0600
parents fe0d9a98213f
children 980c34defdab
comparison
equal deleted inserted replaced
17:fe0d9a98213f 18:d5954a85577a
7004 //----- (0043CC7C) -------------------------------------------------------- 7004 //----- (0043CC7C) --------------------------------------------------------
7005 void __fastcall CharacterUI_DrawPaperdoll(unsigned int uPlayerID) 7005 void __fastcall CharacterUI_DrawPaperdoll(unsigned int uPlayerID)
7006 { 7006 {
7007 Player **ppPlayer; // esi@1 7007 Player **ppPlayer; // esi@1
7008 Player *pPlayer; // ebx@1 7008 Player *pPlayer; // ebx@1
7009 enum CHARACTER_RACE v3; // edi@1 7009 enum CHARACTER_RACE pRace; // edi@1
7010 signed int v4; // eax@1 7010 signed int pSex; // eax@1
7011 int v5; // edi@4 7011 int v5; // edi@4
7012 unsigned int v6; // ecx@9 7012 unsigned int v6; // ecx@9
7013 int v7; // ecx@10 7013 int v7; // ecx@10
7014 unsigned int v8; // eax@14 7014 unsigned int v8; // eax@14
7015 int v9; // eax@15 7015 int v9; // eax@15
7240 int v234; // [sp+20h] [bp-2Ch]@161 7240 int v234; // [sp+20h] [bp-2Ch]@161
7241 int v235; // [sp+20h] [bp-2Ch]@197 7241 int v235; // [sp+20h] [bp-2Ch]@197
7242 int v236; // [sp+20h] [bp-2Ch]@260 7242 int v236; // [sp+20h] [bp-2Ch]@260
7243 int v237; // [sp+20h] [bp-2Ch]@298 7243 int v237; // [sp+20h] [bp-2Ch]@298
7244 int v238; // [sp+20h] [bp-2Ch]@336 7244 int v238; // [sp+20h] [bp-2Ch]@336
7245 int v239; // [sp+24h] [bp-28h]@6 7245 int pBodyComplection; // [sp+24h] [bp-28h]@6
7246 int v240; // [sp+28h] [bp-24h]@7 7246 int v240; // [sp+28h] [bp-24h]@7
7247 unsigned int v241; // [sp+2Ch] [bp-20h]@38 7247 unsigned int v241; // [sp+2Ch] [bp-20h]@38
7248 int v242; // [sp+2Ch] [bp-20h]@197 7248 int v242; // [sp+2Ch] [bp-20h]@197
7249 unsigned int v243; // [sp+2Ch] [bp-20h]@370 7249 unsigned int v243; // [sp+2Ch] [bp-20h]@370
7250 int v244; // [sp+34h] [bp-18h]@6 7250 int v244; // [sp+34h] [bp-18h]@6
7251 signed int v245; // [sp+34h] [bp-18h]@361 7251 signed int v245; // [sp+34h] [bp-18h]@361
7252 unsigned int uPlayerID_; // [sp+38h] [bp-14h]@1 7252 unsigned int uPlayerID_; // [sp+38h] [bp-14h]@1
7253 int uPlayerID_a; // [sp+38h] [bp-14h]@9 7253 int uPlayerID_a; // [sp+38h] [bp-14h]@9
7254 signed int v248; // [sp+40h] [bp-Ch]@4 7254 signed int IsDwarf; // [sp+40h] [bp-Ch]@4
7255 int v249; // [sp+40h] [bp-Ch]@358 7255 int v249; // [sp+40h] [bp-Ch]@358
7256 signed int v250; // [sp+44h] [bp-8h]@1 7256 signed int v250; // [sp+44h] [bp-8h]@1
7257 7257
7258 ppPlayer = &pPlayers[uPlayerID]; 7258 ppPlayer = &pPlayers[uPlayerID];
7259 pPlayer = *ppPlayer; 7259 pPlayer = *ppPlayer;
7260 uPlayerID_ = uPlayerID; 7260 uPlayerID_ = uPlayerID;
7261 v217 = *ppPlayer; 7261 v217 = *ppPlayer;
7262 pIcons_LOD->LoadTexture("sptext01", TEXTURE_16BIT_PALETTE); 7262 pIcons_LOD->LoadTexture("sptext01", TEXTURE_16BIT_PALETTE);
7263 v3 = pPlayer->GetRace(); 7263 pRace = pPlayer->GetRace();
7264 v4 = pPlayer->GetSexByVoice(); 7264 pSex = pPlayer->GetSexByVoice();
7265 v250 = v4; 7265 v250 = pSex;
7266 if ( v3 && v3 != 1 && v3 != 2 ) 7266 if ( pRace && pRace != 1 && pRace != 2 )
7267 { 7267 {
7268 v248 = 1; 7268 IsDwarf = 1;
7269 v5 = (v4 != 0) + 2; 7269 v5 = (pSex != 0) + 2;
7270 } 7270 }
7271 else 7271 else
7272 { 7272 {
7273 v248 = 0; 7273 IsDwarf = 0;
7274 v5 = v4 != 0; 7274 v5 = pSex != 0;
7275 } 7275 }
7276 v239 = v5; 7276 pBodyComplection = v5;
7277 v244 = (*ppPlayer)->uFace; 7277 v244 = (*ppPlayer)->uFace;
7278 pRenderer->ResetClip(); 7278 pRenderer->ResetClip();
7279 pRenderer->DrawTextureIndexed( 7279 pRenderer->DrawTextureIndexed(0x1D3u, 0, (Texture *)(uTextureID_BACKDOLL != -1 ? (int)&pIcons_LOD->pTextures[uTextureID_BACKDOLL] : 0));//Подложка
7280 0x1D3u,
7281 0,
7282 (Texture *)(uTextureID_BACKDOLL != -1 ? (int)&pIcons_LOD->pTextures[uTextureID_BACKDOLL] : 0));
7283 if ( !IsPlayerWearingWatersuit[uPlayerID_] ) 7280 if ( !IsPlayerWearingWatersuit[uPlayerID_] )
7284 { 7281 {
7285 v21 = pPlayer->pEquipment.uBow; 7282 v21 = pPlayer->pEquipment.uBow; //сначало рисуется лук
7286 if ( !v21 ) 7283 if ( !v21 )
7287 goto LABEL_59; 7284 goto LABEL_59;
7288 v230 = pPlayer->pEquipment.uBow; 7285 v230 = pPlayer->pEquipment.uBow;
7289 v22 = (int)&v217->spellbook.pDarkSpellbook.bIsSpellAvailable[36 * v21 + 5]; 7286 v22 = (int)&v217->spellbook.pDarkSpellbook.bIsSpellAvailable[36 * v21 + 5];
7290 v23 = *(int *)v22; 7287 v23 = *(int *)v22;
7291 v24 = papredoll_4E4C28 + array_4E4C30[v239].equip_x - pItemsTable->pItems[v23].uEquipX; 7288 v24 = papredoll_4E4C28 + array_4E4C30[pBodyComplection].equip_x - pItemsTable->pItems[v23].uEquipX;
7292 a3b = paperdoll_4E4C2C + array_4E4C30[v239].equip_y - pItemsTable->pItems[v23].uEquipY; 7289 a3b = paperdoll_4E4C2C + array_4E4C30[pBodyComplection].equip_y - pItemsTable->pItems[v23].uEquipY;
7293 v241 = pIcons_LOD->LoadTexture(pItemsTable->pItems[v23].pIconName, TEXTURE_16BIT_PALETTE); 7290 v241 = pIcons_LOD->LoadTexture(pItemsTable->pItems[v23].pIconName, TEXTURE_16BIT_PALETTE);
7294 v25 = *(int *)(v22 + 20); 7291 v25 = *(int *)(v22 + 20);
7295 if ( !(*(int *)(v22 + 20) & 0xF0) ) 7292 if ( !(*(int *)(v22 + 20) & 0xF0) )
7296 { 7293 {
7297 if ( v25 & 2 ) 7294 if ( v25 & 2 )
7316 } 7313 }
7317 LABEL_57: 7314 LABEL_57:
7318 if ( !bRingsShownInCharScreen ) 7315 if ( !bRingsShownInCharScreen )
7319 pRenderer->_4A612A(v24, a3b, v27, v230); 7316 pRenderer->_4A612A(v24, a3b, v27, v230);
7320 LABEL_59: 7317 LABEL_59:
7321 v31 = v217->pEquipment.uCloak; 7318 v31 = v217->pEquipment.uCloak;// потом плащ
7322 if ( !v31 ) 7319 if ( !v31 )
7323 goto LABEL_93; 7320 goto LABEL_93;
7324 v231 = v217->pEquipment.uCloak; 7321 v231 = v217->pEquipment.uCloak;
7325 v32 = (int)&v217->spellbook.pDarkSpellbook.bIsSpellAvailable[36 * v31 + 5]; 7322 v32 = (int)&v217->spellbook.pDarkSpellbook.bIsSpellAvailable[36 * v31 + 5];
7326 v219 = v32; 7323 v219 = v32;
7343 v33 = *(int *)v32 - 105; 7340 v33 = *(int *)v32 - 105;
7344 LABEL_72: 7341 LABEL_72:
7345 if ( v33 < 0 || v33 >= 10 ) 7342 if ( v33 < 0 || v33 >= 10 )
7346 goto LABEL_93; 7343 goto LABEL_93;
7347 LABEL_74: 7344 LABEL_74:
7348 v34 = v33 + 10 * v239; 7345 v34 = v33 + 10 * pBodyComplection;
7349 v35 = paperdoll_array_511828[0][v34]; 7346 v35 = paperdoll_array_511828[0][v34];
7350 a2c = papredoll_4E4C28 + paperdoll_array_4E5570[0][v34][0];// TODO indexing 7347 a2c = papredoll_4E4C28 + paperdoll_array_4E5570[0][v34][0];// TODO indexing
7351 v36 = paperdoll_4E4C2C + paperdoll_array_4E5570[0][v34][1]; 7348 v36 = paperdoll_4E4C2C + paperdoll_array_4E5570[0][v34][1];
7352 v37 = *(int *)(v32 + 20); 7349 v37 = *(int *)(v32 + 20);
7353 a3c = v36; 7350 a3c = v36;
7366 } 7363 }
7367 if ( !bRingsShownInCharScreen ) 7364 if ( !bRingsShownInCharScreen )
7368 pRenderer->_4A612A(a2c, a3c, v42, v231); 7365 pRenderer->_4A612A(a2c, a3c, v42, v231);
7369 LABEL_93: 7366 LABEL_93:
7370 v240 = 4 * uPlayerID_ - 4; 7367 v240 = 4 * uPlayerID_ - 4;
7371 pRenderer->DrawTextureTransparent( 7368 pRenderer->DrawTextureTransparent(papredoll_4E4C28, paperdoll_4E4C2C,
7372 papredoll_4E4C28,
7373 paperdoll_4E4C2C,
7374 (Texture *)(*(unsigned int *)((char *)papredoll_dbods + v240) != -1 ? (int)&pIcons_LOD->pTextures[*(unsigned int *)((char *)papredoll_dbods + v240)] : 0)); 7369 (Texture *)(*(unsigned int *)((char *)papredoll_dbods + v240) != -1 ? (int)&pIcons_LOD->pTextures[*(unsigned int *)((char *)papredoll_dbods + v240)] : 0));
7375 v43 = v217->pEquipment.uBody; 7370 v43 = v217->pEquipment.uBody;// потом тело
7376 if ( !v43 ) 7371 if ( !v43 )
7377 goto LABEL_127; 7372 goto LABEL_127;
7378 v232 = v217->pEquipment.uBody; 7373 v232 = v217->pEquipment.uBody;
7379 v44 = (int)&v217->spellbook.pDarkSpellbook.bIsSpellAvailable[36 * v43 + 5]; 7374 v44 = (int)&v217->spellbook.pDarkSpellbook.bIsSpellAvailable[36 * v43 + 5];
7380 v220 = v44; 7375 v220 = v44;
7397 v45 = *(int *)v44 - 66; 7392 v45 = *(int *)v44 - 66;
7398 LABEL_104: 7393 LABEL_104:
7399 if ( v45 < 0 || v45 >= 17 ) 7394 if ( v45 < 0 || v45 >= 17 )
7400 goto LABEL_127; 7395 goto LABEL_127;
7401 LABEL_106: 7396 LABEL_106:
7402 v46 = 17 * v239 + v45; 7397 v46 = 17 * pBodyComplection + v45;
7403 a2d = papredoll_4E4C28 + paperdoll_array_4E4E30[0][v46][0];// TODO indexing 7398 a2d = papredoll_4E4C28 + paperdoll_array_4E4E30[0][v46][0];// TODO indexing
7404 v47 = paperdoll_4E4C2C + paperdoll_array_4E4E30[0][v46][1]; 7399 v47 = paperdoll_4E4C2C + paperdoll_array_4E4E30[0][v46][1];
7405 v48 = paperdoll_array_511290[0][v46][0]; 7400 v48 = paperdoll_array_511290[0][v46][0];
7406 v49 = *(int *)(v44 + 20); 7401 v49 = *(int *)(v44 + 20);
7407 a3d = v47; 7402 a3d = v47;
7438 v57 = (int)&v217->spellbook.pDarkSpellbook.bIsSpellAvailable[36 * v56 + 5]; 7433 v57 = (int)&v217->spellbook.pDarkSpellbook.bIsSpellAvailable[36 * v56 + 5];
7439 v221 = v57; 7434 v221 = v57;
7440 v58 = *(int *)v57; 7435 v58 = *(int *)v57;
7441 if ( *(int *)v57 == 529 ) 7436 if ( *(int *)v57 == 529 )
7442 { 7437 {
7443 a3e = paperdoll_4E4C2C + paredoll_array_4E54B8[v239][1]; 7438 a3e = paperdoll_4E4C2C + paredoll_array_4E54B8[pBodyComplection][1];
7444 a2e = papredoll_4E4C28 + paredoll_array_4E54B8[v239][0]; 7439 a2e = papredoll_4E4C28 + paredoll_array_4E54B8[pBodyComplection][0];
7445 v59 = papredoll_flying_feet[v244]; 7440 v59 = papredoll_flying_feet[v244];
7446 } 7441 }
7447 else 7442 else
7448 { 7443 {
7449 if ( v58 == 512 ) 7444 if ( v58 == 512 )
7450 { 7445 {
7451 a3e = paperdoll_4E4C2C + paredoll_array_4E54B8[v239][3]; 7446 a3e = paperdoll_4E4C2C + paredoll_array_4E54B8[pBodyComplection][3];
7452 a2e = papredoll_4E4C28 + paredoll_array_4E54B8[v239][2]; 7447 a2e = papredoll_4E4C28 + paredoll_array_4E54B8[pBodyComplection][2];
7453 v59 = dword_511638[v239][5]; 7448 v59 = dword_511638[pBodyComplection][5];
7454 } 7449 }
7455 else 7450 else
7456 { 7451 {
7457 v60 = v58 - 115; 7452 v60 = v58 - 115;
7458 if ( v60 < 0 || v60 >= 5 ) 7453 if ( v60 < 0 || v60 >= 5 )
7459 { 7454 {
7460 a2e = 0; 7455 a2e = 0;
7461 a3e = 0; 7456 a3e = 0;
7462 v59 = dword_511638[v239][0]; 7457 v59 = dword_511638[pBodyComplection][0];
7463 } 7458 }
7464 else 7459 else
7465 { 7460 {
7466 v61 = v60 + 7 * v239; 7461 v61 = v60 + 7 * pBodyComplection;
7467 a3e = paperdoll_4E4C2C + dword_4E5490[0][v61][1]; 7462 a3e = paperdoll_4E4C2C + dword_4E5490[0][v61][1];
7468 a2e = papredoll_4E4C28 + dword_4E5490[0][v61][0]; 7463 a2e = papredoll_4E4C28 + dword_4E5490[0][v61][0];
7469 v59 = dword_511638[0][v60 + 6 * v239]; 7464 v59 = dword_511638[0][v60 + 6 * pBodyComplection];
7470 } 7465 }
7471 } 7466 }
7472 } 7467 }
7473 v62 = *(int *)(v57 + 20); 7468 v62 = *(int *)(v57 + 20);
7474 if ( !(*(int *)(v57 + 20) & 0xF0) ) 7469 if ( !(*(int *)(v57 + 20) & 0xF0) )
7496 if ( !bRingsShownInCharScreen ) 7491 if ( !bRingsShownInCharScreen )
7497 pRenderer->_4A612A(a2e, a3e, v67, v233); 7492 pRenderer->_4A612A(a2e, a3e, v67, v233);
7498 LABEL_155: 7493 LABEL_155:
7499 v68 = v217; 7494 v68 = v217;
7500 v69 = v217->pEquipment.uMainHand; 7495 v69 = v217->pEquipment.uMainHand;
7501 uPlayerID_a = 2 * v239; 7496 uPlayerID_a = 2 * pBodyComplection;
7502 if ( !v69 7497 if ( !v69 || (v70 = *(int *)&v217->spellbook.pDarkSpellbook.bIsSpellAvailable[36 * v69 + 5],
7503 || (v70 = *(int *)&v217->spellbook.pDarkSpellbook.bIsSpellAvailable[36 * v69 + 5],
7504 pItemsTable->pItems[v70].uEquipType != 1) 7498 pItemsTable->pItems[v70].uEquipType != 1)
7505 && (pItemsTable->pItems[v70].uSkillType != 4 || v217->pEquipment.uOffHand) ) 7499 && (pItemsTable->pItems[v70].uSkillType != 4 || v217->pEquipment.uOffHand) )
7506 pRenderer->DrawTextureTransparent( 7500 pRenderer->DrawTextureTransparent(papredoll_4E4C28 + dword_4E5AE0[2 * pBodyComplection],
7507 papredoll_4E4C28 + dword_4E5AE0[2 * v239], 7501 paperdoll_4E4C2C + dword_4E5AE0[2 * pBodyComplection + 1],
7508 paperdoll_4E4C2C + dword_4E5AE0[2 * v239 + 1],
7509 (Texture *)(*(unsigned int *)((char *)papredoll_dlads + v240) != -1 ? (int)&pIcons_LOD->pTextures[*(unsigned int *)((char *)papredoll_dlads + v240)] : 0)); 7502 (Texture *)(*(unsigned int *)((char *)papredoll_dlads + v240) != -1 ? (int)&pIcons_LOD->pTextures[*(unsigned int *)((char *)papredoll_dlads + v240)] : 0));
7510 v71 = v217->pEquipment.uBelt; 7503 v71 = v217->pEquipment.uBelt;
7511 if ( v71 ) 7504 if ( v71 )
7512 { 7505 {
7513 v234 = v217->pEquipment.uBelt; 7506 v234 = v217->pEquipment.uBelt;
7527 v73 = *(int *)v72 - 100; 7520 v73 = *(int *)v72 - 100;
7528 } 7521 }
7529 if ( v73 >= 0 && v73 < 7 ) 7522 if ( v73 >= 0 && v73 < 7 )
7530 { 7523 {
7531 LABEL_168: 7524 LABEL_168:
7532 v74 = 7 * v239 + v73; 7525 v74 = 7 * pBodyComplection + v73;
7533 a2f = papredoll_4E4C28 + dword_4E57F0[0][v74][0]; 7526 a2f = papredoll_4E4C28 + dword_4E57F0[0][v74][0];
7534 a3f = paperdoll_4E4C2C + dword_4E57F0[0][v74][1]; 7527 a3f = paperdoll_4E4C2C + dword_4E57F0[0][v74][1];
7535 if ( v248 != 1 || v73 == 5 ) 7528 if ( IsDwarf != 1 || v73 == 5 )
7536 v75 = stru_511718.texids[v74]; 7529 v75 = stru_511718.texids[v74];
7537 else 7530 else
7538 v75 = stru_511718.texids[v73 + 7 * (v239 - 2)]; 7531 v75 = stru_511718.texids[v73 + 7 * (pBodyComplection - 2)];
7539 v76 = *(int *)&v217->field_1F5[36 * v71 + 15]; 7532 v76 = *(int *)&v217->field_1F5[36 * v71 + 15];
7540 if ( !(*(int *)&v217->field_1F5[36 * v71 + 15] & 0xF0) ) 7533 if ( !(*(int *)&v217->field_1F5[36 * v71 + 15] & 0xF0) )
7541 { 7534 {
7542 v79 = v75 + 1; 7535 v79 = v75 + 1;
7543 v80 = (char *)&pIcons_LOD->pTextures[v75]; 7536 v80 = (char *)&pIcons_LOD->pTextures[v75];
7586 dword_50C9A8 = 0; 7579 dword_50C9A8 = 0;
7587 *(char *)(v222 + 20) &= 0xFu; 7580 *(char *)(v222 + 20) &= 0xFu;
7588 ptr_50C9A4 = 0; 7581 ptr_50C9A4 = 0;
7589 } 7582 }
7590 v78 = (double)GetTickCount() * 0.1; 7583 v78 = (double)GetTickCount() * 0.1;
7591 pRenderer->_4A63E6( 7584 pRenderer->_4A63E6(a2f, a3f, (Texture *)(v75 != -1 ? (int)&pIcons_LOD->pTextures[v75] : 0),
7592 a2f, 7585 v77, (signed __int64)v78, 0, 255);
7593 a3f,
7594 (Texture *)(v75 != -1 ? (int)&pIcons_LOD->pTextures[v75] : 0),
7595 v77,
7596 (signed __int64)v78,
7597 0,
7598 255);
7599 LABEL_191: 7586 LABEL_191:
7600 v68 = v217; 7587 v68 = v217;
7601 goto LABEL_192; 7588 goto LABEL_192;
7602 } 7589 }
7603 } 7590 }
7610 if ( v82 ) 7597 if ( v82 )
7611 { 7598 {
7612 v83 = *(int *)&v68->spellbook.pDarkSpellbook.bIsSpellAvailable[36 * v82 + 5]; 7599 v83 = *(int *)&v68->spellbook.pDarkSpellbook.bIsSpellAvailable[36 * v82 + 5];
7613 if ( pItemsTable->pItems[v83].uEquipType == 1 7600 if ( pItemsTable->pItems[v83].uEquipType == 1
7614 || pItemsTable->pItems[v83].uSkillType == 4 && !v68->pEquipment.uOffHand ) 7601 || pItemsTable->pItems[v83].uSkillType == 4 && !v68->pEquipment.uOffHand )
7615 pRenderer->DrawTextureTransparent( 7602 pRenderer->DrawTextureTransparent(papredoll_4E4C28 + pPaperdollLeftHand[uPlayerID_a],
7616 papredoll_4E4C28 + pPaperdollLeftHand[uPlayerID_a],
7617 paperdoll_4E4C2C + pPaperdollLeftHand[uPlayerID_a + 1], 7603 paperdoll_4E4C2C + pPaperdollLeftHand[uPlayerID_a + 1],
7618 (Texture *)(*(unsigned int *)((char *)papredoll_dlaus + v240) != -1 ? (int)&pIcons_LOD->pTextures[*(unsigned int *)((char *)papredoll_dlaus + v240)] : 0)); 7604 (Texture *)(*(unsigned int *)((char *)papredoll_dlaus + v240) != -1 ? (int)&pIcons_LOD->pTextures[*(unsigned int *)((char *)papredoll_dlaus + v240)] : 0));
7619 } 7605 }
7620 v84 = v68->pEquipment.uBody; 7606 v84 = v68->pEquipment.uBody;
7621 v235 = v84; 7607 v235 = v84;
7664 v114 = v113 - 105; 7650 v114 = v113 - 105;
7665 LABEL_272: 7651 LABEL_272:
7666 if ( v114 < 0 || v114 >= 10 ) 7652 if ( v114 < 0 || v114 >= 10 )
7667 goto LABEL_293; 7653 goto LABEL_293;
7668 LABEL_274: 7654 LABEL_274:
7669 v115 = v114 + 10 * v239; 7655 v115 = v114 + 10 * pBodyComplection;
7670 v116 = dword_511788[v115]; 7656 v116 = dword_511788[v115];
7671 v115 *= 8; 7657 v115 *= 8;
7672 v117 = papredoll_4E4C28 + *(int *)((char *)&dword_4E56B0 + v115); 7658 v117 = papredoll_4E4C28 + *(int *)((char *)&dword_4E56B0 + v115);
7673 a2h = papredoll_4E4C28 + *(int *)((char *)&dword_4E56B0 + v115); 7659 a2h = papredoll_4E4C28 + *(int *)((char *)&dword_4E56B0 + v115);
7674 a3h = paperdoll_4E4C2C + *(int *)((char *)&dword_4E56B4 + v115); 7660 a3h = paperdoll_4E4C2C + *(int *)((char *)&dword_4E56B4 + v115);
7717 v192 = 15; 7703 v192 = 15;
7718 break; 7704 break;
7719 } 7705 }
7720 v125 = v192; 7706 v125 = v192;
7721 LABEL_312: 7707 LABEL_312:
7722 v126 = 2 * (v125 + 16 * v239); 7708 v126 = 2 * (v125 + 16 * pBodyComplection);
7723 a2j = papredoll_4E4C28 + dword_4E58D0[v126]; 7709 a2j = papredoll_4E4C28 + dword_4E58D0[v126];
7724 a3i = paperdoll_4E4C2C + dword_4E58D4[v126]; 7710 a3i = paperdoll_4E4C2C + dword_4E58D4[v126];
7725 if ( v248 != 1 || *(int *)v124 != 92 ) 7711 if ( IsDwarf != 1 || *(int *)v124 != 92 )
7726 v127 = stru_511698.texids[v125 + 16 * v250]; 7712 v127 = stru_511698.texids[v125 + 16 * v250];
7727 else 7713 else
7728 v127 = papredoll_dbrds[11]; 7714 v127 = papredoll_dbrds[11];
7729 v128 = *(int *)(v124 + 20); 7715 v128 = *(int *)(v124 + 20);
7730 if ( *(int *)(v124 + 20) & 0xF0 ) 7716 if ( *(int *)(v124 + 20) & 0xF0 )
7798 v135 = (int)&v217->spellbook.pDarkSpellbook.bIsSpellAvailable[36 * v134 + 5]; 7784 v135 = (int)&v217->spellbook.pDarkSpellbook.bIsSpellAvailable[36 * v134 + 5];
7799 v227 = v135; 7785 v227 = v135;
7800 v136 = *(int *)v135; 7786 v136 = *(int *)v135;
7801 v137 = *(int *)v135; 7787 v137 = *(int *)v135;
7802 a2k = papredoll_4E4C28 7788 a2k = papredoll_4E4C28
7803 + array_4E4C30[v239].field_8 7789 + array_4E4C30[pBodyComplection].field_8
7804 - pItemsTable->pItems[v137].uEquipX; 7790 - pItemsTable->pItems[v137].uEquipX;
7805 a3j = paperdoll_4E4C2C 7791 a3j = paperdoll_4E4C2C
7806 + array_4E4C30[v239].field_C 7792 + array_4E4C30[pBodyComplection].field_C
7807 - pItemsTable->pItems[v137].uEquipY; 7793 - pItemsTable->pItems[v137].uEquipY;
7808 if ( v136 == 64 ) 7794 if ( v136 == 64 )
7809 v181 = "item64v1"; 7795 v181 = "item64v1";
7810 else 7796 else
7811 v181 = pItemsTable->pItems[v137].pIconName; 7797 v181 = pItemsTable->pItems[v137].pIconName;
7848 if ( v149 != 2 && v149 != 1 ) 7834 if ( v149 != 2 && v149 != 1 )
7849 { 7835 {
7850 v245 = 0; 7836 v245 = 0;
7851 LABEL_362: 7837 LABEL_362:
7852 v150 = papredoll_4E4C28 7838 v150 = papredoll_4E4C28
7853 + array_4E4C30[v239].field_0 7839 + array_4E4C30[pBodyComplection].field_0
7854 - pItemsTable->pItems[v148].uEquipX; 7840 - pItemsTable->pItems[v148].uEquipX;
7855 a3k = paperdoll_4E4C2C 7841 a3k = paperdoll_4E4C2C
7856 + LODWORD(array_4E4C30[v239].field_4) 7842 + LODWORD(array_4E4C30[pBodyComplection].field_4)
7857 - pItemsTable->pItems[v148].uEquipY; 7843 - pItemsTable->pItems[v148].uEquipY;
7858 goto LABEL_370; 7844 goto LABEL_370;
7859 } 7845 }
7860 v151 = v147 - 400; 7846 v151 = v147 - 400;
7861 v245 = 1; 7847 v245 = 1;
7939 (signed __int64)v158, 7925 (signed __int64)v158,
7940 0, 7926 0,
7941 255); 7927 255);
7942 LABEL_391: 7928 LABEL_391:
7943 if ( v245 ) 7929 if ( v245 )
7944 pRenderer->DrawTextureTransparent( 7930 pRenderer->DrawTextureTransparent(papredoll_4E4C28
7945 papredoll_4E4C28
7946 + pPaperdollLeftEmptyHand[uPlayerID_a], 7931 + pPaperdollLeftEmptyHand[uPlayerID_a],
7947 paperdoll_4E4C2C 7932 paperdoll_4E4C2C + pPaperdollLeftEmptyHand[uPlayerID_a + 1],
7948 + pPaperdollLeftEmptyHand[uPlayerID_a + 1],
7949 (Texture *)(*(unsigned int *)((char *)papredoll_dlhs 7933 (Texture *)(*(unsigned int *)((char *)papredoll_dlhs
7950 + v240) != -1 ? (int)&pIcons_LOD->pTextures[*(unsigned int *)((char *)papredoll_dlhs + v240)] : 0)); 7934 + v240) != -1 ? (int)&pIcons_LOD->pTextures[*(unsigned int *)((char *)papredoll_dlhs + v240)] : 0));
7951 goto LABEL_393; 7935 goto LABEL_393;
7952 } 7936 }
7953 LABEL_380: 7937 LABEL_380:
7994 dword_50C9A8 = 0; 7978 dword_50C9A8 = 0;
7995 *(char *)(v227 + 20) &= 0xFu; 7979 *(char *)(v227 + 20) &= 0xFu;
7996 ptr_50C9A4 = 0; 7980 ptr_50C9A4 = 0;
7997 } 7981 }
7998 v141 = (double)GetTickCount() * 0.1; 7982 v141 = (double)GetTickCount() * 0.1;
7999 pRenderer->_4A63E6( 7983 pRenderer->_4A63E6(a2k, a3j, (Texture *)(v138 != -1 ? (int)&pIcons_LOD->pTextures[v138] : 0),
8000 a2k, 7984 v140, (signed __int64)v141, 0, 255);
8001 a3j,
8002 (Texture *)(v138 != -1 ? (int)&pIcons_LOD->pTextures[v138] : 0),
8003 v140,
8004 (signed __int64)v141,
8005 0,
8006 255);
8007 goto LABEL_358; 7985 goto LABEL_358;
8008 } 7986 }
8009 } 7987 }
8010 v182 = "sptext01"; 7988 v182 = "sptext01";
8011 goto LABEL_348; 7989 goto LABEL_348;
8083 if ( v68->pEquipment.uMainHand 8061 if ( v68->pEquipment.uMainHand
8084 && (v68->GetEquippedItemEquipType(1u) == 1 8062 && (v68->GetEquippedItemEquipType(1u) == 1
8085 || v68->GetEquippedItemSkillType(EQUIP_TWO_HANDED) == 4 8063 || v68->GetEquippedItemSkillType(EQUIP_TWO_HANDED) == 4
8086 && !v68->pEquipment.uOffHand) ) 8064 && !v68->pEquipment.uOffHand) )
8087 { 8065 {
8088 v91 = 17 * v239 + v90; 8066 v91 = 17 * pBodyComplection + v90;
8089 v92 = v91; 8067 v92 = v91;
8090 v223 = paperdoll_array_511290[0][v91][2]; 8068 v223 = paperdoll_array_511290[0][v91][2];
8091 if ( v223 == pIcons_LOD->FindTextureByName("pending") ) 8069 if ( v223 == pIcons_LOD->FindTextureByName("pending") )
8092 { 8070 {
8093 v93 = 2 * v91; 8071 v93 = 2 * v91;
8132 } 8110 }
8133 v187 = 255; 8111 v187 = 255;
8134 v174 = 0; 8112 v174 = 0;
8135 v97 = (double)GetTickCount(); 8113 v97 = (double)GetTickCount();
8136 LABEL_249: 8114 LABEL_249:
8137 pRenderer->_4A63E6( 8115 pRenderer->_4A63E6(a2g, a3g, (Texture *)(v94 != -1 ? (int)&pIcons_LOD->pTextures[v94] : 0),
8138 a2g, 8116 (Texture *)v96, (signed __int64)(v97 * 0.1), v174, v187);
8139 a3g,
8140 (Texture *)(v94 != -1 ? (int)&pIcons_LOD->pTextures[v94] : 0),
8141 (Texture *)v96,
8142 (signed __int64)(v97 * 0.1),
8143 v174,
8144 v187);
8145 goto LABEL_258; 8117 goto LABEL_258;
8146 } 8118 }
8147 } 8119 }
8148 v173 = "sptext01"; 8120 v173 = "sptext01";
8149 goto LABEL_226; 8121 goto LABEL_226;
8175 v190 = v101; 8147 v190 = v101;
8176 v177 = a3g; 8148 v177 = a3g;
8177 v165 = a2g; 8149 v165 = a2g;
8178 goto LABEL_255; 8150 goto LABEL_255;
8179 } 8151 }
8180 v102 = 17 * v239 + v90; 8152 v102 = 17 * pBodyComplection + v90;
8181 v94 = paperdoll_array_511290[0][v102][1]; 8153 v94 = paperdoll_array_511290[0][v102][1];
8182 if ( v94 == pIcons_LOD->FindTextureByName("pending") ) 8154 if ( v94 == pIcons_LOD->FindTextureByName("pending") )
8183 { 8155 {
8184 LABEL_258: 8156 LABEL_258:
8185 v68 = v217; 8157 v68 = v217;
8339 dword_50C9A8 = 0; 8311 dword_50C9A8 = 0;
8340 *(char *)(v220 + 20) &= 0xFu; 8312 *(char *)(v220 + 20) &= 0xFu;
8341 ptr_50C9A4 = 0; 8313 ptr_50C9A4 = 0;
8342 } 8314 }
8343 v52 = (double)GetTickCount() * 0.1; 8315 v52 = (double)GetTickCount() * 0.1;
8344 pRenderer->_4A63E6( 8316 pRenderer->_4A63E6(a2d, a3d, (Texture *)(v48 != -1 ? (int)&pIcons_LOD->pTextures[v48] : 0),
8345 a2d, 8317 v51, (signed __int64)v52, 0, 255);
8346 a3d,
8347 (Texture *)(v48 != -1 ? (int)&pIcons_LOD->pTextures[v48] : 0),
8348 v51,
8349 (signed __int64)v52,
8350 0,
8351 255);
8352 goto LABEL_127; 8318 goto LABEL_127;
8353 } 8319 }
8354 LABEL_116: 8320 LABEL_116:
8355 v170 = "sptext01"; 8321 v170 = "sptext01";
8356 goto LABEL_117; 8322 goto LABEL_117;
17852 17818
17853 //----- (00419401) -------------------------------------------------------- 17819 //----- (00419401) --------------------------------------------------------
17854 void __cdecl sub_419401() 17820 void __cdecl sub_419401()
17855 { 17821 {
17856 unsigned int v0; // ecx@3 17822 unsigned int v0; // ecx@3
17857 GUIButton *i; // eax@3 17823 GUIButton *pButton; // eax@3
17858 GUIFont *v2; // eax@8 17824 GUIFont *v2; // eax@8
17859 unsigned int v3; // esi@8 17825 unsigned int v3; // esi@8
17860 int v4; // eax@10 17826 int v4; // eax@10
17861 unsigned int v5; // esi@14 17827 unsigned int v5; // esi@14
17862 int v6; // eax@17 17828 int v6; // eax@17
17877 a2 = 0; 17843 a2 = 0;
17878 if ( dword_507CC0 ) 17844 if ( dword_507CC0 )
17879 sub_4196A0(); 17845 sub_4196A0();
17880 v0 = uActiveCharacter; 17846 v0 = uActiveCharacter;
17881 dword_507CC0 = uActiveCharacter; 17847 dword_507CC0 = uActiveCharacter;
17882 for ( i = pGUIWindow_CurrentMenu->pControlsHead; i; i = i->pNext ) 17848 for ( pButton = pGUIWindow_CurrentMenu->pControlsHead; pButton; pButton = pButton->pNext )
17883 { 17849 {
17884 if ( i->uControlID == 120 ) 17850 if ( pButton->uControlID == 120 )
17885 { 17851 {
17886 dword_50698C = i->uX; 17852 dword_50698C = pButton->uX;
17887 dword_506988 = i->uY; 17853 dword_506988 = pButton->uY;
17888 dword_506984 = i->uZ; 17854 dword_506984 = pButton->uZ;
17889 dword_506980 = i->uW; 17855 dword_506980 = pButton->uW;
17890 i->uW = 0; 17856 pButton->uW = 0;
17891 i->uZ = 0; 17857 pButton->uZ = 0;
17892 i->uY = 0; 17858 pButton->uY = 0;
17893 i->uX = 0; 17859 pButton->uX = 0;
17894 v0 = uActiveCharacter; 17860 v0 = uActiveCharacter;
17895 } 17861 }
17896 } 17862 }
17897 v12 = 0; 17863 v12 = 0;
17898 a5 = pGUIWindow_CurrentMenu->uNumControls; 17864 a5 = pGUIWindow_CurrentMenu->uNumControls;
17900 v2 = pFontLucida; 17866 v2 = pFontLucida;
17901 v14 = (unsigned int *)dword_4E2A2C; 17867 v14 = (unsigned int *)dword_4E2A2C;
17902 v3 = 2 * LOBYTE(pFontLucida->uFontHeight) + 13; 17868 v3 = 2 * LOBYTE(pFontLucida->uFontHeight) + 13;
17903 do 17869 do
17904 { 17870 {
17905 if ( v18[2 * *v14 + 264] & 0x3F ) 17871 if ( v18[2 * *v14 + 264] & 0x3F )//crash
17906 { 17872 {
17907 v4 = LOBYTE(v2->uFontHeight); 17873 v4 = LOBYTE(v2->uFontHeight);
17908 v3 = v3 + v4 - 3; 17874 v3 = v3 + v4 - 3;
17909 ++a2; 17875 ++a2;
17910 ++v12; 17876 ++v12;
17911 pGUIWindow_CurrentMenu->CreateButton( 17877 pGUIWindow_CurrentMenu->CreateButton(0x18u, v3, 0xCCu, v4 - 3, 3, *v14 | 0x8000, 0x79u, *v14, 0, "", 0, 0);
17912 0x18u,
17913 v3,
17914 0xCCu,
17915 v4 - 3,
17916 3,
17917 *v14 | 0x8000,
17918 0x79u,
17919 *v14,
17920 0,
17921 "",
17922 0);
17923 v2 = pFontLucida; 17878 v2 = pFontLucida;
17924 } 17879 }
17925 ++v14; 17880 ++v14;
17926 } 17881 }
17927 while ( (signed int)v14 < (signed int)dword_4E2A50 ); 17882 while ( (signed int)v14 < (signed int)dword_4E2A50 );
17934 if ( v18[2 * *v15 + 264] & 0x3F && a2 < 15 ) 17889 if ( v18[2 * *v15 + 264] & 0x3F && a2 < 15 )
17935 { 17890 {
17936 v6 = LOBYTE(v2->uFontHeight); 17891 v6 = LOBYTE(v2->uFontHeight);
17937 v5 = v5 + v6 - 3; 17892 v5 = v5 + v6 - 3;
17938 ++a2; 17893 ++a2;
17939 pGUIWindow_CurrentMenu->CreateButton( 17894 pGUIWindow_CurrentMenu->CreateButton(0x18u, v5, 0xCCu, v6 - 3, 3, *v15 | 0x8000, 0x79u, *v15, 0, "", 0, 0);
17940 0x18u,
17941 v5,
17942 0xCCu,
17943 v6 - 3,
17944 3,
17945 *v15 | 0x8000,
17946 0x79u,
17947 *v15,
17948 0,
17949 "",
17950 0);
17951 v2 = pFontLucida; 17895 v2 = pFontLucida;
17952 } 17896 }
17953 ++v15; 17897 ++v15;
17954 } 17898 }
17955 while ( (signed int)v15 < (signed int)pAwardsTextColors ); 17899 while ( (signed int)v15 < (signed int)pAwardsTextColors );
17962 { 17906 {
17963 v8 = LOBYTE(v2->uFontHeight); 17907 v8 = LOBYTE(v2->uFontHeight);
17964 v7 = v7 + v8 - 3; 17908 v7 = v7 + v8 - 3;
17965 ++a2; 17909 ++a2;
17966 ++v13; 17910 ++v13;
17967 pGUIWindow_CurrentMenu->CreateButton( 17911 pGUIWindow_CurrentMenu->CreateButton(0xF6u, v7, 0xCCu, v8 - 3, 3, *v16 | 0x8000, 0x79u, *v16, 0, "", 0, 0);
17968 0xF6u,
17969 v7,
17970 0xCCu,
17971 v8 - 3,
17972 3,
17973 *v16 | 0x8000,
17974 0x79u,
17975 *v16,
17976 0,
17977 "",
17978 0);
17979 v2 = pFontLucida; 17912 v2 = pFontLucida;
17980 } 17913 }
17981 ++v16; 17914 ++v16;
17982 } 17915 }
17983 while ( (signed int)v16 < (signed int)dword_4E2A2C ); 17916 while ( (signed int)v16 < (signed int)dword_4E2A2C );
17990 if ( v18[2 * *v17 + 264] & 0x3F ) 17923 if ( v18[2 * *v17 + 264] & 0x3F )
17991 { 17924 {
17992 v10 = LOBYTE(v2->uFontHeight); 17925 v10 = LOBYTE(v2->uFontHeight);
17993 v9 = v9 + v10 - 3; 17926 v9 = v9 + v10 - 3;
17994 ++a2; 17927 ++a2;
17995 pGUIWindow_CurrentMenu->CreateButton( 17928 pGUIWindow_CurrentMenu->CreateButton(0xF6u, v9, 0xCCu, v10 - 3, 3, *v17 | 0x8000, 0x79u, *v17, 0, "", 0, 0);
17996 0xF6u,
17997 v9,
17998 0xCCu,
17999 v10 - 3,
18000 3,
18001 *v17 | 0x8000,
18002 0x79u,
18003 *v17,
18004 0,
18005 "",
18006 0);
18007 v2 = pFontLucida; 17929 v2 = pFontLucida;
18008 } 17930 }
18009 ++v17; 17931 ++v17;
18010 } 17932 }
18011 while ( (signed int)v17 < (signed int)_4E2A80_skills ); 17933 while ( (signed int)v17 < (signed int)_4E2A80_skills );