comparison mm7_5.cpp @ 20:980c34defdab

Слияние
author Ritor1
date Thu, 17 Jan 2013 22:59:03 +0600
parents 2127707df23f d5954a85577a
children 5070f4343e0e
comparison
equal deleted inserted replaced
19:2127707df23f 20:980c34defdab
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;
13532 } 13498 }
13533 // 506408: using guessed type int dword_506408[]; 13499 // 506408: using guessed type int dword_506408[];
13534 // 50654C: using guessed type int dword_50654C; 13500 // 50654C: using guessed type int dword_50654C;
13535 13501
13536 //----- (00412E85) -------------------------------------------------------- 13502 //----- (00412E85) --------------------------------------------------------
13537 char __cdecl sub_412E85() 13503 char __cdecl DrawBook_History()
13538 { 13504 {
13539 unsigned int v0; // eax@3 13505 unsigned int v0; // eax@3
13540 unsigned int v1; // eax@7 13506 unsigned int v1; // eax@7
13541 int v2; // eax@10 13507 int v2; // eax@10
13542 const char *v3; // eax@10 13508 const char *v3; // eax@10
13639 return (char)v8; 13605 return (char)v8;
13640 } 13606 }
13641 13607
13642 13608
13643 //----- (00413126) -------------------------------------------------------- 13609 //----- (00413126) --------------------------------------------------------
13644 void __cdecl DrawSpellbook_Quests() 13610 void __cdecl DrawBook_Quests()
13645 { 13611 {
13646 unsigned int v0; // eax@3 13612 unsigned int v0; // eax@3
13647 unsigned int v1; // eax@7 13613 unsigned int v1; // eax@7
13648 int v2; // ecx@11 13614 int v2; // ecx@11
13649 int v3; // ebx@16 13615 int v3; // ebx@16
13735 } 13701 }
13736 } 13702 }
13737 13703
13738 13704
13739 //----- (0041338E) -------------------------------------------------------- 13705 //----- (0041338E) --------------------------------------------------------
13740 void __cdecl DrawSpellbook_Autonotes() 13706 void __cdecl DrawBook_Autonotes()
13741 { 13707 {
13742 unsigned int v0; // eax@3 13708 unsigned int v0; // eax@3
13743 unsigned int v1; // eax@7 13709 unsigned int v1; // eax@7
13744 signed int v2; // ebp@11 13710 signed int v2; // ebp@11
13745 unsigned int v3; // eax@18 13711 unsigned int v3; // eax@18
14038 } 14004 }
14039 } 14005 }
14040 14006
14041 14007
14042 //----- (00413980) -------------------------------------------------------- 14008 //----- (00413980) --------------------------------------------------------
14043 char *__cdecl DrawSpellbook_Map() 14009 char *__cdecl DrawBook_Maps()
14044 { 14010 {
14045 unsigned int v0; // eax@3 14011 unsigned int v0; // eax@3
14046 unsigned int v1; // eax@7 14012 unsigned int v1; // eax@7
14047 unsigned int v2; // eax@10 14013 unsigned int v2; // eax@10
14048 unsigned int v3; // eax@13 14014 unsigned int v3; // eax@13
14184 return v22.DrawTitleText(pFontComic, 0, 0x140u, 0, Str, 0); 14150 return v22.DrawTitleText(pFontComic, 0, 0x140u, 0, Str, 0);
14185 } 14151 }
14186 14152
14187 14153
14188 //----- (00413CC6) -------------------------------------------------------- 14154 //----- (00413CC6) --------------------------------------------------------
14189 void __thiscall DrawSpellbook(unsigned int uBook) 14155 void __thiscall SellectDrawBook(unsigned int uBook)
14190 { 14156 {
14191 unsigned int v1; // esi@1 14157 enum WindowType pWindowType; // esi@1
14192 14158
14193 v1 = uBook; 14159 pWindowType = (enum WindowType)uBook;
14194 pRenderer->DrawTextureIndexed( 14160 pRenderer->DrawTextureIndexed(471u, 445u, (Texture *)(uTextureID_506438 != -1 ? (int)&pIcons_LOD->pTextures[uTextureID_506438] : 0));
14195 471u, 14161 switch ( pWindowType )
14196 445u, 14162 {
14197 (Texture *)(uTextureID_506438 != -1 ? (int)&pIcons_LOD->pTextures[uTextureID_506438] : 0)); 14163 case WINDOW_Lloyd: // 177
14198 switch ( v1 )
14199 {
14200 case 0xB1u:
14201 DrawLloydBeaconsScreen(); 14164 DrawLloydBeaconsScreen();
14202 break; 14165 break;
14203 case 0xC3u: 14166 case WINDOW_TownPortal: //195
14204 DrawTownPortalScreen(); 14167 DrawTownPortalScreen();
14205 break; 14168 break;
14206 case 0xC8u: 14169 case WINDOW_QuestBook: //200
14207 DrawSpellbook_Quests(); 14170 DrawBook_Quests();
14208 break; 14171 break;
14209 case 0xC9u: 14172 case WINDOW_AutonotesBook: //201
14210 DrawSpellbook_Autonotes(); 14173 DrawBook_Autonotes();
14211 break; 14174 break;
14212 case 0xCAu: 14175 case WINDOW_MapsBook://202
14213 DrawSpellbook_Map(); 14176 DrawBook_Maps();
14214 break; 14177 break;
14215 case 0xCBu: 14178 case WINDOW_CalendarBook://203
14216 DrawSpellbook_Calendar(); 14179 DrawBook_Calendar();
14217 break; 14180 break;
14218 case 0xE0u: 14181 case WINDOW_HistoryBook://224
14219 sub_412E85(); 14182 DrawBook_History();
14220 break; 14183 break;
14221 } 14184 }
14222 } 14185 }
14223 14186
14224 //----- (00413D3C) -------------------------------------------------------- 14187 //----- (00413D3C) --------------------------------------------------------
14235 } 14198 }
14236 return pGlobalTXT_LocalizationStrings[567]; 14199 return pGlobalTXT_LocalizationStrings[567];
14237 } 14200 }
14238 14201
14239 //----- (00413D6F) -------------------------------------------------------- 14202 //----- (00413D6F) --------------------------------------------------------
14240 char __cdecl DrawSpellbook_Calendar() 14203 char __cdecl DrawBook_Calendar()
14241 { 14204 {
14242 unsigned int v0; // esi@1 14205 unsigned int v0; // esi@1
14243 char *v1; // eax@5 14206 char *v1; // eax@5
14244 int v2; // ecx@5 14207 int v2; // ecx@5
14245 char *v3; // eax@6 14208 char *v3; // eax@6
14988 14951
14989 14952
14990 14953
14991 14954
14992 //----- (004156F0) -------------------------------------------------------- 14955 //----- (004156F0) --------------------------------------------------------
14993 void __cdecl GUI_UpdateWindows() 14956 void __cdecl GUI_UpdateWindows() //
14994 { 14957 {
14995 GUIWindow *pWindow; // esi@4 14958 GUIWindow *pWindow; // esi@4
14996 unsigned int pWindowType; // eax@4 14959 unsigned int pWindowType; // eax@4
14997 int v2; // eax@10 14960 int v2; // eax@10
14998 int v3; // eax@11 14961 int v3; // eax@11
15118 if ( v38 )//pWindowType > 105 15081 if ( v38 )//pWindowType > 105
15119 { 15082 {
15120 if ( v38 == 1 )//pWindowType == 106 (0x6A) WINDOW_VideoOptions 15083 if ( v38 == 1 )//pWindowType == 106 (0x6A) WINDOW_VideoOptions
15121 GameMenuUI_DrawVideoOptions(); 15084 GameMenuUI_DrawVideoOptions();
15122 } 15085 }
15123 else//pWindowType == 105 15086 else//pWindowType == 105 (0x69) WINDOW_KeyMappingOptions
15124 { 15087 {
15125 GameMenuUI_DrawKeyBindings(); 15088 GameMenuUI_DrawKeyBindings();
15126 } 15089 }
15127 } 15090 }
15128 else//pWindowType == 103 15091 else//pWindowType == 103 (0x67) WINDOW_67
15129 { 15092 {
15130 pWindow->DrawMessageBox(0); 15093 pWindow->DrawMessageBox(0);
15131 pWindow->DrawText(pFontLucida, 10, 20, 0, "Making item number", 0, 0, 0); 15094 pWindow->DrawText(pFontLucida, 10, 20, 0, "Making item number", 0, 0, 0);
15132 pWindow->DrawText(pFontLucida, 10, 40, 0, (const char *)pKeyActionMap->pPressedKeysBuffer, 0, 0, 0); 15095 pWindow->DrawText(pFontLucida, 10, 40, 0, (const char *)pKeyActionMap->pPressedKeysBuffer, 0, 0, 0);
15133 if ( !pKeyActionMap->field_204 ) 15096 if ( !pKeyActionMap->field_204 )
15145 } 15108 }
15146 } 15109 }
15147 } 15110 }
15148 continue; 15111 continue;
15149 } 15112 }
15150 pTexture = (Texture *)*((_DWORD *)pWindow->ptr_1C + 15);//pWindowType == 99 15113 pTexture = (Texture *)*((_DWORD *)pWindow->ptr_1C + 15);//pWindowType == 99 (0x63) WINDOW_63
15151 pY = pWindow->uFrameY; 15114 pY = pWindow->uFrameY;
15152 pX = pWindow->uFrameX; 15115 pX = pWindow->uFrameX;
15153 //LABEL_18: 15116 //LABEL_18:
15154 pRenderer->DrawTextureIndexed(pX, pY, pTexture); 15117 pRenderer->DrawTextureIndexed(pX, pY, pTexture);
15155 //LABEL_114: 15118 //LABEL_114:
15156 viewparams->bRedrawGameUI = 1; 15119 viewparams->bRedrawGameUI = 1;
15157 continue; 15120 continue;
15158 } 15121 }
15159 memset(&GUIButton2, 0, 0xBCu);//pWindowType == 98 15122 memset(&GUIButton2, 0, 0xBCu);//pWindowType == 98 (0x62) WINDOW_RestWindow
15160 GUIButton2.uZ = 197; 15123 GUIButton2.uZ = 197;
15161 GUIButton2.uW = 197; 15124 GUIButton2.uW = 197;
15162 GUIButton2.uX = 27; 15125 GUIButton2.uX = 27;
15163 GUIButton2.uY = 161; 15126 GUIButton2.uY = 161;
15164 GUIButton2.uWidth = 171; 15127 GUIButton2.uWidth = 171;
15173 pGUIWindow2 = pWindow; 15136 pGUIWindow2 = pWindow;
15174 //goto LABEL_110; 15137 //goto LABEL_110;
15175 pGUIWindow2->Release(); 15138 pGUIWindow2->Release();
15176 continue; 15139 continue;
15177 } 15140 }
15178 if ( pWindow->Hint != (char *)1 )//pWindowType == 97 15141 if ( pWindow->Hint != (char *)1 )//pWindowType == 97 (0x61) WINDOW_61
15179 pAudioPlayer->PlaySound((SoundID)75, 0, 0, -1, 0, 0, 0, 0); 15142 pAudioPlayer->PlaySound((SoundID)75, 0, 0, -1, 0, 0, 0, 0);
15180 v32 = pWindow->ptr_1C; 15143 v32 = pWindow->ptr_1C;
15181 pRenderer->DrawTextureIndexed(pWindow->uFrameX, pWindow->uFrameY, *((Texture **)v32 + 16)); 15144 pRenderer->DrawTextureIndexed(pWindow->uFrameX, pWindow->uFrameY, *((Texture **)v32 + 16));
15182 //goto LABEL_138; 15145 //goto LABEL_138;
15183 pHint = pWindow->Hint; 15146 pHint = pWindow->Hint;
15224 } 15187 }
15225 v14 = pWindowType - 80; 15188 v14 = pWindowType - 80;
15226 if ( v14 )//pWindowType > 80 15189 if ( v14 )//pWindowType > 80
15227 { 15190 {
15228 v15 = v14 - 9; 15191 v15 = v14 - 9;
15229 if ( !v15 )//pWindowType == 89 15192 if ( !v15 )//pWindowType == 89 (0x59) WINDOW_59
15230 { 15193 {
15231 pWindow->DrawMessageBox(0); 15194 pWindow->DrawMessageBox(0);
15232 pWindow->DrawText(pFontLucida, 10, 20, 0, "Making item number", 0, 0, 0); 15195 pWindow->DrawText(pFontLucida, 10, 20, 0, "Making item number", 0, 0, 0);
15233 pWindow->DrawText(pFontLucida, 10, 40, 0, (const char *)pKeyActionMap->pPressedKeysBuffer, 0, 0, 0); 15196 pWindow->DrawText(pFontLucida, 10, 40, 0, (const char *)pKeyActionMap->pPressedKeysBuffer, 0, 0, 0);
15234 if ( !pKeyActionMap->field_204 ) 15197 if ( !pKeyActionMap->field_204 )
15261 } 15224 }
15262 } 15225 }
15263 continue; 15226 continue;
15264 } 15227 }
15265 v16 = v15 - 1; 15228 v16 = v15 - 1;
15266 if ( !v16 )// pWindowType == 90 15229 if ( !v16 )// pWindowType == 90 (0x5A) WINDOW_5A
15267 { 15230 {
15268 if ( pWindow->Hint != (char *)1 ) 15231 if ( pWindow->Hint != (char *)1 )
15269 pAudioPlayer->PlaySound((SoundID)75, 0, 0, -1, 0, 0, 0, 0); 15232 pAudioPlayer->PlaySound((SoundID)75, 0, 0, -1, 0, 0, 0, 0);
15270 pButtonPtr_1C = (GUIButton *)pWindow->ptr_1C; 15233 pButtonPtr_1C = (GUIButton *)pWindow->ptr_1C;
15271 if ( (pButtonPtr_1C->uX /*& 0x80000000u*/) == 0 ) 15234 if ( pButtonPtr_1C->uX >= 0 )//if ( (pButtonPtr_1C->uX & 0x80000000u) == 0 )
15272 { 15235 {
15273 if ( (signed int)pButtonPtr_1C->uX <= 640 ) 15236 if ( (signed int)pButtonPtr_1C->uX <= 640 )
15274 { 15237 {
15275 //v25 = pButtonPtr_1C->uY; 15238 //v25 = pButtonPtr_1C->uY;
15276 if ( (pButtonPtr_1C->uY /*& 0x80000000u*/) == 0 ) 15239 if ( pButtonPtr_1C->uY >= 0 ) //if ( (pButtonPtr_1C->uY & 0x80000000u) == 0 )
15277 { 15240 {
15278 if ( (signed int)pButtonPtr_1C->uY <= 480 ) 15241 if ( (signed int)pButtonPtr_1C->uY <= 480 )
15279 { 15242 {
15280 pTexture2 = pButtonPtr_1C->pTextures[0]; 15243 pTexture2 = pButtonPtr_1C->pTextures[0];
15281 //goto LABEL_94; 15244 //goto LABEL_94;
15312 //goto LABEL_110; 15275 //goto LABEL_110;
15313 pGUIWindow2->Release(); 15276 pGUIWindow2->Release();
15314 continue; 15277 continue;
15315 } 15278 }
15316 v17 = v16 - 1; 15279 v17 = v16 - 1;
15317 if ( !v17 )//pWindowType == 91 15280 if ( !v17 )//pWindowType == 91 (0x5B) WINDOW_5B
15318 { 15281 {
15319 if ( pWindow->Hint != (char *)1 ) 15282 if ( pWindow->Hint != (char *)1 )
15320 pAudioPlayer->PlaySound((SoundID)75, 0, 0, -1, 0, 0, 0, 0); 15283 pAudioPlayer->PlaySound((SoundID)75, 0, 0, -1, 0, 0, 0, 0);
15321 pButtonPtr_1C = (GUIButton *)pWindow->ptr_1C; 15284 pButtonPtr_1C = (GUIButton *)pWindow->ptr_1C;
15322 pTexture2 = pButtonPtr_1C->pTextures[1]; 15285 pTexture2 = pButtonPtr_1C->pTextures[1];
15337 //goto LABEL_110; 15300 //goto LABEL_110;
15338 pGUIWindow2->Release(); 15301 pGUIWindow2->Release();
15339 continue; 15302 continue;
15340 } 15303 }
15341 v18 = v17 - 1; 15304 v18 = v17 - 1;
15342 if ( !v18 )//pWindowType == 92 15305 if ( !v18 )//pWindowType == 92 (0x5C) WINDOW_5C
15343 { 15306 {
15344 if ( pWindow->Hint != (char *)1 ) 15307 if ( pWindow->Hint != (char *)1 )
15345 pAudioPlayer->PlaySound((SoundID)75, 0, 0, -1, 0, 0, 0, 0); 15308 pAudioPlayer->PlaySound((SoundID)75, 0, 0, -1, 0, 0, 0, 0);
15346 pButtonPtr_1C = (GUIButton *)pWindow->ptr_1C; 15309 pButtonPtr_1C = (GUIButton *)pWindow->ptr_1C;
15347 pRenderer->DrawTextureTransparent(pWindow->uFrameX, pWindow->uFrameY, pButtonPtr_1C->pTextures[0]); 15310 pRenderer->DrawTextureTransparent(pWindow->uFrameX, pWindow->uFrameY, pButtonPtr_1C->pTextures[0]);
15357 pGUIWindow2 = pWindow; 15320 pGUIWindow2 = pWindow;
15358 pGUIWindow2->Release(); 15321 pGUIWindow2->Release();
15359 continue; 15322 continue;
15360 } 15323 }
15361 v19 = v18 - 1; 15324 v19 = v18 - 1;
15362 if ( !v19 )//pWindowType == 93 15325 if ( !v19 )//pWindowType == 93 (0x5D) WINDOW_5D
15363 { 15326 {
15364 if ( pWindow->Hint != (char *)1 ) 15327 if ( pWindow->Hint != (char *)1 )
15365 pAudioPlayer->PlaySound((SoundID)75, 0, 0, -1, 0, 0, 0, 0); 15328 pAudioPlayer->PlaySound((SoundID)75, 0, 0, -1, 0, 0, 0, 0);
15366 pRenderer->DrawTextureTransparent(pWindow->uFrameX, pWindow->uFrameY, *((Texture **)pWindow->ptr_1C + 16)); 15329 pRenderer->DrawTextureTransparent(pWindow->uFrameX, pWindow->uFrameY, *((Texture **)pWindow->ptr_1C + 16));
15367 viewparams->bRedrawGameUI = 1; 15330 viewparams->bRedrawGameUI = 1;
15370 //goto LABEL_110; 15333 //goto LABEL_110;
15371 pGUIWindow2->Release(); 15334 pGUIWindow2->Release();
15372 continue; 15335 continue;
15373 } 15336 }
15374 } 15337 }
15375 else//pWindowType == 80 15338 else//pWindowType == 80 (0x50) WINDOW_50
15376 { 15339 {
15377 v27 = GenerateColorAsCloseAsPossibleToR8G8B8InTargetFormat(0xFFu, 0xFFu, 0xFFu); 15340 v27 = GenerateColorAsCloseAsPossibleToR8G8B8InTargetFormat(0xFFu, 0xFFu, 0xFFu);
15378 if ( ptr_507BD0->field_40 == 1 ) 15341 if ( ptr_507BD0->field_40 == 1 )
15379 { 15342 {
15380 ptr_507BD0->DrawMessageBox(0); 15343 ptr_507BD0->DrawMessageBox(0);
15413 } 15376 }
15414 } 15377 }
15415 } 15378 }
15416 else 15379 else
15417 { 15380 {
15418 if ( pWindowType == 70 ) 15381 if ( pWindowType == 70 ) // 0x46 WINDOW_FinalWindow
15419 { 15382 {
15420 sub_41420D_press_esc(); 15383 sub_41420D_press_esc();
15421 continue; 15384 continue;
15422 } 15385 }
15423 if ( (signed int)pWindowType > 18 ) 15386 if ( (signed int)pWindowType > 18 )
15428 if ( v12 )// pWindowType > 26 15391 if ( v12 )// pWindowType > 26
15429 { 15392 {
15430 v13 = v12 - 4; 15393 v13 = v12 - 4;
15431 if ( v13 )//pWindowType > 30 15394 if ( v13 )//pWindowType > 30
15432 { 15395 {
15433 if ( v13 == 1 ) //pWindowType == 31 15396 if ( v13 == 1 ) //pWindowType == 31 (0x1F) WINDOW_1F
15434 { 15397 {
15435 pRenderer->ClearZBuffer(0, 479); 15398 pRenderer->ClearZBuffer(0, 479);
15436 draw_leather(); 15399 draw_leather();
15437 CharacterUI_InventoryTab_Draw(uActiveCharacter, 1); 15400 CharacterUI_InventoryTab_Draw(uActiveCharacter, 1);
15438 CharacterUI_DrawPaperdoll(uActiveCharacter); 15401 CharacterUI_DrawPaperdoll(uActiveCharacter);
15439 pRenderer->DrawTextureTransparent(pBtn_ExitCancel->uX, pBtn_ExitCancel->uY, 15402 pRenderer->DrawTextureTransparent(pBtn_ExitCancel->uX, pBtn_ExitCancel->uY,
15440 (Texture *)(uTextureID_x_x_u != -1 ? &pIcons_LOD->pTextures[uTextureID_x_x_u] : 0)); 15403 (Texture *)(uTextureID_x_x_u != -1 ? &pIcons_LOD->pTextures[uTextureID_x_x_u] : 0));
15441 } 15404 }
15442 } 15405 }
15443 else// pWindowType == 30 15406 else// pWindowType == 30 (0x1E) WINDOW_1E
15444 { 15407 {
15445 sub_467FB6(); 15408 sub_467FB6();
15446 } 15409 }
15447 } 15410 }
15448 else //pWindowType == 26 15411 else //pWindowType == 26 (0x1A) WINDOW_1A
15449 { 15412 {
15450 TransitionUI_Draw(); 15413 TransitionUI_Draw();
15451 } 15414 }
15452 continue; 15415 continue;
15453 } 15416 }
15460 if ( v8 )// pWindowType > 20 15423 if ( v8 )// pWindowType > 20
15461 { 15424 {
15462 v9 = v8 - 3; 15425 v9 = v8 - 3;
15463 if ( v9 )//pWindowType > 23 15426 if ( v9 )//pWindowType > 23
15464 { 15427 {
15465 //if ( v9 == 1 ) //pWindowType == 24 15428 //if ( v9 == 1 ) //pWindowType == 24 (0x18) WINDOW_MainMenu_Load
15466 // sub_4606F7(); 15429 // sub_4606F7();
15467 } 15430 }
15468 else//pWindowType == 23 15431 else//pWindowType == 23 (0x17) WINDOW_17
15469 { 15432 {
15470 sub_4606FE(); 15433 sub_4606FE();
15471 } 15434 }
15472 } 15435 }
15473 else//pWindowType == 20 15436 else//pWindowType == 20 (0x14) WINDOW_Chest
15474 { 15437 {
15475 if ( pCurrentScreen == 10 ) 15438 if ( pCurrentScreen == 10 )
15476 { 15439 {
15477 Chest::DrawChestUI((unsigned int)pWindow->ptr_1C); 15440 Chest::DrawChestUI((unsigned int)pWindow->ptr_1C);
15478 } 15441 }
15487 (Texture *)(uTextureID_506438 != -1 ? (int)&pIcons_LOD->pTextures[uTextureID_506438] : 0)); 15450 (Texture *)(uTextureID_506438 != -1 ? (int)&pIcons_LOD->pTextures[uTextureID_506438] : 0));
15488 } 15451 }
15489 } 15452 }
15490 } 15453 }
15491 } 15454 }
15492 else//pWindowType == 19 15455 else//pWindowType == 19 (0x13) WINDOW_GreetingNPC
15493 { 15456 {
15494 DrawBranchlessDialogueUI(); 15457 DrawBranchlessDialogueUI();
15495 } 15458 }
15496 continue; 15459 continue;
15497 } 15460 }
15524 ++pMessageQueue_50CBD0->uNumMessages; 15487 ++pMessageQueue_50CBD0->uNumMessages;
15525 continue; 15488 continue;
15526 } 15489 }
15527 continue; 15490 continue;
15528 } 15491 }
15529 if ( pWindowType == 18 ) 15492 if ( pWindowType == 18 ) //(0x12) WINDOW_SpellBook
15530 { 15493 {
15531 sub_412B58(); 15494 sub_412B58();
15532 } 15495 }
15533 else 15496 else
15534 { 15497 {
15538 if ( v5 )//pWindowType >12 15501 if ( v5 )//pWindowType >12
15539 { 15502 {
15540 v6 = v5 - 4; 15503 v6 = v5 - 4;
15541 if ( v6 )//pWindowType > 16 15504 if ( v6 )//pWindowType > 16
15542 { 15505 {
15543 if ( v6 == 1 )//pWindowType == 17 15506 if ( v6 == 1 )//pWindowType == 17 (0x11) WINDOW_ChangeLocation
15544 TravelUI_Draw(); 15507 TravelUI_Draw();
15545 } 15508 }
15546 else//pWindowType == 16 15509 else//pWindowType == 16 (0x10) WINDOW_10
15547 { 15510 {
15548 RestUI_Draw(); 15511 RestUI_Draw();
15549 } 15512 }
15550 } 15513 }
15551 else// pWindowType == 12 15514 else// pWindowType == 12 (0xC) WINDOW_C
15552 { 15515 {
15553 QuickRefDraw(); 15516 QuickRefDraw();
15554 } 15517 }
15555 continue; 15518 continue;
15556 } 15519 }
15563 if ( v3 )// pWindowType > 4 15526 if ( v3 )// pWindowType > 4
15564 { 15527 {
15565 v4 = v3 - 2; 15528 v4 = v3 - 2;
15566 if ( v4 )//pWindowType > 6 15529 if ( v4 )//pWindowType > 6
15567 { 15530 {
15568 if ( v4 == 3 )//pWindowType == 9 15531 if ( v4 == 3 )//pWindowType == 9 (0x9) WINDOW_Book
15569 DrawSpellbook((unsigned int)pWindow->ptr_1C); 15532 SellectDrawBook((unsigned int)pWindow->ptr_1C);
15570 } 15533 }
15571 else//pWindowType == 6 15534 else//pWindowType == 6 (0x6) WINDOW_Options
15572 { 15535 {
15573 sub_414F82_DrawGameOptions(); 15536 sub_414F82_DrawGameOptions();
15574 } 15537 }
15575 } 15538 }
15576 else//pWindowType == 4 15539 else//pWindowType == 4 (0x4) WINDOW_CharacterRecord
15577 { 15540 {
15578 CharacterUI_CharacterScreen_Draw(uActiveCharacter); 15541 CharacterUI_CharacterScreen_Draw(uActiveCharacter);
15579 } 15542 }
15580 continue; 15543 continue;
15581 } 15544 }
15582 pTexture = (Texture *)(uTextureID_507944 != -1 ? &pIcons_LOD->pTextures[uTextureID_507944] : 0);//pWindowType == 3 15545 pTexture = (Texture *)(uTextureID_507944 != -1 ? &pIcons_LOD->pTextures[uTextureID_507944] : 0);//pWindowType == 3 (0x3)
15583 pY = pViewport->uViewportY; 15546 pY = pViewport->uViewportY;
15584 pX = pViewport->uViewportX; 15547 pX = pViewport->uViewportX;
15585 //goto LABEL_18; 15548 //goto LABEL_18;
15586 pRenderer->DrawTextureIndexed(pX, pY, pTexture); 15549 pRenderer->DrawTextureIndexed(pX, pY, pTexture);
15587 viewparams->bRedrawGameUI = 1; 15550 viewparams->bRedrawGameUI = 1;
17837 17800
17838 //----- (00419401) -------------------------------------------------------- 17801 //----- (00419401) --------------------------------------------------------
17839 void __cdecl sub_419401() 17802 void __cdecl sub_419401()
17840 { 17803 {
17841 unsigned int v0; // ecx@3 17804 unsigned int v0; // ecx@3
17842 GUIButton *i; // eax@3 17805 GUIButton *pButton; // eax@3
17843 GUIFont *v2; // eax@8 17806 GUIFont *v2; // eax@8
17844 unsigned int v3; // esi@8 17807 unsigned int v3; // esi@8
17845 int v4; // eax@10 17808 int v4; // eax@10
17846 unsigned int v5; // esi@14 17809 unsigned int v5; // esi@14
17847 int v6; // eax@17 17810 int v6; // eax@17
17862 a2 = 0; 17825 a2 = 0;
17863 if ( dword_507CC0 ) 17826 if ( dword_507CC0 )
17864 sub_4196A0(); 17827 sub_4196A0();
17865 v0 = uActiveCharacter; 17828 v0 = uActiveCharacter;
17866 dword_507CC0 = uActiveCharacter; 17829 dword_507CC0 = uActiveCharacter;
17867 for ( i = pGUIWindow_CurrentMenu->pControlsHead; i; i = i->pNext ) 17830 for ( pButton = pGUIWindow_CurrentMenu->pControlsHead; pButton; pButton = pButton->pNext )
17868 { 17831 {
17869 if ( i->uControlID == 120 ) 17832 if ( pButton->uControlID == 120 )
17870 { 17833 {
17871 dword_50698C = i->uX; 17834 dword_50698C = pButton->uX;
17872 dword_506988 = i->uY; 17835 dword_506988 = pButton->uY;
17873 dword_506984 = i->uZ; 17836 dword_506984 = pButton->uZ;
17874 dword_506980 = i->uW; 17837 dword_506980 = pButton->uW;
17875 i->uW = 0; 17838 pButton->uW = 0;
17876 i->uZ = 0; 17839 pButton->uZ = 0;
17877 i->uY = 0; 17840 pButton->uY = 0;
17878 i->uX = 0; 17841 pButton->uX = 0;
17879 v0 = uActiveCharacter; 17842 v0 = uActiveCharacter;
17880 } 17843 }
17881 } 17844 }
17882 v12 = 0; 17845 v12 = 0;
17883 a5 = pGUIWindow_CurrentMenu->uNumControls; 17846 a5 = pGUIWindow_CurrentMenu->uNumControls;
17885 v2 = pFontLucida; 17848 v2 = pFontLucida;
17886 v14 = (unsigned int *)dword_4E2A2C; 17849 v14 = (unsigned int *)dword_4E2A2C;
17887 v3 = 2 * LOBYTE(pFontLucida->uFontHeight) + 13; 17850 v3 = 2 * LOBYTE(pFontLucida->uFontHeight) + 13;
17888 do 17851 do
17889 { 17852 {
17890 if ( v18[2 * *v14 + 264] & 0x3F ) 17853 if ( v18[2 * *v14 + 264] & 0x3F )//crash
17891 { 17854 {
17892 v4 = LOBYTE(v2->uFontHeight); 17855 v4 = LOBYTE(v2->uFontHeight);
17893 v3 = v3 + v4 - 3; 17856 v3 = v3 + v4 - 3;
17894 ++a2; 17857 ++a2;
17895 ++v12; 17858 ++v12;
17896 pGUIWindow_CurrentMenu->CreateButton( 17859 pGUIWindow_CurrentMenu->CreateButton(0x18u, v3, 0xCCu, v4 - 3, 3, *v14 | 0x8000, 0x79u, *v14, 0, "", 0, 0);
17897 0x18u,
17898 v3,
17899 0xCCu,
17900 v4 - 3,
17901 3,
17902 *v14 | 0x8000,
17903 0x79u,
17904 *v14,
17905 0,
17906 "",
17907 0);
17908 v2 = pFontLucida; 17860 v2 = pFontLucida;
17909 } 17861 }
17910 ++v14; 17862 ++v14;
17911 } 17863 }
17912 while ( (signed int)v14 < (signed int)dword_4E2A50 ); 17864 while ( (signed int)v14 < (signed int)dword_4E2A50 );
17919 if ( v18[2 * *v15 + 264] & 0x3F && a2 < 15 ) 17871 if ( v18[2 * *v15 + 264] & 0x3F && a2 < 15 )
17920 { 17872 {
17921 v6 = LOBYTE(v2->uFontHeight); 17873 v6 = LOBYTE(v2->uFontHeight);
17922 v5 = v5 + v6 - 3; 17874 v5 = v5 + v6 - 3;
17923 ++a2; 17875 ++a2;
17924 pGUIWindow_CurrentMenu->CreateButton( 17876 pGUIWindow_CurrentMenu->CreateButton(0x18u, v5, 0xCCu, v6 - 3, 3, *v15 | 0x8000, 0x79u, *v15, 0, "", 0, 0);
17925 0x18u,
17926 v5,
17927 0xCCu,
17928 v6 - 3,
17929 3,
17930 *v15 | 0x8000,
17931 0x79u,
17932 *v15,
17933 0,
17934 "",
17935 0);
17936 v2 = pFontLucida; 17877 v2 = pFontLucida;
17937 } 17878 }
17938 ++v15; 17879 ++v15;
17939 } 17880 }
17940 while ( (signed int)v15 < (signed int)pAwardsTextColors ); 17881 while ( (signed int)v15 < (signed int)pAwardsTextColors );
17947 { 17888 {
17948 v8 = LOBYTE(v2->uFontHeight); 17889 v8 = LOBYTE(v2->uFontHeight);
17949 v7 = v7 + v8 - 3; 17890 v7 = v7 + v8 - 3;
17950 ++a2; 17891 ++a2;
17951 ++v13; 17892 ++v13;
17952 pGUIWindow_CurrentMenu->CreateButton( 17893 pGUIWindow_CurrentMenu->CreateButton(0xF6u, v7, 0xCCu, v8 - 3, 3, *v16 | 0x8000, 0x79u, *v16, 0, "", 0, 0);
17953 0xF6u,
17954 v7,
17955 0xCCu,
17956 v8 - 3,
17957 3,
17958 *v16 | 0x8000,
17959 0x79u,
17960 *v16,
17961 0,
17962 "",
17963 0);
17964 v2 = pFontLucida; 17894 v2 = pFontLucida;
17965 } 17895 }
17966 ++v16; 17896 ++v16;
17967 } 17897 }
17968 while ( (signed int)v16 < (signed int)dword_4E2A2C ); 17898 while ( (signed int)v16 < (signed int)dword_4E2A2C );
17975 if ( v18[2 * *v17 + 264] & 0x3F ) 17905 if ( v18[2 * *v17 + 264] & 0x3F )
17976 { 17906 {
17977 v10 = LOBYTE(v2->uFontHeight); 17907 v10 = LOBYTE(v2->uFontHeight);
17978 v9 = v9 + v10 - 3; 17908 v9 = v9 + v10 - 3;
17979 ++a2; 17909 ++a2;
17980 pGUIWindow_CurrentMenu->CreateButton( 17910 pGUIWindow_CurrentMenu->CreateButton(0xF6u, v9, 0xCCu, v10 - 3, 3, *v17 | 0x8000, 0x79u, *v17, 0, "", 0, 0);
17981 0xF6u,
17982 v9,
17983 0xCCu,
17984 v10 - 3,
17985 3,
17986 *v17 | 0x8000,
17987 0x79u,
17988 *v17,
17989 0,
17990 "",
17991 0);
17992 v2 = pFontLucida; 17911 v2 = pFontLucida;
17993 } 17912 }
17994 ++v17; 17913 ++v17;
17995 } 17914 }
17996 while ( (signed int)v17 < (signed int)_4E2A80_skills ); 17915 while ( (signed int)v17 < (signed int)_4E2A80_skills );