From 1a960a48298c0eb3832704bbd5bb72023d2873a0 Mon Sep 17 00:00:00 2001 From: simon Date: Thu, 2 Feb 2012 07:13:17 +0000 Subject: [PATCH] Fixed decoding bug for dual grids git-svn-id: svn://svn.tartarus.org/sgt/puzzles@9398 cda61777-01e9-0310-a592-d414129be87e --- loopy.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/loopy.c b/loopy.c index 45f0a4a..2173dcd 100644 --- a/loopy.c +++ b/loopy.c @@ -557,6 +557,7 @@ static void free_params(game_params *params) static void decode_params(game_params *params, char const *string) { + debug(("Decoding params '%s'\n",string)); params->h = params->w = atoi(string); params->diff = DIFF_EASY; params->dual = 0; @@ -566,15 +567,15 @@ static void decode_params(game_params *params, char const *string) params->h = atoi(string); while (*string && isdigit((unsigned char)*string)) string++; } - if (*string == 'l') { - string++; - params->dual = 1; - } if (*string == 't') { string++; params->type = atoi(string); while (*string && isdigit((unsigned char)*string)) string++; } + if (*string == 'l') { + string++; + params->dual = 1; + } if (*string == 'd') { int i; string++; @@ -592,6 +593,7 @@ static char *encode_params(game_params *params, int full) params->dual ? "l" : ""); if (full) sprintf(str + strlen(str), "d%c", diffchars[params->diff]); + debug(("Encoded to '%s'\n",str)); return dupstr(str); } @@ -746,6 +748,9 @@ static char *validate_desc(game_params *params, char *desc) g = loopy_generate_grid(params, grid_desc); if (grid_desc) sfree(grid_desc); + debug(("Validating '%s' type %d %dx%d dual: %d\n", + desc, params->type, params->w, params->h, params->dual)); + for (; *desc; ++desc) { if ((*desc >= '0' && *desc <= '9') || (*desc >= 'A' && *desc <= 'Z')) { count++; -- 2.11.0