-- zipFS has several limitations... --- in a general way, seekg doesn't work... so getting a file's size needs to be done through JFileSystem. --- getLine on files open with zipFS doesn't work so great. Not sure if it is a normal issue because files are open in binary or not... JFileSystem therefore offers a "readIntoString" function that needs to be used instead of the usual "getline" technique. However getLine can then be used on a stream connected to the string. -- tested on Windows and PSP, I also made sure android still works, but haven't tested zip support on Android. -- I tried to maintain backwards compatibility, but this might break on some platforms, if I broke some platforms and you can't find a way to fix them, please contact me and we'll figure something out -- This removes wagic::ifstream. I didn't reimplement the securities that were involved in this, apologies for that. Might be useful to reimplement such securities in JFileSystem -- I haven't tested options/profiles in a deep way, it is possible I broke that.
80 lines
2.0 KiB
C++
80 lines
2.0 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;
|
|
bool hasChosenGameType;
|
|
JQuadPtr mIcons[10];
|
|
JTexture * bgTexture;
|
|
JQuadPtr mBg;
|
|
JTexture * splashTex;
|
|
float mCreditsYPos;
|
|
int currentState;
|
|
int mVolume;
|
|
char nbcardsStr[400];
|
|
vector<string> langs;
|
|
vector<string> primitives;
|
|
|
|
size_t mCurrentSetFolderIndex;
|
|
string mCurrentSetName;
|
|
string mCurrentSetFileName;
|
|
vector<string> setFolders;
|
|
|
|
string wallpaper;
|
|
int primitivesLoadCounter;
|
|
|
|
int mReadConf;
|
|
float timeIndex;
|
|
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
|
|
|
|
void RenderTopMenu();
|
|
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 nextSetFolder(const string & root, const string & file); // Retrieves the next directory to have matching file
|
|
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
|