diff --git a/SaveLoadGame.cpp b/SaveLoadGame.cpp index b9773625..667488e4 100644 --- a/SaveLoadGame.cpp +++ b/SaveLoadGame.cpp @@ -2388,10 +2388,18 @@ BOOLEAN StackedObjectData::Load( INT8** hBuffer, float dMajorMapVersion, UINT8 u { int size; - // Flugente: changed this, otherwise game would crash when reading WF maps if class ObjectData was different. this is a rough fix and by no means perfect - // LOADDATA(&(this->data), *hBuffer, sizeof(ObjectData) ); - // +1 because we have to account for endOfPOD itself - LOADDATA(&(this->data), *hBuffer, SIZEOF_OBJECTDATA_POD+1 ); + // When saving maps with the new map editor that has weapon overheated feature included! + if (dMajorMapVersion >= 7 && ubMinorMapVersion >= 28) + { + // Flugente: changed this, otherwise game would crash when reading WF maps if class ObjectData was different. this is a rough fix and by no means perfect + LOADDATA(&(this->data), *hBuffer, sizeof(ObjectData) ); + } + else + { + // WF Maps have old format + // +1 because we have to account for endOfPOD itself + LOADDATA(&(this->data), *hBuffer, SIZEOF_OBJECTDATA_POD+1 ); + } LOADDATA(&size, *hBuffer, sizeof(int) ); attachments.resize(size); @@ -2408,6 +2416,7 @@ BOOLEAN StackedObjectData::Load( INT8** hBuffer, float dMajorMapVersion, UINT8 u return TRUE; } + BOOLEAN StackedObjectData::Load( HWFILE hFile ) { UINT32 uiNumBytesRead; diff --git a/TileEngine/worlddef.h b/TileEngine/worlddef.h index 92ac6bc6..48218c3d 100644 --- a/TileEngine/worlddef.h +++ b/TileEngine/worlddef.h @@ -41,7 +41,7 @@ class SOLDIERTYPE; // SB: new map version, with map dimensions added #define MAJOR_MAP_VERSION 7.0 //Current minor map version updater. -#define MINOR_MAP_VERSION 27 +#define MINOR_MAP_VERSION 28 // 27 -> 28: increased to 28 because of included weapon overheated and tripwire feature. See ObjectClass for the new Tags! //dnl ch33 230909 #define VANILLA_MAJOR_MAP_VERSION 5.00