Jettison the -s option.
[open-adventure.git] / cheat.c
1 #include <getopt.h>
2 #include <stdlib.h>
3 #include <stdio.h>
4 #include <stdbool.h>
5 #include <time.h>
6 #include "advent.h"
7 #include "dungeon.h"
8
9 FILE  *logfp = NULL, *rfp = NULL;
10 bool oldstyle = false;
11 bool prompt = true;
12
13 int main(int argc, char *argv[])
14 {
15     int ch;
16     char *savefilename = NULL;
17     long numdie = 0;
18     long saved = 1;
19     long version = 0;
20
21     /*  Options. */
22     const char* opts = "d:s:v:o:";
23     const char* usage = "Usage: %s [-d numdie] [-s numsaves] [-v version] -o savefilename \n";
24     while ((ch = getopt(argc, argv, opts)) != EOF) {
25         switch (ch) {
26         case 'd':
27             numdie = (long)atoi(optarg);
28             break;
29         case 's':
30             saved = (long)atoi(optarg);
31             break;
32         case 'v':
33             version = (long)atoi(optarg);;
34             break;
35         case 'o':
36             savefilename = optarg;
37             break;
38         default:
39             fprintf(stderr,
40                     usage, argv[0]);
41             fprintf(stderr,
42                     "        -d number of deaths. Signed integer value.'\n");
43             fprintf(stderr,
44                     "        -s number of saves. Signed integer value.\n");
45             fprintf(stderr,
46                     "        -v version number of save format.\n");
47             fprintf(stderr,
48                     "        -o file name of save game to write.\n");
49             exit(EXIT_FAILURE);
50             break;
51         }
52     }
53
54     if (savefilename == NULL) {
55         fprintf(stderr,
56                 usage, argv[0]);
57         fprintf(stderr,
58                 "ERROR: filename required\n");
59         exit(EXIT_FAILURE);
60     }
61
62     FILE *fp = NULL;
63
64     /*  Initialize game variables */
65     initialise();
66
67     make_zzword(game.zzword);
68
69     // apply cheats
70     game.numdie = numdie;
71     game.saved = saved;
72
73     fp = fopen(savefilename, WRITE_MODE);
74     if (fp == NULL) {
75         fprintf(stderr,
76                 "Can't open file %s. Exiting.\n", savefilename);
77         exit(EXIT_FAILURE);
78     }
79
80     savefile(fp, version);
81
82     printf("cheat: %s created.\n", savefilename);
83     return 0;
84 }