establir la posicio i habitacio inicial de debug desde la consola

This commit is contained in:
2026-03-28 20:36:56 +01:00
parent 268763f162
commit 7483bf63c8
4 changed files with 48 additions and 0 deletions

View File

@@ -75,6 +75,26 @@ Game::Game(Mode mode)
scoreboard_data_->music = !Debug::get()->isEnabled();
scoreboard_data_->music ? Audio::get()->resumeMusic() : Audio::get()->pauseMusic();
};
GameControl::set_initial_room = [this]() -> std::string {
auto ss = Debug::get()->getSpawnSettings();
ss.room = current_room_;
Debug::get()->setSpawnSettings(ss);
Debug::get()->saveToFile();
const std::string ROOM_NUM = ss.room.substr(0, ss.room.find('.'));
return "Room:" + ROOM_NUM;
};
GameControl::set_initial_pos = [this]() -> std::string {
auto rect = player_->getRect();
int tile_x = static_cast<int>((rect.x + (rect.w / 2.0F)) / Tile::SIZE);
int tile_y = static_cast<int>(rect.y / Tile::SIZE);
auto ss = Debug::get()->getSpawnSettings();
ss.spawn_x = tile_x * Tile::SIZE;
ss.spawn_y = tile_y * Tile::SIZE;
ss.flip = player_->getSpawnParams().flip;
Debug::get()->setSpawnSettings(ss);
Debug::get()->saveToFile();
return "Pos:" + std::to_string(tile_x) + "," + std::to_string(tile_y);
};
#endif
SceneManager::current = (mode_ == Mode::GAME) ? SceneManager::Scene::GAME : SceneManager::Scene::DEMO;
@@ -88,6 +108,8 @@ Game::~Game() {
GameControl::change_room = nullptr;
GameControl::refresh_player_color = nullptr;
GameControl::toggle_debug_mode = nullptr;
GameControl::set_initial_room = nullptr;
GameControl::set_initial_pos = nullptr;
#endif
}