93 lines
2.7 KiB
C++
93 lines
2.7 KiB
C++
#ifndef _GAME_STATE_H_
|
|
#define _GAME_STATE_H_
|
|
|
|
#define FADING_SPEED 350.0f
|
|
|
|
class JGE;
|
|
|
|
#include <JSoundSystem.h>
|
|
#include <string>
|
|
#include <vector>
|
|
#include <iostream>
|
|
#include "DeckMetaData.h"
|
|
#include "DeckMenu.h"
|
|
|
|
using namespace std;
|
|
|
|
enum ENUM_GAME_STATE
|
|
{
|
|
GAME_STATE_NONE = -1,
|
|
GAME_STATE_MENU = 1,
|
|
GAME_STATE_DUEL = 2,
|
|
GAME_STATE_DECK_VIEWER = 3,
|
|
GAME_STATE_SHOP = 4,
|
|
GAME_STATE_OPTIONS = 5,
|
|
GAME_STATE_AWARDS = 6,
|
|
GAME_STATE_STORY = 7,
|
|
GAME_STATE_TRANSITION = 8,
|
|
GAME_STATE_MAX = 9,
|
|
};
|
|
|
|
enum ENUM_GS_TRANSITION
|
|
{
|
|
TRANSITION_FADE = 0,
|
|
TRANSITION_FADE_IN = 1,
|
|
MAX_TRANSITION
|
|
};
|
|
|
|
class GameApp;
|
|
class SimpleMenu;
|
|
class Player;
|
|
|
|
class GameState
|
|
{
|
|
protected:
|
|
GameApp* mParent;
|
|
JGE* mEngine;
|
|
string mStringID;
|
|
|
|
public:
|
|
GameState(GameApp* parent, string id);
|
|
virtual ~GameState(){}
|
|
|
|
virtual void Create(){}
|
|
virtual void Destroy(){}
|
|
|
|
virtual void Start(){}
|
|
virtual void End(){}
|
|
|
|
virtual void OnScroll(int, int)
|
|
{
|
|
}
|
|
|
|
virtual void Update(float dt) = 0;
|
|
virtual void Render() = 0;
|
|
|
|
string getStringID() {return mStringID;};
|
|
|
|
// deck manipulation methods
|
|
// 2010/09/15:
|
|
// this was originally one method to do everything. That has been split up into two distinct
|
|
// methods since the original was building a menu and returning a value. The first
|
|
// creates the vector containing the deck information. The second will render that information
|
|
// it makes it easier to manipulate the deck information menus.
|
|
|
|
// generate the Deck Meta Data and build the menu items of the menu given
|
|
// Will display up to maxDecks if maxDecks is non 0, all decks in path otherwise and it will show or not commander decks according to the current game type or according to "showall" option (e.g. DeckEditorMenu)
|
|
static vector<DeckMetaData *> fillDeckMenu(DeckMenu * _menu, const string& path, const string& smallDeckPrefix = "", Player * statsPlayer = NULL, int maxDecks = 0, GameType type = GAME_TYPE_CLASSIC, bool showall = false);
|
|
|
|
// build a vector of decks with the information passsed in.
|
|
static vector<DeckMetaData *> BuildDeckList(const string& path, const string& smallDeckPrefix = "", Player * statsPlayer = NULL, int maxDecks = 0, GameType type = GAME_TYPE_CLASSIC, bool showall = false);
|
|
|
|
// build menu items based on the vector<DeckMetaData *>
|
|
static void renderDeckMenu(SimpleMenu * _menu, const vector<DeckMetaData *>& deckMetaDataList);
|
|
|
|
// build menu items based on the vector<DeckMetaData *>
|
|
static void renderDeckMenu(DeckMenu * _menu, const vector<DeckMetaData *>& deckMetaDataList);
|
|
|
|
};
|
|
bool sortByName(DeckMetaData * d1, DeckMetaData * d2);
|
|
|
|
#endif
|
|
|