Unuk/src/libUnuk/MainMenu.cpp
2011-12-30 03:16:32 +02:00

127 lines
3.2 KiB
C++

#include "MainMenu.h"
MainMenu::MainMenu(void) {
btnNewGame.SetOutRGB(200, 200, 200);
btnNewGame.SetOverRGB(255, 255, 255);
btnNewGame.SetTextRGB(0, 0, 0);
btnNewGame.SetText("New Game");
btnNewGame.SetXY(100, 150);
btnNewGameActive = false;
lblNewGame.SetXY(275, 160);
lblNewGame.SetTextBlended("This will delete your current game, are you sure?", vsmall, 0, 0, 0);
rectNewGame.SetRGB(200, 200, 200);
rectNewGame.SetXY(250, 150);
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.SetTextBlended("Unuk", vlarge, 0, 0, 0);
//m_background.Load("MainMenu");
camera.x = 0;
camera.y = 0;
}
MainMenu::~MainMenu(void) {
}
mainMenuNavVal_t MainMenu::Run(void) {
FPS fpsLimiter(20);
bool running = true;
while(running) {
Render();
SDL_Flip(screen);
while(SDL_PollEvent(&event)) {
btnNewGame.CheckMouseOver();
if(btnNewGameActive) {
btnNewGameYes.CheckMouseOver();
btnNewGameNo.CheckMouseOver();
}
btnLoadGame.CheckMouseOver();
btnOptions.CheckMouseOver();
btnExit.CheckMouseOver();
if(event.type == SDL_MOUSEBUTTONUP) {
if(event.button.button == SDL_BUTTON_LEFT) {
if(btnNewGame.CheckMouseOver())
btnNewGameActive = !btnNewGameActive;
else if(btnLoadGame.CheckMouseOver())
return mainMenuLoadGame;
else if(btnOptions.CheckMouseOver())
return mainMenuOptions;
else if(btnExit.CheckMouseOver())
return mainMenuExitGame;
if(btnNewGameActive) {
if(btnNewGameYes.CheckMouseOver())
return mainMenuNewGame;
//else if(btnNewGameNo.CheckMouseOver())
//return btnNewGameActive = false;
}
}
}
else if(event.type == SDL_QUIT) {
return mainMenuExitGame;
}
}
fpsLimiter.LimitFPS();
}
return mainMenuExitGame;
}
void MainMenu::Render(void) {
//m_background.Render();
lblMenu.Render();
btnNewGame.Render();
if(btnNewGameActive) {
rectNewGame.Draw();
lblNewGame.Render();
btnNewGameYes.Render();
btnNewGameNo.Render();
}
btnLoadGame.Render();
btnOptions.Render();
btnExit.Render();
}