changeset 26:34192c501dfe

Слияние
author Ritor1
date Fri, 18 Jan 2013 20:15:44 +0600
parents a32303569c42 (current diff) 352b15291822 (diff)
children 7fb7febacb46
files mm7_2.cpp
diffstat 9 files changed, 248 insertions(+), 553 deletions(-) [+]
line wrap: on
line diff
--- a/AIL.cpp	Fri Jan 18 20:15:30 2013 +0600
+++ b/AIL.cpp	Fri Jan 18 20:15:44 2013 +0600
@@ -238,7 +238,7 @@
 
 int __stdcall AIL_release_sample_handle(void *a1)
 {
- __asm int 3
+ //__asm int 3
  return 0;
 }
 
@@ -250,20 +250,20 @@
 
 int __stdcall AIL_close_3D_provider(HPROVIDER)
 {
- __asm int 3
+ //__asm int 3
  return 0;
 }
 
 int __stdcall AIL_redbook_close(HREDBOOK a1)
 {
- __asm int 3
+ //__asm int 3
  return 0;
 }
 
 // sub_4D8344: using guessed type int __stdcall AIL_shutdown();
 int __stdcall AIL_shutdown()
 {
- __asm int 3
+ //__asm int 3
  return 0;
 }
 
--- a/AudioPlayer.cpp	Fri Jan 18 20:15:30 2013 +0600
+++ b/AudioPlayer.cpp	Fri Jan 18 20:15:44 2013 +0600
@@ -737,6 +737,7 @@
   int v102; // [sp+90h] [bp+1Ch]@60
   int v103; // [sp+90h] [bp+1Ch]@68
 
+  uVolume = 120; //Ritor1:It's temporary
   pAudioPlayer = this;
   v35 = this->bPlayerReady == 0;
   //pAudioPlayer = this;
@@ -2099,7 +2100,7 @@
   char v4; // dl@5
   int v5; // ebx@6
   AudioPlayer_3DSample *p3DSample; // edi@7
-  int v7; // edx@14
+  //int v7; // edx@14
   int v8; // ecx@14
   void *v9; // ecx@15
 
@@ -2124,7 +2125,7 @@
     if ( ReadWindowsRegistryInt("Disable3DSound", 0) != 1 )
     {
       v5 = 0;
-      pAudioPlayer->CheckA3DSupport(v4);
+      pAudioPlayer->CheckA3DSupport(0);// pAudioPlayer->CheckA3DSupport(v4);
       if ( pAudioPlayer->uNum3DSamples > 0 )
       {
         p3DSample = pAudioPlayer->p3DSamples;
@@ -2146,10 +2147,11 @@
         pAudioPlayer->h3DSoundProvider = 0;
       }
     }
+    v8 = (int)&pAudioPlayer->hAILRedbook;
     if ( pAudioPlayer->hAILRedbook )
     {
       AIL_redbook_stop(pAudioPlayer->hAILRedbook);
-      AIL_redbook_set_volume((HREDBOOK)v8, v7);
+      AIL_redbook_set_volume((HREDBOOK)v8, pAudioPlayer->sRedbookVolume);
       AIL_redbook_close(pAudioPlayer->hAILRedbook);
     }
     AIL_shutdown();
@@ -2514,20 +2516,20 @@
 //----- (004A96BE) --------------------------------------------------------
 void ReleaseSoundData(void *_this)
 {
-  int v1; // esi@1
+  int pID; // esi@1
   char *v2; // eax@1
 
-  v1 = 0;
+  pID = 0;
   v2 = (char *)&pSounds[0].pSoundData;
   while ( *(void **)v2 != _this )
   {
     v2 += 128;
-    ++v1;
+    ++pID;
     if ( (signed int)v2 >= (signed int)&pAudioPlayer->p3DSamples[6].field_8 )
       return;
   }
   pAllocator->FreeChunk(_this);
-  memset(&pSounds[v1], 0, 0x80u);
+  memset(&pSounds[pID], 0, 0x80u);
 }
 
 //----- (004A96FF) --------------------------------------------------------
@@ -2639,7 +2641,10 @@
 
   FindSound_BinSearch(0, pAudioPlayer->uNumSoundHeaders, pSoundName_);
   if ( uFindSound_BinSearch_ResultID == -1 )
-    goto LABEL_22;
+  {
+    result = 0;
+    return result;
+  }
   v6 = &pAudioPlayer->pSoundHeaders[uFindSound_BinSearch_ResultID];
   pDecompressedSize = &v6->uDecompressedSize;
   v8 = v6->uDecompressedSize;
@@ -2684,7 +2689,7 @@
       while ( *(int *)v13 );
       uLastLoadedSoundID = v12;
     }
-    v16 = pSounds[v12].field_4;
+    v16 = pSounds[v12].SoundName;
     strcpy((char *)v16, pSoundName_);
     v14 = uLastLoadedSoundID++ << 7;
     pSoundList->uTotalLoadedSoundSize += v11;
@@ -2693,7 +2698,6 @@
   }
   else
   {
-LABEL_22:
     result = 0;
   }
   return result;
--- a/AudioPlayer.h	Fri Jan 18 20:15:30 2013 +0600
+++ b/AudioPlayer.h	Fri Jan 18 20:15:44 2013 +0600
@@ -271,7 +271,7 @@
 struct Sound
 {
   unsigned int uID;
-  char field_4[120];
+  char SoundName[120];
   SoundData *pSoundData;
 };
 #pragma pack(pop)
