Files
coffee_crisis_arcade_edition/source/scoreboard.h

109 lines
2.9 KiB
C++

#pragma once
#include <SDL2/SDL.h>
#include "common/asset.h"
#include "common/screen.h"
#include "common/sprite.h"
#include "common/text.h"
#include "common/utils.h"
#include "const.h"
#include "lang.h"
#ifndef SCOREBOARD_H
#define SCOREBOARD_H
// Clase Scoreboard
class Scoreboard
{
private:
// Objetos y punteros
SDL_Renderer *renderer; // El renderizador de la ventana
Screen *screen; // Objeto encargado de dibujar en pantalla
Asset *asset; // Objeto que gestiona todos los ficheros de recursos
Lang *lang; // Objeto para gestionar los textos en diferentes idiomas
Texture *gamePowerMeterTexture; // Textura con el marcador de poder de la fase
Sprite *powerMeterSprite; // Sprite para el medidor de poder de la fase
Text *textScoreBoard; // Fuente para el marcador del juego
SDL_Texture *background; // Textura para dibujar el marcador
// Variables
struct options_t *options; // Variable con todas las variables de las opciones del programa
int stage; // Número de fase actual
int score1; // Puntuación del jugador 1
int score2; // Puntuación del jugador 2
float mult1; // Multiplicador del jugador 1
float mult2; // MUltiplicador del jugador 2
int hiScore; // Mäxima puntuación
float power; // Poder actual de la fase
std::string hiScoreName; // Nombre del jugador con la máxima puntuación
color_t color; // Color del marcador
SDL_Rect rect; // Posición y dimensiones del marcador
SDL_Point offsetScoreP1Label;
SDL_Point offsetScoreP1;
SDL_Point offsetScoreP2Label;
SDL_Point offsetScoreP2;
SDL_Point offsetMultP1Label;
SDL_Point offsetMultP1;
SDL_Point offsetMultP2Label;
SDL_Point offsetMultP2;
SDL_Point offsetHiScoreLabel;
SDL_Point offsetHiScore;
SDL_Point offsetStage;
SDL_Point offsetPowerMeter;
// Recalcula las anclas de los elementos
void recalculateAnchors();
// Transforma un valor numérico en una cadena de 6 cifras
std::string updateScoreText(Uint32 num);
// Rellena la textura de fondo
void fillBackgroundTexture();
public:
// Constructor
Scoreboard(SDL_Renderer *renderer, Screen *screen, Asset *asset, Lang *lang, options_t *options);
// Destructor
~Scoreboard();
// Pinta el marcador
void render();
// Establece el valor de la variable
void setScore1(int score);
// Establece el valor de la variable
void setScore2(int score);
// Establece el valor de la variable
void setMult1(float mult);
// Establece el valor de la variable
void setMult2(float mult);
// Establece el valor de la variable
void setStage(int stage);
// Establece el valor de la variable
void setHiScore(int hiScore);
// Establece el valor de la variable
void setPower(float power);
// Establece el valor de la variable
void setHiScoreName(std::string name);
// Establece el valor de la variable
void setColor(color_t color);
// Establece el valor de la variable
void setPos(SDL_Rect rect);
};
#endif