diff --git a/Userland/Games/Hearts/Game.cpp b/Userland/Games/Hearts/Game.cpp index 6d9c2dc781c..d51a418c925 100644 --- a/Userland/Games/Hearts/Game.cpp +++ b/Userland/Games/Hearts/Game.cpp @@ -122,11 +122,7 @@ void Game::setup(String player_name) player.hand.append(card); } player.sort_hand(); - auto card_position = player.first_card_position; - for (auto& card : player.hand) { - card->set_position(card_position); - card_position.translate_by(player.card_offset); - } + reposition_hand(player); } advance_game(); @@ -519,6 +515,15 @@ bool Game::is_winner(Player& player) return (max_score.value() != sum_points_of_all_cards && player_score == min_score.value()) || player_score == sum_points_of_all_cards; } +void Game::reposition_hand(Player& player) +{ + auto card_position = player.first_card_position; + for (auto& card : player.hand) { + card->set_position(card_position); + card_position.translate_by(player.card_offset); + } +} + void Game::paint_event(GUI::PaintEvent& event) { GUI::Frame::paint_event(event); diff --git a/Userland/Games/Hearts/Game.h b/Userland/Games/Hearts/Game.h index 414479b37bc..4be336b4b0e 100644 --- a/Userland/Games/Hearts/Game.h +++ b/Userland/Games/Hearts/Game.h @@ -49,6 +49,8 @@ private: bool other_player_has_lower_value_card(Player& player, Card& card); bool other_player_has_higher_value_card(Player& player, Card& card); + void reposition_hand(Player& player); + void start_animation(NonnullRefPtrVector cards, Gfx::IntPoint const& end, Function did_finish_callback, int initial_delay_ms, int steps = 30); void stop_animation();