mirror of
git://git.tartarus.org/simon/puzzles.git
synced 2025-04-21 08:01:30 -07:00
Introduce routines in each game module to encode a set of game
parameters as a string, and decode it again. This is used in midend.c to prepend the game parameters to the game seed, so that copying out of the Specific box is sufficient to completely specify the game you were playing. Throughout development of these games I have referred to `seed' internally, and `game ID' externally. Now there's a measurable difference between them! :-) [originally from svn r4231]
This commit is contained in:
24
rect.c
24
rect.c
@ -34,6 +34,7 @@
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <assert.h>
|
||||
#include <ctype.h>
|
||||
#include <math.h>
|
||||
|
||||
#include "puzzles.h"
|
||||
@ -129,6 +130,29 @@ game_params *dup_params(game_params *params)
|
||||
return ret;
|
||||
}
|
||||
|
||||
game_params *decode_params(char const *string)
|
||||
{
|
||||
game_params *ret = default_params();
|
||||
|
||||
ret->w = ret->h = atoi(string);
|
||||
while (*string && isdigit(*string)) string++;
|
||||
if (*string == 'x') {
|
||||
string++;
|
||||
ret->h = atoi(string);
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
char *encode_params(game_params *params)
|
||||
{
|
||||
char data[256];
|
||||
|
||||
sprintf(data, "%dx%d", params->w, params->h);
|
||||
|
||||
return dupstr(data);
|
||||
}
|
||||
|
||||
config_item *game_configure(game_params *params)
|
||||
{
|
||||
config_item *ret;
|
||||
|
Reference in New Issue
Block a user