arogue5: add the savedir feature.
This commit is contained in:
parent
14fad3b319
commit
38a8534eb5
5 changed files with 40 additions and 4 deletions
|
|
@ -57,10 +57,29 @@ char **envp;
|
|||
|
||||
strncpy(home,md_gethomedir(),LINELEN);
|
||||
|
||||
#ifdef SAVEDIR
|
||||
if (argc >= 3 && !strcmp(argv[1], "-n")) {
|
||||
use_savedir = TRUE;
|
||||
strncpy(whoami, argv[2], LINELEN);
|
||||
whoami[LINELEN - 1] = '\0';
|
||||
if (snprintf(file_name, LINELEN, "%s%d-%.10s.ar5sav", SAVEDIR,
|
||||
md_getuid(), whoami) >= LINELEN)
|
||||
{
|
||||
/* The name is too long */
|
||||
use_savedir = FALSE;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
/* Get default save file */
|
||||
strcpy(file_name, home);
|
||||
strcat(file_name, "arogue58.sav");
|
||||
if (!use_savedir) {
|
||||
strcpy(file_name, home);
|
||||
strcat(file_name, "arogue58.sav");
|
||||
}
|
||||
|
||||
#ifdef SCOREFILE
|
||||
strncpy(score_file, SCOREFILE, LINELEN);
|
||||
score_file[LINELEN - 1] = '\0';
|
||||
#else
|
||||
/* Get default score file */
|
||||
strcpy(score_file, roguedir);
|
||||
|
||||
|
|
@ -68,6 +87,7 @@ char **envp;
|
|||
strcat(score_file,"/");
|
||||
|
||||
strcat(score_file, "arogue58.scr");
|
||||
#endif
|
||||
|
||||
if ((env = getenv("ROGUEOPTS")) != NULL)
|
||||
parse_opts(env);
|
||||
|
|
@ -139,7 +159,15 @@ char **envp;
|
|||
exit(1);
|
||||
}
|
||||
#endif
|
||||
if (argc == 2)
|
||||
if (use_savedir)
|
||||
{
|
||||
/* Try to restore from file_name first. */
|
||||
if (!restore(file_name, envp))
|
||||
exit(1);
|
||||
/* If restore() returns true, there is no such saved game.
|
||||
So start a new one. */
|
||||
}
|
||||
else if (argc == 2)
|
||||
if (!restore(argv[1], envp)) /* Note: restore will never return */
|
||||
exit(1);
|
||||
lowtime = (int) time(&now);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue