#include "SequenceController.h" #include "const.h" #include "fileManager.h" SequenceController::SequenceController(DrawManager *p_drawManager, InputManager *p_inputManager) { drawManager = p_drawManager; inputManager = p_inputManager; } SequenceController::~SequenceController(void) { } bool SequenceController::Init() { return true; } void SequenceController::Go(GameInfo *pGameInfo) { bool salir = false; int pantalla = 0; const char *file; int filesize; gameInfo = pGameInfo; if (gameInfo->fase % 5 == 0 || gameInfo->fase < 0) { switch (gameInfo->fase) { case -1: file = file_getBufferFromResource("seqIN.seq", filesize); break; case 0: file = file_getBufferFromResource("seq00.seq", filesize); break; case 5: file = file_getBufferFromResource("seq05.seq", filesize); break; case 10: file = file_getBufferFromResource("seq10.seq", filesize); break; case 15: file = file_getBufferFromResource("seq15.seq", filesize); break; case 20: file = file_getBufferFromResource("seq20.seq", filesize); break; case 25: file = file_getBufferFromResource("seq25.seq", filesize); break; case 30: file = file_getBufferFromResource("seq30.seq", filesize); break; } ProcesarSecuencia(file); } //drawManager->FadeOut(); if (gameInfo->estado != ESTADO_SALIR) { gameInfo->estado = ESTADO_PREFASE; if (gameInfo->fase == -1) gameInfo->estado = ESTADO_MENU; if (gameInfo->fase == 30) gameInfo->estado = ESTADO_MENU; } } void SequenceController::ProcesarSecuencia(const char *file) { char numDiapositives = (char)file[0]; int punter = 1; char *filename; char *texto; char tamanyCadena; Uint16 x; Uint16 y; Uint16 temps; char colorTemp; Uint32 color; bool salir = false; for (int j=0; jcolor_blanco; break; case 1: color = drawManager->color_rojo; break; case 2: color = drawManager->color_verde; break; case 3: color = drawManager->color_azul; break; } tamanyCadena = file[punter++]; texto = (char *) malloc(tamanyCadena + 1); for (int i=0; iUpdate(); if (inputManager->eixir) { gameInfo->estado = ESTADO_SALIR; salir = true; seguirIntro = false; } if (inputManager->cualquierTecla || inputManager->BotoPulsat(SDL_BUTTON_LEFT)) { salir = true; if (inputManager->TeclaPulsada(SDLK_ESCAPE)) seguirIntro = false; } if (SDL_GetTicks()-startTicks > temps) { salir = true; } } return seguirIntro; } void SequenceController::FadeIn(char *archivo) { fondo = drawManager->LoadBitmap( archivo); drawManager->Blit(0,0, fondo); drawManager->FadeIn(); SDL_FreeSurface(fondo); } void SequenceController::Show(char *archivo) { fondo = drawManager->LoadBitmap( archivo); drawManager->Blit(0,0, fondo); drawManager->Flip(); SDL_FreeSurface(fondo); } void SequenceController::Print(int x, int y, Uint32 color, char *texto) { font = drawManager->LoadFont( "fuente2.gif", color); drawManager->Print(x, y, font, 7, 6, texto); drawManager->Flip(); SDL_FreeSurface(font); } void SequenceController::FadeOut() { drawManager->FadeOut(); } void SequenceController::FadeOutWithMusic() { drawManager->FadeOut(); music_fadeOut(); } void SequenceController::Musica(char *archivo, int loop) { music_load(archivo); music_play(loop); } void SequenceController::Finalize(void) { }