diff mm7_4.cpp @ 59:5159d2e6f559

BLV render
author Nomad
date Fri, 26 Oct 2012 02:38:26 +0200
parents 41cbaabde2cb
children 30ec77bbd018
line wrap: on
line diff
--- a/mm7_4.cpp	Thu Oct 25 02:05:16 2012 +0200
+++ b/mm7_4.cpp	Fri Oct 26 02:38:26 2012 +0200
@@ -594,7 +594,7 @@
                 v11 = &v10->pFaces[v39];
                 v12 = v11->uPolygonType;
                 if ( (v12 == 3 || v12 == 4)
-                  && !(BYTE3(v11->uFaceAttributes) & 0x20)
+                  && !(v11->uAttributes & 0x20000000)
                   && v8 <= v11->pBoundingBox.x2
                   && v8 >= v11->pBoundingBox.x1
                   && v7 <= v11->pBoundingBox.y2
@@ -742,7 +742,7 @@
   {
     v32 = &pOutdoor->pBModels[dword_721160[v27]].pFaces[dword_721110[v27]];
     *a5 = 0;
-    if ( v32->uFaceAttributes & 0x10 )
+    if ( v32->uAttributes & 0x10 )
       *a5 = 1;
   }
   v33 = dword_7211B0[v27];
@@ -825,7 +825,7 @@
                   v7 = (ODMFace *)((char *)v6->pFaces + v30);
                   v8 = v7->uPolygonType;
                   if ( (v8 == 5 || v8 == 6)
-                    && !(BYTE3(v7->uFaceAttributes) & 0x20)
+                    && !(BYTE3(v7->uAttributes) & 0x20)
                     && v4 <= v7->pBoundingBox.x2
                     && v4 >= v7->pBoundingBox.x1
                     && v40 <= v7->pBoundingBox.y2
@@ -5885,7 +5885,7 @@
   uXa = 8;
   do
   {
-    pGUIWindow_CurrentMenu->CreateButton(uXa, 120u, 145u, 25u, 1, 0, 0x3Cu, uControlParama, 0, nullstring, 0);
+    pGUIWindow_CurrentMenu->CreateButton(uXa, 120u, 145u, 25u, 1, 0, 0x3Cu, uControlParama, 0, "", 0);
     uXa += 158;
     ++uControlParama;
   }
@@ -5900,7 +5900,7 @@
                                   0xABu,
                                   0,
                                   0,
-                                  nullstring,
+                                  "",
                                   pTexture_presleft,
                                   0);
   pCreationUI_BtnPressLeft[1] = pGUIWindow_CurrentMenu->CreateButton(
@@ -5913,7 +5913,7 @@
                                   0xABu,
                                   1u,
                                   0,
-                                  nullstring,
+                                  "",
                                   pTexture_presleft,
                                   0);
   pCreationUI_BtnPressLeft[2] = pGUIWindow_CurrentMenu->CreateButton(
@@ -5926,7 +5926,7 @@
                                   0xABu,
                                   2u,
                                   0,
-                                  nullstring,
+                                  "",
                                   pTexture_presleft,
                                   0);
   pCreationUI_BtnPressLeft[3] = pGUIWindow_CurrentMenu->CreateButton(
@@ -5939,7 +5939,7 @@
                                   0xABu,
                                   3u,
                                   0,
-                                  nullstring,
+                                  "",
                                   pTexture_presleft,
                                   0);
   pCreationUI_BtnPressRight[0] = pGUIWindow_CurrentMenu->CreateButton(
@@ -5952,7 +5952,7 @@
                                    0xACu,
                                    0,
                                    0,
-                                   nullstring,
+                                   "",
                                    pTexture_pressrigh,
                                    0);
   pCreationUI_BtnPressRight[1] = pGUIWindow_CurrentMenu->CreateButton(
@@ -5965,7 +5965,7 @@
                                    0xACu,
                                    1u,
                                    0,
-                                   nullstring,
+                                   "",
                                    pTexture_pressrigh,
                                    0);
   pCreationUI_BtnPressRight[2] = pGUIWindow_CurrentMenu->CreateButton(
@@ -5978,7 +5978,7 @@
                                    0xACu,
                                    2u,
                                    0,
-                                   nullstring,
+                                   "",
                                    pTexture_pressrigh,
                                    0);
   pCreationUI_BtnPressRight[3] = pGUIWindow_CurrentMenu->CreateButton(
@@ -5991,7 +5991,7 @@
                                    0xACu,
                                    3u,
                                    0,
-                                   nullstring,
+                                   "",
                                    pTexture_pressrigh,
                                    0);
   pCreationUI_BtnPressLeft2[0] = pGUIWindow_CurrentMenu->CreateButton(
@@ -6004,7 +6004,7 @@
                                    0x90u,
                                    0,
                                    0,
-                                   nullstring,
+                                   "",
                                    pTexture_presleft,
                                    0);
   pCreationUI_BtnPressLeft2[1] = pGUIWindow_CurrentMenu->CreateButton(
@@ -6017,7 +6017,7 @@
                                    0x90u,
                                    1u,
                                    0,
-                                   nullstring,
+                                   "",
                                    pTexture_presleft,
                                    0);
   pCreationUI_BtnPressLeft2[2] = pGUIWindow_CurrentMenu->CreateButton(
@@ -6030,7 +6030,7 @@
                                    0x90u,
                                    2u,
                                    0,
-                                   nullstring,
+                                   "",
                                    pTexture_presleft,
                                    0);
   pCreationUI_BtnPressLeft2[3] = pGUIWindow_CurrentMenu->CreateButton(
@@ -6043,7 +6043,7 @@
                                    0x90u,
                                    3u,
                                    0,
-                                   nullstring,
+                                   "",
                                    pTexture_presleft,
                                    0);
   pCreationUI_BtnPressRight2[0] = pGUIWindow_CurrentMenu->CreateButton(
@@ -6056,7 +6056,7 @@
                                     0x91u,
                                     0,
                                     0,
-                                    nullstring,
+                                    "",
                                     pTexture_pressrigh,
                                     0);
   pCreationUI_BtnPressRight2[1] = pGUIWindow_CurrentMenu->CreateButton(
@@ -6069,7 +6069,7 @@
                                     0x91u,
                                     1u,
                                     0,
-                                    nullstring,
+                                    "",
                                     pTexture_pressrigh,
                                     0);
   pCreationUI_BtnPressRight2[2] = pGUIWindow_CurrentMenu->CreateButton(
@@ -6082,7 +6082,7 @@
                                     0x91u,
                                     2u,
                                     0,
-                                    nullstring,
+                                    "",
                                     pTexture_pressrigh,
                                     0);
   pCreationUI_BtnPressRight2[3] = pGUIWindow_CurrentMenu->CreateButton(
@@ -6095,14 +6095,14 @@
                                     0x91u,
                                     3u,
                                     0,
-                                    nullstring,
+                                    "",
                                     pTexture_pressrigh,
                                     0);
   uControlParamb = 0;
   uXb = 8;
   do
   {
-    pGUIWindow_CurrentMenu->CreateButton(uXb, 308u, 150u, v0, 1, 0, 0x48u, uControlParamb, 0, nullstring, 0);
+    pGUIWindow_CurrentMenu->CreateButton(uXb, 308u, 150u, v0, 1, 0, 0x48u, uControlParamb, 0, "", 0);
     pGUIWindow_CurrentMenu->CreateButton(
       uXb,
       v0 + 308,
@@ -6113,7 +6113,7 @@
       0x49u,
       uControlParamb,
       0,
-      nullstring,
+      "",
       0);
     pGUIWindow_CurrentMenu->CreateButton(
       uXb,
@@ -6125,7 +6125,7 @@
       0x4Au,
       uControlParamb,
       0,
-      nullstring,
+      "",
       0);
     pGUIWindow_CurrentMenu->CreateButton(
       uXb,
@@ -6137,21 +6137,21 @@
       0x4Bu,
       uControlParamb,
       0,
-      nullstring,
+      "",
       0);
     uXb += 158;
     ++uControlParamb;
   }
   while ( (signed int)uXb < 640 );
-  pGUIWindow_CurrentMenu->CreateButton(5u, 21u, 0x99u, 0x16Du, 1, 0, 0x76u, 0, 0x31u, nullstring, 0);
-  pGUIWindow_CurrentMenu->CreateButton(163u, 21u, 0x99u, 0x16Du, 1, 0, 0x76u, 1u, 0x32u, nullstring, 0);
-  pGUIWindow_CurrentMenu->CreateButton(321u, 21u, 0x99u, 0x16Du, 1, 0, 0x76u, 2u, 0x33u, nullstring, 0);
-  pGUIWindow_CurrentMenu->CreateButton(479u, 21u, 0x99u, 0x16Du, 1, 0, 0x76u, 3u, 0x34u, nullstring, 0);
+  pGUIWindow_CurrentMenu->CreateButton(5u, 21u, 0x99u, 0x16Du, 1, 0, 0x76u, 0, 0x31u, "", 0);
+  pGUIWindow_CurrentMenu->CreateButton(163u, 21u, 0x99u, 0x16Du, 1, 0, 0x76u, 1u, 0x32u, "", 0);
+  pGUIWindow_CurrentMenu->CreateButton(321u, 21u, 0x99u, 0x16Du, 1, 0, 0x76u, 2u, 0x33u, "", 0);
+  pGUIWindow_CurrentMenu->CreateButton(479u, 21u, 0x99u, 0x16Du, 1, 0, 0x76u, 3u, 0x34u, "", 0);
   uXc = 23;
   uControlParamc = 2;
   do
   {
-    pGUIWindow_CurrentMenu->CreateButton(uXc, 169u, 120u, 20u, 1, 0, 0, uControlParamc - 2, 0, nullstring, 0);
+    pGUIWindow_CurrentMenu->CreateButton(uXc, 169u, 120u, 20u, 1, 0, 0, uControlParamc - 2, 0, "", 0);
     pGUIWindow_CurrentMenu->CreateButton(
       uXc,
       v0 + 169,
@@ -6162,7 +6162,7 @@
       0,
       uControlParamc - 1,
       0,
-      nullstring,
+      "",
       0);
     pGUIWindow_CurrentMenu->CreateButton(
       uXc,
@@ -6174,7 +6174,7 @@
       0,
       uControlParamc,
       0,
-      nullstring,
+      "",
       0);
     pGUIWindow_CurrentMenu->CreateButton(
       uXc,
@@ -6186,7 +6186,7 @@
       0,
       uControlParamc + 1,
       0,
-      nullstring,
+      "",
       0);
     pGUIWindow_CurrentMenu->CreateButton(
       uXc,
@@ -6198,7 +6198,7 @@
       0,
       uControlParamc + 2,
       0,
-      nullstring,
+      "",
       0);
     pGUIWindow_CurrentMenu->CreateButton(
       uXc,
@@ -6210,7 +6210,7 @@
       0,
       uControlParamc + 3,
       0,
-      nullstring,
+      "",
       0);
     pGUIWindow_CurrentMenu->CreateButton(
       uXc,
@@ -6222,22 +6222,22 @@
       0,
       uControlParamc + 4,
       0,
-      nullstring,
+      "",
       0);
     uControlParamc += 7;
     uXc += 158;
   }
   while ( (signed int)uControlParamc < 30 );
   pGUIWindow_CurrentMenu->_41D08F(28, 0, 7, 40);
-  pGUIWindow_CurrentMenu->CreateButton(323u, 417u, 65u, v0, 1, 0, 0x41u, 0, 0, nullstring, 0);
-  pGUIWindow_CurrentMenu->CreateButton(323u, v0 + 417, 65u, v0, 1, 0, 0x41u, 0xCu, 0, nullstring, 0);
-  pGUIWindow_CurrentMenu->CreateButton(323u, 2 * v0 + 417, 65u, v0, 1, 0, 0x41u, 0x14u, 0, nullstring, 0);
-  pGUIWindow_CurrentMenu->CreateButton(388u, 417u, 65u, v0, 1, 0, 0x41u, 0x18u, 0, nullstring, 0);
-  pGUIWindow_CurrentMenu->CreateButton(388u, v0 + 417, 65u, v0, 1, 0, 0x41u, 0x1Cu, 0, nullstring, 0);
-  pGUIWindow_CurrentMenu->CreateButton(388u, 2 * v0 + 417, 65u, v0, 1, 0, 0x41u, 0x20u, 0, nullstring, 0);
-  pGUIWindow_CurrentMenu->CreateButton(453u, 417u, 65u, v0, 1, 0, 0x41u, 0x10u, 0, nullstring, 0);
-  pGUIWindow_CurrentMenu->CreateButton(453u, v0 + 417, 65u, v0, 1, 0, 0x41u, 8u, 0, nullstring, 0);
-  pGUIWindow_CurrentMenu->CreateButton(453u, 2 * v0 + 417, 65u, v0, 1, 0, 0x41u, 4u, 0, nullstring, 0);
+  pGUIWindow_CurrentMenu->CreateButton(323u, 417u, 65u, v0, 1, 0, 0x41u, 0, 0, "", 0);
+  pGUIWindow_CurrentMenu->CreateButton(323u, v0 + 417, 65u, v0, 1, 0, 0x41u, 0xCu, 0, "", 0);
+  pGUIWindow_CurrentMenu->CreateButton(323u, 2 * v0 + 417, 65u, v0, 1, 0, 0x41u, 0x14u, 0, "", 0);
+  pGUIWindow_CurrentMenu->CreateButton(388u, 417u, 65u, v0, 1, 0, 0x41u, 0x18u, 0, "", 0);
+  pGUIWindow_CurrentMenu->CreateButton(388u, v0 + 417, 65u, v0, 1, 0, 0x41u, 0x1Cu, 0, "", 0);
+  pGUIWindow_CurrentMenu->CreateButton(388u, 2 * v0 + 417, 65u, v0, 1, 0, 0x41u, 0x20u, 0, "", 0);
+  pGUIWindow_CurrentMenu->CreateButton(453u, 417u, 65u, v0, 1, 0, 0x41u, 0x10u, 0, "", 0);
+  pGUIWindow_CurrentMenu->CreateButton(453u, v0 + 417, 65u, v0, 1, 0, 0x41u, 8u, 0, "", 0);
+  pGUIWindow_CurrentMenu->CreateButton(453u, 2 * v0 + 417, 65u, v0, 1, 0, 0x41u, 4u, 0, "", 0);
   uControlParamd = 0;
   do
   {
@@ -6254,7 +6254,7 @@
       0x40u,
       uControlParamd,
       0,
-      nullstring,
+      "",
       0);
     ++uControlParamd;
   }
