diff SaveLoad.cpp @ 105:56e11be29db1

Слияние
author Ritor1
date Tue, 05 Feb 2013 19:08:52 +0600
parents 6ad816231528
children 9abdd40a107b
line wrap: on
line diff
--- a/SaveLoad.cpp	Tue Feb 05 19:08:22 2013 +0600
+++ b/SaveLoad.cpp	Tue Feb 05 19:08:52 2013 +0600
@@ -247,7 +247,7 @@
   int v17; // esi@37
   unsigned int v18; // ecx@38
   unsigned int v19; // esi@39
-  char *v20; // edx@39
+  BSPModel *v20; // edx@39
   void *v21; // esi@41
   void *v22; // esi@41
   BSPModel *v23; // eax@42
@@ -265,16 +265,16 @@
   //std::string v35; // [sp-18h] [bp-288h]@8
   const char *v36; // [sp-10h] [bp-280h]@6
   const char *v37; // [sp-Ch] [bp-27Ch]@6
-  const char *v38; // [sp-8h] [bp-278h]@8
+  unsigned int *v38; // [sp-8h] [bp-278h]@8
   CHAR Buffer; // [sp+Ch] [bp-264h]@59
-  char Dir; // [sp+8Ch] [bp-1E4h]@51
-  char Drive; // [sp+ACh] [bp-1C4h]@51
+  char Dir[255]; // [sp+8Ch] [bp-1E4h]@51
+  char Drive[255]; // [sp+ACh] [bp-1C4h]@51
   SavegameHeader header; // [sp+CCh] [bp-1A4h]@10
   //int v43; // [sp+CCh] [bp-1A4h]@10
   //char Dest[20]; // [sp+E0h] [bp-190h]@10
   //unsigned __int64 pTimePlayed; // [sp+F4h] [bp-17Ch]@10
-  char Filename; // [sp+130h] [bp-140h]@51
-  char Ext; // [sp+150h] [bp-120h]@51
+  char Filename[255]; // [sp+130h] [bp-140h]@51
+  char Ext[255]; // [sp+150h] [bp-120h]@51
   char v48; // [sp+151h] [bp-11Fh]@51
   char Source[32]; // [sp+170h] [bp-100h]@51
   char Str[120]; // [sp+190h] [bp-E0h]@8
@@ -419,7 +419,7 @@
   }
   if ( !a2 )
   {
-    __debugbreak();
+    //__debugbreak();
     sub_42FA22_mess_with_laying_item_list();
     v9 = (int)malloc(0xF4240);
     v71 = (std::string *)v9;
@@ -446,7 +446,7 @@
         v68 = 0;
         for (int i =  0; i <= (signed int)pIndoor->uNumFaces; ++i)
         {
-          v38 = (char *)v68 + (unsigned int)pIndoor->pFaces + 44;
+		  v38 = &pIndoor->pFaces[i].uAttributes;//(char *)v68 + (unsigned int)pIndoor->pFaces + 44;
           memcpy(v11, v38, 4);
           v68 += 48;
           v11 = (char *)v11 + 4;
@@ -489,11 +489,11 @@
       if ( (signed int)pOutdoor->uNumBModels > 0 )
       {
         v19 = pOutdoor->uNumBModels;
-        v20 = (char *)&pOutdoor->pBModels->uNumFaces;
+		v20 = &pOutdoor->pBModels[0];
         do
         {
-          v18 += *(int *)v20;
-          v20 += 188;
+		  v18 += v20->uNumFaces;
+          ++v20;
           --v19;
           pOutdoor->ddm.uNumFacesInBModels = v18;
         }
@@ -512,16 +512,16 @@
       {
         v23 = pOutdoor->pBModels;
         v24 = 76;
-        for (int i =  0; i <= (signed int)pOutdoor->uNumBModels ; ++i)
+		for (int i =  0; i < (signed int)pOutdoor->uNumBModels ; ++i)
         {
-          v25 = *(int *)&v23->pModelName[v24] == 0;
-          v26 = *(int *)&v23->pModelName[v24] < 0;
+		  v25 = v23[i].uNumFaces == 0;//*(int *)&v23->pModelName[v24] == 0;
+		  v26 = v23[i].uNumFaces < 0;//*(int *)&v23->pModelName[v24] < 0;
           if ( !(v26 | v25) )
           {
             v68 = 0;
-            for (int j =  0; j <= *(int *)&pOutdoor->pBModels->pModelName[v24]; ++j)
+			for (int j =  0; j < pOutdoor->pBModels[i].uNumFaces;++j)//*(int *)&pOutdoor->pBModels->pModelName[v24]; ++j)
             {
-              v38 = (char *)v68 + *(int *)&v23->pModelName[v24 + 8] + 28;
+			  v38 = &(v23[i].pFaces[j].uAttributes); //(char *)v68 + *(int *)&v23->pModelName[v24 + 8] + 28;				 
               memcpy(v22, v38, 4);
               v23 = pOutdoor->pBModels;
               v68 += 154;
@@ -560,7 +560,7 @@
     }
     v32 = v17 + 56;
     strcpy(Source, pCurrentMapName);
-    _splitpath(Source, &Drive, &Dir, &Filename, &Ext);
+    _splitpath(Source, Drive, Dir, Filename, Ext);
     v48 = 100;
     Size = v32 - (int)DstBuf;
     v69 = 999984;