Mercurial > mm7
diff UI/Books/UISpellBook.cpp @ 1401:3161094869e0
Слияние
author | Ritor1 |
---|---|
date | Fri, 19 Jul 2013 12:50:44 +0600 |
parents | 9b091098c88c eb02a65e5c82 |
children | a519a6a412d0 |
line wrap: on
line diff
--- a/UI/Books/UISpellBook.cpp Fri Jul 19 12:50:29 2013 +0600 +++ b/UI/Books/UISpellBook.cpp Fri Jul 19 12:50:44 2013 +0600 @@ -101,22 +101,33 @@ //----- (00412B58) -------------------------------------------------------- void DrawSpellBookContent(Player *player) { - Texture *PendingTexture; // edi@1 - Texture *SpellTexture; // eax@3 + //Player *v0; // ebx@1 + int v1; // ebp@1 + //unsigned int v2; // eax@1 + Texture *v3; // edi@1 + int v4; // esi@1 + Texture *v5; // eax@3 Texture *v6; // edx@5 + int v7; // eax@8 int v8; // eax@11 + //POINT *v9; // esi@13 int v10; // eax@13 + Texture *v11; // edx@14 + int v12; // eax@15 + signed int v13; // ecx@18 unsigned int v14; // esi@18 unsigned int v15; // edi@18 Texture *pPageTexture; // eax@21 - unsigned int pX_pos; // [sp-Ch] [bp-2Ch]@8 + unsigned int v17; // [sp-Ch] [bp-2Ch]@8 unsigned int v18; // [sp-Ch] [bp-2Ch]@15 - unsigned int pY_pos; // [sp-8h] [bp-28h]@8 + unsigned int v19; // [sp-8h] [bp-28h]@8 unsigned int v20; // [sp-8h] [bp-28h]@15 + Texture *v21; // [sp-4h] [bp-24h]@15 signed int v22; // [sp-4h] [bp-24h]@22 Texture *v23; // [sp+10h] [bp-10h]@5 POINT a2; // [sp+18h] [bp-8h]@13 - POINT v24; + //POINT v24; + int v25; static unsigned int texture_tab_coord1[9][2]= {{406, 9}, {406, 46}, {406, 84}, {406,121}, {407,158}, {405, 196}, {405, 234}, {405, 272}, {405,309} }; @@ -126,78 +137,96 @@ BookUI_Spellbook_DrawCurrentSchoolBackground(); - PendingTexture = pIcons_LOD->GetTexture(pIcons_LOD->FindTextureByName("Pending")); + //v0 = pPlayers[uActiveCharacter]; + v1 = 11 * player->lastOpenedSpellbookPage; + //v2 = pIcons_LOD->FindTextureByName("Pending"); + v3 = pIcons_LOD->GetTexture(pIcons_LOD->FindTextureByName("Pending")); pRenderer->ClearZBuffer(0, 479); - if ( (11 * player->lastOpenedSpellbookPage) || ((11 * player->lastOpenedSpellbookPage) + 11) )//??? maybe structure need fix + v4 = 1; + //if ( __OFSUB__(v1, v1 + 11) ^ 1 ) { - for ( uint i = 1; i - 1 < 11; ++i ) + do { - if ( *(&player->_guilds_member_bits[(11 * player->lastOpenedSpellbookPage) + 63] + i) ) + if (player->_guilds_member_bits[v1 + v4 + 63] ) { - SpellTexture = (Texture *)dword_506408[i]; - if ( SpellTexture != PendingTexture ) + v5 = (Texture *)dword_506408[v4]; + if ( v5 != v3 ) { - if ( quick_spell_at_page == i ) + if ( quick_spell_at_page == v4 ) { - v6 = dword_5063D8[i]; - v23 = dword_5063D8[i]; + v6 = dword_5063D8[v4]; + v23 = dword_5063D8[v4]; } else { - v23 = dword_506408[i]; - v6 = SpellTexture; + v23 = dword_506408[v4]; + v6 = v5; } if ( v6->pLevelOfDetail0_prolly_alpha_mask ) { - pY_pos = pViewport->uViewportTL_Y + pIconPos[player->lastOpenedSpellbookPage][pSpellbookSpellIndices[player->lastOpenedSpellbookPage][i]].Ypos; - pX_pos = pViewport->uViewportTL_X + pIconPos[player->lastOpenedSpellbookPage][pSpellbookSpellIndices[player->lastOpenedSpellbookPage][i]].Xpos; + v7 = player->lastOpenedSpellbookPage; + // v7 = (12 * v0->lastOpenedSpellbookPage + pSpellbookSpellIndices[v0->lastOpenedSpellbookPage][v4]); + v19 = pViewport->uViewportTL_Y + pIconPos[v7][pSpellbookSpellIndices[v7][v4]].Ypos; + v17 = pViewport->uViewportTL_X + pIconPos[v7][pSpellbookSpellIndices[v7][v4]].Xpos; if ( BYTE1(v6->pBits) & 2 ) - pRenderer->DrawTextureTransparent(pX_pos, pY_pos, v6); + pRenderer->DrawTextureTransparent(v17, v19, v6); else - pRenderer->DrawTextureIndexed(pX_pos, pY_pos, v6); - pRenderer->DrawMaskToZBuffer(pIconPos[player->lastOpenedSpellbookPage][pSpellbookSpellIndices[player->lastOpenedSpellbookPage][i]].Xpos, - pIconPos[player->lastOpenedSpellbookPage][pSpellbookSpellIndices[player->lastOpenedSpellbookPage][i]].Ypos, v23, i); + pRenderer->DrawTextureIndexed(v17, v19, v6); + pRenderer->DrawMaskToZBuffer(pIconPos[v7][pSpellbookSpellIndices[v7][v4]].Xpos, + pIconPos[v7][pSpellbookSpellIndices[v7][v4]].Ypos, v23, v4); } } } + ++v4; } + while ( v4 - 1 < 11 ); } - v10 = pRenderer->pActiveZBuffer[pMouse->GetCursorPos(&a2)->x + pSRZBufferLineOffsets[pMouse->GetCursorPos(&v24)->y]] & 0xFFFF; + /*v9 = */pMouse->GetCursorPos(&a2); + v10 = pRenderer->pActiveZBuffer[a2.x + pSRZBufferLineOffsets[a2.y]] & 0xFFFF; if ( v10 ) { - if ( dword_5063D8[v10]->pLevelOfDetail0_prolly_alpha_mask ) + v11 = dword_5063D8[v10]; + if ( v11->pLevelOfDetail0_prolly_alpha_mask ) { - v20 = pViewport->uViewportTL_Y + pIconPos[player->lastOpenedSpellbookPage][pSpellbookSpellIndices[player->lastOpenedSpellbookPage][v10]].Ypos; - v18 = pViewport->uViewportTL_X + pIconPos[player->lastOpenedSpellbookPage][pSpellbookSpellIndices[player->lastOpenedSpellbookPage][v10]].Xpos; - if ( BYTE1(dword_5063D8[v10]->pBits) & 2 ) - pRenderer->DrawTextureTransparent(v18, v20, dword_5063D8[v10]); + v21 = dword_5063D8[v10]; + v12 = player->lastOpenedSpellbookPage; + // v12 = (12 * v0->lastOpenedSpellbookPage + pSpellbookSpellIndices[v0->lastOpenedSpellbookPage][v10]); + v20 = pViewport->uViewportTL_Y + pIconPos[v12][pSpellbookSpellIndices[v12][v10]].Ypos; + v18 = pViewport->uViewportTL_X + pIconPos[v12][pSpellbookSpellIndices[v12][v10]].Xpos; + if ( BYTE1(v11->pBits) & 2 ) + pRenderer->DrawTextureTransparent(v18, v20, v21); else - pRenderer->DrawTextureIndexed(v18, v20, dword_5063D8[v10]); + pRenderer->DrawTextureIndexed(v18, v20, v21); } } - + v13 = 0; a2.x = (LONG)&player->pActiveSkills[12]; v14 = (unsigned int)&player->pActiveSkills[12]; v15 = (unsigned int)&player->pActiveSkills[12]; - for ( uint i = 0; i < 9; i++ ) + v25 = 0; + do { if ( *(short *)a2.x ) { - if ( player->lastOpenedSpellbookPage == i ) + if ( player->lastOpenedSpellbookPage == v13 ) { - pPageTexture = pTextures_tabs[i][1]; - v14=texture_tab_coord1[i][0]; - v15=texture_tab_coord1[i][1]; + pPageTexture = pTextures_tabs[v13][1]; + v14=texture_tab_coord1[v13][0]; + v15=texture_tab_coord1[v13][1]; } else { - pPageTexture = pTextures_tabs[i][0]; - v14=texture_tab_coord0[i][0]; - v15=texture_tab_coord0[i][1]; + pPageTexture = pTextures_tabs[v13][0]; + v14=texture_tab_coord0[v13][0]; + v15=texture_tab_coord0[v13][1]; } pRenderer->DrawTextureTransparent(v14, v15, pPageTexture); + v13 = v25; } a2.x += 2; + ++v13; + v25 = v13; } + while ( v13 < 9 ); } \ No newline at end of file