/* event loop */
int mode = 0;
int stop = 0;
- int player = 0;
+ int player = board->turn;
while (!stop) {
char msg[128] = {0};
char *ptr = NULL;
case 's':
savename = savewindow (savelen, xsave, ysave);
if (savename != NULL) {
+ board->turn = player;
ptr = saveboard (board);
if (writedata (savename, ptr)) {
VERBOSE (WARNING, printf ("issue writing Board\n"));
board->ysize = board->height = height;
board->xoffset = 0;
board->yoffset = 0;
+ board->turn = 0;
return board;
}
char *saveboard (board_t *board)
{
- int size = 2 * (8 + 3) + 8 + board->width * board->height + 1;
+ int size = 3 * (8 + 3) + 8 + board->width * board->height + 1;
VERBOSE (INFO, size += board->height * (8 + board->width));
char *buffer = (char *) calloc (size, 1);
int l = sprintf (buffer, "width: %d\n", board->width);
l += sprintf (buffer + l, "height: %d\n", board->height);
l += sprintf (buffer + l, "tab: \"%s\"\n", board->tab);
+ l += sprintf (buffer + l, "turn: %d\n", board->turn);
VERBOSE (INFO, _makecomments (buffer + l, board));
int width = 0;
int height = 0;
char *tab = NULL;
+ char turn = 0;
char *saveptr1, *saveptr2;
height = atoi (value);
} else if (strcmp (keyword, "tab") == 0) {
tab = atos (value);
+ } else if (strcmp (keyword, "turn") == 0) {
+ turn = atoi (value);
} else if (strcmp (keyword, "rem") == 0) {
/* nothing to do with remark */
} else {
if ((tab) && (strlen (tab) == (size_t)(width * height))) {
board = initboard (width, height);
memcpy (board->tab, tab, width * height);
+ board->turn = turn;
}
return board;