Solventat bug amb el punter a ScoreboardData

This commit is contained in:
2025-02-27 14:17:00 +01:00
parent c6474cb2da
commit 0cec9f8556
20 changed files with 246 additions and 223 deletions

View File

@@ -398,12 +398,12 @@ bool setItem(ItemData *item, const std::string &key, const std::string &value)
}
// Constructor
Room::Room(std::shared_ptr<RoomData> room, int *itemsPicked, bool jail_is_open)
Room::Room(std::shared_ptr<RoomData> room, std::shared_ptr<ScoreboardData> data)
: screen_(Screen::get()),
renderer_(Screen::get()->getRenderer()),
asset_(Asset::get()),
debug_(Debug::get()),
items_picked_(itemsPicked)
data_(data)
{
number_ = room->number;
name_ = room->name;
@@ -420,7 +420,6 @@ Room::Room(std::shared_ptr<RoomData> room, int *itemsPicked, bool jail_is_open)
auto_surface_direction_ = room->auto_surface_direction;
tile_map_ = Resource::get()->getTileMap(room->tile_map_file);
texture_ = (options.video.palette == Palette::ZXSPECTRUM) ? Resource::get()->getTexture(room->tile_set_file) : Resource::get()->getTexture(room->tile_set_file);
jail_is_open_ = jail_is_open;
// Inicializa variables
tile_set_width_ = texture_->getWidth() / TILE_SIZE_;
@@ -447,10 +446,10 @@ Room::Room(std::shared_ptr<RoomData> room, int *itemsPicked, bool jail_is_open)
}
// Carga los sonidos
item_sound_ = JA_LoadSound(asset_->get("item.wav").c_str());
item_sound_ = Resource::get()->getSound("item.wav");
// Abre la jail para poder entrar
if (jail_is_open)
if (data_->jail_is_open)
{
openTheJail();
}
@@ -802,8 +801,8 @@ bool Room::itemCollision(SDL_Rect &rect)
ItemTracker::get()->addItem(name_, items_[i]->getPos());
items_.erase(items_.begin() + i);
JA_PlaySound(item_sound_);
*items_picked_ = *items_picked_ + 1;
options.stats.items = *items_picked_;
data_->items++;
options.stats.items = data_->items;
return true;
}
}