1/*	SCCS Id: @(#)amiconf.h	3.4	2000/01/12	*/
2/* Copyright (c) Kenneth Lorber, Bethesda, Maryland, 1990, 1991, 1992, 1993. */
3/* NetHack may be freely redistributed.  See license for details. */
4
5#ifndef AMICONF_H
6#define AMICONF_H
7
8#undef abs		/* avoid using macro form of abs */
9#ifndef __SASC_60
10# undef min		/* this gets redefined */
11# undef max		/* this gets redefined */
12#endif
13
14#include <time.h>	/* get time_t defined before use! */
15
16#ifdef __SASC_60	/* since SAS can prevent re-inclusion */
17#include <stdlib.h>	/* general things, including builtins */
18#include <string.h>
19#endif
20
21#ifdef AZTEC_50
22#include <stdlib.h>
23# define AZTEC_C_WORKAROUND /* Bug which turns up in sounds.c. Bummer... */
24# define NO_SIGNAL	/* 5.0 signal handling doesn't like SIGINT... */
25#endif
26
27#ifdef _DCC
28#include <stdlib.h>
29# define _SIZE_T
30# define DCC30_BUG	/* A bitfield bug (from dog.c, others) in DICE 3.0. */
31#endif
32
33#ifndef __GNUC__
34typedef long off_t;
35#endif
36
37#define MICRO		/* must be defined to allow some inclusions */
38
39#define NOCWD_ASSUMPTIONS	/* Allow paths to be specified for HACKDIR,
40				   LEVELDIR, SAVEDIR, BONESDIR, DATADIR,
41				   SCOREDIR, LOCKDIR, CONFIGDIR, and TROUBLEDIR */
42
43/* data librarian defs */
44#ifndef NOCWD_ASSUMPTIONS
45# define DLBFILE	"NetHack:nhdat"		/* main library */
46# define DLBFILE2	"NetHack:nhsdat"	/* sound library */
47#else
48# define DLBFILE	"nhdat"			/* main library */
49# define DLBFILE2	"nhsdat"		/* sound library */
50#endif
51
52#define FILENAME_CMP	stricmp			/* case insensitive */
53
54#ifndef __SASC_60
55# define O_BINARY	0
56#endif
57
58/* Compile in New Intuition look for 2.0 */
59#ifdef	IDCMP_CLOSEWINDOW
60# ifndef INTUI_NEW_LOOK
61#  define	INTUI_NEW_LOOK	1
62# endif
63#endif
64
65#define MFLOPPY		/* You'll probably want this; provides assistance
66			 * for typical personal computer configurations
67			 */
68#define RANDOM
69
70/* ### amidos.c ### */
71
72extern void  FDECL(nethack_exit, (int));
73
74/* ### amiwbench.c ### */
75
76extern void NDECL(ami_wbench_init);
77extern void NDECL(ami_wbench_args);
78extern int FDECL(ami_wbench_getsave, (int));
79extern void FDECL(ami_wbench_unlink, (char *));
80extern int FDECL(ami_wbench_iconsize, (char *));
81extern void FDECL(ami_wbench_iconwrite, (char *));
82extern int FDECL(ami_wbench_badopt, (const char *));
83extern void NDECL(ami_wbench_cleanup);
84extern void FDECL(getlind, (const char *,char *,const char *));
85
86/* ### winreq.c ### */
87
88extern void amii_setpens(int);
89
90extern void FDECL(exit, (int));
91extern void NDECL(CleanUp);
92extern void FDECL(Abort, (long));
93extern int NDECL(getpid);
94extern char *FDECL(CopyFile, (const char *, const char *));
95extern int NDECL(kbhit);
96extern int NDECL(WindowGetchar);
97extern void FDECL(ami_argset, (int *, char *[]));
98extern void FDECL(ami_mkargline, (int *, char **[]));
99extern void ami_wininit_data(void);
100
101#define FromWBench 0 /* A hint for compiler ... */
102/* extern boolean FromWBench;	/* how were we run? */
103extern int ami_argc;
104extern char **ami_argv;
105
106#ifndef MICRO_H
107#include "micro.h"
108#endif
109
110#ifndef PCCONF_H
111#include "pcconf.h"	/* remainder of stuff is almost same as the PC */
112#endif
113
114#define remove(x)	unlink(x)
115
116/* DICE wants rewind() to return void.	We want it to return int. */
117#if defined(_DCC) || defined(__GNUC__)
118# define rewind(f)	fseek(f, 0, 0)
119#endif
120
121#ifdef AZTEC_C
122extern FILE *FDECL(freopen, (const char *, const char *, FILE *));
123extern char *FDECL(gets, (char *));
124#endif
125
126#define msmsg		printf
127
128/*
129 * If AZTEC_C  we can't use the long cpath in vision.c....
130 */
131#ifdef AZTEC_C
132# undef MACRO_CPATH
133#endif
134
135/*
136 *  (Possibly) configurable Amiga options:
137 */
138
139#define TEXTCOLOR		/* Use colored monsters and objects */
140#define HACKFONT		/* Use special hack.font */
141#define SHELL			/* Have a shell escape command (!) */
142#define MAIL			/* Get mail at unexpected occasions */
143#define DEFAULT_ICON "NetHack:default.icon"	/* private icon */
144#define AMIFLUSH		/* toss typeahead (select flush in .cnf) */
145/* #define OPT_DISPMAP		/* enable fast_map option */
146
147/* new window system options */
148			/* WRONG - AMIGA_INTUITION should go away */
149#ifdef AMII_GRAPHICS
150# define AMIGA_INTUITION	/* high power graphics interface (amii) */
151#endif
152
153#define CHANGE_COLOR	1
154
155#ifdef	TEXTCOLOR
156#  define	DEPTH	6	/* Maximum depth of the screen allowed */
157#else
158# define	DEPTH	2	/* Four colors...sigh... */
159#endif
160
161#define AMII_MAXCOLORS	(1L<<DEPTH)
162typedef unsigned short AMII_COLOR_TYPE;
163
164#define PORT_HELP	"nethack:amii.hlp"
165
166#undef	TERMLIB
167
168#define AMII_MUFFLED_VOLUME	40
169#define AMII_SOFT_VOLUME	50
170#define AMII_OKAY_VOLUME	60
171#define AMII_LOUDER_VOLUME	80
172
173#ifdef TTY_GRAPHICS
174# define ANSI_DEFAULT
175#endif
176
177extern int amibbs;	/* BBS mode? */
178
179#ifdef AMII_GRAPHICS
180extern int amii_numcolors;
181void FDECL( amii_setpens, (int) );
182#endif
183
184/* for cmd.c: override version in micro.h */
185#ifdef __SASC_60
186# undef M
187# define M(c) ((c) - 128 )
188#endif
189
190#endif /* AMICONF_H */
191