Renombradas las variables de param_t

This commit is contained in:
2024-09-03 13:59:07 +02:00
parent fa76520c6d
commit 2a303deff1
14 changed files with 179 additions and 166 deletions

View File

@@ -17,15 +17,15 @@ Instructions::Instructions(Screen *screen, Asset *asset, Input *input, Lang *lan
// Crea objetos
eventHandler = new SDL_Event();
text = new Text(asset->get("smb2.gif"), asset->get("smb2.txt"), renderer);
tiledbg = new Tiledbg(renderer, asset, {0, 0, param->gameWidth, param->gameHeight}, TILED_MODE_STATIC);
tiledbg = new Tiledbg(renderer, asset, {0, 0, param->game.width, param->game.height}, TILED_MODE_STATIC);
fade = new Fade(renderer, param);
// Crea un backbuffer para el renderizador
backbuffer = SDL_CreateTexture(renderer, SDL_PIXELFORMAT_RGBA8888, SDL_TEXTUREACCESS_TARGET, param->gameWidth, param->gameHeight);
backbuffer = SDL_CreateTexture(renderer, SDL_PIXELFORMAT_RGBA8888, SDL_TEXTUREACCESS_TARGET, param->game.width, param->game.height);
SDL_SetTextureBlendMode(backbuffer, SDL_BLENDMODE_BLEND);
// Crea una textura para el texto fijo
texture = SDL_CreateTexture(renderer, SDL_PIXELFORMAT_RGBA8888, SDL_TEXTUREACCESS_TARGET, param->gameWidth, param->gameHeight);
texture = SDL_CreateTexture(renderer, SDL_PIXELFORMAT_RGBA8888, SDL_TEXTUREACCESS_TARGET, param->game.width, param->game.height);
SDL_SetTextureBlendMode(texture, SDL_BLENDMODE_BLEND);
// Inicializa variables
@@ -34,14 +34,14 @@ Instructions::Instructions(Screen *screen, Asset *asset, Input *input, Lang *lan
ticksSpeed = 15;
counter = 0;
counterEnd = 700;
view = {0, 0, param->gameWidth, param->gameHeight};
view = {0, 0, param->game.width, param->game.height};
spritePos = {0, 0};
itemSpace = 2;
// Inicializa objetos
fade->setColor(fadeColor.r, fadeColor.g, fadeColor.b);
fade->setType(FADE_FULLSCREEN);
fade->setPost(param->fadePostDuration);
fade->setPost(param->fade.postDuration);
fade->setMode(FADE_IN);
fade->activate();
@@ -99,8 +99,8 @@ void Instructions::iniSprites()
// Inicializa los sprites
for (int i = 0; i < (int)itemTextures.size(); ++i)
{
Sprite *sprite = new Sprite(0, 0, param->itemSize, param->itemSize, itemTextures[i]);
sprite->setPos((SDL_Point){spritePos.x, spritePos.y + ((param->itemSize + itemSpace) * i)});
Sprite *sprite = new Sprite(0, 0, param->game.itemSize, param->game.itemSize, itemTextures[i]);
sprite->setPos((SDL_Point){spritePos.x, spritePos.y + ((param->game.itemSize + itemSpace) * i)});
sprites.push_back(sprite);
}
}
@@ -108,33 +108,33 @@ void Instructions::iniSprites()
// Actualiza los sprites
void Instructions::updateSprites()
{
SDL_Rect srcRect = {0, 0, param->itemSize, param->itemSize};
SDL_Rect srcRect = {0, 0, param->game.itemSize, param->game.itemSize};
// Disquito
srcRect.y = param->itemSize * (((counter + 12) / 36) % 2);
srcRect.y = param->game.itemSize * (((counter + 12) / 36) % 2);
sprites[0]->setSpriteClip(srcRect);
// Gavineixon
srcRect.y = param->itemSize * (((counter + 9) / 36) % 2);
srcRect.y = param->game.itemSize * (((counter + 9) / 36) % 2);
sprites[1]->setSpriteClip(srcRect);
// Pacmar
srcRect.y = param->itemSize * (((counter + 6) / 36) % 2);
srcRect.y = param->game.itemSize * (((counter + 6) / 36) % 2);
sprites[2]->setSpriteClip(srcRect);
// Time Stopper
srcRect.y = param->itemSize * (((counter + 3) / 36) % 2);
srcRect.y = param->game.itemSize * (((counter + 3) / 36) % 2);
sprites[3]->setSpriteClip(srcRect);
// Coffee
srcRect.y = param->itemSize * (((counter + 0) / 36) % 2);
srcRect.y = param->game.itemSize * (((counter + 0) / 36) % 2);
sprites[4]->setSpriteClip(srcRect);
}
// Rellena la textura de texto
void Instructions::fillTexture()
{
const int despX = param->itemSize + 8;
const int despX = param->game.itemSize + 8;
// Modifica el renderizador para pintar en la textura
SDL_Texture *temp = SDL_GetRenderTarget(renderer);
@@ -153,11 +153,11 @@ void Instructions::fillTexture()
const int spacePostHeader = 20;
const int spacePreHeader = 28;
const int spaceBetweenLines = text->getCharacterSize() * 1.5f;
const int spaceBetweenItemLines = param->itemSize + itemSpace;
const int spaceBetweenItemLines = param->game.itemSize + itemSpace;
const int spaceNewParagraph = spaceBetweenLines * 0.5f;
const int size = (numLines * spaceBetweenLines) + (numItemLines * spaceBetweenItemLines) + (numPostHeaders * spacePostHeader) + (numPreHeaders * spacePreHeader) + (spaceNewParagraph);
const int firstLine = (param->gameHeight - size) / 2;
const int firstLine = (param->game.height - size) / 2;
// Calcula cual es el texto más largo de las descripciones de los items
int lenght = 0;
@@ -166,7 +166,7 @@ void Instructions::fillTexture()
const int l = text->lenght(lang->getText(i));
lenght = l > lenght ? l : lenght;
}
const int anchorItem = (param->gameWidth - (lenght + despX)) / 2;
const int anchorItem = (param->game.width - (lenght + despX)) / 2;
// Escribe el texto de las instrucciones
text->writeDX(TXT_CENTER | TXT_COLOR | TXT_SHADOW, GAMECANVAS_CENTER_X, firstLine, lang->getText(11), 1, orangeColor, 1, shdwTxtColor);
@@ -182,7 +182,7 @@ void Instructions::fillTexture()
text->writeDX(TXT_CENTER | TXT_COLOR | TXT_SHADOW, GAMECANVAS_CENTER_X, anchor2, lang->getText(16), 1, orangeColor, 1, shdwTxtColor);
const int anchor3 = anchor2 + spacePostHeader;
// const int anchor4 = anchor3 + ((param->itemSize + text->getCharacterSize()) / 2);
// const int anchor4 = anchor3 + ((param->game.itemSize + text->getCharacterSize()) / 2);
text->writeShadowed(anchorItem + despX, anchor3 + spaceBetweenItemLines * 0, lang->getText(17), shdwTxtColor);
text->writeShadowed(anchorItem + despX, anchor3 + spaceBetweenItemLines * 1, lang->getText(18), shdwTxtColor);
text->writeShadowed(anchorItem + despX, anchor3 + spaceBetweenItemLines * 2, lang->getText(19), shdwTxtColor);
@@ -194,7 +194,7 @@ void Instructions::fillTexture()
// Da valor a la variable
spritePos.x = anchorItem;
spritePos.y = anchor3 - ((param->itemSize - text->getCharacterSize()) / 2);
spritePos.y = anchor3 - ((param->game.itemSize - text->getCharacterSize()) / 2);
}
// Rellena el backbuffer
@@ -274,7 +274,7 @@ void Instructions::render()
tiledbg->render();
// Establece la ventana del backbuffer
view.y = std::max(0, param->gameHeight - counter + 100);
view.y = std::max(0, param->game.height - counter + 100);
// Copia la textura y el backbuffer al renderizador
SDL_RenderCopy(renderer, backbuffer, nullptr, &view);