diff --git a/Userland/Libraries/LibCards/CardStack.cpp b/Userland/Libraries/LibCards/CardStack.cpp index ad01cc9736..b6e0348e4f 100644 --- a/Userland/Libraries/LibCards/CardStack.cpp +++ b/Userland/Libraries/LibCards/CardStack.cpp @@ -15,18 +15,8 @@ CardStack::CardStack() { } -CardStack::CardStack(Gfx::IntPoint const& position, Type type) - : m_position(position) - , m_type(type) - , m_rules(rules_for_type(type)) - , m_base(m_position, { Card::width, Card::height }) -{ - VERIFY(type != Type::Invalid); - calculate_bounding_box(); -} - -CardStack::CardStack(Gfx::IntPoint const& position, Type type, NonnullRefPtr associated_stack) - : m_associated_stack(move(associated_stack)) +CardStack::CardStack(Gfx::IntPoint const& position, Type type, RefPtr covered_stack) + : m_covered_stack(move(covered_stack)) , m_position(position) , m_type(type) , m_rules(rules_for_type(type)) @@ -49,7 +39,7 @@ void CardStack::paint(GUI::Painter& painter, Gfx::Color const& background_color) for (const auto& card : m_stack) number_of_moving_cards += card.is_moving(); - if (m_associated_stack && !m_associated_stack->is_empty()) + if (m_covered_stack && !m_covered_stack->is_empty()) return false; if (!is_empty() && (m_stack.size() != number_of_moving_cards)) return false; diff --git a/Userland/Libraries/LibCards/CardStack.h b/Userland/Libraries/LibCards/CardStack.h index 390ff2e850..9c96513f06 100644 --- a/Userland/Libraries/LibCards/CardStack.h +++ b/Userland/Libraries/LibCards/CardStack.h @@ -31,8 +31,7 @@ public: }; CardStack(); - CardStack(Gfx::IntPoint const& position, Type type); - CardStack(Gfx::IntPoint const& position, Type type, NonnullRefPtr associated_stack); + CardStack(Gfx::IntPoint const& position, Type type, RefPtr covered_stack = nullptr); bool is_empty() const { return m_stack.is_empty(); } bool is_focused() const { return m_focused; } @@ -83,7 +82,10 @@ private: void calculate_bounding_box(); - RefPtr m_associated_stack; + // An optional stack that this stack is painted on top of. + // eg, in Solitaire the Play stack is positioned over the Waste stack. + RefPtr m_covered_stack; + NonnullRefPtrVector m_stack; Vector m_stack_positions; Gfx::IntPoint m_position;