diff mm7_4.cpp @ 463:f7b91ef98ab2

shopgenerators done, except config tables
author Gloval
date Mon, 25 Feb 2013 08:30:49 +0400
parents 37090bd974f9
children e9f40d344067
line wrap: on
line diff
--- a/mm7_4.cpp	Sun Feb 24 20:47:46 2013 +0400
+++ b/mm7_4.cpp	Mon Feb 25 08:30:49 2013 +0400
@@ -4915,7 +4915,7 @@
   NPCData *npc = nullptr;
   if ( dword_5C35D4 )
   {
-    __debugbreak(); // fix  
+    //__debugbreak(); // fix  
     npc = HouseNPCData[(unsigned int)((char *)pDialogueNPCCount + -(dword_591080 != 0) - 1)];
   }
   else
@@ -8922,7 +8922,7 @@
   pParty->field_3C._shop_ban_times[2 * a1] = LODWORD(pParty->uTimePlayed) + 368640;
   pParty->field_3C._shop_ban_times[2 * a1 + 1] = HIDWORD(v6);
 LABEL_13:
-  *(int *)&pParty->field_16154[4 * a1] = 1;
+  pParty->InTheShopFlags[a1] = 1;
   if ( v3 )
   {
     v7 = &pOutdoor->ddm;
@@ -9055,7 +9055,7 @@
 // F8B1E0: using guessed type int dword_F8B1E0;
 
 
-
+//view  item details  in shop?
 //----- (004B1A2D) --------------------------------------------------------
 void __cdecl sub_4B1A2D()
 {
@@ -9113,7 +9113,7 @@
     v7 = (ItemGen *)((char *)&pParty->pPickedItem + 4 * v6 + 4);
     if ( dword_F8B19C != 2 )
    //   v7 = (ItemGen *)&pParty->field_C59C[v6 + 715];
-		v7 =&pParty->Recipes_Item[(unsigned int)window_SpeakInHouse->ptr_1C][v5];
+		v7 =&pParty->SpecialItemsInShop[(unsigned int)window_SpeakInHouse->ptr_1C][v5];
     goto LABEL_15;
   }
   if ( dword_F8B198 <= 16 && dword_F8B19C == 18 )
@@ -10370,385 +10370,6 @@
            0);
 }
 
