Mercurial > hg > early-roguelike
comparison urogue/main.c @ 259:096d3cfd9afd
UltraRogue: add the -n option.
author | John "Elwin" Edwards |
---|---|
date | Thu, 09 Feb 2017 16:29:45 -0500 |
parents | c495a4f288c6 |
children | 08057be02f47 |
comparison
equal
deleted
inserted
replaced
258:2908dc47f9e2 | 259:096d3cfd9afd |
---|---|
21 #include <time.h> | 21 #include <time.h> |
22 #include <stdlib.h> | 22 #include <stdlib.h> |
23 #include <string.h> | 23 #include <string.h> |
24 #include <signal.h> | 24 #include <signal.h> |
25 #include <stdlib.h> | 25 #include <stdlib.h> |
26 #include <errno.h> | |
26 #include "rogue.h" | 27 #include "rogue.h" |
28 | |
29 #define SAVEDIR "." | |
27 | 30 |
28 FILE *fd_score = NULL; | 31 FILE *fd_score = NULL; |
29 | 32 |
30 /* Command line options */ | 33 /* Command line options */ |
31 | 34 |
60 | 63 |
61 case 'r': | 64 case 'r': |
62 rflag = TRUE; | 65 rflag = TRUE; |
63 break; | 66 break; |
64 | 67 |
68 #ifdef SAVEDIR | |
69 case 'n': | |
70 if (x + 1 < argc) { | |
71 use_savedir = TRUE; | |
72 x++; | |
73 // Set rogue's name to the next argument | |
74 strncpy(whoami, argv[x], 2*LINELEN); | |
75 whoami[2*LINELEN - 1] = '\0'; | |
76 // And set up the savefile name | |
77 snprintf(file_name, 2*LINELEN, "%s/%d-%.80s.ursav", SAVEDIR, | |
78 md_getuid(), whoami); | |
79 } | |
80 break; | |
81 #endif | |
82 | |
65 default: | 83 default: |
66 fprintf(stderr,"%s: Unknown option '%c'.\n",argv[0],argv[x][1]); | 84 fprintf(stderr,"%s: Unknown option '%c'.\n",argv[0],argv[x][1]); |
67 exit(1); | 85 exit(1); |
68 } | 86 } |
69 } | 87 } |
84 fd_score = fopen(score_file, "a+"); | 102 fd_score = fopen(score_file, "a+"); |
85 | 103 |
86 if ((env = getenv("OPTIONS")) != NULL) | 104 if ((env = getenv("OPTIONS")) != NULL) |
87 parse_opts(env); | 105 parse_opts(env); |
88 | 106 |
89 nm = getenv("USER"); | 107 if (!use_savedir) { |
90 | 108 nm = getenv("USER"); |
91 if (nm != NULL) | 109 |
92 strcpy(whoami,nm); | 110 if (nm != NULL) |
93 else | 111 strcpy(whoami,nm); |
94 strcpy(whoami,"anonymous"); | 112 else |
113 strcpy(whoami,"anonymous"); | |
114 } | |
95 | 115 |
96 lowtime = time(&now); | 116 lowtime = time(&now); |
97 | 117 |
98 dnum = (wizard && getenv("SEED") != NULL ? atoi( getenv("SEED")) : (int)lowtime); | 118 dnum = (wizard && getenv("SEED") != NULL ? atoi( getenv("SEED")) : (int)lowtime); |
99 | 119 |
166 | 186 |
167 cw = newwin(LINES, COLS, 0, 0); | 187 cw = newwin(LINES, COLS, 0, 0); |
168 mw = newwin(LINES, COLS, 0, 0); | 188 mw = newwin(LINES, COLS, 0, 0); |
169 hw = newwin(LINES, COLS, 0, 0); | 189 hw = newwin(LINES, COLS, 0, 0); |
170 | 190 |
171 if (argc == 2 && argv[1][0] != '\0' && !restore(argv[1])) | 191 if (use_savedir) { |
192 if (!restore(file_name)) | |
193 exit(1); | |
194 } | |
195 else if (argc == 2 && argv[1][0] != '\0' && !restore(argv[1])) | |
172 /* Note: restore returns on error only */ | 196 /* Note: restore returns on error only */ |
173 exit(1); | 197 exit(1); |
174 | 198 |
175 waswizard = wizard; /* set wizard flags */ | 199 waswizard = wizard; /* set wizard flags */ |
176 | 200 |