diff mm7_2.cpp @ 336:ea55d6414029

Event_proceccor preliminary
author Gloval
date Thu, 21 Feb 2013 00:33:12 +0400
parents 8e23edf57e27
children c067c5739e1f 672b83584b0f
line wrap: on
line diff
--- a/mm7_2.cpp	Wed Feb 20 21:35:13 2013 +0400
+++ b/mm7_2.cpp	Thu Feb 21 00:33:12 2013 +0400
@@ -64,7 +64,7 @@
   int v3; // eax@1
   GUIWindow v5; // [sp+8h] [bp-54h]@1
 
-  memcpy(&v5, ptr_507BC0, sizeof(v5));
+  memcpy(&v5, window_SpeakInHouse, sizeof(v5));
   v0 = pGlobalTXT_LocalizationStrings[672];
   v1 = pGlobalTXT_LocalizationStrings[672];
   v5.uFrameX = 483;
@@ -140,7 +140,7 @@
   int v31; // [sp+114h] [bp-8h]@29
   GUIFont *pOutString; // [sp+118h] [bp-4h]@21
 
-  memcpy(&_this, ptr_507BC0, sizeof(_this));
+  memcpy(&_this, window_SpeakInHouse, sizeof(_this));
   _this.uFrameX = 483;
   _this.uFrameWidth = 148;
   _this.uFrameZ = 334;
@@ -204,8 +204,8 @@
     {
       if ( dword_F8B19C != 100 )
         return;
-      v0 = ptr_507BC0;
-      if ( ptr_507BC0->field_40 == 1 )
+      v0 = window_SpeakInHouse;
+      if ( window_SpeakInHouse->field_40 == 1 )
       {
         sprintf(pTmpBuf, "%s\n%s", pGlobalTXT_LocalizationStrings[606], pGlobalTXT_LocalizationStrings[112]);
         _this.DrawTitleText(pFontArrus, 0, 0x92u, v30, pTmpBuf, 3u);
@@ -215,7 +215,7 @@
         _this.DrawFlashingInputCursor(v4 / 2 + 80, 185, v3);
         return;
       }
-      if ( ptr_507BC0->field_40 == 2 )
+      if ( window_SpeakInHouse->field_40 == 2 )
       {
         v1 = atoi((const char *)pKeyActionMap->pPressedKeysBuffer);
         v2 = v1;
@@ -233,7 +233,7 @@
         }
         if ( v1 > pParty->uNumGold )
         {
-          HousePlaySomeSound((unsigned int)ptr_507BC0->ptr_1C, 2);
+          HousePlaySomeSound((unsigned int)window_SpeakInHouse->ptr_1C, 2);
           v2 = pParty->uNumGold;
         }
         if ( v2 > pParty->uFine )
@@ -244,11 +244,11 @@
           pParty->uFine = 0;
         if ( uActiveCharacter )
           pPlayers[uActiveCharacter]->PlaySound(SPEECH_81, 0);
-        v0 = ptr_507BC0;
+        v0 = window_SpeakInHouse;
       }
       else
       {
-        if ( ptr_507BC0->field_40 != 3 )
+        if ( window_SpeakInHouse->field_40 != 3 )
           return;
       }
       v0->field_40 = 0;
@@ -305,7 +305,7 @@
   __int16 v13[2]; // [sp+60h] [bp-8h]@1
   __int16 v14[2]; // [sp+64h] [bp-4h]@1
 
-  memcpy(&_this, ptr_507BC0, sizeof(_this));
+  memcpy(&_this, window_SpeakInHouse, sizeof(_this));
   _this.uFrameX = 483;
   _this.uFrameWidth = 148;
   _this.uFrameZ = 334;
