comparison mm7_4.cpp @ 135:9b0d651821f1

Party creation screen: sorcerer class icon fixed
author Nomad
date Mon, 11 Feb 2013 20:23:55 +0200
parents 1c471f3629fb
children a8ec7e1e18b6
comparison
equal deleted inserted replaced
131:3ee983b8082b 135:9b0d651821f1
3565 v50 = 0; 3565 v50 = 0;
3566 v47 = 0; 3566 v47 = 0;
3567 v45 = 0; 3567 v45 = 0;
3568 v48 = 0; 3568 v48 = 0;
3569 v46 = 0; 3569 v46 = 0;
3570 if ( v44 && v21->uClass == 31 ) 3570 if ( v44 && v21->classType == PLAYER_CLASS_31 )
3571 v50 = 1; 3571 v50 = 1;
3572 if ( v21->uClass == 35 ) 3572 if ( v21->classType == PLAYER_CLASS_LICH )
3573 v48 = 1; 3573 v48 = 1;
3574 v22 = (ITEM_EQUIP_TYPE)0; 3574 v22 = (ITEM_EQUIP_TYPE)0;
3575 while ( 1 ) 3575 while ( 1 )
3576 { 3576 {
3577 if ( v21->HasItemEquipped(v22) ) 3577 if ( v21->HasItemEquipped(v22) )
5310 int v13; // ecx@21 5310 int v13; // ecx@21
5311 int v14; // ecx@22 5311 int v14; // ecx@22
5312 char *v15; // ST14_4@24 5312 char *v15; // ST14_4@24
5313 size_t v16; // eax@28 5313 size_t v16; // eax@28
5314 int v17; // eax@33 5314 int v17; // eax@33
5315 enum CHARACTER_RACE uNumRace; // eax@35 5315 //enum CHARACTER_RACE uNumRace; // eax@35
5316 int v19; // eax@36 5316 int v19; // eax@36
5317 int v20; // eax@37 5317 int v20; // eax@37
5318 int uNumMight; // eax@44 5318 int uNumMight; // eax@44
5319 unsigned int v24; // eax@44 5319 unsigned int v24; // eax@44
5320 int v25; // eax@44 5320 int v25; // eax@44
5340 char *v48; // ST1C_4@46 5340 char *v48; // ST1C_4@46
5341 int v50; // eax@46 5341 int v50; // eax@46
5342 int v51; // eax@49 5342 int v51; // eax@49
5343 char *v52; // edi@52 5343 char *v52; // edi@52
5344 char v53; // al@52 5344 char v53; // al@52
5345 int uClassType; // edi@53 5345 PLAYER_CLASS_TYPE uClassType; // edi@53
5346 int v55; // ST0C_4@53 5346 int v55; // ST0C_4@53
5347 int v57; // eax@53 5347 int v57; // eax@53
5348 int v61; // ecx@55 5348 int v61; // ecx@55
5349 int v64; // ST08_4@57 5349 int v64; // ST08_4@57
5350 int v66; // ecx@57 5350 int v66; // ecx@57
5380 int uColorTeal; // [sp+158h] [bp-18h]@1 5380 int uColorTeal; // [sp+158h] [bp-18h]@1
5381 int uColorWhite; // [sp+15Ch] [bp-14h]@1 5381 int uColorWhite; // [sp+15Ch] [bp-14h]@1
5382 int uX; // [sp+160h] [bp-10h]@18 5382 int uX; // [sp+160h] [bp-10h]@18
5383 unsigned int v133; // [sp+164h] [bp-Ch]@25 5383 unsigned int v133; // [sp+164h] [bp-Ch]@25
5384 int pOrder; // [sp+168h] [bp-8h]@14 5384 int pOrder; // [sp+168h] [bp-8h]@14
5385 char *Str; // [sp+16Ch] [bp-4h]@18 5385 //char *Str; // [sp+16Ch] [bp-4h]@18
5386 Player *pPlayer; 5386 //Player *pPlayer;
5387 const char *pSkillName; 5387 const char *pSkillName;
5388 5388
5389 uColor1 = GenerateColorAsCloseAsPossibleToR8G8B8InTargetFormat(0xD1, 0xBB, 0x61); 5389 uColor1 = GenerateColorAsCloseAsPossibleToR8G8B8InTargetFormat(0xD1, 0xBB, 0x61);
5390 uColorTeal = GenerateColorAsCloseAsPossibleToR8G8B8InTargetFormat(0, 0xF7, 0xF7); 5390 uColorTeal = GenerateColorAsCloseAsPossibleToR8G8B8InTargetFormat(0, 0xF7, 0xF7);
5391 uColorGreen = GenerateColorAsCloseAsPossibleToR8G8B8InTargetFormat(0, 0xFF, 0); 5391 uColorGreen = GenerateColorAsCloseAsPossibleToR8G8B8InTargetFormat(0, 0xFF, 0);
5464 v123 = 3 * v6 + 311; 5464 v123 = 3 * v6 + 311;
5465 v129 = 493; 5465 v129 = 493;
5466 //pPlayer = pParty->pPlayers; 5466 //pPlayer = pParty->pPlayers;
5467 v119 = 6 * v6 + 169; 5467 v119 = 6 * v6 + 169;
5468 //do 5468 //do
5469 for ( pPlayer = pParty->pPlayers; (signed int)pPlayer->pName < (signed int)&pParty->pPickedItem.uNumCharges; pPlayer++) 5469
5470 { 5470 //for ( pPlayer = pParty->pPlayers; (signed int)pPlayer->pName < (signed int)&pParty->pPickedItem.uNumCharges; pPlayer++)
5471 Str = pPlayer->pName; 5471 for (int i = 0; i < 4; ++i)
5472 pGUIWindow_CurrentMenu->DrawText(pFontCreate, pOrder + 73, 100, 0, pClassNames[(unsigned __int8)pPlayer->uClass], 0, 0, 0); 5472 {
5473 pRenderer->DrawTextureTransparent(pOrder + 77, 50, pTexture_IC_KNIGHT[pPlayer->uClass/4]); 5473 auto player = pParty->pPlayers + i;
5474
5475 //Str = pPlayer->pName;
5476 pGUIWindow_CurrentMenu->DrawText(pFontCreate, pOrder + 73, 100, 0, pClassNames[player->classType], 0, 0, 0);
5477 pRenderer->DrawTextureTransparent(pOrder + 77, 50, pTexture_IC_KNIGHT[player->classType / 4]);
5474 v11 = pGUIWindow_CurrentMenu->field_40; 5478 v11 = pGUIWindow_CurrentMenu->field_40;
5475 if ( v11 && (v12 = pGUIWindow_CurrentMenu->ptr_1C, v12 == v124) ) 5479 if ( v11 && (v12 = pGUIWindow_CurrentMenu->ptr_1C, v12 == v124) )
5476 { 5480 {
5477 v13 = v11 - 1; 5481 v13 = v11 - 1;
5478 if ( v13 ) 5482 if ( v13 )
5481 if ( v14 ) 5485 if ( v14 )
5482 { 5486 {
5483 if ( v14 == 1 ) 5487 if ( v14 == 1 )
5484 { 5488 {
5485 pGUIWindow_CurrentMenu->field_40 = 0; 5489 pGUIWindow_CurrentMenu->field_40 = 0;
5486 pGUIWindow_CurrentMenu->DrawTextInRect(pFontCreate, pOrder, 124, 0, Str, 130, 0); 5490 pGUIWindow_CurrentMenu->DrawTextInRect(pFontCreate, pOrder, 124, 0, player->pName, 130, 0);
5487 SetCurrentMenuID(MENU_7); 5491 SetCurrentMenuID(MENU_7);
5488 } 5492 }
5489 } 5493 }
5490 else 5494 else
5491 { 5495 {
5503 v16 = strlen((const char *)pKeyActionMap->pPressedKeysBuffer); 5507 v16 = strlen((const char *)pKeyActionMap->pPressedKeysBuffer);
5504 } 5508 }
5505 while ( v133 < v16 ); 5509 while ( v133 < v16 );
5506 } 5510 }
5507 if ( v120 && v126 != v120 ) 5511 if ( v120 && v126 != v120 )
5508 strcpy(Str, (const char *)pKeyActionMap->pPressedKeysBuffer); 5512 strcpy(player->pName, (const char *)pKeyActionMap->pPressedKeysBuffer);
5509 pGUIWindow_CurrentMenu->DrawTextInRect(pFontCreate, pOrder, 0x7C, 0, Str, 130, 0); 5513 pGUIWindow_CurrentMenu->DrawTextInRect(pFontCreate, pOrder, 0x7C, 0, player->pName, 130, 0);
5510 *((short *)pPlayer->pName + 3323) = 1; // 5514 *(short *)&player->field_1988[27] = 1; //
5511 } 5515 }
5512 } 5516 }
5513 else 5517 else
5514 { 5518 {
5515 v17 = pGUIWindow_CurrentMenu->DrawTextInRect(pFontCreate, 159 * (int)v12 + 18, 0x7Cu, 0, (const char *)pKeyActionMap->pPressedKeysBuffer, 120, 1); 5519 v17 = pGUIWindow_CurrentMenu->DrawTextInRect(pFontCreate, 159 * (int)v12 + 18, 0x7Cu, 0, (const char *)pKeyActionMap->pPressedKeysBuffer, 120, 1);
5516 pGUIWindow_CurrentMenu->DrawFlashingInputCursor(159 * (unsigned int)pGUIWindow_CurrentMenu->ptr_1C + v17 + 20, 124, pFontCreate); 5520 pGUIWindow_CurrentMenu->DrawFlashingInputCursor(159 * (unsigned int)pGUIWindow_CurrentMenu->ptr_1C + v17 + 20, 124, pFontCreate);
5517 } 5521 }
5518 } 5522 }
5519 else 5523 else
5520 { 5524 {
5521 pGUIWindow_CurrentMenu->DrawTextInRect(pFontCreate, pOrder, 0x7C, 0, pPlayer->pName, 130, 0); 5525 pGUIWindow_CurrentMenu->DrawTextInRect(pFontCreate, pOrder, 0x7C, 0, player->pName, 130, 0);
5522 } 5526 }
5523 uNumRace = pPlayer->GetRace(); 5527 switch (player->GetRace())
5524 switch (uNumRace)
5525 { 5528 {
5526 case 0: uRaceName = pGlobalTXT_LocalizationStrings[99]; break; // "Human" 5529 case 0: uRaceName = pGlobalTXT_LocalizationStrings[99]; break; // "Human"
5527 case 1: uRaceName = pGlobalTXT_LocalizationStrings[103]; break; // "Dwarf" 5530 case 1: uRaceName = pGlobalTXT_LocalizationStrings[103]; break; // "Dwarf"
5528 case 2: uRaceName = pGlobalTXT_LocalizationStrings[106]; break; // "Goblin" 5531 case 2: uRaceName = pGlobalTXT_LocalizationStrings[106]; break; // "Goblin"
5529 case 3: uRaceName = pGlobalTXT_LocalizationStrings[101]; break; // "Elf" 5532 case 3: uRaceName = pGlobalTXT_LocalizationStrings[101]; break; // "Elf"
5530 }; 5533 };
5531 strcpy(pTmpBuf, uRaceName); 5534 strcpy(pTmpBuf, uRaceName);
5532 pGUIWindow_CurrentMenu->DrawTextInRect(pFontCreate, pOrder + 72, v128 + 12, 0, pTmpBuf, 130, 0); 5535 pGUIWindow_CurrentMenu->DrawTextInRect(pFontCreate, pOrder + 72, v128 + 12, 0, pTmpBuf, 130, 0);
5533 pTextCenter = pFontCreate->AlignText_Center(0x96, pText); 5536 pTextCenter = pFontCreate->AlignText_Center(0x96, pText);
5534 pGUIWindow_CurrentMenu->DrawText(pFontCreate, pTextCenter + uX - 24, 291, uColor1, pText, 0, 0, 0); 5537 pGUIWindow_CurrentMenu->DrawText(pFontCreate, pTextCenter + uX - 24, 291, uColor1, pText, 0, 0, 0);
5535 uNumMight = pPlayer->GetActualMight(); 5538 uNumMight = player->GetActualMight();
5536 sprintf(pTmpBuf, "%s\r%03d%d", pGlobalTXT_LocalizationStrings[144], v129, uNumMight);// "Might" 5539 sprintf(pTmpBuf, "%s\r%03d%d", pGlobalTXT_LocalizationStrings[144], v129, uNumMight);// "Might"
5537 LOWORD(v24) = pPlayer->GetStatColor(0); 5540 LOWORD(v24) = player->GetStatColor(0);
5538 pGUIWindow_CurrentMenu->DrawText(pFontCreate, uX, 169, v24, pTmpBuf, 0, 0, 0); 5541 pGUIWindow_CurrentMenu->DrawText(pFontCreate, uX, 169, v24, pTmpBuf, 0, 0, 0);
5539 v25 = pPlayer->GetActualIntelligence(); 5542 v25 = player->GetActualIntelligence();
5540 sprintf(pTmpBuf, "%s\r%03d%d", pGlobalTXT_LocalizationStrings[116], v129, v25);// "Intellect" 5543 sprintf(pTmpBuf, "%s\r%03d%d", pGlobalTXT_LocalizationStrings[116], v129, v25);// "Intellect"
5541 LOWORD(v26) = pPlayer->GetStatColor(1); 5544 LOWORD(v26) = player->GetStatColor(1);
5542 pGUIWindow_CurrentMenu->DrawText(pFontCreate, uX, v128 + 169, v26, pTmpBuf, 0, 0, 0); 5545 pGUIWindow_CurrentMenu->DrawText(pFontCreate, uX, v128 + 169, v26, pTmpBuf, 0, 0, 0);
5543 v27 = pPlayer->GetActualWillpower(); 5546 v27 = player->GetActualWillpower();
5544 sprintf(pTmpBuf, "%s\r%03d%d", pGlobalTXT_LocalizationStrings[163], v129, v27);// "Personality" 5547 sprintf(pTmpBuf, "%s\r%03d%d", pGlobalTXT_LocalizationStrings[163], v129, v27);// "Personality"
5545 LOWORD(v28) = pPlayer->GetStatColor(2); 5548 LOWORD(v28) = player->GetStatColor(2);
5546 pGUIWindow_CurrentMenu->DrawText(pFontCreate, uX, 2 * v128 + 169, v28, pTmpBuf, 0, 0, 0); 5549 pGUIWindow_CurrentMenu->DrawText(pFontCreate, uX, 2 * v128 + 169, v28, pTmpBuf, 0, 0, 0);
5547 v29 = pPlayer->GetActualEndurance(); 5550 v29 = player->GetActualEndurance();
5548 sprintf(pTmpBuf, "%s\r%03d%d", pGlobalTXT_LocalizationStrings[75], v129, v29);// "Endurance" 5551 sprintf(pTmpBuf, "%s\r%03d%d", pGlobalTXT_LocalizationStrings[75], v129, v29);// "Endurance"
5549 LOWORD(v30) = pPlayer->GetStatColor(3); 5552 LOWORD(v30) = player->GetStatColor(3);
5550 pGUIWindow_CurrentMenu->DrawText(pFontCreate, uX, uY, v30, pTmpBuf, 0, 0, 0); 5553 pGUIWindow_CurrentMenu->DrawText(pFontCreate, uX, uY, v30, pTmpBuf, 0, 0, 0);
5551 v31 = pPlayer->GetActualAccuracy(); 5554 v31 = player->GetActualAccuracy();
5552 sprintf(pTmpBuf, "%s\r%03d%d", pGlobalTXT_LocalizationStrings[1], v129, v31);// "Accuracy" 5555 sprintf(pTmpBuf, "%s\r%03d%d", pGlobalTXT_LocalizationStrings[1], v129, v31);// "Accuracy"
5553 LOWORD(v32) = pPlayer->GetStatColor(4); 5556 LOWORD(v32) = player->GetStatColor(4);
5554 pGUIWindow_CurrentMenu->DrawText(pFontCreate, uX, 4 * v128 + 169, v32, pTmpBuf, 0, 0, 0); 5557 pGUIWindow_CurrentMenu->DrawText(pFontCreate, uX, 4 * v128 + 169, v32, pTmpBuf, 0, 0, 0);
5555 v33 = pPlayer->GetActualSpeed(); 5558 v33 = player->GetActualSpeed();
5556 sprintf(pTmpBuf, "%s\r%03d%d", pGlobalTXT_LocalizationStrings[211], v129, v33);// "Speed" 5559 sprintf(pTmpBuf, "%s\r%03d%d", pGlobalTXT_LocalizationStrings[211], v129, v33);// "Speed"
5557 LOWORD(v34) = pPlayer->GetStatColor(5); 5560 LOWORD(v34) = player->GetStatColor(5);
5558 pGUIWindow_CurrentMenu->DrawText(pFontCreate, uX, v122, v34, pTmpBuf, 0, 0, 0); 5561 pGUIWindow_CurrentMenu->DrawText(pFontCreate, uX, v122, v34, pTmpBuf, 0, 0, 0);
5559 v35 = pPlayer->GetActualLuck(); 5562 v35 = player->GetActualLuck();
5560 sprintf(pTmpBuf, "%s\r%03d%d", pGlobalTXT_LocalizationStrings[136], v129, v35);// "Luck" 5563 sprintf(pTmpBuf, "%s\r%03d%d", pGlobalTXT_LocalizationStrings[136], v129, v35);// "Luck"
5561 LOWORD(v36) = pPlayer->GetStatColor(6u); 5564 LOWORD(v36) = player->GetStatColor(6u);
5562 pGUIWindow_CurrentMenu->DrawText(pFontCreate, uX, v119, v36, pTmpBuf, 0, 0, 0); 5565 pGUIWindow_CurrentMenu->DrawText(pFontCreate, uX, v119, v36, pTmpBuf, 0, 0, 0);
5563 v37 = pPlayer->GetSkillIdxByOrder(0); 5566 v37 = player->GetSkillIdxByOrder(0);
5564 pTextCenter = pFontCreate->AlignText_Center(0x96u, pSkillNames[v37]); 5567 pTextCenter = pFontCreate->AlignText_Center(0x96u, pSkillNames[v37]);
5565 sprintf(pTmpBuf, "\t%03u%s", pTextCenter, pSkillNames[v37]); 5568 sprintf(pTmpBuf, "\t%03u%s", pTextCenter, pSkillNames[v37]);
5566 pGUIWindow_CurrentMenu->DrawText(pFontCreate, uX - 24, 311, uColorWhite, pTmpBuf, 0, 0, 0); 5569 pGUIWindow_CurrentMenu->DrawText(pFontCreate, uX - 24, 311, uColorWhite, pTmpBuf, 0, 0, 0);
5567 v39 = pPlayer->GetSkillIdxByOrder(1); 5570 v39 = player->GetSkillIdxByOrder(1);
5568 pTextCenter = pFontCreate->AlignText_Center(0x96u, pSkillNames[v39]); 5571 pTextCenter = pFontCreate->AlignText_Center(0x96u, pSkillNames[v39]);
5569 sprintf(pTmpBuf, "\t%03u%s", pTextCenter, pSkillNames[v39]); 5572 sprintf(pTmpBuf, "\t%03u%s", pTextCenter, pSkillNames[v39]);
5570 pGUIWindow_CurrentMenu->DrawText(pFontCreate, uX - 24, v128 + 311, uColorWhite, pTmpBuf, 0, 0, 0); 5573 pGUIWindow_CurrentMenu->DrawText(pFontCreate, uX - 24, v128 + 311, uColorWhite, pTmpBuf, 0, 0, 0);
5571 v41 = pPlayer->GetSkillIdxByOrder(2); 5574 v41 = player->GetSkillIdxByOrder(2);
5572 pTextCenter = pFontCreate->AlignText_Center(150u, pSkillNames[v41]); 5575 pTextCenter = pFontCreate->AlignText_Center(150u, pSkillNames[v41]);
5573 sprintf(pTmpBuf, "\t%03u%s", pTextCenter, pSkillNames[v41]); 5576 sprintf(pTmpBuf, "\t%03u%s", pTextCenter, pSkillNames[v41]);
5574 v45 = uColorGreen; 5577 v45 = uColorGreen;
5575 if ( (signed int)v41 >= 37 ) 5578 if ( (signed int)v41 >= 37 )
5576 v45 = uColorTeal; 5579 v45 = uColorTeal;
5577 pGUIWindow_CurrentMenu->DrawText(pFontCreate, uX - 24, 2 * v128 + 311, v45, pTmpBuf, 0, 0, 0); 5580 pGUIWindow_CurrentMenu->DrawText(pFontCreate, uX - 24, 2 * v128 + 311, v45, pTmpBuf, 0, 0, 0);
5578 v46 = pPlayer->GetSkillIdxByOrder(3); 5581 v46 = player->GetSkillIdxByOrder(3);
5579 pTextCenter = pFontCreate->AlignText_Center(150u, pSkillNames[v46]); 5582 pTextCenter = pFontCreate->AlignText_Center(150u, pSkillNames[v46]);
5580 sprintf(pTmpBuf, "\t%03u%s", pTextCenter, pSkillNames[v46]); 5583 sprintf(pTmpBuf, "\t%03u%s", pTextCenter, pSkillNames[v46]);
5581 v50 = uColorGreen; 5584 v50 = uColorGreen;
5582 if ( (signed int)v46 >= 37 ) 5585 if ( (signed int)v46 >= 37 )
5583 v50 = uColorTeal; 5586 v50 = uColorTeal;
5586 v124 = (char *)v124 + 1; 5589 v124 = (char *)v124 + 1;
5587 pOrder += 159; 5590 pOrder += 159;
5588 v129 -= 158; 5591 v129 -= 158;
5589 uX += 158; 5592 uX += 158;
5590 } 5593 }
5594
5591 //while ( (signed int)pPlayer->pName < (signed int)&pParty->pPickedItem.uNumCharges ); 5595 //while ( (signed int)pPlayer->pName < (signed int)&pParty->pPickedItem.uNumCharges );
5592 strcpy(pText, pGlobalTXT_LocalizationStrings[41]);// "Class" 5596 strcpy(pText, pGlobalTXT_LocalizationStrings[41]);// "Class"
5593 v51 = strlen(pText) - 1; 5597 v51 = strlen(pText) - 1;
5594 pOrder = v51; 5598 pOrder = v51;
5595 if ( v51 >= 0 ) 5599 if ( v51 >= 0 )
5603 if ( v10 ) 5607 if ( v10 )
5604 break; 5608 break;
5605 v51 = pOrder; 5609 v51 = pOrder;
5606 } 5610 }
5607 } 5611 }
5608 uClassType = pParty->pPlayers[uPlayerCreationUI_SelectedCharacter].uClass; 5612 uClassType = pParty->pPlayers[uPlayerCreationUI_SelectedCharacter].classType;
5609 pTextCenter = pFontCreate->AlignText_Center(193u, pText); 5613 pTextCenter = pFontCreate->AlignText_Center(193u, pText);
5610 pGUIWindow_CurrentMenu->DrawText(pFontCreate, pTextCenter + 324, 395, uColor1, pText, 0, 0, 0); 5614 pGUIWindow_CurrentMenu->DrawText(pFontCreate, pTextCenter + 324, 395, uColor1, pText, 0, 0, 0);
5611 v57 = uColorTeal; 5615 v57 = uColorTeal;
5612 if ( uClassType ) 5616 if ( uClassType )
5613 v57 = uColorWhite; 5617 v57 = uColorWhite;
5628 if ( uClassType != PLAYER_CLASS_CLERIC ) 5632 if ( uClassType != PLAYER_CLASS_CLERIC )
5629 v71 = uColorWhite; 5633 v71 = uColorWhite;
5630 pTextCenter = pFontCreate->AlignText_Center(65, pClassNames[24]); 5634 pTextCenter = pFontCreate->AlignText_Center(65, pClassNames[24]);
5631 pGUIWindow_CurrentMenu->DrawText(pFontCreate, pTextCenter + 388, 417, v71, pClassNames[24], 0, 0, 0); 5635 pGUIWindow_CurrentMenu->DrawText(pFontCreate, pTextCenter + 388, 417, v71, pClassNames[24], 0, 0, 0);
5632 v75 = uColorTeal; 5636 v75 = uColorTeal;
5633 if ( uClassType != 28 ) 5637 if ( uClassType != PLAYER_CLASS_DRUID)
5634 v75 = uColorWhite; 5638 v75 = uColorWhite;
5635 pTextCenter = pFontCreate->AlignText_Center(65, pClassNames[28]); 5639 pTextCenter = pFontCreate->AlignText_Center(65, pClassNames[28]);
5636 pGUIWindow_CurrentMenu->DrawText(pFontCreate, pTextCenter + 388, uColorGreen, v75, pClassNames[28], 0, 0, 0); 5640 pGUIWindow_CurrentMenu->DrawText(pFontCreate, pTextCenter + 388, uColorGreen, v75, pClassNames[28], 0, 0, 0);
5637 v80 = uColorTeal; 5641 v80 = uColorTeal;
5638 if ( uClassType != PLAYER_CLASS_SORCERER ) 5642 if ( uClassType != PLAYER_CLASS_SORCERER )
5742 pCurrentScreen = 21;//окно Создания группы 5746 pCurrentScreen = 21;//окно Создания группы
5743 uPlayerCreationUI_ArrowAnim = 0; 5747 uPlayerCreationUI_ArrowAnim = 0;
5744 uPlayerCreationUI_SkySliderPos = 0; 5748 uPlayerCreationUI_SkySliderPos = 0;
5745 uPlayerCreationUI_SelectedCharacter = 0; 5749 uPlayerCreationUI_SelectedCharacter = 0;
5746 v0 = LOBYTE(pFontCreate->uFontHeight) - 2; 5750 v0 = LOBYTE(pFontCreate->uFontHeight) - 2;
5747 pTexture_IC_KNIGHT[0] = &pIcons_LOD->pTextures[pIcons_LOD->LoadTexture("IC_KNIGHT", TEXTURE_16BIT_PALETTE)]; 5751 pTexture_IC_KNIGHT[0] = pIcons_LOD->LoadTexturePtr("IC_KNIGHT", TEXTURE_16BIT_PALETTE);
5748 pTexture_IC_KNIGHT[1] = &pIcons_LOD->pTextures[pIcons_LOD->LoadTexture("IC_THIEF", TEXTURE_16BIT_PALETTE)]; 5752 pTexture_IC_KNIGHT[1] = pIcons_LOD->LoadTexturePtr("IC_THIEF", TEXTURE_16BIT_PALETTE);
5749 pTexture_IC_KNIGHT[2] = &pIcons_LOD->pTextures[pIcons_LOD->LoadTexture("IC_MONK", TEXTURE_16BIT_PALETTE)]; 5753 pTexture_IC_KNIGHT[2] = pIcons_LOD->LoadTexturePtr("IC_MONK", TEXTURE_16BIT_PALETTE);
5750 pTexture_IC_KNIGHT[3] = &pIcons_LOD->pTextures[pIcons_LOD->LoadTexture("IC_PALAD", TEXTURE_16BIT_PALETTE)]; 5754 pTexture_IC_KNIGHT[3] = pIcons_LOD->LoadTexturePtr("IC_PALAD", TEXTURE_16BIT_PALETTE);
5751 pTexture_IC_KNIGHT[4] = &pIcons_LOD->pTextures[pIcons_LOD->LoadTexture("IC_ARCH", TEXTURE_16BIT_PALETTE)]; 5755 pTexture_IC_KNIGHT[4] = pIcons_LOD->LoadTexturePtr("IC_ARCH", TEXTURE_16BIT_PALETTE);
5752 pTexture_IC_KNIGHT[5] = &pIcons_LOD->pTextures[pIcons_LOD->LoadTexture("IC_RANGER", TEXTURE_16BIT_PALETTE)]; 5756 pTexture_IC_KNIGHT[5] = pIcons_LOD->LoadTexturePtr("IC_RANGER", TEXTURE_16BIT_PALETTE);
5753 pTexture_IC_KNIGHT[6] = &pIcons_LOD->pTextures[pIcons_LOD->LoadTexture("IC_CLER", TEXTURE_16BIT_PALETTE)]; 5757 pTexture_IC_KNIGHT[6] = pIcons_LOD->LoadTexturePtr("IC_CLER", TEXTURE_16BIT_PALETTE);
5754 pTexture_IC_KNIGHT[7] = &pIcons_LOD->pTextures[pIcons_LOD->LoadTexture("IC_DRUID", TEXTURE_16BIT_PALETTE)]; 5758 pTexture_IC_KNIGHT[7] = pIcons_LOD->LoadTexturePtr("IC_DRUID", TEXTURE_16BIT_PALETTE);
5755 pTexture_IC_KNIGHT[8] = &pIcons_LOD->pTextures[pIcons_LOD->LoadTexture("IC_SORC", TEXTURE_16BIT_PALETTE)]; 5759 pTexture_IC_KNIGHT[8] = pIcons_LOD->LoadTexturePtr("IC_SORC", TEXTURE_16BIT_PALETTE);
5756 pTexture_MAKETOP = &pIcons_LOD->pTextures[pIcons_LOD->LoadTexture("MAKETOP", TEXTURE_16BIT_PALETTE)]; 5760 pTexture_MAKETOP = pIcons_LOD->LoadTexturePtr("MAKETOP", TEXTURE_16BIT_PALETTE);
5761 pTexture_MAKESKY = pIcons_LOD->LoadTexturePtr("MAKESKY", TEXTURE_16BIT_PALETTE);
5757 uX = 0; 5762 uX = 0;
5758 pTexture_MAKESKY = &pIcons_LOD->pTextures[pIcons_LOD->LoadTexture("MAKESKY", TEXTURE_16BIT_PALETTE)];
5759 do // load PlayerPortraits texture 5763 do // load PlayerPortraits texture
5760 { 5764 {
5761 sprintf(pTmpBuf, "%s01", pPlayerPortraitsNames[uX]); 5765 sprintf(pTmpBuf, "%s01", pPlayerPortraitsNames[uX]);
5762 v1 = pIcons_LOD->LoadTexture(pTmpBuf, TEXTURE_16BIT_PALETTE); 5766 v1 = pIcons_LOD->LoadTexture(pTmpBuf, TEXTURE_16BIT_PALETTE);
5763 v2 = uX * 4; 5767 v2 = uX * 4;
5858 uControlParamd, 0, "", 0); 5862 uControlParamd, 0, "", 0);
5859 ++uControlParamd; 5863 ++uControlParamd;
5860 } 5864 }
5861 while ( uControlParamd < 9 ); 5865 while ( uControlParamd < 9 );
5862 pPlayerCreationUI_BtnOK = pGUIWindow_CurrentMenu->CreateButton(580, 431, 51, 39, 1, 0, 0x42, 0, 0xD, "", 5866 pPlayerCreationUI_BtnOK = pGUIWindow_CurrentMenu->CreateButton(580, 431, 51, 39, 1, 0, 0x42, 0, 0xD, "",
5863 (Texture *)(uTextureID_BUTTMAKE != -1 ? (int)&pIcons_LOD->pTextures[uTextureID_BUTTMAKE] : 0), 0); 5867 (Texture *)(uTextureID_BUTTMAKE != -1 ? &pIcons_LOD->pTextures[uTextureID_BUTTMAKE] : 0), 0);
5864 pPlayerCreationUI_BtnReset = pGUIWindow_CurrentMenu->CreateButton(527, 431, 51, 39, 1, 0, 0x43, 0, 0x43, "", 5868 pPlayerCreationUI_BtnReset = pGUIWindow_CurrentMenu->CreateButton(527, 431, 51, 39, 1, 0, 0x43, 0, 0x43, "",
5865 (Texture *)(uTextureID_BUTTMAKE2 != -1 ? (int)&pIcons_LOD->pTextures[uTextureID_BUTTMAKE2] : 0), 0); 5869 (Texture *)(uTextureID_BUTTMAKE2 != -1 ? &pIcons_LOD->pTextures[uTextureID_BUTTMAKE2] : 0), 0);
5866 pPlayerCreationUI_BtnMinus = pGUIWindow_CurrentMenu->CreateButton(523, 393, 20, 35, 1, 0, 0x3F, 0, 0x2D, "", pTexture_buttminu, 0); 5870 pPlayerCreationUI_BtnMinus = pGUIWindow_CurrentMenu->CreateButton(523, 393, 20, 35, 1, 0, 0x3F, 0, 0x2D, "", pTexture_buttminu, 0);
5867 pPlayerCreationUI_BtnPlus = pGUIWindow_CurrentMenu->CreateButton(613, 393, 20, 35, 1, 0, 0x3E, 1, 0x2B, "", pTexture_buttplus, 0); 5871 pPlayerCreationUI_BtnPlus = pGUIWindow_CurrentMenu->CreateButton(613, 393, 20, 35, 1, 0, 0x3E, 1, 0x2B, "", pTexture_buttplus, 0);
5868 pFontCChar = LoadFont("cchar.fnt", "FONTPAL", 0); 5872 pFontCChar = LoadFont("cchar.fnt", "FONTPAL", 0);
5869 } 5873 }
5870 // 4E28F8: using guessed type int pCurrentScreen; 5874 // 4E28F8: using guessed type int pCurrentScreen;
6021 item.Reset(); 6025 item.Reset();
6022 //v10 = (char *)&pParty->pPlayers[0].sResMagicBase; 6026 //v10 = (char *)&pParty->pPlayers[0].sResMagicBase;
6023 for ( pPlayer = &pParty->pPlayers[0]; pPlayer < &pParty->pPlayers[4]; pPlayer++) 6027 for ( pPlayer = &pParty->pPlayers[0]; pPlayer < &pParty->pPlayers[4]; pPlayer++)
6024 { 6028 {
6025 //v11 = pPlayer; 6029 //v11 = pPlayer;
6026 if ( !pPlayer->uClass ) 6030 if (pPlayer->classType == PLAYER_CLASS_KNIGHT)
6027 pPlayer->sResMagicBase = 10; 6031 pPlayer->sResMagicBase = 10;
6028 //*((short *)v10 + 400) = 0; 6032 //*((short *)v10 + 400) = 0;
6029 pPlayer->pPlayerBuffs[22].uExpireTime = 0; 6033 pPlayer->pPlayerBuffs[22].uExpireTime = 0;
6030 uSpellBookPageCount = 0; 6034 uSpellBookPageCount = 0;
6031 for ( int i = 0; i < 9; i++) 6035 for ( int i = 0; i < 9; i++)
9409 v5 = 0; 9413 v5 = 0;
9410 v12 = pParty->pPlayers;//[0].uClass; 9414 v12 = pParty->pPlayers;//[0].uClass;
9411 v9 = 0; 9415 v9 = 0;
9412 while ( 1 ) 9416 while ( 1 )
9413 { 9417 {
9414 if ( v12->uClass == 35 ) 9418 if ( v12->classType == PLAYER_CLASS_LICH )
9415 { 9419 {
9416 v10 = 0; 9420 v10 = 0;
9417 v6 = pParty->pPlayers;//[0].pInventoryItems[0].field_1A; 9421 v6 = pParty->pPlayers;//[0].pInventoryItems[0].field_1A;
9418 do 9422 do
9419 { 9423 {
9807 else 9811 else
9808 { 9812 {
9809 dword_F8B1B4 = 2000; 9813 dword_F8B1B4 = 2000;
9810 dword_F8B1B0 = 2; 9814 dword_F8B1B0 = 2;
9811 } 9815 }
9812 v5 = v1->uClass; 9816 v5 = v1->classType;
9813 v33 = v5; 9817 v33 = v5;
9814 v6 = byte_4ED970_skill_learn_ability_by_class_table[v5][v3]; 9818 v6 = byte_4ED970_skill_learn_ability_by_class_table[v5][v3];
9815 *(int *)a1 = v1->pActiveSkills[v3]; 9819 *(int *)a1 = v1->pActiveSkills[v3];
9816 v7 = a1[0] & 0x3F; 9820 v7 = a1[0] & 0x3F;
9817 v34 = v2 + 2; 9821 v34 = v2 + 2;
11656 v7 = ptr_507BC0->ptr_1C; 11660 v7 = ptr_507BC0->ptr_1C;
11657 v68 = (unsigned __int16)word_4F0866[(signed int)v7]; 11661 v68 = (unsigned __int16)word_4F0866[(signed int)v7];
11658 v66 = 1000 * v3; 11662 v66 = 1000 * v3;
11659 if ( (signed __int64)__PAIR__(v6, LODWORD(v0->uExperience)) >= v66 ) 11663 if ( (signed __int64)__PAIR__(v6, LODWORD(v0->uExperience)) >= v66 )
11660 { 11664 {
11661 v8 = v0->uClass % 4 + 1; 11665 v8 = v0->classType % 4 + 1;
11662 if ( v8 == 4 ) 11666 if ( v8 == 4 )
11663 v8 = 3; 11667 v8 = 3;
11664 v9 = (double)(signed int)i; 11668 v9 = (double)(signed int)i;
11665 i = 0; 11669 i = 0;
11666 v69 = v8; 11670 v69 = v8;
11697 if ( (signed int)v15 >= (signed int)(v15 + v16) ) 11701 if ( (signed int)v15 >= (signed int)(v15 + v16) )
11698 goto LABEL_76; 11702 goto LABEL_76;
11699 do 11703 do
11700 { 11704 {
11701 v17 = v13->GetControl(v15)->uControlParam - 36; 11705 v17 = v13->GetControl(v15)->uControlParam - 36;
11702 if ( byte_4ED970_skill_learn_ability_by_class_table[v0->uClass][v17] && !v0->pActiveSkills[v17] ) 11706 if ( byte_4ED970_skill_learn_ability_by_class_table[v0->classType][v17] && !v0->pActiveSkills[v17] )
11703 { 11707 {
11704 v18 = pFontArrus->CalcTextHeight(pSkillNames[v17], &v65, 0, 0); 11708 v18 = pFontArrus->CalcTextHeight(pSkillNames[v17], &v65, 0, 0);
11705 i += v18; 11709 i += v18;
11706 ++v72; 11710 ++v72;
11707 } 11711 }
11725 do 11729 do
11726 { 11730 {
11727 v20 = v13->GetControl(i); 11731 v20 = v13->GetControl(i);
11728 v21 = v20; 11732 v21 = v20;
11729 v22 = v20->uControlParam - 36; 11733 v22 = v20->uControlParam - 36;
11730 if ( !byte_4ED970_skill_learn_ability_by_class_table[v0->uClass][v22] || v0->pActiveSkills[v22] ) 11734 if ( !byte_4ED970_skill_learn_ability_by_class_table[v0->classType][v22] || v0->pActiveSkills[v22] )
11731 { 11735 {
11732 v21->uW = 0; 11736 v21->uW = 0;
11733 v21->uHeight = 0; 11737 v21->uHeight = 0;
11734 v21->uY = 0; 11738 v21->uY = 0;
11735 } 11739 }
11758 } 11762 }
11759 } 11763 }
11760 else 11764 else
11761 { 11765 {
11762 LABEL_76: 11766 LABEL_76:
11763 sprintf(pTmpBuf, pGlobalTXT_LocalizationStrings[544], v0->pName, pClassNames[v0->uClass]);// 11767 sprintf(pTmpBuf, pGlobalTXT_LocalizationStrings[544], v0->pName, pClassNames[v0->classType]);//
11764 // "Seek knowledge elsewhere %s the %s" 11768 // "Seek knowledge elsewhere %s the %s"
11765 strcat(pTmpBuf, "\n \n"); 11769 strcat(pTmpBuf, "\n \n");
11766 strcat(pTmpBuf, pGlobalTXT_LocalizationStrings[528]);// "I can offer you nothing further." 11770 strcat(pTmpBuf, pGlobalTXT_LocalizationStrings[528]);// "I can offer you nothing further."
11767 v29 = v71; 11771 v29 = v71;
11768 v30 = pFontArrus->CalcTextHeight(pTmpBuf, &v65, 0, 0); 11772 v30 = pFontArrus->CalcTextHeight(pTmpBuf, &v65, 0, 0);
12168 if ( (signed int)v34 >= v35 ) 12172 if ( (signed int)v34 >= v35 )
12169 goto LABEL_140; 12173 goto LABEL_140;
12170 do 12174 do
12171 { 12175 {
12172 v36 = v31->GetControl(v34)->uControlParam - 36; 12176 v36 = v31->GetControl(v34)->uControlParam - 36;
12173 if ( byte_4ED970_skill_learn_ability_by_class_table[_this->uClass][v36] && !_this->pActiveSkills[v36] ) 12177 if ( byte_4ED970_skill_learn_ability_by_class_table[_this->classType][v36] && !_this->pActiveSkills[v36] )
12174 { 12178 {
12175 v37 = pFontArrus->CalcTextHeight(pSkillNames[v36], &v112, 0, 0); 12179 v37 = pFontArrus->CalcTextHeight(pSkillNames[v36], &v112, 0, 0);
12176 v118 += v37; 12180 v118 += v37;
12177 ++v122; 12181 ++v122;
12178 } 12182 }
12180 } 12184 }
12181 while ( (signed int)v34 < v31->pNumPresenceButton + v31->pStartingPosActiveItem ); 12185 while ( (signed int)v34 < v31->pNumPresenceButton + v31->pStartingPosActiveItem );
12182 if ( !v122 ) 12186 if ( !v122 )
12183 { 12187 {
12184 LABEL_140: 12188 LABEL_140:
12185 sprintf(pTmpBuf, pGlobalTXT_LocalizationStrings[544], _this->pName, pClassNames[_this->uClass]);// 12189 sprintf(pTmpBuf, pGlobalTXT_LocalizationStrings[544], _this->pName, pClassNames[_this->classType]);//
12186 // "Seek knowledge elsewhere %s the %s" 12190 // "Seek knowledge elsewhere %s the %s"
12187 strcat(pTmpBuf, "\n \n"); 12191 strcat(pTmpBuf, "\n \n");
12188 strcat(pTmpBuf, pGlobalTXT_LocalizationStrings[528]);// "I can offer you nothing further." 12192 strcat(pTmpBuf, pGlobalTXT_LocalizationStrings[528]);// "I can offer you nothing further."
12189 v30 = pTmpBuf; 12193 v30 = pTmpBuf;
12190 v97 = 3; 12194 v97 = 3;
12210 do 12214 do
12211 { 12215 {
12212 v39 = v31->GetControl(v118); 12216 v39 = v31->GetControl(v118);
12213 v40 = v39; 12217 v40 = v39;
12214 v41 = v39->uControlParam - 36; 12218 v41 = v39->uControlParam - 36;
12215 if ( !byte_4ED970_skill_learn_ability_by_class_table[_this->uClass][v41] || _this->pActiveSkills[v41] ) 12219 if ( !byte_4ED970_skill_learn_ability_by_class_table[_this->classType][v41] || _this->pActiveSkills[v41] )
12216 { 12220 {
12217 v40->uW = 0; 12221 v40->uW = 0;
12218 v40->uHeight = 0; 12222 v40->uHeight = 0;
12219 v40->uY = 0; 12223 v40->uY = 0;
12220 } 12224 }
13221 } 13225 }
13222 while ( v21 < v20->pNumPresenceButton + v20->pStartingPosActiveItem ); 13226 while ( v21 < v20->pNumPresenceButton + v20->pStartingPosActiveItem );
13223 if ( !v61 ) 13227 if ( !v61 )
13224 { 13228 {
13225 LABEL_64: 13229 LABEL_64:
13226 sprintf(pTmpBuf, pGlobalTXT_LocalizationStrings[544], v58->pName, pClassNames[v58->uClass]); 13230 sprintf(pTmpBuf, pGlobalTXT_LocalizationStrings[544], v58->pName, pClassNames[v58->classType]);
13227 strcat(pTmpBuf, "\n \n"); 13231 strcat(pTmpBuf, "\n \n");
13228 strcat(pTmpBuf, pGlobalTXT_LocalizationStrings[528]); 13232 strcat(pTmpBuf, pGlobalTXT_LocalizationStrings[528]);
13229 v18 = pTmpBuf; 13233 v18 = pTmpBuf;
13230 v44 = 3; 13234 v44 = 3;
13231 v43 = pTmpBuf; 13235 v43 = pTmpBuf;
13413 if ( (signed int)v7 >= v8 ) 13417 if ( (signed int)v7 >= v8 )
13414 goto LABEL_78; 13418 goto LABEL_78;
13415 do 13419 do
13416 { 13420 {
13417 v9 = v4->GetControl(v62)->uControlParam - 36; 13421 v9 = v4->GetControl(v62)->uControlParam - 36;
13418 if ( byte_4ED970_skill_learn_ability_by_class_table[v1->uClass][v9] && !v1->pActiveSkills[v9] ) 13422 if ( byte_4ED970_skill_learn_ability_by_class_table[v1->classType][v9] && !v1->pActiveSkills[v9] )
13419 { 13423 {
13420 v10 = pFontArrus->CalcTextHeight(pSkillNames[v9], &v57, 0, 0); 13424 v10 = pFontArrus->CalcTextHeight(pSkillNames[v9], &v57, 0, 0);
13421 v66 = (DDM_DLV_Header *)((char *)v66 + v10); 13425 v66 = (DDM_DLV_Header *)((char *)v66 + v10);
13422 ++v65; 13426 ++v65;
13423 } 13427 }
13443 while ( 1 ) 13447 while ( 1 )
13444 { 13448 {
13445 v14 = v12->GetControl(v62); 13449 v14 = v12->GetControl(v62);
13446 v15 = v14; 13450 v15 = v14;
13447 v16 = v14->uControlParam - 36; 13451 v16 = v14->uControlParam - 36;
13448 if ( !byte_4ED970_skill_learn_ability_by_class_table[v1->uClass][v16] || v1->pActiveSkills[v16] ) 13452 if ( !byte_4ED970_skill_learn_ability_by_class_table[v1->classType][v16] || v1->pActiveSkills[v16] )
13449 { 13453 {
13450 v15->uW = 0; 13454 v15->uW = 0;
13451 v15->uHeight = 0; 13455 v15->uHeight = 0;
13452 v15->uY = 0; 13456 v15->uY = 0;
13453 } 13457 }
13477 } 13481 }
13478 } 13482 }
13479 else 13483 else
13480 { 13484 {
13481 LABEL_78: 13485 LABEL_78:
13482 sprintf(pTmpBuf, pGlobalTXT_LocalizationStrings[544], v1->pName, pClassNames[v1->uClass]); 13486 sprintf(pTmpBuf, pGlobalTXT_LocalizationStrings[544], v1->pName, pClassNames[v1->classType]);
13483 strcat(pTmpBuf, "\n \n"); 13487 strcat(pTmpBuf, "\n \n");
13484 strcat(pTmpBuf, pGlobalTXT_LocalizationStrings[528]); 13488 strcat(pTmpBuf, pGlobalTXT_LocalizationStrings[528]);
13485 v22 = WORD2(v59); 13489 v22 = WORD2(v59);
13486 v23 = pFontArrus->CalcTextHeight(pTmpBuf, &v57, 0, 0); 13490 v23 = pFontArrus->CalcTextHeight(pTmpBuf, &v57, 0, 0);
13487 result = (int)v57.DrawTitleText(pFontArrus, 0, (174 - v23) / 2 + 138, v22, pTmpBuf, 3u); 13491 result = (int)v57.DrawTitleText(pFontArrus, 0, (174 - v23) / 2 + 138, v22, pTmpBuf, 3u);
13913 if ( v9 >= v10 ) 13917 if ( v9 >= v10 )
13914 goto LABEL_40; 13918 goto LABEL_40;
13915 do 13919 do
13916 { 13920 {
13917 v11 = v8->GetControl(v35)->uControlParam - 36; 13921 v11 = v8->GetControl(v35)->uControlParam - 36;
13918 if ( byte_4ED970_skill_learn_ability_by_class_table[v1->uClass / 3][v11] && !v1->pActiveSkills[v11] ) 13922 if ( byte_4ED970_skill_learn_ability_by_class_table[v1->classType / 3][v11] && !v1->pActiveSkills[v11] )
13919 { 13923 {
13920 v12 = pFontArrus->CalcTextHeight(pSkillNames[v11], &v28, 0, 0); 13924 v12 = pFontArrus->CalcTextHeight(pSkillNames[v11], &v28, 0, 0);
13921 v33 += v12; 13925 v33 += v12;
13922 ++v34; 13926 ++v34;
13923 } 13927 }
13926 } 13930 }
13927 while ( v35 < v8->pNumPresenceButton + v13 ); 13931 while ( v35 < v8->pNumPresenceButton + v13 );
13928 if ( !v34 ) 13932 if ( !v34 )
13929 { 13933 {
13930 LABEL_40: 13934 LABEL_40:
13931 sprintf(pTmpBuf, pGlobalTXT_LocalizationStrings[544], v1->pName, pClassNames[v1->uClass]); 13935 sprintf(pTmpBuf, pGlobalTXT_LocalizationStrings[544], v1->pName, pClassNames[v1->classType]);
13932 strcat(pTmpBuf, "\n \n"); 13936 strcat(pTmpBuf, "\n \n");
13933 strcat(pTmpBuf, pGlobalTXT_LocalizationStrings[528]); 13937 strcat(pTmpBuf, pGlobalTXT_LocalizationStrings[528]);
13934 v22 = v31; 13938 v22 = v31;
13935 v23 = pFontArrus->CalcTextHeight(pTmpBuf, &v28, 0, 0); 13939 v23 = pFontArrus->CalcTextHeight(pTmpBuf, &v28, 0, 0);
13936 return (int)v28.DrawTitleText(pFontArrus, 0, (174 - v23) / 2 + 138, v22, pTmpBuf, 3u); 13940 return (int)v28.DrawTitleText(pFontArrus, 0, (174 - v23) / 2 + 138, v22, pTmpBuf, 3u);
13948 v33 = 2; 13952 v33 = 2;
13949 do 13953 do
13950 { 13954 {
13951 v14 = v8->GetControl(v35); 13955 v14 = v8->GetControl(v35);
13952 v15 = v14->uControlParam - 36; 13956 v15 = v14->uControlParam - 36;
13953 if ( byte_4ED970_skill_learn_ability_by_class_table[v1->uClass / 3][v15] ) 13957 if ( byte_4ED970_skill_learn_ability_by_class_table[v1->classType / 3][v15] )
13954 { 13958 {
13955 v16 = 0; 13959 v16 = 0;
13956 if ( !v1->pActiveSkills[v15] ) 13960 if ( !v1->pActiveSkills[v15] )
13957 { 13961 {
13958 v17 = pSkillNames[v15]; 13962 v17 = pSkillNames[v15];