comparison mm7_5.cpp @ 364:3abebb74fd09

Merge
author Gloval
date Fri, 22 Feb 2013 00:52:35 +0400
parents 38bfbee60146 2bc1c8d68f41
children 0f35f908547f
comparison
equal deleted inserted replaced
362:38bfbee60146 364:3abebb74fd09
13048 aMoonPhaseNames[3] = pGlobalTXT_LocalizationStrings[169]; 13048 aMoonPhaseNames[3] = pGlobalTXT_LocalizationStrings[169];
13049 aMoonPhaseNames[4] = pGlobalTXT_LocalizationStrings[92]; 13049 aMoonPhaseNames[4] = pGlobalTXT_LocalizationStrings[92];
13050 } 13050 }
13051 13051
13052 //----- (00410B28) -------------------------------------------------------- 13052 //----- (00410B28) --------------------------------------------------------
13053 void __thiscall DrawSpellDescriptionPopup(void *_this) 13053 void __thiscall DrawSpellDescriptionPopup(int spell_index)
13054 { 13054 {
13055 Player *v1; // edi@1 13055 Player *v1; // edi@1
13056 SpellInfo *v2; // esi@1 13056 SpellInfo *v2; // esi@1
13057 unsigned int v3; // eax@2 13057 unsigned int v3; // eax@2
13058 int v4; // eax@4 13058 int v4; // eax@4
13059 LONG v5; // ecx@4 13059 LONG v5; // ecx@4
13060 int v6; // eax@10 13060 int v6; // eax@10
13061 char *v7; // ST44_4@12 13061 char *v7; // ST44_4@12
13062 unsigned __int16 v8; // ax@12 13062 unsigned __int16 v8; // ax@12
13063 GUIWindow a1; // [sp+Ch] [bp-68h]@4 13063 GUIWindow a1; // [sp+Ch] [bp-68h]@4
13064 void *v10; // [sp+60h] [bp-14h]@1 13064 int v10; // [sp+60h] [bp-14h]@1
13065 POINT a2; // [sp+64h] [bp-10h]@1 13065 POINT a2; // [sp+64h] [bp-10h]@1
13066 int v12; // [sp+6Ch] [bp-8h]@4 13066 int v12; // [sp+6Ch] [bp-8h]@4
13067 int v13; // [sp+70h] [bp-4h]@4 13067 int v13; // [sp+70h] [bp-4h]@4
13068 13068
13069 v1 = pPlayers[uActiveCharacter]; 13069 v1 = pPlayers[uActiveCharacter];
13070 v10 = _this; 13070 v10 = spell_index;
13071 v2 = &pSpellStats->pInfos[(signed int)((char *)_this + 11 * v1->lastOpenedSpellbookPage) + 1]; 13071 v2 = &pSpellStats->pInfos[spell_index + 11 * v1->lastOpenedSpellbookPage + 1];
13072 if ( pMouse->GetCursorPos(&a2)->y <= 250 ) 13072 if ( pMouse->GetCursorPos(&a2)->y <= 250 )
13073 v3 = pMouse->GetCursorPos(&a2)->y + 30; 13073 v3 = pMouse->GetCursorPos(&a2)->y + 30;
13074 else 13074 else
13075 v3 = 30; 13075 v3 = 30;
13076 a1.uFrameY = v3; 13076 a1.uFrameY = v3;
13078 a1.uFrameHeight = 68; 13078 a1.uFrameHeight = 68;
13079 a1.uFrameX = 90; 13079 a1.uFrameX = 90;
13080 a1.uFrameZ = 417; 13080 a1.uFrameZ = 417;
13081 a1.uFrameW = v3 + 67; 13081 a1.uFrameW = v3 + 67;
13082 a1.Hint = 0; 13082 a1.Hint = 0;
13083 a2.y = pFontSmallnum->GetLineWidth(pGlobalTXT_LocalizationStrings[431]); 13083 a2.y = pFontSmallnum->GetLineWidth(pGlobalTXT_LocalizationStrings[LOCSTR_NORMAL]);
13084 v13 = pFontSmallnum->GetLineWidth(pGlobalTXT_LocalizationStrings[433]); 13084 v13 = pFontSmallnum->GetLineWidth(pGlobalTXT_LocalizationStrings[LOCSTR_MASTER]);
13085 v12 = pFontSmallnum->GetLineWidth(pGlobalTXT_LocalizationStrings[432]); 13085 v12 = pFontSmallnum->GetLineWidth(pGlobalTXT_LocalizationStrings[LOCSTR_EXPERT]);
13086 v4 = pFontSmallnum->GetLineWidth(pGlobalTXT_LocalizationStrings[96]); 13086 v4 = pFontSmallnum->GetLineWidth(pGlobalTXT_LocalizationStrings[LOCSTR_GRAND]);
13087 v5 = a2.y; 13087 v5 = a2.y;
13088 if ( v13 > a2.y ) 13088 if ( v13 > a2.y )
13089 v5 = v13; 13089 v5 = v13;
13090 if ( v12 > v5 ) 13090 if ( v12 > v5 )
13091 v5 = v12; 13091 v5 = v12;
13092 if ( v4 > v5 ) 13092 if ( v4 > v5 )
13093 v5 = v4; 13093 v5 = v4;
13094 sprintf( 13094 sprintf( pTmpBuf2,
13095 pTmpBuf2,
13096 "%s\n\n%s\t%03d:\t%03d%s\t000\n%s\t%03d:\t%03d%s\t000\n%s\t%03d:\t%03d%s\t000\n%s\t%03d:\t%03d%s", 13095 "%s\n\n%s\t%03d:\t%03d%s\t000\n%s\t%03d:\t%03d%s\t000\n%s\t%03d:\t%03d%s\t000\n%s\t%03d:\t%03d%s",
13097 v2->pDescription, 13096 v2->pDescription,
13098 pGlobalTXT_LocalizationStrings[431], 13097 pGlobalTXT_LocalizationStrings[LOCSTR_NORMAL],
13099 v5 + 3, 13098 v5 + 3, v5 + 10,
13100 v5 + 10,
13101 v2->pBasicSkillDesc, 13099 v2->pBasicSkillDesc,
13102 pGlobalTXT_LocalizationStrings[433], 13100 pGlobalTXT_LocalizationStrings[LOCSTR_EXPERT],
13103 v5 + 3, 13101 v5 + 3, v5 + 10,
13104 v5 + 10,
13105 v2->pExpertSkillDesc, 13102 v2->pExpertSkillDesc,
13106 pGlobalTXT_LocalizationStrings[432], 13103 pGlobalTXT_LocalizationStrings[LOCSTR_MASTER],
13107 v5 + 3, 13104 v5 + 3, v5 + 10,
13108 v5 + 10,
13109 v2->pMasterSkillDesc, 13105 v2->pMasterSkillDesc,
13110 pGlobalTXT_LocalizationStrings[96], 13106 pGlobalTXT_LocalizationStrings[LOCSTR_GRAND],
13111 v5 + 3, 13107 v5 + 3, v5 + 10,
13112 v5 + 10,
13113 v2->pGrandmasterSkillDesc); 13108 v2->pGrandmasterSkillDesc);
13114 v6 = pFontSmallnum->CalcTextHeight(pTmpBuf2, &a1, 0, 0); 13109 v6 = pFontSmallnum->CalcTextHeight(pTmpBuf2, &a1, 0, 0);
13115 a1.uFrameHeight += v6; 13110 a1.uFrameHeight += v6;
13116 if ( (signed int)a1.uFrameHeight < 150 ) 13111 if ( (signed int)a1.uFrameHeight < 150 )
13117 a1.uFrameHeight = 150; 13112 a1.uFrameHeight = 150;
13126 a1.DrawTitleText(pFontArrus, 0x78u, 0xCu, v8, v7, 3u); 13121 a1.DrawTitleText(pFontArrus, 0x78u, 0xCu, v8, v7, 3u);
13127 a1.DrawText(pFontSmallnum, 120, 44, 0, pTmpBuf2, 0, 0, 0); 13122 a1.DrawText(pFontSmallnum, 120, 44, 0, pTmpBuf2, 0, 0, 0);
13128 a1.uFrameWidth = 108; 13123 a1.uFrameWidth = 108;
13129 a1.uFrameZ = a1.uFrameX + 107; 13124 a1.uFrameZ = a1.uFrameX + 107;
13130 a1.DrawTitleText(pFontComic, 0xCu, 0x4Bu, 0, pSkillNames[v1->lastOpenedSpellbookPage + 12], 3u); 13125 a1.DrawTitleText(pFontComic, 0xCu, 0x4Bu, 0, pSkillNames[v1->lastOpenedSpellbookPage + 12], 3u);
13131 sprintf( 13126 sprintf( pTmpBuf, "%s\n%d", pGlobalTXT_LocalizationStrings[LOCSTR_SP_COST],
13132 pTmpBuf, 13127 pSpellDatas[spell_index + 11 * v1->lastOpenedSpellbookPage + 1].mana_per_skill[v1->pActiveSkills[v1->lastOpenedSpellbookPage + PLAYER_SKILL_FIRE]]);
13133 "%s\n%d", 13128 // *(&[0].field_12 //temp_fix field_14
13134 pGlobalTXT_LocalizationStrings[522], 13129 // + ((unsigned int)LOBYTE(v1->pActiveSkills[v1->lastOpenedSpellbookPage + 12]) >> 6)
13135 *(&pSpellDatas[0].field_12 //temp_fix field_14 13130 // + 10 * (int)((char *)v10 + 11 * v1->lastOpenedSpellbookPage)));
13136 + ((unsigned int)LOBYTE(v1->pActiveSkills[v1->lastOpenedSpellbookPage + 12]) >> 6)
13137 + 10 * (int)((char *)v10 + 11 * v1->lastOpenedSpellbookPage)));
13138 a1.DrawTitleText(pFontComic, 0xCu, a1.uFrameHeight - LOBYTE(pFontComic->uFontHeight) - 16, 0, pTmpBuf, 3u); 13131 a1.DrawTitleText(pFontComic, 0xCu, a1.uFrameHeight - LOBYTE(pFontComic->uFontHeight) - 16, 0, pTmpBuf, 3u);
13139 dword_507B00_spell_info_to_draw_in_popup = 0; 13132 dword_507B00_spell_info_to_draw_in_popup = 0;
13140 } 13133 }
13141 // 507B00: using guessed type int dword_507B00_spell_info_to_draw_in_popup; 13134 // 507B00: using guessed type int dword_507B00_spell_info_to_draw_in_popup;
13142 13135
13661 v23 = dword_506408[v4]; 13654 v23 = dword_506408[v4];
13662 v6 = v5; 13655 v6 = v5;
13663 } 13656 }
13664 if ( v6->pLevelOfDetail0 ) 13657 if ( v6->pLevelOfDetail0 )
13665 { 13658 {
13666 v7 = (12 * v0->lastOpenedSpellbookPage + pSpellbookSpellIndices[v0->lastOpenedSpellbookPage][v4]); 13659 v7 = v0->lastOpenedSpellbookPage;
13667 v19 = pViewport->uViewportY + pIconPos[v7].Ypos; 13660 // v7 = (12 * v0->lastOpenedSpellbookPage + pSpellbookSpellIndices[v0->lastOpenedSpellbookPage][v4]);
13668 v17 = pViewport->uViewportX + pIconPos[v7].Xpos; 13661 v19 = pViewport->uViewportY + pIconPos[v7][pSpellbookSpellIndices[v7][v4]].Ypos;
13662 v17 = pViewport->uViewportX + pIconPos[v7][pSpellbookSpellIndices[v7][v4]].Xpos;
13669 if ( BYTE1(v6->pBits) & 2 ) 13663 if ( BYTE1(v6->pBits) & 2 )
13670 pRenderer->DrawTextureTransparent(v17, v19, v6); 13664 pRenderer->DrawTextureTransparent(v17, v19, v6);
13671 else 13665 else
13672 pRenderer->DrawTextureIndexed(v17, v19, v6); 13666 pRenderer->DrawTextureIndexed(v17, v19, v6);
13673 v8 = (12 * v0->lastOpenedSpellbookPage + pSpellbookSpellIndices[v0->lastOpenedSpellbookPage][v4]); 13667 pRenderer->_4A612A(pIconPos[v7][pSpellbookSpellIndices[v7][v4]].Xpos,
13674 pRenderer->_4A612A(pIconPos[v8].Xpos,pIconPos[v8].Ypos, v23, v4); 13668 pIconPos[v7][pSpellbookSpellIndices[v7][v4]].Ypos, v23, v4);
13675 } 13669 }
13676 } 13670 }
13677 } 13671 }
13678 ++v4; 13672 ++v4;
13679 } 13673 }
13685 { 13679 {
13686 v11 = dword_5063D8[v10]; 13680 v11 = dword_5063D8[v10];
13687 if ( v11->pLevelOfDetail0 ) 13681 if ( v11->pLevelOfDetail0 )
13688 { 13682 {
13689 v21 = dword_5063D8[v10]; 13683 v21 = dword_5063D8[v10];
13690 v12 = (12 * v0->lastOpenedSpellbookPage + pSpellbookSpellIndices[v0->lastOpenedSpellbookPage][v10]); 13684 v12 = v0->lastOpenedSpellbookPage;
13691 v20 = pViewport->uViewportY + pIconPos[v12].Ypos; 13685 // v12 = (12 * v0->lastOpenedSpellbookPage + pSpellbookSpellIndices[v0->lastOpenedSpellbookPage][v10]);
13692 v18 = pViewport->uViewportX + pIconPos[v12].Xpos; 13686 v20 = pViewport->uViewportY + pIconPos[v12][pSpellbookSpellIndices[v12][v10]].Ypos;
13687 v18 = pViewport->uViewportX + pIconPos[v12][pSpellbookSpellIndices[v12][v10]].Xpos;
13693 if ( BYTE1(v11->pBits) & 2 ) 13688 if ( BYTE1(v11->pBits) & 2 )
13694 pRenderer->DrawTextureTransparent(v18, v20, v21); 13689 pRenderer->DrawTextureTransparent(v18, v20, v21);
13695 else 13690 else
13696 pRenderer->DrawTextureIndexed(v18, v20, v21); 13691 pRenderer->DrawTextureIndexed(v18, v20, v21);
13697 } 13692 }
16518 if ( pCurrentScreen != SCREEN_CHARACTERS ) 16513 if ( pCurrentScreen != SCREEN_CHARACTERS )
16519 { 16514 {
16520 if ( pCurrentScreen == SCREEN_SPELL_BOOK ) 16515 if ( pCurrentScreen == SCREEN_SPELL_BOOK )
16521 { 16516 {
16522 if ( dword_507B00_spell_info_to_draw_in_popup ) 16517 if ( dword_507B00_spell_info_to_draw_in_popup )
16523 DrawSpellDescriptionPopup((void *)(dword_507B00_spell_info_to_draw_in_popup - 1)); 16518 DrawSpellDescriptionPopup(dword_507B00_spell_info_to_draw_in_popup - 1);
16524 } 16519 }
16525 goto LABEL_132; 16520 goto LABEL_132;
16526 } 16521 }
16527 LABEL_119: 16522 LABEL_119:
16528 if ( (signed int)pX > 467 && pCurrentScreen != SCREEN_E ) 16523 if ( (signed int)pX > 467 && pCurrentScreen != SCREEN_E )