99 lines
3.2 KiB
C++
99 lines
3.2 KiB
C++
#include "IngameMenu.h"
|
|
|
|
IngameMenu::IngameMenu(void) {
|
|
_active = false;
|
|
|
|
Button* btnResume = new Button();
|
|
btnResume->SetOutRGB(200, 200, 200);
|
|
btnResume->SetOverRGB(255, 255, 255);
|
|
btnResume->SetTextRGB(0, 0, 0);
|
|
btnResume->SetText("Resume Game");
|
|
btnResume->SetHighlightRGB(255, 128, 0);
|
|
btnResume->SetHighlighted(false);
|
|
btnResume->SetXY(SCREEN_WIDTH / 2 - btnResume->GetWidth() / 2, 50);
|
|
|
|
Button* btnSaveGame = new Button();
|
|
btnSaveGame->SetOutRGB(200, 200, 200);
|
|
btnSaveGame->SetOverRGB(255, 255, 255);
|
|
btnSaveGame->SetTextRGB(0, 0, 0);
|
|
btnSaveGame->SetText("SaveGame");
|
|
btnSaveGame->SetHighlightRGB(255, 128, 0);
|
|
btnSaveGame->SetHighlighted(false);
|
|
btnSaveGame->SetXY(SCREEN_WIDTH / 2 - btnSaveGame->GetWidth() / 2, 100);
|
|
|
|
Button* btnLoadGame = new Button();
|
|
btnLoadGame->SetOutRGB(200, 200, 200);
|
|
btnLoadGame->SetOverRGB(255, 255, 255);
|
|
btnLoadGame->SetTextRGB(0, 0, 0);
|
|
btnLoadGame->SetText("LoadGame");
|
|
btnLoadGame->SetHighlightRGB(255, 128, 0);
|
|
btnLoadGame->SetHighlighted(false);
|
|
btnLoadGame->SetXY(SCREEN_WIDTH / 2 - btnLoadGame->GetWidth() / 2, 150);
|
|
|
|
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(SCREEN_WIDTH / 2 - btnOptions->GetWidth() / 2, 200);
|
|
|
|
Button* btnExitToMenu = new Button();
|
|
btnExitToMenu->SetOutRGB(200, 200, 200);
|
|
btnExitToMenu->SetOverRGB(255, 255, 255);
|
|
btnExitToMenu->SetTextRGB(0, 0, 0);
|
|
btnExitToMenu->SetText("Exit To Main Menu");
|
|
btnExitToMenu->SetHighlightRGB(255, 128, 0);
|
|
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) {
|
|
}
|
|
|
|
ingameMenuNavVal_t IngameMenu::HandleInput(void) {
|
|
while(SDL_PollEvent(&event)) {
|
|
_buttons.CheckMouseOverDummy();
|
|
|
|
if(event.key.type == SDL_KEYDOWN) {
|
|
if(event.key.keysym.sym == SDLK_ESCAPE) {
|
|
return ingameMenuResume;
|
|
} else if(event.key.keysym.sym == SDLK_DOWN) {
|
|
_buttons.SelectNext();
|
|
} else if(event.key.keysym.sym == SDLK_UP) {
|
|
_buttons.SelectPrevious();
|
|
} else if(event.key.keysym.sym == SDLK_RETURN) {
|
|
switch(_buttons.GetSelectedButton()) {
|
|
case 0: return ingameMenuResume;
|
|
case 1: return ingameMenuSaveGame;
|
|
case 2: return ingameMenuLoadGame;
|
|
case 3: return ingameMenuOptions;
|
|
case 4: return ingameMenuMainMenu;
|
|
}
|
|
}
|
|
}
|
|
else if(event.type == SDL_MOUSEBUTTONUP) {
|
|
if(event.button.button == SDL_BUTTON_LEFT) {
|
|
switch(_buttons.CheckMouseOver()) {
|
|
case 0: return ingameMenuResume;
|
|
case 1: return ingameMenuSaveGame;
|
|
case 2: return ingameMenuLoadGame;
|
|
case 3: return ingameMenuOptions;
|
|
case 4: return ingameMenuMainMenu;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return ingameMenuNothing;
|
|
}
|
|
|
|
void IngameMenu::Render(void) {
|
|
_buttons.RenderLiteral();
|
|
} |