Android Open Source - Sushi-Shooter Level Manager






From Project

Back to project page Sushi-Shooter.

License

The source code is released under:

GNU General Public License

If you think the Android project Sushi-Shooter listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

/*
 *                 [[ Frozen-Bubble ]]//  w  w w. j a  v  a2  s. c  o m
 *
 * Copyright (c) 2000-2003 Guillaume Cottenceau.
 * Java sourcecode - Copyright (c) 2003 Glenn Sanson.
 *
 * This code is distributed under the GNU General Public License
 *
 * This program is free software; you can redistribute it and/or
 * modify it under the terms of the GNU General Public License
 * version 2, as published by the Free Software Foundation.
 *
 * This program is distributed in the hope that it will be useful, but
 * WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License along
 * with this program; if not, write to the Free Software Foundation, Inc.,
 * 675 Mass Ave, Cambridge, MA 02139, USA.
 *
 *
 * Artwork:
 *    Alexis Younes <73lab at free.fr>
 *      (everything but the bubbles)
 *    Amaury Amblard-Ladurantie <amaury at linuxfr.org>
 *      (the bubbles)
 *
 * Soundtrack:
 *    Matthias Le Bidan <matthias.le_bidan at caramail.com>
 *      (the three musics and all the sound effects)
 *
 * Design & Programming:
 *    Guillaume Cottenceau <guillaume.cottenceau at free.fr>
 *      (design and manage the project, whole Perl sourcecode)
 *
 * Java version:
 *    Glenn Sanson <glenn.sanson at free.fr>
 *      (whole Java sourcecode, including JIGA classes
 *             http://glenn.sanson.free.fr/jiga/)
 *
 * Android port:
 *    Pawel Aleksander Fedorynski <pfedor@fuw.edu.pl>
 *    Copyright (c) Google Inc.
 *
 *          [[ http://glenn.sanson.free.fr/fb/ ]]
 *          [[ http://www.frozen-bubble.org/   ]]
 */

package net.gamecloud.sushishooter;

import android.os.Bundle;
import java.util.Vector;

public class LevelManager
{
        private int currentLevel;
        private Vector levelList;

        public void saveState(Bundle map)
        {
                map.putInt("LevelManager-currentLevel", currentLevel);
        }

        public void restoreState(Bundle map)
        {
                currentLevel = map.getInt("LevelManager-currentLevel");
        }

        public LevelManager(byte[] levels, int startingLevel)
        {
                String allLevels = new String(levels);

                currentLevel = startingLevel;
                levelList = new Vector();

                int nextLevel = allLevels.indexOf("\n\n");
                if (nextLevel == -1 && allLevels.trim().length() != 0)
                {
                        nextLevel = allLevels.length();
                }

                while (nextLevel != -1)
                {
                        String currentLevel = allLevels.substring(0, nextLevel).trim();

                        levelList.addElement(getLevel(currentLevel));

                        allLevels = allLevels.substring(nextLevel).trim();

                        if (allLevels.length() == 0)
                        {
                                nextLevel = -1;
                        }
                        else
                        {
                                nextLevel = allLevels.indexOf("\n\n");

                                if (nextLevel == -1)
                                {
                                        nextLevel = allLevels.length();
                                }
                        }
                }

                if (currentLevel >= levelList.size())
                {
                        currentLevel = 0;
                }
        }

        private byte[][] getLevel(String data)
        {
                byte[][] temp = new byte[8][12];

                for (int j=0 ; j<12 ; j++)
                {
                        for (int i=0 ; i<8 ; i++)
                        {
                                temp[i][j] = -1;
                        }
                }

                int tempX = 0;
                int tempY = 0;

                for (int i=0 ; i<data.length() ; i++)
                {
                        if (data.charAt(i) >= 48 && data.charAt(i) <= 55)
                        {
                                temp[tempX][tempY] = (byte)(data.charAt(i) - 48);
                                tempX++;
                        }
                        else if (data.charAt(i) == 45)
                        {
                                temp[tempX][tempY] = -1;
                                tempX++;
                        }

                        if (tempX == 8)
                        {
                                tempY++;

                                if (tempY == 12)
                                {
                                        return temp;
                                }

                                tempX = tempY % 2;
                        }
                }

                return temp;
        }

        public byte[][] getCurrentLevel()
        {
                if (currentLevel < levelList.size())
                {
                        return (byte[][])levelList.elementAt(currentLevel);
                }

                return null;
        }

        public void goToNextLevel()
        {
                currentLevel++;
                if (currentLevel >= levelList.size()) {
                  currentLevel = 0;
                }
        }

        public void goToFirstLevel()
        {
                currentLevel = 0;
        }

        public int getLevelIndex()
        {
                return currentLevel;
        }
}




Java Source Code List

com.sessionm.TransactionReceiver.java
net.gamecloud.sushishooter.BmpWrap.java
net.gamecloud.sushishooter.BubbleFont.java
net.gamecloud.sushishooter.BubbleManager.java
net.gamecloud.sushishooter.BubbleSprite.java
net.gamecloud.sushishooter.Compressor.java
net.gamecloud.sushishooter.FrozenBubble.java
net.gamecloud.sushishooter.FrozenGame.java
net.gamecloud.sushishooter.GameScreen.java
net.gamecloud.sushishooter.GameView.java
net.gamecloud.sushishooter.ImageSprite.java
net.gamecloud.sushishooter.LaunchBubbleSprite.java
net.gamecloud.sushishooter.LevelManager.java
net.gamecloud.sushishooter.PenguinSprite.java
net.gamecloud.sushishooter.SoundManager.java
net.gamecloud.sushishooter.Sprite.java