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