changeset 1496:ab6bf38b2940

UIGame.cpp cleaning(continue)
author Ritor1
date Sun, 01 Sep 2013 17:10:29 +0600
parents f62e6d06acac
children 19890e50e2f6
files GUIWindow.cpp Render.cpp Render.h UI/UICharacter.cpp UI/UIHouses.cpp UI/UiGame.cpp mm7_2.cpp
diffstat 7 files changed, 407 insertions(+), 792 deletions(-) [+]
line wrap: on
line diff
--- a/GUIWindow.cpp	Fri Aug 30 01:49:29 2013 +0600
+++ b/GUIWindow.cpp	Sun Sep 01 17:10:29 2013 +0600
@@ -911,7 +911,7 @@
       pDialogWindow.uFrameZ = 457;
       pTextHeight = pFontArrus->CalcTextHeight(current_npc_text, &pDialogWindow, 13, 0);
       v6 = pTextHeight + 7;
-      pRenderer->_4A6A68(8, 352 - (pTextHeight + 7), &pIcons_LOD->pTextures[uTextureID_Leather], 
+      pRenderer->GetLeather(8, 352 - (pTextHeight + 7), &pIcons_LOD->pTextures[uTextureID_Leather], 
           pIcons_LOD->pTextures[uTextureID_Leather].uTextureHeight - (pTextHeight + 7));
       pRenderer->DrawTextureIndexed(8, 347 - v6, pTexture_591428);
       v7 = FitTextInAWindow(current_npc_text, pFontArrus, &pDialogWindow, 0xDu, 0);
--- a/Render.cpp	Fri Aug 30 01:49:29 2013 +0600
+++ b/Render.cpp	Sun Sep 01 17:10:29 2013 +0600
@@ -7359,20 +7359,13 @@
 }
 
 //----- (004A6A68) --------------------------------------------------------
-void Render::_4A6A68(unsigned int a2, unsigned int a3, Texture *a4, __int16 height)
-{
-  Render *v5; // ebx@1
-  unsigned __int16 v6; // ax@1
-
-  v5 = this;
-
+void Render::GetLeather(unsigned int a2, unsigned int a3, Texture *a4, __int16 height)
+{
   Texture tex; // [sp+Ch] [bp-48h]@1
-  //Texture::Texture(&tex);
-
-  v6 = a4->uTextureHeight - height;
+
   memcpy(&tex, a4, sizeof(tex));
-  tex.uTextureHeight = v6;
-  if ( (signed __int16)v6 > 0 )
+  tex.uTextureHeight = a4->uTextureHeight - height;
+  if ( (signed __int16)tex.uTextureHeight > 0 )
     DrawTextureIndexed(a2, a3, &tex);
 }
 
--- a/Render.h	Fri Aug 30 01:49:29 2013 +0600
+++ b/Render.h	Sun Sep 01 17:10:29 2013 +0600
@@ -348,7 +348,7 @@
   void _4A65CC(unsigned int x, unsigned int y, struct Texture *a4, struct Texture *a5, int a6, int a7, int a8);
   void DrawTransparentRedShade(unsigned int a2, unsigned int a3, struct Texture *a4);
   void DrawTransparentGreenShade(signed int a2, signed int a3, struct Texture *pTexture);
-  void _4A6A68(unsigned int a2, unsigned int a3, struct Texture *a4, __int16 height);
+  void GetLeather(unsigned int a2, unsigned int a3, struct Texture *a4, __int16 height);
   void DrawTextPalette(int x, int y, unsigned char* font_pixels, int a5, unsigned int uFontHeight, unsigned __int16 *pPalette, int a8);
   void DrawText(signed int uOutX, signed int uOutY, unsigned __int8 *pFontPixels, unsigned int uCharWidth, unsigned int uCharHeight, unsigned __int16 *pFontPalette, unsigned __int16 uFaceColor, unsigned __int16 uShadowColor);
   void FillRectFast(unsigned int uX, unsigned int uY, unsigned int uWidth, unsigned int uHeight, unsigned int uColor16);
--- a/UI/UICharacter.cpp	Fri Aug 30 01:49:29 2013 +0600
+++ b/UI/UICharacter.cpp	Sun Sep 01 17:10:29 2013 +0600
@@ -2325,35 +2325,17 @@
   unsigned __int16 v5; // ax@7
   int v7; // esi@27
   int v8; // eax@29
-  //int v10; // esi@34
-  //int v12; // esi@38
-  //char v14; // zf@38
-  //int v15; // esi@42
   int v17; // eax@44
   unsigned int v18; // ecx@55
   unsigned int v19; // eax@55
-  //int v20; // esi@60
   unsigned int v22; // eax@61
   int v23; // eax@62
-  //int v24; // esi@65
-  //int v25; // eax@65
   int v26; // eax@69
-  //int v27; // esi@81
-  //int v28; // eax@81
-  //int v29; // esi@84
-  //int v30; // eax@84
-  //int v31; // eax@85
-  unsigned int v32; // ecx@88
-  unsigned int v33; // eax@88
   int v34; // esi@90
-  //unsigned int v35; // eax@91
   int v36; // esi@93
-  int v37; // edi@93
   ItemGen *v38; // edi@93
-  //__int16 v39; // dx@99
   ItemGen _this; // [sp+Ch] [bp-40h]@1
   unsigned int v48; // [sp+30h] [bp-1Ch]@88
-  //unsigned int v49; // [sp+34h] [bp-18h]@57
   unsigned int v50; // [sp+38h] [bp-14h]@50
   int v51; // [sp+3Ch] [bp-10h]@1
   int v52; // [sp+40h] [bp-Ch]@5
@@ -2363,8 +2345,6 @@
   _this.Reset();
   v1 = pPlayers[uActiveCharacter]->pEquipment.uMainHand;
   v2 = pPlayers[uActiveCharacter]->pEquipment.uShield;
-  //v54 = pPlayers[uActiveCharacter]->pEquipment.uShield;
-  //v53 = v1;
   if ( v1 && pItemsTable->pItems[*(int *)&pPlayers[uActiveCharacter]->pInventoryItemList[v1 - 1]].uEquipType == EQUIP_MAIN_HAND )
     v51 = v1;
   v3 = pParty->pPickedItem.uItemID;
@@ -2411,7 +2391,6 @@
       WetsuitOn(uActiveCharacter);
       return;
     }
-    //v6 = v52;
     switch ( pEquipType )
     {
       case EQUIP_BOW:
@@ -2511,8 +2490,8 @@
             pPlayers[uActiveCharacter]->pEquipment.uShield = v17;
             pMouse->RemoveHoldingItem();
             return;
-          }//ставим щит когда держит двуручный меч
-          v1--;
+          }
+          v1--;//ставим щит когда держит двуручный меч
           memcpy(&_this, &pParty->pPickedItem, sizeof(_this));
           pPlayers[uActiveCharacter]->pInventoryItemList[v1].uBodyAnchor = 0;
           pParty->pPickedItem.Reset();
@@ -2685,19 +2664,16 @@
         return;
 //-------------------------------------------------------------------------------
       default:
-        pPlayers[uActiveCharacter]->UseItem_DrinkPotion_etc(uActiveCharacter, 0);
+        pPlayers[uActiveCharacter]->UseItem_DrinkPotion_etc(uActiveCharacter, 0);//выпить напиток и др.
         return;
     }
     return;
   }
 
-  v32 = pMouse->uMouseClickX;
-  v33 = pMouse->uMouseClickY;
-  v34 = pRenderer->pActiveZBuffer[v32 + pSRZBufferLineOffsets[v33]] & 0xFFFF;
+  v34 = pRenderer->pActiveZBuffer[pMouse->uMouseClickX + pSRZBufferLineOffsets[pMouse->uMouseClickY]] & 0xFFFF;
   if ( v34 )
   {
     v36 = v34 - 1;
-    v37 = (int)((char *)pPlayers[uActiveCharacter] + 36 * v36);
     v38 = &pPlayers[uActiveCharacter]->pInventoryItemList[v36];
     pEquipType = pItemsTable->pItems[v38->uItemID].uEquipType;
     if ( v38->uItemID == ITEM_WETSUIT )
--- a/UI/UIHouses.cpp	Fri Aug 30 01:49:29 2013 +0600
+++ b/UI/UIHouses.cpp	Sun Sep 01 17:10:29 2013 +0600
@@ -2510,9 +2510,9 @@
 		}
 
 		auto pTex = pIcons_LOD->GetTexture(uTextureID_Leather);
-		pRenderer->_4A6A68(8u, 352 - v9, pTex, pTex->uTextureHeight - v9);
-		pRenderer->DrawTextureIndexed(8u, 347 - v9, pTexture_591428);
-		v10 = FitTextInAWindow(current_npc_text, pOutString, &w, 0xDu, 0);
+		pRenderer->GetLeather(8, 352 - v9, pTex, pTex->uTextureHeight - v9);
+		pRenderer->DrawTextureIndexed(8, 347 - v9, pTexture_591428);
+		v10 = FitTextInAWindow(current_npc_text, pOutString, &w, 13, 0);
 		a1.DrawText(pOutString, 13, 354 - v9, 0, v10, 0, 0, 0);
 		break;
 		}
@@ -2932,7 +2932,7 @@
         pTextHeight = pFontCreate->CalcTextHeight(pTmpBuf.data(), &dialog_window, 12, 0) + 7;
       }
       auto pTex = pIcons_LOD->GetTexture(uTextureID_Leather);
-      pRenderer->_4A6A68(8, 352 - pTextHeight, pTex, pTex->uTextureHeight - pTextHeight);
+      pRenderer->GetLeather(8, 352 - pTextHeight, pTex, pTex->uTextureHeight - pTextHeight);
       pRenderer->DrawTextureIndexed(8, 347 - pTextHeight, pTexture_591428);
       v63 = FitTextInAWindow(pTmpBuf.data(), pOutString, &dialog_window, 0xCu, 0);
       window_SpeakInHouse->DrawText(pOutString, 12, 354 - pTextHeight, 0, v63, 0, 0, 0);
@@ -2946,7 +2946,7 @@
       v61 = pFontArrus->CalcTextHeight(pTmpBuf.data(), &dialog_window, 12, 0);
       pTextHeight = v61 + 7;
       auto pTex = pIcons_LOD->GetTexture(uTextureID_Leather);
-      pRenderer->_4A6A68(8, 352 - (v61 + 7), pTex, pTex->uTextureHeight - (v61 + 7));
+      pRenderer->GetLeather(8, 352 - (v61 + 7), pTex, pTex->uTextureHeight - (v61 + 7));
       pRenderer->DrawTextureIndexed(8, 347 - pTextHeight, pTexture_591428);
       v63 = FitTextInAWindow(pTmpBuf.data(), pFontArrus, &dialog_window, 0xCu, 0);
       window_SpeakInHouse->DrawText(pFontArrus, 12, 354 - pTextHeight, 0, v63, 0, 0, 0);
@@ -4224,7 +4224,7 @@
         pInString = (char *)*(&pNPCStats->field_17884 + ((v10 & 3) == 2) + 2 * v9);
         v11 = pFontArrus->CalcTextHeight(pInString, &a1, 13, 0);
         v12 = v11 + 7;
-        pRenderer->_4A6A68(8, 352 - (v11 + 7),
+        pRenderer->GetLeather(8, 352 - (v11 + 7),
           pIcons_LOD->GetTexture(uTextureID_Leather),
           pIcons_LOD->GetTexture(uTextureID_Leather)->uTextureHeight - (v11 + 7));
         pRenderer->DrawTextureIndexed(8u, 347 - v12, pTexture_591428);
@@ -4427,11 +4427,9 @@
       v47 = pFontCreate;
       v48 = pFontCreate->CalcTextHeight(current_npc_text, &w, 13, 0) + 7;
     }
-    pRenderer->_4A6A68(8, 352 - v48,
-      pIcons_LOD->GetTexture(uTextureID_Leather),
-      pIcons_LOD->GetTexture(uTextureID_Leather)->uTextureHeight - v48);
+    pRenderer->GetLeather(8, 352 - v48, pIcons_LOD->GetTexture(uTextureID_Leather), pIcons_LOD->GetTexture(uTextureID_Leather)->uTextureHeight - v48);
     pRenderer->DrawTextureIndexed(8u, 347 - v48, pTexture_591428);
-    v49 = FitTextInAWindow(current_npc_text, v47, &w, 0xDu, 0);
+    v49 = FitTextInAWindow(current_npc_text, v47, &w, 13, 0);
     a1.DrawText(v47, 13, 354 - v48, 0, v49, 0, 0, 0);
   }
 }
