diff mm7_1.cpp @ 22:5c9930cc1959

18.01.13 (InventoryTab_Draw)
author Ritor1
date Fri, 18 Jan 2013 09:44:30 +0600
parents fe0d9a98213f
children 352b15291822
line wrap: on
line diff
--- a/mm7_1.cpp	Thu Jan 17 17:56:08 2013 +0600
+++ b/mm7_1.cpp	Fri Jan 18 09:44:30 2013 +0600
@@ -789,10 +789,10 @@
 //----- (0041A2D1) --------------------------------------------------------
 void __fastcall CharacterUI_InventoryTab_Draw(unsigned int uPlayerID, char a2)
 {
-  Player *v2; // esi@1
+  Player *pPlayer; // esi@1
   char v3; // bl@1
   unsigned int v4; // eax@2
-  ItemGen *v5; // ebx@5
+  ItemGen *pItem; // ebx@5
   unsigned int v6; // eax@6
   Texture *v7; // esi@6
   __int16 v8; // ax@6
@@ -805,48 +805,43 @@
   int v15; // eax@13
   unsigned int v16; // ebx@15
   unsigned int v17; // edi@15
-  Texture *v18; // ebx@24
+  Texture *pTexture; // ebx@24
   double v19; // st7@26
   const char *v20; // [sp-8h] [bp-40h]@20
-  Player *v21; // [sp+14h] [bp-24h]@1
+  Player *pPlayer2; // [sp+14h] [bp-24h]@1
   int uTextureId; // [sp+18h] [bp-20h]@6
   int *v23; // [sp+1Ch] [bp-1Ch]@1
   int v24; // [sp+20h] [bp-18h]@5
-  ItemGen *v25; // [sp+24h] [bp-14h]@5
+  ItemGen *pItem2; // [sp+24h] [bp-14h]@5
   int v26; // [sp+28h] [bp-10h]@3
   signed int v27; // [sp+2Ch] [bp-Ch]@3
   int a2a; // [sp+30h] [bp-8h]@5
   int a3; // [sp+34h] [bp-4h]@5
 
   v23 = pRenderer->pActiveZBuffer;
-  v2 = pPlayers[uPlayerID];
+  pPlayer = pPlayers[uPlayerID];
   v3 = a2;
-  v21 = pPlayers[uPlayerID];
-  pRenderer->DrawTextureIndexed(
-    8u,
-    8u,
-    (Texture *)(uTextureID_507958 != -1 ? (int)&pIcons_LOD->pTextures[uTextureID_507958] : 0));
+  pPlayer2 = pPlayers[uPlayerID];
+  pRenderer->DrawTextureIndexed(8, 8, (Texture *)(uTextureID_507958 != -1 ? (int)&pIcons_LOD->pTextures[uTextureID_507958] : 0));
   if ( v3 )
   {
     v4 = pIcons_LOD->LoadTexture("fr_strip", TEXTURE_16BIT_PALETTE);
     pRenderer->DrawTextureIndexed(8u, 0x131u, (Texture *)(v4 != -1 ? (int)&pIcons_LOD->pTextures[v4] : 0));
   }
   v27 = 0;
-  v26 = (int)v2->pInventoryIndices;
+  v26 = (int)pPlayer->pInventoryIndices;
   do
   {
     if ( *(int *)v26 > 0 )
     {
       v24 = *(int *)v26 - 1;
       a3 = 32 * v27 / 14 + 17;
-      v5 = &v2->pInventoryItems[v24];
+      pItem = &pPlayer->pInventoryItems[v24];
       a2a = 32 * v27 % 14 + 14;
-      v25 = v5;
-      if ( v5->uItemID )
-      {
-        v6 = pIcons_LOD->LoadTexture(
-               pItemsTable->pItems[v5->uItemID].pIconName,
-               TEXTURE_16BIT_PALETTE);
+      pItem2 = pItem;
+      if ( pItem->uItemID )
+      {
+        v6 = pIcons_LOD->LoadTexture(pItemsTable->pItems[pItem->uItemID].pIconName, TEXTURE_16BIT_PALETTE);
         uTextureId = v6;
         v7 = (Texture *)(v6 != -1 ? (int)&pIcons_LOD->pTextures[v6] : 0);
         v8 = (v6 != -1 ? pIcons_LOD->pTextures[v6].uTextureWidth : 24);
@@ -866,7 +861,7 @@
         v15 = v13 + 32;
         if ( v9 < 14 )
           v14 = 14;
-        v16 = v5->uAttributes;
+        v16 = pItem->uAttributes;
         v17 = a2a + ((v15 - v10) >> 1) + pSRZBufferLineOffsets[a3 + ((((v14 - 14) & 0xFFFFFFE0) - v9 + 32) >> 1)];
         if ( !(v16 & 0xF0) )
         {
@@ -882,45 +877,92 @@
           {
             pRenderer->DrawTransparentGreenShade(a2a, a3, v7);
           }
-          goto LABEL_33;
+          ZBuffer_Fill(&v23[v17], uTextureId, v24 + 1);
+          pPlayer = pPlayer2;
+          //goto LABEL_34;
+          ++v27;
+          v26 += 4;
+          break;
         }
         if ( (unsigned __int8)(v16 & 0xF0) != 16 )
         {
           if ( (unsigned __int8)(v16 & 0xF0) == 32 )
           {
             v20 = "sp28a";
-            goto LABEL_24;
+            pTexture = &pIcons_LOD->pTextures[pIcons_LOD->LoadTexture(v20, TEXTURE_16BIT_PALETTE)];
+            dword_50C9A8 -= pEventTimer->uTimeElapsed;
+            if ( dword_50C9A8 <= 0 )
+            {
+              dword_50C9A8 = 0;
+              LOBYTE(pItem2->uAttributes) &= 0xFu;
+              ptr_50C9A4 = 0;
+            }
+            v19 = (double)GetTickCount() * 0.1;
+            pRenderer->_4A63E6(a2a, a3, v7, pTexture, (signed __int64)v19, 0, 255);
+            ZBuffer_Fill(&v23[v17], uTextureId, v24 + 1);
+            pPlayer = pPlayer2;
+            //goto LABEL_34;
+            ++v27;
+            v26 += 4;
+            break;
           }
           if ( (unsigned __int8)(v16 & 0xF0) == 64 )
           {
             v20 = "sp30a";
-            goto LABEL_24;
-          }
-          if ( (unsigned __int8)(v16 & 0xF0) == 128 )
-          {
-            v20 = "sp91a";
-LABEL_24:
-            v18 = &pIcons_LOD->pTextures[pIcons_LOD->LoadTexture(v20, TEXTURE_16BIT_PALETTE)];
+            pTexture = &pIcons_LOD->pTextures[pIcons_LOD->LoadTexture(v20, TEXTURE_16BIT_PALETTE)];
             dword_50C9A8 -= pEventTimer->uTimeElapsed;
             if ( dword_50C9A8 <= 0 )
             {
               dword_50C9A8 = 0;
-              LOBYTE(v25->uAttributes) &= 0xFu;
+              LOBYTE(pItem2->uAttributes) &= 0xFu;
+              ptr_50C9A4 = 0;
+            }
+            v19 = (double)GetTickCount() * 0.1;
+            pRenderer->_4A63E6(a2a, a3, v7, pTexture, (signed __int64)v19, 0, 255);
+            ZBuffer_Fill(&v23[v17], uTextureId, v24 + 1);
+            pPlayer = pPlayer2;
+            //goto LABEL_34;
+            ++v27;
+            v26 += 4;
+            break;
+          }
+          if ( (unsigned __int8)(v16 & 0xF0) == 128 )
+          {
+            v20 = "sp91a";
+            pTexture = &pIcons_LOD->pTextures[pIcons_LOD->LoadTexture(v20, TEXTURE_16BIT_PALETTE)];
+            dword_50C9A8 -= pEventTimer->uTimeElapsed;
+            if ( dword_50C9A8 <= 0 )
+            {
+              dword_50C9A8 = 0;
+              LOBYTE(pItem2->uAttributes) &= 0xFu;
               ptr_50C9A4 = 0;
             }
             v19 = (double)GetTickCount() * 0.1;
-            pRenderer->_4A63E6(a2a, a3, v7, v18, (signed __int64)v19, 0, 255);
-LABEL_33:
+            pRenderer->_4A63E6(a2a, a3, v7, pTexture, (signed __int64)v19, 0, 255);
             ZBuffer_Fill(&v23[v17], uTextureId, v24 + 1);
-            v2 = v21;
-            goto LABEL_34;
+            pPlayer = pPlayer2;
+            //goto LABEL_34;
+            ++v27;
+            v26 += 4;
+            break;
           }
         }
         v20 = "sptext01";
-        goto LABEL_24;
-      }
-    }
-LABEL_34:
+        pTexture = &pIcons_LOD->pTextures[pIcons_LOD->LoadTexture(v20, TEXTURE_16BIT_PALETTE)];
+        dword_50C9A8 -= pEventTimer->uTimeElapsed;
+        if ( dword_50C9A8 <= 0 )
+        {
+          dword_50C9A8 = 0;
+          LOBYTE(pItem2->uAttributes) &= 0xFu;
+          ptr_50C9A4 = 0;
+        }
+        v19 = (double)GetTickCount() * 0.1;
+        pRenderer->_4A63E6(a2a, a3, v7, pTexture, (signed __int64)v19, 0, 255);
+        ZBuffer_Fill(&v23[v17], uTextureId, v24 + 1);
+        pPlayer = pPlayer2;
+      }
+    }
+//LABEL_34:
     ++v27;
     v26 += 4;
   }