Ejemplo n.º 1
0
    //***************************************************************************
    // Function Name:	LoadGameFromFile
    // Purpose:				Loads a game from the saved game file.
    // Paramaters:		boardObject - The object which has the board script attached
    // Returns:				None
    //***************************************************************************
    public void LoadGameFromFile(GameObject boardObject)
    {
        char [] delimiters = { ' ', ',' };
        string  currentLine;

        string [] splitGameType;
        string [] splitJumpData;
        Jump      loadedJump;

        Jump.SaveData data;
        Board         board = null;

        using (StreamReader reader = File.OpenText(Application.persistentDataPath + SAVE_DIRECTORY + SAVE_LOCATION))
        {
            currentLine   = reader.ReadLine();
            splitGameType = currentLine.Split(delimiters, System.StringSplitOptions.RemoveEmptyEntries);
            if (string.Equals(splitGameType [0], TRIANGLE))
            {
                Board.mBoardSize = int.Parse(splitGameType [1]);
                if (Board.mBoardSize == 4)
                {
                    TriangleBoard.mVacantPositionX = 0;
                    TriangleBoard.mVacantPositionY = 1;
                }
                else
                {
                    TriangleBoard.mVacantPositionX = TriangleBoard.mVacantPositionY = 0;
                }
                board = boardObject.GetComponent <TriangleBoard> ();
                board.SetUpBoard();
                boardObject.GetComponent <HexagonBoard> ().enabled = false;

                mLoadedGame = new Jump [int.Parse(splitGameType [2])];
            }
            else if (string.Equals(splitGameType [0], CUSTOM))
            {
                // Load the custom board!
            }

            currentLine  = reader.ReadLine();
            mCurrentJump = 0;
            while (currentLine != null && !currentLine.Equals(""))
            {
                splitJumpData  = currentLine.Split(delimiters, System.StringSplitOptions.RemoveEmptyEntries);
                data           = new Jump.SaveData();
                data.mStartX   = int.Parse(splitJumpData [0]);
                data.mStartY   = int.Parse(splitJumpData [1]);
                data.mJumpedX  = int.Parse(splitJumpData [2]);
                data.mJumpedY  = int.Parse(splitJumpData [3]);
                data.mEndX     = int.Parse(splitJumpData [4]);
                data.mEndY     = int.Parse(splitJumpData [5]);
                data.mTimeLeft = int.Parse(splitJumpData [6]);

                loadedJump = Jump.CreateFromData(board, data);

                mLoadedGame [mCurrentJump++] = loadedJump;

                currentLine = reader.ReadLine();
            }
            mCurrentJump = 0;
        }
    }