#pragma once #include "ifdefs.h" #include "const.h" #include "utils.h" #include "screen.h" #include "smartsprite.h" #include "writer.h" #include "jail_audio.h" #ifndef INTRO_H #define INTRO_H // Cantidad de eventos de la intro #define INTRO_TOTAL_BITMAPS 6 #define INTRO_TOTAL_TEXTS 9 const int INTRO_TOTAL_EVENTS = INTRO_TOTAL_BITMAPS + INTRO_TOTAL_TEXTS; // Relaciones de Id con nombres #define BITMAP0 0 #define BITMAP1 1 #define BITMAP2 2 #define BITMAP3 3 #define BITMAP4 4 #define BITMAP5 5 #define TEXT0 6 #define TEXT1 7 #define TEXT2 8 #define TEXT3 9 #define TEXT4 10 #define TEXT5 11 #define TEXT6 12 #define TEXT7 13 #define TEXT8 14 // Clase Intro class Intro { private: SDL_Renderer *mRenderer; // El renderizador de la ventana Screen *mScreen; // Objeto encargado de dibujar en pantalla LTexture *mBitmapTexture; // Textura con los graficos LTexture *mTextTexture; // Textura con los caracteres de texto SDL_Event *mEventHandler; // Manejador de eventos std::string *mFileList; // Lista de ficheros Lang *mLang; // Objeto para gestionar los textos en diferentes idiomas section_t mSection; // Estado del bucle principal para saber si continua o se sale Uint32 mTicks; // Contador de ticks para ajustar la velocidad del programa Uint8 mTicksSpeed; // Velocidad a la que se repiten los bucles del programa SmartSprite *mBitmap[INTRO_TOTAL_BITMAPS]; // Vector con los sprites inteligentes para los dibujos de la intro Writer *mWriter[INTRO_TOTAL_TEXTS]; // Textos de la intro Text *mText; // Textos de la intro Uint8 mEvents[INTRO_TOTAL_EVENTS]; // Vector para coordinar los eventos de la intro JA_Music mMusic; // Musica para la intro public: // Constructor Intro(SDL_Renderer *renderer, Screen *screen, std::string *fileList, Lang *lang); // Destructor ~Intro(); // Inicializa las variables void init(); // Carga los recursos bool loadMedia(); // Bucle principal section_t run(); }; #endif