From a620647376cf0b5b6e79bb3741ae7fb86fa877ff Mon Sep 17 00:00:00 2001 From: Anuken Date: Wed, 27 May 2026 14:50:59 -0400 Subject: [PATCH] Data patch save format changes --- core/src/mindustry/io/SaveVersion.java | 11 ++++++++--- core/src/mindustry/mod/DataPatcher.java | 1 + 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/core/src/mindustry/io/SaveVersion.java b/core/src/mindustry/io/SaveVersion.java index 94222fd9ca..bdd8e4c337 100644 --- a/core/src/mindustry/io/SaveVersion.java +++ b/core/src/mindustry/io/SaveVersion.java @@ -520,7 +520,8 @@ public abstract class SaveVersion extends SaveFileReader{ } public void skipDataPatches(DataInput stream) throws IOException{ - int amount = stream.readShort(); + stream.readInt(); //version - ignored for now + int amount = stream.readInt(); for(int i = 0; i < amount; i++){ int len = stream.readInt(); stream.skipBytes(len); @@ -536,9 +537,11 @@ public abstract class SaveVersion extends SaveFileReader{ } public void readDataPatches(DataInput stream) throws IOException{ + stream.readInt(); //version - ignored for now + Seq patches = new Seq<>(); - int patchAmount = stream.readShort(); + int patchAmount = stream.readInt(); for(int i = 0; i < patchAmount; i++){ int len = stream.readInt(); byte[] bytes = new byte[len]; @@ -572,8 +575,10 @@ public abstract class SaveVersion extends SaveFileReader{ } public void writeDataPatches(DataOutput stream) throws IOException{ + stream.writeInt(DataPatcher.patchFormatVersion); + var patches = state.patcher.patches; - stream.writeShort(patches.size); + stream.writeInt(patches.size); for(var patchset : patches){ byte[] bytes = patchset.patch.getBytes(Strings.utf8); stream.writeInt(bytes.length); diff --git a/core/src/mindustry/mod/DataPatcher.java b/core/src/mindustry/mod/DataPatcher.java index b758ef44b8..02d5e5109b 100644 --- a/core/src/mindustry/mod/DataPatcher.java +++ b/core/src/mindustry/mod/DataPatcher.java @@ -28,6 +28,7 @@ import java.util.*; @SuppressWarnings("unchecked") public class DataPatcher{ public static final int maxImageSize = 1024; + public static final int patchFormatVersion = 1; private static final Object root = new Object(); private static final ObjectMap nameToType = new ObjectMap<>();