Mercurial > mm7
diff mm7_5.cpp @ 364:3abebb74fd09
Merge
author | Gloval |
---|---|
date | Fri, 22 Feb 2013 00:52:35 +0400 |
parents | 38bfbee60146 2bc1c8d68f41 |
children | 0f35f908547f |
line wrap: on
line diff
--- a/mm7_5.cpp Fri Feb 22 01:28:48 2013 +0600 +++ b/mm7_5.cpp Fri Feb 22 00:52:35 2013 +0400 @@ -13050,7 +13050,7 @@ } //----- (00410B28) -------------------------------------------------------- -void __thiscall DrawSpellDescriptionPopup(void *_this) +void __thiscall DrawSpellDescriptionPopup(int spell_index) { Player *v1; // edi@1 SpellInfo *v2; // esi@1 @@ -13061,14 +13061,14 @@ char *v7; // ST44_4@12 unsigned __int16 v8; // ax@12 GUIWindow a1; // [sp+Ch] [bp-68h]@4 - void *v10; // [sp+60h] [bp-14h]@1 + int v10; // [sp+60h] [bp-14h]@1 POINT a2; // [sp+64h] [bp-10h]@1 int v12; // [sp+6Ch] [bp-8h]@4 int v13; // [sp+70h] [bp-4h]@4 v1 = pPlayers[uActiveCharacter]; - v10 = _this; - v2 = &pSpellStats->pInfos[(signed int)((char *)_this + 11 * v1->lastOpenedSpellbookPage) + 1]; + v10 = spell_index; + v2 = &pSpellStats->pInfos[spell_index + 11 * v1->lastOpenedSpellbookPage + 1]; if ( pMouse->GetCursorPos(&a2)->y <= 250 ) v3 = pMouse->GetCursorPos(&a2)->y + 30; else @@ -13080,10 +13080,10 @@ a1.uFrameZ = 417; a1.uFrameW = v3 + 67; a1.Hint = 0; - a2.y = pFontSmallnum->GetLineWidth(pGlobalTXT_LocalizationStrings[431]); - v13 = pFontSmallnum->GetLineWidth(pGlobalTXT_LocalizationStrings[433]); - v12 = pFontSmallnum->GetLineWidth(pGlobalTXT_LocalizationStrings[432]); - v4 = pFontSmallnum->GetLineWidth(pGlobalTXT_LocalizationStrings[96]); + a2.y = pFontSmallnum->GetLineWidth(pGlobalTXT_LocalizationStrings[LOCSTR_NORMAL]); + v13 = pFontSmallnum->GetLineWidth(pGlobalTXT_LocalizationStrings[LOCSTR_MASTER]); + v12 = pFontSmallnum->GetLineWidth(pGlobalTXT_LocalizationStrings[LOCSTR_EXPERT]); + v4 = pFontSmallnum->GetLineWidth(pGlobalTXT_LocalizationStrings[LOCSTR_GRAND]); v5 = a2.y; if ( v13 > a2.y ) v5 = v13; @@ -13091,25 +13091,20 @@ v5 = v12; if ( v4 > v5 ) v5 = v4; - sprintf( - pTmpBuf2, + sprintf( pTmpBuf2, "%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", v2->pDescription, - pGlobalTXT_LocalizationStrings[431], - v5 + 3, - v5 + 10, + pGlobalTXT_LocalizationStrings[LOCSTR_NORMAL], + v5 + 3, v5 + 10, v2->pBasicSkillDesc, - pGlobalTXT_LocalizationStrings[433], - v5 + 3, - v5 + 10, + pGlobalTXT_LocalizationStrings[LOCSTR_EXPERT], + v5 + 3, v5 + 10, v2->pExpertSkillDesc, - pGlobalTXT_LocalizationStrings[432], - v5 + 3, - v5 + 10, + pGlobalTXT_LocalizationStrings[LOCSTR_MASTER], + v5 + 3, v5 + 10, v2->pMasterSkillDesc, - pGlobalTXT_LocalizationStrings[96], - v5 + 3, - v5 + 10, + pGlobalTXT_LocalizationStrings[LOCSTR_GRAND], + v5 + 3, v5 + 10, v2->pGrandmasterSkillDesc); v6 = pFontSmallnum->CalcTextHeight(pTmpBuf2, &a1, 0, 0); a1.uFrameHeight += v6; @@ -13128,13 +13123,11 @@ a1.uFrameWidth = 108; a1.uFrameZ = a1.uFrameX + 107; a1.DrawTitleText(pFontComic, 0xCu, 0x4Bu, 0, pSkillNames[v1->lastOpenedSpellbookPage + 12], 3u); - sprintf( - pTmpBuf, - "%s\n%d", - pGlobalTXT_LocalizationStrings[522], - *(&pSpellDatas[0].field_12 //temp_fix field_14 - + ((unsigned int)LOBYTE(v1->pActiveSkills[v1->lastOpenedSpellbookPage + 12]) >> 6) - + 10 * (int)((char *)v10 + 11 * v1->lastOpenedSpellbookPage))); + sprintf( pTmpBuf, "%s\n%d", pGlobalTXT_LocalizationStrings[LOCSTR_SP_COST], + pSpellDatas[spell_index + 11 * v1->lastOpenedSpellbookPage + 1].mana_per_skill[v1->pActiveSkills[v1->lastOpenedSpellbookPage + PLAYER_SKILL_FIRE]]); + // *(&[0].field_12 //temp_fix field_14 + // + ((unsigned int)LOBYTE(v1->pActiveSkills[v1->lastOpenedSpellbookPage + 12]) >> 6) + // + 10 * (int)((char *)v10 + 11 * v1->lastOpenedSpellbookPage))); a1.DrawTitleText(pFontComic, 0xCu, a1.uFrameHeight - LOBYTE(pFontComic->uFontHeight) - 16, 0, pTmpBuf, 3u); dword_507B00_spell_info_to_draw_in_popup = 0; } @@ -13663,15 +13656,16 @@ } if ( v6->pLevelOfDetail0 ) { - v7 = (12 * v0->lastOpenedSpellbookPage + pSpellbookSpellIndices[v0->lastOpenedSpellbookPage][v4]); - v19 = pViewport->uViewportY + pIconPos[v7].Ypos; - v17 = pViewport->uViewportX + pIconPos[v7].Xpos; + v7 = v0->lastOpenedSpellbookPage; + // v7 = (12 * v0->lastOpenedSpellbookPage + pSpellbookSpellIndices[v0->lastOpenedSpellbookPage][v4]); + v19 = pViewport->uViewportY + pIconPos[v7][pSpellbookSpellIndices[v7][v4]].Ypos; + v17 = pViewport->uViewportX + pIconPos[v7][pSpellbookSpellIndices[v7][v4]].Xpos; if ( BYTE1(v6->pBits) & 2 ) pRenderer->DrawTextureTransparent(v17, v19, v6); else pRenderer->DrawTextureIndexed(v17, v19, v6); - v8 = (12 * v0->lastOpenedSpellbookPage + pSpellbookSpellIndices[v0->lastOpenedSpellbookPage][v4]); - pRenderer->_4A612A(pIconPos[v8].Xpos,pIconPos[v8].Ypos, v23, v4); + pRenderer->_4A612A(pIconPos[v7][pSpellbookSpellIndices[v7][v4]].Xpos, + pIconPos[v7][pSpellbookSpellIndices[v7][v4]].Ypos, v23, v4); } } } @@ -13687,9 +13681,10 @@ if ( v11->pLevelOfDetail0 ) { v21 = dword_5063D8[v10]; - v12 = (12 * v0->lastOpenedSpellbookPage + pSpellbookSpellIndices[v0->lastOpenedSpellbookPage][v10]); - v20 = pViewport->uViewportY + pIconPos[v12].Ypos; - v18 = pViewport->uViewportX + pIconPos[v12].Xpos; + v12 = v0->lastOpenedSpellbookPage; + // v12 = (12 * v0->lastOpenedSpellbookPage + pSpellbookSpellIndices[v0->lastOpenedSpellbookPage][v10]); + v20 = pViewport->uViewportY + pIconPos[v12][pSpellbookSpellIndices[v12][v10]].Ypos; + v18 = pViewport->uViewportX + pIconPos[v12][pSpellbookSpellIndices[v12][v10]].Xpos; if ( BYTE1(v11->pBits) & 2 ) pRenderer->DrawTextureTransparent(v18, v20, v21); else @@ -16520,7 +16515,7 @@ if ( pCurrentScreen == SCREEN_SPELL_BOOK ) { if ( dword_507B00_spell_info_to_draw_in_popup ) - DrawSpellDescriptionPopup((void *)(dword_507B00_spell_info_to_draw_in_popup - 1)); + DrawSpellDescriptionPopup(dword_507B00_spell_info_to_draw_in_popup - 1); } goto LABEL_132; }