@@ -6269,7 +6269,7 @@
                               0x42u,
                               0,
                               0xDu,
-                              nullstring,
+                              "",
                               (Texture *)(uTextureID_BUTTMAKE != -1 ? (int)&pIcons_LOD->pTextures[uTextureID_BUTTMAKE] : 0),
                               0);
   pPlayerCreationUI_BtnReset = pGUIWindow_CurrentMenu->CreateButton(
@@ -6282,7 +6282,7 @@
                                  0x43u,
                                  0,
                                  0x43u,
-                                 nullstring,
+                                 "",
                                  (Texture *)(uTextureID_BUTTMAKE2 != -1 ? (int)&pIcons_LOD->pTextures[uTextureID_BUTTMAKE2] : 0),
                                  0);
   pPlayerCreationUI_BtnMinus = pGUIWindow_CurrentMenu->CreateButton(
@@ -6295,7 +6295,7 @@
                                  0x3Fu,
                                  0,
                                  0x2Du,
-                                 nullstring,
+                                 "",
                                  pTexture_buttminu,
                                  0);
   pPlayerCreationUI_BtnPlus = pGUIWindow_CurrentMenu->CreateButton(
@@ -6308,7 +6308,7 @@
                                 0x3Eu,
                                 1u,
                                 0x2Bu,
-                                nullstring,
+                                "",
                                 pTexture_buttplus,
                                 0);
   pFontCChar = LoadFont("cchar.fnt", "FONTPAL", 0);
