diff --git a/Userland/Games/BrickGame/BrickGame.cpp b/Userland/Games/BrickGame/BrickGame.cpp index 754a687c7d..630579ccc2 100644 --- a/Userland/Games/BrickGame/BrickGame.cpp +++ b/Userland/Games/BrickGame/BrickGame.cpp @@ -477,6 +477,11 @@ void BrickGame::set_show_shadow_hint(bool should_show) repaint(); } +bool BrickGame::show_shadow_hint() +{ + return m_show_shadow_hint; +} + void BrickGame::timer_event(Core::TimerEvent&) { switch (m_brick_game->state()) { diff --git a/Userland/Games/BrickGame/BrickGame.h b/Userland/Games/BrickGame/BrickGame.h index b898db6028..de62080da1 100644 --- a/Userland/Games/BrickGame/BrickGame.h +++ b/Userland/Games/BrickGame/BrickGame.h @@ -27,6 +27,7 @@ public: void reset(); void toggle_pause(); void set_show_shadow_hint(bool); + bool show_shadow_hint(); private: BrickGame(StringView app_name); diff --git a/Userland/Games/BrickGame/main.cpp b/Userland/Games/BrickGame/main.cpp index 47284fcaa7..ad28031319 100644 --- a/Userland/Games/BrickGame/main.cpp +++ b/Userland/Games/BrickGame/main.cpp @@ -59,10 +59,14 @@ ErrorOr serenity_main(Main::Arguments arguments) TRY(game_menu->try_add_action(GUI::Action::create("Toggle &Pause", { Mod_None, Key_P }, [&](auto&) { game->toggle_pause(); }))); - auto show_shadow_piece_action = TRY(GUI::Action::try_create_checkable("&Show Shadow Piece", GUI::Shortcut {}, [&](auto& action) { + + auto show_shadow_piece_action = TRY(GUI::Action::try_create_checkable("Show Shadow Piece", GUI::Shortcut {}, [&](auto& action) { game->set_show_shadow_hint(action.is_checked()); + Config::write_bool(app_name, app_name, "ShowShadowPiece"sv, action.is_checked()); })); - show_shadow_piece_action->set_checked(true); + game->set_show_shadow_hint(Config::read_bool(app_name, app_name, "ShowShadowPiece"sv, true)); + show_shadow_piece_action->set_checked(game->show_shadow_hint()); + TRY(game_menu->try_add_action(show_shadow_piece_action)); TRY(game_menu->try_add_separator()); TRY(game_menu->try_add_action(GUI::CommonActions::make_quit_action([](auto&) {