diff --git a/core/src/ru/deadsoftware/cavedroid/game/GameSaver.java b/core/src/ru/deadsoftware/cavedroid/game/GameSaver.java
index 0d796b8b3a22583ed5e7e540bcb3b0ebe5bfe6a0..26281f6c81dfa5c16207c91ce810a6e5f3016192 100644 (file)
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;
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;
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.resetRenderer();
- } 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;
}
}