From 9b1b68aa50bdaf2ef85d494731254a8318bcb780 Mon Sep 17 00:00:00 2001 From: Ian C Date: Thu, 28 Mar 2019 08:53:30 +0000 Subject: Fixed bug where the draw pile was being inverted when reset. --- klondike.c | 2 +- pile.c | 8 ++++++++ pile.h | 1 + 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/klondike.c b/klondike.c index b71be07..153cb03 100644 --- a/klondike.c +++ b/klondike.c @@ -279,7 +279,7 @@ int Klondike(int draw, int thoughtful) } else { - SwapPile(&pile, &turned); + MovePile(&turned, &pile); } break; diff --git a/pile.c b/pile.c index 793cc7c..fa9ba46 100644 --- a/pile.c +++ b/pile.c @@ -132,6 +132,14 @@ void SwapPile(Pile *a, Pile *b) *b = t; } +void MovePile(Pile *from, Pile *to) +{ + while(from->no) + { + MoveTopCard(from, to); + } +} + void FreePile(Pile *p) { if (p->card) diff --git a/pile.h b/pile.h index c3cfc16..d63b32e 100644 --- a/pile.h +++ b/pile.h @@ -41,6 +41,7 @@ Card PopPile(Pile *pile); Card TopOfPile(Pile *pile); void MoveTopCard(Pile *from, Pile *to); void SwapPile(Pile *a, Pile *b); +void MovePile(Pile *from, Pile *to); void FreePile(Pile *p); #endif -- cgit v1.2.3