Mercurial > mm7
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 ); |