-//----- (004B3703) --------------------------------------------------------
-int __thiscall sub_4B3703(void *_this)
-{
-  signed int v1; // edi@1
-  int v2; // eax@1
-  char *v3; // ecx@1
-  signed int v4; // ebx@1
-  int v5; // ecx@2
-  int v6; // ecx@3
-  int v7; // ecx@4
-  int v8; // ecx@5
-  int v9; // ecx@6
-  signed int v10; // ebx@13
-  signed int v11; // edi@14
-  signed int v12; // esi@15
-  unsigned int v13; // ecx@16
-  int v14; // ecx@16
-  int v15; // ecx@17
-  int v16; // ecx@19
-  int v17; // ecx@20
-  int v18; // ecx@21
-  signed int v19; // esi@32
-  char *v20; // ecx@33
-  int v21; // ecx@34
-  int v22; // ecx@36
-  int v23; // ecx@37
-  int v24; // ecx@38
-  int v25; // ecx@39
-  int v26; // ecx@40
-  int v27; // ecx@41
-  int *v28; // esi@54
-  unsigned int v29; // edx@56
-  char *v30; // ecx@65
-  int v31; // ecx@106
-  int result; // eax@107
-  int v33; // [sp-4h] [bp-2Ch]@23
-  int v34; // [sp-4h] [bp-2Ch]@43
-  int v35[5]; // [sp+Ch] [bp-1Ch]@8
-  int a2; // [sp+20h] [bp-8h]@1
-  int v37; // [sp+24h] [bp-4h]@1
-
-  v1 = 0;
-  v2 = 0;
-  v3 = (char *)_this - 1;
-  a2 = 0;
-  v37 = 0;
-  dword_F8B1DC = 0;
-  v4 = 2;
-  if ( !v3 )
-  {
-    while ( 1 )
-    {
-      v19 = 1;
-      do
-      {
-        v20 = (char *)window_SpeakInHouse->ptr_1C + 4 * (unsigned int)window_SpeakInHouse->ptr_1C + v19;
-        if ( v1 )
-          v21 = word_4F063E[(signed int)v20];
-        else
-          v21 = word_4F0404[(signed int)v20 - 4];//word_4F03FE[(signed int)v20];
-        v22 = v21 - 23;
-        if ( v22 )
-        {
-          v23 = v22 - 1;
-          if ( v23 )
-          {
-            v24 = v23 - 1;
-            if ( v24 )
-            {
-              v25 = v24 - 1;
-              if ( v25 )
-              {
-                v26 = v25 - 1;
-                if ( v26 )
-                {
-                  v27 = v26 - 1;
-                  if ( v27 )
-                  {
-                    if ( v27 != v4 )
-                      goto LABEL_51;
-                    v34 = 36;
-                  }
-                  else
-                  {
-                    v34 = 42;
-                  }
-                }
-                else
-                {
-                  v34 = 41;
-                }
-              }
-              else
-              {
-                v34 = 40;
-              }
-            }
-            else
-            {
-              v34 = 39;
-            }
-          }
-          else
-          {
-            v34 = 38;
-          }
-        }
-        else
-        {
-          v34 = 37;
-        }
-        v37 = sub_4BE571(v34, v35, v37, 5);
-        v2 = dword_F8B1DC;
-        v4 = 2;
-LABEL_51:
-        ++v19;
-      }
-      while ( v19 <= 4 );
-      ++v1;
-      if ( v1 >= v4 )
-        goto LABEL_53;
-    }
-  }
-  v5 = (int)(v3 - 1);
-  if ( !v5 )
-  {
-    v10 = 0;
-    while ( 1 )
-    {
-      v11 = 0;
-      do
-      {
-        v12 = 1;
-        do
-        {
-          v13 = v11 + 2 * (unsigned int)window_SpeakInHouse->ptr_1C - 30;
-          v14 = v12 + 4 * v13 + v13;
-          if ( v10 )
-            v15 = word_4F06D8[v14];
-          else
-            v15 = word_4F0498[v14];
-          v16 = v15 - 31;
-          if ( v16 )
-          {
-            v17 = v16 - 1;
-            if ( v17 )
-            {
-              v18 = v17 - 1;
-              if ( v18 )
-              {
-                if ( v18 != 1 )
-                  goto LABEL_28;
-                v33 = 44;
-              }
-              else
-              {
-                v33 = 47;
-              }
-            }
-            else
-            {
-              v33 = 46;
-            }
-          }
-          else
-          {
-            v33 = 45;
-          }
-          v37 = sub_4BE571(v33, v35, v37, 5);
-          v2 = dword_F8B1DC;
-LABEL_28:
-          ++v12;
-        }
-        while ( v12 <= 4 );
-        ++v11;
-      }
-      while ( v11 < 2 );
-      ++v10;
-      if ( v10 >= 2 )
-        goto LABEL_53;
-    }
-  }
-  v6 = v5 - 1;
-  if ( v6 )
-  {
-    v7 = v6 - 1;
-    if ( v7 )
-    {
-      v8 = v7 - 17;
-      if ( v8 )
-      {
-        v9 = v8 - 2;
-        if ( v9 )
-        {
-          if ( v9 == 7 )
-          {
-            v37 = 2;
-            v35[0] = 69;
-            v35[1] = 60;
-          }
-        }
-        else
-        {
-          v37 = 3;
-          v35[0] = 67;
-          v35[1] = 66;
-          v35[2] = 58;
-        }
-      }
-      else
-      {
-        v37 = 3;
-        v35[0] = 70;
-        v35[1] = 65;
-        v35[2] = 62;
-      }
-    }
-    else
-    {
-      v37 = 2;
-      v35[0] = 71;
-      v35[1] = 68;
-    }
-  }
-  else
-  {
-    v37 = 2;
-    v35[0] = 57;
-    v35[1] = 59;
-  }
-LABEL_53:
-  if ( v37 > 0 )
-  {
-    v28 = v35;
-    while ( 1 )
-    {
-      v29 = *v28;
-      if ( *v28 <= 47 )
-        break;
-      if ( (signed int)v29 <= 66 )
-      {
-        if ( v29 == 66 )
-        {
-          v30 = pSkillNames[30];
-          goto LABEL_106;
-        }
-        if ( v29 == 57 )
-        {
-          v30 = pSkillNames[21];
-          goto LABEL_106;
-        }
-        if ( v29 == 58 )
-        {
-          v30 = pSkillNames[22];
-          goto LABEL_106;
-        }
-        if ( v29 == 60 )
-        {
-          v30 = pSkillNames[24];
-          goto LABEL_106;
-        }
-        if ( v29 == 62 )
-        {
-          v30 = pSkillNames[26];
-          goto LABEL_106;
-        }
-        if ( v29 == 65 )
-        {
-          v30 = pSkillNames[29];
-          goto LABEL_106;
-        }
-        goto LABEL_100;
-      }
-      switch ( v29 )
-      {
-        case 0x43u:
-          v30 = pSkillNames[31];
-          break;
-        case 0x44u:
-          v30 = pSkillNames[32];
-          break;
-        case 0x45u:
-          v30 = pSkillNames[33];
-          break;
-        case 0x46u:
-          v30 = pSkillNames[34];
-          break;
-        default:
-          if ( v29 != 71 )
-            goto LABEL_100;
-          v30 = pSkillNames[35];
-          break;
-      }
-LABEL_106:
-      pShopOptions[v2] = v30;
-      v31 = a2++;
-      dword_F8B1DC = v2 + 1;
-      sub_4B36CC(v31, v29);
-      ++v28;
-      if ( a2 >= v37 )
-        goto LABEL_107;
-      v2 = dword_F8B1DC;
-    }
-    if ( *v28 == 47 )
-    {
-      v30 = pSkillNames[11];
-      goto LABEL_106;
-    }
-    if ( (signed int)v29 > 40 )
-    {
-      if ( v29 == 41 )
-      {
-        v30 = pSkillNames[5];
-        goto LABEL_106;
-      }
-      if ( v29 == 42 )
-      {
-        v30 = pSkillNames[6];
-        goto LABEL_106;
-      }
-      if ( v29 == 44 )
-      {
-        v30 = pSkillNames[8];
-        goto LABEL_106;
-      }
-      if ( v29 == 45 )
-      {
-        v30 = pSkillNames[9];
-        goto LABEL_106;
-      }
-      if ( v29 == 46 )
-      {
-        v30 = pSkillNames[10];
-        goto LABEL_106;
-      }
-    }
-    else
-    {
-      if ( v29 == 40 )
-      {
-        v30 = pSkillNames[4];
-        goto LABEL_106;
-      }
-      if ( v29 == 5 )
-      {
-        v30 = pSkillNames[23];
-        goto LABEL_106;
-      }
-      if ( v29 == 36 )
-      {
-        v30 = pSkillNames[0];
-        goto LABEL_106;
-      }
-      if ( v29 == 37 )
-      {
-        v30 = pSkillNames[1];
-        goto LABEL_106;
-      }
-      if ( v29 == 38 )
-      {
-        v30 = pSkillNames[2];
-        goto LABEL_106;
-      }
-      if ( v29 == 39 )
-      {
-        v30 = pSkillNames[3];
-        goto LABEL_106;
-      }
-    }
-LABEL_100:
-    v30 = pGlobalTXT_LocalizationStrings[127];
-    goto LABEL_106;
-  }
-LABEL_107:
-  pDialogueWindow->_41D08F(a2, 1, 0, 2);
-  result = pDialogueWindow->pNumPresenceButton;
-  dword_F8B1E0 = pDialogueWindow->pNumPresenceButton;
-  return result;
-}
 
 
 //----- (004B3A72) --------------------------------------------------------
