Mercurial > hg > early-roguelike
comparison rogue3/save.c @ 2:e676d52b5d09
Prevent changing name or save file when using system savedir
author | edwarj4 |
---|---|
date | Wed, 14 Oct 2009 11:21:33 +0000 |
parents | b4856d4d4c4e |
children | 09da55b986ca |
comparison
equal
deleted
inserted
replaced
1:b4856d4d4c4e | 2:e676d52b5d09 |
---|---|
49 if (c == 'y' || c == 'Y') | 49 if (c == 'y' || c == 'Y') |
50 { | 50 { |
51 msg("File name: %s", file_name); | 51 msg("File name: %s", file_name); |
52 goto gotfile; | 52 goto gotfile; |
53 } | 53 } |
54 if (use_savedir) | |
55 return FALSE; | |
56 /* because you're not allowed to change the savefile if | |
57 you're using the system savedir! */ | |
54 } | 58 } |
55 | 59 |
56 do | 60 do |
57 { | 61 { |
58 msg("File name: "); | 62 msg("File name: "); |
64 return FALSE; | 68 return FALSE; |
65 } | 69 } |
66 strcpy(file_name, buf); | 70 strcpy(file_name, buf); |
67 gotfile: | 71 gotfile: |
68 if ((savef = fopen(file_name, "w")) == NULL) | 72 if ((savef = fopen(file_name, "w")) == NULL) |
73 { | |
69 msg(strerror(errno)); /* fake perror() */ | 74 msg(strerror(errno)); /* fake perror() */ |
75 if (use_savedir) | |
76 return FALSE; | |
77 } | |
70 } while (savef == NULL); | 78 } while (savef == NULL); |
71 | 79 |
72 /* | 80 /* |
73 * write out encrpyted file (after a stat) | 81 * write out encrypted file (after a stat) |
74 * The fwrite is to force allocation of the buffer before the write | 82 * The fwrite is to force allocation of the buffer before the write |
75 */ | 83 */ |
76 if (save_file(savef) != 0) | 84 if (save_file(savef) != 0) |
77 { | 85 { |
78 msg("Save game failed!"); | 86 msg("Save game failed!"); |