Files
arounders/MenuController.cpp
jaildoctor ad553db1ae Versió 1.1
2009-03-06 13:03:27 +00:00

77 lines
1.9 KiB
C++

#include "MenuController.h"
#include "const.h"
MenuController::MenuController(DrawManager *p_drawManager, InputManager *p_inputManager, MusicManager *p_musicManager) {
drawManager = p_drawManager;
inputManager = p_inputManager;
musicManager = p_musicManager;
}
MenuController::~MenuController(void) {
}
bool MenuController::Init() {
fondo = drawManager->LoadBitmap("menuprin.gif");
cursor = drawManager->LoadFont("cursor.gif");
if (!musicManager->Sonant()) {
musicManager->Load( "mus3.mp3");
musicManager->Play(-1);
}
return true;
}
void MenuController::Go(GameInfo *gameInfo) {
bool salir = false;
if ( !Init() ) { salir = true; gameInfo->estado = ESTADO_SALIR; }
drawManager->Blit(0,0, fondo);
drawManager->FadeIn();
while ( !salir ) {
inputManager->Update();
drawManager->Blit(0,0, fondo);
drawManager->Blit(inputManager->mouseX, inputManager->mouseY, cursor);
drawManager->Flip();
if (inputManager->eixir) {
gameInfo->estado = ESTADO_SALIR;
salir = true;
}
if (inputManager->BotoPulsat(SDL_BUTTON_LEFT)) {
if (inputManager->mouseX >= 200 &&
inputManager->mouseY >= 100 &&
inputManager->mouseX <= 270 &&
inputManager->mouseY <= 120 ) {
gameInfo->estado = ESTADO_SEQUENCIA;
gameInfo->fase = 0;
salir = true;
}
if (inputManager->mouseX >= 175 &&
inputManager->mouseY >= 125 &&
inputManager->mouseX <= 290 &&
inputManager->mouseY <= 145 ) {
gameInfo->estado = ESTADO_PASSWORD;
gameInfo->fase = 0;
salir = true;
}
if (inputManager->mouseX >= 200 &&
inputManager->mouseY >= 150 &&
inputManager->mouseX <= 265 &&
inputManager->mouseY <= 170 ) {
gameInfo->estado = ESTADO_SALIR;
salir = true;
}
}
}
if (gameInfo->estado == ESTADO_SALIR) musicManager->FadeOut();
drawManager->FadeOut();
}
void MenuController::Finalize(void) {
SDL_FreeSurface(fondo);
SDL_FreeSurface(cursor);
}