X-Git-Url: https://deadsoftware.ru/gitweb?a=blobdiff_plain;f=core%2Fsrc%2Fru%2Fdeadsoftware%2Fcavedroid%2Fgame%2FGameSaver.java;h=26281f6c81dfa5c16207c91ce810a6e5f3016192;hb=f4d52e3e4a3712050532786fca0aded5ff8b5a03;hp=49822863f876b074fe28f25e10aab9a376951aab;hpb=562b0e19a771974bb596db6815dce1a01a761ce5;p=cavedroid.git diff --git a/core/src/ru/deadsoftware/cavedroid/game/GameSaver.java b/core/src/ru/deadsoftware/cavedroid/game/GameSaver.java index 4982286..26281f6 100644 --- a/core/src/ru/deadsoftware/cavedroid/game/GameSaver.java +++ b/core/src/ru/deadsoftware/cavedroid/game/GameSaver.java @@ -1,23 +1,23 @@ package ru.deadsoftware.cavedroid.game; -import com.badlogic.gdx.Gdx; import com.badlogic.gdx.files.FileHandle; -import org.jetbrains.annotations.NotNull; -import ru.deadsoftware.cavedroid.CaveGame; -import java.io.*; +import java.io.BufferedOutputStream; +import java.io.DataInputStream; +import java.io.IOException; import java.nio.ByteBuffer; +//TODO rewrite saver public class GameSaver { private static final int VERSION = 0; - @NotNull + private static byte[] intToBytes(int i) { return ByteBuffer.allocate(4).putInt(i).array(); } - private static void saveMap(@NotNull FileHandle file, @NotNull int[][] map) throws IOException { + private static void saveMap(FileHandle file, int[][] map) throws IOException { int rl, bl; int width = map.length; int height = map[0].length; @@ -44,8 +44,8 @@ public class GameSaver { out.close(); } - @NotNull - private static int[][] loadMap(@NotNull FileHandle file) throws Exception { + + private static int[][] loadMap(FileHandle file) throws Exception { int[][] map; int ver, width, height; int rl, bl; @@ -59,56 +59,65 @@ public class GameSaver { for (int x = 0; x < width; x += rl) { rl = in.readInt(); bl = in.readInt(); - for (int i = x; i < x + rl; i++) map[i][y] = bl; + for (int i = x; i < x + rl; i++) { + map[i][y] = bl; + } } } in.close(); - } else throw new Exception("version mismatch"); + } else { + throw new Exception("version mismatch"); + } return map; } public static GameProc load() { - FileHandle file = Gdx.files.absolute(CaveGame.GAME_FOLDER + "/saves/game.sav"); - GameProc gameProc = null; - try { - ObjectInputStream in = new ObjectInputStream(file.read()); - int ver = in.readInt(); - if (VERSION == ver) gameProc = (GameProc) in.readObject(); - else throw new Exception("version mismatch"); - in.close(); - gameProc.world = new GameWorld( - loadMap(Gdx.files.absolute(CaveGame.GAME_FOLDER + "/saves/foremap.sav")), - loadMap(Gdx.files.absolute(CaveGame.GAME_FOLDER + "/saves/backmap.sav")) - ); - gameProc.physics = new GamePhysics(); - gameProc.input = new GameInput(); - } catch (Exception e) { - Gdx.app.error("GameSaver", e.getMessage(), e); - Gdx.app.exit(); - } - return gameProc; +// FileHandle file = Gdx.files.absolute(CaveGame.GAME_FOLDER + "/saves/game.sav"); +// GameProc gameProc = null; +// try { +// ObjectInputStream in = new ObjectInputStream(file.read()); +// int ver = in.readInt(); +// if (VERSION == ver) { +// gameProc = (GameProc) in.readObject(); +// } else { +// throw new Exception("version mismatch"); +// } +// in.close(); +// gameProc.world = new GameWorld( +// loadMap(Gdx.files.absolute(CaveGame.GAME_FOLDER + "/saves/foremap.sav")), +// loadMap(Gdx.files.absolute(CaveGame.GAME_FOLDER + "/saves/backmap.sav")) +// ); +// gameProc.physics = new GamePhysics(); +// gameProc.input = new GameInput(); +// } catch (Exception e) { +// Gdx.app.error("GameSaver", e.getMessage(), e); +// Gdx.app.exit(); +// } +// return gameProc; + return null; } public static void save(GameProc gp) { - FileHandle file = Gdx.files.absolute(CaveGame.GAME_FOLDER + "/saves/"); - file.mkdirs(); - file = Gdx.files.absolute(CaveGame.GAME_FOLDER + "/saves/game.sav"); - try { - ObjectOutputStream out = new ObjectOutputStream(file.write(false)); - out.writeInt(VERSION); - out.writeObject(gp); - out.close(); - saveMap(Gdx.files.absolute(CaveGame.GAME_FOLDER + "/saves/foremap.sav"), gp.world.getFullForeMap()); - saveMap(Gdx.files.absolute(CaveGame.GAME_FOLDER + "/saves/backmap.sav"), gp.world.getFullBackMap()); - } catch (Exception e) { - e.printStackTrace(); - } +// FileHandle file = Gdx.files.absolute(CaveGame.GAME_FOLDER + "/saves/"); +// file.mkdirs(); +// file = Gdx.files.absolute(CaveGame.GAME_FOLDER + "/saves/game.sav"); +// try { +// ObjectOutputStream out = new ObjectOutputStream(file.write(false)); +// out.writeInt(VERSION); +// out.writeObject(gp); +// out.close(); +// saveMap(Gdx.files.absolute(CaveGame.GAME_FOLDER + "/saves/foremap.sav"), gp.world.getFullForeMap()); +// saveMap(Gdx.files.absolute(CaveGame.GAME_FOLDER + "/saves/backmap.sav"), gp.world.getFullBackMap()); +// } catch (Exception e) { +// e.printStackTrace(); +// } } public static boolean exists() { - return (Gdx.files.absolute(CaveGame.GAME_FOLDER + "/saves/game.sav").exists() && - Gdx.files.absolute(CaveGame.GAME_FOLDER + "/saves/foremap.sav").exists() && - Gdx.files.absolute(CaveGame.GAME_FOLDER + "/saves/backmap.sav").exists()); +// return (Gdx.files.absolute(CaveGame.GAME_FOLDER + "/saves/game.sav").exists() && +// Gdx.files.absolute(CaveGame.GAME_FOLDER + "/saves/foremap.sav").exists() && +// Gdx.files.absolute(CaveGame.GAME_FOLDER + "/saves/backmap.sav").exists()); + return false; } }