diff --git a/source/common/engine/serializer.h b/source/common/engine/serializer.h index 714c0d168..b4342ae6c 100644 --- a/source/common/engine/serializer.h +++ b/source/common/engine/serializer.h @@ -302,6 +302,11 @@ FSerializer& Serialize(FSerializer& arc, const char* key, FixedBitArray& v return arc.SerializeMemory(key, value.Storage(), value.StorageSize()); } +inline FSerializer& Serialize(FSerializer& arc, const char* key, BitArray& value, BitArray* def) +{ + return arc.SerializeMemory(key, value.Storage().Data(), value.Storage().Size()); +} + template<> FSerializer& Serialize(FSerializer& arc, const char* key, PClass*& clst, PClass** def); template<> FSerializer& Serialize(FSerializer& arc, const char* key, FFont*& font, FFont** def); template<> FSerializer &Serialize(FSerializer &arc, const char *key, Dictionary *&dict, Dictionary **def); diff --git a/source/core/automap.cpp b/source/core/automap.cpp index e9eeb076b..d633121c2 100644 --- a/source/core/automap.cpp +++ b/source/core/automap.cpp @@ -267,9 +267,8 @@ void SerializeAutomap(FSerializer& arc) { arc("automapping", automapping) ("fullmap", gFullMap) - // Only store what's needed. Unfortunately for sprites it is not that easy - .SerializeMemory("mappedsectors", show2dsector.Storage().Data(), (numsectors + 7) / 8) - .SerializeMemory("mappedwalls", show2dwall.Storage().Data(), (numwalls + 7) / 8) + ("mappedsectors", show2dsector) + ("mappedwalls", show2dwall) .EndObject(); } }