DEADSOFTWARE

Implement dependency injection for game classes #13
[cavedroid.git] / core / src / ru / deadsoftware / cavedroid / game / GameSaver.java
index 49822863f876b074fe28f25e10aab9a376951aab..26281f6c81dfa5c16207c91ce810a6e5f3016192 100644 (file)
@@ -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;
     }
 
 }