*** _solution.c Thu Nov 27 15:44:26 2003 --- solution.c Fri Jun 18 14:32:19 2004 *************** *** 418,424 **** /* Locate the solution file for the given data file and open it. */ ! static int opensolutionfile(fileinfo *file, char const *datname, int readonly) { char *buf = NULL; char const *filename; --- 418,424 ---- /* Locate the solution file for the given data file and open it. */ ! static int opensolutionfile(fileinfo *file, char const *datname, int ruleset, int readonly) { char *buf = NULL; char const *filename; *************** *** 432,440 **** && tolower(datname[n - 2]) == 'a' && tolower(datname[n - 1]) == 't') n -= 4; ! xalloc(buf, n + 5); memcpy(buf, datname, n); ! memcpy(buf + n, ".tws", 5); filename = buf; } n = openfileindir(file, savedir, filename, --- 432,443 ---- && tolower(datname[n - 2]) == 'a' && tolower(datname[n - 1]) == 't') n -= 4; ! xalloc(buf, n + 7); memcpy(buf, datname, n); ! memcpy(buf + n, "-m.tws", 7); ! /* Add ruleset specifier */ ! if(ruleset == Ruleset_Lynx) ! buf[n + 1] = 'l'; filename = buf; } n = openfileindir(file, savedir, filename, *************** *** 455,462 **** int i, j; if (!savedir || !*savedir ! || !opensolutionfile(&series->solutionfile, ! series->filebase, TRUE)) { series->solutionflags = series->ruleset; return TRUE; } --- 458,465 ---- int i, j; if (!savedir || !*savedir ! || !opensolutionfile(&series->solutionfile, series->filebase, ! series->ruleset, TRUE)) { series->solutionflags = series->ruleset; return TRUE; } *************** *** 522,529 **** } if (series->solutionfile.fp) fileclose(&series->solutionfile, NULL); ! if (!opensolutionfile(&series->solutionfile, ! series->filebase, FALSE)) { *savedir = '\0'; return FALSE; } --- 525,532 ---- } if (series->solutionfile.fp) fileclose(&series->solutionfile, NULL); ! if (!opensolutionfile(&series->solutionfile, series->filebase, ! series->ruleset, FALSE)) { *savedir = '\0'; return FALSE; } *** _tworld.c Sat Mar 15 11:59:07 2003 --- tworld.c Fri Jun 18 14:27:30 2004 *************** *** 294,299 **** --- 294,301 ---- case CmdProceed: *move = CmdProceed; return FALSE; case CmdQuitLevel: *move = CmdQuitLevel; return FALSE; case CmdHelp: *move = CmdHelp; return FALSE; + case CmdEast: *move = CmdEast; return FALSE; + case CmdWest: *move = CmdWest; return FALSE; case CmdQuit: exit(0); } *************** *** 931,936 **** --- 933,948 ---- } else if (f == CmdQuitLevel) { okay = FALSE; break; + } else if (f == CmdEast) { + getseriesfromlist(&gs->series, series->list, n); + gs->series.ruleset = Ruleset_Lynx; + okay = TRUE; + break; + } else if (f == CmdWest) { + getseriesfromlist(&gs->series, series->list, n); + gs->series.ruleset = Ruleset_MS; + okay = TRUE; + break; } } }