[Add] Buttons groups.
[Add] Main menu arrow navigation.
This commit is contained in:
parent
57d51f6a99
commit
3b54b1d28d
@ -2,6 +2,6 @@
|
|||||||
<save>
|
<save>
|
||||||
<name>Allanis</name>
|
<name>Allanis</name>
|
||||||
<x>120</x>
|
<x>120</x>
|
||||||
<y>144</y>
|
<y>180</y>
|
||||||
<map>map</map>
|
<map>map</map>
|
||||||
</save>
|
</save>
|
||||||
|
@ -169,6 +169,14 @@
|
|||||||
RelativePath="..\..\..\src\libUnuk\Button.h"
|
RelativePath="..\..\..\src\libUnuk\Button.h"
|
||||||
>
|
>
|
||||||
</File>
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath="..\..\..\src\libUnuk\ButtonGroup.cpp"
|
||||||
|
>
|
||||||
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath="..\..\..\src\libUnuk\ButtonGroup.h"
|
||||||
|
>
|
||||||
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath="..\..\..\src\libUnuk\ButtonToggle.cpp"
|
RelativePath="..\..\..\src\libUnuk\ButtonToggle.cpp"
|
||||||
>
|
>
|
||||||
|
@ -6,7 +6,6 @@ Button::Button(void) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
Button::~Button(void) {
|
Button::~Button(void) {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void Button::SetOutRGB(Uint8 r, Uint8 g, Uint8 b) {
|
void Button::SetOutRGB(Uint8 r, Uint8 g, Uint8 b) {
|
||||||
|
@ -2,70 +2,75 @@
|
|||||||
|
|
||||||
IngameMenu::IngameMenu(void) {
|
IngameMenu::IngameMenu(void) {
|
||||||
_active = false;
|
_active = false;
|
||||||
_highlightedButton = 0;
|
|
||||||
|
|
||||||
btnResume.SetOutRGB(200, 200, 200);
|
Button* btnResume = new Button();
|
||||||
btnResume.SetOverRGB(255, 255, 255);
|
btnResume->SetOutRGB(200, 200, 200);
|
||||||
btnResume.SetTextRGB(0, 0, 0);
|
btnResume->SetOverRGB(255, 255, 255);
|
||||||
btnResume.SetText("Resume Game");
|
btnResume->SetTextRGB(0, 0, 0);
|
||||||
btnResume.SetHighlightRGB(255, 128, 0);
|
btnResume->SetText("Resume Game");
|
||||||
btnResume.SetHighlighted(true);
|
btnResume->SetHighlightRGB(255, 128, 0);
|
||||||
btnResume.SetXY(SCREEN_WIDTH / 2 - btnResume.GetWidth() / 2, 50);
|
btnResume->SetHighlighted(false);
|
||||||
|
btnResume->SetXY(SCREEN_WIDTH / 2 - btnResume->GetWidth() / 2, 50);
|
||||||
|
|
||||||
btnSaveGame.SetOutRGB(200, 200, 200);
|
Button* btnSaveGame = new Button();
|
||||||
btnSaveGame.SetOverRGB(255, 255, 255);
|
btnSaveGame->SetOutRGB(200, 200, 200);
|
||||||
btnSaveGame.SetTextRGB(0, 0, 0);
|
btnSaveGame->SetOverRGB(255, 255, 255);
|
||||||
btnSaveGame.SetText("SaveGame");
|
btnSaveGame->SetTextRGB(0, 0, 0);
|
||||||
btnSaveGame.SetHighlightRGB(255, 128, 0);
|
btnSaveGame->SetText("SaveGame");
|
||||||
btnSaveGame.SetHighlighted(false);
|
btnSaveGame->SetHighlightRGB(255, 128, 0);
|
||||||
btnSaveGame.SetXY(SCREEN_WIDTH / 2 - btnSaveGame.GetWidth() / 2, 100);
|
btnSaveGame->SetHighlighted(false);
|
||||||
|
btnSaveGame->SetXY(SCREEN_WIDTH / 2 - btnSaveGame->GetWidth() / 2, 100);
|
||||||
|
|
||||||
btnLoadGame.SetOutRGB(200, 200, 200);
|
Button* btnLoadGame = new Button();
|
||||||
btnLoadGame.SetOverRGB(255, 255, 255);
|
btnLoadGame->SetOutRGB(200, 200, 200);
|
||||||
btnLoadGame.SetTextRGB(0, 0, 0);
|
btnLoadGame->SetOverRGB(255, 255, 255);
|
||||||
btnLoadGame.SetText("LoadGame");
|
btnLoadGame->SetTextRGB(0, 0, 0);
|
||||||
btnLoadGame.SetHighlightRGB(255, 128, 0);
|
btnLoadGame->SetText("LoadGame");
|
||||||
btnLoadGame.SetHighlighted(false);
|
btnLoadGame->SetHighlightRGB(255, 128, 0);
|
||||||
btnLoadGame.SetXY(SCREEN_WIDTH / 2 - btnLoadGame.GetWidth() / 2, 150);
|
btnLoadGame->SetHighlighted(false);
|
||||||
|
btnLoadGame->SetXY(SCREEN_WIDTH / 2 - btnLoadGame->GetWidth() / 2, 150);
|
||||||
|
|
||||||
btnOptions.SetOutRGB(200, 200, 200);
|
Button* btnOptions = new Button();
|
||||||
btnOptions.SetOverRGB(255, 255, 255);
|
btnOptions->SetOutRGB(200, 200, 200);
|
||||||
btnOptions.SetTextRGB(0, 0, 0);
|
btnOptions->SetOverRGB(255, 255, 255);
|
||||||
btnOptions.SetText("Options");
|
btnOptions->SetTextRGB(0, 0, 0);
|
||||||
btnOptions.SetHighlightRGB(255, 128, 0);
|
btnOptions->SetText("Options");
|
||||||
btnOptions.SetHighlighted(false);
|
btnOptions->SetHighlightRGB(255, 128, 0);
|
||||||
btnOptions.SetXY(SCREEN_WIDTH / 2 - btnOptions.GetWidth() / 2, 200);
|
btnOptions->SetHighlighted(false);
|
||||||
|
btnOptions->SetXY(SCREEN_WIDTH / 2 - btnOptions->GetWidth() / 2, 200);
|
||||||
|
|
||||||
btnExitToMenu.SetOutRGB(200, 200, 200);
|
Button* btnExitToMenu = new Button();
|
||||||
btnExitToMenu.SetOverRGB(255, 255, 255);
|
btnExitToMenu->SetOutRGB(200, 200, 200);
|
||||||
btnExitToMenu.SetTextRGB(0, 0, 0);
|
btnExitToMenu->SetOverRGB(255, 255, 255);
|
||||||
btnExitToMenu.SetText("Exit To Main Menu");
|
btnExitToMenu->SetTextRGB(0, 0, 0);
|
||||||
btnExitToMenu.SetHighlightRGB(255, 128, 0);
|
btnExitToMenu->SetText("Exit To Main Menu");
|
||||||
btnExitToMenu.SetHighlighted(false);
|
btnExitToMenu->SetHighlightRGB(255, 128, 0);
|
||||||
btnExitToMenu.SetXY(SCREEN_WIDTH / 2 - btnExitToMenu.GetWidth() / 2, 250);
|
btnExitToMenu->SetHighlighted(false);
|
||||||
|
btnExitToMenu->SetXY(SCREEN_WIDTH / 2 - btnExitToMenu->GetWidth() / 2, 250);
|
||||||
|
|
||||||
|
_buttons.AddButton(btnResume);
|
||||||
|
_buttons.AddButton(btnSaveGame);
|
||||||
|
_buttons.AddButton(btnLoadGame);
|
||||||
|
_buttons.AddButton(btnOptions);
|
||||||
|
_buttons.AddButton(btnExitToMenu);
|
||||||
}
|
}
|
||||||
|
|
||||||
IngameMenu::~IngameMenu(void) {
|
IngameMenu::~IngameMenu(void) {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
ingameMenuNavVal_t IngameMenu::HandleInput(void) {
|
ingameMenuNavVal_t IngameMenu::HandleInput(void) {
|
||||||
while(SDL_PollEvent(&event)) {
|
while(SDL_PollEvent(&event)) {
|
||||||
btnResume.CheckMouseOver();
|
_buttons.CheckMouseOverDummy();
|
||||||
btnSaveGame.CheckMouseOver();
|
|
||||||
btnLoadGame.CheckMouseOver();
|
|
||||||
btnOptions.CheckMouseOver();
|
|
||||||
btnExitToMenu.CheckMouseOver();
|
|
||||||
|
|
||||||
if(event.key.type == SDL_KEYDOWN) {
|
if(event.key.type == SDL_KEYDOWN) {
|
||||||
if(event.key.keysym.sym == SDLK_ESCAPE) {
|
if(event.key.keysym.sym == SDLK_ESCAPE) {
|
||||||
return ingameMenuResume;
|
return ingameMenuResume;
|
||||||
} else if(event.key.keysym.sym == SDLK_DOWN) {
|
} else if(event.key.keysym.sym == SDLK_DOWN) {
|
||||||
HighlightNewSelection(_highlightedButton + 1);
|
_buttons.SelectNext();
|
||||||
} else if(event.key.keysym.sym == SDLK_UP) {
|
} else if(event.key.keysym.sym == SDLK_UP) {
|
||||||
HighlightNewSelection(_highlightedButton - 1);
|
_buttons.SelectPrevious();
|
||||||
} else if(event.key.keysym.sym == SDLK_RETURN) {
|
} else if(event.key.keysym.sym == SDLK_RETURN) {
|
||||||
switch(_highlightedButton) {
|
switch(_buttons.GetSelectedButton()) {
|
||||||
case 0: return ingameMenuResume;
|
case 0: return ingameMenuResume;
|
||||||
case 1: return ingameMenuSaveGame;
|
case 1: return ingameMenuSaveGame;
|
||||||
case 2: return ingameMenuLoadGame;
|
case 2: return ingameMenuLoadGame;
|
||||||
@ -76,16 +81,13 @@ ingameMenuNavVal_t IngameMenu::HandleInput(void) {
|
|||||||
}
|
}
|
||||||
else if(event.type == SDL_MOUSEBUTTONUP) {
|
else if(event.type == SDL_MOUSEBUTTONUP) {
|
||||||
if(event.button.button == SDL_BUTTON_LEFT) {
|
if(event.button.button == SDL_BUTTON_LEFT) {
|
||||||
if(btnResume.CheckMouseOver())
|
switch(_buttons.CheckMouseOver()) {
|
||||||
return ingameMenuResume;
|
case 0: return ingameMenuResume;
|
||||||
else if(btnSaveGame.CheckMouseOver())
|
case 1: return ingameMenuSaveGame;
|
||||||
return ingameMenuSaveGame;
|
case 2: return ingameMenuLoadGame;
|
||||||
else if(btnLoadGame.CheckMouseOver())
|
case 3: return ingameMenuOptions;
|
||||||
return ingameMenuLoadGame;
|
case 4: return ingameMenuMainMenu;
|
||||||
else if(btnOptions.CheckMouseOver())
|
}
|
||||||
return ingameMenuOptions;
|
|
||||||
else if(btnExitToMenu.CheckMouseOver())
|
|
||||||
return ingameMenuMainMenu;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -93,39 +95,5 @@ ingameMenuNavVal_t IngameMenu::HandleInput(void) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void IngameMenu::Render(void) {
|
void IngameMenu::Render(void) {
|
||||||
btnResume.RenderLiteral();
|
_buttons.RenderLiteral();
|
||||||
btnSaveGame.RenderLiteral();
|
|
||||||
btnLoadGame.RenderLiteral();
|
|
||||||
btnOptions.RenderLiteral();
|
|
||||||
btnExitToMenu.RenderLiteral();
|
|
||||||
}
|
|
||||||
|
|
||||||
void IngameMenu::HighlightNewSelection(int newButton) {
|
|
||||||
// Turn of highlight for currently highlighted button
|
|
||||||
switch(_highlightedButton) {
|
|
||||||
case 0: btnResume.SetHighlighted(false); break;
|
|
||||||
case 1: btnSaveGame.SetHighlighted(false); break;
|
|
||||||
case 2: btnLoadGame.SetHighlighted(false); break;
|
|
||||||
case 3: btnOptions.SetHighlighted(false); break;
|
|
||||||
case 4: btnExitToMenu.SetHighlighted(false); break;
|
|
||||||
}
|
|
||||||
|
|
||||||
_highlightedButton = newButton;
|
|
||||||
|
|
||||||
// If < 0 then up was pressed when first index was selected
|
|
||||||
// If > 0 then down was pressed when last index was selected
|
|
||||||
if(_highlightedButton < 0) {
|
|
||||||
_highlightedButton = 4;
|
|
||||||
} else if(_highlightedButton > 4) {
|
|
||||||
_highlightedButton = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Highlight new selection
|
|
||||||
switch(_highlightedButton) {
|
|
||||||
case 0: btnResume.SetHighlighted(true); break;
|
|
||||||
case 1: btnSaveGame.SetHighlighted(true); break;
|
|
||||||
case 2: btnLoadGame.SetHighlighted(true); break;
|
|
||||||
case 3: btnOptions.SetHighlighted(true); break;
|
|
||||||
case 4: btnExitToMenu.SetHighlighted(true); break;
|
|
||||||
}
|
|
||||||
}
|
}
|
@ -3,7 +3,7 @@
|
|||||||
|
|
||||||
#include "../Unuk/Globals.h"
|
#include "../Unuk/Globals.h"
|
||||||
#include "../Unuk/Constants.h"
|
#include "../Unuk/Constants.h"
|
||||||
#include "Button.h"
|
#include "ButtonGroup.h"
|
||||||
#include "ButtonToggle.h"
|
#include "ButtonToggle.h"
|
||||||
|
|
||||||
enum ingameMenuNavVal_t {
|
enum ingameMenuNavVal_t {
|
||||||
@ -27,17 +27,9 @@ public:
|
|||||||
bool GetStatus(void) { return _active; }
|
bool GetStatus(void) { return _active; }
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void HighlightNewSelection(int newButton);
|
|
||||||
|
|
||||||
bool _active;
|
bool _active;
|
||||||
|
|
||||||
Button btnResume;
|
ButtonGroup _buttons;
|
||||||
Button btnSaveGame;
|
|
||||||
Button btnLoadGame;
|
|
||||||
Button btnOptions;
|
|
||||||
Button btnExitToMenu;
|
|
||||||
|
|
||||||
int _highlightedButton;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -1,11 +1,46 @@
|
|||||||
#include "MainMenu.h"
|
#include "MainMenu.h"
|
||||||
|
|
||||||
MainMenu::MainMenu(void) {
|
MainMenu::MainMenu(void) {
|
||||||
btnNewGame.SetOutRGB(200, 200, 200);
|
Button* btnNewGame = new Button();
|
||||||
btnNewGame.SetOverRGB(255, 255, 255);
|
btnNewGame->SetOutRGB(200, 200, 200);
|
||||||
btnNewGame.SetTextRGB(0, 0, 0);
|
btnNewGame->SetOverRGB(255, 255, 255);
|
||||||
btnNewGame.SetText("New Game");
|
btnNewGame->SetTextRGB(0, 0, 0);
|
||||||
btnNewGame.SetXY(100, 150);
|
btnNewGame->SetText("New Game");
|
||||||
|
btnNewGame->SetXY(100, 150);
|
||||||
|
btnNewGame->SetHighlightRGB(255, 128, 0);
|
||||||
|
btnNewGame->SetHighlighted(false);
|
||||||
|
|
||||||
|
Button* btnLoadGame = new Button();
|
||||||
|
btnLoadGame->SetOutRGB(200, 200, 200);
|
||||||
|
btnLoadGame->SetOverRGB(255, 255, 255);
|
||||||
|
btnLoadGame->SetTextRGB(0, 0, 0);
|
||||||
|
btnLoadGame->SetText("Load Game");
|
||||||
|
btnLoadGame->SetHighlightRGB(255, 128, 0);
|
||||||
|
btnLoadGame->SetHighlighted(false);
|
||||||
|
btnLoadGame->SetXY(100, 200);
|
||||||
|
|
||||||
|
Button* btnOptions = new Button();
|
||||||
|
btnOptions->SetOutRGB(200, 200, 200);
|
||||||
|
btnOptions->SetOverRGB(255, 255, 255);
|
||||||
|
btnOptions->SetTextRGB(0, 0, 0);
|
||||||
|
btnOptions->SetText("Options");
|
||||||
|
btnOptions->SetHighlightRGB(255, 128, 0);
|
||||||
|
btnOptions->SetHighlighted(false);
|
||||||
|
btnOptions->SetXY(100, 250);
|
||||||
|
|
||||||
|
Button* btnExit = new Button();
|
||||||
|
btnExit->SetOutRGB(200, 200, 200);
|
||||||
|
btnExit->SetOverRGB(255, 255, 255);
|
||||||
|
btnExit->SetTextRGB(0, 0, 0);
|
||||||
|
btnExit->SetText("Exit");
|
||||||
|
btnExit->SetHighlightRGB(255, 128, 0);
|
||||||
|
btnExit->SetHighlighted(false);
|
||||||
|
btnExit->SetXY(100, 300);
|
||||||
|
|
||||||
|
grpMain.AddButton(btnNewGame);
|
||||||
|
grpMain.AddButton(btnLoadGame);
|
||||||
|
grpMain.AddButton(btnOptions);
|
||||||
|
grpMain.AddButton(btnExit);
|
||||||
|
|
||||||
btnNewGameActive = false;
|
btnNewGameActive = false;
|
||||||
|
|
||||||
@ -16,39 +51,30 @@ MainMenu::MainMenu(void) {
|
|||||||
rectNewGame.SetXY(250, 150);
|
rectNewGame.SetXY(250, 150);
|
||||||
rectNewGame.SetWidthHeight(lblNewGame.GetWidth() + 50, 90);
|
rectNewGame.SetWidthHeight(lblNewGame.GetWidth() + 50, 90);
|
||||||
|
|
||||||
btnNewGameYes.SetOutRGB(20, 150, 20);
|
|
||||||
btnNewGameYes.SetOverRGB(20, 255, 20);
|
|
||||||
btnNewGameYes.SetTextRGB(0, 0, 0);
|
|
||||||
btnNewGameYes.SetText("Yes");
|
|
||||||
btnNewGameYes.SetXY(rectNewGame.GetX() + rectNewGame.GetWidth() / 2 - 40 - btnNewGameYes.GetWidth(), 190);
|
|
||||||
|
|
||||||
btnNewGameNo.SetOutRGB(150, 20, 20);
|
|
||||||
btnNewGameNo.SetOverRGB(255, 20, 20);
|
|
||||||
btnNewGameNo.SetTextRGB(0, 0, 0);
|
|
||||||
btnNewGameNo.SetText("No");
|
|
||||||
btnNewGameNo.SetXY(rectNewGame.GetX() + rectNewGame.GetWidth() / 2 + 40 - btnNewGameNo.GetWidth(), 190);
|
|
||||||
|
|
||||||
btnLoadGame.SetOutRGB(200, 200, 200);
|
|
||||||
btnLoadGame.SetOverRGB(255, 255, 255);
|
|
||||||
btnLoadGame.SetTextRGB(0, 0, 0);
|
|
||||||
btnLoadGame.SetText("Load Game");
|
|
||||||
btnLoadGame.SetXY(100, 200);
|
|
||||||
|
|
||||||
btnOptions.SetOutRGB(200, 200, 200);
|
|
||||||
btnOptions.SetOverRGB(255, 255, 255);
|
|
||||||
btnOptions.SetTextRGB(0, 0, 0);
|
|
||||||
btnOptions.SetText("Options");
|
|
||||||
btnOptions.SetXY(100, 250);
|
|
||||||
|
|
||||||
btnExit.SetOutRGB(200, 200, 200);
|
|
||||||
btnExit.SetOverRGB(255, 255, 255);
|
|
||||||
btnExit.SetTextRGB(0, 0, 0);
|
|
||||||
btnExit.SetText("Exit");
|
|
||||||
btnExit.SetXY(100, 300);
|
|
||||||
|
|
||||||
lblMenu.SetXY(100, 75);
|
lblMenu.SetXY(100, 75);
|
||||||
lblMenu.SetTextBlended("Unuk", vlarge, 0, 0, 0);
|
lblMenu.SetTextBlended("Unuk", vlarge, 0, 0, 0);
|
||||||
|
|
||||||
|
Button* btnNewGameYes = new Button();
|
||||||
|
btnNewGameYes->SetOutRGB(20, 150, 20);
|
||||||
|
btnNewGameYes->SetOverRGB(20, 255, 20);
|
||||||
|
btnNewGameYes->SetTextRGB(0, 0, 0);
|
||||||
|
btnNewGameYes->SetText("Yes");
|
||||||
|
btnNewGameYes->SetHighlightRGB(255, 128, 0);
|
||||||
|
btnNewGameYes->SetHighlighted(false);
|
||||||
|
btnNewGameYes->SetXY(rectNewGame.GetX() + rectNewGame.GetWidth() / 2 - 40 - btnNewGameYes->GetWidth(), 190);
|
||||||
|
|
||||||
|
Button* btnNewGameNo = new Button();
|
||||||
|
btnNewGameNo->SetOutRGB(150, 20, 20);
|
||||||
|
btnNewGameNo->SetOverRGB(255, 20, 20);
|
||||||
|
btnNewGameNo->SetTextRGB(0, 0, 0);
|
||||||
|
btnNewGameNo->SetText("No");
|
||||||
|
btnNewGameNo->SetHighlightRGB(255, 128, 0);
|
||||||
|
btnNewGameNo->SetHighlighted(false);
|
||||||
|
btnNewGameNo->SetXY(rectNewGame.GetX() + rectNewGame.GetWidth() / 2 + 40 - btnNewGameNo->GetWidth(), 190);
|
||||||
|
|
||||||
|
grpNewGame.AddButton(btnNewGameYes);
|
||||||
|
grpNewGame.AddButton(btnNewGameNo);
|
||||||
|
|
||||||
//m_background.Load("MainMenu");
|
//m_background.Load("MainMenu");
|
||||||
|
|
||||||
camera.x = 0;
|
camera.x = 0;
|
||||||
@ -68,32 +94,55 @@ mainMenuNavVal_t MainMenu::Run(void) {
|
|||||||
SDL_Flip(screen);
|
SDL_Flip(screen);
|
||||||
|
|
||||||
while(SDL_PollEvent(&event)) {
|
while(SDL_PollEvent(&event)) {
|
||||||
btnNewGame.CheckMouseOver();
|
grpMain.CheckMouseOverDummy();
|
||||||
|
|
||||||
if(btnNewGameActive) {
|
if(btnNewGameActive) {
|
||||||
btnNewGameYes.CheckMouseOver();
|
grpNewGame.CheckMouseOverDummy();
|
||||||
btnNewGameNo.CheckMouseOver();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
btnLoadGame.CheckMouseOver();
|
if(event.key.type == SDL_KEYDOWN) {
|
||||||
btnOptions.CheckMouseOver();
|
if(event.key.keysym.sym == SDLK_DOWN) {
|
||||||
btnExit.CheckMouseOver();
|
if(btnNewGameActive) {
|
||||||
|
grpNewGame.SelectNext();
|
||||||
if(event.type == SDL_MOUSEBUTTONUP) {
|
} else {
|
||||||
|
grpMain.SelectNext();
|
||||||
|
}
|
||||||
|
} else if(event.key.keysym.sym == SDLK_UP) {
|
||||||
|
if(btnNewGameActive) {
|
||||||
|
grpNewGame.SelectPrevious();
|
||||||
|
} else {
|
||||||
|
grpMain.SelectPrevious();
|
||||||
|
}
|
||||||
|
} else if(event.key.keysym.sym == SDLK_RETURN) {
|
||||||
|
if(btnNewGameActive) {
|
||||||
|
switch(grpNewGame.GetSelectedButton()) {
|
||||||
|
case 0: return mainMenuNewGame; break;
|
||||||
|
case 1: btnNewGameActive = false; break;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
switch(grpMain.GetSelectedButton()) {
|
||||||
|
case 0: btnNewGameActive = !btnNewGameActive; break;
|
||||||
|
case 1: return mainMenuLoadGame;
|
||||||
|
case 2: return mainMenuOptions;
|
||||||
|
case 3: return mainMenuExitGame;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if(event.type == SDL_MOUSEBUTTONUP) {
|
||||||
if(event.button.button == SDL_BUTTON_LEFT) {
|
if(event.button.button == SDL_BUTTON_LEFT) {
|
||||||
if(btnNewGame.CheckMouseOver())
|
switch(grpMain.CheckMouseOver()) {
|
||||||
btnNewGameActive = !btnNewGameActive;
|
case 0: btnNewGameActive = !btnNewGameActive; break;
|
||||||
else if(btnLoadGame.CheckMouseOver())
|
case 1: return mainMenuLoadGame;
|
||||||
return mainMenuLoadGame;
|
case 2: return mainMenuOptions;
|
||||||
else if(btnOptions.CheckMouseOver())
|
case 3: return mainMenuExitGame;
|
||||||
return mainMenuOptions;
|
}
|
||||||
else if(btnExit.CheckMouseOver())
|
|
||||||
return mainMenuExitGame;
|
|
||||||
|
|
||||||
if(btnNewGameActive) {
|
if(btnNewGameActive) {
|
||||||
if(btnNewGameYes.CheckMouseOver())
|
switch(grpNewGame.CheckMouseOver()) {
|
||||||
return mainMenuNewGame;
|
case 0: return mainMenuNewGame; break;
|
||||||
//else if(btnNewGameNo.CheckMouseOver())
|
case 1: btnNewGameActive = false; break;
|
||||||
//return btnNewGameActive = false;
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -112,15 +161,11 @@ void MainMenu::Render(void) {
|
|||||||
|
|
||||||
lblMenu.Render();
|
lblMenu.Render();
|
||||||
|
|
||||||
btnNewGame.Render();
|
grpMain.RenderLiteral();
|
||||||
|
|
||||||
if(btnNewGameActive) {
|
if(btnNewGameActive) {
|
||||||
rectNewGame.Draw();
|
rectNewGame.Draw();
|
||||||
lblNewGame.Render();
|
lblNewGame.Render();
|
||||||
btnNewGameYes.Render();
|
grpNewGame.RenderLiteral();
|
||||||
btnNewGameNo.Render();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
btnLoadGame.Render();
|
|
||||||
btnOptions.Render();
|
|
||||||
btnExit.Render();
|
|
||||||
}
|
}
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
|
|
||||||
#include "../Unuk/Constants.h"
|
#include "../Unuk/Constants.h"
|
||||||
#include "FPS.h"
|
#include "FPS.h"
|
||||||
#include "Button.h"
|
#include "ButtonGroup.h"
|
||||||
#include "Map.h"
|
#include "Map.h"
|
||||||
#include "Rect.h"
|
#include "Rect.h"
|
||||||
#include "Text.h"
|
#include "Text.h"
|
||||||
@ -29,17 +29,12 @@ private:
|
|||||||
|
|
||||||
Text lblMenu;
|
Text lblMenu;
|
||||||
|
|
||||||
Button btnNewGame;
|
ButtonGroup grpMain;
|
||||||
|
|
||||||
bool btnNewGameActive;
|
bool btnNewGameActive;
|
||||||
Rect rectNewGame;
|
Rect rectNewGame;
|
||||||
Text lblNewGame;
|
Text lblNewGame;
|
||||||
Button btnNewGameYes;
|
ButtonGroup grpNewGame;
|
||||||
Button btnNewGameNo;
|
|
||||||
|
|
||||||
Button btnLoadGame;
|
|
||||||
Button btnOptions;
|
|
||||||
Button btnExit;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
CC = g++
|
CC = g++
|
||||||
CFLAGS = -ansi -Wall -g
|
CFLAGS = -ansi -Wall -g
|
||||||
LDADD = -lGL -lGLU -lSDL -lSDL_ttf -lSDL_gfx -lSDL_image -ltinyxml
|
LDADD = -lGL -lGLU -lSDL -lSDL_ttf -lSDL_gfx -lSDL_image -ltinyxml
|
||||||
objects = ApplySurface.o Button.o ButtonToggle.o Character.o Collision.o \
|
objects = ApplySurface.o Button.o ButtonToggle.o ButtonGroup.o Character.o Collision.o \
|
||||||
Debug.o Font.o FPS.o ImageLoader.o IngameMenu.o Input.o MainMenu.o \
|
Debug.o Font.o FPS.o ImageLoader.o IngameMenu.o Input.o MainMenu.o \
|
||||||
Map.o MapElement.o MapEntities.o MemManager.o NPC.o ParticleEmitter.o \
|
Map.o MapElement.o MapEntities.o MemManager.o NPC.o ParticleEmitter.o \
|
||||||
Rect.o Text.o Texture.o TextureManager.o Timer.o \
|
Rect.o Text.o Texture.o TextureManager.o Timer.o \
|
||||||
|
Loading…
Reference in New Issue
Block a user