-#ifndef SOLITAIRE_INCLUDED
-#define SOLITAIRE_INCLUDED
+#pragma once
extern CardWindow SolWnd;
extern TCHAR szAppName[];
extern bool fGameStarted;
-#define OPTION_SHOW_STATUS 4
-#define OPTION_THREE_CARDS 8
-#define CARDBACK_START IDC_CARDBACK1
-#define CARDBACK_END IDC_CARDBACK4
-#define NUM_CARDBACKS (CARDBACK_END - CARDBACK_START + 1)
-#define CARDBACK_RES_START 53
+#define OPTION_SHOW_STATUS 4
+#define OPTION_THREE_CARDS 8
+#define CARDBACK_START IDC_CARDBACK1
+#define CARDBACK_END IDC_CARDBACK12
+#define NUM_CARDBACKS (CARDBACK_END - CARDBACK_START + 1)
+#define CARDBACK_RES_START 53
+/* Display option cards with half the size */
+#define CARDBACK_OPTIONS_WIDTH 36
+#define CARDBACK_OPTIONS_HEIGHT 48
extern DWORD dwOptions;
-void CreateSol();
+void CreateSol(void);
void NewGame(void);
#define NUM_ROW_STACKS 7
#define X_SUITSTACK_BORDER 10
#define Y_BORDER 20
#define Y_ROWSTACK_BORDER 32
-#define Y_ROWSTACK_CARDOFFSET 14
+extern int yRowStackCardOffset;
extern CardRegion *pDeck;
extern CardRegion *pPile;
bool CARDLIBPROC RowStackDragProc(CardRegion &stackobj, int iNumCards);
-bool CARDLIBPROC RowStackDropProc(CardRegion &stackobj, const CardStack &dragcards);
+bool CARDLIBPROC RowStackDropProc(CardRegion &stackobj, CardStack &dragcards);
-bool CARDLIBPROC SuitStackDropProc(CardRegion &stackobj, const CardStack &dragcards);
+bool CARDLIBPROC SuitStackDropProc(CardRegion &stackobj, CardStack &dragcards);
void CARDLIBPROC SuitStackAddProc(CardRegion &stackobj, const CardStack &added);
void CARDLIBPROC RowStackClickProc(CardRegion &stackobj, int iNumClicked);
void CARDLIBPROC PileDblClickProc(CardRegion &stackobj, int iNumClicked);
void CARDLIBPROC PileRemoveProc(CardRegion &stackobj, int iRemoved);
-
-#endif