@@ -6714,7 +6714,7 @@
     (signed __int16)v21.uWidth);
   free(pString);
   pWindow_MainMenu = GUIWindow::Create(0, 0, 640, 480, WINDOW_MainMenu, 0, (int)ptr);
-  pWindow_MainMenu->CreateButton(0, 0, 0, 0, 1, 0, 0x71u, 0, 0x1Bu, nullstring, 0);
+  pWindow_MainMenu->CreateButton(0, 0, 0, 0, 1, 0, 0x71u, 0, 0x1Bu, "", 0);
   pCurrentScreen = 9;
   SetCurrentMenuID(MENU_Credits);
   pRenderer->BeginScene();
@@ -6855,16 +6855,16 @@
   {
     result = 1;
   }
-  v3->vNormal.x = v.x;
-  v3->vNormal.y = v.y;
-  v3->vNormal.z = v.z;
-  v3->field_10 = *(float *)&a3;
-  v3->field_14 = result;
+  v3->face_plane.vNormal.x = v.x;
+  v3->face_plane.vNormal.y = v.y;
+  v3->face_plane.vNormal.z = v.z;
+  v3->face_plane.dist = *(float *)&a3;
+  v3->polygonType = (PolygonType)result;
   return result;
 }
 
 //----- (0049B0C9) --------------------------------------------------------
-int stru154::_49B0C9(Vec3_float_ *pNormal, float a3)
+int stru154::_49B0C9(Vec3_float_ *pNormal, float dist)
 {
   signed int v3; // esi@1
   signed int result; // eax@9
@@ -6898,11 +6898,11 @@
   v5 = pNormal->z;
   v6 = pNormal->y;
   v7 = pNormal->x;
-  this->field_14 = result;
-  this->vNormal.x = v7;
-  this->field_10 = a3;
-  this->vNormal.y = v6;
-  this->vNormal.z = v5;
+  this->polygonType = (PolygonType)result;
+  this->face_plane.vNormal.x = v7;
+  this->face_plane.dist = dist;
+  this->face_plane.vNormal.y = v6;
+  this->face_plane.vNormal.z = v5;
   return result;
 }
 
@@ -7979,7 +7979,7 @@
               v6 = stru_F8AD28.pDeltaUV[0];
               v116 = stru_F8AD28.pDeltaUV[1];
               v7 = 0;
-              for ( i = bUseLoResSprites; v7 < stru_F8AD28.field_AC; *(int *)v9 = v10 )
+              for ( i = bUseLoResSprites; v7 < stru_F8AD28.uNumLightsApplied; *(int *)v9 = v10 )
               {
                 v8 = v116;
                 stru_F8AD28._blv_lights_xs[v7] += v6;
@@ -8478,7 +8478,7 @@
           v48 = v9;
           v50 = v10;
           sub_4AF412();
-          ++pBLVRenderParams->field_80;
+          ++pBLVRenderParams->uNumFacesRenderedThisFrame;
           v11 = sr_sub_47C24C_get_palette(v2, v4->palette_id2, 0, 1);
           v12 = stru_F8A590._viewport_space_y;
           v51 = v11;
@@ -8744,11 +8744,11 @@
 
   v2 = a1 >> SLOBYTE(stru_F8AD28.field_38);
   v3 = a2 >> SLOBYTE(stru_F8AD28.field_38);
-  v17 = stru_F8AD28.field_2C;
+  v17 = stru_F8AD28.uCurrentAmbientLightLevel;
   v4 = 0;
   v15 = v2;
   v16 = 0;
-  if ( stru_F8AD28.field_AC > 0 )
+  if ( stru_F8AD28.uNumLightsApplied > 0 )
   {
     do
     {
@@ -8781,7 +8781,7 @@
       ++v16;
       v2 = v15;
     }
-    while ( v16 < stru_F8AD28.field_AC );
+    while ( v16 < stru_F8AD28.uNumLightsApplied );
     v4 = 0;
   }
   if ( stru_F8AD28.field_3E4 != v4 )
@@ -8925,7 +8925,7 @@
   stru_F8AD28.vec_20.x = v66.x;
   stru_F8AD28.vec_20.y = v66.y;
   stru_F8AD28.vec_20.z = v66.z;
-  stru_F8AD28.field_3F8 = v2->field_22;
+  stru_F8AD28.uDefaultAmbientLightLevel = v2->field_22;
   if ( pBLVRenderParams->sPartyRotX )
   {
     v74 = (unsigned __int64)(stru_F8AD28.plane_4.vNormal.y * (signed __int64)pBLVRenderParams->sSineY) >> 16;
@@ -9046,11 +9046,11 @@
   v69 = v17;
   v74 = 0;
   v73 = 0;
-  stru_F8AD28.field_2C = (stru_F8AD28.field_3F8 + *(__int16 *)((char *)&pIndoor->pSectors->uMinAmbientLightLevel + v17)) << 16;
-  v70 = uNumMobileLightsApplied;
-  if ( uNumMobileLightsApplied > 0 )
-  {
-    v18 = (char *)&pMobileLights[0].vPosition.y;
+  stru_F8AD28.uCurrentAmbientLightLevel = (stru_F8AD28.uDefaultAmbientLightLevel + *(__int16 *)((char *)&pIndoor->pSectors->uMinAmbientLightLevel + v17)) << 16;
+  v70 = pMobileLightsStack->uNumLightsActive;
+  if ( pMobileLightsStack->uNumLightsActive > 0 )
+  {
+    v18 = (char *)&pMobileLightsStack->pLights[0].vPosition.y;
     do
     {
       if ( v74 >= 20 )
@@ -9099,7 +9099,7 @@
                     v28 = v74;
                     v29 = v18[9];
                     ++v74;
-                    stru_F8AD28._blv_lights_smthngs[v28] = v29;
+                    stru_F8AD28._blv_lights_types[v28] = v29;
                   }
                 }
               }
@@ -9167,7 +9167,7 @@
                         v16 = 0.0039215689;
                         stru_F8AD28._blv_lights_light_dot_faces[v39] = abs(v38);
                         v40 = v74++;
-                        stru_F8AD28._blv_lights_smthngs[v40] = 1;
+                        stru_F8AD28._blv_lights_types[v40] = 1;
                       }
                     }
                   }
@@ -9184,9 +9184,9 @@
     }
   }
   v73 = 0;
-  if ( uNumStationaryLightsApplied > 0 )
-  {
-    v41 = (char *)&pStationaryLights[0].vPosition.y;
+  if ( pStationaryLightsStack->uNumLightsActive > 0 )
+  {
+    v41 = (char *)&pStationaryLightsStack->pLights[0].vPosition.y;
     do
     {
       if ( v74 >= 20 )
@@ -9235,7 +9235,7 @@
                       v16 = 0.0039215689;
                       stru_F8AD28._blv_lights_light_dot_faces[v48] = abs(v47);
                       v52 = v74++;
-                      stru_F8AD28._blv_lights_smthngs[v52] = 1;
+                      stru_F8AD28._blv_lights_types[v52] = 1;
                     }
                   }
                 }
@@ -9247,9 +9247,9 @@
       ++v73;
       v41 += 12;
     }
-    while ( v73 < uNumStationaryLightsApplied );
-  }
-  stru_F8AD28.field_AC = v74;
+    while ( v73 < pStationaryLightsStack->uNumLightsActive );
+  }
+  stru_F8AD28.uNumLightsApplied = v74;
   v53 = v1->pBounding.x2;
   if ( pBLVRenderParams->vPartyPos.x <= v53 )
   {
@@ -9352,7 +9352,7 @@
   stru_F8AD28.vec_14.z = 0;
   stru_F8AD28.vec_20.x = 0;
   stru_F8AD28.vec_20.z = 0;
-  stru_F8AD28.field_3F8 = 0;
+  stru_F8AD28.uDefaultAmbientLightLevel = 0;
   if ( pBLVRenderParams->sPartyRotX )
   {
     v0 = ((unsigned __int64)(stru_F8AD28.plane_4.vNormal.x * (signed __int64)pBLVRenderParams->sCosineY) >> 16)
@@ -9450,8 +9450,8 @@
                          + ((unsigned __int64)(stru_F8AD28.vec_70.z * (signed __int64)v7) >> 16));
   stru_F8AD28.field_38 = 0;
   stru_F8AD28.field_3E4 = 0;
-  stru_F8AD28.field_2C = 0;
-  stru_F8AD28.field_AC = 0;
+  stru_F8AD28.uCurrentAmbientLightLevel = 0;
+  stru_F8AD28.uNumLightsApplied = 0;
   stru_F8AD28.field_34 = 0;
   return result;
 }
