#pragma once #include #include "asset.h" #include "const.h" #include "jail_audio.h" #include "screen.h" #include "sprite.h" #include "text.h" #include "utils.h" #ifndef INSTRUCTIONS_H #define INSTRUCTIONS_H // Contadores #define INSTRUCTIONS_COUNTER 600 // Modo para las instrucciones #define INSTRUCTIONS_MODE_MANUAL 0 #define INSTRUCTIONS_MODE_AUTO 1 // Clase Instructions class Instructions { private: SDL_Renderer *mRenderer; // El renderizador de la ventana Screen *mScreen; // Objeto encargado de dibujar en pantalla LTexture *mItemTexture; // Textura con los graficos SDL_Event *mEventHandler; // Manejador de eventos SDL_Texture *mBackbuffer; // Textura para usar como backbuffer Sprite *mSprite; // Sprite con la textura de las instrucciones Asset *mAsset; // Objeto que gestiona todos los ficheros de recursos Lang *mLang; // Objeto para gestionar los textos en diferentes idiomas Text *mText; // Objeto para escribir texto Uint16 mCounter; // Contador 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 Uint32 mTicksSpeed; // Velocidad a la que se repiten los bucles del programa bool mManualQuit; // Indica si se quiere salir del modo manual // Actualiza las variables void update(); // Pinta en pantalla void render(); // Inicializa las variables void init(); public: // Constructor Instructions(SDL_Renderer *renderer, Screen *screen, Asset *mAsset, Lang *lang); // Destructor ~Instructions(); // Bucle principal void run(Uint8 mode); }; #endif