@@ -317,11 +317,11 @@
   {
     if ( dword_F8B19C == 7 )
     {
-      v0 = ptr_507BC0;
-      if ( ptr_507BC0->field_40 != 1 )
-      {
-        v1 = ptr_507BC0->field_40 - 2;
-        if ( ptr_507BC0->field_40 == 2 )
+      v0 = window_SpeakInHouse;
+      if ( window_SpeakInHouse->field_40 != 1 )
+      {
+        v1 = window_SpeakInHouse->field_40 - 2;
+        if ( window_SpeakInHouse->field_40 == 2 )
         {
           v6 = atoi((const char *)pKeyActionMap->pPressedKeysBuffer);
           v7 = v6;
@@ -339,7 +339,7 @@
           }
           if ( v6 > pParty->uNumGold )
           {
-            HousePlaySomeSound((unsigned int)ptr_507BC0->ptr_1C, 2);
+            HousePlaySomeSound((unsigned int)window_SpeakInHouse->ptr_1C, 2);
             v7 = pParty->uNumGold;
           }
           if ( v7 )
@@ -349,7 +349,7 @@
             if ( uActiveCharacter )
               pPlayers[uActiveCharacter]->PlaySound(SPEECH_81, 0);
           }
-          v0 = ptr_507BC0;
+          v0 = window_SpeakInHouse;
 LABEL_16:
           v0->field_40 = 0;
           goto LABEL_17;
@@ -366,20 +366,20 @@
     {
       if ( dword_F8B19C != 8 )
         return;
-      v0 = ptr_507BC0;
-      if ( ptr_507BC0->field_40 != 1 )
-      {
-        v1 = ptr_507BC0->field_40 - 2;
-        if ( ptr_507BC0->field_40 == 2 )
-        {
-          ptr_507BC0->field_40 = 0;
+      v0 = window_SpeakInHouse;
+      if ( window_SpeakInHouse->field_40 != 1 )
+      {
+        v1 = window_SpeakInHouse->field_40 - 2;
+        if ( window_SpeakInHouse->field_40 == 2 )
+        {
+          window_SpeakInHouse->field_40 = 0;
           v2 = atoi((const char *)pKeyActionMap->pPressedKeysBuffer);
           v3 = v2;
           if ( v2 )
           {
             if ( v2 > pParty->uNumGoldInBank )
             {
-              HousePlaySomeSound((unsigned int)ptr_507BC0->ptr_1C, 2);
+              HousePlaySomeSound((unsigned int)window_SpeakInHouse->ptr_1C, 2);
               v3 = pParty->uNumGoldInBank;
             }
             if ( v3 )
@@ -510,8 +510,8 @@
   unsigned __int8 v90; // [sp+26Fh] [bp-5h]@55
   GUIFont *pOutString; // [sp+270h] [bp-4h]@3
 
-  v0 = ptr_507BC0;
-  memcpy(&v79, ptr_507BC0, sizeof(v79));
+  v0 = window_SpeakInHouse;
+  memcpy(&v79, window_SpeakInHouse, sizeof(v79));
   v85 = pPlayers[uActiveCharacter];
   v1 = v85;
   v79.uFrameX = 483;
@@ -597,7 +597,7 @@
         v66 = (174 - pFontArrus->CalcTextHeight(v26, &v79, 0, 0)) / 2 + 138;
         goto LABEL_98;
       }
-      strcpy(pTmpBuf, pNPCTopics[(uint)ptr_507BC0->ptr_1C + 247].pText);
+      strcpy(pTmpBuf, pNPCTopics[(uint)window_SpeakInHouse->ptr_1C + 247].pText);
       v78.uFrameWidth = 460;
       v78.uFrameZ = 452;
       v61 = pFontArrus->CalcTextHeight(pTmpBuf, &v78, 12, 0);
@@ -617,7 +617,7 @@
       v63 = FitTextInAWindow(pTmpBuf, pFontArrus, &v78, 0xCu, 0);
       v64 = pFontArrus;
     }
-    ptr_507BC0->DrawText(v64, 12, 354 - v62, 0, v63, v68, v70, v73);
+    window_SpeakInHouse->DrawText(v64, 12, 354 - v62, 0, v63, v68, v70, v73);
     return;
   }
   if ( dword_F8B19C != 101 )
@@ -629,15 +629,15 @@
         if ( pParty->uNumGold >= (unsigned int)pOutString )
         {
           Party::TakeGold((unsigned int)pOutString);
-          v27 = (int)ptr_507BC0->ptr_1C;
-          HousePlaySomeSound((unsigned int)ptr_507BC0->ptr_1C, 2);
+          v27 = (int)window_SpeakInHouse->ptr_1C;
+          HousePlaySomeSound((unsigned int)window_SpeakInHouse->ptr_1C, 2);
           dword_F8B19C = 0;
           while ( sub_4BD8B5() )
             ;
           sub_4B1D27();
           pVideoPlayer->Unload();
-          ptr_507BC0->Release();
-          ptr_507BC0 = 0;
+          window_SpeakInHouse->Release();
+          window_SpeakInHouse = 0;
           if ( pMessageQueue_50CBD0->uNumMessages )
             pMessageQueue_50CBD0->uNumMessages = pMessageQueue_50CBD0->pMessages[0].field_8 != 0;
           pMessageQueue_50CBD0->pMessages[0].eType = (UIMessageType)409;
@@ -658,7 +658,7 @@
           *(float *)&v89 = 0.0;
 
           //v9 = (signed __int64)(*(float *)&p2DEvents_minus1__24[13 * (unsigned int)ptr_507BC0->ptr_1C] * 500.0);
-          v9 = (signed __int64)(p2DEvents[(unsigned int)ptr_507BC0->ptr_1C - 1].flt_24 * 500.0);
+          v9 = (signed __int64)(p2DEvents[(unsigned int)window_SpeakInHouse->ptr_1C - 1].flt_24 * 500.0);
 
           pOutString = (GUIFont *)(v9 * (100 - v85->GetMerchant()) / 100);
           if ( (signed int)pOutString < v9 / 3 )
@@ -739,7 +739,7 @@
         }
         *(_QWORD *)Str = pParty->uNumFoodRations;
         //if ( (double)pParty->uNumFoodRations >= p2DEvents_minus1__20[13 * (unsigned int)ptr_507BC0->ptr_1C] )
-        if ( (double)pParty->uNumFoodRations >= p2DEvents[(unsigned int)ptr_507BC0->ptr_1C - 1].fPriceMultiplier )
+        if ( (double)pParty->uNumFoodRations >= p2DEvents[(unsigned int)window_SpeakInHouse->ptr_1C - 1].fPriceMultiplier )
         {
           ShowStatusBarString(pGlobalTXT_LocalizationStrings[140], 2u);
           if ( uActiveCharacter )
@@ -750,8 +750,8 @@
         {
           Party::TakeGold(v7);
           //pParty->uNumFoodRations = (signed __int64)p2DEvents_minus1__20[13 * (unsigned int)ptr_507BC0->ptr_1C];
-          pParty->uNumFoodRations = (signed __int64)p2DEvents[(unsigned int)ptr_507BC0->ptr_1C - 1].fPriceMultiplier;
-          HousePlaySomeSound((unsigned int)ptr_507BC0->ptr_1C, 3);
+          pParty->uNumFoodRations = (signed __int64)p2DEvents[(unsigned int)window_SpeakInHouse->ptr_1C - 1].fPriceMultiplier;
+          HousePlaySomeSound((unsigned int)window_SpeakInHouse->ptr_1C, 3);
           v5 = 1;
 LABEL_43:
           if ( (signed int)pMessageQueue_50CBD0->uNumMessages >= 40 )
@@ -763,7 +763,7 @@
         }
       }
       ShowStatusBarString(pGlobalTXT_LocalizationStrings[155], 2u);
-      HousePlaySomeSound((unsigned int)ptr_507BC0->ptr_1C, 4);
+      HousePlaySomeSound((unsigned int)window_SpeakInHouse->ptr_1C, 4);
       goto LABEL_43;
     }
     if ( !sub_4B1784_check_if_player_concious__draw_warning_else_mess_with_dlg_win() )
@@ -783,7 +783,7 @@
     sprintf(pTmpBuf2,
       pGlobalTXT_LocalizationStrings[86],
       //(signed __int64)p2DEvents_minus1__20[13 * (unsigned int)ptr_507BC0->ptr_1C],
-      (signed __int64)p2DEvents[(unsigned int)ptr_507BC0->ptr_1C - 1].fPriceMultiplier,
+      (signed __int64)p2DEvents[(unsigned int)window_SpeakInHouse->ptr_1C - 1].fPriceMultiplier,
       v83);
     strcat(&a1, pTmpBuf2);
     v88 = pFontArrus->CalcTextHeight(&a1, &v79, 0, 0);
@@ -797,7 +797,7 @@
     strcat(&v77, "\n \n");
     v75 = 0;
     v87 = 0;
-    v31 = (signed int)ptr_507BC0->ptr_1C;
+    v31 = (signed int)window_SpeakInHouse->ptr_1C;
     if ( v31 >= 108 && v31 <= 120 )
     {
       v32 = *(int *)v84;
@@ -939,11 +939,11 @@
   void *result; // eax@15
   signed int v9; // [sp-Ch] [bp-14h]@7
 
-  v0 = ptr_507BC0;
+  v0 = window_SpeakInHouse;
   v1 = 0;
-  v2 = (signed int)ptr_507BC0->ptr_1C;
+  v2 = (signed int)window_SpeakInHouse->ptr_1C;
   //if ( _4F063C_smthn_by_2da_uType[p2DEvents_minus1___00[26 * (unsigned int)ptr_507BC0->ptr_1C]] )
-  if ( _4F063C_smthn_by_2da_uType[p2DEvents[(unsigned int)ptr_507BC0->ptr_1C - 1].uType] )
+  if ( _4F063C_smthn_by_2da_uType[p2DEvents[(unsigned int)window_SpeakInHouse->ptr_1C - 1].uType] )
   {
     while ( v2 > 14 )
     {
@@ -974,14 +974,14 @@
           v5 = v9;
 LABEL_13:
           pItemsTable->GenerateItem(v4, v5, (ItemGen *)&pParty->field_777C[9 * (v1 + 12 * v2)]);
-          v0 = ptr_507BC0;
-          pParty->field_777C[9 * (v1 + 12 * (unsigned int)ptr_507BC0->ptr_1C) + 5] = 1;
+          v0 = window_SpeakInHouse;
+          pParty->field_777C[9 * (v1 + 12 * (unsigned int)window_SpeakInHouse->ptr_1C) + 5] = 1;
           goto LABEL_14;
         }
         auto _t = (ItemGen *)&pParty->field_777C[9 * (v1 + 12 * v2)];
         _t->Reset();
-        v0 = ptr_507BC0;
-        pParty->field_777C[9 * (v1 + 12 * (unsigned int)ptr_507BC0->ptr_1C)] = 220;
+        v0 = window_SpeakInHouse;
+        pParty->field_777C[9 * (v1 + 12 * (unsigned int)window_SpeakInHouse->ptr_1C)] = 220;
       }
 LABEL_14:
       v2 = (signed int)v0->ptr_1C;
@@ -1121,7 +1121,7 @@
 
   v0 = pPlayers[uActiveCharacter];
   _this = pPlayers[uActiveCharacter];
-  memcpy(&v101, ptr_507BC0, sizeof(v101));
+  memcpy(&v101, window_SpeakInHouse, sizeof(v101));
   v101.uFrameX = 483;
   v101.uFrameWidth = 148;
   v101.uFrameZ = 334;
@@ -1191,7 +1191,7 @@
         {
           v30 = pDialogueWindow;
           v3 = 0;
-          v31 = ptr_507BC0->ptr_1C;
+          v31 = window_SpeakInHouse->ptr_1C;
           v106.y = 0;
           //v32 = (signed __int64)(*(float *)&p2DEvents_minus1__24[13 * (signed int)v31] * 500.0);
           v32 = (signed __int64)(p2DEvents[(signed int)v31 - 1].flt_24 * 500.0);
@@ -1309,9 +1309,9 @@
               {
                 v85 = 0;
                 v83 = 5;
-                v81 = ptr_507BC0->ptr_1C;
+                v81 = window_SpeakInHouse->ptr_1C;
                 v79 = (ItemGen *)&_this->spellbook.pDarkSpellbook.bIsSpellAvailable[4 * (int)result + 5];
-                v28 = (int)ptr_507BC0->ptr_1C;
+                v28 = (int)window_SpeakInHouse->ptr_1C;
                 v110 = uActiveCharacter - 1;
                 v29 = _this->_490EEE(
                         (ItemGen *)&_this->spellbook.pDarkSpellbook.bIsSpellAvailable[4 * (int)result + 5],
@@ -1407,9 +1407,9 @@
               {
                 v85 = 0;
                 v83 = 3;
-                v81 = ptr_507BC0->ptr_1C;
+                v81 = window_SpeakInHouse->ptr_1C;
                 v79 = (ItemGen *)&_this->spellbook.pDarkSpellbook.bIsSpellAvailable[36 * (int)result + 5];
-                v12 = (int)ptr_507BC0->ptr_1C;
+                v12 = (int)window_SpeakInHouse->ptr_1C;
                 v110 = uActiveCharacter - 1;
                 v13 = _this->_490EEE(v79, 1, v12, 3);
                 v6 = v110;
@@ -1448,16 +1448,16 @@
                   v4 = (ItemGen *)&_this->spellbook.pDarkSpellbook.bIsSpellAvailable[36 * (int)result + 5];
                   if (!v4->Identified())
                   {
-                    v81 = ptr_507BC0->ptr_1C;
+                    v81 = window_SpeakInHouse->ptr_1C;
                     v79 = v4;
-                    v9 = (int)ptr_507BC0->ptr_1C;
+                    v9 = (int)window_SpeakInHouse->ptr_1C;
                     v110 = uActiveCharacter - 1;
                     v10 = _this->_490EEE(v4, 1, v9, 4);
                     v6 = v110;
                     v5 = (char *)pMerchantsIdentifyPhrases[v10];
                     goto LABEL_14;
                   }
-                  v81 = ptr_507BC0->ptr_1C;
+                  v81 = window_SpeakInHouse->ptr_1C;
                   v5 = "%24";
                   v79 = v4;
 LABEL_13:
@@ -1491,7 +1491,7 @@
     v109 = 0;
     do
     {
-      if ( pParty->field_777C[9 * (int)&v48[3 * (unsigned int)ptr_507BC0->ptr_1C]] )
+      if ( pParty->field_777C[9 * (int)&v48[3 * (unsigned int)window_SpeakInHouse->ptr_1C]] )
       {
         v49 = word_F8B158[(signed int)v48];
         v50 = dword_F8B168[(signed int)v48];
@@ -1516,7 +1516,7 @@
     v108 = 0;
     do
     {
-      if ( pParty->field_C59C[9 * (int)&v109[3 * (unsigned int)ptr_507BC0->ptr_1C] + 724] )
+      if ( pParty->field_C59C[9 * (int)&v109[3 * (unsigned int)window_SpeakInHouse->ptr_1C] + 724] )
       {
         v52 = word_F8B158[(signed int)v109] + 30;
         v53 = dword_F8B168[(signed int)v109];
@@ -1542,7 +1542,7 @@
       v106.x = 0;
       do
       {
-        if ( pParty->field_777C[9 * (v55 + 12 * (unsigned int)ptr_507BC0->ptr_1C)] )
+        if ( pParty->field_777C[9 * (v55 + 12 * (unsigned int)window_SpeakInHouse->ptr_1C)] )
           ++v106.x;
         ++v55;
       }
@@ -1552,7 +1552,7 @@
     {
       do
       {
-        if ( pParty->field_C59C[9 * (v55 + 12 * (unsigned int)ptr_507BC0->ptr_1C) + 724] )
+        if ( pParty->field_C59C[9 * (v55 + 12 * (unsigned int)window_SpeakInHouse->ptr_1C) + 724] )
           ++v106.x;
         ++v55;
       }
@@ -1580,7 +1580,7 @@
       {
         v60 = (pRenderer->pActiveZBuffer[(int)result] & 0xFFFF) - 1;
         v106.x = v60;
-        v61 = (int)ptr_507BC0->ptr_1C;
+        v61 = (int)window_SpeakInHouse->ptr_1C;
         v62 = 9 * (v60 + 12 * v61);
         v63 = (ItemGen *)&pParty->field_777C[v62];
         if ( dword_F8B19C != 2 )
@@ -1589,7 +1589,7 @@
         {
           v85 = 0;
           v83 = 2;
-          v81 = ptr_507BC0->ptr_1C;
+          v81 = window_SpeakInHouse->ptr_1C;
           v79 = v63;
           v110 = uActiveCharacter - 1;
           v64 = _this->_490EEE(v63, 1, v61, 2);
@@ -1600,7 +1600,7 @@
         v5 = pGlobalTXT_LocalizationStrings[181];
         v85 = 0;
         v83 = 2;
-        v81 = ptr_507BC0->ptr_1C;
+        v81 = window_SpeakInHouse->ptr_1C;
         v79 = v63;
         goto LABEL_13;
       }
@@ -1609,8 +1609,8 @@
     {
       result = v101._4B1854(
                  __PAIR__(
-                   pParty->field_3C.field_50[2 * (unsigned int)ptr_507BC0->ptr_1C + 1],
-                   pParty->field_3C.field_50[2 * (unsigned int)ptr_507BC0->ptr_1C])
+                   pParty->field_3C.field_50[2 * (unsigned int)window_SpeakInHouse->ptr_1C + 1],
+                   pParty->field_3C.field_50[2 * (unsigned int)window_SpeakInHouse->ptr_1C])
                - pParty->uTimePlayed);
     }
   }
@@ -1739,7 +1739,7 @@
 
   v0 = pPlayers[uActiveCharacter];
   _this = pPlayers[uActiveCharacter];
-  memcpy(&v104, ptr_507BC0, sizeof(v104));
+  memcpy(&v104, window_SpeakInHouse, sizeof(v104));
   v104.uFrameX = 483;
   v104.uFrameWidth = 148;
   v104.uFrameZ = 334;
@@ -1819,9 +1819,9 @@
           return result;
         v93 = 0;
         v91 = 3;
-        v89 = ptr_507BC0->ptr_1C;
+        v89 = window_SpeakInHouse->ptr_1C;
         v87 = (ItemGen *)&_this->spellbook.pDarkSpellbook.bIsSpellAvailable[36 * (int)result + 5];
-        v44 = (int)ptr_507BC0->ptr_1C;
+        v44 = (int)window_SpeakInHouse->ptr_1C;
         v113 = uActiveCharacter - 1;
         v45 = _this->_490EEE(v87, 4, v44, 3);
         v39 = v113;
@@ -1847,16 +1847,16 @@
         v37 = (ItemGen *)&_this->spellbook.pDarkSpellbook.bIsSpellAvailable[36 * (int)result + 5];
         if (!v37->Identified())
         {
-          v89 = ptr_507BC0->ptr_1C;
+          v89 = window_SpeakInHouse->ptr_1C;
           v87 = v37;
-          v41 = (int)ptr_507BC0->ptr_1C;
+          v41 = (int)window_SpeakInHouse->ptr_1C;
           v113 = uActiveCharacter - 1;
           v42 = _this->_490EEE(v37, 4, v41, 4);
           v39 = v113;
           v38 = (char *)pMerchantsIdentifyPhrases[v42];
           goto LABEL_45;
         }
-        v89 = ptr_507BC0->ptr_1C;
+        v89 = window_SpeakInHouse->ptr_1C;
         v38 = "%24";
         v87 = v37;
 LABEL_44:
@@ -1931,7 +1931,7 @@
           return result;
         v2 = pDialogueWindow;
         v3 = 0;
-        v4 = ptr_507BC0->ptr_1C;
+        v4 = window_SpeakInHouse->ptr_1C;
         v112 = 0;
         //v5 = (signed __int64)(*(float *)&p2DEvents_minus1__24[13 * (signed int)v4] * 500.0);
         v5 = (signed __int64)(p2DEvents[(signed int)v4 - 1].flt_24 * 500.0);
@@ -2029,7 +2029,7 @@
     {
       do
       {
-        if ( pParty->field_777C[9 * (v114 + 12 * (unsigned int)ptr_507BC0->ptr_1C)] )
+        if ( pParty->field_777C[9 * (v114 + 12 * (unsigned int)window_SpeakInHouse->ptr_1C)] )
         {
           v46 = dword_F8B168[v114];
           v47 = 152 - v46->uTextureHeight;
@@ -2059,7 +2059,7 @@
       v114 = 0;
       do
       {
-        if ( pParty->field_777C[9 * (v114 + 12 * (unsigned int)ptr_507BC0->ptr_1C) + 54] )
+        if ( pParty->field_777C[9 * (v114 + 12 * (unsigned int)window_SpeakInHouse->ptr_1C) + 54] )
         {
           v50 = dword_F8B168[v114 + 6];
           v51 = 308 - v50->uTextureHeight;
@@ -2091,7 +2091,7 @@
     {
       do
       {
-        if ( pParty->field_C59C[9 * (v114 + 12 * (unsigned int)ptr_507BC0->ptr_1C) + 724] )
+        if ( pParty->field_C59C[9 * (v114 + 12 * (unsigned int)window_SpeakInHouse->ptr_1C) + 724] )
         {
           v54 = dword_F8B168[v114];
           v55 = 152 - v54->uTextureHeight;
@@ -2121,7 +2121,7 @@
       v114 = 0;
       do
       {
-        if ( pParty->field_C59C[9 * (v114 + 12 * (unsigned int)ptr_507BC0->ptr_1C) + 778] )
+        if ( pParty->field_C59C[9 * (v114 + 12 * (unsigned int)window_SpeakInHouse->ptr_1C) + 778] )
         {
           v58 = dword_F8B168[v114 + 6];
           v59 = 308 - v58->uTextureHeight;
@@ -2158,7 +2158,7 @@
       {
         do
         {
-          if ( pParty->field_777C[9 * (v62 + 12 * (unsigned int)ptr_507BC0->ptr_1C)] )
+          if ( pParty->field_777C[9 * (v62 + 12 * (unsigned int)window_SpeakInHouse->ptr_1C)] )
             ++v109;
           ++v62;
         }
@@ -2168,7 +2168,7 @@
       {
         do
         {
-          if ( pParty->field_C59C[9 * (v62 + 12 * (unsigned int)ptr_507BC0->ptr_1C) + 724] )
+          if ( pParty->field_C59C[9 * (v62 + 12 * (unsigned int)window_SpeakInHouse->ptr_1C) + 724] )
             ++v109;
           ++v62;
         }
@@ -2191,8 +2191,8 @@
       if ( !v109 )
         return (POINT *)v104._4B1854(
                           __PAIR__(
-                            pParty->field_3C.field_50[2 * (unsigned int)ptr_507BC0->ptr_1C + 1],
-                            pParty->field_3C.field_50[2 * (unsigned int)ptr_507BC0->ptr_1C])
+                            pParty->field_3C.field_50[2 * (unsigned int)window_SpeakInHouse->ptr_1C + 1],
+                            pParty->field_3C.field_50[2 * (unsigned int)window_SpeakInHouse->ptr_1C])
                         - pParty->uTimePlayed);
       v66 = pMouse->GetCursorPos(&v98);
       result = (POINT *)(v66->x + pSRZBufferLineOffsets[pMouse->GetCursorPos(&v96)->y]);
@@ -2200,7 +2200,7 @@
       {
         v67 = (pRenderer->pActiveZBuffer[(int)result] & 0xFFFF) - 1;
         v109 = v67;
-        v68 = (int)ptr_507BC0->ptr_1C;
+        v68 = (int)window_SpeakInHouse->ptr_1C;
         v69 = 9 * (v67 + 12 * v68);
         v70 = (ItemGen *)&pParty->field_777C[v69];
         if ( dword_F8B19C != 2 )
@@ -2209,7 +2209,7 @@
         {
           v93 = 0;
           v91 = 2;
-          v89 = ptr_507BC0->ptr_1C;
+          v89 = window_SpeakInHouse->ptr_1C;
           v87 = v70;
           v113 = uActiveCharacter - 1;
           v71 = _this->_490EEE(v70, 4, v68, 2);
@@ -2220,7 +2220,7 @@
         v38 = pGlobalTXT_LocalizationStrings[181];
         v93 = 0;
         v91 = 2;
-        v89 = ptr_507BC0->ptr_1C;
+        v89 = window_SpeakInHouse->ptr_1C;
         v87 = v70;
         goto LABEL_44;
       }
@@ -2390,7 +2390,7 @@
 
   v0 = pPlayers[uActiveCharacter];
   _this = pPlayers[uActiveCharacter];
-  memcpy(&v144, ptr_507BC0, sizeof(v144));
+  memcpy(&v144, window_SpeakInHouse, sizeof(v144));
   v144.uFrameX = 483;
   v144.uFrameWidth = 148;
   v144.uFrameZ = 334;
@@ -2408,7 +2408,7 @@
       v93 = 0;
       do
       {
-        if ( pParty->field_C59C[9 * (v93 + 12 * (unsigned int)ptr_507BC0->ptr_1C) + 724] )
+        if ( pParty->field_C59C[9 * (v93 + 12 * (unsigned int)window_SpeakInHouse->ptr_1C) + 724] )
           ++v149;
         ++v93;
       }
@@ -2421,13 +2421,13 @@
         if ( v149 && v149 != -65536 )
         {
           --v149;
-          v96 = ptr_507BC0->ptr_1C;
+          v96 = window_SpeakInHouse->ptr_1C;
           v97 = uActiveCharacter - 1;
           v98 = (ItemGen *)&pParty->field_C59C[9 * (v95 - 1 + 12 * (int)v96) + 724];
           v99 = _this->_490EEE(
                   (ItemGen *)&pParty->field_C59C[9 * (v95 - 1 + 12 * (int)v96) + 724],
                   2,
-                  (int)ptr_507BC0->ptr_1C,
+                  (int)window_SpeakInHouse->ptr_1C,
                   2);
           v100 = BuilDialogueString((char *)pMerchantsBuyPhrases[v99], v97, v98, (char *)v96, 2, 0);
           v101 = v100;
@@ -2439,7 +2439,7 @@
         v153 = 0;
         do
         {
-          if ( pParty->field_C59C[9 * (v104 + 12 * (unsigned int)ptr_507BC0->ptr_1C) + 724] )
+          if ( pParty->field_C59C[9 * (v104 + 12 * (unsigned int)window_SpeakInHouse->ptr_1C) + 724] )
           {
             v105 = dword_F8B168[v104];
             if ( v104 >= 4 )
@@ -2467,7 +2467,7 @@
         while ( v104 < 8 );
         return;
       }
-      v72 = ptr_507BC0->ptr_1C;
+      v72 = window_SpeakInHouse->ptr_1C;
       goto LABEL_96;
     }
     if ( dword_F8B19C == 94 )
@@ -2528,7 +2528,7 @@
       v152 = 0;
       v37 = pDialogueWindow;
       //v38 = (signed __int64)(*(float *)&p2DEvents_minus1__24[13 * (unsigned int)ptr_507BC0->ptr_1C] * 500.0);
-      v38 = (signed __int64)(p2DEvents[(unsigned int)ptr_507BC0->ptr_1C - 1].flt_24 * 500.0);
+      v38 = (signed __int64)(p2DEvents[(unsigned int)window_SpeakInHouse->ptr_1C - 1].flt_24 * 500.0);
       _this = (Player *)(v38 * (100 - v0->GetMerchant()) / 100);
       if ( (signed int)_this < v38 / 3 )
         _this = (Player *)(v38 / 3);
@@ -2626,7 +2626,7 @@
       v153 = 0;
       do
       {
-        if ( pParty->field_777C[9 * (v55 + 12 * (unsigned int)ptr_507BC0->ptr_1C)] )
+        if ( pParty->field_777C[9 * (v55 + 12 * (unsigned int)window_SpeakInHouse->ptr_1C)] )
         {
           v56 = dword_F8B168[v55];
           if ( v55 >= 4 )
@@ -2660,7 +2660,7 @@
       v153 = 0;
       do
       {
-        if ( (char *)pParty->field_C59C[9 * (v61 + 12 * (unsigned int)ptr_507BC0->ptr_1C) + 724] != v11 )
+        if ( (char *)pParty->field_C59C[9 * (v61 + 12 * (unsigned int)window_SpeakInHouse->ptr_1C) + 724] != v11 )
         {
           v62 = dword_F8B168[v61];
           if ( v61 >= 4 )
@@ -2696,7 +2696,7 @@
     {
       do
       {
-        if ( (char *)pParty->field_777C[9 * (v68 + 12 * (unsigned int)ptr_507BC0->ptr_1C)] != v11 )
+        if ( (char *)pParty->field_777C[9 * (v68 + 12 * (unsigned int)window_SpeakInHouse->ptr_1C)] != v11 )
           ++v149;
         ++v68;
       }
@@ -2706,7 +2706,7 @@
     {
       do
       {
-        if ( (char *)pParty->field_C59C[9 * (v68 + 12 * (unsigned int)ptr_507BC0->ptr_1C) + 724] != v11 )
+        if ( (char *)pParty->field_C59C[9 * (v68 + 12 * (unsigned int)window_SpeakInHouse->ptr_1C) + 724] != v11 )
           ++v149;
         ++v68;
       }
@@ -2733,7 +2733,7 @@
       if ( !v74 )
         return;
       v149 = v74 - 1;
-      v75 = (int)ptr_507BC0->ptr_1C;
+      v75 = (int)window_SpeakInHouse->ptr_1C;
       v76 = 9 * (v74 - 1 + 12 * v75);
       if ( dword_F8B19C == 2 )
         v77 = (ItemGen *)&pParty->field_777C[v76];
@@ -2743,7 +2743,7 @@
       {
         v124 = (__int64 *)v11;
         v122 = 2;
-        v120 = ptr_507BC0->ptr_1C;
+        v120 = window_SpeakInHouse->ptr_1C;
         v116 = v77;
         v78 = uActiveCharacter - 1;
         v15 = (char *)pMerchantsBuyPhrases[_this->_490EEE(v77, 2, v75, 2)];
@@ -2753,7 +2753,7 @@
       {
         v124 = (__int64 *)v11;
         v122 = 2;
-        v120 = ptr_507BC0->ptr_1C;
+        v120 = window_SpeakInHouse->ptr_1C;
         v116 = v77;
         v15 = pGlobalTXT_LocalizationStrings[181];
         v14 = uActiveCharacter - 1;
@@ -2768,7 +2768,7 @@
       v111 = &v144;
       goto LABEL_63;
     }
-    v72 = ptr_507BC0->ptr_1C;
+    v72 = window_SpeakInHouse->ptr_1C;
 LABEL_96:
     v144._4B1854(
       __PAIR__(pParty->field_3C.field_50[2 * (int)v72 + 1], pParty->field_3C.field_50[2 * (int)v72])
@@ -2790,9 +2790,9 @@
       return;
     v124 = 0;
     v122 = 5;
-    v120 = ptr_507BC0->ptr_1C;
+    v120 = window_SpeakInHouse->ptr_1C;
     v116 = (ItemGen *)&v0->spellbook.pDarkSpellbook.bIsSpellAvailable[4 * v33 + 5];
-    v34 = (int)ptr_507BC0->ptr_1C;
+    v34 = (int)window_SpeakInHouse->ptr_1C;
     uPlayerID = uActiveCharacter - 1;
     v35 = v0->_490EEE((ItemGen *)&v0->spellbook.pDarkSpellbook.bIsSpellAvailable[4 * v33 + 5], 2, v34, 5);
     v14 = uPlayerID;
@@ -2868,9 +2868,9 @@
       return;
     v124 = 0;
     v122 = 3;
-    v120 = ptr_507BC0->ptr_1C;
+    v120 = window_SpeakInHouse->ptr_1C;
     v116 = (ItemGen *)&v0->pInventoryItems[v10-1];
-    v12 = (int)ptr_507BC0->ptr_1C;
+    v12 = (int)window_SpeakInHouse->ptr_1C;
     uPlayerID = uActiveCharacter - 1;
     v13 = v0->_490EEE(v116, 2, v12, 3);
     v14 = uPlayerID;
@@ -2896,16 +2896,16 @@
             v3 = (ItemGen *)&v0->pInventoryItems[v2-1];
             if (v3->Identified())
             {
-              v118 = ptr_507BC0->ptr_1C;
+              v118 = window_SpeakInHouse->ptr_1C;
               v4 = uActiveCharacter - 1;
               v5 = "%24";
               v114 = v3;
             }
             else
             {
-              v118 = ptr_507BC0->ptr_1C;
+              v118 = window_SpeakInHouse->ptr_1C;
               v114 = v3;
-              v7 = (int)ptr_507BC0->ptr_1C;
+              v7 = (int)window_SpeakInHouse->ptr_1C;
               uPlayerID = uActiveCharacter - 1;
               v8 = v0->_490EEE(v3, 2, v7, 4);
               v4 = uPlayerID;
@@ -3166,7 +3166,7 @@
   pDialogueWindow->CreateButton(480u, 160u, 140u, 30u, 1, 0, 0, 0x53u, 0, "", 0);
   pDialogueWindow->_41D08F(1, 1, 0, 2);
   dword_F8B19C = -1;
-  v0 = (int)((char *)ptr_507BC0->ptr_1C - 102);
+  v0 = (int)((char *)window_SpeakInHouse->ptr_1C - 102);
   if ( (signed __int64)__PAIR__(pParty->field_3C.field_0[2 * v0 + 1], pParty->field_3C.field_0[2 * v0]) < (signed __int64)pParty->uTimePlayed )
   {
     pParty->field_75A[v0] = 0;
@@ -3623,19 +3623,19 @@
   int v7; // [sp+10h] [bp-4h]@0
 
   v0 = v7;
-  v1 = (char *)ptr_507BC0->ptr_1C - 139;
+  v1 = (char *)window_SpeakInHouse->ptr_1C - 139;
   v2 = 0;
   do
   {
     //v3 = p2DEvents_minus1___00[26 * (unsigned int)ptr_507BC0->ptr_1C];
-    v3 = p2DEvents[(unsigned int)ptr_507BC0->ptr_1C - 1].uType;
+    v3 = p2DEvents[(unsigned int)window_SpeakInHouse->ptr_1C - 1].uType;
     if ( v3 < 5 )
       goto LABEL_12;
     if ( v3 <= 13 )
     {
       v0 = rand() % word_4F0F30[(signed int)v1]
          //+ 11 * p2DEvents_minus1___00[26 * (unsigned int)ptr_507BC0->ptr_1C]
-         + 11 * p2DEvents[(unsigned int)ptr_507BC0->ptr_1C - 1].uType
+         + 11 * p2DEvents[(unsigned int)window_SpeakInHouse->ptr_1C - 1].uType
          + 345;
     }
     else
@@ -3665,9 +3665,9 @@
       if ( !(unsigned __int16)_449B57_test_bit(pParty->_award_bits, 239) )
         v0 = 486;
     }
-    v5 = ptr_507BC0;
-
-    auto _u = (ItemGen *)&pParty->pPlayers[1].pInstalledBeacons[0].field_18 + v2 + 12 * (unsigned int)ptr_507BC0->ptr_1C;
+    v5 = window_SpeakInHouse;
+
+    auto _u = (ItemGen *)&pParty->pPlayers[1].pInstalledBeacons[0].field_18 + v2 + 12 * (unsigned int)window_SpeakInHouse->ptr_1C;
     _u->Reset();
     *(&pParty->pPlayers[1].pInstalledBeacons[0].field_18 + 9 * (v2 + 12 * (unsigned int)v5->ptr_1C)) = v0;
     *(&pParty->pPlayers[1].pInstalledBeacons[1].field_10 + 9 * (v2++ + 12 * (unsigned int)v5->ptr_1C)) = 1;
@@ -3783,16 +3783,16 @@
           v4 += v5++ + 1;
         while ( v5 < v7 );
       }
-      if ( v7 < (unsigned __int16)word_4F0866[(unsigned int)ptr_507BC0->ptr_1C]
+      if ( v7 < (unsigned __int16)word_4F0866[(unsigned int)window_SpeakInHouse->ptr_1C]
         && (signed __int64)v6->uExperience < 1000 * v4 )
         return;
     }
     goto LABEL_9;
   }
-  v8 = ptr_507BC0;
+  v8 = window_SpeakInHouse;
   if ( (dword_F8B198 == 27 || dword_F8B198 == 28)
     && (v1 = 0,
-        *(&byte_4F09B1[32 * (unsigned __int8)*(&byte_4F0CCF[4 * (unsigned int)ptr_507BC0->ptr_1C] + v2)]
+        *(&byte_4F09B1[32 * (unsigned __int8)*(&byte_4F0CCF[4 * (unsigned int)window_SpeakInHouse->ptr_1C] + v2)]
         + pParty->uDaysPlayed % 7))
     || dword_F8B198 != 23
     || v55 != 10 )
@@ -3816,7 +3816,7 @@
     pDialogueWindow->CreateButton(8u, 8u, 0x1C2u, 0x140u, 1, v1, 0x51u, v1, v1, "", (Texture *)v1);
 LABEL_10:
     v3 = dword_F8B198;
-    v8 = ptr_507BC0;
+    v8 = window_SpeakInHouse;
     goto LABEL_11;
   }
   if ( uActiveCharacter != v1 )
@@ -3833,7 +3833,7 @@
     v3 = dword_F8B198;
     dword_F8B164 = &pIcons_LOD->pTextures[v9];
 LABEL_13:
-    v8 = ptr_507BC0;
+    v8 = window_SpeakInHouse;
   }
   if ( v3 > 21 )
   {
@@ -3869,7 +3869,7 @@
                 v34 = pIcons_LOD->LoadTexture(
                         pItemsTable->pItems[v33].pIconName,
                         TEXTURE_16BIT_PALETTE);
-                v8 = ptr_507BC0;
+                v8 = window_SpeakInHouse;
                 dword_F8B168[v32] = &pIcons_LOD->pTextures[v34];
               }
               ++v32;
@@ -3879,11 +3879,11 @@
           else
           {
             sub_4BC8D5();
-            v30 = ptr_507BC0->ptr_1C;
+            v30 = window_SpeakInHouse->ptr_1C;
             v31 = pParty->uTimePlayed
                 + (signed __int64)((double)(0xA8C000
                                           //* (signed int)p2DEvents_minus1[26 * (unsigned int)ptr_507BC0->ptr_1C])
-                                          * (signed int)p2DEvents[(unsigned int)ptr_507BC0->ptr_1C - 1].field_1C)
+                                          * (signed int)p2DEvents[(unsigned int)window_SpeakInHouse->ptr_1C - 1].field_1C)
                                  * 0.033333335);
             *(int *)&stru_AA1058[3].pSounds[8 * (int)v30 + 44468] = v31;
             *(int *)&stru_AA1058[3].pSounds[8 * (int)v30 + 44472] = HIDWORD(v31);
@@ -3910,7 +3910,7 @@
                                                      * (pParty->uCurrentMonth + 12i64 * pParty->uCurrentYear - 14015))
                                             * 0.033333335);
             v14 = rand() % 258;
-            v15 = ptr_507BC0;
+            v15 = window_SpeakInHouse;
             pParty->field_750[v12] = v14 + 1;
             v16 = (int)((char *)v15->ptr_1C - 102);
             if ( v16 )
@@ -4181,7 +4181,7 @@
                       v39 = 4;
                     else
                       v39 = 2;
-                    HousePlaySomeSound((unsigned int)ptr_507BC0->ptr_1C, v39);
+                    HousePlaySomeSound((unsigned int)window_SpeakInHouse->ptr_1C, v39);
                   }
                   else
                   {
@@ -4217,12 +4217,12 @@
   {
     GenerateShopItems();
     sub_4B8F94();
-    v8 = ptr_507BC0;
-    v40 = ptr_507BC0->ptr_1C;
+    v8 = window_SpeakInHouse;
+    v40 = window_SpeakInHouse->ptr_1C;
     v3 = dword_F8B198;
     v41 = pParty->uTimePlayed
         //+ (signed __int64)((double)(11059200 * (signed int)p2DEvents_minus1[26 * (unsigned int)ptr_507BC0->ptr_1C])
-        + (signed __int64)((double)(11059200 * (signed int)p2DEvents[(unsigned int)ptr_507BC0->ptr_1C - 1].field_1C)
+        + (signed __int64)((double)(11059200 * (signed int)p2DEvents[(unsigned int)window_SpeakInHouse->ptr_1C - 1].field_1C)
                          * 0.033333335);
     pParty->field_3C.field_50[2 * (int)v40] = v41;
     pParty->field_3C.field_50[2 * (int)v40 + 1] = HIDWORD(v41);
@@ -4242,7 +4242,7 @@
         {
           v46 = pIcons_LOD->LoadTexture(pItemsTable->pItems[v45].pIconName, TEXTURE_16BIT_PALETTE);
           v3 = dword_F8B198;
-          v8 = ptr_507BC0;
+          v8 = window_SpeakInHouse;
           dword_F8B168[v43] = &pIcons_LOD->pTextures[v46];
         }
         v42 = v8->ptr_1C;
@@ -4263,7 +4263,7 @@
           if ( pParty->field_777C[9 * (v48 + 12 * (int)v47)] )
           {
             v49 = rand();
-            v8 = ptr_507BC0;
+            v8 = window_SpeakInHouse;
             word_F8B158[v48] = v49 % (300 - dword_F8B168[v48]->uTextureHeight);
           }
           v47 = v8->ptr_1C;
@@ -4285,7 +4285,7 @@
         {
           v51 = pIcons_LOD->LoadTexture(pItemsTable->pItems[v50].pIconName, TEXTURE_16BIT_PALETTE);
           v3 = dword_F8B198;
-          v8 = ptr_507BC0;
+          v8 = window_SpeakInHouse;
           dword_F8B168[v43] = &pIcons_LOD->pTextures[v51];
         }
         v42 = v8->ptr_1C;
@@ -4306,7 +4306,7 @@
           if ( pParty->field_C59C[9 * (v53 + 12 * (int)v52) + 724] )
           {
             v54 = rand();
-            v8 = ptr_507BC0;
+            v8 = window_SpeakInHouse;
             word_F8B158[v53] = v54 % (300 - dword_F8B168[v53]->uTextureHeight);
           }
           v52 = v8->ptr_1C;
@@ -4394,13 +4394,13 @@
     if ( uNumDialogueNPCPortraits != 1 )
     {
       v2 = 0;
-      pBtn_ExitCancel = ptr_507BC0->pControlsHead;
+      pBtn_ExitCancel = window_SpeakInHouse->pControlsHead;
       if ( uNumDialogueNPCPortraits > 0 )
       {
         v3 = byte_591180;
         do
         {
-          array_5913D8[v2 + 7] = (NPCData *)ptr_507BC0->CreateButton(*(&pNPCPortraits_x + v2 + 6 * v1 - 6), *(&pNPCPortraits_y + v2 + 6 * v1 - 6),
+          array_5913D8[v2 + 7] = (NPCData *)window_SpeakInHouse->CreateButton(*(&pNPCPortraits_x + v2 + 6 * v1 - 6), *(&pNPCPortraits_y + v2 + 6 * v1 - 6),
                                               0x3Fu, 0x49u, 1, 0, 0x19Au, v2, 0, v3, 0, 0, 0);
           v1 = uNumDialogueNPCPortraits;
           ++v2;
@@ -4527,7 +4527,7 @@
     {
       v42 = dword_F8B19C - 36;
       //v43 = (signed __int64)(*(float *)&p2DEvents_minus1__24[13 * (unsigned int)ptr_507BC0->ptr_1C] * 500.0);
-      v43 = (signed __int64)(p2DEvents[(unsigned int)ptr_507BC0->ptr_1C - 1].flt_24 * 500.0);
+      v43 = (signed __int64)(p2DEvents[(unsigned int)window_SpeakInHouse->ptr_1C - 1].flt_24 * 500.0);
       v44 = v43 * (100 - v0->GetMerchant()) / 100;
       if ( v44 < v43 / 3 )
         v44 = v43 / 3;
@@ -4539,7 +4539,7 @@
           if ( pParty->uNumGold < v44 )
           {
             ShowStatusBarString(pGlobalTXT_LocalizationStrings[155], 2u);// "You don't have enough gold"
-            v13 = ptr_507BC0->ptr_1C;
+            v13 = window_SpeakInHouse->ptr_1C;
             if ( dword_F8B198 == 30 )
               v55 = 4;
             else
@@ -4573,7 +4573,7 @@
     v18 = pRenderer->pActiveZBuffer[v17->x + pSRZBufferLineOffsets[pMouse->GetCursorPos(&v61)->y]] & 0xFFFF;
     if ( !v18 )
       return;
-    v19 = ptr_507BC0->ptr_1C;
+    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;
@@ -4586,7 +4586,7 @@
     {
       v24 = 2;
 LABEL_62:
-      HousePlaySomeSound((unsigned int)ptr_507BC0->ptr_1C, v24);
+      HousePlaySomeSound((unsigned int)window_SpeakInHouse->ptr_1C, v24);
       v9 = pGlobalTXT_LocalizationStrings[155];
       v54 = 2;
       goto LABEL_71;
@@ -4612,7 +4612,7 @@
     v29 = pRenderer->pActiveZBuffer[v28->x + pSRZBufferLineOffsets[pMouse->GetCursorPos(&v57)->y]] & 0xFFFF;
     if ( !v29 )
       return;
-    v30 = ptr_507BC0->ptr_1C;
+    v30 = window_SpeakInHouse->ptr_1C;
     v31 = 9 * (v29 - 1 + 12 * (int)v30);
     if ( dword_F8B19C == 2 )
     {
@@ -4646,7 +4646,7 @@
         uNumSeconds = v0->StealFromShop(v32, a3, v38, 0, &a6);
         if ( !uNumSeconds )
         {
-          sub_4B1447_party_fine((int)ptr_507BC0->ptr_1C, 0, a6);
+          sub_4B1447_party_fine((int)window_SpeakInHouse->ptr_1C, 0, a6);
           return;
         }
       }
@@ -4675,7 +4675,7 @@
           if ( uNumSeconds == 1 || uNumSeconds == 2 )
           {
             *(char *)(v40 + 517) |= 1u;
-            sub_4B1447_party_fine((int)ptr_507BC0->ptr_1C, v41, a6);
+            sub_4B1447_party_fine((int)window_SpeakInHouse->ptr_1C, v41, a6);
             goto LABEL_43;
           }
         }
@@ -4706,8 +4706,8 @@
       || pMouse->GetCursorPos(&v65)->x >= 462
       || (v15 = v0->GetItemIDAtInventoryIndex((int *)&v79), (v77 = (Player *)v15) == 0) )
       return;
-    v16 = ptr_507BC0;
-    if ( sub_4BDAAF((ItemGen *)&v0->pInventoryItems[v15-1], (int)ptr_507BC0->ptr_1C) )
+    v16 = window_SpeakInHouse;
+    if ( sub_4BDAAF((ItemGen *)&v0->pInventoryItems[v15-1], (int)window_SpeakInHouse->ptr_1C) )
     {
       dword_F8B1E4 = 1;
       v0->_4BE2DD(v79, (int)((char *)v77 - 1), (int)v16->ptr_1C);
@@ -4741,11 +4741,11 @@
         if ( v11 )
         {
           //v80 = v0->_4B8179(p2DEvents_minus1__20[13 * (unsigned int)ptr_507BC0->ptr_1C]);
-          v80 = v0->_4B8179(p2DEvents[(unsigned int)ptr_507BC0->ptr_1C - 1].fPriceMultiplier);
+          v80 = v0->_4B8179(p2DEvents[(unsigned int)window_SpeakInHouse->ptr_1C - 1].fPriceMultiplier);
           v12 = (int)&v0->pInventoryItems[v11-1];
           if ( !(*(char *)(v12 + 20) & 1) )
           {
-            _this = (ItemGen *)ptr_507BC0->ptr_1C;
+            _this = (ItemGen *)window_SpeakInHouse->ptr_1C;
             if ( sub_4BDAAF((ItemGen *)v12, (int)_this) )
             {
               if ( pParty->uNumGold >= v80 )
@@ -4786,7 +4786,7 @@
           {
             v3 = (int)&v0->pInventoryItems[v2-1];
             //v4 = p2DEvents_minus1__20[13 * (unsigned int)ptr_507BC0->ptr_1C];
-            v4 = p2DEvents[(unsigned int)ptr_507BC0->ptr_1C - 1].fPriceMultiplier;
+            v4 = p2DEvents[(unsigned int)window_SpeakInHouse->ptr_1C - 1].fPriceMultiplier;
 
             auto _v = (ItemGen *)&v0->pInventoryItems[v2-1];
             v5 = _v->GetValue();
@@ -4796,7 +4796,7 @@
             v80 = v6;
             if ( !v7 )
             {
-              _this = (ItemGen *)ptr_507BC0->ptr_1C;
+              _this = (ItemGen *)window_SpeakInHouse->ptr_1C;
               if ( sub_4BDAAF((ItemGen *)v3, (int)_this) )
               {
                 if ( pParty->uNumGold >= v80 )
@@ -5099,7 +5099,7 @@
   pRenderer->EndScene();
   free(_this.pPixels);
   _this.pPixels = 0;
-  ptr_507BC0 = GUIWindow::Create(0, 0, 640, 480, WINDOW_MainMenu, 0, 0);
+  window_SpeakInHouse = GUIWindow::Create(0, 0, 640, 480, WINDOW_MainMenu, 0, 0);
   pWindow.uFrameX = 75;
   pWindow.uFrameY = 60;
   pWindow.uFrameWidth = 469;
@@ -5175,8 +5175,8 @@
     pRenderer->pBeforePresentFunction();
   pRenderer->_49F1BC("MM7_Win.Pcx");
   pAllocator->FreeChunk(pFont);
-  ptr_507BC0->Release();
-  ptr_507BC0 = 0;
+  window_SpeakInHouse->Release();
+  window_SpeakInHouse = 0;
   if ( v15 == (void *)2 )
   {
     result = pMessageQueue_50CBD0->uNumMessages;
@@ -11975,7 +11975,7 @@
         {
           if ( (signed int)pMessageQueue_50CBD0->uNumMessages < 40 )
           {
-            v12 = ptr_507BC0 == 0;
+            v12 = window_SpeakInHouse == 0;
             pMessageQueue_50CBD0->pMessages[pMessageQueue_50CBD0->uNumMessages].eType = (UIMessageType)113;
             pMessageQueue_50CBD0->pMessages[pMessageQueue_50CBD0->uNumMessages].param = !v12;
             *(&pMessageQueue_50CBD0->uNumMessages + 3 * pMessageQueue_50CBD0->uNumMessages + 3) = 0;