@@ -10812,7 +10812,7 @@
           sprintfex(pTmpBuf, &byte_4F0F98, v32, v31, v30);
           sprintfex(pTmpBuf2, dword_F8B1A4, pTmpBuf, 100 * (unsigned __int8)v29[8]);
           ptr_F8B1E8 = pTmpBuf2;
-          v15 = nullstring;
+          v15 = "";
           goto LABEL_45;
         }
         if ( v28 != 10 )
@@ -10828,7 +10828,7 @@
           if ( !v15 )
           {
             v16->uControlParam = 0;
-            v15 = nullstring;
+            v15 = "";
           }
           goto LABEL_49;
         }
@@ -10848,7 +10848,7 @@
             if ( !v15 )
             {
               v16->uControlParam = 0;
-              v15 = nullstring;
+              v15 = "";
             }
             if ( uDialogueType != 84 )
               goto LABEL_49;
@@ -10875,7 +10875,7 @@
             goto LABEL_33;
           }
 LABEL_41:
-          v15 = nullstring;
+          v15 = "";
           goto LABEL_49;
         }
         v15 = pGlobalTXT_LocalizationStrings[122];
@@ -10981,7 +10981,7 @@
            0x195u,
            a2,
            0,
-           nullstring,
+           "",
            0);
 }
 
@@ -11701,7 +11701,7 @@
                  pGlobalTXT_LocalizationStrings[34],
                  (Texture *)(uTextureID_506438 != -1 ? &pIcons_LOD->pTextures[uTextureID_506438] : 0),
                  0);
