浏览代码

fix data loading problem with Dream 2.11.
We do not need to handle item and magics specially, as none of the other objects uses the 6th and 7th fields

Wei Mingzhi 7 年之前
父节点
当前提交
8077e04e77
共有 2 个文件被更改,包括 5 次插入27 次删除
  1. 5 22
      global.c
  2. 0 5
      palcommon.h

+ 5 - 22
global.c

@@ -420,15 +420,8 @@ PAL_LoadDefaultGame(
       for (i = 0; i < MAX_OBJECTS; i++)
       {
          memcpy(&p->rgObject[i], &objects[i], sizeof(OBJECT_DOS));
-	     if (i >= OBJECT_ITEM_START && i <= OBJECT_MAGIC_END)
-         {
-            p->rgObject[i].rgwData[6] = objects[i].rgwData[5];     // wFlags
-			p->rgObject[i].rgwData[5] = 0;                         // wScriptDesc or wReserved2
-         }
-         else
-         {
-            p->rgObject[i].rgwData[6] = 0;
-         }
+         p->rgObject[i].rgwData[6] = objects[i].rgwData[5];     // wFlags
+         p->rgObject[i].rgwData[5] = 0;                         // wScriptDesc or wReserved2
       }
    }
 
@@ -679,15 +672,8 @@ PAL_LoadGame_DOS(
    for (i = 0; i < MAX_OBJECTS; i++)
    {
       memcpy(&gpGlobals->g.rgObject[i], &s.rgObject[i], sizeof(OBJECT_DOS));
-	  if (i >= OBJECT_ITEM_START && i <= OBJECT_MAGIC_END)
-	  {
-         gpGlobals->g.rgObject[i].rgwData[6] = s.rgObject[i].rgwData[5];     // wFlags
-         gpGlobals->g.rgObject[i].rgwData[5] = 0;                            // wScriptDesc or wReserved2
-	  }
-	  else
-	  {
-         gpGlobals->g.rgObject[i].rgwData[6] = 0;
-      }
+      gpGlobals->g.rgObject[i].rgwData[6] = s.rgObject[i].rgwData[5];     // wFlags
+      gpGlobals->g.rgObject[i].rgwData[5] = 0;                            // wScriptDesc or wReserved2
    }
    memcpy(gpGlobals->g.lprgEventObject, s.rgEventObject, sizeof(EVENTOBJECT) * gpGlobals->g.nEventObject);
 
@@ -839,10 +825,7 @@ PAL_SaveGame_DOS(
    for (i = 0; i < MAX_OBJECTS; i++)
    {
       memcpy(&s.rgObject[i], &gpGlobals->g.rgObject[i], sizeof(OBJECT_DOS));
-	  if (i >= OBJECT_ITEM_START && i <= OBJECT_MAGIC_END)
-	  {
-         s.rgObject[i].rgwData[5] = gpGlobals->g.rgObject[i].rgwData[6];     // wFlags
-	  }
+      s.rgObject[i].rgwData[5] = gpGlobals->g.rgObject[i].rgwData[6];     // wFlags
    }
    memcpy(s.rgEventObject, gpGlobals->g.lprgEventObject, sizeof(EVENTOBJECT) * gpGlobals->g.nEventObject);
 

+ 0 - 5
palcommon.h

@@ -81,11 +81,6 @@ typedef DWORD           PAL_POS;
 // maximum number of level
 #define     MAX_LEVELS                   99
 
-#define     OBJECT_ITEM_START            0x3D
-#define     OBJECT_ITEM_END              0x126
-#define     OBJECT_MAGIC_START           0x127
-#define     OBJECT_MAGIC_END             0x18D
-
 #define     MINIMAL_WORD_COUNT           (MAX_OBJECTS + 13)
 
 typedef enum tagPALDIRECTION