@@ -12166,7 +11787,7 @@
     do
     {
      // if ( pParty->field_777C[9 * (v49 + 12 * (unsigned int)window_SpeakInHouse->ptr_1C)] )
-	 if ( pParty->field_777C[(unsigned int)window_SpeakInHouse->ptr_1C][v49].uItemID);
+	 if ( pParty->StandartItemsInShops[(unsigned int)window_SpeakInHouse->ptr_1C][v49].uItemID);
       {
         v50 = dword_F8B168[v49];
         v51 = 152 - v50->uTextureHeight;
@@ -12199,7 +11820,7 @@
     do
     {
       //if ( pParty->field_777C[9 * (v122 + 12 * (unsigned int)window_SpeakInHouse->ptr_1C) + 54] )
-	if ( pParty->field_777C[(unsigned int)window_SpeakInHouse->ptr_1C][v122+1].uItemID);
+	if ( pParty->StandartItemsInShops[(unsigned int)window_SpeakInHouse->ptr_1C][v122+1].uItemID);
       {
         v54 = dword_F8B168[v122 + 6];
         v55 = 306 - v54->uTextureHeight;
@@ -12230,7 +11851,7 @@
     do
     {
      // if ( pParty->field_C59C[9 * (v49 + 12 * (unsigned int)window_SpeakInHouse->ptr_1C) + 724] )
-	if (pParty->Recipes_Item[(unsigned int)window_SpeakInHouse->ptr_1C][v49].uItemID)
+	if (pParty->SpecialItemsInShop[(unsigned int)window_SpeakInHouse->ptr_1C][v49].uItemID)
       {
         v58 = dword_F8B168[v49];
         v59 = 152 - v58->uTextureHeight;
@@ -12263,7 +11884,7 @@
     do
     {
       //if ( pParty->Spell_Item[(unsigned int)window_SpeakInHouse->ptr_1C][v49] + 778] )  //weak
-		if (pParty->Recipes_Item[(unsigned int)window_SpeakInHouse->ptr_1C][v49].uAttributes)
+		if (pParty->SpecialItemsInShop[(unsigned int)window_SpeakInHouse->ptr_1C][v49].uAttributes)
       {
         v62 = dword_F8B168[v122 + 6];
         v63 = 306 - v62->uTextureHeight;
@@ -12300,7 +11921,7 @@
     {
       do
       {
-        if ( pParty->field_777C[(unsigned int)window_SpeakInHouse->ptr_1C][v66].uItemID); //9 * (v66 + 12 * (unsigned int)window_SpeakInHouse->ptr_1C)] )
+        if ( pParty->StandartItemsInShops[(unsigned int)window_SpeakInHouse->ptr_1C][v66].uItemID); //9 * (v66 + 12 * (unsigned int)window_SpeakInHouse->ptr_1C)] )
           ++v117;
         ++v66;
       }
@@ -12311,7 +11932,7 @@
       do
       {
         //if ( pParty->field_C59C[9 * (v66 + 12 * (unsigned int)window_SpeakInHouse->ptr_1C) + 724] )
-	  if (pParty->Recipes_Item[(unsigned int)window_SpeakInHouse->ptr_1C][v66].uItemID)
+	  if (pParty->SpecialItemsInShop[(unsigned int)window_SpeakInHouse->ptr_1C][v66].uItemID)
           ++v117;
         ++v66;
       }
@@ -12345,10 +11966,10 @@
       v117 = v71;
       v72 = (int)window_SpeakInHouse->ptr_1C;
      // v73 = 9 * (v71 + 12 * v72);
-      v74 = (ItemGen *)&pParty->field_777C[v72][v71];
+      v74 = (ItemGen *)&pParty->StandartItemsInShops[v72][v71];
       if ( dword_F8B19C != 2 )
        // v74 = (ItemGen *)&pParty->field_C59C[v73 + 724];
-	      v74 =&pParty->Recipes_Item[v72][v71];
+	      v74 =&pParty->SpecialItemsInShop[v72][v71];
       if ( v67 && Str )
       {
         v10 = pGlobalTXT_LocalizationStrings[181];// "Steal %24"