#include "tel.h"
#include "prototypes.h"
#include "optlist.h"
+#include "version.h"
-static void file_sct_init(coord x, coord y, s_char *ptr,
+static void file_sct_init(coord, coord, struct sctstr *ptr,
time_t timestamp);
static void
print_usage(char *program_name)
{
- printf("Usage: %s -f -e econfig_file\n", program_name);
- printf("-f force mode\n");
+ printf("Usage: %s [OPTION]...\n"
+ " -e CONFIG-FILE configuration file\n"
+ " (default %s)\n"
+ " -f force overwrite of existing game\n"
+ " -h display this help and exit\n"
+ " -v display version information and exit\n",
+ program_name, dflt_econfig);
}
int
main(int argc, char *argv[])
{
- s_char buf[255];
- s_char *filename;
+ char buf[255];
+ char *filename;
int x, y;
struct natstr nat;
struct realmstr realm;
struct sctstr sct;
int i, j;
- s_char *map;
+ char *map;
int opt;
char *config_file = NULL;
int force = 0;
time_t current_time = time(NULL);
- while ((opt = getopt(argc, argv, "e:f")) != EOF) {
+ while ((opt = getopt(argc, argv, "e:fhv")) != EOF) {
switch (opt) {
case 'e':
config_file = optarg;
case 'f':
force = 1;
break;
+ case 'h':
+ print_usage(argv[0]);
+ exit(0);
+ case 'v':
+ printf("%s\n\n%s", version, legal);
+ exit(0);
default:
print_usage(argv[0]);
- exit(-1);
+ exit(1);
}
}
ef_init();
- if (access(datadir, F_OK) < 0 && mkdir(datadir, 0750) < 0) {
- perror(datadir);
+ if (mkdir(gamedir, 0750) < 0 && errno != EEXIST) {
+ perror(gamedir);
printf("Can't make game directory\n");
exit(1);
}
- if (chdir(datadir)) {
- fprintf(stderr, "Can't chdir to %s (%s)\n", datadir, strerror(errno));
+ if (chdir(gamedir)) {
+ fprintf(stderr, "Can't chdir to %s (%s)\n", gamedir, strerror(errno));
exit(EXIT_FAILURE);
}
if (!force) {
printf("WARNING: this blasts the existing game in %s (if any)\n",
- datadir);
+ gamedir);
printf("continue? ");
fgets(buf, sizeof(buf), stdin);
if (*buf != 'y' && *buf != 'Y')
nat.nat_money = 123456789;
nat.nat_cnum = 0;
nat.nat_flags |= NF_FLASH;
- for (i = 0; i <= PRI_MAX; i++)
- nat.nat_priorities[i] = -1;
putnat((&nat));
printf("All praise to %s!\n", nat.nat_cnam);
memset(&nat, 0, sizeof(nat));
putrealm(&realm);
}
}
- if (access(teldir, F_OK) < 0 && mkdir(teldir, 0750) < 0) {
+ if (mkdir(teldir, 0750) < 0 && errno != EEXIST) {
perror(teldir);
printf("Can't make telegram directory\n");
exit(1);
close(creat(timestampfil, 0600));
close(creat(annfil, 0600));
chmod(infodir, 0750);
- chmod(datadir, 0770);
+ chmod(gamedir, 0770);
chmod(teldir, 0770);
/* create a zero-filled sector file */
memset(&sct, 0, sizeof(sct));
for (y = 0; y < WORLD_Y; y++) {
for (x = 0; x < WORLD_X / 2; x++) {
- file_sct_init(x * 2 + (y & 01), y, (s_char *)&sct,
- current_time);
+ file_sct_init(x * 2 + (y & 1), y, &sct, current_time);
putsect(&sct);
}
}
for (i = 0; i < MAXNOC; i++) {
ef_write(EF_MAP, i, map);
}
- map = calloc(WORLD_X * WORLD_Y / 2, sizeof(*map));
for (i = 0; i < MAXNOC; i++) {
ef_write(EF_BMAP, i, map);
}
}
static void
-file_sct_init(coord x, coord y, s_char *ptr, time_t timestamp)
+file_sct_init(coord x, coord y, struct sctstr *ptr, time_t timestamp)
{
struct sctstr *sp = (struct sctstr *)ptr;