--- a/GUIFont.cpp	Fri Jan 18 20:15:30 2013 +0600
+++ b/GUIFont.cpp	Fri Jan 18 20:15:44 2013 +0600
@@ -624,37 +624,43 @@
 //----- (0044C51E) --------------------------------------------------------
 int GUIFont::GetLineWidth(const char *pString)
 {
-  GUIFont *v2; // edi@1
-  size_t v4; // ebp@3
+  GUIFont *pFont; // edi@1
+  size_t pNumLen; // ebp@3
   int v5; // esi@3
   signed int i; // ebx@3
   unsigned __int8 v7; // cl@4
-  const char *v8; // [sp+0h] [bp-4h]@1
+  const char *pStr; // [sp+0h] [bp-4h]@1
 
-  v8 = pString;
-  v2 = this;
-  if ( !pString )
+  pStr = pString;
+  pFont = this;
+  if ( !pString ) // == 0
     return 0;
-  v4 = strlen(pString);
+  pNumLen = strlen(pString);
   v5 = 0;
-  for ( i = 0; i < (signed int)v4; ++i )
+  for ( i = 0; i < (signed int)pNumLen; ++i )
   {
-    if ( IsCharValid(v7 = v8[i]) )
+    if ( IsCharValid(v7 = pStr[i]) )
     {
       if ( v7 < 9u )
-        goto LABEL_9;
+      {
+        if ( i > 0 )
+          v5 += pFont->pMetrics[v7].uLeftSpacing;
+        v5 += *((int *)&pFont->cFirstChar + 3 * v7 + 9);
+        if ( i < (signed int)pNumLen )
+          v5 += pFont->pMetrics[v7].uRightSpacing;
+        continue;
+      }
       if ( v7 <= 0xAu )
         return v5;
       if ( v7 != '\f' )
       {
         if ( v7 == '\r' )
           return v5;
-LABEL_9:
         if ( i > 0 )
-          v5 += v2->pMetrics[v7].uLeftSpacing;
-        v5 += *((int *)&v2->cFirstChar + 3 * v7 + 9);
-        if ( i < (signed int)v4 )
-          v5 += v2->pMetrics[v7].uRightSpacing;
+          v5 += pFont->pMetrics[v7].uLeftSpacing;
+        v5 += *((int *)&pFont->cFirstChar + 3 * v7 + 9);
+        if ( i < (signed int)pNumLen )
+          v5 += pFont->pMetrics[v7].uRightSpacing;
         continue;
       }
       i += 5;
--- a/GUIWindow.cpp	Fri Jan 18 20:15:30 2013 +0600
+++ b/GUIWindow.cpp	Fri Jan 18 20:15:44 2013 +0600
@@ -481,35 +481,13 @@
   if ( v1->ptr_1C == (void *)177 )
   {
     byte_506360 = 0;
-    pTexture_CurrentBook     = &pIcons_LOD->pTextures[pIcons_LOD->LoadTexture("lb_bordr", TEXTURE_16BIT_PALETTE)];
+    pTexture_CurrentBook = &pIcons_LOD->pTextures[pIcons_LOD->LoadTexture("lb_bordr", TEXTURE_16BIT_PALETTE)];
     pTexture_LloydBeacons[0] = &pIcons_LOD->pTextures[pIcons_LOD->LoadTexture("sbmap", TEXTURE_16BIT_PALETTE)];
-    pTexture_50635C          = &pIcons_LOD->pTextures[pIcons_LOD->LoadTexture("sbmap", TEXTURE_16BIT_PALETTE)];
+    pTexture_50635C = &pIcons_LOD->pTextures[pIcons_LOD->LoadTexture("sbmap", TEXTURE_16BIT_PALETTE)];
     pTex_tab_an_6b__zoom_on  = &pIcons_LOD->pTextures[pIcons_LOD->LoadTexture("tab-an-6b", TEXTURE_16BIT_PALETTE)];
     pTex_tab_an_6a__zoom_off = &pIcons_LOD->pTextures[pIcons_LOD->LoadTexture("tab-an-6a", TEXTURE_16BIT_PALETTE)];
-    pBtn_Book_1 = v1->CreateButton(
-                    415u,
-                    13u,
-                    39u,
-                    36u,
-                    1,
-                    0,
-                    0xB2u,
-                    0,
-                    0,
-                    pGlobalTXT_LocalizationStrings[375],
-                    0);
-    pBtn_Book_2 = v1->CreateButton(
-                    415u,
-                    48u,
-                    39u,
-                    36u,
-                    1,
-                    0,
-                    0xB2u,
-                    1u,
-                    0,
-                    pGlobalTXT_LocalizationStrings[523],
-                    0);
+    pBtn_Book_1 = v1->CreateButton(415, 13, 39, 36, 1, 0, 0xB2u, 0, 0, pGlobalTXT_LocalizationStrings[375], 0);
+    pBtn_Book_2 = v1->CreateButton(415, 48, 39, 36, 1, 0, 0xB2u, 1, 0, pGlobalTXT_LocalizationStrings[523], 0);
     v17 = &pParty->pPlayers[_506348_current_lloyd_playerid];
     v23 = 1;
     v18 = v17->pActiveSkills[14];
@@ -527,18 +505,7 @@
     {
       do
       {
-        v1->CreateButton(
-          pLloydsBeaconsPreviewXs[v19],
-          pLloydsBeaconsPreviewYs[v19],
-          0x5Cu,
-          0x44u,
-          1,
-          180,
-          0xB3u,
-          v19,
-          0,
-          "",
-          0);
+        v1->CreateButton(pLloydsBeaconsPreviewXs[v19], pLloydsBeaconsPreviewYs[v19], 0x5Cu, 0x44u, 1, 180, 0xB3u, v19, 0, "", 0);
         ++v19;
       }
       while ( (signed int)v19 < v23 );
@@ -560,28 +527,17 @@
   {
     if ( v1->ptr_1C == (void *)195 )
     {
-      pTexture_CurrentBook       = &pIcons_LOD->pTextures[pIcons_LOD->LoadTexture("townport", TEXTURE_16BIT_PALETTE)];
-      pTexture_TownPortalHarmn   = &pIcons_LOD->pTextures[pIcons_LOD->LoadTexture("tpharmndy", TEXTURE_16BIT_PALETTE)];
-      pTexture_TownPortalElf     = &pIcons_LOD->pTextures[pIcons_LOD->LoadTexture("tpelf", TEXTURE_16BIT_PALETTE)];
+      pTexture_CurrentBook = &pIcons_LOD->pTextures[pIcons_LOD->LoadTexture("townport", TEXTURE_16BIT_PALETTE)];
+      pTexture_TownPortalHarmn = &pIcons_LOD->pTextures[pIcons_LOD->LoadTexture("tpharmndy", TEXTURE_16BIT_PALETTE)];
+      pTexture_TownPortalElf = &pIcons_LOD->pTextures[pIcons_LOD->LoadTexture("tpelf", TEXTURE_16BIT_PALETTE)];
       pTexture_TownPortalWarlock = &pIcons_LOD->pTextures[pIcons_LOD->LoadTexture("tpwarlock", TEXTURE_16BIT_PALETTE)];
-      pTexture_TownPortalIsland  = &pIcons_LOD->pTextures[pIcons_LOD->LoadTexture("tpisland", TEXTURE_16BIT_PALETTE)];
-      pTexture_TownPortalHeaven  = &pIcons_LOD->pTextures[pIcons_LOD->LoadTexture("tpheaven", TEXTURE_16BIT_PALETTE)];
+      pTexture_TownPortalIsland = &pIcons_LOD->pTextures[pIcons_LOD->LoadTexture("tpisland", TEXTURE_16BIT_PALETTE)];
+      pTexture_TownPortalHeaven = &pIcons_LOD->pTextures[pIcons_LOD->LoadTexture("tpheaven", TEXTURE_16BIT_PALETTE)];
       v16 = 0;
-      pTexture_TownPortalHell    = &pIcons_LOD->pTextures[pIcons_LOD->LoadTexture( "tphell", TEXTURE_16BIT_PALETTE)];
+      pTexture_TownPortalHell = &pIcons_LOD->pTextures[pIcons_LOD->LoadTexture( "tphell", TEXTURE_16BIT_PALETTE)];
       do
       {
-        v1->CreateButton(
-          pTownPortalBook_xs[v16],
-          pTownPortalBook_ys[v16],
-          pTownPortalBook_ws[v16],
-          pTownPortalBook_hs[v16],
-          1,
-          182,
-          0xB7u,
-          v16,
-          0,
-          "",
-          0);
+        v1->CreateButton(pTownPortalBook_xs[v16], pTownPortalBook_ys[v16], pTownPortalBook_ws[v16], pTownPortalBook_hs[v16], 1, 182, 0xB7u, v16, 0, "", 0);
         ++v16;
       }
       while ( (signed int)v16 < 6 );
@@ -590,38 +546,18 @@
     {
       if ( v1->ptr_1C == (void *)200 )
       {
-        pTexture_CurrentBook     = &pIcons_LOD->pTextures[pIcons_LOD->LoadTexture( "sbquiknot", TEXTURE_16BIT_PALETTE)];
-        pTextures_5064A0[10]     = &pIcons_LOD->pTextures[pIcons_LOD->LoadTexture( "divbar", TEXTURE_16BIT_PALETTE)];
-        pTex_tab_an_6b__zoom_on  = &pIcons_LOD->pTextures[pIcons_LOD->LoadTexture("tab-an-6b", TEXTURE_16BIT_PALETTE)];
-        pTex_tab_an_7b__zoot_on  = &pIcons_LOD->pTextures[pIcons_LOD->LoadTexture("tab-an-7b", TEXTURE_16BIT_PALETTE)];
+        pTexture_CurrentBook = &pIcons_LOD->pTextures[pIcons_LOD->LoadTexture( "sbquiknot", TEXTURE_16BIT_PALETTE)];
+        pTextures_5064A0[10] = &pIcons_LOD->pTextures[pIcons_LOD->LoadTexture( "divbar", TEXTURE_16BIT_PALETTE)];
+        pTex_tab_an_6b__zoom_on = &pIcons_LOD->pTextures[pIcons_LOD->LoadTexture("tab-an-6b", TEXTURE_16BIT_PALETTE)];
+        pTex_tab_an_7b__zoot_on = &pIcons_LOD->pTextures[pIcons_LOD->LoadTexture("tab-an-7b", TEXTURE_16BIT_PALETTE)];
         pTex_tab_an_6a__zoom_off = &pIcons_LOD->pTextures[pIcons_LOD->LoadTexture("tab-an-6a", TEXTURE_16BIT_PALETTE)];
         pTex_tab_an_7a__zoot_off = &pIcons_LOD->pTextures[pIcons_LOD->LoadTexture("tab-an-7a", TEXTURE_16BIT_PALETTE)];
-        pBtn_Book_1 = v1->CreateButton(
-                        pViewport->uViewportX + 398,
-                        pViewport->uViewportY + 1,
-                        pTex_tab_an_6b__zoom_on->uTextureWidth,
-                        pTex_tab_an_6b__zoom_on->uTextureHeight,
-                        1,
-                        0,
-                        0x47u,
-                        0xBu,
-                        0,
-                        pGlobalTXT_LocalizationStrings[192],// "Scroll Up"
-                        pTex_tab_an_6b__zoom_on,
-                        0);
-        pBtn_Book_2 = v1->CreateButton(
-                        pViewport->uViewportX + 398,
-                        pViewport->uViewportY + 38,
-                        pTex_tab_an_7b__zoot_on->uTextureHeight,
-                        pTex_tab_an_7b__zoot_on->uTextureHeight,
-                        1,
-                        0,
-                        0x47u,
-                        0xAu,
-                        0,
-                        pGlobalTXT_LocalizationStrings[193],// "Scroll Down"
-                        pTex_tab_an_7b__zoot_on,
-                        0);
+        pBtn_Book_1 = v1->CreateButton(pViewport->uViewportX + 398, pViewport->uViewportY + 1, pTex_tab_an_6b__zoom_on->uTextureWidth,
+                        pTex_tab_an_6b__zoom_on->uTextureHeight, 1, 0, 0x47u, 0xBu, 0, pGlobalTXT_LocalizationStrings[192],// "Scroll Up"
+                        pTex_tab_an_6b__zoom_on, 0);
+        pBtn_Book_2 = v1->CreateButton(pViewport->uViewportX + 398, pViewport->uViewportY + 38, pTex_tab_an_7b__zoot_on->uTextureHeight,
+                        pTex_tab_an_7b__zoot_on->uTextureHeight, 1, 0, 0x47u, 0xAu, 0, pGlobalTXT_LocalizationStrings[193],// "Scroll Down"
+                        pTex_tab_an_7b__zoot_on, 0);
         dword_506520 = 0;
         memset(&pStru179, 0, 0xFA0u);
         for ( i = dword_506528; i < 512; ++i )
@@ -656,110 +592,22 @@
           pTexture_506370 = &pIcons_LOD->pTextures[pIcons_LOD->LoadTexture("tab-an-4a", TEXTURE_16BIT_PALETTE)];
           pTexture_50636C = &pIcons_LOD->pTextures[pIcons_LOD->LoadTexture("tab-an-8b", TEXTURE_16BIT_PALETTE)];
           pTexture_506368 = &pIcons_LOD->pTextures[pIcons_LOD->LoadTexture("tab-an-8a", TEXTURE_16BIT_PALETTE)];
-          pBtn_Book_1 = v1->CreateButton(
-                          pViewport->uViewportX + 398,
-                          pViewport->uViewportY + 1,
-                          0x32u,
-                          0x22u,
-                          1,
-                          0,
-                          0x47u,
-                          0xBu,
-                          0,
-                          pGlobalTXT_LocalizationStrings[193],
-                          pTex_tab_an_6b__zoom_on,
-                          0);
-          pBtn_Book_2 = v1->CreateButton(
-                          pViewport->uViewportX + 398,
-                          pViewport->uViewportY + 38,
-                          0x32u,
-                          0x22u,
-                          1,
-                          0,
-                          0x47u,
-                          0xAu,
-                          0,
-                          pGlobalTXT_LocalizationStrings[192],
-                          pTex_tab_an_7b__zoot_on,
-                          0);
-          pBtn_Book_3 = v1->CreateButton(
-                          pViewport->uViewportX + 398,
-                          pViewport->uViewportY + 113,
-                          0x32u,
-                          0x22u,
-                          1,
-                          0,
-                          0x47u,
-                          2u,
-                          0,
-                          pGlobalTXT_LocalizationStrings[85],// "Potion Notes"
-                          pTexture_506394,
-                          0);
-          pBtn_Book_4 = v1->CreateButton(
-                          pViewport->uViewportX + 399,
-                          pViewport->uViewportY + 150,
-                          0x32u,
-                          0x22u,
-                          1,
-                          0,
-                          0x47u,
-                          3u,
-                          0,
-                          pGlobalTXT_LocalizationStrings[137],// "Fountain Notes"
-                          pTexture_50638C,
-                          0);
-          pBtn_Book_5 = v1->CreateButton(
-                          pViewport->uViewportX + 397,
-                          pViewport->uViewportY + 188,
-                          0x32u,
-                          0x22u,
-                          1,
-                          0,
-                          0x47u,
-                          4u,
-                          0,
-                          pGlobalTXT_LocalizationStrings[8],// "Obelisk Notes"
-                          pTexture_506384,
-                          0);
-          pBtn_Book_6 = v1->CreateButton(
-                          pViewport->uViewportX + 397,
-                          pViewport->uViewportY + 226,
-                          0x32u,
-                          0x22u,
-                          1,
-                          0,
-                          0x47u,
-                          5u,
-                          0,
-                          pGlobalTXT_LocalizationStrings[141],// "Seer Notes"
-                          pTexture_50637C,
-                          0);
-          pBtn_Autonotes_Misc = v1->CreateButton(
-                                  pViewport->uViewportX + 397,
-                                  pViewport->uViewportY + 264,
-                                  0x32u,
-                                  0x22u,
-                                  1,
-                                  0,
-                                  0x47u,
-                                  6u,
-                                  0,
-                                  pGlobalTXT_LocalizationStrings[123],// "Miscellaneous Notes"
-                                  pTexture_506374,
-                                  0);
-          v9 = v1->CreateButton(
-                 pViewport->uViewportX + 397,
-                 pViewport->uViewportY + 302,
-                 0x32u,
-                 0x22u,
-                 1,
-                 0,
-                 0x47u,
-                 7u,
-                 0,
-                 pGlobalTXT_LocalizationStrings[662],// "Instructors"
-                 pTexture_50636C,
-                 0);
+          pBtn_Book_1 = v1->CreateButton(pViewport->uViewportX + 398, pViewport->uViewportY + 1, 0x32u, 0x22u, 1, 0, 0x47u, 0xBu, 0,
+                          pGlobalTXT_LocalizationStrings[193], pTex_tab_an_6b__zoom_on, 0);
+          pBtn_Book_2 = v1->CreateButton(pViewport->uViewportX + 398, pViewport->uViewportY + 38, 0x32u, 0x22u, 1, 0, 0x47u, 0xAu, 0,
+                          pGlobalTXT_LocalizationStrings[192], pTex_tab_an_7b__zoot_on, 0);
+          pBtn_Book_3 = v1->CreateButton(pViewport->uViewportX + 398, pViewport->uViewportY + 113, 0x32u, 0x22u, 1, 0, 0x47u, 2u, 0,
+                          pGlobalTXT_LocalizationStrings[85], pTexture_506394, 0);// "Potion Notes"
+          pBtn_Book_4 = v1->CreateButton(pViewport->uViewportX + 399, pViewport->uViewportY + 150, 0x32u, 0x22u, 1, 0, 0x47u, 3u, 0,
+                          pGlobalTXT_LocalizationStrings[137], pTexture_50638C, 0);// "Fountain Notes"
+          pBtn_Book_5 = v1->CreateButton(pViewport->uViewportX + 397, pViewport->uViewportY + 188, 0x32u, 0x22u, 1, 0, 0x47u, 4u, 0,
+                          pGlobalTXT_LocalizationStrings[8], pTexture_506384, 0);// "Obelisk Notes"
+          pBtn_Book_6 = v1->CreateButton(pViewport->uViewportX + 397, pViewport->uViewportY + 226, 0x32u, 0x22u, 1, 0, 0x47u, 5u, 0,
+                          pGlobalTXT_LocalizationStrings[141], pTexture_50637C, 0);// "Seer Notes"
+          pBtn_Autonotes_Misc = v1->CreateButton(pViewport->uViewportX + 397, pViewport->uViewportY + 264, 0x32u, 0x22u, 1, 0, 0x47u, 6u, 0,
+                                  pGlobalTXT_LocalizationStrings[123], pTexture_506374, 0);// "Miscellaneous Notes"
+          v9 = v1->CreateButton(pViewport->uViewportX + 397, pViewport->uViewportY + 302, 0x32u, 0x22u, 1, 0, 0x47u, 7u, 0,
+                 pGlobalTXT_LocalizationStrings[662], pTexture_50636C, 0);// "Instructors"
           v10 = dword_506528;
           pBtn_Autonotes_Instructors = v9;
           dword_506520 = 0;
@@ -785,9 +633,9 @@
           if ( v1->ptr_1C == (void *)202 )
           {
             dword_506364 = 1;
-            pTextures_5064A0[12]     = &pIcons_LOD->pTextures[pIcons_LOD->LoadTexture("sbmap", TEXTURE_16BIT_PALETTE)];
-            pTex_tab_an_6b__zoom_on  = &pIcons_LOD->pTextures[pIcons_LOD->LoadTexture("zoom-on", TEXTURE_16BIT_PALETTE)];
-            pTex_tab_an_7b__zoot_on  = &pIcons_LOD->pTextures[pIcons_LOD->LoadTexture("zoot-on", TEXTURE_16BIT_PALETTE)];
+            pTextures_5064A0[12] = &pIcons_LOD->pTextures[pIcons_LOD->LoadTexture("sbmap", TEXTURE_16BIT_PALETTE)];
+            pTex_tab_an_6b__zoom_on = &pIcons_LOD->pTextures[pIcons_LOD->LoadTexture("zoom-on", TEXTURE_16BIT_PALETTE)];
+            pTex_tab_an_7b__zoot_on = &pIcons_LOD->pTextures[pIcons_LOD->LoadTexture("zoot-on", TEXTURE_16BIT_PALETTE)];
             pTex_tab_an_6a__zoom_off = &pIcons_LOD->pTextures[pIcons_LOD->LoadTexture("zoom-off", TEXTURE_16BIT_PALETTE)];
             pTex_tab_an_7a__zoot_off = &pIcons_LOD->pTextures[pIcons_LOD->LoadTexture("zoot-off", TEXTURE_16BIT_PALETTE)];
             pTexture_506394 = &pIcons_LOD->pTextures[pIcons_LOD->LoadTexture("tabNon", TEXTURE_16BIT_PALETTE)];
@@ -798,84 +646,18 @@
             pTexture_506380 = &pIcons_LOD->pTextures[pIcons_LOD->LoadTexture("tabEoff", TEXTURE_16BIT_PALETTE)];
             pTexture_50637C = &pIcons_LOD->pTextures[pIcons_LOD->LoadTexture("tabWon", TEXTURE_16BIT_PALETTE)];
             pTexture_506378 = &pIcons_LOD->pTextures[pIcons_LOD->LoadTexture("tabWoff", TEXTURE_16BIT_PALETTE)];
-            pBtn_Book_1 = v1->CreateButton(
-                            pViewport->uViewportX + 398,
-                            pViewport->uViewportY + 1,
-                            0x32u,
-                            0x22u,
-                            1,
-                            0,
-                            0x47u,
-                            0,
-                            0,
-                            pGlobalTXT_LocalizationStrings[251],// "Zoom In"
-                            pTex_tab_an_6b__zoom_on,
-                            0);
-            pBtn_Book_2 = v1->CreateButton(
-                            pViewport->uViewportX + 398,
-                            pViewport->uViewportY + 38,
-                            0x32u,
-                            0x22u,
-                            1,
-                            0,
-                            0x47u,
-                            1u,
-                            0,
-                            pGlobalTXT_LocalizationStrings[252],// "Zoom Out"
-                            pTex_tab_an_7b__zoot_on,
-                            0);
-            pBtn_Book_3 = v1->CreateButton(
-                            pViewport->uViewportX + 397,
-                            pViewport->uViewportY + 113,
-                            0x32u,
-                            0x22u,
-                            1,
-                            0,
-                            0x47u,
-                            2u,
-                            0,
-                            pGlobalTXT_LocalizationStrings[192],// Scroll Up
-                            (Texture *)"",
-                            0);
-            pBtn_Book_4 = v1->CreateButton(
-                            pViewport->uViewportX + 397,
-                            pViewport->uViewportY + 150,
-                            0x32u,
-                            0x22u,
-                            1,
-                            0,
-                            0x47u,
-                            3u,
-                            0,
-                            pGlobalTXT_LocalizationStrings[193],// Scroll Down
-                            (Texture *)"",
-                            0);
-            pBtn_Book_5 = v1->CreateButton(
-                            pViewport->uViewportX + 397,
-                            pViewport->uViewportY + 188,
-                            0x32u,
-                            0x22u,
-                            1,
-                            0,
-                            0x47u,
-                            4u,
-                            0,
-                            pGlobalTXT_LocalizationStrings[573],// "Scroll Right"
-                            (Texture *)"",
-                            0);
-            pBtn_Book_6 = v1->CreateButton(
-                            pViewport->uViewportX + 397,
-                            pViewport->uViewportY + 226,
-                            0x32u,
-                            0x22u,
-                            1,
-                            0,
-                            0x47u,
-                            5u,
-                            0,
-                            pGlobalTXT_LocalizationStrings[572],// "Scroll Left"
-                            (Texture *)"",
-                            0);
+            pBtn_Book_1 = v1->CreateButton(pViewport->uViewportX + 398, pViewport->uViewportY + 1, 0x32u, 0x22u, 1, 0, 0x47u, 0, 0,
+                            pGlobalTXT_LocalizationStrings[251], pTex_tab_an_6b__zoom_on, 0);// "Zoom In"
+            pBtn_Book_2 = v1->CreateButton(pViewport->uViewportX + 398, pViewport->uViewportY + 38, 0x32u, 0x22u, 1, 0, 0x47u, 1, 0,
+                            pGlobalTXT_LocalizationStrings[252], pTex_tab_an_7b__zoot_on, 0);// "Zoom Out"
+            pBtn_Book_3 = v1->CreateButton(pViewport->uViewportX + 397, pViewport->uViewportY + 113, 0x32u, 0x22u, 1, 0, 0x47u, 2, 0,
+                            pGlobalTXT_LocalizationStrings[192], (Texture *)"", 0);// Scroll Up
+            pBtn_Book_4 = v1->CreateButton(pViewport->uViewportX + 397, pViewport->uViewportY + 150, 0x32u, 0x22u, 1, 0, 0x47u, 3, 0,
+                            pGlobalTXT_LocalizationStrings[193], (Texture *)"", 0);// Scroll Down
+            pBtn_Book_5 = v1->CreateButton(pViewport->uViewportX + 397, pViewport->uViewportY + 188, 0x32u, 0x22u, 1, 0, 0x47u, 4, 0,
+                            pGlobalTXT_LocalizationStrings[573], (Texture *)"", 0);// "Scroll Right"
+            pBtn_Book_6 = v1->CreateButton(pViewport->uViewportX + 397, pViewport->uViewportY + 226, 0x32u, 0x22u, 1, 0, 0x47u, 5, 0,
+                            pGlobalTXT_LocalizationStrings[572], (Texture *)"", 0);// "Scroll Left"
             return;
           }
           if ( v1->ptr_1C == (void *)203 )
@@ -964,7 +746,7 @@
               v22 += 12;
               ++v3;
               ++v24;
-              __debugbreak(); // fix condition
+              //__debugbreak(); // fix condition
             }
             while ( (signed int)v22 < (signed int)&pFactionTable->relations + 8 );
           }
@@ -1766,8 +1548,8 @@
 //----- (0044CB4F) --------------------------------------------------------
 int GUIWindow::DrawTextInRect(GUIFont *a2, unsigned int uX, unsigned int uY, unsigned int uColor, const char *Str1, int Source, int a8)
 {
-  GUIFont *v8; // edi@1
-  int v9; // ebx@1
+  GUIFont *pFont; // edi@1
+  int pLineWidth; // ebx@1
   int v11; // esi@3
   unsigned __int8 v12; // cl@7
   signed int v13; // esi@19
@@ -1787,37 +1569,44 @@
   char v27; // [sp+11h] [bp-1Bh]@35
   int v28; // [sp+20h] [bp-Ch]@17
   GUIWindow *pWindow; // [sp+24h] [bp-8h]@1
-  size_t v30; // [sp+28h] [bp-4h]@1
+  size_t pNumLen; // [sp+28h] [bp-4h]@1
   size_t Str1a; // [sp+40h] [bp+14h]@5
   size_t Str1b; // [sp+40h] [bp+14h]@19
   const char *Sourcea; // [sp+44h] [bp+18h]@20
   int v34; // [sp+48h] [bp+1Ch]@26
 
-  v8 = a2;
+  pFont = a2;
   pWindow = this;
-  v30 = strlen(Str1);
-  v9 = v8->GetLineWidth(Str1);
-  if ( v9 < Source )
+  pNumLen = strlen(Str1);
+  pLineWidth = pFont->GetLineWidth(Str1);
+  if ( pLineWidth < Source )
   {
-    pWindow->DrawText(v8, uX, uY, uColor, Str1, 0, 0, 0);
-    return v9;
+    pWindow->DrawText(pFont, uX, uY, uColor, Str1, 0, 0, 0);
+    return pLineWidth;
   }
   strcpy(pTmpBuf2, Str1);
   v11 = 0;
   if ( a8 )
     _strrev(pTmpBuf2);
   Str1a = 0;
-  if ( (signed int)v30 > 0 )
+  if ( (signed int)pNumLen > 0 )
   {
     do
     {
       if ( v11 >= Source )
         break;
-      if ( v8->IsCharValid(pTmpBuf2[Str1a]) )
+      if ( pFont->IsCharValid(v12 = pTmpBuf2[Str1a]) )
       {
         if ( v12 < 9u )
-          goto LABEL_12;
-        if ( v12 > 0xAu )
+        {
+          if ( (signed int)Str1a > 0 )
+            v11 += pFont->pMetrics[v12].uLeftSpacing;
+          v11 += *((int *)&pFont->cFirstChar + 3 * v12 + 9);
+          if ( (signed int)Str1a < (signed int)pNumLen )
+            v11 += pFont->pMetrics[v12].uRightSpacing;
+          goto LABEL_16;
+        }
+        if ( v12 > 0xAu )//10
         {
           if ( v12 == 12 )
           {
@@ -1827,13 +1616,11 @@
           {
             if ( v12 != 13 )
             {
-LABEL_12:
               if ( (signed int)Str1a > 0 )
-                v11 += v8->pMetrics[v12].uLeftSpacing;
-              v11 += *((int *)&v8->cFirstChar + 3 * v12 + 9);
-              if ( (signed int)Str1a < (signed int)v30 )
-                v11 += v8->pMetrics[v12].uRightSpacing;
-              goto LABEL_16;
+                v11 += pFont->pMetrics[v12].uLeftSpacing;
+              v11 += *((int *)&pFont->cFirstChar + 3 * v12 + 9);
+              if ( (signed int)Str1a < (signed int)pNumLen )
+                v11 += pFont->pMetrics[v12].uRightSpacing;
             }
           }
         }
@@ -1841,76 +1628,61 @@
 LABEL_16:
       ++Str1a;
     }
-    while ( (signed int)Str1a < (signed int)v30 );
+    while ( (signed int)Str1a < (signed int)pNumLen );
   }
   pTmpBuf[Str1a + 1999] = 0;
-  v30 = strlen(pTmpBuf2);
-  v28 = v8->GetLineWidth(pTmpBuf2);
+  pNumLen = strlen(pTmpBuf2);
+  v28 = pFont->GetLineWidth(pTmpBuf2);
   if ( a8 )
     _strrev(pTmpBuf2);
   Str1b = 0;
   v13 = uX + pWindow->uFrameX;
   v14 = uY + pWindow->uFrameY;
-  if ( (signed int)v30 > 0 )
+  if ( (signed int)pNumLen > 0 )
   {
     Sourcea = &pTmpBuf2[1];
     do
     {
-      if ( v8->IsCharValid(pTmpBuf2[Str1b]) )
+      if ( pFont->IsCharValid(v15 = pTmpBuf2[Str1b]) )
       {
         v16 = v15;
         v17 = v15 - 9;
-        if ( v17 )
+        if ( v17 )//>0
         {
           v18 = v17 - 1;
-          if ( v18 )
+          if ( v18 )//>0
           {
             v19 = v18 - 2;
-            if ( v19 )
+            if ( v19 )//>0
             {
-              if ( v19 == 1 )
+              if ( v19 == 1 )//v15 == 13
               {
                 strncpy(&Str, Sourcea, 3u);
                 v26 = 0;
                 Str1b += 3;
                 Sourcea += 3;
                 v22 = atoi(&Str);
-                v23 = v8->GetLineWidth(&pTmpBuf2[Str1b]);
+                v23 = pFont->GetLineWidth(&pTmpBuf2[Str1b]);
                 v13 = pWindow->uFrameZ - v23 - v22;
                 v14 = uY;
               }
-              else
+              else//v15 > 13
               {
-                v20 = *((int *)&v8->cFirstChar + 3 * v16 + 9);
-                v34 = *((int *)&v8->cFirstChar + 3 * v16 + 9);
+                v20 = *((int *)&pFont->cFirstChar + 3 * v16 + 9);
+                v34 = *((int *)&pFont->cFirstChar + 3 * v16 + 9);
                 if ( (signed int)Str1b > 0 )
-                  v13 += v8->pMetrics[v16].uLeftSpacing;
-                v21 = (int)((char *)&v8[1] + v8->field_C20[v16]);
+                  v13 += pFont->pMetrics[v16].uLeftSpacing;
+                v21 = (int)((char *)&pFont[1] + pFont->field_C20[v16]);
                 if ( (short)uColor )
-                  pRenderer->DrawText(
-                    v13,
-                    v14,
-                    (unsigned __int8 *)v21,
-                    v20,
-                    LOBYTE(v8->uFontHeight),
-                    v8->pFontPalettes[0],
-                    uColor,
-                    0);
+                  pRenderer->DrawText(v13, v14, (unsigned __int8 *)v21, v20, LOBYTE(pFont->uFontHeight), pFont->pFontPalettes[0], uColor, 0);
                 else
-                  pRenderer->DrawTextPalette(
-                    v13,
-                    v14,
-                    v21,
-                    v20,
-                    LOBYTE(v8->uFontHeight),
-                    v8->pFontPalettes[0],
-                    0);
+                  pRenderer->DrawTextPalette(v13, v14, v21, v20, LOBYTE(pFont->uFontHeight), pFont->pFontPalettes[0], 0);
                 v13 += v34;
-                if ( (signed int)Str1b < (signed int)v30 )
-                  v13 += v8->pMetrics[(unsigned __int8)pTmpBuf2[Str1b]].uRightSpacing;
+                if ( (signed int)Str1b < (signed int)pNumLen )
+                  v13 += pFont->pMetrics[(unsigned __int8)pTmpBuf2[Str1b]].uRightSpacing;
               }
             }
-            else
+            else//v15 == 12
             {
               strncpy(&Str, Sourcea, 5u);
               v27 = 0;
@@ -1919,15 +1691,15 @@
               uColor = atoi(&Str);
             }
           }
-          else
+          else//v15 == 10
           {
-            v24 = LOBYTE(v8->uFontHeight);
+            v24 = LOBYTE(pFont->uFontHeight);
             v13 = uX;
             uY = uY + v24 - 3;
             v14 = v24 + uY - 3;
           }
         }
-        else
+        else//v15 == 9
         {
           strncpy(&Str, Sourcea, 3u);
           v26 = 0;
@@ -1939,7 +1711,7 @@
       ++Str1b;
       ++Sourcea;
     }
-    while ( (signed int)Str1b < (signed int)v30 );
+    while ( (signed int)Str1b < (signed int)pNumLen );
   }
   return v28;
 }
--- a/Player.cpp	Fri Jan 18 20:15:30 2013 +0600
+++ b/Player.cpp	Fri Jan 18 20:15:44 2013 +0600
@@ -628,7 +628,7 @@
             + 4998;
         v12 = 8 * pPlayerNum + 312;
         LOBYTE(v12) = v12 | 4;
-        pAudioPlayer->PlaySound((SoundID)pSoundId, v12, 0, -1, 0, 0, (signed __int64)(pSoundVolumeLevels[(char)uVoicesVolumeMultiplier] * 128.0), 0);
+        pAudioPlayer->PlaySound((SoundID)pSoundId, v12, 0, -1, 0, 0, (pSoundVolumeLevels[uVoicesVolumeMultiplier] * 128.0), 0);
       }
     }
   }
--- a/mm7_1.cpp	Fri Jan 18 20:15:30 2013 +0600
+++ b/mm7_1.cpp	Fri Jan 18 20:15:44 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;
   }
@@ -1005,24 +1047,10 @@
     pPlayer = &pParty->pPlayers[v43];
     v44 = 94 * v43 + 89;
     if ( v43 == v0 )
-      pGUIWindow_CurrentMenu->DrawTextInRect(
-        pFontArrus,
-        0x16u,
-        0x12u,
-        v0,
-        pGlobalTXT_LocalizationStrings[149],
-        60,
-        v0);
+      pGUIWindow_CurrentMenu->DrawTextInRect(pFontArrus, 0x16u, 0x12u, v0, pGlobalTXT_LocalizationStrings[149], 60, v0);//Name
     pGUIWindow_CurrentMenu->DrawTextInRect(pFontArrus, 94 * v43 + 89, 0x12u, v47, pPlayer->pName, 84, v0);
     if ( v43 == v0 )
-      pGUIWindow_CurrentMenu->DrawTextInRect(
-        pFontArrus,
-        0x16u,
-        0x2Fu,
-        v0,
-        pGlobalTXT_LocalizationStrings[131],
-        60,
-        v0);
+      pGUIWindow_CurrentMenu->DrawTextInRect(pFontArrus, 0x16u, 0x2Fu, v0, pGlobalTXT_LocalizationStrings[131], 60, v0); //.
     v3 = pPlayer->GetActualLevel();
     sprintf(pTmpBuf, "%lu", v3);
     v4 = pPlayer->GetBaseLevel();
@@ -1033,53 +1061,25 @@
     pGUIWindow_CurrentMenu->DrawTextInRect(pFontArrus, v44, 0x2Fu, v5, pTmpBuf, 84, v0);
     v6 = v45 + 47;
     if ( v43 == v0 )
-      pGUIWindow_CurrentMenu->DrawTextInRect(
-        pFontArrus,
-        0x16u,
-        v45 + 47,
-        v0,
-        pGlobalTXT_LocalizationStrings[41],
-        60,
-        v0);
+      pGUIWindow_CurrentMenu->DrawTextInRect(pFontArrus, 0x16u, v45 + 47, v0, pGlobalTXT_LocalizationStrings[41], 60, v0);//
     pGUIWindow_CurrentMenu->DrawTextInRect(pFontArrus, v44, v6, v0, pClassNames[pPlayer->uClass], 84, v0);
     v7 = v45 + v6;
     if ( v43 == v0 )
-      pGUIWindow_CurrentMenu->DrawTextInRect(
-        pFontArrus,
-        0x16u,
-        v7,
-        v0,
-        pGlobalTXT_LocalizationStrings[107],
-        60,
-        v0);
+      pGUIWindow_CurrentMenu->DrawTextInRect(pFontArrus, 0x16u, v7, v0, pGlobalTXT_LocalizationStrings[107], 60, v0);//.
     sprintf(pTmpBuf, "%d", pPlayer->sHealth);
     v8 = pPlayer->GetMaxHealth();
     v9 = UI_GetHealthManaStringColor(pPlayer->sHealth, v8);
     pGUIWindow_CurrentMenu->DrawTextInRect(pFontArrus, v44, v7, v9, pTmpBuf, 84, v0);
     v10 = v45 + v7;
     if ( v43 == v0 )
-      pGUIWindow_CurrentMenu->DrawTextInRect(
-        pFontArrus,
-        0x16u,
-        v10,
-        v0,
-        pGlobalTXT_LocalizationStrings[209],
-        60,
-        v0);
+      pGUIWindow_CurrentMenu->DrawTextInRect(pFontArrus, 0x16u, v10, v0, pGlobalTXT_LocalizationStrings[209], 60, v0);//
     sprintf(pTmpBuf, "%d", pPlayer->sMana);
     v11 = pPlayer->GetMaxMana();
     v12 = UI_GetHealthManaStringColor(pPlayer->sMana, v11);
     pGUIWindow_CurrentMenu->DrawTextInRect(pFontArrus, v44, v10, v12, pTmpBuf, 84, v0);
     v13 = v45 + v10;
     if ( v43 == v0 )
-      pGUIWindow_CurrentMenu->DrawTextInRect(
-        pFontArrus,
-        0x16u,
-        v13,
-        v0,
-        pGlobalTXT_LocalizationStrings[0],
-        60,
-        v0);
+      pGUIWindow_CurrentMenu->DrawTextInRect(pFontArrus, 0x16u, v13, v0, pGlobalTXT_LocalizationStrings[0], 60, v0);// 
     v14 = pPlayer->GetActualAC();
     sprintf(pTmpBuf, "%d", v14);
     v15 = v0;
@@ -1090,64 +1090,29 @@
     v0 = 0;
     v19 = v45 + v13;
     if ( !v43 )
-      pGUIWindow_CurrentMenu->DrawTextInRect(
-        pFontArrus,
-        0x16u,
-        v19,
-        0,
-        pGlobalTXT_LocalizationStrings[18],
-        60,
-        0);
+      pGUIWindow_CurrentMenu->DrawTextInRect(pFontArrus, 0x16u, v19, 0, pGlobalTXT_LocalizationStrings[18], 60, 0);//
     v20 = pPlayer->GetActualAttack(0);
     sprintf(pTmpBuf, "%+d", v20);
     pGUIWindow_CurrentMenu->DrawTextInRect(pFontArrus, v44, v19, 0, pTmpBuf, 84, 0);
     v21 = v45 + v19;
     if ( !v43 )
-      pGUIWindow_CurrentMenu->DrawTextInRect(
-        pFontArrus,
-        0x16u,
-        v21,
-        0,
-        pGlobalTXT_LocalizationStrings[66],
-        60,
-        0);
+      pGUIWindow_CurrentMenu->DrawTextInRect(pFontArrus, 0x16u, v21, 0, pGlobalTXT_LocalizationStrings[66], 60, 0);//.
     v22 = pPlayer->GetMeleeDamageString();
     pGUIWindow_CurrentMenu->DrawTextInRect(pFontArrus, v44, v21, 0, v22, 84, 0);
     v23 = v45 + v21;
     if ( !v43 )
-      pGUIWindow_CurrentMenu->DrawTextInRect(
-        pFontArrus,
-        0x16u,
-        v23,
-        0,
-        pGlobalTXT_LocalizationStrings[203],
-        60,
-        0);
+      pGUIWindow_CurrentMenu->DrawTextInRect(pFontArrus, 0x16u, v23, 0, pGlobalTXT_LocalizationStrings[203], 60, 0);// 
     v24 = pPlayer->GetRangedAttack();
     sprintf(pTmpBuf, "%+d", v24);
     pGUIWindow_CurrentMenu->DrawTextInRect(pFontArrus, v44, v23, 0, pTmpBuf, 84, 0);
     v25 = v45 + v23;
     if ( !v43 )
-      pGUIWindow_CurrentMenu->DrawTextInRect(
-        pFontArrus,
-        0x16u,
-        v25,
-        0,
-        pGlobalTXT_LocalizationStrings[66],
-        60,
-        0);
+      pGUIWindow_CurrentMenu->DrawTextInRect(pFontArrus, 0x16u, v25, 0, pGlobalTXT_LocalizationStrings[66], 60, 0);//.
     v26 = pPlayer->GetRangedDamageString();
     pGUIWindow_CurrentMenu->DrawTextInRect(pFontArrus, v44, v25, 0, v26, 84, 0);
     v27 = v45 + v25;
     if ( !v43 )
-      pGUIWindow_CurrentMenu->DrawTextInRect(
-        pFontArrus,
-        0x16u,
-        v27,
-        0,
-        pGlobalTXT_LocalizationStrings[205],
-        60,
-        0);
+      pGUIWindow_CurrentMenu->DrawTextInRect(pFontArrus, 0x16u, v27, 0, pGlobalTXT_LocalizationStrings[205], 60, 0);//
     v28 = 0;
     v29 = (char *)pPlayer->pActiveSkills;
     v30 = 36;
@@ -1163,52 +1128,24 @@
     pGUIWindow_CurrentMenu->DrawTextInRect(pFontArrus, v44, v27, 0, pTmpBuf, 84, 0);
     v31 = v45 + v27;
     if ( !v43 )
-      pGUIWindow_CurrentMenu->DrawTextInRect(
-        pFontArrus,
-        0x16u,
-        v31,
-        0,
-        pGlobalTXT_LocalizationStrings[168],
-        60,
-        0);
+      pGUIWindow_CurrentMenu->DrawTextInRect(pFontArrus, 0x16u, v31, 0, pGlobalTXT_LocalizationStrings[168], 60, 0);//
     sprintf(pTmpBuf, "%lu", pPlayer->uSkillPoints);
-    pGUIWindow_CurrentMenu->DrawTextInRect(
-      pFontArrus,
-      v44,
-      v31,
-      pPlayer->uSkillPoints != 0 ? v46 : 0,
-      pTmpBuf,
-      84,
-      0);
+    pGUIWindow_CurrentMenu->DrawTextInRect(pFontArrus, v44, v31, pPlayer->uSkillPoints != 0 ? v46 : 0, pTmpBuf, 84, 0);
     v32 = v45 + v31;
     v48 = pPlayer->GetMajorConditionIdx();
     if ( !v43 )
-      pGUIWindow_CurrentMenu->DrawTextInRect(
-        pFontArrus,
-        0x16u,
-        v32,
-        0,
-        pGlobalTXT_LocalizationStrings[45],
-        60,
-        0);
+      pGUIWindow_CurrentMenu->DrawTextInRect(pFontArrus, 0x16u, v32, 0, pGlobalTXT_LocalizationStrings[45], 60, 0);//.
     v33 = aCharacterConditionNames[v48];
     v34 = GetConditionDrawColor(v48);
     pGUIWindow_CurrentMenu->DrawTextInRect(pFontArrus, v44, v32, v34, v33, 84, 0);
     v35 = v45 + v32;
     if ( !v43 )
-      pGUIWindow_CurrentMenu->DrawTextInRect(
-        pFontArrus,
-        0x16u,
-        v35,
-        0,
-        pGlobalTXT_LocalizationStrings[170],
-        60,
-        0);
+      pGUIWindow_CurrentMenu->DrawTextInRect(pFontArrus, 0x16u, v35, 0, pGlobalTXT_LocalizationStrings[170], 60, 0);//..
     v36 = pPlayer->uQuickSpell;
     if ( v36 )
       v37 = pSpellStats->pInfos[v36].pShortName;
     else
-      v37 = pGlobalTXT_LocalizationStrings[153];
+      v37 = pGlobalTXT_LocalizationStrings[153];//
     pGUIWindow_CurrentMenu->DrawTextInRect(pFontArrus, v44, v35, 0, v37, 84, 0);
     ++v43;
   }
@@ -1225,10 +1162,10 @@
     v39 = v46;
   }
   v40 = GetReputationString(v38);
-  sprintf(pTmpBuf, "%s: ", pGlobalTXT_LocalizationStrings[180], v39, v40);
+  sprintf(pTmpBuf, "%s: ", pGlobalTXT_LocalizationStrings[180], v39, v40);//Reputation
   pGUIWindow_CurrentMenu->DrawText(pFontArrus, 22, 323, 0, pTmpBuf, 0, 0, 0);
   v41 = pParty->GetPartyFame();
-  sprintf(pTmpBuf, "\r261%s: %d", pGlobalTXT_LocalizationStrings[84], v41);// Fame
+  sprintf(pTmpBuf, "\r261%s: %d", pGlobalTXT_LocalizationStrings[84], v41);// Fame 
   return pGUIWindow_CurrentMenu->DrawText(pFontArrus, 0, 323, 0, pTmpBuf, 0, 0, 0);
 }
 
@@ -4677,9 +4614,7 @@
     }
     while ( v23 < v21 * v19 );
   }
-  pRenderer->DrawTextureIndexed(
-    pBtn_ExitCancel->uX,
-    pBtn_ExitCancel->uY,
+  pRenderer->DrawTextureIndexed(pBtn_ExitCancel->uX, pBtn_ExitCancel->uY,
     (Texture *)(uTextureID_506438 != -1 ? (int)&pIcons_LOD->pTextures[uTextureID_506438] : 0));
 }
 
--- a/mm7_2.cpp	Fri Jan 18 20:15:30 2013 +0600
+++ b/mm7_2.cpp	Fri Jan 18 20:15:44 2013 +0600
@@ -3150,19 +3150,8 @@
   uDialogueType = 83;
   pDialogueWindow->Release();
   pDialogueWindow = GUIWindow::Create(0, 0, 640, 350, WINDOW_MainMenu, 0, 0);
-  pBtn_ExitCancel = pDialogueWindow->CreateButton(
-                 471u,
-                 445u,
-                 169u,
-                 35u,
-                 1,
-                 0,
-                 0x71u,
-                 0,
-                 0,
-                 pGlobalTXT_LocalizationStrings[34],// "Cancel"
-                 (Texture *)(uTextureID_506438 != -1 ? &pIcons_LOD->pTextures[uTextureID_506438] : 0),
-                 0);
+  pBtn_ExitCancel = pDialogueWindow->CreateButton(471u, 445u, 169u, 35u, 1, 0, 0x71u, 0, 0, pGlobalTXT_LocalizationStrings[34],// "Cancel"
+                 (Texture *)(uTextureID_506438 != -1 ? &pIcons_LOD->pTextures[uTextureID_506438] : 0), 0);
   pDialogueWindow->CreateButton(0, 0, 0, 0, 1, 0, 0x51u, 0, 0, "", 0);
   pDialogueWindow->CreateButton(480u, 160u, 140u, 30u, 1, 0, 0, 0x53u, 0, "", 0);
   pDialogueWindow->_41D08F(1, 1, 0, 2);
@@ -3303,19 +3292,8 @@
     pDialogueWindow->pControlsHead = 0;
     pDialogueWindow->pControlsTail = 0;
     pDialogueWindow->uNumControls = 0;
-    pBtn_ExitCancel = pDialogueWindow->CreateButton(
-                   0x1D7u,
-                   0x1BDu,
-                   0xA9u,
-                   0x23u,
-                   1,
-                   0,
-                   0x71u,
-                   0,
-                   0,
-                   pGlobalTXT_LocalizationStrings[79],
-                   (Texture *)(uTextureID_506438 != -1 ? (int)&pIcons_LOD->pTextures[uTextureID_506438] : 0),
-                   0);
+    pBtn_ExitCancel = pDialogueWindow->CreateButton(0x1D7u, 0x1BDu, 0xA9u, 0x23u, 1, 0, 0x71u, 0, 0, pGlobalTXT_LocalizationStrings[79],
+                   (Texture *)(uTextureID_506438 != -1 ? (int)&pIcons_LOD->pTextures[uTextureID_506438] : 0), 0);
     pDialogueWindow->CreateButton(0x1E0u, 0xA0u, 0x8Cu, 0x1Eu, 1, 0, 0x88u, 0x55u, 0, "", 0);
     pDialogueWindow->CreateButton(0x1E0u, 0xBEu, 0x8Cu, 0x1Eu, 1, 0, 0x88u, 0x56u, 0, "", 0);
     pDialogueWindow->CreateButton(0x1E0u, 0xDCu, 0x8Cu, 0x1Eu, 1, 0, 0x88u, 0x57u, 0, "", 0);
--- a/mm7_5.cpp	Fri Jan 18 20:15:30 2013 +0600
+++ b/mm7_5.cpp	Fri Jan 18 20:15:44 2013 +0600
@@ -3226,7 +3226,7 @@
           papredoll_dbrds[2] = pIcons_LOD->LoadTexture("BUTTEXI1", TEXTURE_16BIT_PALETTE);
           pBtn_ExitCancel = pGUIWindow_CurrentMenu->CreateButton(0x187u, 0x13Cu, 0x4Bu, 0x21u, v0, 0, 0x71u, 0, 0,
                          pGlobalTXT_LocalizationStrings[79],// "Exit"
-                         (Texture *)(uTextureID_BUTTDESC2 != -1 ? (int)&pIcons_LOD->pTextures[uTextureID_BUTTDESC2] : 0), 0, v179);
+                         (Texture *)(uTextureID_BUTTDESC2 != -1 ? (int)&pIcons_LOD->pTextures[uTextureID_BUTTDESC2] : 0), 0); //, v179);
           continue;
         case 0x6B:
           if ( pCurrentScreen )
@@ -12564,7 +12564,7 @@
 //----- (0040F82D) --------------------------------------------------------
 void __fastcall ZBuffer_Fill(int *pZBuffer, int uTextureId, int iZValue)
 {
-  ZBuffer_DoFill(pZBuffer, (Texture *)(uTextureId != -1 ? 72 * uTextureId + 0x6D084C : 0), iZValue);
+  ZBuffer_DoFill(pZBuffer, (Texture *)(uTextureId != -1 ? (int)&pIcons_LOD->pTextures[uTextureId] : 0), iZValue);
 }
 
 //----- (0040F845) --------------------------------------------------------