diff mm7_2.cpp @ 531:72a92f0ec766

AlchemistDialog clean 1
author zipi
date Sun, 03 Mar 2013 11:24:48 +0000
parents 3d2292597422
children a4fe569c0d63
line wrap: on
line diff
--- a/mm7_2.cpp	Sun Mar 03 10:42:32 2013 +0000
+++ b/mm7_2.cpp	Sun Mar 03 11:24:48 2013 +0000
@@ -1669,66 +1669,65 @@
   v104.uFrameZ = 334;
   v108 = GenerateColorAsCloseAsPossibleToR8G8B8InTargetFormat(0xFFu, 0xFFu, 0xFFu);
   v106 = GenerateColorAsCloseAsPossibleToR8G8B8InTargetFormat(0xE1u, 0xCDu, 0x23u);
-  if ( dword_F8B19C == 1 )
-  {
-    result = (POINT *)sub_4B1784_check_if_player_concious__draw_warning_else_mess_with_dlg_win();
-    if ( result )
-    {
-      pShopOptions[0] = pGlobalTXT_LocalizationStrings[134];
-      pShopOptions[1] = pGlobalTXT_LocalizationStrings[152];
-      pShopOptions[2] = pGlobalTXT_LocalizationStrings[159];
-      v72 = 0;
-      pShopOptions[3] = pGlobalTXT_LocalizationStrings[160];
-      v73 = pShopOptions;
-      do
-      {
-        v74 = pFontArrus->CalcTextHeight(*v73, &v104, 0, 0);
-        ++v73;
-        v72 += v74;
-      }
-      while ( (signed int)v73 < (signed int)&unk_F8B1C8 );
-      v75 = pDialogueWindow;
-      Str = (char *)((174 - v72) / 4);
-      result = (POINT *)pDialogueWindow->pStartingPosActiveItem;
-      v76 = (int)((char *)result + pDialogueWindow->pNumPresenceButton);
-      v77 = (174 - 4 * (174 - v72) / 4 - v72) / 2 - (174 - v72) / 4 / 2 + 138;
-      v28 = -pDialogueWindow->pNumPresenceButton < 0;
-      v112 = pDialogueWindow->pStartingPosActiveItem;
-      if ( v28 ^ __OFSUB__((int)result, v76) )
-      {
-        _this = (Player *)2;
-        v111 = (const char **)pShopOptions;
-        do
-        {
-          v78 = v75->GetControl(v112);
-          v79 = v111;
-          v78->uY = (unsigned int)&Str[v77];
-          v80 = pFontArrus->CalcTextHeight(*v79, &v104, 0, 0);
-          v81 = v78->uY;
-          v82 = _this;
-          v78->uHeight = v80;
-          v77 = v81 + v80 - 1;
-          v78->uW = v77;
-          v83 = v106;
-          if ( (Player *)pDialogueWindow->pCurrentPosActiveItem != v82 )
-            v83 = v108;
-          v104.DrawTitleText(pFontArrus, 0, v81, v83, *v111, 3u);
-          v75 = pDialogueWindow;
-          _this = (Player *)((char *)_this + 1);
-          ++v111;
-          ++v112;
-          result = (POINT *)(pDialogueWindow->pNumPresenceButton + pDialogueWindow->pStartingPosActiveItem);
-        }
-        while ( (signed int)v112 < (signed int)result );
-      }
-    }
-  }
-  else
-  {
-    if ( dword_F8B19C != 2 )
-    {
-      if ( dword_F8B19C == 3 )
-      {
+  switch(dword_F8B19C)
+  {
+	case 1:
+		{
+		result = (POINT *)sub_4B1784_check_if_player_concious__draw_warning_else_mess_with_dlg_win();
+		if ( result )
+		{
+		  pShopOptions[0] = pGlobalTXT_LocalizationStrings[134];
+		  pShopOptions[1] = pGlobalTXT_LocalizationStrings[152];
+		  pShopOptions[2] = pGlobalTXT_LocalizationStrings[159];
+		  v72 = 0;
+		  pShopOptions[3] = pGlobalTXT_LocalizationStrings[160];
+		  v73 = pShopOptions;
+		  do
+		  {
+			v74 = pFontArrus->CalcTextHeight(*v73, &v104, 0, 0);
+			++v73;
+			v72 += v74;
+		  }
+		  while ( (signed int)v73 < (signed int)&unk_F8B1C8 );
+		  v75 = pDialogueWindow;
+		  Str = (char *)((174 - v72) / 4);
+		  result = (POINT *)pDialogueWindow->pStartingPosActiveItem;
+		  v76 = (int)((char *)result + pDialogueWindow->pNumPresenceButton);
+		  v77 = (174 - 4 * (174 - v72) / 4 - v72) / 2 - (174 - v72) / 4 / 2 + 138;
+		  v28 = -pDialogueWindow->pNumPresenceButton < 0;
+		  v112 = pDialogueWindow->pStartingPosActiveItem;
+		  if ( v28 ^ __OFSUB__((int)result, v76) )
+		  {
+			_this = (Player *)2;
+			v111 = (const char **)pShopOptions;
+			do
+			{
+			  v78 = v75->GetControl(v112);
+			  v79 = v111;
+			  v78->uY = (unsigned int)&Str[v77];
+			  v80 = pFontArrus->CalcTextHeight(*v79, &v104, 0, 0);
+			  v81 = v78->uY;
+			  v82 = _this;
+			  v78->uHeight = v80;
+			  v77 = v81 + v80 - 1;
+			  v78->uW = v77;
+			  v83 = v106;
+			  if ( (Player *)pDialogueWindow->pCurrentPosActiveItem != v82 )
+				v83 = v108;
+			  v104.DrawTitleText(pFontArrus, 0, v81, v83, *v111, 3u);
+			  v75 = pDialogueWindow;
+			  _this = (Player *)((char *)_this + 1);
+			  ++v111;
+			  ++v112;
+			  result = (POINT *)(pDialogueWindow->pNumPresenceButton + pDialogueWindow->pStartingPosActiveItem);
+			}
+			while ( (signed int)v112 < (signed int)result );
+		  }
+		}
+		return result;
+		}
+	case 3:
+		{
         draw_leather();
         CharacterUI_InventoryTab_Draw(uActiveCharacter, 1);
         DrawTextAtStatusBar(pGlobalTXT_LocalizationStrings[199], 0);
@@ -1750,11 +1749,19 @@
         v45 = _this->_490EEE(v87, 4, v44, 3);
         v39 = v113;
         v38 = (char *)pMerchantsSellPhrases[v45];
-        goto LABEL_45;
-      }
-      if ( dword_F8B19C == 4 )
-      {
-        draw_leather();
+        v21 = BuilDialogueString(v38, v39, v87, (char *)v89, v91, v93);
+        v92 = 3;
+        v90 = v21;
+        v88 = v108;
+        v86 = v3;
+        v85 = v3;
+        v84 = &v104;
+        v40 = pFontArrus->CalcTextHeight(v21, v84, v85, v86);
+        return (POINT *)v104.DrawTitleText(pFontArrus, v3, (174 - v40) / 2 + 138, v88, v90, v92);
+		}
+	case 4:
+		{
+		draw_leather();
         CharacterUI_InventoryTab_Draw(uActiveCharacter, 1);
         DrawTextAtStatusBar(pGlobalTXT_LocalizationStrings[197], 0);
         result = (POINT *)sub_4B1784_check_if_player_concious__draw_warning_else_mess_with_dlg_win();
@@ -1778,14 +1785,14 @@
           v42 = _this->_490EEE(v37, 4, v41, 4);
           v39 = v113;
           v38 = (char *)pMerchantsIdentifyPhrases[v42];
-          goto LABEL_45;
-        }
-        v89 = window_SpeakInHouse->ptr_1C;
-        v38 = "%24";
-        v87 = v37;
-LABEL_44:
-        v39 = uActiveCharacter - 1;
-LABEL_45:
+        }
+		else
+		{
+			v89 = window_SpeakInHouse->ptr_1C;
+			v38 = "%24";
+			v87 = v37;
+	        v39 = uActiveCharacter - 1;
+		}
         v21 = BuilDialogueString(v38, v39, v87, (char *)v89, v91, v93);
         v92 = 3;
         v90 = v21;
@@ -1793,11 +1800,12 @@
         v86 = v3;
         v85 = v3;
         v84 = &v104;
-        goto LABEL_46;
-      }
-      if ( dword_F8B19C == 94 )
-      {
-        draw_leather();
+        v40 = pFontArrus->CalcTextHeight(v21, v84, v85, v86);
+        return (POINT *)v104.DrawTitleText(pFontArrus, v3, (174 - v40) / 2 + 138, v88, v90, v92);
+		}
+	case 94:
+		{
+		draw_leather();
         CharacterUI_InventoryTab_Draw(uActiveCharacter, 1);
         pShopOptions[0] = pGlobalTXT_LocalizationStrings[200];
         pShopOptions[1] = pGlobalTXT_LocalizationStrings[113];
@@ -1846,13 +1854,294 @@
           while ( (signed int)v112 < (signed int)result );
         }
         return result;
-      }
-      if ( dword_F8B19C != 95 )
-      {
-        result = (POINT *)(dword_F8B19C - 96);
-        if ( dword_F8B19C != 96
-          || (result = (POINT *)sub_4B1784_check_if_player_concious__draw_warning_else_mess_with_dlg_win()) == 0 )
-          return result;
+		}
+	case 2:
+		{
+		pRenderer->DrawTextureIndexed(8u, 8u, ShopTexture);
+		v3 = 0;
+		v114 = 0;
+		do
+		{
+			// if ( pParty->field_777C[9 * (v114 + 12 * (unsigned int)window_SpeakInHouse->ptr_1C)] )
+			if ( pParty->StandartItemsInShops[(unsigned int)window_SpeakInHouse->ptr_1C][v114].uItemID);
+			{
+				v46 = ItemsInShopTexture[v114];
+				v47 = 152 - v46->uTextureHeight;
+				if ( (signed int)v47 < 1 )
+					v47 = 0;
+				v48 = 75 * v114 - v46->uTextureWidth / 2 + 40;
+				if ( v114 )
+				{
+					if ( v114 == 5 )
+					{
+						v49 = ItemsInShopTexture[5]->uTextureWidth;
+						if ( (signed int)v48 > 457 - v49 )
+						v48 = 457 - v49;
+					}
+				}
+				else if ( (signed int)v48 < 18 )
+					v48 = 18;
+				pRenderer->DrawTextureTransparent(v48, v47, v46);
+				sub_40F92A(&pRenderer->pActiveZBuffer[v48 + 640 * v47], ItemsInShopTexture[v114], v114 + 1);
+	        }
+			++v114;
+		}
+		while ( v114 < 6 );
+		v114 = 0;
+		do
+		{
+			//  if ( pParty->field_777C[9 * (v114 + 12 * (unsigned int)window_SpeakInHouse->ptr_1C) + 54] )
+			if ( pParty->StandartItemsInShops[(unsigned int)window_SpeakInHouse->ptr_1C][v114+1].uItemID);
+			{
+			  v50 = ItemsInShopTexture[v114 + 6];
+			  v51 = 308 - v50->uTextureHeight;
+			  if ( (signed int)v51 < 1 )
+				v51 = 0;
+			  v52 = 75 * v114 - v50->uTextureWidth / 2 + 40;
+			  if ( v114 )
+			  {
+				if ( v114 == 5 )
+				{
+				  v53 = ItemsInShopTexture[11]->uTextureWidth;
+				  if ( (signed int)v52 > 457 - v53 )
+					v52 = 457 - v53;
+				}
+			  }
+			  else
+			  {
+				if ( (signed int)v52 < 18 )
+				  v52 = 18;
+			  }
+			  pRenderer->DrawTextureTransparent(v52, v51, v50);
+			  sub_40F92A(&pRenderer->pActiveZBuffer[v52 + 640 * v51], ItemsInShopTexture[v114 + 6], v114 + 7);
+			}
+			++v114;
+		}
+		while ( v114 < 6 );
+		result = (POINT *)sub_4B1784_check_if_player_concious__draw_warning_else_mess_with_dlg_win();
+		if ( result )
+		{
+			v62 = 0;
+			v109 = 0;
+			do
+			{
+			 // if ( pParty->field_777C[9 * (v62 + 12 * (unsigned int)window_SpeakInHouse->ptr_1C)] )
+				if ( pParty->StandartItemsInShops[(unsigned int)window_SpeakInHouse->ptr_1C][v62].uItemID);
+					++v109;
+				++v62;
+			}
+			while ( v62 < 12 );
+			v63 = GetAsyncKeyState(17);
+			v64 = _this->CanSteal();
+			Str = (char *)v64;
+			if ( v63 && v64 )
+			{
+				v65 = pGlobalTXT_LocalizationStrings[185];
+			}
+			else if ( dword_F8B19C == 2 )
+			{
+				v65 = pGlobalTXT_LocalizationStrings[195];
+			}
+			else
+			{
+				v65 = pGlobalTXT_LocalizationStrings[196];
+			}
+			DrawTextAtStatusBar(v65, 0);
+			if ( !v109 )
+			{
+				v104.DrawCurrentTime( pParty->field_3C.field_50[ (unsigned int)window_SpeakInHouse->ptr_1C] - pParty->uTimePlayed);
+				return 0;
+			}
+			v66 = pMouse->GetCursorPos(&v98);
+			result = (POINT *)(v66->x + pSRZBufferLineOffsets[pMouse->GetCursorPos(&v96)->y]);
+			if ( pRenderer->pActiveZBuffer[(int)result] & 0xFFFF )
+			{
+				v67 = (pRenderer->pActiveZBuffer[(int)result] & 0xFFFF) - 1;
+				v109 = v67;
+				v68 = (int)window_SpeakInHouse->ptr_1C;
+				//  v69 = 9 * (v67 + 12 * v68);
+				v70 = (ItemGen *)&pParty->StandartItemsInShops[v68][v67];
+				if ( dword_F8B19C != 2 )
+					v70 = &pParty->SpecialItemsInShops[(int)v68][v67];//v70 = (ItemGen *)&pParty->field_C59C[v69 + 724];
+				if ( !v63 || !Str )
+				{
+					v93 = 0;
+					v91 = 2;
+					v89 = window_SpeakInHouse->ptr_1C;
+					v87 = v70;
+					v113 = uActiveCharacter - 1;
+					v71 = _this->_490EEE(v70, 4, v68, 2);
+					v39 = v113;
+					v38 = (char *)pMerchantsBuyPhrases[v71];
+				}
+				else
+				{
+					v38 = pGlobalTXT_LocalizationStrings[181];
+					v93 = 0;
+					v91 = 2;
+					v89 = window_SpeakInHouse->ptr_1C;
+					v87 = v70;
+					v39 = uActiveCharacter - 1;
+				}
+				v21 = BuilDialogueString(v38, v39, v87, (char *)v89, v91, v93);
+				v92 = 3;
+				v90 = v21;
+				v88 = v108;
+				v86 = v3;
+				v85 = v3;
+				v84 = &v104;
+				v40 = pFontArrus->CalcTextHeight(v21, v84, v85, v86);
+				return (POINT *)v104.DrawTitleText(pFontArrus, v3, (174 - v40) / 2 + 138, v88, v90, v92);
+			}
+		}
+		return result;
+		}
+	case 95:
+		{
+		pRenderer->DrawTextureIndexed(8u, 8u, ShopTexture);
+		v3 = 0;
+		v114 = 0;
+		do
+		{
+			//if ( pParty->field_C59C[9 * (v114 + 12 * (unsigned int)window_SpeakInHouse->ptr_1C) + 724] )
+			if (pParty->SpecialItemsInShops[(unsigned int)window_SpeakInHouse->ptr_1C][v114].uItemID)
+			{
+			  v54 = ItemsInShopTexture[v114];
+			  v55 = 152 - v54->uTextureHeight;
+			  if ( (signed int)v55 < 1 )
+				v55 = 0;
+			  v56 = 75 * v114 - v54->uTextureWidth / 2 + 40;
+			  if ( v114 )
+			  {
+				if ( v114 == 5 )
+				{
+				  v57 = ItemsInShopTexture[5]->uTextureWidth;
+				  if ( (signed int)v56 > 457 - v57 )
+					v56 = 457 - v57;
+				}
+			  }
+			  else
+			  {
+				if ( (signed int)v56 < 18 )
+				  v56 = 18;
+			  }
+			  pRenderer->DrawTextureTransparent(v56, v55, v54);
+			  sub_40F92A(&pRenderer->pActiveZBuffer[v56 + 640 * v55], ItemsInShopTexture[v114], v114 + 1);
+			}
+			++v114;
+		}
+		while ( v114 < 6 );
+		v114 = 0;
+		do
+		{
+		// if ( pParty->field_C59C[9 * (v114 + 12 * (unsigned int)window_SpeakInHouse->ptr_1C) + 778] )   //weak 
+			if (pParty->SpecialItemsInShops[(unsigned int)window_SpeakInHouse->ptr_1C][(signed int)v114].uItemID) //not itemid
+			{
+				v58 = ItemsInShopTexture[v114 + 6];
+				v59 = 308 - v58->uTextureHeight;
+				if ( (signed int)v59 < 1 )
+				v59 = 0;
+				v60 = 75 * v114 - v58->uTextureWidth / 2 + 40;
+				if ( v114 )
+				{
+					if ( v114 == 5 )
+					{
+						v61 = ItemsInShopTexture[11]->uTextureWidth;
+						if ( (signed int)v60 > 457 - v61 )
+						v60 = 457 - v61;
+					}
+				}
+				else
+				{
+					if ( (signed int)v60 < 18 )
+						v60 = 18;
+				}
+				pRenderer->DrawTextureTransparent(v60, v59, v58);
+				sub_40F92A(&pRenderer->pActiveZBuffer[v60 + 640 * v59], ItemsInShopTexture[v114 + 6], v114 + 7);
+			}
+			++v114;
+		}
+		while ( v114 < 6 );
+		result = (POINT *)sub_4B1784_check_if_player_concious__draw_warning_else_mess_with_dlg_win();
+		if ( result )
+		{
+			v62 = 0;
+			v109 = 0;
+			do
+			{
+				//if ( pParty->field_C59C[9 * (v62 + 12 * (unsigned int)window_SpeakInHouse->ptr_1C) + 724] )
+				if (pParty->SpecialItemsInShops[(unsigned int)window_SpeakInHouse->ptr_1C][v62].uItemID)
+					++v109;
+				++v62;
+			}
+			while ( v62 < 12 );
+				v63 = GetAsyncKeyState(17);
+			v64 = _this->CanSteal();
+			Str = (char *)v64;
+			if ( v63 && v64 )
+			{
+				v65 = pGlobalTXT_LocalizationStrings[185];
+			}
+			else
+			{
+				v65 = pGlobalTXT_LocalizationStrings[195];
+				if ( dword_F8B19C != 2 )
+					v65 = pGlobalTXT_LocalizationStrings[196];
+			}
+			DrawTextAtStatusBar(v65, 0);
+			if ( !v109 )
+			{
+				v104.DrawCurrentTime( pParty->field_3C.field_50[ (unsigned int)window_SpeakInHouse->ptr_1C] - pParty->uTimePlayed);
+				return 0;
+			}
+			v66 = pMouse->GetCursorPos(&v98);
+			result = (POINT *)(v66->x + pSRZBufferLineOffsets[pMouse->GetCursorPos(&v96)->y]);
+			if ( pRenderer->pActiveZBuffer[(int)result] & 0xFFFF )
+			{
+				v67 = (pRenderer->pActiveZBuffer[(int)result] & 0xFFFF) - 1;
+				v109 = v67;
+				v68 = (int)window_SpeakInHouse->ptr_1C;
+				//  v69 = 9 * (v67 + 12 * v68);
+				v70 = (ItemGen *)&pParty->StandartItemsInShops[v68][v67];
+				if ( dword_F8B19C != 2 )
+					v70 = &pParty->SpecialItemsInShops[(int)v68][v67];//v70 = (ItemGen *)&pParty->field_C59C[v69 + 724];
+				if ( !v63 || !Str )
+				{
+					v93 = 0;
+					v91 = 2;
+					v89 = window_SpeakInHouse->ptr_1C;
+					v87 = v70;
+					v113 = uActiveCharacter - 1;
+					v71 = _this->_490EEE(v70, 4, v68, 2);
+					v39 = v113;
+					v38 = (char *)pMerchantsBuyPhrases[v71];
+				}
+				else
+				{
+					v38 = pGlobalTXT_LocalizationStrings[181];
+					v93 = 0;
+					v91 = 2;
+					v89 = window_SpeakInHouse->ptr_1C;
+					v87 = v70;
+					v39 = uActiveCharacter - 1;
+				}
+				v21 = BuilDialogueString(v38, v39, v87, (char *)v89, v91, v93);
+				v92 = 3;
+				v90 = v21;
+				v88 = v108;
+				v86 = v3;
+				v85 = v3;
+				v84 = &v104;
+				v40 = pFontArrus->CalcTextHeight(v21, v84, v85, v86);
+				return (POINT *)v104.DrawTitleText(pFontArrus, v3, (174 - v40) / 2 + 138, v88, v90, v92);
+			}
+		}
+		return result;
+		}
+	case 96:
+		{
+        if (!sub_4B1784_check_if_player_concious__draw_warning_else_mess_with_dlg_win())
+          return 0;
         v2 = pDialogueWindow;
         v3 = 0;
         v4 = window_SpeakInHouse->ptr_1C;
@@ -1941,221 +2230,14 @@
         v86 = 0;
         v85 = 0;
         v84 = &v104;
-LABEL_46:
         v40 = pFontArrus->CalcTextHeight(v21, v84, v85, v86);
         return (POINT *)v104.DrawTitleText(pFontArrus, v3, (174 - v40) / 2 + 138, v88, v90, v92);
-      }
-    }
-    pRenderer->DrawTextureIndexed(8u, 8u, ShopTexture);
-    v3 = 0;
-    v114 = 0;
-    if ( dword_F8B19C == 2 )
-    {
-      do
-      {
-       // if ( pParty->field_777C[9 * (v114 + 12 * (unsigned int)window_SpeakInHouse->ptr_1C)] )
-	  if ( pParty->StandartItemsInShops[(unsigned int)window_SpeakInHouse->ptr_1C][v114].uItemID);
-        {
-          v46 = ItemsInShopTexture[v114];
-          v47 = 152 - v46->uTextureHeight;
-          if ( (signed int)v47 < 1 )
-            v47 = 0;
-          v48 = 75 * v114 - v46->uTextureWidth / 2 + 40;
-          if ( v114 )
-          {
-            if ( v114 == 5 )
-            {
-              v49 = ItemsInShopTexture[5]->uTextureWidth;
-              if ( (signed int)v48 > 457 - v49 )
-                v48 = 457 - v49;
-            }
-          }
-          else
-          {
-            if ( (signed int)v48 < 18 )
-              v48 = 18;
-          }
-          pRenderer->DrawTextureTransparent(v48, v47, v46);
-          sub_40F92A(&pRenderer->pActiveZBuffer[v48 + 640 * v47], ItemsInShopTexture[v114], v114 + 1);
-        }
-        ++v114;
-      }
-      while ( v114 < 6 );
-      v114 = 0;
-      do
-      {
-      //  if ( pParty->field_777C[9 * (v114 + 12 * (unsigned int)window_SpeakInHouse->ptr_1C) + 54] )
-	  if ( pParty->StandartItemsInShops[(unsigned int)window_SpeakInHouse->ptr_1C][v114+1].uItemID);
-        {
-          v50 = ItemsInShopTexture[v114 + 6];
-          v51 = 308 - v50->uTextureHeight;
-          if ( (signed int)v51 < 1 )
-            v51 = 0;
-          v52 = 75 * v114 - v50->uTextureWidth / 2 + 40;
-          if ( v114 )
-          {
-            if ( v114 == 5 )
-            {
-              v53 = ItemsInShopTexture[11]->uTextureWidth;
-              if ( (signed int)v52 > 457 - v53 )
-                v52 = 457 - v53;
-            }
-          }
-          else
-          {
-            if ( (signed int)v52 < 18 )
-              v52 = 18;
-          }
-          pRenderer->DrawTextureTransparent(v52, v51, v50);
-          sub_40F92A(&pRenderer->pActiveZBuffer[v52 + 640 * v51], ItemsInShopTexture[v114 + 6], v114 + 7);
-        }
-        ++v114;
-      }
-      while ( v114 < 6 );
-    }
-    else
-    {
-      do
-      {
-        //if ( pParty->field_C59C[9 * (v114 + 12 * (unsigned int)window_SpeakInHouse->ptr_1C) + 724] )
-	  if (pParty->SpecialItemsInShops[(unsigned int)window_SpeakInHouse->ptr_1C][v114].uItemID)
-        {
-          v54 = ItemsInShopTexture[v114];
-          v55 = 152 - v54->uTextureHeight;
-          if ( (signed int)v55 < 1 )
-            v55 = 0;
-          v56 = 75 * v114 - v54->uTextureWidth / 2 + 40;
-          if ( v114 )
-          {
-            if ( v114 == 5 )
-            {
-              v57 = ItemsInShopTexture[5]->uTextureWidth;
-              if ( (signed int)v56 > 457 - v57 )
-                v56 = 457 - v57;
-            }
-          }
-          else
-          {
-            if ( (signed int)v56 < 18 )
-              v56 = 18;
-          }
-          pRenderer->DrawTextureTransparent(v56, v55, v54);
-          sub_40F92A(&pRenderer->pActiveZBuffer[v56 + 640 * v55], ItemsInShopTexture[v114], v114 + 1);
-        }
-        ++v114;
-      }
-      while ( v114 < 6 );
-      v114 = 0;
-      do
-      {
-       // if ( pParty->field_C59C[9 * (v114 + 12 * (unsigned int)window_SpeakInHouse->ptr_1C) + 778] )   //weak 
-	     if (pParty->SpecialItemsInShops[(unsigned int)window_SpeakInHouse->ptr_1C][(signed int)v114].uItemID) //not itemid
-        {
-          v58 = ItemsInShopTexture[v114 + 6];
-          v59 = 308 - v58->uTextureHeight;
-          if ( (signed int)v59 < 1 )
-            v59 = 0;
-          v60 = 75 * v114 - v58->uTextureWidth / 2 + 40;
-          if ( v114 )
-          {
-            if ( v114 == 5 )
-            {
-              v61 = ItemsInShopTexture[11]->uTextureWidth;
-              if ( (signed int)v60 > 457 - v61 )
-                v60 = 457 - v61;
-            }
-          }
-          else
-          {
-            if ( (signed int)v60 < 18 )
-              v60 = 18;
-          }
-          pRenderer->DrawTextureTransparent(v60, v59, v58);
-          sub_40F92A(&pRenderer->pActiveZBuffer[v60 + 640 * v59], ItemsInShopTexture[v114 + 6], v114 + 7);
-        }
-        ++v114;
-      }
-      while ( v114 < 6 );
-    }
-    result = (POINT *)sub_4B1784_check_if_player_concious__draw_warning_else_mess_with_dlg_win();
-    if ( result )
-    {
-      v62 = 0;
-      v109 = 0;
-      if ( dword_F8B19C == 2 )
-      {
-        do
-        {
-         // if ( pParty->field_777C[9 * (v62 + 12 * (unsigned int)window_SpeakInHouse->ptr_1C)] )
-		if ( pParty->StandartItemsInShops[(unsigned int)window_SpeakInHouse->ptr_1C][v62].uItemID);
-            ++v109;
-          ++v62;
-        }
-        while ( v62 < 12 );
-      }
-      else
-      {
-        do
-        {
-          //if ( pParty->field_C59C[9 * (v62 + 12 * (unsigned int)window_SpeakInHouse->ptr_1C) + 724] )
-		if (pParty->SpecialItemsInShops[(unsigned int)window_SpeakInHouse->ptr_1C][v62].uItemID)
-            ++v109;
-          ++v62;
-        }
-        while ( v62 < 12 );
-      }
-      v63 = GetAsyncKeyState(17);
-      v64 = _this->CanSteal();
-      Str = (char *)v64;
-      if ( v63 && v64 )
-      {
-        v65 = pGlobalTXT_LocalizationStrings[185];
-      }
-      else
-      {
-        v65 = pGlobalTXT_LocalizationStrings[195];
-        if ( dword_F8B19C != 2 )
-          v65 = pGlobalTXT_LocalizationStrings[196];
-      }
-      DrawTextAtStatusBar(v65, 0);
-      if ( !v109 )
-		  {
-        v104.DrawCurrentTime( pParty->field_3C.field_50[ (unsigned int)window_SpeakInHouse->ptr_1C] - pParty->uTimePlayed);
-		return 0;
-		  }
-      v66 = pMouse->GetCursorPos(&v98);
-      result = (POINT *)(v66->x + pSRZBufferLineOffsets[pMouse->GetCursorPos(&v96)->y]);
-      if ( pRenderer->pActiveZBuffer[(int)result] & 0xFFFF )
-      {
-        v67 = (pRenderer->pActiveZBuffer[(int)result] & 0xFFFF) - 1;
-        v109 = v67;
-        v68 = (int)window_SpeakInHouse->ptr_1C;
-      //  v69 = 9 * (v67 + 12 * v68);
-        v70 = (ItemGen *)&pParty->StandartItemsInShops[v68][v67];
-        if ( dword_F8B19C != 2 )
-          v70 = &pParty->SpecialItemsInShops[(int)v68][v67];//v70 = (ItemGen *)&pParty->field_C59C[v69 + 724];
-        if ( !v63 || !Str )
-        {
-          v93 = 0;
-          v91 = 2;
-          v89 = window_SpeakInHouse->ptr_1C;
-          v87 = v70;
-          v113 = uActiveCharacter - 1;
-          v71 = _this->_490EEE(v70, 4, v68, 2);
-          v39 = v113;
-          v38 = (char *)pMerchantsBuyPhrases[v71];
-          goto LABEL_45;
-        }
-        v38 = pGlobalTXT_LocalizationStrings[181];
-        v93 = 0;
-        v91 = 2;
-        v89 = window_SpeakInHouse->ptr_1C;
-        v87 = v70;
-        goto LABEL_44;
-      }
-    }
-  }
-  return result;
+		}
+	default:
+		{
+			return (POINT *)dword_F8B19C - 96;
+		}
+  }
 }