Added message for loading broken saves

This commit is contained in:
Anuken
2018-07-13 13:43:37 -04:00
parent 21c106e9d5
commit 82c4c791cc
19 changed files with 107 additions and 78 deletions
@@ -15,11 +15,12 @@ public abstract class SaveFileVersion{
public SaveMeta getData(DataInputStream stream) throws IOException{
long time = stream.readLong(); //read last saved time
int build = stream.readInt();
byte mode = stream.readByte(); //read the gamemode
String map = stream.readUTF(); //read the map
int wave = stream.readInt(); //read the wave
byte difficulty = stream.readByte(); //read the difficulty
return new SaveMeta(version, time, mode, map, wave, Difficulty.values()[difficulty]);
return new SaveMeta(version, time, build, mode, map, wave, Difficulty.values()[difficulty]);
}
public abstract void read(DataInputStream stream) throws IOException;
+3 -1
View File
@@ -3,6 +3,7 @@ package io.anuke.mindustry.io;
import com.badlogic.gdx.files.FileHandle;
import com.badlogic.gdx.utils.Array;
import com.badlogic.gdx.utils.Base64Coder;
import com.badlogic.gdx.utils.IntArray;
import com.badlogic.gdx.utils.IntMap;
import io.anuke.mindustry.Vars;
import io.anuke.mindustry.io.versions.Save16;
@@ -15,9 +16,10 @@ import java.util.zip.InflaterInputStream;
import static io.anuke.mindustry.Vars.*;
public class SaveIO{
public static final IntArray breakingVersions = IntArray.with(47);
public static final IntMap<SaveFileVersion> versions = new IntMap<>();
public static final Array<SaveFileVersion> versionArray = Array.with(
new Save16()
new Save16()
);
static{
+3 -1
View File
@@ -10,14 +10,16 @@ import static io.anuke.mindustry.Vars.world;
public class SaveMeta{
public int version;
public int build;
public String date;
public GameMode mode;
public Map map;
public int wave;
public Difficulty difficulty;
public SaveMeta(int version, long date, int mode, String map, int wave, Difficulty difficulty){
public SaveMeta(int version, long date, int build, int mode, String map, int wave, Difficulty difficulty){
this.version = version;
this.build = build;
this.date = Platform.instance.format(new Date(date));
this.mode = GameMode.values()[mode];
this.map = world.maps().getByName(map);
@@ -144,6 +144,10 @@ public class Saves{
Settings.save();
}
public int getBuild(){
return meta.build;
}
public int getWave(){
return meta.wave;
}
@@ -11,6 +11,7 @@ import io.anuke.mindustry.game.GameMode;
import io.anuke.mindustry.game.Team;
import io.anuke.mindustry.io.Map;
import io.anuke.mindustry.io.SaveFileVersion;
import io.anuke.mindustry.io.Version;
import io.anuke.mindustry.world.Block;
import io.anuke.mindustry.world.Tile;
import io.anuke.mindustry.world.blocks.BlockPart;
@@ -153,6 +154,7 @@ public class Save16 extends SaveFileVersion{
//--META--
stream.writeInt(version); //version id
stream.writeLong(TimeUtils.millis()); //last saved
stream.writeInt(Version.build);
//--GENERAL STATE--
stream.writeByte(state.mode.ordinal()); //gamemode
@@ -175,7 +177,6 @@ public class Save16 extends SaveFileVersion{
}
//--ENTITIES--
//TODO synchronized block here
int groups = 0;