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