133 lines
3.3 KiB
C++
133 lines
3.3 KiB
C++
#ifndef _GAME_STATE_DECK_VIEWER_H_
|
|
#define _GAME_STATE_DECK_VIEWER_H_
|
|
|
|
#include <math.h>
|
|
#include <iostream>
|
|
|
|
#include <JGE.h>
|
|
|
|
#include "GameState.h"
|
|
#include "DeckEditorMenu.h"
|
|
#include "SimpleMenu.h"
|
|
#include "WResourceManager.h"
|
|
#include "CardGui.h"
|
|
#include "PriceList.h"
|
|
#include "PlayerData.h"
|
|
#include "DeckDataWrapper.h"
|
|
#include "DeckStats.h"
|
|
#include "WDataSrc.h"
|
|
#include "WGui.h"
|
|
#include "InteractiveButton.h"
|
|
|
|
class DeckView;
|
|
|
|
// TODO: need a better name for MENU_FIRST_MENU, this is reused for the 1st submenu of
|
|
// available options in the duel menu
|
|
enum
|
|
{
|
|
MENU_CARD_PURCHASE = 2,
|
|
MENU_DECK_SELECTION = 10,
|
|
MENU_DECK_BUILDER = 11,
|
|
MENU_FIRST_DUEL_SUBMENU = 102,
|
|
MENU_LANGUAGE_SELECTION = 103
|
|
};
|
|
|
|
// enums for menu options
|
|
// TODO: make these enums a little more descriptive. (ie should reflect what menu they are attached to )
|
|
enum DECK_VIEWER_MENU_ITEMS
|
|
{
|
|
MENU_ITEM_NEW_DECK = -30,
|
|
MENU_ITEM_CHEAT_MODE = -12,
|
|
MENU_ITEM_CANCEL = kCancelMenuID,
|
|
MENU_ITEM_SAVE_RETURN_MAIN_MENU = 0,
|
|
MENU_ITEM_SAVE_RENAME = 1,
|
|
MENU_ITEM_SWITCH_DECKS_NO_SAVE = 2,
|
|
MENU_ITEM_MAIN_MENU = 3,
|
|
MENU_ITEM_EDITOR_CANCEL = kCancelMenuID,
|
|
MENU_ITEM_SAVE_AS_AI_DECK = 5,
|
|
MENU_ITEM_YES = 20,
|
|
MENU_ITEM_NO = 21,
|
|
MENU_ITEM_FILTER_BY = 22,
|
|
MENUITEM_MORE_INFO = kInfoMenuID
|
|
};
|
|
|
|
class GameStateDeckViewer: public GameState, public JGuiListener
|
|
{
|
|
private:
|
|
enum DeckViewerStages
|
|
{
|
|
STAGE_WAITING = 0,
|
|
STAGE_ONSCREEN_MENU,
|
|
STAGE_WELCOME,
|
|
STAGE_MENU,
|
|
STAGE_FILTERS
|
|
};
|
|
|
|
vector<JQuadPtr> mIcons;
|
|
JQuadPtr pspIcons[8];
|
|
JTexture * pspIconsTexture;
|
|
float last_user_activity;
|
|
float onScreenTransition;
|
|
DeckViewerStages mStage;
|
|
JMusic * bgMusic;
|
|
|
|
InteractiveButton *toggleDeckButton, *sellCardButton, *statsPrevButton, *filterButton, *toggleViewButton;
|
|
|
|
WGuiFilters * filterMenu;
|
|
WSrcDeckViewer * source;
|
|
|
|
DeckEditorMenu * welcome_menu;
|
|
SimpleMenu * subMenu;
|
|
DeckEditorMenu * deckMenu;
|
|
PriceList* pricelist;
|
|
PlayerData * playerdata;
|
|
DeckDataWrapper * myDeck;
|
|
DeckDataWrapper * myCollection;
|
|
StatsWrapper * mStatsWrapper;
|
|
|
|
int hudAlpha;
|
|
string newDeckname;
|
|
bool isAIDeckSave;
|
|
bool mSwitching;
|
|
|
|
enum AvailableView{
|
|
CAROUSEL_VIEW,
|
|
GRID_VIEW
|
|
};
|
|
DeckView* mView;
|
|
AvailableView mCurrentView;
|
|
|
|
void saveDeck(); //Saves the deck and additional necessary information
|
|
void saveAsAIDeck(string deckName); // saves deck as an AI Deck
|
|
void sellCard();
|
|
void setButtonState(bool state);
|
|
bool userPressedButton();
|
|
void RenderButtons();
|
|
void setupView(AvailableView view, DeckDataWrapper *deck);
|
|
void toggleView();
|
|
public:
|
|
GameStateDeckViewer(GameApp* parent);
|
|
virtual ~GameStateDeckViewer();
|
|
void updateDecks();
|
|
void updateFilters();
|
|
void rebuildFilters();
|
|
void toggleCollection();
|
|
void Start();
|
|
virtual void End();
|
|
void addRemove(MTGCard * card);
|
|
virtual void Update(float dt);
|
|
void renderOnScreenBasicInfo();
|
|
void renderSlideBar();
|
|
void renderDeckBackground();
|
|
void renderOnScreenMenu();
|
|
virtual void Render();
|
|
int loadDeck(int deckid);
|
|
|
|
void OnScroll(int inXVelocity, int inYVelocity);
|
|
|
|
void buildEditorMenu();
|
|
virtual void ButtonPressed(int controllerId, int controlId);
|
|
};
|
|
|
|
#endif
|