changeset 875:b7246c149957

Слияние
author Ritor1
date Mon, 01 Apr 2013 17:37:42 +0600
parents 231523a39203 (diff) 2db21a810d48 (current diff)
children 726f9c2ff381 7eb081d32614
files mm7_2.cpp mm7_4.cpp
diffstat 5 files changed, 61 insertions(+), 103 deletions(-) [+]
line wrap: on
line diff
--- a/GUIWindow.cpp	Mon Apr 01 13:39:39 2013 +0200
+++ b/GUIWindow.cpp	Mon Apr 01 17:37:42 2013 +0600
@@ -1028,12 +1028,7 @@
   int v8; // edi@46
   int v9; // eax@50
   unsigned int v10; // [sp-10h] [bp-C8h]@53
-  //unsigned __int16 v11; // [sp-Ch] [bp-C4h]@53
-  //unsigned int v12; // [sp-Ch] [bp-C4h]@60
-  char *v13; // [sp-8h] [bp-C0h]@50
-  //unsigned int v14; // [sp-8h] [bp-C0h]@60
-  unsigned int v15; // [sp-4h] [bp-BCh]@50
-  //Texture *v16; // [sp-4h] [bp-BCh]@60
+  char *pTitleText; // [sp-8h] [bp-C0h]@50
   GUIWindow pDialogWindow; // [sp+Ch] [bp-ACh]@4
   GUIWindow pWindow; // [sp+60h] [bp-58h]@2
   int pColor2; // [sp+B4h] [bp-4h]@2
@@ -1051,10 +1046,7 @@
   {
     pDialogWindow.uFrameWidth = 130;
     pDialogWindow.uFrameHeight = 2 * LOBYTE(pFontCreate->uFontHeight);
-
-    //v2 = (const char *)p2DEvents_minus1_::04[13 * (unsigned int)ptr_507BC0->ptr_1C];
     pHouseName = p2DEvents[(unsigned int)window_SpeakInHouse->ptr_1C - 1].pName;
-
     if ( pHouseName )
     {
       v3 = 2 * LOBYTE(pFontCreate->uFontHeight) - 6 - pFontCreate->CalcTextHeight(pHouseName, &pDialogWindow, 0, 0);
@@ -1108,59 +1100,44 @@
       }
       return;
     }
-    v8 = 0;
-    while ( 1 )
+    for ( v8 = 0; v8 < uNumDialogueNPCPortraits; ++v8 )
     {
-      //pRenderer->DrawTextureIndexed(*(&pNPCPortraits_x + v8 + 6 * uNumDialogueNPCPortraits - 6) - 4,
-      //                              *(&pNPCPortraits_y + v8 + 6 * uNumDialogueNPCPortraits - 6) - 4,
       pRenderer->DrawTextureIndexed(pNPCPortraits_x[uNumDialogueNPCPortraits - 1][v8] - 4,
-                                    pNPCPortraits_y[uNumDialogueNPCPortraits - 1][v8] - 4, &pIcons_LOD->pTextures[uTextureID_50795C]); // frame around portrait
-      //pRenderer->DrawTextureIndexed(*(&pNPCPortraits_x + v8 + 6 * uNumDialogueNPCPortraits - 6),
-      //  *(&pNPCPortraits_y + v8 + 6 * uNumDialogueNPCPortraits - 6), pDialogueNPCPortraits[v8]);
+                                    pNPCPortraits_y[uNumDialogueNPCPortraits - 1][v8] - 4, &pIcons_LOD->pTextures[uTextureID_50795C]);
       pRenderer->DrawTextureIndexed(pNPCPortraits_x[uNumDialogueNPCPortraits - 1][v8],
                                     pNPCPortraits_y[uNumDialogueNPCPortraits - 1][v8], pDialogueNPCPortraits[v8]);
       if ( uNumDialogueNPCPortraits < 4 )
