fix: en lazy load, al eixir havia cridades a singletons morts

This commit is contained in:
2026-04-07 17:50:00 +02:00
parent 144fc380d0
commit 70efb39b88

View File

@@ -71,13 +71,15 @@ Game::Game(Mode mode)
game_backbuffer_surface_ = std::make_shared<Surface>(Options::game.width, Options::game.height); game_backbuffer_surface_ = std::make_shared<Surface>(Options::game.width, Options::game.height);
changeRoom(current_room_); changeRoom(current_room_);
if (Console::get() != nullptr) {
#ifdef _DEBUG #ifdef _DEBUG
Console::get()->setScope("debug"); Console::get()->setScope("debug");
#else #else
Console::get()->setScope("game"); Console::get()->setScope("game");
#endif #endif
Console::get()->on_toggle = [this](bool open) { player_->setIgnoreInput(open); }; Console::get()->on_toggle = [this](bool open) { player_->setIgnoreInput(open); };
if (Console::get()->isActive()) { player_->setIgnoreInput(true); } if (Console::get()->isActive()) { player_->setIgnoreInput(true); }
}
GameControl::change_player_skin = [this](const std::string& skin_name) -> void { GameControl::change_player_skin = [this](const std::string& skin_name) -> void {
Options::game.player_skin = skin_name; Options::game.player_skin = skin_name;
player_->setSkin(skin_name); player_->setSkin(skin_name);
@@ -172,7 +174,7 @@ Game::~Game() {
GameControl::change_player_skin = nullptr; GameControl::change_player_skin = nullptr;
GameControl::change_player_color = nullptr; GameControl::change_player_color = nullptr;
Console::get()->on_toggle = nullptr; if (Console::get() != nullptr) { Console::get()->on_toggle = nullptr; }
#ifdef _DEBUG #ifdef _DEBUG
GameControl::change_room = nullptr; GameControl::change_room = nullptr;
@@ -181,7 +183,7 @@ Game::~Game() {
GameControl::toggle_debug_mode = nullptr; GameControl::toggle_debug_mode = nullptr;
GameControl::set_initial_room = nullptr; GameControl::set_initial_room = nullptr;
GameControl::set_initial_pos = nullptr; GameControl::set_initial_pos = nullptr;
if (MapEditor::get()->isActive()) { MapEditor::get()->exit(); } if (MapEditor::get() != nullptr && MapEditor::get()->isActive()) { MapEditor::get()->exit(); }
GameControl::enter_editor = nullptr; GameControl::enter_editor = nullptr;
GameControl::exit_editor = nullptr; GameControl::exit_editor = nullptr;
GameControl::revert_editor = nullptr; GameControl::revert_editor = nullptr;