2 * Empire - A multi-player, client/server Internet based war game.
3 * Copyright (C) 1986-2000, Dave Pare, Jeff Bailey, Thomas Ruschak,
4 * Ken Stevens, Steve McClure
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; either version 2 of the License, or
9 * (at your option) any later version.
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
16 * You should have received a copy of the GNU General Public License
17 * along with this program; if not, write to the Free Software
18 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
22 * See the "LEGAL", "LICENSE", "CREDITS" and "README" files for all the
23 * related information and legal notices. It is expected that any future
24 * projects/authors will amend these files as needed.
28 * misc.h: Misc. definitions which don't really belong anywhere,
29 * but have to go somewhere!
31 * Known contributors to this file:
39 #include <sys/types.h>
42 #if defined(hpux) || defined(SUN4) || defined(solaris) || defined(_WIN32)
49 typedef unsigned char u_char;
50 typedef unsigned short u_short;
51 typedef char *caddr_t;
52 typedef unsigned int u_int;
54 /* integral mismatch, due to misuse of sector short */
55 #pragma warning (disable : 4761 )
57 #define bzero(d, s) memset(d, 0, s)
58 #define bcopy(s, d, z) memcpy(d, s, z)
67 #define rindex strrchr
71 #include "prototype.h"
74 /* This is the structure we use to keep track of the global mobility
75 things, such as when the server is supposed to start/stop updating
76 mobility and the timestamp of when the game was last up. These
77 times are in seconds. */
78 struct mob_acc_globals {
79 time_t timestamp; /* Last timestamp of when the game was up */
80 time_t starttime; /* When we should start updating mobility again. */
83 #define ANNO_KEEP_DAYS 7 /* Keep announcements around for this many days */
84 #define RESOLVE_IPADDRESS /* resolve ip addresses into hostnames */
86 typedef u_char natid; /* also change NSC_NATID in nsc.h */
88 #if defined(__linux__ ) || defined(__osf__)
89 #define POSIXSIGNALS 1
92 #if !defined (_EMPTH_LWP) && !defined (_EMPTH_POSIX)
96 #if defined(_EMPTH_POSIX) && !defined(POSIXSIGNALS)
100 #if defined(POSIXSIGNALS) || defined(__STDC__)
101 typedef void emp_sig_t;
103 typedef int emp_sig_t;
107 #if !defined(aix) && !defined(sgi)
108 #ifndef ultrix /* already defined in ultrix */
109 typedef char s_char; /* change to signed char for aix */
112 typedef signed char s_char;
113 #endif /* !aix && !sgi */
114 typedef short coord; /* also change NSC_COORD in nsc.h */
116 * watch it; your compiler might not like this.
117 * If you think this is bogus, look at /usr/include/struct.h
119 #define OFFSET(stype, oset) ((int)(&(((struct stype *)0)->oset)))
120 #define SETOFF(sinst, oset) ((s_char *) (sinst) + (oset))
123 #define bit(x) (1<<(x))
126 #define minutes(x) (60*(x))
127 #define hours(x) (60*60*(x))
128 #define days(x) (60*60*24*(x))
130 typedef void (*voidfunc) ();
131 typedef int (*qsort_func_t) (const void *, const void *);
133 /* return codes from command routines */
134 #define RET_OK 0 /* command completed sucessfully */
135 #define RET_FAIL 1 /* command completed unsucessfully [?] */
136 #define RET_SYN 2 /* syntax error in command */
137 #define RET_SYS 3 /* system error (missing file, etc) */
139 #define MAX_DISTPATH_LEN 10 /* Has to go somewhere */
142 * references to library functions which aren't related to any
143 * particular object, and are of general interest
145 #if !defined(ALPHA) && !defined(__osf__) && !defined(__linux__) && !defined(_WIN32)
146 extern long random();
149 double dmax _PROTO((double n1, double n2));
150 double dmin _PROTO((double n1, double n2));
152 extern s_char *numstr _PROTO((s_char buf[], int n));
153 extern s_char *esplur _PROTO((int n));
154 extern s_char *splur _PROTO((int n));
155 extern s_char *iesplur _PROTO((int n));
156 extern s_char *plur _PROTO((int n, s_char *no, s_char *yes));
157 extern s_char *getstarg
158 _PROTO((s_char *input, s_char *prompt, s_char buf[]));
159 extern s_char *getstring _PROTO((s_char *prompt, s_char buf[]));
160 extern s_char *prbuf(s_char *format, ...);
163 * frequently used libc functions
169 extern char *malloc();
170 extern char *calloc();
173 #if !defined(ALPHA) && !defined(__osf__) && !defined(ultrix) && !defined(hpux) && !defined(FBSD)
174 extern char *malloc();
175 extern char *calloc();
180 #if (!defined (aix) && !defined (sgi))
181 extern char *ctime();
182 extern char *strncpy();
183 extern char *strcpy();
185 extern char *index();
186 extern char *rindex();
188 #endif /* !aix && !sgi */
190 extern time_t time();
194 extern double atof();
197 extern double atof();
202 #if !defined (__ppc__) && !defined (hpux) && !defined (aix) && !defined (linux) && !defined(ALPHA) && !defined(__osf__) && !defined(SUN4) && !defined (Rel4) && !(defined (ultrix) && (defined (__STDC__) || defined (__SYSTEMFIVE) || defined (__POSIX)))
203 extern char *sprintf();
209 #include "prototypes.h" /* must come at end, after defines and typedefs */
211 #endif /* _MISC_H_ */