X-Git-Url: https://deadsoftware.ru/gitweb?a=blobdiff_plain;f=core%2Fsrc%2Fru%2Fdeadsoftware%2Fcavecraft%2Fgame%2FGameSaver.java;h=2b5b906d877a3dadcd77baca27e1e346d8eeeff1;hb=e14d8af238926a5cbfc067cfc9a9b032e51f1cac;hp=1bf6684682e6e6af212e4d158cb5699e36118a7b;hpb=08def9aa287e5309c12c6a4110f6b8486afd3a6c;p=cavedroid.git diff --git a/core/src/ru/deadsoftware/cavecraft/game/GameSaver.java b/core/src/ru/deadsoftware/cavecraft/game/GameSaver.java index 1bf6684..2b5b906 100644 --- a/core/src/ru/deadsoftware/cavecraft/game/GameSaver.java +++ b/core/src/ru/deadsoftware/cavecraft/game/GameSaver.java @@ -2,28 +2,16 @@ package ru.deadsoftware.cavecraft.game; import com.badlogic.gdx.Gdx; import com.badlogic.gdx.files.FileHandle; +import com.badlogic.gdx.utils.ArrayMap; import ru.deadsoftware.cavecraft.CaveGame; -import java.io.BufferedOutputStream; -import java.io.IOException; -import java.io.ObjectInputStream; -import java.io.ObjectOutputStream; +import java.io.*; import java.nio.ByteBuffer; public class GameSaver { private static final int VERSION = 0; - private static int[][] fMap, bMap; - private static int readIndex; - - private static int bytesToInt(byte[] bytes) { - ByteBuffer wrapped = ByteBuffer.wrap(bytes); - int res = wrapped.getInt(readIndex); - readIndex+=4; - return res; - } - private static byte[] intToBytes(int i) { return ByteBuffer.allocate(4).putInt(i).array(); } @@ -56,44 +44,27 @@ public class GameSaver { } private static int[][] loadMap(FileHandle file) throws Exception { - int[][] map = null; + int[][] map; int ver, width, height; int rl,bl; - byte[] data = file.readBytes(); - readIndex = 0; - ver = bytesToInt(data); + DataInputStream in = new DataInputStream(file.read()); + ver = in.readInt(); if (VERSION == ver) { - width = bytesToInt(data); - height = bytesToInt(data); + width = in.readInt(); + height = in.readInt(); map = new int[width][height]; for (int y=0; y(); + gameProc.physics = new GamePhysics(gameProc); + gameProc.resetRenderer(); } catch (Exception e) { Gdx.app.error("GameSaver",e.getMessage(),e); + Gdx.app.exit(); } - gameProc.world = new GameWorld(); - gameProc.world.load(); - gameProc.physics = new GamePhysics(gameProc); - gameProc.resetRenderer(); - fMap = null; - bMap = null; return gameProc; }