JA VA! Nomes s'havia de fer les coses be i no ser un ansias

This commit is contained in:
2025-02-22 00:30:32 +01:00
parent f6098a479b
commit e361d295c1
39 changed files with 1053 additions and 1098 deletions

View File

@@ -14,6 +14,7 @@
#include "screen.h" // Para Screen
#include "sprite.h" // Para Sprite
#include "texture.h" // Para Texture
#include "options.h"
// Carga las variables y texturas desde un fichero de mapa de tiles
std::vector<int> loadRoomTileFile(std::string file_path, bool verbose)
@@ -403,7 +404,7 @@ bool setItem(item_t *item, std::string var, std::string value)
}
// Constructor
Room::Room(room_t *room, SDL_Renderer *renderer, Screen *screen, Asset *asset, options_t *options, ItemTracker *itemTracker, int *itemsPicked, bool jailEnabled, Debug *debug)
Room::Room(room_t *room, SDL_Renderer *renderer, Screen *screen, Asset *asset, ItemTracker *itemTracker, int *itemsPicked, bool jailEnabled, Debug *debug)
{
// Copia los punteros a objetos
this->renderer = renderer;
@@ -412,7 +413,6 @@ Room::Room(room_t *room, SDL_Renderer *renderer, Screen *screen, Asset *asset, o
this->itemTracker = itemTracker;
this->itemsPicked = itemsPicked;
this->debug = debug;
this->options = options;
number = room->number;
name = room->name;
@@ -430,7 +430,7 @@ Room::Room(room_t *room, SDL_Renderer *renderer, Screen *screen, Asset *asset, o
textureA = room->textureA;
textureB = room->textureB;
tileMap = *room->tileMap;
texture = (options->palette == p_zxspectrum) ? textureA : textureB;
texture = (options.palette == p_zxspectrum) ? textureA : textureB;
this->jailEnabled = jailEnabled;
// Inicializa variables
@@ -445,7 +445,7 @@ Room::Room(room_t *room, SDL_Renderer *renderer, Screen *screen, Asset *asset, o
for (auto &enemy : room->enemies)
{
enemy.renderer = renderer;
enemy.palette = options->palette;
enemy.palette = options.palette;
enemies.push_back(new Enemy(enemy));
}
@@ -457,8 +457,8 @@ Room::Room(room_t *room, SDL_Renderer *renderer, Screen *screen, Asset *asset, o
if (!itemTracker->hasBeenPicked(room->name, itemPos))
{
item.renderer = renderer;
item.color1 = stringToColor(options->palette, itemColor1);
item.color2 = stringToColor(options->palette, itemColor2);
item.color1 = stringToColor(options.palette, itemColor1);
item.color2 = stringToColor(options.palette, itemColor2);
items.push_back(new Item(item));
}
}
@@ -488,7 +488,7 @@ Room::Room(room_t *room, SDL_Renderer *renderer, Screen *screen, Asset *asset, o
mapTexture = SDL_CreateTexture(renderer, SDL_PIXELFORMAT_RGBA8888, SDL_TEXTUREACCESS_TARGET, PLAY_AREA_WIDTH, PLAY_AREA_HEIGHT);
if (mapTexture == nullptr)
{
if (options->console)
if (options.console)
{
std::cout << "Error: mapTexture could not be created!\nSDL Error: " << SDL_GetError() << std::endl;
}
@@ -499,7 +499,7 @@ Room::Room(room_t *room, SDL_Renderer *renderer, Screen *screen, Asset *asset, o
fillMapTexture();
// Establece el color del borde
screen->setBorderColor(stringToColor(options->palette, room->borderColor));
screen->setBorderColor(stringToColor(options.palette, room->borderColor));
}
// Destructor
@@ -534,19 +534,19 @@ std::string Room::getName()
// Devuelve el color de la habitación
color_t Room::getBGColor()
{
return stringToColor(options->palette, bgColor);
return stringToColor(options.palette, bgColor);
}
// Devuelve el color del borde
color_t Room::getBorderColor()
{
return stringToColor(options->palette, borderColor);
return stringToColor(options.palette, borderColor);
}
// Crea la textura con el mapeado de la habitación
void Room::fillMapTexture()
{
const color_t color = stringToColor(options->palette, bgColor);
const color_t color = stringToColor(options.palette, bgColor);
SDL_SetRenderTarget(renderer, mapTexture);
SDL_SetRenderDrawColor(renderer, color.r, color.g, color.b, 0xFF);
SDL_RenderClear(renderer);
@@ -841,7 +841,7 @@ bool Room::itemCollision(SDL_Rect &rect)
items.erase(items.begin() + i);
JA_PlaySound(itemSound);
*itemsPicked = *itemsPicked + 1;
options->stats.items = *itemsPicked;
options.stats.items = *itemsPicked;
return true;
}
}
@@ -872,20 +872,20 @@ void Room::reLoadPalette()
// Cambia el color de los items
for (auto item : items)
{
item->setColors(stringToColor(options->palette, itemColor1), stringToColor(options->palette, itemColor2));
item->setColors(stringToColor(options.palette, itemColor1), stringToColor(options.palette, itemColor2));
}
// Cambia el color de los enemigos
for (auto enemy : enemies)
{
enemy->setPalette(options->palette);
enemy->setPalette(options.palette);
}
// Establece el color del borde
screen->setBorderColor(stringToColor(options->palette, borderColor));
screen->setBorderColor(stringToColor(options.palette, borderColor));
// Cambia la textura
texture = (options->palette == p_zxspectrum) ? textureA : textureB;
texture = (options.palette == p_zxspectrum) ? textureA : textureB;
// Pone la nueva textura a los tiles animados
for (auto tile : aTile)