This btw points out another circular dependancy between the texture and the JQuad - a texture owns a bunch of JQuads, yet the renderer uses JQuads and always assumes that the texture is valid. We're going to need to add more defensiveness to JGE to protect against this. Other changes in this check-in: WResourceManager doesn't derive from JResourceManager anymore. It actually didn't require anything from the base, so I killed the dependency. Also cleaned up the notion of a WTrackedQuad in the WCachedResource - it didn't need a separate class, just a better container. I've build this & tested against PSP, win, linux, QT (linux). I haven't tried against iOS and QT Win, or Maemo. If these other platforms are broken, I apologize in advance! - I'm hoping it should be fairly simple to put them back into play.
81 lines
2.1 KiB
C++
81 lines
2.1 KiB
C++
#ifndef _GAME_STATE_MENU_H_
|
|
#define _GAME_STATE_MENU_H_
|
|
|
|
#include <JGui.h>
|
|
#include <dirent.h>
|
|
#include "GameState.h"
|
|
#include "SimpleMenu.h"
|
|
#include "TextScroller.h"
|
|
|
|
class GameStateMenu: public GameState, public JGuiListener
|
|
{
|
|
private:
|
|
TextScroller * scroller;
|
|
int scrollerSet;
|
|
JGuiController* mGuiController;
|
|
SimpleMenu* subMenuController;
|
|
SimpleMenu* gameTypeMenu;
|
|
int hasChosenGameType;
|
|
JQuadPtr mIcons[10];
|
|
JTexture * bgTexture;
|
|
JQuadPtr mBg;
|
|
JTexture * splashTex;
|
|
float mCreditsYPos;
|
|
int currentState;
|
|
//JMusic * bgMusic;
|
|
int mVolume;
|
|
char nbcardsStr[400];
|
|
vector<string> langs;
|
|
vector<string> primitives;
|
|
string wallpaper;
|
|
int primitivesLoadCounter;
|
|
|
|
DIR *mDip;
|
|
struct dirent *mDit;
|
|
char mCurrentSetName[32];
|
|
char mCurrentSetFileName[512];
|
|
|
|
int mReadConf;
|
|
float timeIndex;
|
|
float angleMultiplier;
|
|
float angleW;
|
|
float yW;
|
|
void fillScroller();
|
|
|
|
void setLang(int id);
|
|
string getLang(string s);
|
|
void loadLangMenu();
|
|
bool langChoices;
|
|
void runTest(); //!!
|
|
void listPrimitives();
|
|
void genNbCardsStr(); //computes the contents of nbCardsStr
|
|
void ensureMGuiController(); //creates the MGuiController if it doesn't exist
|
|
string loadRandomWallpaper(); //loads a list of string of textures that can be randolmy shown on the loading screen
|
|
public:
|
|
GameStateMenu(GameApp* parent);
|
|
virtual ~GameStateMenu();
|
|
virtual void Create();
|
|
virtual void Destroy();
|
|
virtual void Start();
|
|
virtual void End();
|
|
virtual void Update(float dt);
|
|
virtual void Render();
|
|
virtual void ButtonPressed(int controllerId, int controlId);
|
|
|
|
int nextDirectory(const char * root, const char * file); // Retrieves the next directory to have matching file
|
|
void resetDirectory();
|
|
void createUsersFirstDeck(int setId);
|
|
virtual ostream& toString(ostream& out) const;
|
|
|
|
enum
|
|
{
|
|
MENU_CARD_PURCHASE = 2,
|
|
MENU_DECK_SELECTION = 10,
|
|
MENU_DECK_BUILDER = 11,
|
|
MENU_FIRST_DUEL_SUBMENU = 102,
|
|
MENU_LANGUAGE_SELECTION = 103,
|
|
};
|
|
};
|
|
|
|
#endif
|