Erwan
- quick patch for i379
This commit is contained in:
@@ -38,7 +38,7 @@ class GameStateDuel: public GameState, public JGuiListener
|
|||||||
|
|
||||||
bool MusicExist(string FileName);
|
bool MusicExist(string FileName);
|
||||||
void loadPlayer(int playerId, int decknb = 0, int isAI = 0);
|
void loadPlayer(int playerId, int decknb = 0, int isAI = 0);
|
||||||
|
void ensureOpponentMenu(); //loads the opponentMenu if it doesn't exist
|
||||||
|
|
||||||
public:
|
public:
|
||||||
GameStateDuel(GameApp* parent);
|
GameStateDuel(GameApp* parent);
|
||||||
|
|||||||
@@ -49,6 +49,7 @@ class GameStateMenu: public GameState, public JGuiListener
|
|||||||
void runTest(); //!!
|
void runTest(); //!!
|
||||||
void listPrimitives();
|
void listPrimitives();
|
||||||
void genNbCardsStr(); //computes the contents of nbCardsStr
|
void genNbCardsStr(); //computes the contents of nbCardsStr
|
||||||
|
void ensureMGuiController(); //creates the MGuiController if it doesn't exist
|
||||||
public:
|
public:
|
||||||
GameStateMenu(GameApp* parent);
|
GameStateMenu(GameApp* parent);
|
||||||
virtual ~GameStateMenu();
|
virtual ~GameStateMenu();
|
||||||
|
|||||||
@@ -213,6 +213,16 @@ bool GameStateDuel::MusicExist(string FileName){
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void GameStateDuel::ensureOpponentMenu(){
|
||||||
|
if (!opponentMenu){
|
||||||
|
opponentMenu = NEW SimpleMenu(DUEL_MENU_CHOOSE_OPPONENT, this, Constants::MENU_FONT, 35, 25, "Choose Opponent");
|
||||||
|
opponentMenu->Add(0,"Random");
|
||||||
|
if (options[Options::EVILTWIN_MODE_UNLOCKED].number)
|
||||||
|
opponentMenu->Add(-1,"Evil Twin", "Can you play against yourself?");
|
||||||
|
fillDeckMenu(opponentMenu,RESPATH"/ai/baka", "ai_baka", mPlayers[0]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void GameStateDuel::Update(float dt)
|
void GameStateDuel::Update(float dt)
|
||||||
{
|
{
|
||||||
switch (mGamePhase)
|
switch (mGamePhase)
|
||||||
@@ -270,13 +280,7 @@ void GameStateDuel::Update(float dt)
|
|||||||
deckmenu->Update(dt);
|
deckmenu->Update(dt);
|
||||||
else{
|
else{
|
||||||
if (mParent->players[0] == PLAYER_TYPE_HUMAN){
|
if (mParent->players[0] == PLAYER_TYPE_HUMAN){
|
||||||
if (!opponentMenu){
|
ensureOpponentMenu();
|
||||||
opponentMenu = NEW SimpleMenu(DUEL_MENU_CHOOSE_OPPONENT, this, Constants::MENU_FONT, 35, 25, "Choose Opponent");
|
|
||||||
opponentMenu->Add(0,"Random");
|
|
||||||
if (options[Options::EVILTWIN_MODE_UNLOCKED].number)
|
|
||||||
opponentMenu->Add(-1,"Evil Twin", "Can you play against yourself?");
|
|
||||||
fillDeckMenu(opponentMenu,RESPATH"/ai/baka", "ai_baka", mPlayers[0]);
|
|
||||||
}
|
|
||||||
opponentMenu->Update(dt);
|
opponentMenu->Update(dt);
|
||||||
}else{
|
}else{
|
||||||
loadPlayer(1);
|
loadPlayer(1);
|
||||||
@@ -286,14 +290,14 @@ void GameStateDuel::Update(float dt)
|
|||||||
break;
|
break;
|
||||||
case DUEL_STATE_CHOOSE_DECK2_TO_PLAY:
|
case DUEL_STATE_CHOOSE_DECK2_TO_PLAY:
|
||||||
if (mParent->players[1] == PLAYER_TYPE_HUMAN){
|
if (mParent->players[1] == PLAYER_TYPE_HUMAN){
|
||||||
if (deckmenu->closed) mGamePhase = DUEL_STATE_PLAY;
|
if (deckmenu->closed) mGamePhase = DUEL_STATE_PLAY;
|
||||||
else deckmenu->Update(dt);
|
else deckmenu->Update(dt);
|
||||||
}
|
}
|
||||||
else
|
else{
|
||||||
{
|
ensureOpponentMenu();
|
||||||
if (opponentMenu->closed) mGamePhase = DUEL_STATE_PLAY;
|
if (opponentMenu->closed) mGamePhase = DUEL_STATE_PLAY;
|
||||||
else opponentMenu->Update(dt);
|
else opponentMenu->Update(dt);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case DUEL_STATE_PLAY:
|
case DUEL_STATE_PLAY:
|
||||||
if (!game){
|
if (!game){
|
||||||
|
|||||||
@@ -10,7 +10,7 @@
|
|||||||
#include "../include/PlayerData.h"
|
#include "../include/PlayerData.h"
|
||||||
#include "../include/utils.h"
|
#include "../include/utils.h"
|
||||||
|
|
||||||
static const char* GAME_VERSION = "WTH?! 0.11.0 - by wololo";
|
static const char* GAME_VERSION = "WTH?! 0.11.1 - by wololo";
|
||||||
|
|
||||||
#define DEFAULT_ANGLE_MULTIPLIER 0.4
|
#define DEFAULT_ANGLE_MULTIPLIER 0.4
|
||||||
#define MAX_ANGLE_MULTIPLIER (3*M_PI)
|
#define MAX_ANGLE_MULTIPLIER (3*M_PI)
|
||||||
@@ -100,7 +100,7 @@ void GameStateMenu::Create()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
currentState = MENU_STATE_MAJOR_LOADING_CARDS | MENU_STATE_MINOR_NONE;
|
currentState = MENU_STATE_MAJOR_LOADING_CARDS;
|
||||||
bool langChosen = false;
|
bool langChosen = false;
|
||||||
string lang = options[Options::LANG].str;
|
string lang = options[Options::LANG].str;
|
||||||
if (lang.size()){
|
if (lang.size()){
|
||||||
@@ -340,6 +340,20 @@ void GameStateMenu::listPrimitives(){
|
|||||||
primitivesLoadCounter = 0;
|
primitivesLoadCounter = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void GameStateMenu::ensureMGuiController(){
|
||||||
|
if (!mGuiController) {
|
||||||
|
mGuiController = NEW JGuiController(100, this);
|
||||||
|
if (mGuiController) {
|
||||||
|
JLBFont * mFont = resources.GetJLBFont(Constants::MENU_FONT);
|
||||||
|
mFont->SetColor(ARGB(255,255,255,255));
|
||||||
|
mGuiController->Add(NEW MenuItem(MENUITEM_PLAY, mFont, "Play", 80, 50 + SCREEN_HEIGHT/2, mIcons[8], mIcons[9],"particle1.psi",resources.GetQuad("particles"), true));
|
||||||
|
mGuiController->Add(NEW MenuItem(MENUITEM_DECKEDITOR, mFont, "Deck Editor", 160, 50 + SCREEN_HEIGHT/2, mIcons[2], mIcons[3],"particle2.psi",resources.GetQuad("particles")));
|
||||||
|
mGuiController->Add(NEW MenuItem(MENUITEM_SHOP, mFont, "Shop", 240, 50 + SCREEN_HEIGHT/2, mIcons[0], mIcons[1],"particle3.psi",resources.GetQuad("particles")));
|
||||||
|
mGuiController->Add(NEW MenuItem(MENUITEM_OPTIONS, mFont, "Options", 320, 50 + SCREEN_HEIGHT/2, mIcons[6], mIcons[7],"particle4.psi",resources.GetQuad("particles")));
|
||||||
|
mGuiController->Add(NEW MenuItem(MENUITEM_EXIT, mFont, "Exit", 400, 50 + SCREEN_HEIGHT/2, mIcons[4], mIcons[5],"particle5.psi",resources.GetQuad("particles")));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void GameStateMenu::Update(float dt)
|
void GameStateMenu::Update(float dt)
|
||||||
{
|
{
|
||||||
@@ -414,25 +428,16 @@ void GameStateMenu::Update(float dt)
|
|||||||
break;
|
break;
|
||||||
case MENU_STATE_MAJOR_MAINMENU :
|
case MENU_STATE_MAJOR_MAINMENU :
|
||||||
if (!scrollerSet) fillScroller();
|
if (!scrollerSet) fillScroller();
|
||||||
if (!mGuiController) {
|
ensureMGuiController();
|
||||||
mGuiController = NEW JGuiController(100, this);
|
|
||||||
if (mGuiController) {
|
|
||||||
JLBFont * mFont = resources.GetJLBFont(Constants::MENU_FONT);
|
|
||||||
mFont->SetColor(ARGB(255,255,255,255));
|
|
||||||
mGuiController->Add(NEW MenuItem(MENUITEM_PLAY, mFont, "Play", 80, 50 + SCREEN_HEIGHT/2, mIcons[8], mIcons[9],"particle1.psi",resources.GetQuad("particles"), true));
|
|
||||||
mGuiController->Add(NEW MenuItem(MENUITEM_DECKEDITOR, mFont, "Deck Editor", 160, 50 + SCREEN_HEIGHT/2, mIcons[2], mIcons[3],"particle2.psi",resources.GetQuad("particles")));
|
|
||||||
mGuiController->Add(NEW MenuItem(MENUITEM_SHOP, mFont, "Shop", 240, 50 + SCREEN_HEIGHT/2, mIcons[0], mIcons[1],"particle3.psi",resources.GetQuad("particles")));
|
|
||||||
mGuiController->Add(NEW MenuItem(MENUITEM_OPTIONS, mFont, "Options", 320, 50 + SCREEN_HEIGHT/2, mIcons[6], mIcons[7],"particle4.psi",resources.GetQuad("particles")));
|
|
||||||
mGuiController->Add(NEW MenuItem(MENUITEM_EXIT, mFont, "Exit", 400, 50 + SCREEN_HEIGHT/2, mIcons[4], mIcons[5],"particle5.psi",resources.GetQuad("particles")));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (mGuiController)
|
if (mGuiController)
|
||||||
mGuiController->Update(dt);
|
mGuiController->Update(dt);
|
||||||
if(mEngine->GetButtonState(JGE_BTN_NEXT)) //Hook for GameStateAward state
|
if(mEngine->GetButtonState(JGE_BTN_NEXT)) //Hook for GameStateAward state
|
||||||
mParent->DoTransition(TRANSITION_FADE,GAME_STATE_AWARDS); //TODO: A slide transition would be nice.
|
mParent->DoTransition(TRANSITION_FADE,GAME_STATE_AWARDS); //TODO: A slide transition would be nice.
|
||||||
break;
|
break;
|
||||||
case MENU_STATE_MAJOR_SUBMENU :
|
case MENU_STATE_MAJOR_SUBMENU :
|
||||||
subMenuController->Update(dt);
|
if (subMenuController)
|
||||||
|
subMenuController->Update(dt);
|
||||||
|
ensureMGuiController();
|
||||||
mGuiController->Update(dt);
|
mGuiController->Update(dt);
|
||||||
break;
|
break;
|
||||||
case MENU_STATE_MAJOR_DUEL :
|
case MENU_STATE_MAJOR_DUEL :
|
||||||
@@ -464,6 +469,10 @@ void GameStateMenu::Update(float dt)
|
|||||||
|
|
||||||
switch (MENU_STATE_MINOR & currentState){
|
switch (MENU_STATE_MINOR & currentState){
|
||||||
case MENU_STATE_MINOR_SUBMENU_CLOSING :
|
case MENU_STATE_MINOR_SUBMENU_CLOSING :
|
||||||
|
if (!subMenuController){ //http://code.google.com/p/wagic/issues/detail?id=379
|
||||||
|
currentState &= ~MENU_STATE_MINOR_SUBMENU_CLOSING;
|
||||||
|
break;
|
||||||
|
}
|
||||||
if (subMenuController->closed) {
|
if (subMenuController->closed) {
|
||||||
SAFE_DELETE(subMenuController);
|
SAFE_DELETE(subMenuController);
|
||||||
currentState &= ~MENU_STATE_MINOR_SUBMENU_CLOSING;
|
currentState &= ~MENU_STATE_MINOR_SUBMENU_CLOSING;
|
||||||
@@ -540,7 +549,7 @@ void GameStateMenu::Render()
|
|||||||
};
|
};
|
||||||
renderer->FillRect(0,0,SCREEN_WIDTH,SCREEN_HEIGHT,colors);
|
renderer->FillRect(0,0,SCREEN_WIDTH,SCREEN_HEIGHT,colors);
|
||||||
|
|
||||||
if (mGuiController!=NULL)
|
if (mGuiController)
|
||||||
mGuiController->Render();
|
mGuiController->Render();
|
||||||
|
|
||||||
mFont->SetScale(DEFAULT_MAIN_FONT_SCALE);
|
mFont->SetScale(DEFAULT_MAIN_FONT_SCALE);
|
||||||
|
|||||||
Reference in New Issue
Block a user