public void initialise(string saveData) { string[] data = saveData.Split(new string[] { "|" }, System.StringSplitOptions.None); int width = int.Parse(data [0]); int height = int.Parse(data [1]); int genId = int.Parse(data [2]); tileData = new GamePiece?[width, height]; currentTile = GamePiece.fromHash(int.Parse(data [3])); storedTile = GamePiece.fromHash(int.Parse(data [4])); queueEvent(new CurrentTileChangedEvent(currentTile)); queueEvent(new StoredTileChangedEvent(storedTile)); int i = 5; for (int y = 0; y < height; y++) { for (int x = 0; x < width; x++) { string td = data [i]; i++; if (td != "X") { GamePiece newTile = GamePiece.fromHash(int.Parse(td)); tileData [x, y] = newTile; queueEvent(new TileChangedEvent(newTile, x, y)); } } } recalculateUncoveredArrows(); generator = PieceGenerator.fromId(genId); }
// Use this for initialization void Start() { engine = new Game(); width = 44; height = 44; if (loadString == null) { engine.initialise(width, height, PieceGenerator.fromId(generatorId)); Stats.addAttempt(generatorId); } else { engine.initialise(loadString); generatorId = engine.getGeneratorId(); } tiles = new Tile[width, height]; previousCP = new bool[width, height]; for (int x = 0; x < width; x++) { for (int y = 0; y < height; y++) { tiles [x, y] = createTile(x, y); } } GameObject q; for (int x = 0; x < width; x++) { q = Instantiate(edgeTextures [0], transform); q.transform.localPosition = new Vector3(x, height, 0); q = Instantiate(edgeTextures [3], transform); q.transform.localPosition = new Vector3(x, -1, 0); } for (int y = 0; y < height; y++) { q = Instantiate(edgeTextures [1], transform); q.transform.localPosition = new Vector3(-1, y, 0); q = Instantiate(edgeTextures [2], transform); q.transform.localPosition = new Vector3(width, y, 0); } q = Instantiate(edgeTextures [4], transform); q.transform.localPosition = new Vector3(-1, height, 0); q = Instantiate(edgeTextures [5], transform); q.transform.localPosition = new Vector3(width, height, 0); q = Instantiate(edgeTextures [6], transform); q.transform.localPosition = new Vector3(-1, -1, 0); q = Instantiate(edgeTextures [7], transform); q.transform.localPosition = new Vector3(width, -1, 0); hasPlaced = new bool[width, height]; ProcessAllEvents(false); playSound(newGameSound); }