-        break;
-LABEL_57:
-      ++v8;
-      if ( v8 >= uNumDialogueNPCPortraits )
       {
-        if ( pDialogueNPCCount == uNumDialogueNPCPortraits && uHouse_ExitPic )
+        if ( v8 + 1 == uNumDialogueNPCPortraits && uHouse_ExitPic )
         {
-          pRenderer->DrawTextureIndexed(556, 451, &pIcons_LOD->pTextures[uTextureID_x_x_u]);
-          pRenderer->DrawTextureIndexed(476, 451, &pIcons_LOD->pTextures[uTextureID_x_ok_u]);
+          pTitleText = pMapStats->pInfos[uHouse_ExitPic].pName;
+          v9 = 94 * v8 + 113;
         }
         else
         {
-          pRenderer->DrawTextureIndexed(471, 445, &pIcons_LOD->pTextures[uExitCancelTextureId]);
+          if ( !v8 && dword_591080 )
+          {
+            pTitleText = (char *)p2DEvents[(unsigned int)window_SpeakInHouse->ptr_1C - 1].pProprieterTitle;
+            pWindow.DrawTitleText(pFontCreate, 0x1E3u, 113, pColor2, pTitleText, 3);
+            continue;
+          }
+          pTitleText = HouseNPCData[v8 - (dword_591080 != 0)]->pName;
+          v9 = pNPCPortraits_x[6 + (uNumDialogueNPCPortraits - 1)][v8] + pDialogueNPCPortraits[v8]->uTextureHeight + 2;
         }
-       return;
+        v10 = v9;
+        pWindow.DrawTitleText(pFontCreate, 0x1E3u, v10, pColor2, pTitleText, 3);
       }
     }
-    if ( v8 + 1 == uNumDialogueNPCPortraits && uHouse_ExitPic )
-    {
-      v15 = 3;
-      v13 = pMapStats->pInfos[uHouse_ExitPic].pName;
-      v9 = 94 * v8 + 113;
-    }
-    else
-    {
-      if ( !v8 && dword_591080 )
+      if ( pDialogueNPCCount == uNumDialogueNPCPortraits && uHouse_ExitPic )
       {
-        v15 = 3;
-        //v13 = (char *)p2DEvents_minus1__10[13 * (unsigned int)ptr_507BC0->ptr_1C];
-        v13 = (char *)p2DEvents[(unsigned int)window_SpeakInHouse->ptr_1C - 1].pProprieterTitle;
-        pWindow.DrawTitleText(pFontCreate, 0x1E3u, 113, pColor2, v13, 3);
-        goto LABEL_57;
+        pRenderer->DrawTextureIndexed(556, 451, &pIcons_LOD->pTextures[uTextureID_x_x_u]);
+        pRenderer->DrawTextureIndexed(476, 451, &pIcons_LOD->pTextures[uTextureID_x_ok_u]);
       }
-      v15 = 3;
-      v13 = HouseNPCData[v8 - (dword_591080 != 0)]->pName;
-      v9 = pNPCPortraits_x[6 + (uNumDialogueNPCPortraits - 1)][v8] + pDialogueNPCPortraits[v8]->uTextureHeight + 2;
-    }
-    //v11 = pColor2;
-    v10 = v9;
-    pWindow.DrawTitleText(pFontCreate, 0x1E3u, v10, pColor2, v13, v15);
-    goto LABEL_57;
+      else
+      {
+        pRenderer->DrawTextureIndexed(471, 445, &pIcons_LOD->pTextures[uExitCancelTextureId]);
+      }
+      return;
   }
   v4 = (char *)pDialogueNPCCount - 1;
   pRenderer->DrawTextureIndexed(pNPCPortraits_x[0][0] - 4, pNPCPortraits_y[0][0] - 4, &pIcons_LOD->pTextures[uTextureID_50795C]);
@@ -1255,7 +1232,6 @@
   }
 }
 