--- a/UI/UiGame.cpp	Fri Aug 30 01:49:29 2013 +0600
+++ b/UI/UiGame.cpp	Sun Sep 01 17:10:29 2013 +0600
@@ -40,17 +40,9 @@
 //----- (00421D00) --------------------------------------------------------
 void __fastcall GameUI_OnPlayerPortraitLeftClick(unsigned int uPlayerID)
 {
-  //unsigned int v1; // esi@1
-  //int v2; // eax@2
-  //Player *v3; // ecx@2
-  //Player *v4; // ecx@5
-  unsigned int v5; // [sp-4h] [bp-10h]@21
-
-  //v1 = uPlayerID;
   auto player = &pParty->pPlayers[uPlayerID - 1];
   if (pParty->pPickedItem.uItemID)
   {
-    //v3 = player;
     if (auto slot = player->AddItem(-1, pParty->pPickedItem.uItemID))
     {
       memcpy(&player->pInventoryItemList[slot-1], &pParty->pPickedItem, 0x24u);
@@ -63,16 +55,14 @@
     {
       player = pPlayers[uActiveCharacter];
     }
-    if(player->CanAct() || !pPlayers[uActiveCharacter]->CanAct())
-		player->PlaySound(SPEECH_NoRoom, 0);
+    if( player->CanAct() || !pPlayers[uActiveCharacter]->CanAct() )
+      player->PlaySound(SPEECH_NoRoom, 0);
   }
 
-//LABEL_9:
   if (pCurrentScreen == SCREEN_GAME)
   {
     viewparams->bRedrawGameUI = true;
     if ( uActiveCharacter != uPlayerID )
-      //goto LABEL_27;
     {
       if ( pPlayers[uPlayerID]->uTimeToRecovery )
         return;
@@ -80,29 +70,23 @@
       uActiveCharacter = uPlayerID;
       return;
     }
-    v5 = 7;
-//LABEL_22:
-    pGUIWindow_CurrentMenu = CharacterUI_Initialize(v5);
+    pGUIWindow_CurrentMenu = CharacterUI_Initialize(7);
     return;
   }
   if ( pCurrentScreen == SCREEN_SPELL_BOOK )
     return;
   if ( pCurrentScreen == SCREEN_CHEST )
   {
-//LABEL_23:
     viewparams->bRedrawGameUI = true;
     if ( uActiveCharacter == uPlayerID )
     {
       pWindowList_at_506F50_minus1_indexing_buttons____and_an_int_[0] = 103;
       pCurrentScreen = SCREEN_CHEST_INVENTORY;
-      //goto LABEL_28;
       uActiveCharacter = uPlayerID;
       return;
     }
-//LABEL_27:
     if ( pPlayers[uPlayerID]->uTimeToRecovery )
       return;
-    //goto LABEL_28;
     uActiveCharacter = uPlayerID;
     return;
   }
@@ -110,7 +94,6 @@
   {
     if ( pCurrentScreen == SCREEN_E )
     {
-//LABEL_28:
       uActiveCharacter = uPlayerID;
       return;
     }
@@ -122,20 +105,16 @@
         FillAwardsData();
       return;
     }
-    //goto LABEL_23;
     viewparams->bRedrawGameUI = true;
     if ( uActiveCharacter == uPlayerID )
     {
       pWindowList_at_506F50_minus1_indexing_buttons____and_an_int_[0] = 103;
       pCurrentScreen = SCREEN_CHEST_INVENTORY;
-      //goto LABEL_28;
       uActiveCharacter = uPlayerID;
       return;
     }
-//LABEL_27:
     if ( pPlayers[uPlayerID]->uTimeToRecovery )
       return;
-    //goto LABEL_28;
     uActiveCharacter = uPlayerID;
     return;
   }
@@ -143,16 +122,13 @@
     return;
   viewparams->bRedrawGameUI = true;
   if ( uActiveCharacter != uPlayerID )
-    //goto LABEL_28;
     uActiveCharacter = uPlayerID;
     return;
   if (dialog_menu_id == HOUSE_DIALOGUE_SHOP_BUY_STANDARD || dialog_menu_id == HOUSE_DIALOGUE_SHOP_6)
   {
     __debugbreak(); // fix indexing
     pWindowList_at_506F50_minus1_indexing_buttons____and_an_int_[0] = 103;
-    v5 = 14;
-    //goto LABEL_22;
-    pGUIWindow_CurrentMenu = CharacterUI_Initialize(v5);
+    pGUIWindow_CurrentMenu = CharacterUI_Initialize(14);
     return;
   }
 }
