diff options
author | June McEnroe <june@causal.agency> | 2020-03-31 21:23:24 -0400 |
---|---|---|
committer | June McEnroe <june@causal.agency> | 2020-03-31 21:23:24 -0400 |
commit | 6d04f4616163412f2c2d1a936986c77e920b5f06 (patch) | |
tree | 8edf7b87a00dabaacdc0913c64f1e9ac6e659cde | |
parent | Add 'cards/' from commit 'daf6fd1d716aad3c03b6dadbbd7a4b724acbfece' (diff) | |
download | wep-6d04f4616163412f2c2d1a936986c77e920b5f06.tar.gz wep-6d04f4616163412f2c2d1a936986c77e920b5f06.zip |
Allow choosing freecell game on command line
-rw-r--r-- | freecell.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/freecell.c b/freecell.c index 3f1ec8d..06276d3 100644 --- a/freecell.c +++ b/freecell.c @@ -341,8 +341,8 @@ static enum Choice chooseMove(void) { return choice; } -static void newGame(void) { - uint game = 1 + randUniform(32000); +static void newGame(uint game) { + if (!game) game = 1 + randUniform(32000); deal(game); char buf[sizeof("FreeCell Game #32000")]; snprintf(buf, sizeof(buf), "FreeCell Game #%u", game); @@ -355,7 +355,7 @@ static uint fromStack = StacksLen; static bool keyDown(SDL_KeyboardEvent key) { switch (key.keysym.sym) { - case SDLK_F2: newGame(); return true; + case SDLK_F2: newGame(0); return true; case SDLK_BACKSPACE: return undo(); } if (key.repeat) return false; @@ -399,7 +399,7 @@ static bool mouseButtonDown(SDL_MouseButtonEvent button) { static bool mouseButtonUp(SDL_MouseButtonEvent button) { if (win() && playAgain()) { - newGame(); + newGame(0); return true; } @@ -524,7 +524,7 @@ static void renderStacks(void) { } } -int main(void) { +int main(int argc, char *argv[]) { int error; if (SDL_Init(SDL_INIT_VIDEO) < 0) err("SDL_Init"); @@ -592,7 +592,7 @@ int main(void) { } srand(time(NULL)); - newGame(); + newGame(argc > 1 ? strtoul(argv[1], NULL, 10) : 0); initRects(); for (;;) { |