-
 //----- (004B1854) --------------------------------------------------------
 void GUIWindow::DrawCurrentTime( __int64 a2 )
 	{
@@ -1957,32 +1933,29 @@
     v26 = 0;
     if ( uNumDialogueNPCPortraits > 0 )
     {
-      do
+      for ( v26 = 0; v26 < uNumDialogueNPCPortraits; ++v26 )
       {
-        uWidtha = v26 + 1;
         if ( v26 + 1 == v25 && uHouse_ExitPic )
         {
           v30 = pMapStats->pInfos[uHouse_ExitPic].pName;
-          v29 = (char*)pGlobalTXT_LocalizationStrings[LOCSTR_ENTER_S];//  ^Pv[%s]
+          v29 = (char*)pGlobalTXT_LocalizationStrings[LOCSTR_ENTER_S];
         }
         else
         {
           if ( v26 || !dword_591080 )
-            v27 = HouseNPCData[v26 - (dword_591080 != 0)]->pName;//problem in Harmondale tavern(v26 == 0)
+            v27 = HouseNPCData[v26 - (dword_591080 != 0)]->pName;
           else
             //v27 = (char *)p2DEvents_minus1_::08[13 * a4];
             v27 = (char *)p2DEvents[pButton - 1].pProprieterName;
           v30 = v27;
-          v29 = (char*)pGlobalTXT_LocalizationStrings[435];// "Converse with %s"   ^Pt[%s]
+          v29 = (char*)pGlobalTXT_LocalizationStrings[435];
         }
         sprintfex(byte_591180[v26], v29, v30);
         HouseNPCData[v26 + 7] = (NPCData *)pWindow->CreateButton(pNPCPortraits_x[uNumDialogueNPCPortraits - 1][v26],
                                                                  pNPCPortraits_y[uNumDialogueNPCPortraits - 1][v26],
                                              0x3Fu, 0x49u, 1, 0, UIMSG_19A, v26, 0, byte_591180[v26], 0, 0, 0);
-        ++v26;
         v25 = uNumDialogueNPCPortraits;
       }
-      while ( uWidtha < uNumDialogueNPCPortraits );
     }
     if ( v25 == 1 )
     {
--- a/UIHouses.cpp	Mon Apr 01 13:39:39 2013 +0200
+++ b/UIHouses.cpp	Mon Apr 01 17:37:42 2013 +0600
@@ -388,7 +388,7 @@
       if (~npc->uFlags & 0x80)
         //if ( !(*(char *)v6 & 0x80) )
       {
-        v7 = uNumDialogueNPCPortraits++ - dword_591080 ? 1 : 0;
+        v7 = uNumDialogueNPCPortraits++ - (dword_591080 != 0) ? 1 : 0;
         HouseNPCData[v7] = npc;
         //v6 = v17;
         //*(&v13 + v2) = *(v17 - 1);
@@ -4595,7 +4595,7 @@
     void GuildDialog()
         {
         GUIWindow *v0; // ebx@1
-        Player *currPlayer; // edi@1
+        //Player *currPlayer; // edi@1
         signed int base_teach_price; // ebx@1
         int v3; // edi@6
         int result; // eax@11
@@ -4652,17 +4652,17 @@
         int v55; // [sp+2C8h] [bp-24h]@47
         int main_text_color; // [sp+2CCh] [bp-20h]@1
         int hi_text_color; // [sp+2D0h] [bp-1Ch]@1
-        Player *v58; // [sp+2D4h] [bp-18h]@1
+        //Player *v58; // [sp+2D4h] [bp-18h]@1
         unsigned __int8 uPlayerID; // [sp+2DBh] [bp-11h]@31
         char *Str; // [sp+2DCh] [bp-10h]@35
         int v61; // [sp+2E0h] [bp-Ch]@35
         unsigned int v62; // [sp+2E4h] [bp-8h]@13
         int v63; // [sp+2E8h] [bp-4h]@1
 
-        v0 = window_SpeakInHouse;
+        v0 = window_SpeakInHouse;//Ritor1: in process
         memcpy(&working_window, window_SpeakInHouse, sizeof(GUIWindow));
-        v58 = pPlayers[uActiveCharacter];
-        currPlayer = v58;
+        //v58 = pPlayers[uActiveCharacter];
+        //currPlayer = pPlayers[uActiveCharacter];
         working_window.uFrameX = 483;
         working_window.uFrameWidth = 148;
         working_window.uFrameZ = 334;
@@ -4670,7 +4670,7 @@
         hi_text_color = GenerateColorAsCloseAsPossibleToR8G8B8InTargetFormat(0xFFu, 0xFFu, 0x9Bu);
         //v2 = (signed __int64)(p2DEvents_minus1__20[13 * (unsigned int)v0->ptr_1C] * 500.0);
         base_teach_price = (signed __int64)(p2DEvents[(unsigned int)v0->ptr_1C - 1].fPriceMultiplier * 500.0);
-        v63 = base_teach_price * (100 - currPlayer->GetMerchant()) / 100;
+        v63 = base_teach_price * (100 - pPlayers[uActiveCharacter]->GetMerchant()) / 100;
         if ( v63 < base_teach_price / 3 )
             v63 = base_teach_price / 3;
         strcpy(Dest, "");
@@ -4680,12 +4680,12 @@
         strcpy(v49, "");
         if ( dialog_menu_id != HOUSE_DIALOGUE_MAIN )
             {
-            if ( dialog_menu_id != HOUSE_DIALOGUE_GULD_BUY_BOOKS ) //buy skill
+            if ( dialog_menu_id != HOUSE_DIALOGUE_GUILD_BUY_BOOKS ) //buy skill
                 {
                 if ( sub_4B1784_check_if_player_concious__draw_warning_else_mess_with_dlg_win() )
                     {
                     //v3 = (int)(&currPlayer->uIntelligence + dword_F8B19C); //test skill
-                    if ( v58->pActiveSkills[dialog_menu_id-36] )
+                    if ( pPlayers[uActiveCharacter]->pActiveSkills[dialog_menu_id-36] )
                         {
                         sprintf(pTmpBuf, pGlobalTXT_LocalizationStrings[403], pClassNames[dialog_menu_id - 16]); //"You already know the %s skill"
                         ShowStatusBarString(pTmpBuf, 2u);
@@ -4701,7 +4701,7 @@
                         else
                             {
                             Party::TakeGold(v63);
-                            v58->pActiveSkills[dialog_menu_id-36] = 1;
+                            pPlayers[uActiveCharacter]->pActiveSkills[dialog_menu_id-36] = 1;
                             }
                         }
                     }
@@ -4721,7 +4721,7 @@
                     {
                     pRenderer->DrawTextureTransparent(v63, 0x5Au, ItemsInShopTexture[v6]);
                     ZBuffer_DoFill((int *)((char *)pRenderer->pActiveZBuffer + v62 + 230528), ItemsInShopTexture[v6], v6 + 1);
-                    currPlayer = v58;
+                    //currPlayer = v58;
                     }
                 v63 += 70;
                 v62 += 280;
@@ -4739,7 +4739,7 @@
                         {
                         pRenderer->DrawTextureTransparent(v63, 0xFAu, ItemsInShopTexture[v7]);
                         ZBuffer_DoFill((int *)((char *)pRenderer->pActiveZBuffer + v62 + 638448), ItemsInShopTexture[v7], v7 + 1);
-                        currPlayer = v58;
+                        //currPlayer = v58;
                         }
                     v63 += 70;
                     v62 += 280;
@@ -4785,7 +4785,7 @@
                                 v15 = (ItemGen *)(&pParty->pPlayers[1].uExpressionTimeLength + 18 * (v13 + 12 * (int)v14));
                                 v16 = (int)window_SpeakInHouse->ptr_1C;
                                 uPlayerID = uActiveCharacter - 1;
-                                v17 = currPlayer->_490EEE( (ItemGen *)&pParty->pPlayers[1].uExpressionTimeLength + v13 + 12 * (int)v14, 3, v16,  2);
+                                v17 = pPlayers[uActiveCharacter]->_490EEE( (ItemGen *)&pParty->pPlayers[1].uExpressionTimeLength + v13 + 12 * (int)v14, 3, v16,  2);
                                 v18 = BuilDialogueString((char *)pMerchantsBuyPhrases[v17], uPlayerID, v15, (char *)v14, 2, 0);     
                                 v19 = pFontArrus->CalcTextHeight(v18, &working_window, 0, 0);
                                 working_window.DrawTitleText(pFontArrus, 0, (174 - v19) / 2 + 138,  main_text_color, v18, 3);
@@ -4795,7 +4795,7 @@
                     return;
             }
         if ( !(unsigned __int16)_449B57_test_bit(
-            (unsigned __int8 *)currPlayer->_guilds_member_bits,
+            (unsigned __int8 *)pPlayers[uActiveCharacter]->_guilds_member_bits,
             guild_mambership_flags[(unsigned int)window_SpeakInHouse->ptr_1C-139]) )
             { //you must me member
             v38 = pFontArrus->CalcTextHeight(pNPCTopics[121].pText, &working_window, 0, 0);
@@ -4834,7 +4834,7 @@
             else
                 {
 
-                if((byte_4ED970_skill_learn_ability_by_class_table[v58->classType][v23-36])&&(v58->pActiveSkills[v23-36]))
+                if((byte_4ED970_skill_learn_ability_by_class_table[pPlayers[uActiveCharacter]->classType][v23-36])&&(pPlayers[uActiveCharacter]->pActiveSkills[v23-36]))
                     // or
                     //byte_4ED970_skill_learn_ability_by_class_table[v58->uClass - 1][v23 + 1]
                     {
@@ -4850,7 +4850,7 @@
             if ( !v61 )
                 {
 LABEL_64:
-                sprintf(pTmpBuf, pGlobalTXT_LocalizationStrings[544], v58->pName, pClassNames[v58->classType]); // "Seek knowledge elsewhere %s the %s"	
+                sprintf(pTmpBuf, pGlobalTXT_LocalizationStrings[544], pPlayers[uActiveCharacter]->pName, pClassNames[pPlayers[uActiveCharacter]->classType]); // "Seek knowledge elsewhere %s the %s"	
                 strcat(pTmpBuf, "\n \n");
                 strcat(pTmpBuf, pGlobalTXT_LocalizationStrings[528]); //"I can offer you nothing further."
                 v19 = pFontArrus->CalcTextHeight(pTmpBuf, &working_window, 0, 0);
@@ -4882,7 +4882,7 @@
                     //  __debugbreak();
                     //pSkillAvailabilityPerClass[8 + v58->uClass][4 + v23]
                     // or
-                    if ((byte_4ED970_skill_learn_ability_by_class_table[v58->classType][v29 - 36])&&(v58->pActiveSkills[v29-36]))
+                    if ((byte_4ED970_skill_learn_ability_by_class_table[pPlayers[uActiveCharacter]->classType][v29 - 36])&&(pPlayers[uActiveCharacter]->pActiveSkills[v29-36]))
                         // or
                         //byte_4ED970_skill_learn_ability_by_class_table[v58->uClass - 1][v23 + 1]
 
--- a/UIHouses.h	Mon Apr 01 13:39:39 2013 +0200
+++ b/UIHouses.h	Mon Apr 01 17:37:42 2013 +0600
@@ -21,7 +21,7 @@
   HOUSE_DIALOGUE_TAVERN_REST = 15,
   HOUSE_DIALOGUE_TAVERN_BUY_FOOD = 16,
   HOUSE_DIALOGUE_TRAININGHALL_TRAIN = 17,
-  HOUSE_DIALOGUE_GULD_BUY_BOOKS = 18,
+  HOUSE_DIALOGUE_GUILD_BUY_BOOKS = 18,
   //...
   HOUSE_DIALOGUE_GUILD_LEARN_SKILL = 72,
   //...
--- a/mm7_2.cpp	Mon Apr 01 13:39:39 2013 +0200
+++ b/mm7_2.cpp	Mon Apr 01 17:37:42 2013 +0600
@@ -1006,35 +1006,26 @@
   }
   if ( !sub_4B1784_check_if_player_concious__draw_warning_else_mess_with_dlg_win() )
   {
-    v56 = 0;
-    v52 = 0;
-    v50 = 0;
-    v49 = 0;
-    v48 = -1;
-    v47 = 0;
-    v46 = 0;
-    pAudioPlayer->PlaySound(SOUND_27, v46, v47, v48, v49, v50, v52, v56);
+    pAudioPlayer->PlaySound(SOUND_27, 0, 0, -1, 0, 0, 0, 0);
     return;
   }
 
   switch(dialog_menu_id)
   {
-	case HOUSE_DIALOGUE_SHOP_DISPLAY_EQUIPMENT:
-		{
-			pWindowList_at_506F50_minus1_indexing_buttons____and_an_int_[0] = 103;
-			sub_421EA6_OnInventoryLeftClick();
-			break;
-		}
-	case HOUSE_DIALOGUE_GULD_BUY_BOOKS:
-		{
+    case HOUSE_DIALOGUE_SHOP_DISPLAY_EQUIPMENT:
+    {
+      pWindowList_at_506F50_minus1_indexing_buttons____and_an_int_[0] = 103;
+      sub_421EA6_OnInventoryLeftClick();
+      break;
+    }
+    case HOUSE_DIALOGUE_GUILD_BUY_BOOKS://Ritor1: in process
+    {
 		v17 = pMouse->GetCursorPos(&v63);
 		v18 = pRenderer->pActiveZBuffer[v17->x + pSRZBufferLineOffsets[pMouse->GetCursorPos(&v61)->y]] & 0xFFFF;
 		if ( !v18 )
 			return;
-		v19 = window_SpeakInHouse->ptr_1C;
-		v20 = (ItemGen *)(&pParty->pPlayers[1].uExpressionTimeLength + 18 * (v18 + 12 * (int)v19));
-		//v21 = p2DEvents_minus1__20[13 * (signed int)v19];
-		v21 = p2DEvents[(signed int)v19 - 1].fPriceMultiplier;
+		v20 = (ItemGen *)(&pParty->pPlayers[1].uExpressionTimeLength + 18 * (v18 + 12 * (int)window_SpeakInHouse->ptr_1C));
+		v21 = p2DEvents[(signed int)window_SpeakInHouse->ptr_1C - 1].fPriceMultiplier;
 		_this = v20;
 		v22 = v20->GetValue();
 		v23 = v0->GetBuyingPrice(v22, v21);
@@ -1043,7 +1034,6 @@
 		if ( pParty->uNumGold < v23 )
 		{
 			v24 = 2;
-	//LABEL_62:
 			PlayHouseSound((unsigned int)window_SpeakInHouse->ptr_1C, (HouseSoundID)v24);
 			v9 = pGlobalTXT_LocalizationStrings[155];
 			v54 = 2;
@@ -1062,16 +1052,11 @@
 			_this->Reset();
 			pRenderer->ClearZBuffer(0, 479);
 			v27 = v77;
-			v53 = 0;
-			v51 = SPEECH_75;
-			v27->PlaySound((PlayerSpeech)v51, v53);
+			v27->PlaySound((PlayerSpeech)SPEECH_75, 0);
 			return;
 		}
 		v0->PlaySound(SPEECH_NoRoom, 0);
-		v54 = 5;
-	//LABEL_70:
-		v9 = pGlobalTXT_LocalizationStrings[563];   // "Pack is Full!"
-		ShowStatusBarString(v9, v54);
+		ShowStatusBarString(pGlobalTXT_LocalizationStrings[563], 5);  // "Pack is Full!"
 		break;
 		}
 
@@ -1341,7 +1326,7 @@
 		break;
 		}
 
-	default:
+	default:// if click video screen in shop
 		{
           __debugbreak(); // please do record these dialogue ids to the HOUSE_DIALOGUE_MENU  enum
 		if( dialog_menu_id >= 36 && dialog_menu_id <= 72 )
--- a/mm7_4.cpp	Mon Apr 01 13:39:39 2013 +0200
+++ b/mm7_4.cpp	Mon Apr 01 17:37:42 2013 +0600
@@ -6326,7 +6326,7 @@
 		v7 =&pParty->SpecialItemsInShops[(unsigned int)window_SpeakInHouse->ptr_1C][v5];
     goto LABEL_15;
   }
-  if ( in_current_building_type <= BildingType_16 && dialog_menu_id == HOUSE_DIALOGUE_GULD_BUY_BOOKS )
+  if ( in_current_building_type <= BildingType_16 && dialog_menu_id == HOUSE_DIALOGUE_GUILD_BUY_BOOKS )
   {
     v1 = pMouse->GetCursorPos(&a2);
     v2 = v1->x + pSRZBufferLineOffsets[pMouse->GetCursorPos(&v16)->y];