Mercurial > hg > early-roguelike
annotate xrogue/main.c @ 317:aab761616489 default tip
Rearrange some Autoconf files.
Autoconf was failing to detect install-sh at the top level and needed
some explicit directions. It also wants config.guess and config.sub to
be provided too.
A few other macros have also been updated.
author | John "Elwin" Edwards |
---|---|
date | Tue, 05 Sep 2023 20:05:24 -0400 |
parents | 827441d05b3e |
children |
rev | line source |
---|---|
133
e6179860cb76
Import XRogue 8.0 from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1 /* |
e6179860cb76
Import XRogue 8.0 from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
2 main.c - setup code |
e6179860cb76
Import XRogue 8.0 from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
3 |
e6179860cb76
Import XRogue 8.0 from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
4 XRogue: Expeditions into the Dungeons of Doom |
e6179860cb76
Import XRogue 8.0 from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
5 Copyright (C) 1991 Robert Pietkivitch |
e6179860cb76
Import XRogue 8.0 from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
6 All rights reserved. |
e6179860cb76
Import XRogue 8.0 from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
7 |
e6179860cb76
Import XRogue 8.0 from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
8 Based on "Advanced Rogue" |
e6179860cb76
Import XRogue 8.0 from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
9 Copyright (C) 1984, 1985 Michael Morgan, Ken Dalka and AT&T |
e6179860cb76
Import XRogue 8.0 from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
10 All rights reserved. |
e6179860cb76
Import XRogue 8.0 from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
11 |
e6179860cb76
Import XRogue 8.0 from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
12 Based on "Rogue: Exploring the Dungeons of Doom" |
e6179860cb76
Import XRogue 8.0 from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
13 Copyright (C) 1980, 1981 Michael Toy, Ken Arnold and Glenn Wichman |
e6179860cb76
Import XRogue 8.0 from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
14 All rights reserved. |
e6179860cb76
Import XRogue 8.0 from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
15 |
e6179860cb76
Import XRogue 8.0 from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
16 See the file LICENSE.TXT for full copyright and licensing information. |
e6179860cb76
Import XRogue 8.0 from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
17 */ |
e6179860cb76
Import XRogue 8.0 from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
18 |
135 | 19 #include <stdlib.h> |
20 #include <string.h> | |
133
e6179860cb76
Import XRogue 8.0 from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
21 #include <curses.h> |
e6179860cb76
Import XRogue 8.0 from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
22 #include <signal.h> |
310
827441d05b3e
Advanced Rogue family: fix some potential buffer overflows.
John "Elwin" Edwards
parents:
304
diff
changeset
|
23 #include <limits.h> |
133
e6179860cb76
Import XRogue 8.0 from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
24 #include <time.h> |
e6179860cb76
Import XRogue 8.0 from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
25 |
e6179860cb76
Import XRogue 8.0 from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
26 #include "mach_dep.h" |
e6179860cb76
Import XRogue 8.0 from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
27 #include "network.h" |
e6179860cb76
Import XRogue 8.0 from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
28 #include "rogue.h" |
e6179860cb76
Import XRogue 8.0 from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
29 |
143
7faf4568c295
Advanced Rogue family: overhaul privilege handling.
John "Elwin" Edwards
parents:
139
diff
changeset
|
30 void open_records(void); |
220
f54901b9c39b
XRogue: convert to ANSI-style function declarations.
John "Elwin" Edwards
parents:
151
diff
changeset
|
31 bool too_much(void); |
f54901b9c39b
XRogue: convert to ANSI-style function declarations.
John "Elwin" Edwards
parents:
151
diff
changeset
|
32 bool author(void); |
f54901b9c39b
XRogue: convert to ANSI-style function declarations.
John "Elwin" Edwards
parents:
151
diff
changeset
|
33 bool playtime(void); |
f54901b9c39b
XRogue: convert to ANSI-style function declarations.
John "Elwin" Edwards
parents:
151
diff
changeset
|
34 bool betaover(void); |
136
1fbdefa82533
xrogue: initial support for the -n option.
John "Elwin" Edwards
parents:
135
diff
changeset
|
35 |
220
f54901b9c39b
XRogue: convert to ANSI-style function declarations.
John "Elwin" Edwards
parents:
151
diff
changeset
|
36 int |
f54901b9c39b
XRogue: convert to ANSI-style function declarations.
John "Elwin" Edwards
parents:
151
diff
changeset
|
37 main(int argc, char *argv[], char *envp[]) |
133
e6179860cb76
Import XRogue 8.0 from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
38 { |
e6179860cb76
Import XRogue 8.0 from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
39 register char *env; |
e6179860cb76
Import XRogue 8.0 from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
40 |
e6179860cb76
Import XRogue 8.0 from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
41 md_init(); |
e6179860cb76
Import XRogue 8.0 from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
42 |
e6179860cb76
Import XRogue 8.0 from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
43 /* |
e6179860cb76
Import XRogue 8.0 from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
44 * get home and options from environment |
e6179860cb76
Import XRogue 8.0 from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
45 */ |
e6179860cb76
Import XRogue 8.0 from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
46 |
e6179860cb76
Import XRogue 8.0 from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
47 strncpy(home, md_gethomedir(), LINELEN); |
310
827441d05b3e
Advanced Rogue family: fix some potential buffer overflows.
John "Elwin" Edwards
parents:
304
diff
changeset
|
48 home[LINELEN-1] = '\0'; |
133
e6179860cb76
Import XRogue 8.0 from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
49 |
e6179860cb76
Import XRogue 8.0 from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
50 /* Get default save file */ |
e6179860cb76
Import XRogue 8.0 from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
51 strcpy(file_name, home); |
e6179860cb76
Import XRogue 8.0 from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
52 strcat(file_name, "xrogue.sav"); |
e6179860cb76
Import XRogue 8.0 from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
53 |
e6179860cb76
Import XRogue 8.0 from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
54 /* Get default score file */ |
136
1fbdefa82533
xrogue: initial support for the -n option.
John "Elwin" Edwards
parents:
135
diff
changeset
|
55 #ifdef SCOREFILE |
310
827441d05b3e
Advanced Rogue family: fix some potential buffer overflows.
John "Elwin" Edwards
parents:
304
diff
changeset
|
56 strncpy(score_file, SCOREFILE, PATH_MAX); |
827441d05b3e
Advanced Rogue family: fix some potential buffer overflows.
John "Elwin" Edwards
parents:
304
diff
changeset
|
57 score_file[PATH_MAX-1] = '\0'; |
136
1fbdefa82533
xrogue: initial support for the -n option.
John "Elwin" Edwards
parents:
135
diff
changeset
|
58 #else |
133
e6179860cb76
Import XRogue 8.0 from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
59 strcpy(score_file, md_getroguedir()); |
e6179860cb76
Import XRogue 8.0 from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
60 |
e6179860cb76
Import XRogue 8.0 from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
61 if (*score_file) |
e6179860cb76
Import XRogue 8.0 from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
62 strcat(score_file,"/"); |
e6179860cb76
Import XRogue 8.0 from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
63 |
e6179860cb76
Import XRogue 8.0 from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
64 strcat(score_file, "xrogue.scr"); |
136
1fbdefa82533
xrogue: initial support for the -n option.
John "Elwin" Edwards
parents:
135
diff
changeset
|
65 #endif |
1fbdefa82533
xrogue: initial support for the -n option.
John "Elwin" Edwards
parents:
135
diff
changeset
|
66 |
1fbdefa82533
xrogue: initial support for the -n option.
John "Elwin" Edwards
parents:
135
diff
changeset
|
67 #ifdef SAVEDIR |
1fbdefa82533
xrogue: initial support for the -n option.
John "Elwin" Edwards
parents:
135
diff
changeset
|
68 /* Check for common save location */ |
1fbdefa82533
xrogue: initial support for the -n option.
John "Elwin" Edwards
parents:
135
diff
changeset
|
69 if (argc >= 3 && strcmp(argv[1], "-n") == 0) |
1fbdefa82533
xrogue: initial support for the -n option.
John "Elwin" Edwards
parents:
135
diff
changeset
|
70 { |
1fbdefa82533
xrogue: initial support for the -n option.
John "Elwin" Edwards
parents:
135
diff
changeset
|
71 strncpy(whoami, argv[2], 79); |
1fbdefa82533
xrogue: initial support for the -n option.
John "Elwin" Edwards
parents:
135
diff
changeset
|
72 whoami[79] = '\0'; |
1fbdefa82533
xrogue: initial support for the -n option.
John "Elwin" Edwards
parents:
135
diff
changeset
|
73 use_savedir = TRUE; |
1fbdefa82533
xrogue: initial support for the -n option.
John "Elwin" Edwards
parents:
135
diff
changeset
|
74 if (LINELEN <= snprintf(file_name, LINELEN, "%s/%d-%s.xrsav", SAVEDIR, |
1fbdefa82533
xrogue: initial support for the -n option.
John "Elwin" Edwards
parents:
135
diff
changeset
|
75 md_getuid(), whoami)) |
1fbdefa82533
xrogue: initial support for the -n option.
John "Elwin" Edwards
parents:
135
diff
changeset
|
76 { |
1fbdefa82533
xrogue: initial support for the -n option.
John "Elwin" Edwards
parents:
135
diff
changeset
|
77 strcpy(file_name, "xrogue.sav"); |
1fbdefa82533
xrogue: initial support for the -n option.
John "Elwin" Edwards
parents:
135
diff
changeset
|
78 use_savedir = FALSE; |
1fbdefa82533
xrogue: initial support for the -n option.
John "Elwin" Edwards
parents:
135
diff
changeset
|
79 } |
1fbdefa82533
xrogue: initial support for the -n option.
John "Elwin" Edwards
parents:
135
diff
changeset
|
80 } |
1fbdefa82533
xrogue: initial support for the -n option.
John "Elwin" Edwards
parents:
135
diff
changeset
|
81 #endif |
133
e6179860cb76
Import XRogue 8.0 from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
82 |
e6179860cb76
Import XRogue 8.0 from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
83 if ((env = getenv("ROGUEOPTS")) != NULL) |
e6179860cb76
Import XRogue 8.0 from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
84 parse_opts(env); |
e6179860cb76
Import XRogue 8.0 from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
85 |
e6179860cb76
Import XRogue 8.0 from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
86 if (whoami[0] == '\0') |
e6179860cb76
Import XRogue 8.0 from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
87 strucpy(whoami, md_getusername(), strlen(md_getusername())); |
e6179860cb76
Import XRogue 8.0 from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
88 |
143
7faf4568c295
Advanced Rogue family: overhaul privilege handling.
John "Elwin" Edwards
parents:
139
diff
changeset
|
89 open_records(); |