1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 22:07:35 +00:00

LibCards+Games: Make CardGame::add_stack() fallible

And while we're at it, handle the CardStack allocation (and failure
thereof) internally.
This commit is contained in:
Sam Atkins 2023-01-05 17:24:27 +00:00 committed by Linus Groh
parent 08ff87b3ce
commit d7ba577c90
4 changed files with 24 additions and 23 deletions

View file

@ -28,7 +28,13 @@ public:
NonnullRefPtrVector<CardStack>& stacks() { return m_stacks; }
NonnullRefPtrVector<CardStack> const& stacks() const { return m_stacks; }
CardStack& stack_at_location(int location) { return m_stacks[location]; }
void add_stack(NonnullRefPtr<CardStack>);
template<class... Args>
ErrorOr<void> add_stack(Args&&... args)
{
auto stack = TRY(try_make_ref_counted<CardStack>(forward<Args>(args)...));
return m_stacks.try_append(move(stack));
}
void mark_intersecting_stacks_dirty(Card const& intersecting_card);
bool is_moving_cards() const { return !m_moving_cards.is_empty(); }