Mercurial > hg > early-roguelike
comparison urogue/save.c @ 261:ac42afd962e4
UltraRogue: restrict changing name and save file.
When the -n option is in use, player name and save file location cannot
be changed. The score file is also restricted.
| author | John "Elwin" Edwards |
|---|---|
| date | Sun, 12 Feb 2017 20:16:57 -0500 |
| parents | 096d3cfd9afd |
| children | 1db299e868b8 |
comparison
equal
deleted
inserted
replaced
| 260:b80e1bf4eaec | 261:ac42afd962e4 |
|---|---|
| 23 #include <string.h> | 23 #include <string.h> |
| 24 #include <ctype.h> | 24 #include <ctype.h> |
| 25 #include <errno.h> | 25 #include <errno.h> |
| 26 #include "rogue.h" | 26 #include "rogue.h" |
| 27 | 27 |
| 28 int save_savedir_game(void); | |
| 29 | |
| 28 int | 30 int |
| 29 save_game(void) | 31 save_game(void) |
| 30 { | 32 { |
| 31 FILE *savefd; | 33 FILE *savefd; |
| 32 char buf[2 * LINELEN]; | 34 char buf[2 * LINELEN]; |
| 33 char oldfile[2*LINELEN]; | 35 char oldfile[2*LINELEN]; |
| 36 | |
| 37 if (use_savedir) | |
| 38 return save_savedir_game(); | |
| 34 | 39 |
| 35 /* get file name */ | 40 /* get file name */ |
| 36 | 41 |
| 37 strcpy(oldfile,file_name); | 42 strcpy(oldfile,file_name); |
| 38 | 43 |
| 75 | 80 |
| 76 /* write out [compressed?] file */ | 81 /* write out [compressed?] file */ |
| 77 | 82 |
| 78 save_file(savefd); | 83 save_file(savefd); |
| 79 return(TRUE); | 84 return(TRUE); |
| 85 } | |
| 86 | |
| 87 /* | |
| 88 * save_savedir_game() | |
| 89 * Simplified save function for when system savefiles are used. | |
| 90 */ | |
| 91 int | |
| 92 save_savedir_game(void) | |
| 93 { | |
| 94 FILE *savef; | |
| 95 char c; | |
| 96 | |
| 97 mpos = 0; | |
| 98 msg("Save game? "); | |
| 99 c = readcharw(cw); | |
| 100 if (c == 'y' || c == 'Y') | |
| 101 { | |
| 102 if ((savef = fopen(file_name, "w")) == NULL) | |
| 103 { | |
| 104 msg(strerror(errno)); | |
| 105 return(FALSE); | |
| 106 } | |
| 107 msg(""); | |
| 108 save_file(savef); | |
| 109 return(TRUE); | |
| 110 } | |
| 111 else | |
| 112 { | |
| 113 msg(""); | |
| 114 return(FALSE); | |
| 115 } | |
| 80 } | 116 } |
| 81 | 117 |
| 82 int | 118 int |
| 83 restore(char *file) | 119 restore(char *file) |
| 84 { | 120 { |