-  pDialogueWindow->CreateButton(0, 0, 0, 0, 1, 0, 0x51u, 0, 0, nullstring, 0);
+  pDialogueWindow->CreateButton(0, 0, 0, 0, 1, 0, 0x51u, 0, 0, "", 0);
   pDialogueWindow->CreateButton(
     0x1E0u,
     0xA0u,
@@ -11731,7 +11731,7 @@
   _4B254D_SkillMasteryTeacher(a4);
   pDialogueWindow->Release();
   pDialogueWindow = GUIWindow::Create(0, 0, 640, 0x15Eu, WINDOW_MainMenu, v1, 0);
-  v2 = nullstring;
+  v2 = "";
   ptr_5076F4 = pDialogueWindow->CreateButton(
                  0x1D7u,
                  0x1BDu,
@@ -11745,7 +11745,7 @@
                  pGlobalTXT_LocalizationStrings[34],
                  (Texture *)(uTextureID_506438 != -1 ? (int)&pIcons_LOD->pTextures[uTextureID_506438] : 0),
                  0);
-  pDialogueWindow->CreateButton(0, 0, 0, 0, 1, 0, 0x51u, 0, 0, nullstring, 0);
+  pDialogueWindow->CreateButton(0, 0, 0, 0, 1, 0, 0x51u, 0, 0, "", 0);
   if ( dword_F8B1A8 )
     v2 = pGlobalTXT_LocalizationStrings[535];
   pDialogueWindow->CreateButton(0x1E0u, 0xA0u, 0x8Cu, 0x1Eu, 1, 0, 0xAFu, 0x4Fu, 0, v2, 0);
@@ -11778,7 +11778,7 @@
                  pGlobalTXT_LocalizationStrings[34],
                  (Texture *)(uTextureID_506438 != -1 ? (int)&pIcons_LOD->pTextures[uTextureID_506438] : 0),
                  0);
-  pDialogueWindow->CreateButton(0, 0, 0, 0, 1, 0, 0x51u, 0, 0, nullstring, 0);
+  pDialogueWindow->CreateButton(0, 0, 0, 0, 1, 0, 0x51u, 0, 0, "", 0);
   if ( *(&pNPCStats->field_13A5C + 5 * v1->uProfession) )
   {
     pDialogueWindow->CreateButton(
@@ -11907,7 +11907,7 @@
                    pGlobalTXT_LocalizationStrings[74],// "End Conversation"
                    (Texture *)(uTextureID_506438 != -1 ? (int)&pIcons_LOD->pTextures[uTextureID_506438] : 0),
                    0);
-    pDialogueWindow->CreateButton(8u, 8u, 0x1C2u, 0x140u, 1, 0, 0x51u, 0, 0, nullstring, 0);
+    pDialogueWindow->CreateButton(8u, 8u, 0x1C2u, 0x140u, 1, 0, 0x51u, 0, 0, "", 0);
     if ( array_5913D8[6] == (NPCData *)1 && dword_591080 )
     {
       result = (GUIButton *)sub_4B3B42(dword_F8B198);
@@ -11917,7 +11917,7 @@
       if ( v17->joins )
       {
         v1 = 1;
-        pDialogueWindow->CreateButton(480u, 160u, 140u, 30u, 1, 0, 0xAFu, 0xDu, 0, nullstring, 0);
+        pDialogueWindow->CreateButton(480u, 160u, 140u, 30u, 1, 0, 0xAFu, 0xDu, 0, "", 0);
       }
       v5 = (void *)v17->bDrawSomeAnim;
       if ( v5 )
@@ -11936,7 +11936,7 @@
               0xAFu,
               0x13u,
               0,
-              nullstring,
+              "",
               0);
         }
       }
@@ -11957,7 +11957,7 @@
               0xAFu,
               0x14u,
               0,
-              nullstring,
+              "",
               0);
         }
       }
@@ -11978,7 +11978,7 @@
               0xAFu,
               0x15u,
               0,
-              nullstring,
+              "",
               0);
         }
       }
@@ -11999,7 +11999,7 @@
               0xAFu,
               0x16u,
               0,
-              nullstring,
+              "",
               0);
         }
       }
@@ -12020,7 +12020,7 @@
               0xAFu,
               0x17u,
               0,
-              nullstring,
+              "",
               0);
         }
       }
@@ -12041,7 +12041,7 @@
               0xAFu,
               0x18u,
               0,
-              nullstring,
+              "",
               0);
         }
       }
@@ -13560,11 +13560,11 @@
   v63 = v2 * (100 - v1->GetMerchant()) / 100;
   if ( v63 < v2 / 3 )
     v63 = v2 / 3;
-  strcpy(Dest, nullstring);
-  strcpy(v46, nullstring);
-  strcpy(v47, nullstring);
-  strcpy(v48, nullstring);
-  strcpy(v49, nullstring);
+  strcpy(Dest, "");
+  strcpy(v46, "");
+  strcpy(v47, "");
+  strcpy(v48, "");
+  strcpy(v49, "");
   if ( dword_F8B19C != 1 )
   {
     if ( dword_F8B19C != 18 )
@@ -14151,7 +14151,7 @@
   }
   v63 = 1;
   v41 = pDialogueWindow->GetControl(pDialogueWindow->pStartingPosActiveItem);
-  strcpy(a1, nullstring);
+  strcpy(a1, "");
   v41->uHeight = 0;
   v41->uY = 0;
   if ( v1->_4B6FF9() )
@@ -14612,7 +14612,7 @@
       v17 = LOBYTE(pFontArrus->uFontHeight) - 3;
       v59 = pDialogueWindow;
       v54 = v17;
-      strcpy(&Dest, nullstring);
+      strcpy(&Dest, "");
       sprintfex(pTmpBuf2, pGlobalTXT_LocalizationStrings[405], s1);
       v18 = pFontArrus->CalcTextHeight(pTmpBuf2, &v53, 0, 0);
       v19 = v16->pNumPresenceButton;
@@ -14708,7 +14708,7 @@
           ++v62;
           ++s1;
           a1 += 100;
-          strcpy(v31, nullstring);
+          strcpy(v31, "");
           if ( v24 )
           {
             v24->uW = 0;
@@ -15113,7 +15113,7 @@
   int v8; // eax@10
   SpriteFrame *v9; // eax@16
   SpriteFrame *v10; // ebx@18
-  int *v11; // eax@18
+  //int *v11; // eax@18
   int v12; // ecx@28
   //IndoorCameraD3D **v14; // eax@36
   double v15; // st7@36
@@ -15193,19 +15193,19 @@
       v9 = pSpriteFrameTable->GetFrame(v31, v8);
     v41 = 0;
     v10 = v9;
-    v11 = (int *)v9->uFlags;
-    if ( (unsigned __int8)v11 & 2 )
+    //v11 = (int *)v9->uFlags;
+    if (v9->uFlags & 2)
       v41 = 2;
-    if ( (unsigned int)v11 & 0x40000 )
+    if (v9->uFlags & 0x40000)
       v41 |= 0x40u;
-    if ( (unsigned int)v11 & 0x20000 )
+    if (v9->uFlags & 0x20000)
       LOBYTE(v41) = v41 | 0x80;
     v0 = (RenderBillboard *)(256 << v6);
-    if ( (unsigned int)v0 & (unsigned int)v11 )
+    if ( (unsigned int)v0 & v9->uFlags)
       v41 |= 4u;
     if ( v10->uGlowRadius )
     {
-      LOBYTE(v11) = byte_4E94D3;
+      //LOBYTE(v11) = byte_4E94D3;
       pMobileLightsStack->AddLight(
         a1a,
         a2,
@@ -15215,7 +15215,7 @@
         0xFFu,
         0xFFu,
         0xFFu,
-        v11);
+        byte_4E94D3);
     }
     v12 = 0;
     if ( pStru170->uNumVisibleNotEmptySectors <= 0 )
@@ -15252,10 +15252,10 @@
     else
     {
       //v14 = &pGame->pIndoorCameraD3D;
-      v0->flt_8 = pGame->pIndoorCameraD3D->flt_D0;
-      v15 = pGame->pIndoorCameraD3D->flt_D4;
-      v16 = v0->flt_8;
-      v0->flt_C = v15;
+      v0->fov_x = pGame->pIndoorCameraD3D->fov_x;
+      v15 = pGame->pIndoorCameraD3D->fov_y;
+      v16 = v0->fov_x;
+      v0->fov_y = v15;
       //v17 = v16 + 6.7553994e15;
       LODWORD(v18) = 0;
       HIDWORD(v18) = floorf(v16 + 0.5f);
@@ -15631,7 +15631,7 @@
   v25 = uHouseID;
   GameUI_StatusBar_TimedString[0] = 0;
   pStatusBarString[0] = 0;
-  ShowStatusBarString(nullstring, 2u);
+  ShowStatusBarString("", 2u);
   if ( pMessageQueue_50CBD0->uNumMessages )
     pMessageQueue_50CBD0->uNumMessages = pMessageQueue_50CBD0->pMessages[0].field_8 != 0;
   viewparams->bRedrawGameUI = 1;