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:
2024-09-27 17:42:25 +02:00
parent c1bf0b8aed
commit 46b41757b2
28 changed files with 279 additions and 293 deletions

View File

@@ -1,16 +1,16 @@
#include "fade.h"
#include "const.h"
#include "param.h"
#include <iostream>
// Constructor
Fade::Fade(SDL_Renderer *renderer, param_t *param)
Fade::Fade(SDL_Renderer *renderer)
{
// Copia punteros y objetos
this->renderer = renderer;
this->param = param;
// Crea la textura donde dibujar el fade
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 las variables
@@ -37,10 +37,10 @@ void Fade::init()
b = 0;
postDuration = 20;
postCounter = 0;
numSquaresWidth = param->fade.numSquaresWidth;
numSquaresHeight = param->fade.numSquaresHeight;
fadeRandomSquaresDelay = param->fade.randomSquaresDelay;
fadeRandomSquaresMult = param->fade.randomSquaresMult;
numSquaresWidth = param.fade.numSquaresWidth;
numSquaresHeight = param.fade.numSquaresHeight;
fadeRandomSquaresDelay = param.fade.randomSquaresDelay;
fadeRandomSquaresMult = param.fade.randomSquaresMult;
}
// Resetea algunas variables para volver a hacer el fade sin perder ciertos parametros
@@ -97,7 +97,7 @@ void Fade::update()
for (int i = 0; i < counter; i++)
{
rect1.h = rect2.h = i * 4;
rect2.y = param->game.height - (i * 4);
rect2.y = param.game.height - (i * 4);
SDL_RenderFillRect(renderer, &rect1);
SDL_RenderFillRect(renderer, &rect2);
@@ -107,7 +107,7 @@ void Fade::update()
SDL_SetRenderTarget(renderer, temp);
// Comprueba si ha terminado
if ((counter * 4) > param->game.height)
if ((counter * 4) > param.game.height)
{
finished = true;
a = 255;
@@ -152,7 +152,7 @@ void Fade::update()
case FADE_VENETIAN:
{
// Counter debe ir de 0 a 150
if (square.back().h < param->fade.venetianSize)
if (square.back().h < param.fade.venetianSize)
{
// Dibuja sobre el backbuffer
SDL_Texture *temp = SDL_GetRenderTarget(renderer);
@@ -221,15 +221,15 @@ void Fade::activate()
case FADE_CENTER:
{
rect1 = {0, 0, param->game.width, 0};
rect2 = {0, 0, param->game.width, 0};
rect1 = {0, 0, param.game.width, 0};
rect2 = {0, 0, param.game.width, 0};
a = 64;
break;
}
case FADE_RANDOM_SQUARE:
{
rect1 = {0, 0, param->game.width / numSquaresWidth, param->game.height / numSquaresHeight};
rect1 = {0, 0, param.game.width / numSquaresWidth, param.game.height / numSquaresHeight};
square.clear();
// Añade los cuadrados al vector
@@ -267,16 +267,16 @@ void Fade::activate()
case FADE_VENETIAN:
{
rect1 = {0, 0, param->game.width, 0};
rect1 = {0, 0, param.game.width, 0};
square.clear();
a = 255;
// Añade los cuadrados al vector
const int max = param->game.height / param->fade.venetianSize;
const int max = param.game.height / param.fade.venetianSize;
for (int i = 0; i < max; ++i)
{
rect1.y = i * param->fade.venetianSize;
rect1.y = i * param.fade.venetianSize;
square.push_back(rect1);
}