@@ -163,30 +139,16 @@
 void GameUI_DrawNPCPopup(void *_this)//PopupWindowForBenefitAndJoinText
 {
   int v1; // edi@2
-  int v2; // ecx@2
-  NPCData *v3; // eax@2
-  NPCData *v4; // esi@7
-  NPCData *v5; // eax@16
-  NPCData *v6; // esi@16
-  const CHAR *v7; // eax@18
-  unsigned int v8; // eax@25
-  unsigned int v9; // eax@25
-  const char *v10; // ST14_4@26
+  NPCData *pNPC; // eax@16
+  const CHAR *pText; // eax@18
   char *v11; // esi@26
-  const char *v12; // ST18_4@27
-  unsigned __int16 v13; // ax@28
-  char *v14; // eax@28
-  GUIWindow a1; // [sp+Ch] [bp-60h]@23
+  GUIWindow popup_window; // [sp+Ch] [bp-60h]@23
   int a2; // [sp+60h] [bp-Ch]@16
-  void *v17; // [sp+64h] [bp-8h]@1
   LPCSTR lpsz; // [sp+68h] [bp-4h]@6
 
-  v17 = _this;
   if ( bNoNPCHiring != 1 )
   {
     v1 = 0;
-    v2 = 0;
-    v3 = pParty->pHirelings;
     /*do
     {
       if ( v3->pName )
@@ -226,69 +188,57 @@
         }
       }
     }
-    if ( (signed int)((char *)v17 + (unsigned __int8)pParty->field_709) < v1 )
+    if ( (signed int)((char *)_this + (unsigned __int8)pParty->field_709) < v1 )
     {
-      sDialogue_SpeakingActorNPC_ID = -1 - (unsigned __int8)pParty->field_709 - (int)v17;
-      v5 = GetNewNPCData(sDialogue_SpeakingActorNPC_ID, &a2);
-      v6 = v5;
-      if ( v5 )
+      sDialogue_SpeakingActorNPC_ID = -1 - (unsigned __int8)pParty->field_709 - (int)_this;
+      pNPC = GetNewNPCData(sDialogue_SpeakingActorNPC_ID, &a2);
+      if ( pNPC )
       {
         if ( a2 == 57 )
-          v7 = pNPCTopics[512].pText; // Baby dragon
+          pText = pNPCTopics[512].pText; // Baby dragon
         else
-          v7 = (const CHAR *)pNPCStats->pProfessions[v5->uProfession].pBenefits;
-        lpsz = v7;
-        if ( !v7 )
+          pText = (const CHAR *)pNPCStats->pProfessions[pNPC->uProfession].pBenefits;
+        lpsz = pText;
+        if ( !pText )
         {
-          lpsz = (LPCSTR)pNPCStats->pProfessions[v5->uProfession].pJoinText;
+          lpsz = (LPCSTR)pNPCStats->pProfessions[pNPC->uProfession].pJoinText;
           if ( !lpsz )
             lpsz = "";
         }
-        a1.Hint = 0;
-        a1.uFrameX = 38;
-        a1.uFrameY = 60;
-        a1.uFrameWidth = 276;
-        a1.uFrameZ = 313;
-        a1.uFrameHeight = pFontArrus->CalcTextHeight(lpsz, &a1, 0, 0)
-                        + 2 * LOBYTE(pFontArrus->uFontHeight)
-                        + 24;
-        if ( (signed int)a1.uFrameHeight < 130 )
-          a1.uFrameHeight = 130;
-        a1.uFrameWidth = 400;
-        a1.uFrameZ = a1.uFrameX + 399;
-        a1.DrawMessageBox(0);
-        sprintfex(pTmpBuf2.data(), "NPC%03d", v6->uPortraitID);
-        v8 = pIcons_LOD->LoadTexture(pTmpBuf2.data(), TEXTURE_16BIT_PALETTE);
-        pRenderer->DrawTextureIndexed(
-          a1.uFrameX + 22,
-          a1.uFrameY + 36,
-          (Texture *)(v8 != -1 ? &pIcons_LOD->pTextures[v8] : 0));
-        v9 = v6->uProfession;
-        if ( v9 )
+        popup_window.Hint = 0;
+        popup_window.uFrameX = 38;
+        popup_window.uFrameY = 60;
+        popup_window.uFrameWidth = 276;
+        popup_window.uFrameZ = 313;
+        popup_window.uFrameHeight = pFontArrus->CalcTextHeight(lpsz, &popup_window, 0, 0) + 2 * LOBYTE(pFontArrus->uFontHeight) + 24;
+        if ( (signed int)popup_window.uFrameHeight < 130 )
+          popup_window.uFrameHeight = 130;
+        popup_window.uFrameWidth = 400;
+        popup_window.uFrameZ = popup_window.uFrameX + 399;
+        popup_window.DrawMessageBox(0);
+        sprintfex(pTmpBuf2.data(), "NPC%03d", pNPC->uPortraitID);
+        pRenderer->DrawTextureIndexed(popup_window.uFrameX + 22, popup_window.uFrameY + 36,
+            (Texture *)(pIcons_LOD->LoadTexture(pTmpBuf2.data(), TEXTURE_16BIT_PALETTE) != -1
+            ? &pIcons_LOD->pTextures[pIcons_LOD->LoadTexture(pTmpBuf2.data(), TEXTURE_16BIT_PALETTE)] : 0));
+        if ( pNPC->uProfession )
         {
-          v10 = v6->pName;
           v11 = pTmpBuf.data();
-          sprintfex(pTmpBuf.data(), pGlobalTXT_LocalizationStrings[429], v10, aNPCProfessionNames[v9]);
+          sprintfex(pTmpBuf.data(), pGlobalTXT_LocalizationStrings[429], pNPC->pName, aNPCProfessionNames[pNPC->uProfession]);
         }
         else
         {
-          v12 = v6->pName;
           v11 = pTmpBuf.data();
-          strcpy(pTmpBuf.data(), v12);
+          strcpy(pTmpBuf.data(), pNPC->pName);
         }
-        v13 = TargetColor(0xFFu, 0xFFu, 0x9Bu);
-        a1.DrawTitleText(pFontArrus, 0, 0xCu, v13, v11, 3u);
-        a1.uFrameWidth -= 24;
-        a1.uFrameZ = a1.uFrameX + a1.uFrameWidth - 1;
-        v14 = BuildDialogueString((char *)lpsz, uActiveCharacter - 1, 0, 0, 0, 0);
-        a1.DrawText(pFontArrus, 100, 36, 0, v14, 0, 0, 0);
+        popup_window.DrawTitleText(pFontArrus, 0, 12, TargetColor(0xFFu, 0xFFu, 0x9Bu), v11, 3);
+        popup_window.uFrameWidth -= 24;
+        popup_window.uFrameZ = popup_window.uFrameX + popup_window.uFrameWidth - 1;
+        popup_window.DrawText(pFontArrus, 100, 36, 0, BuildDialogueString((char *)lpsz, uActiveCharacter - 1, 0, 0, 0, 0), 0, 0, 0);
       }
     }
   }
 }
 
-
-
 //----- (00445D4A) --------------------------------------------------------
 void GameUI_InitializeDialogue(Actor *actor, int bPlayerSaysHello)
 {
@@ -396,64 +346,31 @@
 {
   NPCData *pNPC; // ebx@2
   int pGreetType; // eax@2
-  //unsigned __int16 v2; // di@2
-  //unsigned int v3; // eax@2
-  char *v4; // esi@3
-  //int v5; // eax@11
-  //char *v6; // ecx@13
-  //char *v7; // eax@16
-  //unsigned int v8; // edi@19
-  //char *v9; // ecx@27
-  char *v10; // eax@29
-  //int v11; // eax@30
-  int v12; // esi@39
-  char *v13; // eax@41
-  GUIButton *v14; // eax@43
-  //GUIButton *v15; // edi@43
-  signed int v16; // eax@44
-  //unsigned int v23; // eax@53
-  //const char *v24; // eax@59
-  //unsigned __int16 v30; // cx@83
-  int v31; // ecx@86
+  int pTextHeight; // esi@39
+  GUIButton *pButton; // eax@43
   int v32; // ebx@93
-  //unsigned int v33; // eax@93
-  GUIWindow *v34; // ecx@93
   int v35; // esi@93
-  int i; // eax@93
-  GUIButton *v37; // eax@94
   int v38; // eax@95
   signed int v39; // esi@99
   signed int v40; // eax@102
   unsigned int v41; // ebx@102
   int v42; // edi@102
-  GUIButton *v43; // esi@103
-  int v44; // eax@104
   unsigned int v45; // ecx@104
-  unsigned __int16 *v46; // edx@104
-  unsigned __int16 v47; // ax@104
-  GUIWindow pWindow; // [sp+4h] [bp-110h]@39
-  int v49; // [sp+Ch] [bp-108h]@39
-  int v50; // [sp+14h] [bp-100h]@39
-  GUIWindow v51; // [sp+58h] [bp-BCh]@2
-  GUIWindow v52; // [sp+ACh] [bp-68h]@42
+  unsigned __int16 pTextColor; // ax@104
+  GUIWindow window; // [sp+ACh] [bp-68h]@42
   char *Str; // [sp+100h] [bp-14h]@104
-  //int v54; // [sp+104h] [bp-10h]@2
-  //unsigned __int16 *v55; // [sp+108h] [bp-Ch]@82
   GUIFont *pOutString; // [sp+10Ch] [bp-8h]@39
   char *pInString=NULL; // [sp+110h] [bp-4h]@32
 
   if ( !pDialogueWindow )
     return;
 
-  memcpy(&v51, pDialogueWindow, sizeof(v51));
+  // Window title(Заголовок окна)----
+  memcpy(&window, pDialogueWindow, sizeof(window));
   pNPC = GetNPCData(sDialogue_SpeakingActorNPC_ID);
   pGreetType = GetGreetType(sDialogue_SpeakingActorNPC_ID);
-  v51.uFrameWidth -= 10;
-  v51.uFrameZ -= 10;
-  //v54 = v1;
-  //TargetColor(0xFFu, 0xFFu, 0xFFu);
-  //TargetColor(0xE1u, 0xCDu, 0x23u);
-  //v2 = TargetColor(0x15u, 0x99u, 0xE9u);
+  window.uFrameWidth -= 10;
+  window.uFrameZ -= 10;
   pRenderer->DrawTextureIndexed(477, 0, pTexture_Dialogue_Background);
   pRenderer->DrawTextureTransparent(468, 0, (Texture *)(uTextureID_right_panel_loop != -1 ? &pIcons_LOD->pTextures[uTextureID_right_panel_loop] : 0));
   pRenderer->DrawTextureIndexed(pNPCPortraits_x[0][0] - 4, pNPCPortraits_y[0][0] - 4, (Texture *)(uTextureID_50795C != -1 ? &pIcons_LOD->pTextures[uTextureID_50795C] : 0));
@@ -467,7 +384,7 @@
   else
     strcpy(pTmpBuf.data(), pNPC->pName);
 
-  v51.DrawTitleText(pFontArrus, 483, 112, ui_game_dialogue_npc_name_color, pTmpBuf.data(), 3);
+  window.DrawTitleText(pFontArrus, 483, 112, ui_game_dialogue_npc_name_color, pTmpBuf.data(), 3);
   pParty->GetPartyFame();
 
   pInString = nullptr;
@@ -525,7 +442,7 @@
       }
       else if (pGreetType == 2)//HiredNPC_greet
       {
-        auto prof = pNPCStats->pProfessions + pNPC->uProfession - 1;
+        auto prof = pNPCStats->pProfessions + pNPC->uProfession;
 
         if (pNPC->Hired())
           pInString = BuildDialogueString(prof->pDismissText, uActiveCharacter - 1, 0, 0, 0, 0);
@@ -535,145 +452,139 @@
     break;
   }
 
+  // Message window(Окно сообщения)---- 
   if (pInString)
   {
-    pWindow.uFrameWidth = game_viewport_width;
-    pWindow.uFrameZ = 452;
+    window.uFrameWidth = game_viewport_width;
+    window.uFrameZ = 452;
     auto font = pFontArrus;
-    v12 = pFontArrus->CalcTextHeight(pInString, &pWindow, 13, 0) + 7;
-    if ( 352 - v12 < 8 )
+    pTextHeight = pFontArrus->CalcTextHeight(pInString, &window, 13, 0) + 7;
+    if ( 352 - pTextHeight < 8 )
     {
       font = pFontCreate;
-       v12 = pFontCreate->CalcTextHeight(pInString, &pWindow, 13, 0) + 7;
+       pTextHeight = pFontCreate->CalcTextHeight(pInString, &window, 13, 0) + 7;
     }
     if (uTextureID_Leather != -1)
-      pRenderer->_4A6A68(8, 352 - v12, &pIcons_LOD->pTextures[uTextureID_Leather], pIcons_LOD->pTextures[uTextureID_Leather].uTextureHeight - v12);
-    pRenderer->DrawTextureIndexed(8u, 347 - v12, pTexture_591428);
-    v13 = FitTextInAWindow(pInString, font,  &pWindow, 0xDu, 0);
-    pDialogueWindow->DrawText(font, 13, 354 - v12, 0, v13, 0, 0, 0);
+      pRenderer->GetLeather(8, 352 - pTextHeight, &pIcons_LOD->pTextures[uTextureID_Leather], pIcons_LOD->pTextures[uTextureID_Leather].uTextureHeight - pTextHeight);
+    pRenderer->DrawTextureIndexed(8, 347 - pTextHeight, pTexture_591428);
+    pDialogueWindow->DrawText(font, 13, 354 - pTextHeight, 0, FitTextInAWindow(pInString, font,  &window, 13, 0), 0, 0, 0);
   }
-
-
-  memcpy(&v52, pDialogueWindow, sizeof(v52));
-  v52.uFrameX = 483;
-  v52.uFrameWidth = 148;
-  v52.uFrameZ = 334;
-  for (int i = v52.pStartingPosActiveItem;
-       i < v52.pStartingPosActiveItem + v52.pNumPresenceButton; ++i)
+  // Right panel(Правая панель)------- 
+  memcpy(&window, pDialogueWindow, sizeof(window));
+  window.uFrameX = 483;
+  window.uFrameWidth = 148;
+  window.uFrameZ = 334;
+  for (int i = window.pStartingPosActiveItem; i < window.pStartingPosActiveItem + window.pNumPresenceButton; ++i)
   {
-    v14 = v52.GetControl(i);
-    //v15 = v14;
-    if ( !v14 )
+    pButton = window.GetControl(i);
+    if ( !pButton )
       break;
-    v16 = v14->msg_param;
 
-    if ( v16 > 88 )
-      v14->pButtonName[0] = 0;
-	else if (v16 == 88)
-      strcpy(v14->pButtonName, pGlobalTXT_LocalizationStrings[581]); // Lord
-    else if (v16 == 87)
-      strcpy(v14->pButtonName, pGlobalTXT_LocalizationStrings[580]); // Knight
-    else if (v16 == 86)
-      strcpy(v14->pButtonName, pGlobalTXT_LocalizationStrings[579]); // Squire
-    else if (v16 == 85)
-      strcpy(v14->pButtonName, pGlobalTXT_LocalizationStrings[578]); // Page
-    else if (v16 == 77)
-      strcpy(v14->pButtonName, pGlobalTXT_LocalizationStrings[407]); // Details
-    else if (v16 == 76)
+    if ( pButton->msg_param > 88 )
+      pButton->pButtonName[0] = 0;
+    else if (pButton->msg_param == 88)
+      strcpy(pButton->pButtonName, pGlobalTXT_LocalizationStrings[581]); // Lord
+    else if (pButton->msg_param == 87)
+      strcpy(pButton->pButtonName, pGlobalTXT_LocalizationStrings[580]); // Knight
+    else if (pButton->msg_param == 86)
+      strcpy(pButton->pButtonName, pGlobalTXT_LocalizationStrings[579]); // Squire
+    else if (pButton->msg_param == 85)
+      strcpy(pButton->pButtonName, pGlobalTXT_LocalizationStrings[578]); // Page
+    else if (pButton->msg_param == 77)
+      strcpy(pButton->pButtonName, pGlobalTXT_LocalizationStrings[407]); // Details
+    else if (pButton->msg_param == 76)
     {
       if (pNPC->Hired())
-        sprintf(v14->pButtonName, (const char*)pGlobalTXT_LocalizationStrings[408], pNPC->pName); // Release %s
+        sprintf(pButton->pButtonName, (const char*)pGlobalTXT_LocalizationStrings[408], pNPC->pName); // Release %s
       else
-        strcpy(v14->pButtonName, pGlobalTXT_LocalizationStrings[406]); // Hire
+        strcpy(pButton->pButtonName, pGlobalTXT_LocalizationStrings[406]); // Hire
     }
-	else if (v16 == 24)
+    else if (pButton->msg_param == 24)
     {
       __debugbreak(); // learn conditions of this event
       auto topic = pNPCTopics[pNPC->evt_F - 1].pTopic;//(&dword_721660)[8 * v23];
       if (!topic)
       {
-        v14->pButtonName[0] = 0;
-        v14->msg_param = 0;
+        pButton->pButtonName[0] = 0;
+        pButton->msg_param = 0;
       }
       else
-        strcpy(v14->pButtonName, topic);
+        strcpy(pButton->pButtonName, topic);
     }
-	else if (v16 == 9)
-      strcpy(v14->pButtonName, GetProfessionActionText(pNPC->uProfession));
-	else if (v16 == 19)
-	{
+    else if (pButton->msg_param == 9)
+      strcpy(pButton->pButtonName, GetProfessionActionText(pNPC->uProfession));
+    else if (pButton->msg_param == 19)
+    {
      // __debugbreak(); // learn conditions of this event Scavenger Hunt
       auto topic = pNPCTopics[pNPC->evt_A - 1].pTopic;//(&dword_721660)[8 * v23];
       if (!topic)
       {
-        v14->pButtonName[0] = 0;
-        v14->msg_param = 0;
+        pButton->pButtonName[0] = 0;
+        pButton->msg_param = 0;
       }
-      else strcpy(v14->pButtonName, topic);
-	}
-	else if (v16 == 20)
-	{
+      else strcpy(pButton->pButtonName, topic);
+    }
+    else if (pButton->msg_param == 20)
+    {
       //__debugbreak(); // learn conditions of this event instruments
       auto topic = pNPCTopics[pNPC->evt_B - 1].pTopic;//(&dword_721660)[8 * v23];
       if (!topic)
       {
-        v14->pButtonName[0] = 0;
-        v14->msg_param = 0;
+        pButton->pButtonName[0] = 0;
+        pButton->msg_param = 0;
       }
-      else strcpy(v14->pButtonName, topic);
-	}
-	else if (v16 == 21)
-	{
+      else strcpy(pButton->pButtonName, topic);
+    }
+    else if (pButton->msg_param == 21)
+    {
       //__debugbreak(); // learn conditions of this event
       auto topic = pNPCTopics[pNPC->evt_C - 1].pTopic;//(&dword_721660)[8 * v23];
       if (!topic)
       {
-        v14->pButtonName[0] = 0;
-        v14->msg_param = 0;
+        pButton->pButtonName[0] = 0;
+        pButton->msg_param = 0;
       }
-      else strcpy(v14->pButtonName, topic);
-	}
-	else if (v16 == 22)
-	{
+      else strcpy(pButton->pButtonName, topic);
+    }
+    else if (pButton->msg_param == 22)
+    {
       //__debugbreak(); // learn conditions of this event
       auto topic = pNPCTopics[pNPC->evt_D - 1].pTopic;//(&dword_721660)[8 * v23];
       if (!topic)
       {
-        v14->pButtonName[0] = 0;
-        v14->msg_param = 0;
+        pButton->pButtonName[0] = 0;
+        pButton->msg_param = 0;
       }
-      else strcpy(v14->pButtonName, topic);
-	}
-	else if (v16 == 23)
-	{
+      else strcpy(pButton->pButtonName, topic);
+    }
+    else if (pButton->msg_param == 23)
+    {
       //__debugbreak(); // learn conditions of this event
       auto topic = pNPCTopics[pNPC->evt_E - 1].pTopic;//(&dword_721660)[8 * v23];
       if (!topic)
       {
-        v14->pButtonName[0] = 0;
-        v14->msg_param = 0;
+        pButton->pButtonName[0] = 0;
+        pButton->msg_param = 0;
       }
-      else strcpy(v14->pButtonName, topic);
-	}
-	else if (v16 == 13)
-	{
+      else strcpy(pButton->pButtonName, topic);
+    }
+    else if (pButton->msg_param == 13)
+    {
       if (pNPC->Hired())
-        sprintf(v14->pButtonName, pGlobalTXT_LocalizationStrings[408], pNPC->pName); // Release %s
+        sprintf(pButton->pButtonName, pGlobalTXT_LocalizationStrings[408], pNPC->pName); // Release %s
       else
-        strcpy(v14->pButtonName, pGlobalTXT_LocalizationStrings[122]); // Join
-	}
-	else
-      v14->pButtonName[0] = 0;
-	
+        strcpy(pButton->pButtonName, pGlobalTXT_LocalizationStrings[122]); // Join
+    }
+    else
+      pButton->pButtonName[0] = 0;
 
     if (pParty->field_7B5_in_arena_quest && pParty->field_7B5_in_arena_quest != -1)
     {
       int num_dead_actors = 0;
       pInString = 0;
-      for (uint i = 0; i < uNumActors; ++i)
+      for ( uint i = 0; i < uNumActors; ++i )
       {
-        if (pActors[i].uAIState == Dead || pActors[i].uAIState == Removed ||
-            pActors[i].uAIState  == Disabled)
+        if (pActors[i].uAIState == Dead || pActors[i].uAIState == Removed || pActors[i].uAIState  == Disabled)
           ++num_dead_actors;
         else
         {
@@ -683,29 +594,23 @@
         }
       }
       if (num_dead_actors == uNumActors)
-        strcpy(v14->pButtonName, pGlobalTXT_LocalizationStrings[658]); // Collect Prize
+        strcpy(pButton->pButtonName, pGlobalTXT_LocalizationStrings[658]); // Collect Prize
     }
   }
 
-
+  // Install Buttons(Установка кнопок)-------- 
   v32 = 0;
-  v34 = pDialogueWindow;
-  //v54 = v33;
   v35 = pDialogueWindow->pStartingPosActiveItem;
-  for ( i = v35 + pDialogueWindow->pNumPresenceButton; v35 < i; i = pDialogueWindow->pNumPresenceButton + pDialogueWindow->pStartingPosActiveItem )
+  for ( uint i = v35 + pDialogueWindow->pNumPresenceButton; v35 < i; i = pDialogueWindow->pNumPresenceButton + pDialogueWindow->pStartingPosActiveItem )
   {
-    v37 = v34->GetControl(v35);
-    if ( !v37 )
-    {
-      v34 = pDialogueWindow;
+    pButton = pDialogueWindow->GetControl(v35);
+    if ( !pButton )
       break;
-    }
-    v38 = pFontArrus->CalcTextHeight(v37->pButtonName, &v52, 0, 0);
-    v34 = pDialogueWindow;
+    v38 = pFontArrus->CalcTextHeight(pButton->pButtonName, &window, 0, 0);
     v32 += v38;
     ++v35;
   }
-  v39 = v34->pNumPresenceButton;
+  v39 = pDialogueWindow->pNumPresenceButton;
   if ( v39 )
   {
     pOutString = (GUIFont *)((174 - v32) / v39);
@@ -713,28 +618,26 @@
       pOutString = (GUIFont *)32;
     int v55 = 1;
     v40 = 174 - (int)pOutString * v39 - v32;
-    v41 = v34->pStartingPosActiveItem;
+    v41 = pDialogueWindow->pStartingPosActiveItem;
     v42 = v40 / 2 - (signed int)pOutString / 2 + 138;
     if ( (signed int)v41 < (signed int)(v41 + v39) )
     {
       do
       {
-        v43 = v34->GetControl(v41);
-        if ( !v43 )
+        pButton = pDialogueWindow->GetControl(v41);
+        if ( !pButton )
           break;
-        v43->uY = (unsigned int)((char *)pOutString + v42);
-        Str = v43->pButtonName;
-        v44 = pFontArrus->CalcTextHeight(v43->pButtonName, &v52, 0, 0);
-        v45 = v43->uY;
-        v46 = (unsigned short *)v55;
-        v43->uHeight = v44;
-        v42 = v45 + v44 - 1;
-        v43->uW = v42;
-        v47 = ui_game_dialogue_option_highlight_color;
-        if ( (unsigned __int16 *)pDialogueWindow->pCurrentPosActiveItem != v46 )
-          v47 = ui_game_dialogue_option_normal_color;
-        v52.DrawTitleText(pFontArrus, 0, v45, v47, Str, 3u);
-        v34 = pDialogueWindow;
+        pButton->uY = (unsigned int)((char *)pOutString + v42);
+        Str = pButton->pButtonName;
+        pTextHeight = pFontArrus->CalcTextHeight(pButton->pButtonName, &window, 0, 0);
+        v45 = pButton->uY;
+        pButton->uHeight = pTextHeight;
+        v42 = v45 + pTextHeight - 1;
+        pButton->uW = v42;
+        pTextColor = ui_game_dialogue_option_highlight_color;
+        if ( pDialogueWindow->pCurrentPosActiveItem != v55 )
+          pTextColor = ui_game_dialogue_option_normal_color;
+        window.DrawTitleText(pFontArrus, 0, v45, pTextColor, Str, 3);
         ++v55;
         ++v41;
       }
@@ -744,36 +647,28 @@
   pRenderer->DrawTextureIndexed(471, 445, pIcons_LOD->GetTexture(uExitCancelTextureId));
 }
 
-
-
 //----- (00444FBE) --------------------------------------------------------
 void GameUI_DrawBranchlessDialogue()
 {
-  //GUIFont *v0; // esi@1
-  int v1; // esi@4
-  char *v2; // eax@6
-  int v3; // edi@12
+  int pTextHeight; // esi@4
   char Str[200]; // [sp+Ch] [bp-120h]@12
-  GUIWindow v5; // [sp+D4h] [bp-58h]@4
+  GUIWindow BranchlessDlg_window; // [sp+D4h] [bp-58h]@4
   GUIFont *pFont; // [sp+128h] [bp-4h]@1
 
   pFont = pFontArrus;
   if ( current_npc_text && !byte_5B0938[0] )
     strcpy(byte_5B0938.data(), current_npc_text);
-  v5.uFrameWidth = game_viewport_width;
-  v5.uFrameZ = 452;
-  v1 = pFontArrus->CalcTextHeight(byte_5B0938.data(), &v5, 12, 0) + 7;
-  if ( 352 - v1 < 8 )
+  BranchlessDlg_window.uFrameWidth = game_viewport_width;
+  BranchlessDlg_window.uFrameZ = 452;
+  pTextHeight = pFontArrus->CalcTextHeight(byte_5B0938.data(), &BranchlessDlg_window, 12, 0) + 7;
+  if ( 352 - pTextHeight < 8 )
   {
     pFont = pFontCreate;
-    v1 = pFontCreate->CalcTextHeight(byte_5B0938.data(), &v5, 12, 0) + 7;
+    pTextHeight = pFontCreate->CalcTextHeight(byte_5B0938.data(), &BranchlessDlg_window, 12, 0) + 7;
   }
-  pRenderer->_4A6A68(8, 352 - v1,
-    pIcons_LOD->GetTexture(uTextureID_Leather),
-    pIcons_LOD->GetTexture(uTextureID_Leather)->uTextureHeight - v1);
-  pRenderer->DrawTextureIndexed(8, 347 - v1, pTexture_591428);
-  v2 = FitTextInAWindow(byte_5B0938.data(), pFont, &v5, 0xCu, 0);
-  pGUIWindow2->DrawText(pFont, 12, 354 - v1, 0, v2, 0, 0, 0);
+  pRenderer->GetLeather(8, 352 - pTextHeight, pIcons_LOD->GetTexture(uTextureID_Leather), pIcons_LOD->GetTexture(uTextureID_Leather)->uTextureHeight - pTextHeight);
+  pRenderer->DrawTextureIndexed(8, 347 - pTextHeight, pTexture_591428);
+  pGUIWindow2->DrawText(pFont, 12, 354 - pTextHeight, 0, FitTextInAWindow(byte_5B0938.data(), pFont, &BranchlessDlg_window, 12, 0), 0, 0, 0);
   pRenderer->DrawTextureRGB(0, 0x160u, pTexture_StatusBar);
   if ( pGUIWindow2->receives_keyboard_input_2 != WINDOW_INPUT_IN_PROGRESS)
   {
@@ -781,167 +676,108 @@
     {
       pGUIWindow2->receives_keyboard_input_2 = WINDOW_INPUT_NONE;
       strcpy(GameUI_Footer_TimedString.data(), (const char *)pKeyActionMap->pPressedKeysBuffer);
-LABEL_16:
       sub_4452BB();
       return;
     }
     if ( pGUIWindow2->receives_keyboard_input_2 != WINDOW_INPUT_CANCELLED)
       return;
     pGUIWindow2->receives_keyboard_input_2 = WINDOW_INPUT_NONE;
-LABEL_15:
     memset(GameUI_Footer_TimedString.data(), 0, 0xC8u);
-    goto LABEL_16;
+    sub_4452BB();
+    return;
   }
   if ( pGUIWindow2->ptr_1C == (void *)26 )
   {
     sprintf(Str, "%s %s", GameUI_Footer_TimedString, pKeyActionMap->pPressedKeysBuffer);
-    v3 = pFontLucida->GetLineWidth(Str);
     pGUIWindow2->DrawText(pFontLucida, 13, 357, 0, Str, 0, 0, 0);
-    pGUIWindow2->DrawFlashingInputCursor(v3 + 13, 357, pFontLucida);
+    pGUIWindow2->DrawFlashingInputCursor(pFontLucida->GetLineWidth(Str) + 13, 357, pFontLucida);
     return;
   }
   if ( pKeyActionMap->pPressedKeysBuffer[0] )
   {
     pKeyActionMap->SetWindowInputStatus(WINDOW_INPUT_NONE);
-    goto LABEL_15;
+    memset(GameUI_Footer_TimedString.data(), 0, 0xC8u);
+    sub_4452BB();
+    return;
   }
 }
 
-
 //----- (004443D5) --------------------------------------------------------
 const char *GameUI_GetMinimapHintText()
 {
-  int v0; // ST20_4@1
-  unsigned int v1; // esi@1
-  signed int v2; // ebx@1
   double v3; // st7@1
-  int v4; // esi@3
-  int v5; // edi@4
-  int v6; // eax@4
   int v7; // eax@4
-  BSPModel *v8; // ecx@4
-  unsigned __int8 v9; // zf@5
-  char v10; // sf@5
-  unsigned __int8 v11; // of@5
-  ODMFace *v12; // eax@6
-  __int16 v13; // cx@6
+  ODMFace *pFace; // eax@6
   const char *v14; // eax@8
-  const char *v15; // edi@8
   char *result; // eax@12
-  unsigned int v17; // eax@14
-  unsigned int v18; // [sp+Ch] [bp-20h]@1
+  unsigned int pMapID; // eax@14
   int v19; // [sp+10h] [bp-1Ch]@1
   int v20; // [sp+14h] [bp-18h]@1
-  char *v21; // [sp+18h] [bp-14h]@1
   unsigned int pY; // [sp+1Ch] [bp-10h]@1
-  int v23; // [sp+20h] [bp-Ch]@1
-  int v24; // [sp+24h] [bp-8h]@1
-  int pX; // [sp+28h] [bp-4h]@1
+  unsigned int pX; // [sp+28h] [bp-4h]@1
 
-  v24 = pParty->vPosition.x;
-  v0 = pParty->vPosition.y;
-  v1 = pOutdoor->uNumBModels;
-  *(float *)&v23 = (double)(signed int)viewparams->uMinimapZoom * 0.000015258789;
-  v2 = 0;
-  v18 = pOutdoor->uNumBModels;
-  v21 = 0;
-  pMouse->GetClickPos((unsigned int *)&pX, &pY);
-  v3 = 1.0 / *(float *)&v23;
-  v23 = pX - 557;
-  v19 = (signed __int64)((double)(pX - 557) * v3 + (double)v24);
-  v20 = (signed __int64)((double)v0 - (double)(signed int)(pY - 74) * v3);
-  if ( uCurrentlyLoadedLevelType != LEVEL_Outdoor || (*(float *)&v23 = 0.0, (signed int)v1 <= 0) )
+  result = 0;
+  pMouse->GetClickPos(&pX, &pY);
+  v3 = 1.0 / (float)((signed int)viewparams->uMinimapZoom * 0.000015258789);
+  v19 = (signed __int64)((double)(pX - 557) * v3 + (double)pParty->vPosition.x);
+  v20 = (signed __int64)((double)pParty->vPosition.y - (double)(pY - 74) * v3);
+  if ( uCurrentlyLoadedLevelType != LEVEL_Outdoor || pOutdoor->uNumBModels <= 0 )
   {
-LABEL_14:
-    v17 = pMapStats->GetMapInfo(pCurrentMapName);
-    if ( v17 == v2 )
+    pMapID = pMapStats->GetMapInfo(pCurrentMapName);
+    if ( pMapID == 0 )
       result = "No Maze Info for this maze on file!";
     else
-      result = pMapStats->pInfos[v17].pName;
+      result = pMapStats->pInfos[pMapID].pName;
   }
   else
   {
-    v4 = 0;
-    while ( 1 )
+    for ( uint j = 0; j < (signed int)pOutdoor->uNumBModels; ++j )
     {
-      pX = pOutdoor->pBModels[v4].vBoundingCenter.x - v19;
-      pY = pOutdoor->pBModels[v4].vBoundingCenter.y - v20;
-      v5 = abs((signed)pY);
-      v6 = abs((signed)pX);
-      v7 = int_get_vector_length(v6, v5, v2);
-      v8 = &pOutdoor->pBModels[0];
-      if ( v7 < 2 * pOutdoor->pBModels[v4].sBoundingRadius )
+      v7 = int_get_vector_length(abs((signed)pOutdoor->pBModels[j].vBoundingCenter.x - v19),
+                                 abs((signed)pOutdoor->pBModels[j].vBoundingCenter.y - v20), 0);
+      if ( v7 < 2 * pOutdoor->pBModels[j].sBoundingRadius )
       {
-        v11 = __OFSUB__(pOutdoor->pBModels[v4].uNumFaces, v2);
-        v9 = pOutdoor->pBModels[v4].uNumFaces == v2;
-        v10 = ((pOutdoor->pBModels[v4].uNumFaces - v2) & 0x80000000u) != 0;
-        v24 = v2;
-        if ( !((unsigned __int8)(v10 ^ v11) | v9) )
+        if ( pOutdoor->pBModels[j].uNumFaces )
         {
-          do
+          for ( uint i = 0; i < (signed int)pOutdoor->pBModels[j].uNumFaces; ++i )
           {
-            v12 = &v8[v4].pFaces[v2 / 0x134u];
-            v13 = v12->sCogTriggeredID;
-            if ( v13 )
+            pFace = &pOutdoor->pBModels[j].pFaces[i];
+            if ( pFace->sCogTriggeredID )
             {
-              if ( !(BYTE2(v12->uAttributes) & 0x10) )
+              if ( !(BYTE2(pFace->uAttributes) & 0x10) )
               {
-                v14 = GetEventHintString(v13);
-                v15 = v14;
+                v14 = GetEventHintString(pFace->sCogTriggeredID);
                 if ( v14 )
                 {
                   if ( _stricmp(v14, "") )
-                    v21 = (char *)v15;
+                    result = (char *)v14;
                 }
               }
             }
-            ++v24;
-            v8 = pOutdoor->pBModels;
-            v2 += 308;
           }
-          while ( v24 < (signed int)pOutdoor->pBModels[v4].uNumFaces );
         }
-        result = v21;
-        v2 = 0;
-        if ( v21 )
-          break;
+        if ( result )
+          return result;
       }
-      ++v23;
-      ++v4;
-      if ( v23 >= (signed int)v18 )
-        goto LABEL_14;
     }
+    pMapID = pMapStats->GetMapInfo(pCurrentMapName);
+    if ( pMapID == 0 )
+      result = "No Maze Info for this maze on file!";
+    else
+      result = pMapStats->pInfos[pMapID].pName;
+    return result;
   }
   return result;
 }
 
-
-
-
-
 //----- (0041D3B7) --------------------------------------------------------
 void GameUI_CharacterQuickRecord_Draw(GUIWindow *window, Player *player)
 {
-  //Player *pPlayer; // esi@1
-  int v6; // eax@5
-  int v7; // ebx@5
-  //unsigned int v8; // ecx@5
-  int v9; // ebx@5
-  //unsigned int v10; // eax@5
-  //int v11; // eax@5
-  //unsigned int v12; // ecx@5
   Texture *v13; // eax@6
-  unsigned int v14; // eax@12
   PlayerFrame *v15; // eax@12
-  //unsigned int v16; // eax@15
-  unsigned int v20; // eax@15
-  unsigned int v24; // eax@15
-  unsigned int v25; // eax@15
-  unsigned __int8 v28; // al@15
+  unsigned int pTextColor; // eax@15
   char *v29; // eax@16
-  __int64 v35; // ST38_8@22
   int v36; // esi@22
-  unsigned int v38; // eax@22
   char *v39; // eax@24
   signed int uFramesetID; // [sp+20h] [bp-8h]@9
   int uFramesetIDa; // [sp+20h] [bp-8h]@18
@@ -951,12 +787,9 @@
     if (player->pPlayerBuffs[i].uExpireTime > 0)
       ++numActivePlayerBuffs;
 
-  v6 = pFontArrus->uFontHeight + 162;
-  v7 = (numActivePlayerBuffs - 1) * pFontArrus->uFontHeight;
-  v9 = v6 + v7;
-  window->uFrameHeight = v9;
+  window->uFrameHeight = ((pFontArrus->uFontHeight + 162) + ((numActivePlayerBuffs - 1) * pFontArrus->uFontHeight));
   window->uFrameZ = window->uFrameWidth + window->uFrameX - 1;
-  window->uFrameW = v9 + window->uFrameY - 1;
+  window->uFrameW = ((pFontArrus->uFontHeight + 162) + ((numActivePlayerBuffs - 1) * pFontArrus->uFontHeight)) + window->uFrameY - 1;
   window->DrawMessageBox(0);
 
   if (player->IsEradicated())
@@ -969,14 +802,9 @@
       if ( !uFramesetID )
         uFramesetID = 1;
       if ( player->expression == CHARACTER_EXPRESSION_21)
-      {
         v15 = pPlayerFrameTable->GetFrameBy_y(&player->_expression21_frameset, &player->_expression21_animtime, pMiscTimer->uTimeElapsed);
-      }
       else
-      {
-        v14 = pMiscTimer->Time();
-        v15 = pPlayerFrameTable->GetFrameBy_x(uFramesetID, v14);
-      }
+        v15 = pPlayerFrameTable->GetFrameBy_x(uFramesetID, pMiscTimer->Time());
       player->field_1AA2 = v15->uTextureID - 1;
       v13 = pTextures_PlayerFaces[(unsigned int)window->ptr_1C][v15->uTextureID - 1];
   }
@@ -988,27 +816,23 @@
   strcat(pTmpBuf.data(), pTmpBuf2.data());
   strcat(pTmpBuf.data(), "\f00000\n");
 
-  v20 = UI_GetHealthManaStringColor(player->sHealth, player->GetMaxHealth());
-  sprintfex(pTmpBuf2.data(), "%s : \f%05u%d\f00000 / %d\n",
-            pGlobalTXT_LocalizationStrings[108], // "Hit Points"
-            v20, player->sHealth, player->GetMaxHealth());
+  pTextColor = UI_GetHealthManaStringColor(player->sHealth, player->GetMaxHealth());
+  sprintfex(pTmpBuf2.data(), "%s : \f%05u%d\f00000 / %d\n", pGlobalTXT_LocalizationStrings[108], // "Hit Points"
+            pTextColor, player->sHealth, player->GetMaxHealth());
   strcat(pTmpBuf.data(), pTmpBuf2.data());
 
-  v24 = UI_GetHealthManaStringColor(player->sMana, player->GetMaxMana());
-  sprintfex(pTmpBuf2.data(), "%s : \f%05u%d\f00000 / %d\n",
-            pGlobalTXT_LocalizationStrings[212], // "Spell Points"
-            v24, player->sMana, player->GetMaxMana());
+  pTextColor = UI_GetHealthManaStringColor(player->sMana, player->GetMaxMana());
+  sprintfex(pTmpBuf2.data(), "%s : \f%05u%d\f00000 / %d\n", pGlobalTXT_LocalizationStrings[212], // "Spell Points"
+            pTextColor, player->sMana, player->GetMaxMana());
   strcat(pTmpBuf.data(), pTmpBuf2.data());
 
-  v25 = player->GetMajorConditionIdx();
-  sprintfex(pTmpBuf2.data(), "%s: \f%05d%s\f00000\n",
-            pGlobalTXT_LocalizationStrings[47], // "Condition
-            GetConditionDrawColor(v25), aCharacterConditionNames[v25]);
+  pTextColor = player->GetMajorConditionIdx();
+  sprintfex(pTmpBuf2.data(), "%s: \f%05d%s\f00000\n", pGlobalTXT_LocalizationStrings[47], // "Condition
+            GetConditionDrawColor(pTextColor), aCharacterConditionNames[pTextColor]);
   strcat(pTmpBuf.data(), pTmpBuf2.data());
 
-  v28 = player->uQuickSpell;
-  if ( v28 )
-    v29 = pSpellStats->pInfos[v28].pShortName;
+  if ( player->uQuickSpell )
+    v29 = pSpellStats->pInfos[player->uQuickSpell].pShortName;
   else
     v29 = pGlobalTXT_LocalizationStrings[153];
   sprintfex(pTmpBuf2.data(), "%s: %s", pGlobalTXT_LocalizationStrings[172], v29); // "Quick Spell"
@@ -1022,11 +846,9 @@
     auto buff = player->pPlayerBuffs + i;
     if (buff->uExpireTime > 0)
     {
-      v35 = buff->uExpireTime - pParty->uTimePlayed;
       v36 = uFramesetIDa++ * pFontComic->uFontHeight + 134;
-      v38 = ui_game_character_record_playerbuff_colors[i];
-      window->DrawText(pFontComic, 52, v36, v38, aSpellNames[20 + i], 0, 0, 0);
-      sub_41D20D_buff_remaining_time_string(v36, window, v35, pFontComic);
+      window->DrawText(pFontComic, 52, v36, ui_game_character_record_playerbuff_colors[i], aSpellNames[20 + i], 0, 0, 0);
+      sub_41D20D_buff_remaining_time_string(v36, window, buff->uExpireTime - pParty->uTimePlayed, pFontComic);
     }
   }
 
@@ -1037,186 +859,119 @@
   window->DrawText(pFontArrus, 14, 114, 0, pTmpBuf.data(), 0, 0, 0);
 }
 
-
-
 //----- (0041A57E) --------------------------------------------------------
 void GameUI_QuickRef_Draw()
 {
-        //unsigned int v0; // ebx@1
-        //unsigned int v1; // eax@1
-        //Player *pPlayer; // ebp@2
-        //int v3; // eax@6
-        //int v4; // edi@6
-        unsigned int v5; // eax@7
-        unsigned int v6; // edi@9
-        unsigned int v7; // edi@11
-        //signed int v8; // eax@13
-        unsigned int v9; // eax@13
-        unsigned int v10; // edi@13
-        //int v11; // eax@15
-        unsigned int v12; // eax@15
-        unsigned int v13; // edi@15
-        //int v14; // eax@17
-        //int v15; // ST18_4@17
-        //int v16; // ebx@17
-        //int v17; // eax@17
-        unsigned int v18; // eax@17
-        unsigned int v19; // edi@17
-        //int v20; // eax@19
-        unsigned int v21; // edi@19
-        char *v22; // eax@21
-        unsigned int v23; // edi@21
-        //int v24; // eax@23
-        unsigned int v25; // edi@23
-        char *v26; // eax@25
-        unsigned int v27; // edi@25
-        int v28; // ecx@27
-        char *v29; // eax@27
-        signed int v30; // edx@27
-        unsigned int v31; // edi@31
-        unsigned int v32; // edi@33
-        const char *v33; // ST10_4@35
-        unsigned int v34; // eax@35
-        unsigned int v35; // edi@35
-        //unsigned __int8 v36; // al@37
-        char *v37; // eax@38
-        int v38; // eax@41
-        signed int v39; // edi@42
-        //char *v40; // eax@45
-        //unsigned int v41; // eax@45
-        signed int v43; // [sp+10h] [bp-1Ch]@1
-        unsigned int v44; // [sp+14h] [bp-18h]@2
-        int v45; // [sp+18h] [bp-14h]@1
-        //unsigned int v46; // [sp+1Ch] [bp-10h]@1
-        //unsigned int v47; // [sp+20h] [bp-Ch]@1
-        unsigned int v48; // [sp+24h] [bp-8h]@33
-        //unsigned int v49; // [sp+28h] [bp-4h]@1
+  unsigned int pTextColor; // eax@7
+  unsigned int pX; // [sp+14h] [bp-18h]@2
+  unsigned int pY; // edi@9
+  int pSkillsCount; // ecx@27
+  char *pText; // eax@38
+  int pFontHeight; // [sp+18h] [bp-14h]@1
 
-        //v0 = 0;
-        //v47 = TargetColor(0xFFu, 0xFFu, 0x9Bu);
-        //v49 = TargetColor(0xFFu, 0, 0);
-        //v46 = TargetColor(0, 0xFFu, 0);
-        //v1 = pIcons_LOD->LoadTexture("quikref", TEXTURE_16BIT_PALETTE);
   pRenderer->DrawTextureIndexed(8, 8, pIcons_LOD->LoadTexturePtr("quikref", TEXTURE_16BIT_PALETTE));
-        v43 = 0;
-        v45 = LOBYTE(pFontArrus->uFontHeight) + 1;
-        do
-        {
-            auto player = &pParty->pPlayers[v43];
-            v44 = 94 * v43 + 89;
-            if ( v43 == 0 )
-                pGUIWindow_CurrentMenu->DrawTextInRect(pFontArrus, 0x16u, 0x12u, 0, pGlobalTXT_LocalizationStrings[149], 60, 0);//Name
-            pGUIWindow_CurrentMenu->DrawTextInRect(pFontArrus, 94 * v43 + 89, 0x12u, ui_character_header_text_color, player->pName, 84, 0);
-            if ( v43 == 0 )
-                pGUIWindow_CurrentMenu->DrawTextInRect(pFontArrus, 0x16u, 0x2Fu, 0, pGlobalTXT_LocalizationStrings[131], 60, 0); //Уров.
-            sprintf(pTmpBuf.data(), "%lu", player->GetActualLevel());
-            if ( player->GetActualLevel() <= player->GetBaseLevel())
-                v5 = player->GetExperienceDisplayColor();
-            else
-              v5 = ui_character_bonus_text_color;
-            pGUIWindow_CurrentMenu->DrawTextInRect(pFontArrus, v44, 0x2Fu, v5, pTmpBuf.data(), 84, 0);
-            v6 = v45 + 47;
-            if ( v43 == 0 )
-                pGUIWindow_CurrentMenu->DrawTextInRect(pFontArrus, 0x16u, v45 + 47, 0, pGlobalTXT_LocalizationStrings[41], 60, 0);//Класс
-            pGUIWindow_CurrentMenu->DrawTextInRect(pFontArrus, v44, v6, 0, pClassNames[player->classType], 84, 0);
-            v7 = v45 + v6;
-            if ( v43 == 0 )
-                pGUIWindow_CurrentMenu->DrawTextInRect(pFontArrus, 0x16u, v7, 0, pGlobalTXT_LocalizationStrings[107], 60, 0);//Здор.
-            sprintf(pTmpBuf.data(), "%d", player->sHealth);
-            v9 = UI_GetHealthManaStringColor(player->sHealth, player->GetMaxHealth());
-            pGUIWindow_CurrentMenu->DrawTextInRect(pFontArrus, v44, v7, v9, pTmpBuf.data(), 84, 0);
-            v10 = v45 + v7;
-            if ( v43 == 0 )
-                pGUIWindow_CurrentMenu->DrawTextInRect(pFontArrus, 0x16u, v10, 0, pGlobalTXT_LocalizationStrings[209], 60, 0);//Мана
-            sprintf(pTmpBuf.data(), "%d", player->sMana);
-            v12 = UI_GetHealthManaStringColor(player->sMana, player->GetMaxMana());
-            pGUIWindow_CurrentMenu->DrawTextInRect(pFontArrus, v44, v10, v12, pTmpBuf.data(), 84, 0);
-            v13 = v45 + v10;
-            if ( v43 == 0 )
-                pGUIWindow_CurrentMenu->DrawTextInRect(pFontArrus, 0x16u, v13, 0, pGlobalTXT_LocalizationStrings[0], 60, 0);//Класс брони
-            sprintf(pTmpBuf.data(), "%d", player->GetActualAC());
-            v18 = UI_GetHealthManaStringColor(player->GetActualAC(), player->GetBaseAC());
-            pGUIWindow_CurrentMenu->DrawTextInRect(pFontArrus, v44, v13, v18, pTmpBuf.data(), 84, 0);
-            v19 = v45 + v13;
-            if ( !v43 )
-                pGUIWindow_CurrentMenu->DrawTextInRect(pFontArrus, 0x16u, v19, 0, pGlobalTXT_LocalizationStrings[18], 60, 0);//Атака
-            sprintf(pTmpBuf.data(), "%+d", player->GetActualAttack(0));
-            pGUIWindow_CurrentMenu->DrawTextInRect(pFontArrus, v44, v19, 0, pTmpBuf.data(), 84, 0);
-            v21 = v45 + v19;
-            if ( !v43 )
-                pGUIWindow_CurrentMenu->DrawTextInRect(pFontArrus, 0x16u, v21, 0, pGlobalTXT_LocalizationStrings[66], 60, 0);//Повр.
-            v22 = player->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);// Стрелять
-            sprintf(pTmpBuf.data(), "%+d", player->GetRangedAttack());
-            pGUIWindow_CurrentMenu->DrawTextInRect(pFontArrus, v44, v23, 0, pTmpBuf.data(), 84, 0);
-            v25 = v45 + v23;
-            if ( !v43 )
-                pGUIWindow_CurrentMenu->DrawTextInRect(pFontArrus, 0x16u, v25, 0, pGlobalTXT_LocalizationStrings[66], 60, 0);//Повр.
-            v26 = player->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);//Навыки
-            v28 = 0;
-            v29 = (char *)player->pActiveSkills;
-            v30 = 36;
-            do
-                {
-                if ( *(short *)v29 )
-                    ++v28;
-                v29 += 2;
-                --v30;
-                }
-                while ( v30 );
-                sprintf(pTmpBuf.data(), "%lu", v28);
-                pGUIWindow_CurrentMenu->DrawTextInRect(pFontArrus, v44, v27, 0, pTmpBuf.data(), 84, 0);
-                v31 = v45 + v27;
-                if ( !v43 )
-                    pGUIWindow_CurrentMenu->DrawTextInRect(pFontArrus, 0x16u, v31, 0, pGlobalTXT_LocalizationStrings[168], 60, 0);//Очки
-                sprintf(pTmpBuf.data(), "%lu", player->uSkillPoints);
-                pGUIWindow_CurrentMenu->DrawTextInRect(pFontArrus, v44, v31, player->uSkillPoints ? ui_character_bonus_text_color : ui_character_default_text_color, pTmpBuf.data(), 84, 0);
-                v32 = v45 + v31;
-                v48 = player->GetMajorConditionIdx();
-                if ( !v43 )
-                    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);//Б.Прим.
-                if (player->uQuickSpell)
-                    v37 = pSpellStats->pInfos[player->uQuickSpell].pShortName;
-                else
-                    v37 = pGlobalTXT_LocalizationStrings[153];//Нет
-                pGUIWindow_CurrentMenu->DrawTextInRect(pFontArrus, v44, v35, 0, v37, 84, 0);
-                ++v43;
-            }
-            while ( v43 < 4 );
+  pFontHeight = LOBYTE(pFontArrus->uFontHeight) + 1;
+  for ( uint i = 0; i < 4; ++i )
+  {
+    auto player = &pParty->pPlayers[i];
+    pX = 94 * i + 89;
+    if ( i == 0 )
+      pGUIWindow_CurrentMenu->DrawTextInRect(pFontArrus, 22, 18, 0, pGlobalTXT_LocalizationStrings[149], 60, 0);//Name
+    pGUIWindow_CurrentMenu->DrawTextInRect(pFontArrus, 94 * i + 89, 18, ui_character_header_text_color, player->pName, 84, 0);
+    if ( i == 0 )
+      pGUIWindow_CurrentMenu->DrawTextInRect(pFontArrus, 22, 47, 0, pGlobalTXT_LocalizationStrings[131], 60, 0); //Уров.
+    sprintf(pTmpBuf.data(), "%lu", player->GetActualLevel());
+    if ( player->GetActualLevel() <= player->GetBaseLevel())
+      pTextColor = player->GetExperienceDisplayColor();
+    else
+      pTextColor = ui_character_bonus_text_color;
+    pGUIWindow_CurrentMenu->DrawTextInRect(pFontArrus, pX, 47, pTextColor, pTmpBuf.data(), 84, 0);
+    pY = pFontHeight + 47;
+    if ( i == 0 )
+      pGUIWindow_CurrentMenu->DrawTextInRect(pFontArrus, 22, pFontHeight + 47, 0, pGlobalTXT_LocalizationStrings[41], 60, 0);//Класс
+    pGUIWindow_CurrentMenu->DrawTextInRect(pFontArrus, pX, pY, 0, pClassNames[player->classType], 84, 0);
+    pY = pFontHeight + pY;
+    if ( i == 0 )
+      pGUIWindow_CurrentMenu->DrawTextInRect(pFontArrus, 22, pY, 0, pGlobalTXT_LocalizationStrings[107], 60, 0);//Здор.
+    sprintf(pTmpBuf.data(), "%d", player->sHealth);
+    pTextColor = UI_GetHealthManaStringColor(player->sHealth, player->GetMaxHealth());
+    pGUIWindow_CurrentMenu->DrawTextInRect(pFontArrus, pX, pY, pTextColor, pTmpBuf.data(), 84, 0);
+    pY = pFontHeight + pY;
+    if ( i == 0 )
+      pGUIWindow_CurrentMenu->DrawTextInRect(pFontArrus, 22, pY, 0, pGlobalTXT_LocalizationStrings[209], 60, 0);//Мана
+    sprintf(pTmpBuf.data(), "%d", player->sMana);
+    pTextColor = UI_GetHealthManaStringColor(player->sMana, player->GetMaxMana());
+    pGUIWindow_CurrentMenu->DrawTextInRect(pFontArrus, pX, pY, pTextColor, pTmpBuf.data(), 84, 0);
+    pY = pFontHeight + pY;
+    if ( i == 0 )
+      pGUIWindow_CurrentMenu->DrawTextInRect(pFontArrus, 22, pY, 0, pGlobalTXT_LocalizationStrings[0], 60, 0);//Класс брони
+    sprintf(pTmpBuf.data(), "%d", player->GetActualAC());
+    pTextColor = UI_GetHealthManaStringColor(player->GetActualAC(), player->GetBaseAC());
+    pGUIWindow_CurrentMenu->DrawTextInRect(pFontArrus, pX, pY, pTextColor, pTmpBuf.data(), 84, 0);
+    pY = pFontHeight + pY;
+    if ( !i )
+      pGUIWindow_CurrentMenu->DrawTextInRect(pFontArrus, 22, pY, 0, pGlobalTXT_LocalizationStrings[18], 60, 0);//Атака
+    sprintf(pTmpBuf.data(), "%+d", player->GetActualAttack(0));
+    pGUIWindow_CurrentMenu->DrawTextInRect(pFontArrus, pX, pY, 0, pTmpBuf.data(), 84, 0);
+    pY = pFontHeight + pY;
+    if ( !i )
+      pGUIWindow_CurrentMenu->DrawTextInRect(pFontArrus, 22, pY, 0, pGlobalTXT_LocalizationStrings[66], 60, 0);//Повр.
+    pGUIWindow_CurrentMenu->DrawTextInRect(pFontArrus, pX, pY, 0, player->GetMeleeDamageString(), 84, 0);
+    pY = pFontHeight + pY;
+    if ( !i )
+      pGUIWindow_CurrentMenu->DrawTextInRect(pFontArrus, 22, pY, 0, pGlobalTXT_LocalizationStrings[203], 60, 0);// Стрелять
+    sprintf(pTmpBuf.data(), "%+d", player->GetRangedAttack());
+    pGUIWindow_CurrentMenu->DrawTextInRect(pFontArrus, pX, pY, 0, pTmpBuf.data(), 84, 0);
+    pY = pFontHeight + pY;
+    if ( !i )
+      pGUIWindow_CurrentMenu->DrawTextInRect(pFontArrus, 22, pY, 0, pGlobalTXT_LocalizationStrings[66], 60, 0);//Повр.
+    pGUIWindow_CurrentMenu->DrawTextInRect(pFontArrus, pX, pY, 0, player->GetRangedDamageString(), 84, 0);
+    pY = pFontHeight + pY;
+    if ( !i )
+      pGUIWindow_CurrentMenu->DrawTextInRect(pFontArrus, 22, pY, 0, pGlobalTXT_LocalizationStrings[205], 60, 0);//Навыки
+    pSkillsCount = 0;
+    for ( uint j = 0; j <= 36; ++j )
+    {
+      if ( player->pActiveSkills[j] )
+      ++pSkillsCount;
+    }
+    sprintf(pTmpBuf.data(), "%lu", pSkillsCount);
+    pGUIWindow_CurrentMenu->DrawTextInRect(pFontArrus, pX, pY, 0, pTmpBuf.data(), 84, 0);
+    pY = pFontHeight + pY;
+    if ( !i )
+      pGUIWindow_CurrentMenu->DrawTextInRect(pFontArrus, 22, pY, 0, pGlobalTXT_LocalizationStrings[168], 60, 0);//Очки
+    sprintf(pTmpBuf.data(), "%lu", player->uSkillPoints);
+    pGUIWindow_CurrentMenu->DrawTextInRect(pFontArrus, pX, pY, player->uSkillPoints ? ui_character_bonus_text_color : ui_character_default_text_color, pTmpBuf.data(), 84, 0);
+    pY = pFontHeight + pY;
+    if ( !i )
+      pGUIWindow_CurrentMenu->DrawTextInRect(pFontArrus, 22, pY, 0, pGlobalTXT_LocalizationStrings[45], 60, 0);//Сост.
+    pGUIWindow_CurrentMenu->DrawTextInRect(pFontArrus, pX, pY, pTextColor, aCharacterConditionNames[player->GetMajorConditionIdx()], 84, 0);
+    pY = pFontHeight + pY;
+    if ( !i )
+      pGUIWindow_CurrentMenu->DrawTextInRect(pFontArrus, 22, pY, 0, pGlobalTXT_LocalizationStrings[170], 60, 0);//Б.Прим.
+    if (player->uQuickSpell)
+      pText = pSpellStats->pInfos[player->uQuickSpell].pShortName;
+    else
+      pText = pGlobalTXT_LocalizationStrings[153];//Нет
+    pGUIWindow_CurrentMenu->DrawTextInRect(pFontArrus, pX, pY, 0, pText, 84, 0);
+  }
 
-            v38 = GetPartyReputation();
-            if ( v38 >= 0 )
-                {
-                if ( v38 <= 5 )
-                  v39 = ui_character_default_text_color;
-                else
-                  v39 = ui_character_bonus_text_color_neg;
-                }
-            else
-              v39 = ui_character_bonus_text_color;
+  if ( GetPartyReputation() >= 0 )
+  {
+    if ( GetPartyReputation() <= 5 )
+      pTextColor = ui_character_default_text_color;
+    else
+      pTextColor = ui_character_bonus_text_color_neg;
+  }
+  else
+    pTextColor = ui_character_bonus_text_color;
 
-            sprintf(pTmpBuf.data(), "%s: \f%05d%s\f00000", pGlobalTXT_LocalizationStrings[180], v39, GetReputationString(v38));//Reputation
-            pGUIWindow_CurrentMenu->DrawText(pFontArrus, 22, 323, 0, pTmpBuf.data(), 0, 0, 0);
-
-            sprintf(pTmpBuf.data(), "\r261%s: %d", pGlobalTXT_LocalizationStrings[84], pParty->GetPartyFame());// Fame Слава
-            pGUIWindow_CurrentMenu->DrawText(pFontArrus, 0, 323, 0, pTmpBuf.data(), 0, 0, 0);
+  sprintf(pTmpBuf.data(), "%s: \f%05d%s\f00000", pGlobalTXT_LocalizationStrings[180], pTextColor, GetReputationString(GetPartyReputation()));//Reputation
+  pGUIWindow_CurrentMenu->DrawText(pFontArrus, 22, 323, 0, pTmpBuf.data(), 0, 0, 0);
+  sprintf(pTmpBuf.data(), "\r261%s: %d", pGlobalTXT_LocalizationStrings[84], pParty->GetPartyFame());// Fame Слава
+  pGUIWindow_CurrentMenu->DrawText(pFontArrus, 0, 323, 0, pTmpBuf.data(), 0, 0, 0);
 }
 
-
-
 //----- (0041AD6E) --------------------------------------------------------
 void GameUI_DrawRightPanelItems()
 {
@@ -1258,69 +1013,52 @@
   }
 }
 
-
 //----- (0041B0C9) --------------------------------------------------------
 void GameUI_DrawLifeManaBars()
 {
   double v3; // st7@3
   double v7; // st7@25
-  Texture *v9; // [sp-4h] [bp-30h]@10
-  Texture *v10; // [sp+Ch] [bp-20h]@1
+  Texture *pTextureHealth; // [sp-4h] [bp-30h]@10
+  Texture *pTextureMana; // [sp+Ch] [bp-20h]@1
 
-
-  v10 = pIcons_LOD->GetTexture(uTextureID_BarBlue);
-
+  pTextureMana = pIcons_LOD->GetTexture(uTextureID_BarBlue);
   for (uint i = 0; i < 4; ++i)
   {
-    auto player = pParty->pPlayers + i;
-
-    if (player->sHealth > 0)
-	{
+    if (pParty->pPlayers[i].sHealth > 0)
+    {
       int v17 = 0;
       if (i == 2 || i == 3)
         v17 = 2;
-
-      v3 = (double)player->sHealth / (double)player->GetMaxHealth();
+      v3 = (double)pParty->pPlayers[i].sHealth / (double)pParty->pPlayers[i].GetMaxHealth();
       if( v3 > 0.5 )
       {
         if ( v3 > 1.0 )
           v3 = 1.0;
-		v9 = pIcons_LOD->GetTexture(uTextureID_BarGreen);
+        pTextureHealth = pIcons_LOD->GetTexture(uTextureID_BarGreen);
       }
       else if ( v3 > 0.25 )
-        v9 = pIcons_LOD->GetTexture(uTextureID_BarYellow);
+        pTextureHealth = pIcons_LOD->GetTexture(uTextureID_BarYellow);
       else if ( v3 > 0.0 )
-        v9 = pIcons_LOD->GetTexture(uTextureID_BarRed);
-
-
-		if( v3 > 0.0 )
-		{
-			pRenderer->SetTextureClipRect(v17 + pHealthBarPos[i],
-                                          (signed __int64)((1.0 - v3) * v9->uTextureHeight) + 402,
-                                          v17 + pHealthBarPos[i] + v9->uTextureWidth,
-                                          v9->uTextureHeight + 402);
-
-		  pRenderer->DrawTextureIndexed(v17 + pHealthBarPos[i], 402, v9);
-		  pRenderer->ResetTextureClipRect();
-		}
-	}
-
-
-    if (player->sMana > 0)
+        pTextureHealth = pIcons_LOD->GetTexture(uTextureID_BarRed);
+      if( v3 > 0.0 )
+      {
+        pRenderer->SetTextureClipRect(v17 + pHealthBarPos[i], (signed __int64)((1.0 - v3) * pTextureHealth->uTextureHeight) + 402,
+                                          v17 + pHealthBarPos[i] + pTextureHealth->uTextureWidth, pTextureHealth->uTextureHeight + 402);
+        pRenderer->DrawTextureIndexed(v17 + pHealthBarPos[i], 402, pTextureHealth);
+        pRenderer->ResetTextureClipRect();
+      }
+    }
+    if (pParty->pPlayers[i].sMana > 0)
     {
-      v7 = player->sMana / (double)player->GetMaxMana();
+      v7 = pParty->pPlayers[i].sMana / (double)pParty->pPlayers[i].GetMaxMana();
       if ( v7 > 1.0 )
         v7 = 1.0;
-
       int v17 = 0;
       if (i == 2)
         v17 = 1;
-
-      pRenderer->SetTextureClipRect(v17 + pManaBarPos[i],
-                                   (signed __int64)((1.0 - v7) * v10->uTextureHeight) + 402,
-                                   v17 + pManaBarPos[i] + v10->uTextureWidth,
-                                   v10->uTextureHeight + 402);
-      pRenderer->DrawTextureIndexed(v17 + pManaBarPos[i], 402, v10);
+      pRenderer->SetTextureClipRect(v17 + pManaBarPos[i], (signed __int64)((1.0 - v7) * pTextureMana->uTextureHeight) + 402,
+                                    v17 + pManaBarPos[i] + pTextureMana->uTextureWidth, pTextureMana->uTextureHeight + 402);
+      pRenderer->DrawTextureIndexed(v17 + pManaBarPos[i], 402, pTextureMana);
       pRenderer->ResetTextureClipRect();
     }
   }
@@ -1329,8 +1067,7 @@
 //----- (0041B3B6) --------------------------------------------------------
 void GameUI_DrawRightPanel()
 {
-  pRenderer->DrawTextureTransparent(pViewport->uViewportBR_X, 0,
-                                    pIcons_LOD->GetTexture(uTextureID_right_panel));
+  pRenderer->DrawTextureTransparent(pViewport->uViewportBR_X, 0, pIcons_LOD->GetTexture(uTextureID_right_panel));
 }
 
 //----- (0041B3E2) --------------------------------------------------------
@@ -1344,12 +1081,11 @@
   GameUI_DrawRightPanelItems();
 }
 
-
 //----- (0041C047) --------------------------------------------------------
 void GameUI_Footer_2()
 {
-    char *v1; // edx@2
-    int v5; // eax@5
+  char *v1; // edx@2
+  int v5; // eax@5
 
   pRenderer->DrawTextureRGB(0, 352, pTexture_StatusBar);
   if (GameUI_Footer_TimeLeft)
@@ -1368,88 +1104,64 @@
 //----- (0041C0B8) --------------------------------------------------------
 void GameUI_SetFooterString(const char *pStr)
 {
-    const char *v1; // esi@1
-    int i; // eax@7
-    int j; // eax@11
+  const char *v1; // esi@1
 
-    v1 = pStr;
-    if ( pStr && strcmp(pStr, "test") && !IsBadStringPtrA(v1, 1) && (*v1 || GameUI_Footer_TimeLeft) )
-        {
-        if ( GameUI_Footer_TimeLeft )
-            {
-            for ( i = pFontLucida->GetLineWidth(GameUI_Footer_TimedString.data());
-                i > 450;
-                i = pFontLucida->GetLineWidth(GameUI_Footer_TimedString.data()) )
-                GameUI_Footer_TimedString[strlen(GameUI_Footer_TimedString.data()) - 1] = 0;
-            }
-        else
-            {
-            strcpy(pFooterString.data(), v1);
-            for ( j = pFontLucida->GetLineWidth(pFooterString.data());
-                j > 450;
-                j = pFontLucida->GetLineWidth(pFooterString.data()) )
-                pFooterString[strlen(pFooterString.data()) - 1] = 0;
-            }
-        }
+  v1 = pStr;
+  if ( pStr && strcmp(pStr, "test") && !IsBadStringPtrA(pStr, 1) && (*v1 || GameUI_Footer_TimeLeft) )
+  {
+    if ( GameUI_Footer_TimeLeft )
+    {
+      for ( int i = pFontLucida->GetLineWidth(GameUI_Footer_TimedString.data()); i > 450; i = pFontLucida->GetLineWidth(GameUI_Footer_TimedString.data()) )
+        GameUI_Footer_TimedString[strlen(GameUI_Footer_TimedString.data()) - 1] = 0;
     }
+    else
+    {
+      strcpy(pFooterString.data(), v1);
+      for ( int j = pFontLucida->GetLineWidth(pFooterString.data()); j > 450; j = pFontLucida->GetLineWidth(pFooterString.data()) )
+        pFooterString[strlen(pFooterString.data()) - 1] = 0;
+    }
+  }
+}
 
 //----- (0041C179) --------------------------------------------------------
 void GameUI_Footer()
 {
-    //unsigned int v0; // ebp@1
-    char *v1; // edi@5
-    int v2; // eax@5
-    unsigned int v3; // esi@5
-    size_t v4; // eax@6
-    GUIFont *v5; // ecx@6
-    int v6; // eax@9
-    size_t v7; // eax@10
-    GUIFont *v8; // ecx@10
-    char v9; // zf@12
-    //unsigned int v10; // ST08_4@13
-    int v11; // eax@13
+  char *v1; // edi@5
+  int v2; // eax@5
+  int v6; // eax@9
+  char v9; // zf@12
 
-    if ( pFooterString[0] || GameUI_Footer_TimeLeft || bForceDrawFooter )
-        {
-        pRenderer->DrawTextureRGB(0, 352u, pTexture_StatusBar);
-        if ( GameUI_Footer_TimeLeft )
-            {
-            v1 = GameUI_Footer_TimedString.data();
-            v2 = pFontLucida->GetLineWidth(GameUI_Footer_TimedString.data());
-            v3 = 450;
-            while ( v2 > 450 )
-                {
-                v4 = strlen(GameUI_Footer_TimedString.data());
-                v5 = pFontLucida;
-                GameUI_Footer_TimedString[v4 - 1] = 0;
-                v2 = pFontLucida->GetLineWidth(GameUI_Footer_TimedString.data());
-                }
-            }
-        else
-            {
-            v1 = pFooterString.data();
-            v6 = pFontLucida->GetLineWidth(pFooterString.data());
-            v3 = 450;
-            while ( v6 > 450 )
-                {
-                v7 = strlen(pFooterString.data());
-                v8 = pFontLucida;
-                pFooterString[v7 - 1] = 0;
-                v6 = pFontLucida->GetLineWidth(pFooterString.data());
-                }
-            }
-        v9 = *v1 == 0;
-        bForceDrawFooter = 0;
-        if ( !v9 )
-            {
-            v11 = pFontLucida->AlignText_Center(v3, v1);
-            pPrimaryWindow->DrawText(pFontLucida, v11 + 11, 357, uGameUIFontMain, v1, 0, 0, uGameUIFontShadow);
-            }
-        }
+  if ( pFooterString[0] || GameUI_Footer_TimeLeft || bForceDrawFooter )
+  {
+    pRenderer->DrawTextureRGB(0, 352, pTexture_StatusBar);
+    if ( GameUI_Footer_TimeLeft )
+    {
+      v1 = GameUI_Footer_TimedString.data();
+      v2 = pFontLucida->GetLineWidth(GameUI_Footer_TimedString.data());
+      while ( v2 > 450 )
+      {
+        GameUI_Footer_TimedString[strlen(GameUI_Footer_TimedString.data()) - 1] = 0;
+        v2 = pFontLucida->GetLineWidth(GameUI_Footer_TimedString.data());
+      }
     }
+    else
+    {
+      v1 = pFooterString.data();
+      v6 = pFontLucida->GetLineWidth(pFooterString.data());
+      while ( v6 > 450 )
+      {
+        pFooterString[strlen(pFooterString.data()) - 1] = 0;
+        v6 = pFontLucida->GetLineWidth(pFooterString.data());
+      }
+    }
+    v9 = *v1 == 0;
+    bForceDrawFooter = 0;
+    if ( !v9 )
+      pPrimaryWindow->DrawText(pFontLucida, pFontLucida->AlignText_Center(450, v1) + 11, 357, uGameUIFontMain, v1, 0, 0, uGameUIFontShadow);
+  }
+}
 // 5C35BC: using guessed type int bForceDrawFooter;
 
-
 //----- (00420EFF) --------------------------------------------------------
 void  GameUI_WritePointedObjectStatusString()
 {
@@ -1464,7 +1176,6 @@
   unsigned __int8 v9; // c0@23
   unsigned __int8 v10; // c3@23
   enum UIMessageType pMessageType1; // esi@24
-  //int v12; // edx@25
   char *v13; // ecx@28
   int v14; // eax@41
   ItemGen *pItemGen; // ecx@44
@@ -1486,12 +1197,8 @@
   signed int v30; // ecx@88
   const char *v31; // eax@91
   __int16 v32; // fps@109
-  //unsigned __int8 v33; // c0@109
-  //unsigned __int8 v34; // c3@109
   enum UIMessageType pMessageType2; // esi@110
-  //int v36; // edx@111
   enum UIMessageType pMessageType3; // edx@117
-  //int v38; // ecx@118
   const char *v39; // [sp-8h] [bp-E8h]@20
   char *v40; // [sp-8h] [bp-E8h]@83
   int v41; // [sp-4h] [bp-E4h]@20
@@ -1501,7 +1208,6 @@
   unsigned int v45; // [sp+DCh] [bp-4h]@21
 
   v13 = nullptr;
-
   pMouse->uPointingObjectID = 0;
   pMouse->GetClickPos(&pX, &pY);
   if ( pX < 0 || (signed int)pX > 639 || pY < 0 || (signed int)pY > 479 )//( (pX & 0x80000000u) != 0 || (signed int)pX > 639 || (pY & 0x80000000u) != 0 || (signed int)pY > 479 )
@@ -1519,7 +1225,6 @@
         || (signed int)pY > (signed int)pViewport->uScreen_BR_Y )
         v18 = -1;
       if ( v18 == -1 )
-        //goto LABEL_61;
       {
         pMouse->uPointingObjectID = 0;
         if ( pMouse->uPointingObjectID == 0 )
@@ -1544,10 +1249,8 @@
     {
       v30 = v19;
       if ( pObjectList->pObjects[pSpriteObjects[v30].uObjectDescID].uFlags & 0x10 )
-        //goto LABEL_73;
       {
         pMouse->uPointingObjectID = 0;
-        //goto LABEL_50;
         uLastPointedObjectID = 1;
         if ( pMouse->uPointingObjectID == 0 )
         {
@@ -1563,9 +1266,7 @@
       if ( v18 >= (signed int)0x2000000u || pParty->pPickedItem.uItemID )
       {
         v22 = pSpriteObjects[v30].stru_24.GetDisplayName();
-//LABEL_93:
         v26 = v22;
-        //goto LABEL_87;
         GameUI_SetFooterString(v26);
         if ( pMouse->uPointingObjectID == 0 )
         {
@@ -1597,7 +1298,6 @@
               v26 = pNPCTopics[stru_5E4C90._decor_events[v24->_idx_in_stru123 - 75] + 379].pTopic;
             else
               v26 = pDecorationList->pDecorations[v24->uDecorationDescID].field_20;
-            //goto LABEL_87;
             GameUI_SetFooterString(v26);
             if ( pMouse->uPointingObjectID == 0 )
             {
@@ -1612,7 +1312,6 @@
           }
           v22 = GetEventHintString(v25);
           if ( !v22 )
-            //goto _return;
           {
             if ( pMouse->uPointingObjectID == 0 )
             {
@@ -1625,9 +1324,7 @@
             uLastPointedObjectID = pMouse->uPointingObjectID;
             return;
           }
-          //goto LABEL_93;
           v26 = v22;
-          //goto LABEL_87;
           GameUI_SetFooterString(v26);
           if ( pMouse->uPointingObjectID == 0 )
           {
@@ -1648,12 +1345,9 @@
             {
 			  v18b = (signed int)(unsigned __int16)v18 >> 9;
               v21 = pOutdoor->pBModels[v18b].pFaces[v19 & 0x3F].sCogTriggeredID;
-              //goto LABEL_71;
               if ( !v21 || (v22 = GetEventHintString(v21)) == 0 )
-                //goto LABEL_73;
               {
                 pMouse->uPointingObjectID = 0;
-                //goto LABEL_50;
                 uLastPointedObjectID = 1;
                 if ( pMouse->uPointingObjectID == 0 )
                 {
@@ -1666,9 +1360,7 @@
                 uLastPointedObjectID = pMouse->uPointingObjectID;
                 return;
               }
-              //goto LABEL_93;
               v26 = v22;
-              //goto LABEL_87;
               GameUI_SetFooterString(v26);
               if ( pMouse->uPointingObjectID == 0 )
               {
@@ -1685,12 +1377,9 @@
             if ( BYTE3(pFace->uAttributes) & 6 )
             {
               v21 = pIndoor->pFaceExtras[pFace->uFaceExtraID].uEventID;
-//LABEL_71:
               if ( !v21 || (v22 = GetEventHintString(v21)) == 0 )
-                //goto LABEL_73;
               {
                 pMouse->uPointingObjectID = 0;
-                //goto LABEL_50;
                 uLastPointedObjectID = 1;
                 if ( pMouse->uPointingObjectID == 0 )
                 {
@@ -1703,9 +1392,7 @@
                 uLastPointedObjectID = pMouse->uPointingObjectID;
                 return;
               }
-              //goto LABEL_93;
               v26 = v22;
-              //goto LABEL_87;
               GameUI_SetFooterString(v26);
               if ( pMouse->uPointingObjectID == 0 )
               {
@@ -1719,9 +1406,7 @@
               return;
             }
           }
-//LABEL_73:
           pMouse->uPointingObjectID = 0;
-          //goto LABEL_50;
           uLastPointedObjectID = 1;
           if ( pMouse->uPointingObjectID == 0 )
           {
@@ -1734,9 +1419,7 @@
           uLastPointedObjectID = pMouse->uPointingObjectID;
           return;
         }
-//LABEL_61:
         pMouse->uPointingObjectID = 0;
-        //goto _return;
         if ( pMouse->uPointingObjectID == 0 )
         {
           if ( uLastPointedObjectID != 0 )
@@ -1749,7 +1432,6 @@
         return;
       }
       if ( v18 >= 335544320 )
-        //goto LABEL_61;
       {
         pMouse->uPointingObjectID = 0;
         if ( pMouse->uPointingObjectID == 0 )
@@ -1773,9 +1455,7 @@
       strncpy(pTmpBuf.data(), v40, 0x7D0u);
     }
     v26 = v28;
-//LABEL_87:
     GameUI_SetFooterString(v26);
-    //goto _return;
     if ( pMouse->uPointingObjectID == 0 )
     {
       if ( uLastPointedObjectID != 0 )
@@ -1809,17 +1489,13 @@
 				&& (signed int)pY >= (signed int)pButton->uY
 				&& (signed int)pY <= (signed int)pButton->uW )
 			  {
-	//LABEL_24:
 				pMessageType1 = (UIMessageType)pButton->field_1C;
 				if ( pMessageType1 )
 				{
 				  pMessageQueue_50CBD0->AddMessage(pMessageType1, pButton->msg_param, 0);
 				}
-	//LABEL_28:
 				v13 = pButton->pButtonName;
-	//_set_status_and_ret:
 				GameUI_SetFooterString(v13);
-	//LABEL_131:
 				uLastPointedObjectID = 1;
 				return;
 			  }
@@ -1855,7 +1531,6 @@
 				  && (signed int)pY >= (signed int)pButton->uY
 				  && (signed int)pY <= (signed int)pButton->uW )
 				{
-	//LABEL_19:
 				  pPlayer = pPlayers[uActiveCharacter];
 				  v5 = LOBYTE(pPlayer->pActiveSkills[pButton->msg_param]);
 				  v6 = pPlayer->uSkillPoints;
@@ -1872,7 +1547,6 @@
 				  }
 				  sprintf(Str1, v39, v41);
 				  v13 = Str1;
-				  //goto _set_status_and_ret;
 				  GameUI_SetFooterString(v13);
 				  uLastPointedObjectID = 1;
 				  return;
@@ -1895,7 +1569,6 @@
     if ( pCurrentScreen == SCREEN_CHEST )
     {
       ChestUI_WritePointedObjectStatusString();
-      //goto _return;
       if ( pMouse->uPointingObjectID == 0 )
       {
         if ( uLastPointedObjectID != 0 )
@@ -1912,7 +1585,6 @@
       if ( dialog_menu_id != HOUSE_DIALOGUE_SHOP_BUY_STANDARD
         || (v16 = pRenderer->pActiveZBuffer[pX + pSRZBufferLineOffsets[pY]], v16 == 0)
         || v16 == -65536 )
-        //goto _return;
       {
         if ( pMouse->uPointingObjectID == 0 )
         {
@@ -1926,12 +1598,9 @@
         return;
        }
       pItemGen = (ItemGen *)((char *)&pParty->pPickedItem + 36 * (v16 + 12 * (unsigned int)window_SpeakInHouse->ptr_1C) + 4);
-//LABEL_49:
       v17 = pItemGen->GetDisplayName();
       GameUI_SetFooterString(v17);
-//LABEL_50:
       uLastPointedObjectID = 1;
-//_return:
       if ( pMouse->uPointingObjectID == 0 )
       {
         if ( uLastPointedObjectID != 0 )
@@ -1947,7 +1616,6 @@
     {
       v14 = pRenderer->pActiveZBuffer[pX + pSRZBufferLineOffsets[pY]];
       if ( v14 == 0 || v14 == -65536 || (unsigned int)v14 >= 0x1388 )
-        //goto _return;
       {
         if ( pMouse->uPointingObjectID == 0 )
         {
@@ -1961,7 +1629,6 @@
         return;
       }
       pItemGen = (ItemGen *)&pPlayers[uActiveCharacter]->pInventoryItemList[v14-1];
-      //goto LABEL_49;
       v17 = pItemGen->GetDisplayName();
       GameUI_SetFooterString(v17);
       uLastPointedObjectID = 1;
@@ -1993,7 +1660,6 @@
           {
             pMessageType3 = (UIMessageType)pButton->field_1C;
             if ( pMessageType3 == 0 ) // For books
-              //goto LABEL_28;
             {
               v13 = pButton->pButtonName;
               GameUI_SetFooterString(v13);
@@ -2002,7 +1668,6 @@
             }
 
             pMessageQueue_50CBD0->AddMessage(pMessageType3, pButton->msg_param, 0);
-            //goto LABEL_131;
             uLastPointedObjectID = 1;
             return;
           }
@@ -2027,7 +1692,6 @@
                   if ( pMessageType2 != 0 )
                       pMessageQueue_50CBD0->AddMessage(pMessageType2, pButton->msg_param, 0);
 
-                  //goto LABEL_28;
                   v13 = pButton->pButtonName;
                   GameUI_SetFooterString(v13);
                   uLastPointedObjectID = 1;
@@ -2043,7 +1707,6 @@
               && (signed int)pX <= (signed int)pButton->uZ
               && (signed int)pY >= (signed int)pButton->uY
               && (signed int)pY <= (signed int)pButton->uW )
-              //goto LABEL_19;
             {
               pPlayer = pPlayers[uActiveCharacter];
               v5 = LOBYTE(pPlayer->pActiveSkills[pButton->msg_param]);
@@ -2061,7 +1724,6 @@
               }
               sprintf(Str1, v39, v41);
               v13 = Str1;
-              //goto _set_status_and_ret;
               GameUI_SetFooterString(v13);
               uLastPointedObjectID = 1;
               return;
@@ -2071,7 +1733,6 @@
       }
     }
     pMouse->uPointingObjectID = sub_46A99B();
-    //goto _return;
     if ( pMouse->uPointingObjectID == 0 )
     {
       if ( uLastPointedObjectID != 0 )
@@ -2085,7 +1746,6 @@
   }
 }
 
-
 //----- (0044158F) --------------------------------------------------------
 void GameUI_DrawCharacterSelectionFrame()
 {
@@ -2094,22 +1754,12 @@
                                       pIcons_LOD->GetTexture(uTextureID_GameUI_CharSelectionFrame));
 }
 
-
-
 //----- (0044162D) --------------------------------------------------------
 void GameUI_DrawPartySpells()
 {
     unsigned int v0; // ebp@1
-    //signed int v1; // edi@1
-    //int v2; // eax@2
-    //int v3; // ecx@5
-    //__int16 *v4; // ebx@25
-    //Player *v5; // edi@26
-    //unsigned int v6; // [sp-4h] [bp-1Ch]@11
     Texture *v7; // [sp-4h] [bp-1Ch]@12
-    //unsigned int v8; // [sp-4h] [bp-1Ch]@20
     Texture *v9; // [sp-4h] [bp-1Ch]@21
-    //Player **v10; // [sp+10h] [bp-8h]@25
 
     v0 = (signed __int64)((double)GetTickCount() * 0.050000001);
     //v1 = 0;
@@ -2169,8 +1819,6 @@
         }
     }
 
-
-
 //----- (004921C1) --------------------------------------------------------
 void GameUI_DrawPortraits(unsigned int _this)
 {
--- a/mm7_2.cpp	Fri Aug 30 01:49:29 2013 +0600
+++ b/mm7_2.cpp	Sun Sep 01 17:10:29 2013 +0600
@@ -443,7 +443,7 @@
       pRenderer->uTargetGMask | pRenderer->uTargetBMask);
 
   auto pTex = pIcons_LOD->GetTexture(uTextureID_Leather);
-  pRenderer->_4A6A68(8, 352 - v0, pTex, pTex->uTextureHeight - v0);
+  pRenderer->GetLeather(8, 352 - v0, pTex, pTex->uTextureHeight - v0);
 
   pRenderer->DrawTextureIndexed(8u, 347 - v0, pTexture_591428);
   v1 = FitTextInAWindow(pGlobalTXT_LocalizationStrings[575], pFontArrus, &window, 0xDu, 0);