Corresponds to upstream commits 09f8473 and 7fe2dd9 --- src/Savegame/SavedBattleGame.cpp.orig 2014-06-13 21:14:43 UTC +++ src/Savegame/SavedBattleGame.cpp @@ -148,14 +148,14 @@ Tile::SerializationKey serKey; size_t totalTiles = node["totalTiles"].as(); - memset(&serKey, 0, sizeof(Tile::SerializationKey)); - serKey.index = node["tileIndexSize"].as(serKey.index); + memset(&serKey, 0, sizeof(Tile::SerializationKey)); + serKey.index = node["tileIndexSize"].as(serKey.index); serKey.totalBytes = node["tileTotalBytesPer"].as(serKey.totalBytes); - serKey._fire = node["tileFireSize"].as(serKey._fire); - serKey._smoke = node["tileSmokeSize"].as(serKey._smoke); - serKey._mapDataID = node["tileIDSize"].as(serKey._mapDataID); - serKey._mapDataSetID = node["tileSetIDSize"].as(serKey._mapDataSetID); - serKey.boolFields = node["tileBoolFieldsSize"].as(1); // boolean flags used to be stored in an unmentioned byte (Uint8) :| + serKey._fire = node["tileFireSize"].as(serKey._fire); + serKey._smoke = node["tileSmokeSize"].as(serKey._smoke); + serKey._mapDataID = node["tileIDSize"].as(serKey._mapDataID); + serKey._mapDataSetID = node["tileSetIDSize"].as(serKey._mapDataSetID); + serKey.boolFields = node["tileBoolFieldsSize"].as(1); // boolean flags used to be stored in an unmentioned byte (Uint8) :| // load binary tile data! YAML::Binary binTiles = node["binTiles"].as(); @@ -380,13 +380,13 @@ } #else // first, write out the field sizes we're going to use to write the tile data - node["tileIndexSize"] = Tile::serializationKey.index; + node["tileIndexSize"] = static_cast(Tile::serializationKey.index); node["tileTotalBytesPer"] = Tile::serializationKey.totalBytes; - node["tileFireSize"] = Tile::serializationKey._fire; - node["tileSmokeSize"] = Tile::serializationKey._smoke; - node["tileIDSize"] = Tile::serializationKey._mapDataID; - node["tileSetIDSize"] = Tile::serializationKey._mapDataSetID; - node["tileBoolFieldsSize"] = Tile::serializationKey.boolFields; + node["tileFireSize"] = static_cast(Tile::serializationKey._fire); + node["tileSmokeSize"] = static_cast(Tile::serializationKey._smoke); + node["tileIDSize"] = static_cast(Tile::serializationKey._mapDataID); + node["tileSetIDSize"] = static_cast(Tile::serializationKey._mapDataSetID); + node["tileBoolFieldsSize"] = static_cast(Tile::serializationKey.boolFields); size_t tileDataSize = Tile::serializationKey.totalBytes * _mapsize_z * _mapsize_y * _mapsize_x; Uint8* tileData = (Uint8*) calloc(tileDataSize, 1);