Convertit "param" a variable global en lloc de anar marejant amb punterets i passant 8.000.000 de paràmetres
This commit is contained in:
@@ -1,8 +1,9 @@
|
||||
#include "hiscore_table.h"
|
||||
#include "param.h"
|
||||
#include <iostream>
|
||||
|
||||
// Constructor
|
||||
HiScoreTable::HiScoreTable(Screen *screen, Asset *asset, Input *input, options_t *options, param_t *param, section_t *section, JA_Music_t *music)
|
||||
HiScoreTable::HiScoreTable(Screen *screen, Asset *asset, Input *input, options_t *options, section_t *section, JA_Music_t *music)
|
||||
{
|
||||
// Copia punteros
|
||||
this->screen = screen;
|
||||
@@ -10,18 +11,17 @@ HiScoreTable::HiScoreTable(Screen *screen, Asset *asset, Input *input, options_t
|
||||
this->input = input;
|
||||
this->section = section;
|
||||
this->options = options;
|
||||
this->param = param;
|
||||
this->music = music;
|
||||
renderer = screen->getRenderer();
|
||||
|
||||
// Objetos
|
||||
eventHandler = new SDL_Event();
|
||||
fade = new Fade(renderer, param);
|
||||
background = new Background(renderer, asset, param);
|
||||
fade = new Fade(renderer);
|
||||
background = new Background(renderer, asset);
|
||||
text = new Text(asset->get("smb2.gif"), asset->get("smb2.txt"), renderer);
|
||||
|
||||
// Crea un backbuffer para el renderizador
|
||||
backbuffer = SDL_CreateTexture(renderer, SDL_PIXELFORMAT_RGBA8888, SDL_TEXTUREACCESS_TARGET, param->game.width, param->game.height);
|
||||
backbuffer = SDL_CreateTexture(renderer, SDL_PIXELFORMAT_RGBA8888, SDL_TEXTUREACCESS_TARGET, param.game.width, param.game.height);
|
||||
SDL_SetTextureBlendMode(backbuffer, SDL_BLENDMODE_BLEND);
|
||||
|
||||
// Inicializa variables
|
||||
@@ -30,17 +30,17 @@ HiScoreTable::HiScoreTable(Screen *screen, Asset *asset, Input *input, options_t
|
||||
ticksSpeed = 15;
|
||||
counter = 0;
|
||||
counterEnd = 800;
|
||||
viewArea = {0, 0, param->game.width, param->game.height};
|
||||
viewArea = {0, 0, param.game.width, param.game.height};
|
||||
fadeMode = FADE_IN;
|
||||
|
||||
// Inicializa objetos
|
||||
background->setPos(param->game.gameArea.rect);
|
||||
background->setPos(param.game.gameArea.rect);
|
||||
background->setCloudsSpeed(-0.1f);
|
||||
background->setGradientNumber(1);
|
||||
background->setTransition(0.8f);
|
||||
fade->setColor(fadeColor.r, fadeColor.g, fadeColor.b);
|
||||
fade->setType(FADE_RANDOM_SQUARE);
|
||||
fade->setPost(param->fade.postDuration);
|
||||
fade->setPost(param.fade.postDuration);
|
||||
fade->setMode(fadeMode);
|
||||
fade->activate();
|
||||
|
||||
@@ -104,7 +104,7 @@ void HiScoreTable::fillTexture()
|
||||
const int spaceBetweenHeader = 32;
|
||||
const int spaceBetweenLines = text->getCharacterSize() * 2.0f;
|
||||
const int size = spaceBetweenHeader + spaceBetweenLines * (maxNames - 1) + text->getCharacterSize();
|
||||
const int firstLine = (param->game.height - size) / 2;
|
||||
const int firstLine = (param.game.height - size) / 2;
|
||||
|
||||
// Pinta en el backbuffer el texto y los sprites
|
||||
SDL_Texture *temp = SDL_GetRenderTarget(renderer);
|
||||
@@ -113,7 +113,7 @@ void HiScoreTable::fillTexture()
|
||||
SDL_RenderClear(renderer);
|
||||
|
||||
// Escribe el texto: Mejores puntuaciones
|
||||
text->writeDX(TXT_CENTER | TXT_COLOR | TXT_SHADOW, param->game.gameArea.centerX, firstLine, lang::getText(42), 1, orangeColor, 1, shdwTxtColor);
|
||||
text->writeDX(TXT_CENTER | TXT_COLOR | TXT_SHADOW, param.game.gameArea.centerX, firstLine, lang::getText(42), 1, orangeColor, 1, shdwTxtColor);
|
||||
|
||||
// Escribe los nombres de la tabla de puntuaciones
|
||||
for (int i = 0; i < maxNames; ++i)
|
||||
@@ -128,7 +128,7 @@ void HiScoreTable::fillTexture()
|
||||
dots = dots + ".";
|
||||
}
|
||||
const std::string line = options->game.hiScoreTable[i].name + dots + score;
|
||||
text->writeDX(TXT_CENTER | TXT_SHADOW, param->game.gameArea.centerX, (i * spaceBetweenLines) + firstLine + spaceBetweenHeader, line, 1, orangeColor, 1, shdwTxtColor);
|
||||
text->writeDX(TXT_CENTER | TXT_SHADOW, param.game.gameArea.centerX, (i * spaceBetweenLines) + firstLine + spaceBetweenHeader, line, 1, orangeColor, 1, shdwTxtColor);
|
||||
}
|
||||
|
||||
// Cambia el destino de renderizado
|
||||
@@ -148,7 +148,7 @@ void HiScoreTable::render()
|
||||
background->render();
|
||||
|
||||
// Establece la ventana del backbuffer
|
||||
viewArea.y = std::max(0, param->game.height - counter + 100);
|
||||
viewArea.y = std::max(0, param.game.height - counter + 100);
|
||||
|
||||
// Copia el backbuffer al renderizador
|
||||
SDL_RenderCopy(renderer, backbuffer, nullptr, &viewArea);
|
||||
|
||||
Reference in New Issue
Block a user