From 9e0e1ac5d11e5834b67c73712653c74f4c994c56 Mon Sep 17 00:00:00 2001 From: PatR Date: Fri, 15 May 2015 23:08:15 -0700 Subject: [PATCH] remove accidentally added util/lev_main.i --- util/lev_main.i | 8238 ----------------------------------------------- 1 file changed, 8238 deletions(-) delete mode 100644 util/lev_main.i diff --git a/util/lev_main.i b/util/lev_main.i deleted file mode 100644 index 38703b619..000000000 --- a/util/lev_main.i +++ /dev/null @@ -1,8238 +0,0 @@ -# 1 "lev_main.c" -# 1 "" -# 1 "" -# 1 "lev_main.c" -# 14 "lev_main.c" -# 1 "../include/hack.h" 1 -# 11 "../include/hack.h" -# 1 "../include/config.h" 1 -# 39 "../include/config.h" -# 1 "../include/config1.h" 1 -# 40 "../include/config.h" 2 -# 345 "../include/config.h" -# 1 "../include/tradstdc.h" 1 -# 88 "../include/tradstdc.h" -# 1 "/usr/lib/gcc/i686-apple-darwin9/4.0.1/include/stdarg.h" 1 3 4 -# 43 "/usr/lib/gcc/i686-apple-darwin9/4.0.1/include/stdarg.h" 3 4 -typedef __builtin_va_list __gnuc_va_list; -# 105 "/usr/lib/gcc/i686-apple-darwin9/4.0.1/include/stdarg.h" 3 4 -typedef __gnuc_va_list va_list; -# 89 "../include/tradstdc.h" 2 -# 222 "../include/tradstdc.h" -typedef void * genericptr_t; -# 346 "../include/config.h" 2 -# 359 "../include/config.h" -typedef signed char schar; -# 373 "../include/config.h" -typedef unsigned char uchar; -# 443 "../include/config.h" -# 1 "../include/global.h" 1 -# 9 "../include/global.h" -# 1 "/usr/include/stdio.h" 1 3 4 -# 64 "/usr/include/stdio.h" 3 4 -# 1 "/usr/include/_types.h" 1 3 4 -# 27 "/usr/include/_types.h" 3 4 -# 1 "/usr/include/sys/_types.h" 1 3 4 -# 32 "/usr/include/sys/_types.h" 3 4 -# 1 "/usr/include/sys/cdefs.h" 1 3 4 -# 33 "/usr/include/sys/_types.h" 2 3 4 -# 1 "/usr/include/machine/_types.h" 1 3 4 -# 34 "/usr/include/machine/_types.h" 3 4 -# 1 "/usr/include/i386/_types.h" 1 3 4 -# 37 "/usr/include/i386/_types.h" 3 4 -typedef signed char __int8_t; - - - -typedef unsigned char __uint8_t; -typedef short __int16_t; -typedef unsigned short __uint16_t; -typedef int __int32_t; -typedef unsigned int __uint32_t; -typedef long long __int64_t; -typedef unsigned long long __uint64_t; - -typedef long __darwin_intptr_t; -typedef unsigned int __darwin_natural_t; -# 70 "/usr/include/i386/_types.h" 3 4 -typedef int __darwin_ct_rune_t; - - - - - -typedef union { - char __mbstate8[128]; - long long _mbstateL; -} __mbstate_t; - -typedef __mbstate_t __darwin_mbstate_t; - - -typedef int __darwin_ptrdiff_t; - - - - - -typedef long unsigned int __darwin_size_t; - - - - - -typedef __builtin_va_list __darwin_va_list; - - - - - -typedef int __darwin_wchar_t; - - - - -typedef __darwin_wchar_t __darwin_rune_t; - - -typedef int __darwin_wint_t; - - - - -typedef unsigned long __darwin_clock_t; -typedef __uint32_t __darwin_socklen_t; -typedef long __darwin_ssize_t; -typedef long __darwin_time_t; -# 35 "/usr/include/machine/_types.h" 2 3 4 -# 34 "/usr/include/sys/_types.h" 2 3 4 -# 58 "/usr/include/sys/_types.h" 3 4 -struct __darwin_pthread_handler_rec -{ - void (*__routine)(void *); - void *__arg; - struct __darwin_pthread_handler_rec *__next; -}; -struct _opaque_pthread_attr_t { long __sig; char __opaque[36]; }; -struct _opaque_pthread_cond_t { long __sig; char __opaque[24]; }; -struct _opaque_pthread_condattr_t { long __sig; char __opaque[4]; }; -struct _opaque_pthread_mutex_t { long __sig; char __opaque[40]; }; -struct _opaque_pthread_mutexattr_t { long __sig; char __opaque[8]; }; -struct _opaque_pthread_once_t { long __sig; char __opaque[4]; }; -struct _opaque_pthread_rwlock_t { long __sig; char __opaque[124]; }; -struct _opaque_pthread_rwlockattr_t { long __sig; char __opaque[12]; }; -struct _opaque_pthread_t { long __sig; struct __darwin_pthread_handler_rec *__cleanup_stack; char __opaque[596]; }; -# 94 "/usr/include/sys/_types.h" 3 4 -typedef __int64_t __darwin_blkcnt_t; -typedef __int32_t __darwin_blksize_t; -typedef __int32_t __darwin_dev_t; -typedef unsigned int __darwin_fsblkcnt_t; -typedef unsigned int __darwin_fsfilcnt_t; -typedef __uint32_t __darwin_gid_t; -typedef __uint32_t __darwin_id_t; -typedef __uint64_t __darwin_ino64_t; - - - -typedef __uint32_t __darwin_ino_t; - -typedef __darwin_natural_t __darwin_mach_port_name_t; -typedef __darwin_mach_port_name_t __darwin_mach_port_t; -typedef __uint16_t __darwin_mode_t; -typedef __int64_t __darwin_off_t; -typedef __int32_t __darwin_pid_t; -typedef struct _opaque_pthread_attr_t - __darwin_pthread_attr_t; -typedef struct _opaque_pthread_cond_t - __darwin_pthread_cond_t; -typedef struct _opaque_pthread_condattr_t - __darwin_pthread_condattr_t; -typedef unsigned long __darwin_pthread_key_t; -typedef struct _opaque_pthread_mutex_t - __darwin_pthread_mutex_t; -typedef struct _opaque_pthread_mutexattr_t - __darwin_pthread_mutexattr_t; -typedef struct _opaque_pthread_once_t - __darwin_pthread_once_t; -typedef struct _opaque_pthread_rwlock_t - __darwin_pthread_rwlock_t; -typedef struct _opaque_pthread_rwlockattr_t - __darwin_pthread_rwlockattr_t; -typedef struct _opaque_pthread_t - *__darwin_pthread_t; -typedef __uint32_t __darwin_sigset_t; -typedef __int32_t __darwin_suseconds_t; -typedef __uint32_t __darwin_uid_t; -typedef __uint32_t __darwin_useconds_t; -typedef unsigned char __darwin_uuid_t[16]; -# 28 "/usr/include/_types.h" 2 3 4 - -typedef int __darwin_nl_item; -typedef int __darwin_wctrans_t; - - - -typedef unsigned long __darwin_wctype_t; -# 65 "/usr/include/stdio.h" 2 3 4 -# 75 "/usr/include/stdio.h" 3 4 -typedef __darwin_off_t off_t; - - - - -typedef __darwin_size_t size_t; - - - - - - -typedef __darwin_off_t fpos_t; -# 98 "/usr/include/stdio.h" 3 4 -struct __sbuf { - unsigned char *_base; - int _size; -}; - - -struct __sFILEX; -# 132 "/usr/include/stdio.h" 3 4 -typedef struct __sFILE { - unsigned char *_p; - int _r; - int _w; - short _flags; - short _file; - struct __sbuf _bf; - int _lbfsize; - - - void *_cookie; - int (*_close)(void *); - int (*_read) (void *, char *, int); - fpos_t (*_seek) (void *, fpos_t, int); - int (*_write)(void *, const char *, int); - - - struct __sbuf _ub; - struct __sFILEX *_extra; - int _ur; - - - unsigned char _ubuf[3]; - unsigned char _nbuf[1]; - - - struct __sbuf _lb; - - - int _blksize; - fpos_t _offset; -} FILE; - - - -extern FILE *__stdinp; -extern FILE *__stdoutp; -extern FILE *__stderrp; - - - - -# 248 "/usr/include/stdio.h" 3 4 - -void clearerr(FILE *); -int fclose(FILE *); -int feof(FILE *); -int ferror(FILE *); -int fflush(FILE *); -int fgetc(FILE *); -int fgetpos(FILE * , fpos_t *); -char *fgets(char * , int, FILE *); -FILE *fopen(const char * , const char * ); -int fprintf(FILE * , const char * , ...) ; -int fputc(int, FILE *); -int fputs(const char * , FILE * ) __asm("_" "fputs" "$UNIX2003"); -size_t fread(void * , size_t, size_t, FILE * ); -FILE *freopen(const char * , const char * , - FILE * ) __asm("_" "freopen" "$UNIX2003"); -int fscanf(FILE * , const char * , ...) ; -int fseek(FILE *, long, int); -int fsetpos(FILE *, const fpos_t *); -long ftell(FILE *); -size_t fwrite(const void * , size_t, size_t, FILE * ) __asm("_" "fwrite" "$UNIX2003"); -int getc(FILE *); -int getchar(void); -char *gets(char *); - -extern const int sys_nerr; -extern const char *const sys_errlist[]; - -void perror(const char *); -int printf(const char * , ...) ; -int putc(int, FILE *); -int putchar(int); -int puts(const char *); -int remove(const char *); -int rename (const char *, const char *); -void rewind(FILE *); -int scanf(const char * , ...) ; -void setbuf(FILE * , char * ); -int setvbuf(FILE * , char * , int, size_t); -int sprintf(char * , const char * , ...) ; -int sscanf(const char * , const char * , ...) ; -FILE *tmpfile(void); -char *tmpnam(char *); -int ungetc(int, FILE *); -int vfprintf(FILE * , const char * , va_list) ; -int vprintf(const char * , va_list) ; -int vsprintf(char * , const char * , va_list) ; - -int asprintf(char **, const char *, ...) ; -int vasprintf(char **, const char *, va_list) ; - - - - - - - - - - -char *ctermid(char *); - -char *ctermid_r(char *); - -FILE *fdopen(int, const char *); - -char *fgetln(FILE *, size_t *); - -int fileno(FILE *); -void flockfile(FILE *); - -const char - *fmtcheck(const char *, const char *); -int fpurge(FILE *); - -int fseeko(FILE *, off_t, int); -off_t ftello(FILE *); -int ftrylockfile(FILE *); -void funlockfile(FILE *); -int getc_unlocked(FILE *); -int getchar_unlocked(void); - -int getw(FILE *); - -int pclose(FILE *); -FILE *popen(const char *, const char *); -int putc_unlocked(int, FILE *); -int putchar_unlocked(int); - -int putw(int, FILE *); -void setbuffer(FILE *, char *, int); -int setlinebuf(FILE *); - -int snprintf(char * , size_t, const char * , ...) ; -char *tempnam(const char *, const char *) __asm("_" "tempnam" "$UNIX2003"); -int vfscanf(FILE * , const char * , va_list) ; -int vscanf(const char * , va_list) ; -int vsnprintf(char * , size_t, const char * , va_list) ; -int vsscanf(const char * , const char * , va_list) ; - -FILE *zopen(const char *, const char *, int); - - - - - - - - -FILE *funopen(const void *, - int (*)(void *, char *, int), - int (*)(void *, const char *, int), - fpos_t (*)(void *, fpos_t, int), - int (*)(void *)); - -# 371 "/usr/include/stdio.h" 3 4 - -int __srget(FILE *); -int __svfscanf(FILE *, const char *, va_list) ; -int __swbuf(int, FILE *); - - - - - - - - -static __inline int __sputc(int _c, FILE *_p) { - if (--_p->_w >= 0 || (_p->_w >= _p->_lbfsize && (char)_c != '\n')) - return (*_p->_p++ = _c); - else - return (__swbuf(_c, _p)); -} -# 10 "../include/global.h" 2 -# 61 "../include/global.h" -typedef schar xchar; - -typedef xchar boolean; -# 74 "../include/global.h" -typedef uchar nhsym; -# 110 "../include/global.h" -# 1 "../include/coord.h" 1 -# 9 "../include/coord.h" -typedef struct nhcoord { - xchar x,y; -} coord; -# 111 "../include/global.h" 2 -# 121 "../include/global.h" -# 1 "../include/unixconf.h" 1 -# 285 "../include/unixconf.h" -# 1 "/usr/include/time.h" 1 3 4 -# 69 "/usr/include/time.h" 3 4 -# 1 "/usr/include/_structs.h" 1 3 4 -# 24 "/usr/include/_structs.h" 3 4 -# 1 "/usr/include/sys/_structs.h" 1 3 4 -# 88 "/usr/include/sys/_structs.h" 3 4 -struct timespec -{ - __darwin_time_t tv_sec; - long tv_nsec; -}; -# 25 "/usr/include/_structs.h" 2 3 4 -# 70 "/usr/include/time.h" 2 3 4 - - - - - - - -typedef __darwin_clock_t clock_t; -# 87 "/usr/include/time.h" 3 4 -typedef __darwin_time_t time_t; - - -struct tm { - int tm_sec; - int tm_min; - int tm_hour; - int tm_mday; - int tm_mon; - int tm_year; - int tm_wday; - int tm_yday; - int tm_isdst; - long tm_gmtoff; - char *tm_zone; -}; -# 113 "/usr/include/time.h" 3 4 -extern char *tzname[]; - - -extern int getdate_err; - -extern long timezone __asm("_" "timezone" "$UNIX2003"); - -extern int daylight; - - -char *asctime(const struct tm *); -clock_t clock(void) __asm("_" "clock" "$UNIX2003"); -char *ctime(const time_t *); -double difftime(time_t, time_t); -struct tm *getdate(const char *); -struct tm *gmtime(const time_t *); -struct tm *localtime(const time_t *); -time_t mktime(struct tm *) __asm("_" "mktime" "$UNIX2003"); -size_t strftime(char * , size_t, const char * , const struct tm * ) __asm("_" "strftime" "$UNIX2003"); -char *strptime(const char * , const char * , struct tm * ) __asm("_" "strptime" "$UNIX2003"); -time_t time(time_t *); - - -void tzset(void); - - - -char *asctime_r(const struct tm * , char * ); -char *ctime_r(const time_t *, char *); -struct tm *gmtime_r(const time_t * , struct tm * ); -struct tm *localtime_r(const time_t * , struct tm * ); - - -time_t posix2time(time_t); - - - -void tzsetwall(void); -time_t time2posix(time_t); -time_t timelocal(struct tm * const); -time_t timegm(struct tm * const); - - - -int nanosleep(const struct timespec *, struct timespec *) __asm("_" "nanosleep" "$UNIX2003"); - - -# 286 "../include/unixconf.h" 2 -# 296 "../include/unixconf.h" -# 1 "../include/system.h" 1 -# 21 "../include/system.h" -# 1 "/usr/include/sys/types.h" 1 3 4 -# 72 "/usr/include/sys/types.h" 3 4 -# 1 "/usr/include/sys/appleapiopts.h" 1 3 4 -# 73 "/usr/include/sys/types.h" 2 3 4 - - - - - -# 1 "/usr/include/machine/types.h" 1 3 4 -# 37 "/usr/include/machine/types.h" 3 4 -# 1 "/usr/include/i386/types.h" 1 3 4 -# 78 "/usr/include/i386/types.h" 3 4 -typedef signed char int8_t; - -typedef unsigned char u_int8_t; - - -typedef short int16_t; - -typedef unsigned short u_int16_t; - - -typedef int int32_t; - -typedef unsigned int u_int32_t; - - -typedef long long int64_t; - -typedef unsigned long long u_int64_t; - - - - -typedef int32_t register_t; - - - - -typedef __darwin_intptr_t intptr_t; - - - -typedef unsigned long int uintptr_t; - - - - -typedef u_int64_t user_addr_t; -typedef u_int64_t user_size_t; -typedef int64_t user_ssize_t; -typedef int64_t user_long_t; -typedef u_int64_t user_ulong_t; -typedef int64_t user_time_t; - - - - - -typedef u_int64_t syscall_arg_t; -# 38 "/usr/include/machine/types.h" 2 3 4 -# 79 "/usr/include/sys/types.h" 2 3 4 - - -# 1 "/usr/include/machine/endian.h" 1 3 4 -# 37 "/usr/include/machine/endian.h" 3 4 -# 1 "/usr/include/i386/endian.h" 1 3 4 -# 99 "/usr/include/i386/endian.h" 3 4 -# 1 "/usr/include/sys/_endian.h" 1 3 4 -# 124 "/usr/include/sys/_endian.h" 3 4 -# 1 "/usr/include/libkern/_OSByteOrder.h" 1 3 4 -# 66 "/usr/include/libkern/_OSByteOrder.h" 3 4 -# 1 "/usr/include/libkern/i386/_OSByteOrder.h" 1 3 4 -# 44 "/usr/include/libkern/i386/_OSByteOrder.h" 3 4 -static __inline__ -__uint16_t -_OSSwapInt16( - __uint16_t _data -) -{ - return ((_data << 8) | (_data >> 8)); -} - -static __inline__ -__uint32_t -_OSSwapInt32( - __uint32_t _data -) -{ - __asm__ ("bswap %0" : "+r" (_data)); - return _data; -} - - -static __inline__ -__uint64_t -_OSSwapInt64( - __uint64_t _data -) -{ - __asm__ ("bswap %%eax\n\t" - "bswap %%edx\n\t" - "xchgl %%eax, %%edx" - : "+A" (_data)); - return _data; -} -# 67 "/usr/include/libkern/_OSByteOrder.h" 2 3 4 -# 125 "/usr/include/sys/_endian.h" 2 3 4 -# 100 "/usr/include/i386/endian.h" 2 3 4 -# 38 "/usr/include/machine/endian.h" 2 3 4 -# 82 "/usr/include/sys/types.h" 2 3 4 - - -typedef unsigned char u_char; -typedef unsigned short u_short; -typedef unsigned int u_int; - -typedef unsigned long u_long; - - -typedef unsigned short ushort; -typedef unsigned int uint; - - -typedef u_int64_t u_quad_t; -typedef int64_t quad_t; -typedef quad_t * qaddr_t; - -typedef char * caddr_t; -typedef int32_t daddr_t; - - -typedef __darwin_dev_t dev_t; - - - -typedef u_int32_t fixpt_t; - - -typedef __darwin_blkcnt_t blkcnt_t; - - - - -typedef __darwin_blksize_t blksize_t; - - - - -typedef __darwin_gid_t gid_t; - - - - - -typedef __uint32_t in_addr_t; - - - - -typedef __uint16_t in_port_t; - - - -typedef __darwin_ino_t ino_t; - - - - - -typedef __darwin_ino64_t ino64_t; - - - - - - -typedef __int32_t key_t; - - - -typedef __darwin_mode_t mode_t; - - - - -typedef __uint16_t nlink_t; - - - - - -typedef __darwin_id_t id_t; - - - -typedef __darwin_pid_t pid_t; -# 176 "/usr/include/sys/types.h" 3 4 -typedef int32_t segsz_t; -typedef int32_t swblk_t; - - -typedef __darwin_uid_t uid_t; -# 235 "/usr/include/sys/types.h" 3 4 -typedef __darwin_ssize_t ssize_t; -# 245 "/usr/include/sys/types.h" 3 4 -typedef __darwin_useconds_t useconds_t; - - - - -typedef __darwin_suseconds_t suseconds_t; -# 260 "/usr/include/sys/types.h" 3 4 -# 1 "/usr/include/sys/_structs.h" 1 3 4 -# 183 "/usr/include/sys/_structs.h" 3 4 - -typedef struct fd_set { - __int32_t fds_bits[(((1024) + (((sizeof(__int32_t) * 8)) - 1)) / ((sizeof(__int32_t) * 8)))]; -} fd_set; - - - -static __inline int -__darwin_fd_isset(int _n, struct fd_set *_p) -{ - return (_p->fds_bits[_n/(sizeof(__int32_t) * 8)] & (1<<(_n % (sizeof(__int32_t) * 8)))); -} -# 261 "/usr/include/sys/types.h" 2 3 4 - - - - -typedef __int32_t fd_mask; -# 318 "/usr/include/sys/types.h" 3 4 -typedef __darwin_pthread_attr_t pthread_attr_t; - - - -typedef __darwin_pthread_cond_t pthread_cond_t; - - - -typedef __darwin_pthread_condattr_t pthread_condattr_t; - - - -typedef __darwin_pthread_mutex_t pthread_mutex_t; - - - -typedef __darwin_pthread_mutexattr_t pthread_mutexattr_t; - - - -typedef __darwin_pthread_once_t pthread_once_t; - - - -typedef __darwin_pthread_rwlock_t pthread_rwlock_t; - - - -typedef __darwin_pthread_rwlockattr_t pthread_rwlockattr_t; - - - -typedef __darwin_pthread_t pthread_t; - - - - - - -typedef __darwin_pthread_key_t pthread_key_t; - - - - - -typedef __darwin_fsblkcnt_t fsblkcnt_t; - - - - -typedef __darwin_fsfilcnt_t fsfilcnt_t; -# 22 "../include/system.h" 2 -# 92 "../include/system.h" -extern long lrand48(); -extern void srand48(); - - - - - -extern void exit (int); -# 118 "../include/system.h" -extern void free (genericptr_t); -# 127 "../include/system.h" -extern void perror (const char *); - - - - - - -extern void qsort (genericptr_t,size_t,size_t, int(*)(const void *,const void *)); -# 301 "../include/system.h" -# 1 "/usr/include/string.h" 1 3 4 -# 80 "/usr/include/string.h" 3 4 - -void *memchr(const void *, int, size_t); -int memcmp(const void *, const void *, size_t); -void *memcpy(void *, const void *, size_t); -void *memmove(void *, const void *, size_t); -void *memset(void *, int, size_t); - -char *stpcpy(char *, const char *); -char *strcasestr(const char *, const char *); - -char *strcat(char *, const char *); -char *strchr(const char *, int); -int strcmp(const char *, const char *); -int strcoll(const char *, const char *); -char *strcpy(char *, const char *); -size_t strcspn(const char *, const char *); -char *strerror(int) __asm("_" "strerror" "$UNIX2003"); -int strerror_r(int, char *, size_t); -size_t strlen(const char *); -char *strncat(char *, const char *, size_t); -int strncmp(const char *, const char *, size_t); -char *strncpy(char *, const char *, size_t); - -char *strnstr(const char *, const char *, size_t); - -char *strpbrk(const char *, const char *); -char *strrchr(const char *, int); -size_t strspn(const char *, const char *); -char *strstr(const char *, const char *); -char *strtok(char *, const char *); -size_t strxfrm(char *, const char *, size_t); - - - -void *memccpy(void *, const void *, int, size_t); -char *strtok_r(char *, const char *, char **); -char *strdup(const char *); - -int bcmp(const void *, const void *, size_t); -void bcopy(const void *, void *, size_t); -void bzero(void *, size_t); -int ffs(int); -int ffsl(long); -int fls(int); -int flsl(long); -char *index(const char *, int); -void memset_pattern4(void *, const void *, size_t); -void memset_pattern8(void *, const void *, size_t); -void memset_pattern16(void *, const void *, size_t); -char *rindex(const char *, int); -int strcasecmp(const char *, const char *); -size_t strlcat(char *, const char *, size_t); -size_t strlcpy(char *, const char *, size_t); -void strmode(int, char *); -int strncasecmp(const char *, const char *, size_t); -char *strsep(char **, const char *); -char *strsignal(int sig); -void swab(const void * , void * , ssize_t); - - - -# 302 "../include/system.h" 2 -# 353 "../include/system.h" -extern unsigned sleep(); -# 362 "../include/system.h" -extern char *getenv (const char *); -extern char *getlogin(); - - - - - - -extern pid_t getpid(void); -extern uid_t getuid(void); -extern gid_t getgid(void); -# 507 "../include/system.h" -extern int tgetent (char *,const char *); -extern void tputs (const char *,int,int (*)()); - -extern int tgetnum (const char *); -extern int tgetflag (const char *); -extern char *tgetstr (const char *,char **); -extern char *tgoto (const char *,int,int); -# 524 "../include/system.h" -extern struct tm *localtime (const time_t *); - - - - -extern time_t time (time_t *); -# 297 "../include/unixconf.h" 2 - - -# 1 "/usr/include/stdlib.h" 1 3 4 -# 61 "/usr/include/stdlib.h" 3 4 -# 1 "/usr/include/available.h" 1 3 4 -# 62 "/usr/include/stdlib.h" 2 3 4 - - - -# 1 "/usr/include/sys/wait.h" 1 3 4 -# 79 "/usr/include/sys/wait.h" 3 4 -typedef enum { - P_ALL, - P_PID, - P_PGID -} idtype_t; -# 116 "/usr/include/sys/wait.h" 3 4 -# 1 "/usr/include/sys/signal.h" 1 3 4 -# 81 "/usr/include/sys/signal.h" 3 4 -# 1 "/usr/include/machine/signal.h" 1 3 4 -# 34 "/usr/include/machine/signal.h" 3 4 -# 1 "/usr/include/i386/signal.h" 1 3 4 -# 39 "/usr/include/i386/signal.h" 3 4 -typedef int sig_atomic_t; -# 55 "/usr/include/i386/signal.h" 3 4 -# 1 "/usr/include/i386/_structs.h" 1 3 4 -# 56 "/usr/include/i386/signal.h" 2 3 4 -# 35 "/usr/include/machine/signal.h" 2 3 4 -# 82 "/usr/include/sys/signal.h" 2 3 4 -# 154 "/usr/include/sys/signal.h" 3 4 -# 1 "/usr/include/sys/_structs.h" 1 3 4 -# 57 "/usr/include/sys/_structs.h" 3 4 -# 1 "/usr/include/machine/_structs.h" 1 3 4 -# 31 "/usr/include/machine/_structs.h" 3 4 -# 1 "/usr/include/i386/_structs.h" 1 3 4 -# 38 "/usr/include/i386/_structs.h" 3 4 -# 1 "/usr/include/mach/i386/_structs.h" 1 3 4 -# 43 "/usr/include/mach/i386/_structs.h" 3 4 -struct __darwin_i386_thread_state -{ - unsigned int __eax; - unsigned int __ebx; - unsigned int __ecx; - unsigned int __edx; - unsigned int __edi; - unsigned int __esi; - unsigned int __ebp; - unsigned int __esp; - unsigned int __ss; - unsigned int __eflags; - unsigned int __eip; - unsigned int __cs; - unsigned int __ds; - unsigned int __es; - unsigned int __fs; - unsigned int __gs; -}; -# 89 "/usr/include/mach/i386/_structs.h" 3 4 -struct __darwin_fp_control -{ - unsigned short __invalid :1, - __denorm :1, - __zdiv :1, - __ovrfl :1, - __undfl :1, - __precis :1, - :2, - __pc :2, - - - - - - __rc :2, - - - - - - - :1, - :3; -}; -typedef struct __darwin_fp_control __darwin_fp_control_t; -# 147 "/usr/include/mach/i386/_structs.h" 3 4 -struct __darwin_fp_status -{ - unsigned short __invalid :1, - __denorm :1, - __zdiv :1, - __ovrfl :1, - __undfl :1, - __precis :1, - __stkflt :1, - __errsumm :1, - __c0 :1, - __c1 :1, - __c2 :1, - __tos :3, - __c3 :1, - __busy :1; -}; -typedef struct __darwin_fp_status __darwin_fp_status_t; -# 191 "/usr/include/mach/i386/_structs.h" 3 4 -struct __darwin_mmst_reg -{ - char __mmst_reg[10]; - char __mmst_rsrv[6]; -}; -# 210 "/usr/include/mach/i386/_structs.h" 3 4 -struct __darwin_xmm_reg -{ - char __xmm_reg[16]; -}; -# 232 "/usr/include/mach/i386/_structs.h" 3 4 -struct __darwin_i386_float_state -{ - int __fpu_reserved[2]; - struct __darwin_fp_control __fpu_fcw; - struct __darwin_fp_status __fpu_fsw; - __uint8_t __fpu_ftw; - __uint8_t __fpu_rsrv1; - __uint16_t __fpu_fop; - __uint32_t __fpu_ip; - __uint16_t __fpu_cs; - __uint16_t __fpu_rsrv2; - __uint32_t __fpu_dp; - __uint16_t __fpu_ds; - __uint16_t __fpu_rsrv3; - __uint32_t __fpu_mxcsr; - __uint32_t __fpu_mxcsrmask; - struct __darwin_mmst_reg __fpu_stmm0; - struct __darwin_mmst_reg __fpu_stmm1; - struct __darwin_mmst_reg __fpu_stmm2; - struct __darwin_mmst_reg __fpu_stmm3; - struct __darwin_mmst_reg __fpu_stmm4; - struct __darwin_mmst_reg __fpu_stmm5; - struct __darwin_mmst_reg __fpu_stmm6; - struct __darwin_mmst_reg __fpu_stmm7; - struct __darwin_xmm_reg __fpu_xmm0; - struct __darwin_xmm_reg __fpu_xmm1; - struct __darwin_xmm_reg __fpu_xmm2; - struct __darwin_xmm_reg __fpu_xmm3; - struct __darwin_xmm_reg __fpu_xmm4; - struct __darwin_xmm_reg __fpu_xmm5; - struct __darwin_xmm_reg __fpu_xmm6; - struct __darwin_xmm_reg __fpu_xmm7; - char __fpu_rsrv4[14*16]; - int __fpu_reserved1; -}; -# 308 "/usr/include/mach/i386/_structs.h" 3 4 -struct __darwin_i386_exception_state -{ - unsigned int __trapno; - unsigned int __err; - unsigned int __faultvaddr; -}; -# 326 "/usr/include/mach/i386/_structs.h" 3 4 -struct __darwin_x86_debug_state32 -{ - unsigned int __dr0; - unsigned int __dr1; - unsigned int __dr2; - unsigned int __dr3; - unsigned int __dr4; - unsigned int __dr5; - unsigned int __dr6; - unsigned int __dr7; -}; -# 358 "/usr/include/mach/i386/_structs.h" 3 4 -struct __darwin_x86_thread_state64 -{ - __uint64_t __rax; - __uint64_t __rbx; - __uint64_t __rcx; - __uint64_t __rdx; - __uint64_t __rdi; - __uint64_t __rsi; - __uint64_t __rbp; - __uint64_t __rsp; - __uint64_t __r8; - __uint64_t __r9; - __uint64_t __r10; - __uint64_t __r11; - __uint64_t __r12; - __uint64_t __r13; - __uint64_t __r14; - __uint64_t __r15; - __uint64_t __rip; - __uint64_t __rflags; - __uint64_t __cs; - __uint64_t __fs; - __uint64_t __gs; -}; -# 413 "/usr/include/mach/i386/_structs.h" 3 4 -struct __darwin_x86_float_state64 -{ - int __fpu_reserved[2]; - struct __darwin_fp_control __fpu_fcw; - struct __darwin_fp_status __fpu_fsw; - __uint8_t __fpu_ftw; - __uint8_t __fpu_rsrv1; - __uint16_t __fpu_fop; - - - __uint32_t __fpu_ip; - __uint16_t __fpu_cs; - - __uint16_t __fpu_rsrv2; - - - __uint32_t __fpu_dp; - __uint16_t __fpu_ds; - - __uint16_t __fpu_rsrv3; - __uint32_t __fpu_mxcsr; - __uint32_t __fpu_mxcsrmask; - struct __darwin_mmst_reg __fpu_stmm0; - struct __darwin_mmst_reg __fpu_stmm1; - struct __darwin_mmst_reg __fpu_stmm2; - struct __darwin_mmst_reg __fpu_stmm3; - struct __darwin_mmst_reg __fpu_stmm4; - struct __darwin_mmst_reg __fpu_stmm5; - struct __darwin_mmst_reg __fpu_stmm6; - struct __darwin_mmst_reg __fpu_stmm7; - struct __darwin_xmm_reg __fpu_xmm0; - struct __darwin_xmm_reg __fpu_xmm1; - struct __darwin_xmm_reg __fpu_xmm2; - struct __darwin_xmm_reg __fpu_xmm3; - struct __darwin_xmm_reg __fpu_xmm4; - struct __darwin_xmm_reg __fpu_xmm5; - struct __darwin_xmm_reg __fpu_xmm6; - struct __darwin_xmm_reg __fpu_xmm7; - struct __darwin_xmm_reg __fpu_xmm8; - struct __darwin_xmm_reg __fpu_xmm9; - struct __darwin_xmm_reg __fpu_xmm10; - struct __darwin_xmm_reg __fpu_xmm11; - struct __darwin_xmm_reg __fpu_xmm12; - struct __darwin_xmm_reg __fpu_xmm13; - struct __darwin_xmm_reg __fpu_xmm14; - struct __darwin_xmm_reg __fpu_xmm15; - char __fpu_rsrv4[6*16]; - int __fpu_reserved1; -}; -# 517 "/usr/include/mach/i386/_structs.h" 3 4 -struct __darwin_x86_exception_state64 -{ - unsigned int __trapno; - unsigned int __err; - __uint64_t __faultvaddr; -}; -# 535 "/usr/include/mach/i386/_structs.h" 3 4 -struct __darwin_x86_debug_state64 -{ - __uint64_t __dr0; - __uint64_t __dr1; - __uint64_t __dr2; - __uint64_t __dr3; - __uint64_t __dr4; - __uint64_t __dr5; - __uint64_t __dr6; - __uint64_t __dr7; -}; -# 39 "/usr/include/i386/_structs.h" 2 3 4 -# 48 "/usr/include/i386/_structs.h" 3 4 -struct __darwin_mcontext32 -{ - struct __darwin_i386_exception_state __es; - struct __darwin_i386_thread_state __ss; - struct __darwin_i386_float_state __fs; -}; -# 68 "/usr/include/i386/_structs.h" 3 4 -struct __darwin_mcontext64 -{ - struct __darwin_x86_exception_state64 __es; - struct __darwin_x86_thread_state64 __ss; - struct __darwin_x86_float_state64 __fs; -}; -# 94 "/usr/include/i386/_structs.h" 3 4 -typedef struct __darwin_mcontext32 *mcontext_t; -# 32 "/usr/include/machine/_structs.h" 2 3 4 -# 58 "/usr/include/sys/_structs.h" 2 3 4 -# 75 "/usr/include/sys/_structs.h" 3 4 -struct __darwin_sigaltstack -{ - void *ss_sp; - __darwin_size_t ss_size; - int ss_flags; -}; -# 128 "/usr/include/sys/_structs.h" 3 4 -struct __darwin_ucontext -{ - int uc_onstack; - __darwin_sigset_t uc_sigmask; - struct __darwin_sigaltstack uc_stack; - struct __darwin_ucontext *uc_link; - __darwin_size_t uc_mcsize; - struct __darwin_mcontext32 *uc_mcontext; - - - -}; -# 218 "/usr/include/sys/_structs.h" 3 4 -typedef struct __darwin_sigaltstack stack_t; -# 227 "/usr/include/sys/_structs.h" 3 4 -typedef struct __darwin_ucontext ucontext_t; -# 155 "/usr/include/sys/signal.h" 2 3 4 -# 168 "/usr/include/sys/signal.h" 3 4 -typedef __darwin_sigset_t sigset_t; -# 181 "/usr/include/sys/signal.h" 3 4 -union sigval { - - int sival_int; - void *sival_ptr; -}; - - - - - -struct sigevent { - int sigev_notify; - int sigev_signo; - union sigval sigev_value; - void (*sigev_notify_function)(union sigval); - pthread_attr_t *sigev_notify_attributes; -}; - - -typedef struct __siginfo { - int si_signo; - int si_errno; - int si_code; - pid_t si_pid; - uid_t si_uid; - int si_status; - void *si_addr; - union sigval si_value; - long si_band; - unsigned long __pad[7]; -} siginfo_t; -# 292 "/usr/include/sys/signal.h" 3 4 -union __sigaction_u { - void (*__sa_handler)(int); - void (*__sa_sigaction)(int, struct __siginfo *, - void *); -}; - - -struct __sigaction { - union __sigaction_u __sigaction_u; - void (*sa_tramp)(void *, int, int, siginfo_t *, void *); - sigset_t sa_mask; - int sa_flags; -}; - - - - -struct sigaction { - union __sigaction_u __sigaction_u; - sigset_t sa_mask; - int sa_flags; -}; -# 354 "/usr/include/sys/signal.h" 3 4 -typedef void (*sig_t)(int); -# 371 "/usr/include/sys/signal.h" 3 4 -struct sigvec { - void (*sv_handler)(int); - int sv_mask; - int sv_flags; -}; -# 390 "/usr/include/sys/signal.h" 3 4 -struct sigstack { - char *ss_sp; - int ss_onstack; -}; -# 412 "/usr/include/sys/signal.h" 3 4 - -void (*signal(int, void (*)(int)))(int); - -# 117 "/usr/include/sys/wait.h" 2 3 4 -# 1 "/usr/include/sys/resource.h" 1 3 4 -# 76 "/usr/include/sys/resource.h" 3 4 -# 1 "/usr/include/sys/_structs.h" 1 3 4 -# 100 "/usr/include/sys/_structs.h" 3 4 -struct timeval -{ - __darwin_time_t tv_sec; - __darwin_suseconds_t tv_usec; -}; -# 77 "/usr/include/sys/resource.h" 2 3 4 -# 88 "/usr/include/sys/resource.h" 3 4 -typedef __uint64_t rlim_t; -# 142 "/usr/include/sys/resource.h" 3 4 -struct rusage { - struct timeval ru_utime; - struct timeval ru_stime; -# 153 "/usr/include/sys/resource.h" 3 4 - long ru_maxrss; - - long ru_ixrss; - long ru_idrss; - long ru_isrss; - long ru_minflt; - long ru_majflt; - long ru_nswap; - long ru_inblock; - long ru_oublock; - long ru_msgsnd; - long ru_msgrcv; - long ru_nsignals; - long ru_nvcsw; - long ru_nivcsw; - - -}; -# 213 "/usr/include/sys/resource.h" 3 4 -struct rlimit { - rlim_t rlim_cur; - rlim_t rlim_max; -}; -# 235 "/usr/include/sys/resource.h" 3 4 - -int getpriority(int, id_t); - -int getiopolicy_np(int, int); - -int getrlimit(int, struct rlimit *) __asm("_" "getrlimit" "$UNIX2003"); -int getrusage(int, struct rusage *); -int setpriority(int, id_t, int); - -int setiopolicy_np(int, int, int); - -int setrlimit(int, const struct rlimit *) __asm("_" "setrlimit" "$UNIX2003"); - -# 118 "/usr/include/sys/wait.h" 2 3 4 -# 201 "/usr/include/sys/wait.h" 3 4 -union wait { - int w_status; - - - - struct { - - unsigned int w_Termsig:7, - w_Coredump:1, - w_Retcode:8, - w_Filler:16; - - - - - - - - } w_T; - - - - - - struct { - - unsigned int w_Stopval:8, - w_Stopsig:8, - w_Filler:16; - - - - - - - } w_S; -}; -# 254 "/usr/include/sys/wait.h" 3 4 - -pid_t wait(int *) __asm("_" "wait" "$UNIX2003"); -pid_t waitpid(pid_t, int *, int) __asm("_" "waitpid" "$UNIX2003"); - -int waitid(idtype_t, id_t, siginfo_t *, int) __asm("_" "waitid" "$UNIX2003"); - - -pid_t wait3(int *, int, struct rusage *); -pid_t wait4(pid_t, int *, int, struct rusage *); - - -# 66 "/usr/include/stdlib.h" 2 3 4 - -# 1 "/usr/include/alloca.h" 1 3 4 -# 35 "/usr/include/alloca.h" 3 4 - -void *alloca(size_t); - -# 68 "/usr/include/stdlib.h" 2 3 4 -# 81 "/usr/include/stdlib.h" 3 4 -typedef __darwin_ct_rune_t ct_rune_t; - - - - -typedef __darwin_rune_t rune_t; - - - - - - -typedef __darwin_wchar_t wchar_t; - - - -typedef struct { - int quot; - int rem; -} div_t; - -typedef struct { - long quot; - long rem; -} ldiv_t; - - -typedef struct { - long long quot; - long long rem; -} lldiv_t; -# 134 "/usr/include/stdlib.h" 3 4 -extern int __mb_cur_max; -# 144 "/usr/include/stdlib.h" 3 4 - -void abort(void) __attribute__((__noreturn__)); -int abs(int) __attribute__((__const__)); -int atexit(void (*)(void)); -double atof(const char *); -int atoi(const char *); -long atol(const char *); - -long long - atoll(const char *); - -void *bsearch(const void *, const void *, size_t, - size_t, int (*)(const void *, const void *)); -void *calloc(size_t, size_t); -div_t div(int, int) __attribute__((__const__)); -void exit(int) __attribute__((__noreturn__)); -void free(void *); -char *getenv(const char *); -long labs(long) __attribute__((__const__)); -ldiv_t ldiv(long, long) __attribute__((__const__)); - -long long - llabs(long long); -lldiv_t lldiv(long long, long long); - -void *malloc(size_t); -int mblen(const char *, size_t); -size_t mbstowcs(wchar_t * , const char * , size_t); -int mbtowc(wchar_t * , const char * , size_t); -void qsort(void *, size_t, size_t, - int (*)(const void *, const void *)); -int rand(void); -void *realloc(void *, size_t); -void srand(unsigned); -double strtod(const char *, char **) __asm("_" "strtod" "$UNIX2003"); -float strtof(const char *, char **) __asm("_" "strtof" "$UNIX2003"); -long strtol(const char *, char **, int); -long double - strtold(const char *, char **) ; - -long long - strtoll(const char *, char **, int); - -unsigned long - strtoul(const char *, char **, int); - -unsigned long long - strtoull(const char *, char **, int); - -int system(const char *) __asm("_" "system" "$UNIX2003"); -size_t wcstombs(char * , const wchar_t * , size_t); -int wctomb(char *, wchar_t); - - -void _Exit(int) __attribute__((__noreturn__)); -long a64l(const char *); -double drand48(void); -char *ecvt(double, int, int *, int *); -double erand48(unsigned short[3]); -char *fcvt(double, int, int *, int *); -char *gcvt(double, int, char *); -int getsubopt(char **, char * const *, char **); -int grantpt(int); - -char *initstate(unsigned, char *, size_t); - - - -long jrand48(unsigned short[3]); -char *l64a(long); -void lcong48(unsigned short[7]); -long lrand48(void); -char *mktemp(char *); -int mkstemp(char *); -long mrand48(void); -long nrand48(unsigned short[3]); -int posix_openpt(int); -char *ptsname(int); -int putenv(char *) __asm("_" "putenv" "$UNIX2003"); -long random(void); -int rand_r(unsigned *); - -char *realpath(const char * , char * ) __asm("_" "realpath" "$DARWIN_EXTSN"); - - - -unsigned short - *seed48(unsigned short[3]); -int setenv(const char *, const char *, int) __asm("_" "setenv" "$UNIX2003"); - -void setkey(const char *) __asm("_" "setkey" "$UNIX2003"); - - - -char *setstate(const char *); -void srand48(long); - -void srandom(unsigned); - - - -int unlockpt(int); - -int unsetenv(const char *) __asm("_" "unsetenv" "$UNIX2003"); -# 266 "/usr/include/stdlib.h" 3 4 -u_int32_t - arc4random(void); -void arc4random_addrandom(unsigned char *dat, int datlen); -void arc4random_stir(void); - - -char *cgetcap(char *, const char *, int); -int cgetclose(void); -int cgetent(char **, char **, const char *); -int cgetfirst(char **, char **); -int cgetmatch(const char *, const char *); -int cgetnext(char **, char **); -int cgetnum(char *, const char *, long *); -int cgetset(const char *); -int cgetstr(char *, const char *, char **); -int cgetustr(char *, const char *, char **); - -int daemon(int, int) __asm("_" "daemon" "$1050") __attribute__((deprecated)); -char *devname(dev_t, mode_t); -char *devname_r(dev_t, mode_t, char *buf, int len); -char *getbsize(int *, long *); -int getloadavg(double [], int); -const char - *getprogname(void); - -int heapsort(void *, size_t, size_t, - int (*)(const void *, const void *)); -int mergesort(void *, size_t, size_t, - int (*)(const void *, const void *)); -void qsort_r(void *, size_t, size_t, void *, - int (*)(void *, const void *, const void *)); -int radixsort(const unsigned char **, int, const unsigned char *, - unsigned); -void setprogname(const char *); -int sradixsort(const unsigned char **, int, const unsigned char *, - unsigned); -void sranddev(void); -void srandomdev(void); -void *reallocf(void *, size_t); - -long long - strtoq(const char *, char **, int); -unsigned long long - strtouq(const char *, char **, int); - -extern char *suboptarg; -void *valloc(size_t); - - - - - - - -# 300 "../include/unixconf.h" 2 -# 1 "/usr/include/unistd.h" 1 3 4 -# 72 "/usr/include/unistd.h" 3 4 -# 1 "/usr/include/sys/unistd.h" 1 3 4 -# 138 "/usr/include/sys/unistd.h" 3 4 -struct accessx_descriptor { - unsigned int ad_name_offset; - int ad_flags; - int ad_pad[2]; -}; -# 73 "/usr/include/unistd.h" 2 3 4 -# 133 "/usr/include/unistd.h" 3 4 -typedef __darwin_uuid_t uuid_t; -# 414 "/usr/include/unistd.h" 3 4 - - -void _exit(int) __attribute__((__noreturn__)); -int access(const char *, int); -unsigned int - alarm(unsigned int); -int chdir(const char *); -int chown(const char *, uid_t, gid_t); -int close(int) __asm("_" "close" "$UNIX2003"); -size_t confstr(int, char *, size_t) __asm("_" "confstr" "$UNIX2003"); -char *crypt(const char *, const char *); -char *ctermid(char *); -int dup(int); -int dup2(int, int); - -void encrypt(char *, int) __asm("_" "encrypt" "$UNIX2003"); - - - -int execl(const char *, const char *, ...); -int execle(const char *, const char *, ...); -int execlp(const char *, const char *, ...); -int execv(const char *, char * const *); -int execve(const char *, char * const *, char * const *); -int execvp(const char *, char * const *); -int fchown(int, uid_t, gid_t); -int fchdir(int); -pid_t fork(void); -long fpathconf(int, int); -int fsync(int) __asm("_" "fsync" "$UNIX2003"); -int ftruncate(int, off_t); -char *getcwd(char *, size_t); -gid_t getegid(void); -uid_t geteuid(void); -gid_t getgid(void); -int getgroups(int, gid_t []); -long gethostid(void); -int gethostname(char *, size_t); -char *getlogin(void); -int getlogin_r(char *, size_t); -int getopt(int, char * const [], const char *) __asm("_" "getopt" "$UNIX2003"); -pid_t getpgid(pid_t); -pid_t getpgrp(void); -pid_t getpid(void); -pid_t getppid(void); -pid_t getsid(pid_t); -uid_t getuid(void); -char *getwd(char *); -int isatty(int); -int lchown(const char *, uid_t, gid_t) __asm("_" "lchown" "$UNIX2003"); -int link(const char *, const char *); -int lockf(int, int, off_t) __asm("_" "lockf" "$UNIX2003"); -off_t lseek(int, off_t, int); -int nice(int) __asm("_" "nice" "$UNIX2003"); -long pathconf(const char *, int); -int pause(void) __asm("_" "pause" "$UNIX2003"); -int pipe(int [2]); -ssize_t pread(int, void *, size_t, off_t) __asm("_" "pread" "$UNIX2003"); -ssize_t pwrite(int, const void *, size_t, off_t) __asm("_" "pwrite" "$UNIX2003"); -ssize_t read(int, void *, size_t) __asm("_" "read" "$UNIX2003"); -ssize_t readlink(const char * , char * , size_t); -int rmdir(const char *); -int setegid(gid_t); -int seteuid(uid_t); -int setgid(gid_t); -int setpgid(pid_t, pid_t); - -pid_t setpgrp(void) __asm("_" "setpgrp" "$UNIX2003"); - - - -int setregid(gid_t, gid_t) __asm("_" "setregid" "$UNIX2003"); -int setreuid(uid_t, uid_t) __asm("_" "setreuid" "$UNIX2003"); -pid_t setsid(void); -int setuid(uid_t); -unsigned int - sleep(unsigned int) __asm("_" "sleep" "$UNIX2003"); -void swab(const void * , void * , ssize_t); -int symlink(const char *, const char *); -void sync(void); -long sysconf(int); -pid_t tcgetpgrp(int); -int tcsetpgrp(int, pid_t); -int truncate(const char *, off_t); -char *ttyname(int); - -int ttyname_r(int, char *, size_t) __asm("_" "ttyname_r" "$UNIX2003"); - - - -useconds_t - ualarm(useconds_t, useconds_t); -int unlink(const char *); -int usleep(useconds_t) __asm("_" "usleep" "$UNIX2003"); -pid_t vfork(void); -ssize_t write(int, const void *, size_t) __asm("_" "write" "$UNIX2003"); - -extern char *optarg; -extern int optind, opterr, optopt; - - -# 1 "/usr/include/sys/select.h" 1 3 4 -# 78 "/usr/include/sys/select.h" 3 4 -# 1 "/usr/include/sys/_structs.h" 1 3 4 -# 79 "/usr/include/sys/select.h" 2 3 4 -# 134 "/usr/include/sys/select.h" 3 4 - - - -int pselect(int, fd_set * , fd_set * , - fd_set * , const struct timespec * , - const sigset_t * ) - - - - - - - __asm("_" "pselect" "$UNIX2003") - - - ; - - -# 1 "/usr/include/sys/_select.h" 1 3 4 -# 39 "/usr/include/sys/_select.h" 3 4 -int select(int, fd_set * , fd_set * , - fd_set * , struct timeval * ) - - - - - - - __asm("_" "select" "$UNIX2003") - - - ; -# 153 "/usr/include/sys/select.h" 2 3 4 - - -# 516 "/usr/include/unistd.h" 2 3 4 - -void _Exit(int) __attribute__((__noreturn__)); -int accessx_np(const struct accessx_descriptor *, size_t, int *, uid_t); -int acct(const char *); -int add_profil(char *, size_t, unsigned long, unsigned int); -void *brk(const void *); -int chroot(const char *); -void endusershell(void); -int execvP(const char *, const char *, char * const *); -char *fflagstostr(unsigned long); -int getdtablesize(void); -int getdomainname(char *, int); -int getgrouplist(const char *, int, int *, int *); -mode_t getmode(const void *, mode_t); -int getpagesize(void) __attribute__((__const__)); -char *getpass(const char *); -int getpeereid(int, uid_t *, gid_t *); -int getpgid(pid_t _pid); -int getsgroups_np(int *, uuid_t); -int getsid(pid_t _pid); -char *getusershell(void); -int getwgroups_np(int *, uuid_t); -int initgroups(const char *, int); -int iruserok(unsigned long, int, const char *, const char *); -int iruserok_sa(const void *, int, int, const char *, const char *); -int issetugid(void); -char *mkdtemp(char *); -int mknod(const char *, mode_t, dev_t); -int mkstemp(char *); -int mkstemps(char *, int); -char *mktemp(char *); -int nfssvc(int, void *); -int profil(char *, size_t, unsigned long, unsigned int); -int pthread_setugid_np(uid_t, gid_t); -int pthread_getugid_np( uid_t *, gid_t *); -int rcmd(char **, int, const char *, const char *, const char *, int *); -int rcmd_af(char **, int, const char *, const char *, const char *, int *, - int); -int reboot(int); -int revoke(const char *); -int rresvport(int *); -int rresvport_af(int *, int); -int ruserok(const char *, int, const char *, const char *); -void *sbrk(int); -int setdomainname(const char *, int); -int setgroups(int, const gid_t *); -void sethostid(long); -int sethostname(const char *, int); - -void setkey(const char *) __asm("_" "setkey" "$UNIX2003"); - - - -int setlogin(const char *); -void *setmode(const char *); -int setrgid(gid_t); -int setruid(uid_t); -int setsgroups_np(int, const uuid_t); -void setusershell(void); -int setwgroups_np(int, const uuid_t); -int strtofflags(char **, unsigned long *, unsigned long *); -int swapon(const char *); -int syscall(int, ...); -int ttyslot(void); -int undelete(const char *); -int unwhiteout(const char *); -void *valloc(size_t); - -extern char *suboptarg; -int getsubopt(char **, char * const *, char **); -# 597 "/usr/include/unistd.h" 3 4 -int getattrlist(const char*,void*,void*,size_t,unsigned long) __asm("_" "getattrlist" "$UNIX2003"); -int setattrlist(const char*,void*,void*,size_t,unsigned long) __asm("_" "setattrlist" "$UNIX2003"); -int exchangedata(const char*,const char*,unsigned long); -int getdirentriesattr(int,void*,void*,size_t,unsigned long*,unsigned long*,unsigned long*,unsigned long); -int searchfs(const char*,void*,void*,unsigned long,unsigned long,void*); - -int fsctl(const char *,unsigned long,void*,unsigned long); - - -extern int optreset; - - - -# 301 "../include/unixconf.h" 2 -# 122 "../include/global.h" 2 -# 274 "../include/global.h" -extern long *alloc (unsigned int); -extern char *dupstr (const char *); - - - - -struct version_info { - unsigned long incarnation; - unsigned long feature_set; - unsigned long entity_count; - unsigned long struct_sizes1; - unsigned long struct_sizes2; -}; - -struct savefile_info { - unsigned long sfi1; - unsigned long sfi2; - unsigned long sfi3; -}; -# 444 "../include/config.h" 2 -# 12 "../include/hack.h" 2 - -# 1 "../include/lint.h" 1 -# 14 "../include/hack.h" 2 -# 120 "../include/hack.h" -# 1 "../include/align.h" 1 -# 10 "../include/align.h" -typedef schar aligntyp; - -typedef struct align { - aligntyp type; - int record; -} align; -# 121 "../include/hack.h" 2 -# 1 "../include/dungeon.h" 1 -# 9 "../include/dungeon.h" -typedef struct d_flags { - unsigned town:1; - unsigned hellish:1; - unsigned maze_like:1; - unsigned rogue_like:1; - unsigned align:3; - unsigned unused:1; -} d_flags; - -typedef struct d_level { - xchar dnum; - xchar dlevel; -} d_level; - -typedef struct s_level { - struct s_level *next; - d_level dlevel; - char proto[15]; - char boneid; - uchar rndlevs; - d_flags flags; -} s_level; - -typedef struct stairway { - xchar sx, sy; - d_level tolev; - char up; -} stairway; -# 47 "../include/dungeon.h" -typedef struct dest_area { - xchar lx, ly; - xchar hx, hy; - xchar nlx, nly; - xchar nhx, nhy; -} dest_area; - -typedef struct dungeon { - char dname[24]; - char proto[15]; - char boneid; - d_flags flags; - xchar entry_lev; - xchar num_dunlevs; - xchar dunlev_ureached; - int ledger_start, - depth_start; -} dungeon; - - - - - - - -typedef struct branch { - struct branch *next; - int id; - int type; - d_level end1; - d_level end2; - boolean end1_up; -} branch; -# 153 "../include/dungeon.h" -struct linfo { - unsigned char flags; -# 172 "../include/dungeon.h" -}; -# 197 "../include/dungeon.h" -typedef struct mapseen { - struct mapseen *next; - branch *br; - d_level lev; - struct mapseen_feat { - - unsigned nfount:2; - unsigned nsink:2; - unsigned naltar:2; - unsigned nthrone:2; - - unsigned ngrave:2; - unsigned ntree:2; - unsigned water:2; - unsigned lava:2; - - unsigned ice:2; - - unsigned nshop:2; - unsigned ntemple:2; - - - unsigned msalign:2; - - unsigned shoptype:5; - } feat; - struct mapseen_flags { - unsigned unreachable:1; - unsigned forgot:1; - unsigned knownbones:1; - unsigned oracle:1; - unsigned sokosolved:1; - unsigned bigroom:1; - unsigned castle:1; - unsigned castletune:1; - - unsigned valley:1; - unsigned msanctum:1; - unsigned ludios:1; - unsigned roguelevel:1; - } flags; - - char *custom; - unsigned custom_lth; - struct mapseen_rooms { - unsigned seen:1; - unsigned untended:1; - } msrooms[(40 +1)*2]; - - struct cemetery *final_resting_place; -} mapseen; -# 122 "../include/hack.h" 2 -# 1 "../include/monsym.h" 1 -# 123 "../include/hack.h" 2 -# 1 "../include/mkroom.h" 1 -# 11 "../include/mkroom.h" -struct mkroom { - schar lx,hx,ly,hy; - schar rtype; - schar orig_rtype; - schar rlit; - schar needfill; - schar needjoining; - schar doorct; - schar fdoor; - schar nsubrooms; - boolean irregular; - struct mkroom *sbrooms[24]; - struct monst *resident; -}; - -struct shclass { - const char *name; - char symb; - int prob; - schar shdist; - - - - struct itp { - int iprob; - int itype; - } iprobs[6]; - const char * const *shknms; -}; - -extern struct mkroom rooms[(40 +1)*2]; -extern struct mkroom* subrooms; - - - - - - - -extern struct mkroom *dnstairs_room, *upstairs_room, *sstairs_room; - -extern coord doors[120]; -# 124 "../include/hack.h" 2 -# 1 "../include/objclass.h" 1 -# 12 "../include/objclass.h" -struct objclass { - short oc_name_idx; - short oc_descr_idx; - char * oc_uname; - unsigned oc_name_known:1; - unsigned oc_merge:1; - unsigned oc_uses_known:1; - - - - unsigned oc_pre_discovered:1; - - unsigned oc_magic:1; - unsigned oc_charged:1; - unsigned oc_unique:1; - unsigned oc_nowish:1; - - unsigned oc_big:1; - - - unsigned oc_tough:1; - - unsigned oc_dir:2; -# 45 "../include/objclass.h" - unsigned oc_material:5; -# 82 "../include/objclass.h" - schar oc_subtyp; -# 93 "../include/objclass.h" - uchar oc_oprop; - char oc_class; - schar oc_delay; - uchar oc_color; - - short oc_prob; - unsigned short oc_weight; - short oc_cost; - - - schar oc_wsdam, oc_wldam; - schar oc_oc1, oc_oc2; - - - - - - - unsigned short oc_nutrition; -}; - -struct class_sym { - char sym; - const char *name; - const char *explain; -}; - -struct objdescr { - const char *oc_name; - const char *oc_descr; -}; - -extern struct objclass objects[]; -extern struct objdescr obj_descr[]; -# 184 "../include/objclass.h" -struct fruit { - char fname[32]; - int fid; - struct fruit *nextf; -}; -# 125 "../include/hack.h" 2 -# 1 "../include/youprop.h" 1 -# 9 "../include/youprop.h" -# 1 "../include/prop.h" 1 -# 89 "../include/prop.h" -struct prop { - - long extrinsic; -# 118 "../include/prop.h" - long blocked; - - - long intrinsic; -# 132 "../include/prop.h" -}; -# 10 "../include/youprop.h" 2 -# 1 "../include/permonst.h" 1 -# 22 "../include/permonst.h" -struct attack { - uchar aatyp; - uchar adtyp, damn, damd; -}; -# 40 "../include/permonst.h" -# 1 "../include/monattk.h" 1 -# 41 "../include/permonst.h" 2 -# 1 "../include/monflag.h" 1 -# 42 "../include/permonst.h" 2 - -struct permonst { - const char *mname; - char mlet; - schar mlevel, - mmove, - ac, - mr; - aligntyp maligntyp; - unsigned short geno; - struct attack mattk[6]; - unsigned short cwt, - cnutrit; - uchar msound; - uchar msize; - uchar mresists; - uchar mconveys; - unsigned long mflags1, - mflags2; - unsigned short mflags3; - - uchar mcolor; - -}; - -extern struct permonst - mons[]; -# 11 "../include/youprop.h" 2 -# 1 "../include/mondata.h" 1 -# 12 "../include/youprop.h" 2 -# 1 "../include/pm.h" 1 -# 13 "../include/youprop.h" 2 -# 126 "../include/hack.h" 2 -# 1 "../include/wintype.h" 1 -# 10 "../include/wintype.h" -typedef int winid; - - -typedef union any { - genericptr_t a_void; - struct obj *a_obj; - struct monst *a_monst; - int a_int; - char a_char; - schar a_schar; - unsigned int a_uint; - long a_long; - unsigned long a_ulong; - int *a_iptr; - long *a_lptr; - unsigned long *a_ulptr; - unsigned *a_uptr; - -} anything; -# 51 "../include/wintype.h" -typedef struct mi { - anything item; - long count; -} menu_item; -# 127 "../include/hack.h" 2 -# 1 "../include/context.h" 1 -# 23 "../include/context.h" -struct dig_info { - int effort; - d_level level; - coord pos; - long lastdigtime; - boolean down, chew, warned, quiet; -}; - -struct tin_info { - struct obj *tin; - unsigned o_id; - int usedtime, reqtime; -}; - -struct book_info { - struct obj *book; - unsigned o_id; - schar delay; -}; - -struct takeoff_info { - long mask; - long what; - int delay; - boolean cancelled_don; - char disrobing[30 +1]; -}; - -struct victual_info { - struct obj *piece; - - - - unsigned o_id; - - int usedtime, - reqtime; - int nmod; - unsigned canchoke:1; - - - unsigned fullwarn:1; - unsigned eating:1; - unsigned doreset:1; -}; - -struct warntype_info { - unsigned long obj; - unsigned long polyd; - struct permonst *species; - short speciesidx; -}; - -struct polearm_info { - struct monst *hitmon; - unsigned m_id; -}; - -struct tribute_info { - size_t tributesz; - boolean enabled; - unsigned bookstock:1; - - -}; - -struct context_info { - unsigned ident; - unsigned no_of_wizards; - unsigned run; - - - unsigned startingpet_mid; - int current_fruit; - int warnlevel; - int rndencode; - long next_attrib_check; - long stethoscope_move; - short stethoscope_movement; - boolean travel; - boolean travel1; - boolean forcefight; - boolean nopick; - boolean made_amulet; - boolean mon_moving; - boolean move; - boolean mv; - boolean bypasses; - boolean botl; - boolean botlx; - boolean door_opened; - struct dig_info digging; - struct victual_info victual; - struct tin_info tin; - struct book_info spbook; - struct takeoff_info takeoff; - struct warntype_info warntype; - struct polearm_info polearm; - struct tribute_info tribute; -}; - -extern struct context_info context; -# 128 "../include/hack.h" 2 -# 1 "../include/decl.h" 1 -# 11 "../include/decl.h" -extern int (*occupation)(void); -extern int (*afternmv)(void); - -extern const char *hname; -extern int hackpid; - -extern int locknum; - - - - - -extern char SAVEF[]; - - - - -extern int bases[18]; - -extern int multi; -extern const char *multi_reason; -extern int nroom; -extern int nsubroom; -extern int occtime; - - -extern nhsym warnsyms[6]; -extern int warn_obj_cnt; - -extern int x_maze_max, y_maze_max; -extern int otg_temp; - -extern int in_doagain; - -extern struct dgn_topology { - d_level d_oracle_level; - d_level d_bigroom_level; - d_level d_rogue_level; - d_level d_medusa_level; - d_level d_stronghold_level; - d_level d_valley_level; - d_level d_wiz1_level; - d_level d_wiz2_level; - d_level d_wiz3_level; - d_level d_juiblex_level; - d_level d_orcus_level; - d_level d_baalzebub_level; - d_level d_asmodeus_level; - d_level d_portal_level; - d_level d_sanctum_level; - d_level d_earth_level; - d_level d_water_level; - d_level d_fire_level; - d_level d_air_level; - d_level d_astral_level; - xchar d_tower_dnum; - xchar d_sokoban_dnum; - xchar d_mines_dnum, d_quest_dnum; - d_level d_qstart_level, d_qlocate_level, d_nemesis_level; - d_level d_knox_level; - d_level d_mineend_level; - d_level d_sokoend_level; -} dungeon_topology; -# 106 "../include/decl.h" -extern stairway dnstair, upstair; - - - - - -extern stairway dnladder, upladder; - - - - - -extern stairway sstairs; - -extern dest_area updest, dndest; - -extern coord inv_pos; -extern dungeon dungeons[]; -extern s_level *sp_levchn; - - -# 1 "../include/quest.h" 1 -# 10 "../include/quest.h" -struct q_score { - unsigned first_start:1; - unsigned met_leader:1; - unsigned not_ready:3; - unsigned pissed_off:1; - unsigned got_quest:1; - - unsigned first_locate:1; - unsigned met_intermed:1; - unsigned got_final:1; - - unsigned made_goal:3; - unsigned met_nemesis:1; - unsigned killed_nemesis:1; - unsigned in_battle:1; - - unsigned cheater:1; - unsigned touched_artifact:1; - unsigned offered_artifact:1; - unsigned got_thanks:1; - - - - - unsigned ldrgend:2; - unsigned nemgend:2; - unsigned godgend:2; - - - - unsigned leader_is_dead:1; - unsigned leader_m_id; -}; -# 128 "../include/decl.h" 2 -extern struct q_score quest_status; - -extern char pl_character[32]; -extern char pl_race; - -extern char pl_fruit[32]; -extern struct fruit *ffruit; - -extern char tune[6]; - - -extern struct linfo level_info[(16 * 32)]; - -extern struct sinfo { - int gameover; - int stopprint; - - volatile int done_hup; - - int preserve_locks; - - int something_worth_saving; - int panicking; - int exiting; - int in_moveloop; - int in_impossible; - - int in_paniclog; - - int wizkit_wishing; -} program_state; - -extern boolean restoring; - -extern const char quitchars[]; -extern const char vowels[]; -extern const char ynchars[]; -extern const char ynqchars[]; -extern const char ynaqchars[]; -extern const char ynNaqchars[]; -extern long yn_number; - -extern const char disclosure_options[]; - -extern int smeq[]; -extern int doorindex; -extern char *save_cm; - -extern struct kinfo { - struct kinfo *next; - int id; - int format; - - - - char name[256]; -} killer; - -extern long done_money; -extern const char *configfile; -extern char lastconfigfile[256]; -extern char plname[32]; -extern char dogname[]; -extern char catname[]; -extern char horsename[]; -extern char preferred_pet; -extern const char *occtxt; -extern const char *nomovemsg; -extern char lock[]; - -extern const schar xdir[], ydir[], zdir[]; - -extern schar tbx, tby; - -extern struct multishot { int n, i; short o; boolean s; } m_shot; - -extern long moves, monstermoves; -extern long wailmsg; - -extern boolean in_mklev; -extern boolean stoned; -extern boolean unweapon; -extern boolean mrg_to_wielded; -extern boolean defer_see_monsters; - -extern boolean in_steed_dismounting; - -extern const int shield_static[]; - -# 1 "../include/spell.h" 1 -# 15 "../include/spell.h" -struct spell { - short sp_id; - xchar sp_lev; - int sp_know; -}; -# 218 "../include/decl.h" 2 -extern struct spell spl_book[]; - -# 1 "../include/color.h" 1 -# 54 "../include/color.h" -struct menucoloring { - struct nhregex *match; - char *origstr; - int color, attr; - struct menucoloring *next; -}; -# 221 "../include/decl.h" 2 - -extern const int zapcolors[]; - - -extern const struct class_sym def_oc_syms[18]; -extern uchar oc_syms[18]; -extern const struct class_sym def_monsyms[61]; -extern uchar monsyms[61]; - -# 1 "../include/obj.h" 1 -# 12 "../include/obj.h" -union vptrs { - struct obj *v_nexthere; - struct obj *v_ocontainer; - struct monst *v_ocarry; -}; - - - - - -struct oextra { - char *oname; - struct monst *omonst; - unsigned *omid; - long *olong; - char *omailcmd; -}; - -struct obj { - struct obj *nobj; - union vptrs v; - - - - - struct obj *cobj; - unsigned o_id; - xchar ox,oy; - short otyp; - unsigned owt; - long quan; - - schar spe; -# 54 "../include/obj.h" - char oclass; - char invlet; - char oartifact; - - xchar where; -# 68 "../include/obj.h" - xchar timed; - - unsigned cursed:1; - unsigned blessed:1; - unsigned unpaid:1; - unsigned no_charge:1; - unsigned known:1; - unsigned dknown:1; - unsigned bknown:1; - unsigned rknown:1; - - unsigned oeroded:2; - unsigned oeroded2:2; - - - - - - unsigned oerodeproof:1; - unsigned olocked:1; - unsigned obroken:1; - - unsigned otrapped:1; - - - - unsigned recharged:3; - - unsigned lamplit:1; - unsigned globby:1; - unsigned greased:1; - unsigned nomerge:1; - unsigned was_thrown:1; - - unsigned in_use:1; - unsigned bypass:1; - unsigned cknown:1; - unsigned lknown:1; - - - int corpsenm; - - - - - int usecount; - - unsigned oeaten; - long age; - long owornmask; - struct oextra *oextra; -}; -# 231 "../include/decl.h" 2 -extern struct obj *invent, - *uarm, *uarmc, *uarmh, *uarms, *uarmg, *uarmf, - *uarmu, - *uskin, *uamul, *uleft, *uright, *ublindf, - *uwep, *uswapwep, *uquiver; - -extern struct obj *uchain; -extern struct obj *uball; -extern struct obj *migrating_objs; -extern struct obj *billobjs; -extern struct obj *current_wand, *thrownobj, *kickedobj; - -extern struct obj zeroobj; -extern anything zeroany; - -# 1 "../include/you.h" 1 -# 9 "../include/you.h" -# 1 "../include/attrib.h" 1 -# 39 "../include/attrib.h" -struct attribs { - schar a[6]; -}; -# 10 "../include/you.h" 2 -# 1 "../include/monst.h" 1 -# 39 "../include/monst.h" -# 1 "../include/mextra.h" 1 -# 66 "../include/mextra.h" -struct fakecorridor { - xchar fx, fy, ftyp; -}; - -struct egd { - int fcbeg, fcend; - int vroom; - xchar gdx, gdy; - xchar ogx, ogy; - d_level gdlevel; - xchar warncnt; - unsigned gddone:1; - unsigned witness:2; - unsigned unused:5; - struct fakecorridor fakecorr[(21 +80)]; -}; - - - - -struct epri { - aligntyp shralign; - schar shroom; - coord shrpos; - d_level shrlevel; - long intone_time, - enter_time, - hostile_time, - peaceful_time; -}; -# 105 "../include/mextra.h" -struct bill_x { - unsigned bo_id; - boolean useup; - long price; - long bquan; -}; - -struct eshk { - long robbed; - long credit; - long debit; - long loan; - int shoptype; - schar shoproom; - schar unused; - boolean following; - boolean surcharge; - boolean dismiss_kops; - coord shk; - coord shd; - d_level shoplevel; - int billct; - struct bill_x bill[200]; - struct bill_x *bill_p; - int visitct; - char customer[32]; - char shknam[32]; -}; - - - - -struct emin { - aligntyp min_align; - boolean renegade; -}; -# 155 "../include/mextra.h" -struct edog { - long droptime; - unsigned dropdist; - int apport; - long whistletime; - long hungrytime; - coord ogoal; - int abuse; - int revivals; - int mhpmax_penalty; - unsigned killed_by_u:1; -}; - - - - -struct mextra { - char *mname; - struct egd *egd; - struct epri *epri; - struct eshk *eshk; - struct emin *emin; - struct edog *edog; - int mcorpsenm; -}; -# 40 "../include/monst.h" 2 - - -struct monst { - struct monst *nmon; - struct permonst *data; - unsigned m_id; - short mnum; - short cham; - short movement; - uchar m_lev; - aligntyp malign; - - xchar mx, my; - xchar mux, muy; - - coord mtrack[4]; - int mhp, mhpmax; - unsigned mappearance; - uchar m_ap_type; - - - - - - - schar mtame; - unsigned short mintrinsics; - int mspec_used; - - unsigned female:1; - unsigned minvis:1; - unsigned invis_blkd:1; - unsigned perminvis:1; - unsigned mcan:1; - unsigned mburied:1; - unsigned mundetected:1; - - - - - unsigned mcansee:1; - - unsigned mspeed:2; - unsigned permspeed:2; - unsigned mrevived:1; - unsigned mcloned:1; - unsigned mavenge:1; - unsigned mflee:1; - - unsigned mfleetim:7; - unsigned msleeping:1; - - unsigned mblinded:7; - unsigned mstun:1; - - unsigned mfrozen:7; - unsigned mcanmove:1; - - unsigned mconf:1; - unsigned mpeaceful:1; - unsigned mtrapped:1; - unsigned mleashed:1; - unsigned isshk:1; - unsigned isminion:1; - unsigned isgd:1; - unsigned ispriest:1; - - unsigned iswiz:1; - unsigned wormno:5; - - - - - unsigned long mstrategy; -# 135 "../include/monst.h" - long mtrapseen; - long mlstmv; - long mspare1; - struct obj *minvent; - - struct obj *mw; - long misc_worn_check; - xchar weapon_check; - - int meating; - struct mextra *mextra; -}; -# 11 "../include/you.h" 2 - - - -# 1 "../include/skills.h" 1 -# 99 "../include/skills.h" -struct skills { - xchar skill; - xchar max_skill; - unsigned short advance; -}; -# 113 "../include/skills.h" -struct def_skill { - xchar skill; - xchar skmax; -}; -# 15 "../include/you.h" 2 - - - -struct RoleName { - const char *m; - const char *f; -}; - -struct RoleAdvance { - - xchar infix, inrnd; - xchar lofix, lornd; - xchar hifix, hirnd; -}; - -struct u_have { - unsigned amulet:1; - unsigned bell:1; - unsigned book:1; - unsigned menorah:1; - unsigned questart:1; - unsigned unused:3; -}; - -struct u_event { - unsigned minor_oracle:1; - unsigned major_oracle:1; - unsigned read_tribute:1; - unsigned qcalled:1; - unsigned qexpelled:1; - unsigned qcompleted:1; - unsigned uheard_tune:2; - - unsigned uopened_dbridge:1; - unsigned invoked:1; - unsigned gehennom_entered:1; - unsigned uhand_of_elbereth:2; - unsigned udemigod:1; - unsigned uvibrated:1; - unsigned ascended:1; -}; - -struct u_achieve { - unsigned amulet:1; - unsigned bell:1; - unsigned book:1; - unsigned menorah:1; - unsigned enter_gehennom:1; - unsigned ascended:1; - unsigned mines_luckstone:1; - unsigned finish_sokoban:1; - - unsigned killed_medusa:1; -}; - -struct u_realtime { - long realtime; - time_t restored; - time_t endtime; -}; - - - - - - -struct u_conduct { - long unvegetarian; - long unvegan; - long food; - long gnostic; - long weaphit; - long killer; - long literate; - long polypiles; - long polyselfs; - long wishes; - long wisharti; - -}; - -struct u_roleplay { - boolean blind; - boolean nudist; - long numbones; -}; - - -struct Role { - - struct RoleName name; - struct RoleName rank[9]; - const char *lgod, *ngod, *cgod; - const char *filecode; - const char *homebase; - const char *intermed; - - - short malenum, - femalenum, - petnum, - ldrnum, - guardnum, - neminum, - enemy1num, - enemy2num; - char enemy1sym, - enemy2sym; - short questarti; - - - short allow; -# 138 "../include/you.h" - xchar attrbase[6]; - xchar attrdist[6]; - struct RoleAdvance hpadv; - struct RoleAdvance enadv; - xchar xlev; - xchar initrecord; - - - int spelbase; - int spelheal; - int spelshld; - int spelarmr; - int spelstat; - int spelspec; - int spelsbon; -# 165 "../include/you.h" -}; - -extern const struct Role roles[]; -extern struct Role urole; -# 179 "../include/you.h" -struct Race { - - const char *noun; - const char *adj; - const char *coll; - const char *filecode; - struct RoleName individual; - - - short malenum, - femalenum, - mummynum, - zombienum; - - - short allow; - short selfmask, - lovemask, - hatemask; - - - xchar attrmin[6]; - xchar attrmax[6]; - struct RoleAdvance hpadv; - struct RoleAdvance enadv; -# 217 "../include/you.h" -}; - -extern const struct Race races[]; -extern struct Race urace; - - - - -struct Gender { - const char *adj; - const char *he; - const char *him; - const char *his; - const char *filecode; - short allow; -}; - - - -extern const struct Gender genders[]; -# 246 "../include/you.h" -struct Align { - const char *noun; - const char *adj; - const char *filecode; - short allow; - aligntyp value; -}; - - -extern const struct Align aligns[]; - - - -struct you { - xchar ux, uy; - schar dx, dy, dz; - schar di; - xchar tx, ty; - xchar ux0, uy0; - d_level uz, uz0; - d_level utolev; - uchar utotype; - boolean umoved; - int last_str_turn; - - int ulevel; - int ulevelmax; - unsigned utrap; - unsigned utraptype; - - - - - - - char urooms[5]; - char urooms0[5]; - char uentered[5]; - char ushops[5]; - char ushops0[5]; - char ushops_entered[5]; - char ushops_left[5]; - - int uhunger; - unsigned uhs; - - struct prop uprops[(67)+1]; - - unsigned umconf; - unsigned usick_type:2; - - - - - - int nv_range; - int xray_range; - - - - - - - int bglyph; - int cglyph; - int bc_order; - int bc_felt; - - int umonster; - int umonnum; - - int mh, mhmax, mtimedone; - struct attribs macurr, - mamax; - int ulycn; - - unsigned ucreamed; - unsigned uswldtim; - - unsigned uswallow:1; - unsigned uinwater:1; - - unsigned uundetected:1; - unsigned mfemale:1; - unsigned uinvulnerable:1; - unsigned uburied:1; - unsigned uedibility:1; - - - unsigned udg_cnt; - struct u_achieve uachieve; - struct u_event uevent; - struct u_have uhave; - struct u_conduct uconduct; - struct u_roleplay uroleplay; - struct attribs acurr, - aexe, - abon, - amax, - atemp, - atime; - align ualign; - - - - aligntyp ualignbase[2]; - schar uluck, moreluck; - - - - - schar uhitinc; - schar udaminc; - schar uac; - uchar uspellprot; - uchar usptime; - uchar uspmtime; - int uhp,uhpmax; - int uen, uenmax; - xchar uhpinc[30], ueninc[30]; - int ugangr; - int ugifts; - int ublessed, ublesscnt; - long umoney0; - long uspare1; - long uexp, urexp; - long ucleansed; - long usleep; - int uinvault; - struct monst *ustuck; - struct monst *usteed; - long ugallop; - int urideturns; - int umortality; - int ugrave_arise; - int weapon_slots; - int skills_advanced; - xchar skill_record[60]; - struct skills weapon_skills[(38 +1)]; - boolean twoweap; - -}; -# 247 "../include/decl.h" 2 -extern struct you u; -extern time_t ubirthday; -extern struct u_realtime urealtime; - -# 1 "../include/onames.h" 1 -# 252 "../include/decl.h" 2 - - - - -extern struct monst youmonst; -extern struct monst *mydogs, *migrating_mons; - -extern struct mvitals { - uchar born; - uchar died; - uchar mvflags; -} mvitals[381]; - -extern struct c_color_names { - const char *const c_black, *const c_amber, *const c_golden, - *const c_light_blue,*const c_red, *const c_green, - *const c_silver, *const c_blue, *const c_purple, - *const c_white, *const c_orange; -} c_color_names; -# 284 "../include/decl.h" -extern const char *c_obj_colors[]; - -extern struct c_common_strings { - const char *const c_nothing_happens, *const c_thats_enough_tries, - *const c_silly_thing_to, *const c_shudder_for_moment, - *const c_something, *const c_Something, - *const c_You_can_move_again, - *const c_Never_mind, *c_vision_clears, - *const c_the_your[2]; -} c_common_strings; -# 306 "../include/decl.h" -extern const char *materialnm[]; -# 322 "../include/decl.h" -extern boolean vision_full_recalc; -extern char **viz_array; - - -extern winid WIN_MESSAGE; - - - -extern winid WIN_MAP, WIN_INVEN; -# 341 "../include/decl.h" -extern char toplines[]; - -extern struct tc_gbl_data { - char *tc_AS, *tc_AE; - int tc_LI, tc_CO; -} tc_gbl_data; - - - - - - - -extern const char * const monexplain[], invisexplain[], * const oclass_names[]; -# 384 "../include/decl.h" -extern char *fqn_prefix[10]; - - - - -extern struct savefile_info sfcap, sfrestinfo, sfsaveinfo; - -struct autopickup_exception { - char *pattern; - boolean grab; - struct autopickup_exception *next; -}; - - -extern char *ARGV0; -# 129 "../include/hack.h" 2 -# 1 "../include/timeout.h" 1 -# 11 "../include/timeout.h" -typedef void (*timeout_proc) (union any *, long); -# 37 "../include/timeout.h" -typedef struct fe { - struct fe *next; - long timeout; - unsigned long tid; - short kind; - short func_index; - anything arg; - unsigned needs_fixup:1; -} timer_element; -# 130 "../include/hack.h" 2 - - extern coord bhitpos; -# 155 "../include/hack.h" -# 1 "../include/trap.h" 1 -# 12 "../include/trap.h" -union vlaunchinfo { - short v_launch_otyp; - coord v_launch2; - uchar v_conjoined; - short v_tnote; -}; - -struct trap { - struct trap *ntrap; - xchar tx,ty; - d_level dst; - coord launch; - unsigned ttyp:5; - unsigned tseen:1; - unsigned once:1; - unsigned madeby_u:1; - - - - - - - union vlaunchinfo vl; - - - - -}; - -extern struct trap *ftrap; -# 156 "../include/hack.h" 2 -# 1 "../include/flag.h" 1 -# 18 "../include/flag.h" -struct flag { - boolean acoustics; - boolean autodig; - boolean autoquiver; - boolean autoopen; - boolean beginner; - boolean biff; - boolean bones; - boolean confirm; - boolean dark_room; - boolean debug; - - boolean end_own; - boolean explore; - - boolean female; - boolean friday13; - boolean help; - boolean ignintr; - boolean ins_chkpt; - boolean invlet_constant; - boolean legacy; - boolean lit_corridor; - boolean nap; - boolean null; - boolean perm_invent; - boolean pickup; - boolean pickup_thrown; - boolean pushweapon; - boolean rest_on_space; - boolean safe_dog; - boolean showexp; - boolean showscore; - boolean silent; - boolean sortloot; - boolean sortpack; - boolean sparkle; - boolean standout; - boolean time; - boolean tombstone; - boolean verbose; - int end_top, end_around; - unsigned moonphase; - unsigned long suppress_alert; - - - int paranoia_bits; - - - - - - - - int pickup_burden; - int pile_limit; - char inv_order[18]; - char pickup_types[18]; - - - - - - char end_disclose[6 + 1]; - - char menu_style; - boolean made_fruit; -# 112 "../include/flag.h" - int initrole; - int initrace; - int initgend; - int initalign; - int randomall; - int pantheon; - - boolean lootabc; - boolean showrace; - boolean travelcmd; - int runmode; -}; -# 167 "../include/flag.h" -struct instance_flags { - - - - - - int in_lava_effects; - int last_msg; - int purge_monsters; - int override_ID; - int suppress_price; - coord travelcc; - boolean window_inited; - boolean vision_inited; - boolean sanity_check; - boolean mon_polycontrol; - - unsigned msg_history; - int menu_headings; - int *opt_booldup; - int *opt_compdup; - - boolean altmeta; - - boolean cbreak; - boolean deferred_X; - boolean num_pad; - boolean news; - boolean mention_walls; - boolean menu_tab_sep; - boolean menu_head_objsym; - boolean menu_requested; - - boolean renameallowed; - boolean renameinprogress; - boolean toptenwin; - boolean zerocomp; - boolean rlecomp; - uchar num_pad_mode; - boolean echo; - boolean use_menu_color; -# 216 "../include/flag.h" - uchar bouldersym; - - char prevmsg_window; - boolean extmenu; -# 257 "../include/flag.h" - boolean wc_color; - boolean wc_hilite_pet; - boolean wc_ascii_map; - boolean wc_tiled_map; - boolean wc_preload_tiles; - int wc_tile_width; - int wc_tile_height; - char *wc_tile_file; - boolean wc_inverse; - int wc_align_status; - int wc_align_message; - int wc_vary_msgcount; - char *wc_foregrnd_menu; - char *wc_backgrnd_menu; - char *wc_foregrnd_message; - char *wc_backgrnd_message; - char *wc_foregrnd_status; - char *wc_backgrnd_status; - char *wc_foregrnd_text; - char *wc_backgrnd_text; - char *wc_font_map; - char *wc_font_message; - char *wc_font_status; - char *wc_font_menu; - char *wc_font_text; - int wc_fontsiz_map; - int wc_fontsiz_message; - int wc_fontsiz_status; - int wc_fontsiz_menu; - int wc_fontsiz_text; - int wc_scroll_amount; - int wc_scroll_margin; - - int wc_map_mode; - - int wc_player_selection; - boolean wc_splash_screen; - boolean wc_popup_dialog; - - boolean wc_eight_bit_input; - boolean wc_mouse_support; - boolean wc2_fullscreen; - boolean wc2_softkeyboard; - boolean wc2_wraptext; - boolean wc2_selectsaved; - boolean wc2_darkgray; - boolean cmdassist; - boolean clicklook; - boolean obsolete; - struct autopickup_exception *autopickup_exceptions[2]; -# 316 "../include/flag.h" - unsigned save_uinwater:1; - unsigned save_uburied:1; -}; -# 339 "../include/flag.h" -extern struct flag flags; - - - -extern struct instance_flags iflags; -# 381 "../include/flag.h" -struct func_tab; -# 391 "../include/flag.h" -struct cmd { - unsigned serialno; - boolean num_pad; - boolean pcHack_compat; - boolean phone_layout; - boolean swap_yz; - char move_W, move_NW, move_N, move_NE, - move_E, move_SE, move_S, move_SW; - const char *dirchars; - const char *alphadirchars; - const struct func_tab *commands[256]; -}; - -extern struct cmd Cmd; -# 157 "../include/hack.h" 2 -# 1 "../include/rm.h" 1 -# 227 "../include/rm.h" -struct symdef { - uchar sym; - const char *explanation; - - uchar color; - -}; - -struct symparse { - unsigned range; - - - - - - int idx; - const char *name; -}; - - - - - - - -struct symsetentry { - struct symsetentry *next; - char *name; - char *desc; - int idx; - int handling; - unsigned nocolor:1; - unsigned primary:1; - unsigned rogue:1; - -}; -# 281 "../include/rm.h" -extern const struct symdef defsyms[95]; -extern const struct symdef def_warnsyms[6]; -extern int currentgraphics; -extern nhsym showsyms[]; - -extern struct symsetentry symset[2]; -# 388 "../include/rm.h" -struct rm { - int glyph; - schar typ; - uchar seenv; - unsigned flags:5; - unsigned horizontal:1; - unsigned lit:1; - unsigned waslit:1; - - unsigned roomno:6; - unsigned edge:1; - unsigned candig:1; -}; -# 507 "../include/rm.h" -struct damage { - struct damage *next; - long when, cost; - coord place; - schar typ; -}; - - - -struct cemetery { - struct cemetery *next; - - char who[32 + 4*(1+3) + 1]; - - char how[100 + 1]; - - char when[4+2+2 + 2+2+2 + 1]; - - schar frpx, frpy; - boolean bonesknown; -}; - -struct levelflags { - uchar nfountains; - uchar nsinks; - - unsigned has_shop:1; - unsigned has_vault:1; - unsigned has_zoo:1; - unsigned has_court:1; - unsigned has_morgue:1; - unsigned has_beehive:1; - unsigned has_barracks:1; - unsigned has_temple:1; - - unsigned has_swamp:1; - unsigned noteleport:1; - unsigned hardfloor:1; - unsigned nommap:1; - unsigned hero_memory:1; - unsigned shortsighted:1; - unsigned graveyard:1; - unsigned sokoban_rules:1; - - unsigned is_maze_lev:1; - unsigned is_cavernous_lev:1; - unsigned arboreal:1; - unsigned wizard_bones:1; - - - unsigned corrmaze:1; - -}; - -typedef struct -{ - struct rm locations[80][21]; - - struct obj *objects[80][21]; - struct monst *monsters[80][21]; - - - - - - - struct obj *objlist; - struct obj *buriedobjlist; - struct monst *monlist; - struct damage *damagelist; - struct cemetery *bonesinfo; - struct levelflags flags; -} -dlevel_t; - -extern schar lastseentyp[80][21]; - -extern dlevel_t level; -# 158 "../include/hack.h" 2 -# 1 "../include/vision.h" 1 -# 159 "../include/hack.h" 2 -# 1 "../include/display.h" 1 -# 160 "../include/hack.h" 2 -# 1 "../include/engrave.h" 1 -# 10 "../include/engrave.h" -struct engr { - struct engr *nxt_engr; - char *engr_txt; - xchar engr_x, engr_y; - unsigned engr_lth; - long engr_time; - xchar engr_type; - - - - - - - -}; -# 161 "../include/hack.h" 2 -# 1 "../include/rect.h" 1 -# 10 "../include/rect.h" -typedef struct nhrect { - xchar lx, ly; - xchar hx, hy; -} NhRect; -# 162 "../include/hack.h" 2 -# 1 "../include/region.h" 1 -# 12 "../include/region.h" -typedef boolean (*callback_proc) (genericptr_t, genericptr_t); -# 34 "../include/region.h" -typedef struct { - NhRect bounding_box; - NhRect *rects; - short nrects; - boolean attach_2_u; - unsigned int attach_2_m; - - const char* enter_msg; - const char* leave_msg; - long ttl; - short expire_f; - short can_enter_f; - - short enter_f; - short can_leave_f; - - short leave_f; - short inside_f; - - unsigned int player_flags; - unsigned int* monsters; - short n_monst; - short max_monst; - - - - - - boolean visible; - int glyph; - anything arg; - -} NhRegion; -# 163 "../include/hack.h" 2 -# 177 "../include/hack.h" -# 1 "../include/extern.h" 1 -# 15 "../include/extern.h" -extern char *fmt_ptr (const void *); - - - - - - - -extern void moveloop (int); -extern void stop_occupation(void); -extern void display_gamewindows(void); -extern void newgame(void); -extern void welcome (int); -extern time_t get_realtime(void); - - - -extern int doapply(void); -extern int dorub(void); -extern int dojump(void); -extern int jump (int); -extern int number_leashed(void); -extern void o_unleash (struct obj *); -extern void m_unleash (struct monst *,int); -extern void unleash_all(void); -extern boolean next_to_u(void); -extern struct obj *get_mleash (struct monst *); -extern const char *beautiful(void); -extern void check_leash (int,int); -extern boolean um_dist (int,int,int); -extern boolean snuff_candle (struct obj *); -extern boolean snuff_lit (struct obj *); -extern boolean catch_lit (struct obj *); -extern void use_unicorn_horn (struct obj *); -extern boolean tinnable (struct obj *); -extern void reset_trapset(void); -extern void fig_transform (union any *, long); -extern int unfixable_trouble_count (int); - - - -extern void init_artifacts(void); -extern void save_artifacts (int); -extern void restore_artifacts (int); -extern const char *artiname (int); -extern struct obj *mk_artifact (struct obj *,int); -extern const char *artifact_name (const char *,short *); -extern boolean exist_artifact (int,const char *); -extern void artifact_exists (struct obj *,const char *,int); -extern int nartifact_exist(void); -extern boolean arti_immune (struct obj *,int); -extern boolean spec_ability (struct obj *,unsigned long); -extern boolean confers_luck (struct obj *); -extern boolean arti_reflects (struct obj *); -extern boolean shade_glare (struct obj *); -extern boolean restrict_name (struct obj *,const char *); -extern boolean defends (int,struct obj *); -extern boolean defends_when_carried (int,struct obj *); -extern boolean protects (struct obj *,int); -extern void set_artifact_intrinsic (struct obj *,int,long); -extern int touch_artifact (struct obj *,struct monst *); -extern int spec_abon (struct obj *,struct monst *); -extern int spec_dbon (struct obj *,struct monst *,int); -extern void discover_artifact (int); -extern boolean undiscovered_artifact (int); -extern int disp_artifact_discoveries (winid); -extern boolean artifact_hit (struct monst *,struct monst *, struct obj *,int *,int); - -extern int doinvoke(void); -extern boolean finesse_ahriman (struct obj *); -extern void arti_speak (struct obj *); -extern boolean artifact_light (struct obj *); -extern long spec_m2 (struct obj *); -extern boolean artifact_has_invprop (struct obj *,int); -extern long arti_cost (struct obj *); -extern struct obj *what_gives (long *); -extern void Sting_effects (int); -extern int retouch_object (struct obj **,int); -extern void retouch_equipment (int); - - - -extern boolean adjattrib (int,int,int); -extern void gainstr (struct obj *,int,int); -extern void losestr (int); -extern void poisontell (int,int); -extern void poisoned (const char *,int,const char *,int,int); -extern void change_luck (int); -extern int stone_luck (int); -extern void set_moreluck(void); -extern void restore_attrib(void); -extern void exercise (int,int); -extern void exerchk(void); -extern void init_attr (int); -extern void redist_attr(void); -extern void adjabil (int,int); -extern int newhp(void); -extern schar acurr (int); -extern schar acurrstr(void); -extern boolean extremeattr (int); -extern void adjalign (int); -extern int is_innate (int); -extern char *from_what (int); -extern void uchangealign (int,int); - - - -extern void ballrelease (int); -extern void ballfall(void); -extern void placebc(void); -extern void unplacebc(void); -extern void set_bc (int); -extern void move_bc (int,int,int,int,int,int); -extern boolean drag_ball (int,int, int *,xchar *,xchar *,xchar *,xchar *, boolean *,int); - -extern void drop_ball (int,int); -extern void drag_down(void); - - - -extern void sanitize_name (char *); -extern void drop_upon_death (struct monst *,struct obj *,int,int); -extern boolean can_make_bones(void); -extern void savebones (int,time_t,struct obj *); -extern int getbones(void); - - - -extern int xlev_to_rank (int); -extern int title_to_mon (const char *,int *,int *); -extern void max_rank_sz(void); - - - -extern int describe_level (char *); -extern const char *rank_of (int,int,int); -extern void bot(void); - -extern void status_initialize (int); -extern void status_finish(void); -extern void genl_status_init(void); -extern void genl_status_finish(void); -extern void genl_status_update (int, genericptr_t, int, int); -extern void genl_status_enablefield (int, const char *, const char *,int); - -extern void genl_status_threshold (int,int,anything,int,int,int); -extern boolean set_status_hilites (char *op); -extern void clear_status_hilites(void); -extern char *get_status_hilites (char *, int); -extern boolean status_hilite_menu(void); - - - - - -extern boolean redraw_cmd (int); -# 185 "../include/extern.h" -extern void reset_occupations(void); -extern void set_occupation (int (*)(void),const char *,int); -extern char pgetchar(void); -extern void pushch (int); -extern void savech (int); -extern void add_debug_extended_commands(void); -extern void reset_commands (int); -extern void rhack (char *); -extern int doextlist(void); -extern int extcmd_via_menu(void); -extern int enter_explore_mode(void); -extern void enlightenment (int,int); -extern void youhiding (int,int); -extern void show_conduct (int); -extern int xytod (int,int); -extern void dtoxy (coord *,int); -extern int movecmd (int); -extern int dxdy_moveok(void); -extern int getdir (const char *); -extern void confdir(void); -extern const char *directionname (int); -extern int isok (int,int); -extern int get_adjacent_loc (const char *, const char *, int, int, coord *); -extern const char *click_to_cmd (int,int,int); - -extern void hangup (int); -extern void end_of_input(void); - -extern char readchar(void); -extern void sanity_check(void); -extern char yn_function (const char *, const char *, int); -extern boolean paranoid_query (int,const char *); - - - -extern boolean is_pool (int,int); -extern boolean is_lava (int,int); -extern boolean is_pool_or_lava (int,int); -extern boolean is_ice (int,int); -extern boolean is_moat (int,int); -extern schar db_under_typ (int); -extern int is_drawbridge_wall (int,int); -extern boolean is_db_wall (int,int); -extern boolean find_drawbridge (int *,int*); -extern boolean create_drawbridge (int,int,int,int); -extern void open_drawbridge (int,int); -extern void close_drawbridge (int,int); -extern void destroy_drawbridge (int,int); - - - -extern void decl_init(void); - - - -extern struct obj *o_in (struct obj*,int); -extern struct obj *o_material (struct obj*,unsigned); -extern int gold_detect (struct obj *); -extern int food_detect (struct obj *); -extern int object_detect (struct obj *,int); -extern int monster_detect (struct obj *,int); -extern int trap_detect (struct obj *); -extern const char *level_distance (d_level *); -extern void use_crystal_ball (struct obj *); -extern void do_mapping(void); -extern void do_vicinity_map(void); -extern void cvt_sdoor_to_door (struct rm *); - - - - -extern int findit(void); -extern int openit(void); -extern boolean detecting (void (*)(int,int,void *)); -extern void find_trap (struct trap *); -extern int dosearch0 (int); -extern int dosearch(void); -extern void sokoban_detect(void); -extern void reveal_terrain (int); - - - -extern int dig_typ (struct obj *,int,int); -extern boolean is_digging(void); - - - -extern int holetime(void); -extern boolean dig_check (struct monst *, int, int, int); -extern void digactualhole (int,int,struct monst *,int); -extern boolean dighole (int,int,coord *); -extern int use_pick_axe (struct obj *); -extern int use_pick_axe2 (struct obj *); -extern boolean mdig_tunnel (struct monst *); -extern void watch_dig (struct monst *,int,int,int); -extern void zap_dig(void); -extern struct obj *bury_an_obj (struct obj *, boolean *); -extern void bury_objs (int,int); -extern void unearth_objs (int,int); -extern void rot_organic (union any *, long); -extern void rot_corpse (union any *, long); -extern struct obj *buried_ball (coord *); -extern void buried_ball_to_punishment(void); -extern void buried_ball_to_freedom(void); -extern schar fillholetyp (int,int,int); -extern void liquid_flow (int,int,int,struct trap *, const char *); -extern boolean conjoined_pits (struct trap *,struct trap *,int); -# 302 "../include/extern.h" -extern void magic_map_background (int,int,int); -extern void map_background (int,int,int); -extern void map_trap (struct trap *,int); -extern void map_object (struct obj *,int); -extern void map_invisible (int,int); -extern void unmap_object (int,int); -extern void map_location (int,int,int); -extern void feel_location (int,int); -extern void newsym (int,int); -extern void shieldeff (int,int); -extern void tmp_at (int,int); -extern void swallowed (int); -extern void under_ground (int); -extern void under_water (int); -extern void see_monsters(void); -extern void set_mimic_blocking(void); -extern void see_objects(void); -extern void see_traps(void); -extern void curs_on_u(void); -extern int doredraw(void); -extern void docrt(void); -extern void show_glyph (int,int,int); -extern void clear_glyph_buffer(void); -extern void row_refresh (int,int,int); -extern void cls(void); -extern void flush_screen (int); -extern int back_to_glyph (int,int); -extern int zapdir_to_glyph (int,int,int); -extern int glyph_at (int,int); -extern void set_wall_state(void); -extern void unset_seenv (struct rm *,int,int,int,int); - - - - - - - -extern int dodrop(void); -extern boolean boulder_hits_pool (struct obj *,int,int,int); -extern boolean flooreffects (struct obj *,int,int,const char *); -extern void doaltarobj (struct obj *); -extern boolean canletgo (struct obj *,const char *); -extern void dropx (struct obj *); -extern void dropy (struct obj *); -extern void dropz (struct obj *,int); -extern void obj_no_longer_held (struct obj *); -extern int doddrop(void); -extern int dodown(void); -extern int doup(void); - -extern void save_currentstate(void); - -extern void goto_level (d_level *,int,int,int); -extern void schedule_goto (d_level *,int,int,int, const char *,const char *); - -extern void deferred_goto(void); -extern boolean revive_corpse (struct obj *); -extern void revive_mon (union any *, long); -extern int donull(void); -extern int dowipe(void); -extern void set_wounded_legs (long,int); -extern void heal_legs(void); - - - -extern int getpos (coord *,int,const char *); -extern void getpos_sethilite (void (*f)(int) ); -extern void new_mname (struct monst *,int); -extern void free_mname (struct monst *); -extern void new_oname (struct obj *,int); -extern void free_oname (struct obj *); -extern const char *safe_oname (struct obj *); -extern struct monst *christen_monst (struct monst *,const char *); -extern struct obj *oname (struct obj *,const char *); -extern boolean objtyp_is_callable (int); -extern int docallcmd(void); -extern void docall (struct obj *); -extern const char *rndghostname(void); -extern char *x_monnam (struct monst *,int,const char *,int,int); -extern char *l_monnam (struct monst *); -extern char *mon_nam (struct monst *); -extern char *noit_mon_nam (struct monst *); -extern char *Monnam (struct monst *); -extern char *noit_Monnam (struct monst *); -extern char *m_monnam (struct monst *); -extern char *y_monnam (struct monst *); -extern char *Adjmonnam (struct monst *,const char *); -extern char *Amonnam (struct monst *); -extern char *a_monnam (struct monst *); -extern char *distant_monnam (struct monst *,int,char *); -extern char *rndmonnam (char *); -extern const char *hcolor (const char *); -extern const char *rndcolor(void); -extern const char *roguename(void); -extern struct obj *realloc_obj (struct obj *, int, genericptr_t, int, const char *); - -extern char *coyotename (struct monst *,char *); -extern const char *noveltitle (int *); -extern const char *lookup_novel (const char *, int *); -# 413 "../include/extern.h" -extern void off_msg (struct obj *); -extern void set_wear (struct obj *); -extern boolean donning (struct obj *); -extern boolean doffing (struct obj *); -extern void cancel_don(void); -extern int stop_donning (struct obj *); -extern int Armor_off(void); -extern int Armor_gone(void); -extern int Helmet_off(void); -extern int Gloves_off(void); -extern int Boots_off(void); -extern int Cloak_off(void); -extern int Shield_off(void); -extern int Shirt_off(void); -extern void Amulet_off(void); -extern void Ring_on (struct obj *); -extern void Ring_off (struct obj *); -extern void Ring_gone (struct obj *); -extern void Blindf_on (struct obj *); -extern void Blindf_off (struct obj *); -extern int dotakeoff(void); -extern int doremring(void); -extern int cursed (struct obj *); -extern int armoroff (struct obj *); -extern int canwearobj (struct obj *, long *, int); -extern int dowear(void); -extern int doputon(void); -extern void find_ac(void); -extern void glibr(void); -extern struct obj *some_armor (struct monst *); -extern struct obj *stuck_ring (struct obj *,int); -extern struct obj *unchanger(void); -extern void reset_remarm(void); -extern int doddoremarm(void); -extern int destroy_arm (struct obj *); -extern void adj_abon (struct obj *,int); -extern boolean inaccessible_equipment (struct obj *,const char *,int); - - - -extern void newedog (struct monst *); -extern void free_edog (struct monst *); -extern void initedog (struct monst *); -extern struct monst *make_familiar (struct obj *,int,int,int); -extern struct monst *makedog(void); -extern void update_mlstmv(void); -extern void losedogs(void); -extern void mon_arrive (struct monst *,int); -extern void mon_catchup_elapsed_time (struct monst *,long); -extern void keepdogs (int); -extern void migrate_to_level (struct monst *,int,int,coord *); -extern int dogfood (struct monst *,struct obj *); -extern boolean tamedog (struct monst *,struct obj *); -extern void abuse_dog (struct monst *); -extern void wary_dog (struct monst *, int); - - - -extern struct obj *droppables (struct monst *); -extern int dog_nutrition (struct monst *,struct obj *); -extern int dog_eat (struct monst *,struct obj *,int,int,int); -extern int dog_move (struct monst *,int); - - - -extern void finish_meating (struct monst *); - - - -extern boolean ghitm (struct monst *,struct obj *); -extern void container_impact_dmg (struct obj *,int,int); -extern int dokick(void); -extern boolean ship_object (struct obj *,int,int,int); -extern void obj_delivery (int); -extern schar down_gate (int,int); -extern void impact_drop (struct obj *,int,int,int); - - - -extern int dothrow(void); -extern int dofire(void); -extern void endmultishot (int); -extern void hitfloor (struct obj *); -extern void hurtle (int,int,int,int); -extern void mhurtle (struct monst *,int,int,int); -extern void throwit (struct obj *,long,int); -extern int omon_adj (struct monst *,struct obj *,int); -extern int thitmonst (struct monst *,struct obj *); -extern int hero_breaks (struct obj *,int,int,int); -extern int breaks (struct obj *,int,int); -extern void release_camera_demon (struct obj *, int,int); -extern void breakobj (struct obj *,int,int,int,int); -extern boolean breaktest (struct obj *); -extern boolean walk_path (coord *, coord *, boolean (*)(genericptr_t,int,int), genericptr_t); -extern boolean hurtle_step (genericptr_t, int, int); - - - -extern int def_char_to_objclass (int); -extern int def_char_to_monclass (int); - -extern void switch_symbols (int); -extern void assign_graphics (int); -extern void init_r_symbols(void); -extern void init_symbols(void); -extern void update_bouldersym(void); -extern void init_showsyms(void); -extern void init_l_symbols(void); -extern void clear_symsetentry (int,int); -extern void update_l_symset (struct symparse *,int); -extern void update_r_symset (struct symparse *,int); -extern boolean cursed_object_at (int, int); - - - -extern void save_dungeon (int,int,int); -extern void restore_dungeon (int); -extern void insert_branch (branch *,int); -extern void init_dungeons(void); -extern s_level *find_level (const char *); -extern s_level *Is_special (d_level *); -extern branch *Is_branchlev (d_level *); -extern xchar ledger_no (d_level *); -extern xchar maxledgerno(void); -extern schar depth (d_level *); -extern xchar dunlev (d_level *); -extern xchar dunlevs_in_dungeon (d_level *); -extern xchar ledger_to_dnum (int); -extern xchar ledger_to_dlev (int); -extern xchar deepest_lev_reached (int); -extern boolean on_level (d_level *,d_level *); -extern void next_level (int); -extern void prev_level (int); -extern void u_on_newpos (int,int); -extern void u_on_rndspot (int); -extern void u_on_sstairs (int); -extern void u_on_upstairs(void); -extern void u_on_dnstairs(void); -extern boolean On_stairs (int,int); -extern void get_level (d_level *,int); -extern boolean Is_botlevel (d_level *); -extern boolean Can_fall_thru (d_level *); -extern boolean Can_dig_down (d_level *); -extern boolean Can_rise_up (int,int,d_level *); -extern boolean has_ceiling (d_level *); -extern boolean In_quest (d_level *); -extern boolean In_mines (d_level *); -extern branch *dungeon_branch (const char *); -extern boolean at_dgn_entrance (const char *); -extern boolean In_hell (d_level *); -extern boolean In_V_tower (d_level *); -extern boolean On_W_tower_level (d_level *); -extern boolean In_W_tower (int,int,d_level *); -extern void find_hell (d_level *); -extern void goto_hell (int,int); -extern void assign_level (d_level *,d_level *); -extern void assign_rnd_level (d_level *,d_level *,int); -extern int induced_align (int); -extern boolean Invocation_lev (d_level *); -extern xchar level_difficulty(void); -extern schar lev_by_name (const char *); -extern schar print_dungeon (int,schar *,xchar *); -extern char *get_annotation (d_level *); -extern int donamelevel(void); -extern int dooverview(void); -extern void show_overview (int,int); -extern void forget_mapseen (int); -extern void init_mapseen (d_level *); -extern void recalc_mapseen(void); -extern void mapseen_temple (struct monst *); -extern void room_discovered (int); -extern void recbranch_mapseen (d_level *, d_level *); -extern void remdun_mapseen (int); -# 595 "../include/extern.h" -extern void eatmupdate(void); -extern boolean is_edible (struct obj *); -extern void init_uhunger(void); -extern int Hear_again(void); -extern void reset_eat(void); -extern int doeat(void); -extern void gethungry(void); -extern void morehungry (int); -extern void lesshungry (int); -extern boolean is_fainted(void); -extern void reset_faint(void); -extern void violated_vegetarian(void); -extern void newuhs (int); -extern struct obj *floorfood (const char *,int); -extern void vomit(void); -extern int eaten_stat (int,struct obj *); -extern void food_disappears (struct obj *); -extern void food_substitution (struct obj *,struct obj *); -extern void eating_conducts (struct permonst *); -extern int eat_brains (struct monst *,struct monst *,int,int *); -extern void fix_petrification(void); -extern void consume_oeaten (struct obj *,int); -extern boolean maybe_finished_meal (int); -extern void set_tin_variety (struct obj *,int); -extern int tin_variety_txt (char *,int *); -extern void tin_details (struct obj *,int,char *); -extern boolean Popeye (int); - - - -extern void done1 (int); -extern int done2(void); - - - -extern void done_in_by (struct monst *,int); - -extern void panic (const char *,...) __attribute__ ((format (printf, 1, 2))); - -extern void done (int); -extern void container_contents (struct obj *,int,int,int); -extern void terminate (int); -extern int dovanquished(void); -extern int num_genocides(void); -extern void delayed_killer (int, int, const char*); -extern struct kinfo *find_delayed_killer (int); -extern void dealloc_killer (struct kinfo*); -extern void save_killers (int,int); -extern void restore_killers (int); -extern char *build_english_list (char *); - -extern void panictrace_setsignals (int); - - - - -extern char *random_engraving (char *); -extern void wipeout_text (char *,int,unsigned); -extern boolean can_reach_floor (int); -extern void cant_reach_floor (int,int,int,int); -extern const char *surface (int,int); -extern const char *ceiling (int,int); -extern struct engr *engr_at (int,int); -extern int sengr_at (const char *,int,int,int); -extern void u_wipe_engr (int); -extern void wipe_engr_at (int,int,int,int); -extern void read_engr_at (int,int); -extern void make_engr_at (int,int,const char *,long,int); -extern void del_engr_at (int,int); -extern int freehand(void); -extern int doengrave(void); -extern void sanitize_engravings(void); -extern void save_engravings (int,int); -extern void rest_engravings (int); -extern void del_engr (struct engr *); -extern void rloc_engr (struct engr *); -extern void make_grave (int,int,const char *); - - - -extern int newpw(void); -extern int experience (struct monst *,int); -extern void more_experienced (int,int); -extern void losexp (const char *); -extern void newexplevel(void); -extern void pluslvl (int); -extern long rndexp (int); - - - -extern void explode (int,int,int,int,int,int); -extern long scatter (int, int, int, unsigned int, struct obj *); -extern void splatter_burning_oil (int, int); -extern void explode_oil (struct obj *,int,int); - - - -extern void makeroguerooms(void); -extern void corr (int,int); -extern void makerogueghost(void); - - - -extern char *fname_encode (const char *, int, char *, char *, int); -extern char *fname_decode (int, char *, char *, int); -extern const char *fqname (const char *, int, int); -extern FILE *fopen_datafile (const char *,const char *,int); - - - -extern void set_levelfile_name (char *,int); -extern int create_levelfile (int,char *); -extern int open_levelfile (int,char *); -extern void delete_levelfile (int); -extern void clearlocks(void); -extern int create_bonesfile (d_level*,char **, char *); - - - -extern void commit_bonesfile (d_level *); -extern int open_bonesfile (d_level*,char **); -extern int delete_bonesfile (d_level*); -extern void compress_bonesfile(void); -extern void set_savefile_name (int); - -extern void save_savefile_name (int); - - -extern void set_error_savefile(void); - -extern int create_savefile(void); -extern int open_savefile(void); -extern int delete_savefile(void); -extern int restore_saved_game(void); -extern void nh_compress (const char *); -extern void nh_uncompress (const char *); -extern boolean lock_file (const char *,int,int); -extern void unlock_file (const char *); - - - -extern boolean read_config_file (const char *, int); -extern void check_recordfile (const char *); -extern void read_wizkit(void); -extern int read_sym_file (int); -extern int parse_sym_line (char *,int); -extern void paniclog (const char *, const char *); -extern int validate_prefix_locations (char *); - - - -extern char** get_saved_games(void); -extern void free_saved_games (char**); - - - - -extern void assure_syscf_file(void); - -extern int nhclose (int); - - - - -extern boolean debugcore (const char *, int); - -extern boolean read_tribute (const char *,const char *,int); - - - -extern void floating_above (const char *); -extern void dogushforth (int); - - - -extern void dryup (int,int, int); -extern void drinkfountain(void); -extern void dipfountain (struct obj *); -extern void breaksink (int,int); -extern void drinksink(void); - - - -extern anything *uint_to_any (unsigned); -extern anything *long_to_any (long); -extern anything *monst_to_any (struct monst *); -extern anything *obj_to_any (struct obj *); -extern boolean revive_nasty (int,int,const char*); -extern void movobj (struct obj *,int,int); -extern boolean may_dig (int,int); -extern boolean may_passwall (int,int); -extern boolean bad_rock (struct permonst *,int,int); -extern int cant_squeeze_thru (struct monst *); -extern boolean invocation_pos (int,int); -extern boolean test_move (int, int, int, int, int); -extern boolean u_rooted(void); -extern void domove(void); -extern boolean overexertion(void); -extern void invocation_message(void); -extern boolean pooleffects (int); -extern void spoteffects (int); -extern char *in_rooms (int,int,int); -extern boolean in_town (int,int); -extern void check_special_room (int); -extern int dopickup(void); -extern void lookaround(void); -extern boolean crawl_destination (int,int); -extern int monster_nearby(void); -extern void nomul (int); -extern void unmul (const char *); -extern void losehp (int,const char *,int); -extern int weight_cap(void); -extern int inv_weight(void); -extern int near_capacity(void); -extern int calc_capacity (int); -extern int max_capacity(void); -extern boolean check_capacity (const char *); -extern int inv_cnt (int); -extern long money_cnt (struct obj *); - - - -extern boolean digit (int); -extern boolean letter (int); -extern char highc (int); -extern char lowc (int); -extern char *lcase (char *); -extern char *ucase (char *); -extern char *upstart (char *); -extern char *mungspaces (char *); -extern char *eos (char *); -extern char *strkitten (char *,int); -extern void copynchars (char *,const char *,int); -extern char chrcasecpy (int,int); -extern char *strcasecpy (char *,const char *); -extern char *s_suffix (const char *); -extern char *ing_suffix (const char *); -extern char *xcrypt (const char *,char *); -extern boolean onlyspace (const char *); -extern char *tabexpand (char *); -extern char *visctrl (int); -extern char *strsubst (char *,const char *,const char *); -extern const char *ordin (int); -extern char *sitoa (int); -extern int sgn (int); -extern int rounddiv (long,int); -extern int dist2 (int,int,int,int); -extern int isqrt (int); -extern int distmin (int,int,int,int); -extern boolean online2 (int,int,int,int); -extern boolean pmatch (const char *,const char *); -extern boolean pmatchi (const char *,const char *); -extern boolean pmatchz (const char *,const char *); - -extern int strncmpi (const char *,const char *,int); - - -extern char *strstri (const char *,const char *); - -extern boolean fuzzymatch (const char *,const char *,const char *,int); -extern void setrandom(void); -extern time_t getnow(void); -extern int getyear(void); - - - -extern long yyyymmdd (time_t); -extern long hhmmss (time_t); -extern char *yyyymmddhhmmss (time_t); -extern time_t time_from_yyyymmddhhmmss (char *); -extern int phase_of_the_moon(void); -extern boolean friday_13th(void); -extern int night(void); -extern int midnight(void); - - - -extern struct obj **objarr_init (int); -extern void objarr_set (struct obj *, int, struct obj **, int); -extern void assigninvlet (struct obj *); -extern struct obj *merge_choice (struct obj *,struct obj *); -extern int merged (struct obj **,struct obj **); - - - -extern void addinv_core1 (struct obj *); -extern void addinv_core2 (struct obj *); -extern struct obj *addinv (struct obj *); -extern struct obj *hold_another_object (struct obj *,const char *,const char *,const char *); - -extern void useupall (struct obj *); -extern void useup (struct obj *); -extern void consume_obj_charge (struct obj *,int); -extern void freeinv_core (struct obj *); -extern void freeinv (struct obj *); -extern void delallobj (int,int); -extern void delobj (struct obj *); -extern struct obj *sobj_at (int,int,int); -extern struct obj *nxtobj (struct obj *,int,int); -extern struct obj *carrying (int); -extern boolean have_lizard(void); -extern struct obj *o_on (unsigned int,struct obj *); -extern boolean obj_here (struct obj *,int,int); -extern boolean wearing_armor(void); -extern boolean is_worn (struct obj *); -extern struct obj *g_at (int,int); -extern struct obj *getobj (const char *,const char *); -extern int ggetobj (const char *,int (*)(struct obj *),int,int,unsigned *); -extern int askchain (struct obj **,const char *,int,int (*)(struct obj *), int (*)(struct obj *),int,const char *); - -extern void fully_identify_obj (struct obj *); -extern int identify (struct obj *); -extern void identify_pack (int,int); -extern void learn_unseen_invent(void); -extern void prinv (const char *,struct obj *,long); -extern char *xprname (struct obj *,const char *,int,int,long,long); -extern int ddoinv(void); -extern char display_inventory (const char *,int); -extern int display_binventory (int,int,int); -extern struct obj *display_cinventory (struct obj *); -extern struct obj *display_minventory (struct monst *,int,char *); -extern int dotypeinv(void); -extern const char *dfeature_at (int,int,char *); -extern int look_here (int,int); -extern int dolook(void); -extern boolean will_feel_cockatrice (struct obj *,int); -extern void feel_cockatrice (struct obj *,int); -extern void stackobj (struct obj *); -extern int doprgold(void); -extern int doprwep(void); -extern int doprarm(void); -extern int doprring(void); -extern int dopramulet(void); -extern int doprtool(void); -extern int doprinuse(void); -extern void useupf (struct obj *,long); -extern char *let_to_name (int,int,int); -extern void free_invbuf(void); -extern void reassign(void); -extern int doorganize(void); -extern int count_unpaid (struct obj *); -extern int count_buc (struct obj *,int); -extern long count_contents (struct obj *,int,int,int); -extern void carry_obj_effects (struct obj *); -extern const char *currency (long); -extern void silly_thing (const char *,struct obj *); - - - - -extern void getwindowsz(void); -extern void getioctls(void); -extern void setioctls(void); - -extern int dosuspend(void); - - - - - -extern void new_light_source (int, int, int, int, union any *); -extern void del_light_source (int, union any *); -extern void do_light_sources (char **); -extern struct monst *find_mid (unsigned, unsigned); -extern void save_light_sources (int, int, int); -extern void restore_light_sources (int); -extern void relink_light_sources (int); -extern void obj_move_light_source (struct obj *, struct obj *); -extern boolean any_light_source(void); -extern void snuff_light_source (int, int); -extern boolean obj_sheds_light (struct obj *); -extern boolean obj_is_burning (struct obj *); -extern void obj_split_light_source (struct obj *, struct obj *); -extern void obj_merge_light_sources (struct obj *,struct obj *); -extern void obj_adjust_light_radius (struct obj *,int); -extern int candle_light_range (struct obj *); -extern int arti_light_radius (struct obj *); -extern const char *arti_light_description (struct obj *); -extern int wiz_light_sources(void); - - - - - - - -extern boolean picking_lock (int *,int *); -extern boolean picking_at (int,int); -extern void breakchestlock (struct obj *,int); -extern void reset_pick(void); -extern int pick_lock (struct obj *); -extern int doforce(void); -extern boolean boxlock (struct obj *,struct obj *); -extern boolean doorlock (struct obj *,int,int); -extern int doopen(void); -extern boolean stumble_on_door_mimic (int,int); -extern int doopen_indir (int,int); -extern int doclose(void); -# 1042 "../include/extern.h" -extern void getmailstatus(void); - -extern void ckmailstatus(void); -extern void readmail (struct obj *); - - - - -extern void dealloc_monst (struct monst *); -extern boolean is_home_elemental (struct permonst *); -extern struct monst *clone_mon (struct monst *,int,int); -extern int monhp_per_lvl (struct monst *); -extern void newmonhp (struct monst *,int); -extern struct mextra *newmextra(void); -extern void copy_mextra (struct monst *,struct monst *); -extern struct monst *makemon (struct permonst *,int,int,int); -extern boolean create_critters (int,struct permonst *,int); -extern struct permonst *rndmonst(void); -extern void reset_rndmonst (int); -extern struct permonst *mkclass (int,int); -extern int mkclass_poly (int); -extern int adj_lev (struct permonst *); -extern struct permonst *grow_up (struct monst *,struct monst *); -extern int mongets (struct monst *,int); -extern int golemhp (int); -extern boolean peace_minded (struct permonst *); -extern void set_malign (struct monst *); -extern void newmcorpsenm (struct monst *); -extern void freemcorpsenm (struct monst *); -extern void set_mimic_sym (struct monst *); -extern int mbirth_limit (int); -extern void mimic_hit_msg (struct monst *, int); -extern void mkmonmoney (struct monst *, long); -extern int bagotricks (struct obj *,int,int *); -extern boolean propagate (int, int,int); -extern boolean usmellmon (struct permonst *); - - - -extern int mapglyph (int, int *, int *, unsigned *, int, int); -extern char *encglyph (int); -extern void genl_putmixed (winid, int, const char *); - - - -extern int castmu (struct monst *,struct attack *,int,int); -extern int buzzmu (struct monst *,struct attack *); - - - -extern int fightm (struct monst *); -extern int mattackm (struct monst *,struct monst *); -extern boolean engulf_target (struct monst *,struct monst *); -extern int mdisplacem (struct monst *,struct monst *,int); -extern void paralyze_monst (struct monst *,int); -extern int sleep_monst (struct monst *,int,int); -extern void slept_monst (struct monst *); -extern void xdrainenergym (struct monst *,int); -extern long attk_protection (int); -extern void rustm (struct monst *,struct obj *); - - - -extern const char *mpoisons_subj (struct monst *,struct attack *); -extern void u_slow_down(void); -extern struct monst *cloneu(void); -extern void expels (struct monst *,struct permonst *,int); -extern struct attack *getmattk (struct permonst *,int,int *,struct attack *); -extern int mattacku (struct monst *); -extern int magic_negation (struct monst *); -extern boolean gulp_blnd_check(void); -extern int gazemu (struct monst *,struct attack *); -extern void mdamageu (struct monst *,int); -extern int could_seduce (struct monst *,struct monst *,struct attack *); -extern int doseduce (struct monst *); - - - -extern void newemin (struct monst *); -extern void free_emin (struct monst *); -extern int monster_census (int); -extern int msummon (struct monst *); -extern void summon_minion (int,int); -extern int demon_talk (struct monst *); -extern long bribe (struct monst *); -extern int dprince (int); -extern int dlord (int); -extern int llord(void); -extern int ndemon (int); -extern int lminion(void); -extern void lose_guardian_angel (struct monst *); -extern void gain_guardian_angel(void); - - - - - - -extern void sort_rooms(void); -extern void add_room (int,int,int,int,int,int,int); -extern void add_subroom (struct mkroom *,int,int,int,int, int,int,int); - -extern void makecorridors(void); -extern void add_door (int,int,struct mkroom *); -extern void mklev(void); - - - -extern void topologize (struct mkroom *); - -extern void place_branch (branch *,int,int); -extern boolean occupied (int,int); -extern int okdoor (int,int); -extern void dodoor (int,int,struct mkroom *); -extern void mktrap (int,int,struct mkroom *,coord*); -extern void mkstairs (int,int,int,struct mkroom *); -extern void mkinvokearea(void); -extern void mineralize (int, int, int, int, int); - - - -void flood_fill_rm (int,int,int,int,int); -void remove_rooms (int,int,int,int); - - - -extern void wallification (int,int,int,int); -extern void walkfrom (int,int,int); -extern void makemaz (const char *); -extern void mazexy (coord *); -extern void bound_digging(void); -extern void mkportal (int,int,int,int); -extern boolean bad_location (int,int,int,int,int,int); -extern void place_lregion (int,int,int,int, int,int,int,int, int,d_level *); - - -extern void fumaroles(void); -extern void movebubbles(void); -extern void water_friction(void); -extern void save_waterlevel (int,int); -extern void restore_waterlevel (int); -extern const char *waterbody_name (int,int); - - - -extern struct oextra *newoextra(void); -extern void copy_oextra (struct obj *,struct obj *); -extern void dealloc_oextra (struct oextra *); -extern void newomonst (struct obj *); -extern void free_omonst (struct obj *); -extern void newomid (struct obj *); -extern void free_omid (struct obj *); -extern void newolong (struct obj *); -extern void free_olong (struct obj *); -extern void new_omailcmd (struct obj *,const char *); -extern void free_omailcmd (struct obj *); -extern struct obj *mkobj_at (int,int,int,int); -extern struct obj *mksobj_at (int,int,int,int,int); -extern struct obj *mkobj (int,int); -extern int rndmonnum(void); -extern boolean bogon_is_pname (int); -extern struct obj *splitobj (struct obj *,long); -extern void replace_object (struct obj *,struct obj *); -extern void bill_dummy_object (struct obj *); -extern void costly_alteration (struct obj *,int); -extern struct obj *mksobj (int,int,int); -extern int bcsign (struct obj *); -extern int weight (struct obj *); -extern struct obj *mkgold (long,int,int); -extern struct obj *mkcorpstat (int,struct monst *,struct permonst *,int,int,unsigned); - -extern int corpse_revive_type (struct obj *); -extern struct obj *obj_attach_mid (struct obj *, unsigned); -extern struct monst *get_mtraits (struct obj *, int); -extern struct obj *mk_tt_object (int,int,int); -extern struct obj *mk_named_object (int,struct permonst *,int,int,const char *); - -extern struct obj *rnd_treefruit_at (int, int); -extern void set_corpsenm (struct obj *, int); -extern void start_corpse_timeout (struct obj *); -extern void bless (struct obj *); -extern void unbless (struct obj *); -extern void curse (struct obj *); -extern void uncurse (struct obj *); -extern void blessorcurse (struct obj *,int); -extern boolean is_flammable (struct obj *); -extern boolean is_rottable (struct obj *); -extern void place_object (struct obj *,int,int); -extern void remove_object (struct obj *); -extern void discard_minvent (struct monst *); -extern void obj_extract_self (struct obj *); -extern void extract_nobj (struct obj *, struct obj **); -extern void extract_nexthere (struct obj *, struct obj **); -extern int add_to_minv (struct monst *, struct obj *); -extern struct obj *add_to_container (struct obj *, struct obj *); -extern void add_to_migration (struct obj *); -extern void add_to_buried (struct obj *); -extern void dealloc_obj (struct obj *); -extern void obj_ice_effects (int, int, int); -extern long peek_at_iced_corpse_age (struct obj *); -extern int hornoplenty (struct obj *,int); -extern void obj_sanity_check(void); -extern struct obj* obj_nexto (struct obj*); -extern struct obj* obj_nexto_xy (int, int, int, unsigned); -extern struct obj* obj_absorb (struct obj**, struct obj**); -extern struct obj* obj_meld (struct obj**, struct obj**); - - - -extern void mkroom (int); -extern void fill_zoo (struct mkroom *); -extern struct permonst *antholemon(void); -extern boolean nexttodoor (int,int); -extern boolean has_dnstairs (struct mkroom *); -extern boolean has_upstairs (struct mkroom *); -extern int somex (struct mkroom *); -extern int somey (struct mkroom *); -extern boolean inside_room (struct mkroom *,int,int); -extern boolean somexy (struct mkroom *,coord *); -extern void mkundead (coord *,int,int); -extern struct permonst *courtmon(void); -extern void save_rooms (int); -extern void rest_rooms (int); -extern struct mkroom *search_special (int); -extern int cmap_to_type (int); - - - -extern int undead_to_corpse (int); -extern int genus (int,int); -extern int pm_to_cham (int); -extern int minliquid (struct monst *); -extern int movemon(void); -extern int meatmetal (struct monst *); -extern int meatobj (struct monst *); -extern void mpickgold (struct monst *); -extern boolean mpickstuff (struct monst *,const char *); -extern int curr_mon_load (struct monst *); -extern int max_mon_load (struct monst *); -extern boolean can_carry (struct monst *,struct obj *); -extern int mfndpos (struct monst *,coord *,long *,long); -extern boolean monnear (struct monst *,int,int); -extern void dmonsfree(void); -extern int mcalcmove (struct monst*); -extern void mcalcdistress(void); -extern void replmon (struct monst *,struct monst *); -extern void relmon (struct monst *,struct monst **); -extern struct obj *mlifesaver (struct monst *); -extern boolean corpse_chance (struct monst *,struct monst *,int); -extern void mondead (struct monst *); -extern void mondied (struct monst *); -extern void mongone (struct monst *); -extern void monstone (struct monst *); -extern void monkilled (struct monst *,const char *,int); -extern void unstuck (struct monst *); -extern void killed (struct monst *); -extern void xkilled (struct monst *,int); -extern void mon_to_stone (struct monst*); -extern void mnexto (struct monst *); -extern void maybe_mnexto (struct monst *); -extern boolean mnearto (struct monst *,int,int,int); -extern void m_respond (struct monst *); -extern void setmangry (struct monst *); -extern void wakeup (struct monst *); -extern void wake_nearby(void); -extern void wake_nearto (int,int,int); -extern void seemimic (struct monst *); -extern void rescham(void); -extern void restartcham(void); -extern void restore_cham (struct monst *); -extern boolean hideunder (struct monst*); -extern void hide_monst (struct monst *); -extern void mon_animal_list (int); -extern int select_newcham_form (struct monst *); -extern void mgender_from_permonst (struct monst *, struct permonst *); -extern int newcham (struct monst *,struct permonst *,int,int); -extern int can_be_hatched (int); -extern int egg_type_from_parent (int,int); -extern boolean dead_species (int,int); -extern void kill_genocided_monsters(void); -extern void golemeffects (struct monst *,int,int); -extern boolean angry_guards (int); -extern void pacify_guards(void); -extern void decide_to_shapeshift (struct monst *,int); - - - -extern void set_mon_data (struct monst *,struct permonst *,int); -extern struct attack *attacktype_fordmg (struct permonst *,int,int); -extern boolean attacktype (struct permonst *,int); -extern boolean noattacks (struct permonst *); -extern boolean poly_when_stoned (struct permonst *); -extern boolean resists_drli (struct monst *); -extern boolean resists_magm (struct monst *); -extern boolean resists_blnd (struct monst *); -extern boolean can_blnd (struct monst *,struct monst *,int,struct obj *); -extern boolean ranged_attk (struct permonst *); -extern boolean hates_silver (struct permonst *); -extern boolean mon_hates_silver (struct monst *); -extern boolean passes_bars (struct permonst *); -extern boolean can_blow (struct monst *); -extern boolean can_be_strangled (struct monst *); -extern boolean can_track (struct permonst *); -extern boolean breakarm (struct permonst *); -extern boolean sliparm (struct permonst *); -extern boolean sticks (struct permonst *); -extern boolean cantvomit (struct permonst *); -extern int num_horns (struct permonst *); - -extern struct attack *dmgtype_fromattack (struct permonst *,int,int); -extern boolean dmgtype (struct permonst *,int); -extern int max_passive_dmg (struct monst *,struct monst *); -extern boolean same_race (struct permonst *,struct permonst *); -extern int monsndx (struct permonst *); -extern int name_to_mon (const char *); -extern int name_to_monclass (const char *,int *); -extern int gender (struct monst *); -extern int pronoun_gender (struct monst *); -extern boolean levl_follower (struct monst *); -extern int little_to_big (int); -extern int big_to_little (int); -extern const char *locomotion (const struct permonst *,const char *); -extern const char *stagger (const struct permonst *,const char *); -extern const char *on_fire (struct permonst *,struct attack *); -extern const struct permonst *raceptr (struct monst *); -extern boolean olfaction (struct permonst *); - - - -extern boolean itsstuck (struct monst *); -extern boolean mb_trapped (struct monst *); -extern boolean monhaskey (struct monst *,int); -extern void mon_regen (struct monst *,int); -extern int dochugw (struct monst *); -extern boolean onscary (int,int,struct monst *); -extern void monflee (struct monst *, int, int, int); -extern void mon_yells (struct monst *, const char *); -extern int dochug (struct monst *); -extern int m_move (struct monst *,int); -extern void dissolve_bars (int,int); -extern boolean closed_door (int,int); -extern boolean accessible (int,int); -extern void set_apparxy (struct monst *); -extern boolean can_ooze (struct monst *); -extern boolean can_fog (struct monst *); -extern boolean should_displace (struct monst *,coord *,long *,int, int,int); - -extern boolean undesirable_disp (struct monst *,int,int); - - - -extern void monst_init(void); - - - -extern void monstr_init(void); - - - -extern struct monst *mk_mplayer (struct permonst *,int, int,int); - -extern void create_mplayers (int,int); -extern void mplayer_talk (struct monst *); -# 1459 "../include/extern.h" -extern int thitu (int,int,struct obj *,const char *); -extern int ohitmon (struct monst *,struct obj *,int,int); -extern void thrwmu (struct monst *); -extern int spitmu (struct monst *,struct attack *); -extern int breamu (struct monst *,struct attack *); -extern boolean linedup (int,int,int,int,int); -extern boolean lined_up (struct monst *); -extern struct obj *m_carrying (struct monst *,int); -extern void m_useupall (struct monst *,struct obj *); -extern void m_useup (struct monst *,struct obj *); -extern void m_throw (struct monst *,int,int,int,int,int,struct obj *); -extern boolean hits_bars (struct obj **,int,int,int,int); - - - -extern boolean find_defensive (struct monst *); -extern int use_defensive (struct monst *); -extern int rnd_defensive_item (struct monst *); -extern boolean find_offensive (struct monst *); - - - -extern int use_offensive (struct monst *); -extern int rnd_offensive_item (struct monst *); -extern boolean find_misc (struct monst *); -extern int use_misc (struct monst *); -extern int rnd_misc_item (struct monst *); -extern boolean searches_for_item (struct monst *,struct obj *); -extern boolean mon_reflects (struct monst *,const char *); -extern boolean ureflects (const char *,const char *); -extern boolean munstone (struct monst *,int); -extern boolean munslime (struct monst *,int); - - - -extern void awaken_soldiers (struct monst *); -extern int do_play_instrument (struct obj *); -# 1504 "../include/extern.h" -extern struct nhregex * regex_init(void); -extern boolean regex_compile (const char *, struct nhregex *); -extern const char *regex_error_desc (struct nhregex *); -extern boolean regex_match (const char *, struct nhregex*); -extern void regex_free (struct nhregex *); -# 1525 "../include/extern.h" -extern void init_objects(void); -extern void obj_shuffle_range (int,int *,int *); -extern int find_skates(void); -extern void oinit(void); -extern void savenames (int,int); -extern void restnames (int); -extern void discover_object (int,int,int); -extern void undiscover_object (int); -extern int dodiscovered(void); -extern int doclassdisco(void); -extern void rename_disco(void); - - - -extern void objects_init(void); - - - -extern char *obj_typename (int); -extern char *simple_typename (int); -extern boolean obj_is_pname (struct obj *); -extern char *distant_name (struct obj *,char *(*)(struct obj *)); -extern char *fruitname (int); -extern char *xname (struct obj *); -extern char *mshot_xname (struct obj *); -extern boolean the_unique_obj (struct obj *); -extern boolean the_unique_pm (struct permonst *); -extern char *doname (struct obj *); -extern boolean not_fully_identified (struct obj *); -extern char *corpse_xname (struct obj *,const char *,unsigned); -extern char *cxname (struct obj *); -extern char *cxname_singular (struct obj *); -extern char *killer_xname (struct obj *); -extern char *short_oname (struct obj *,char *(*)(struct obj *),char *(*)(struct obj *), unsigned); - -extern const char *singular (struct obj *,char *(*)(struct obj *)); -extern char *an (const char *); -extern char *An (const char *); -extern char *The (const char *); -extern char *the (const char *); -extern char *aobjnam (struct obj *,const char *); -extern char *yobjnam (struct obj *,const char *); -extern char *Yobjnam2 (struct obj *,const char *); -extern char *Tobjnam (struct obj *,const char *); -extern char *otense (struct obj *,const char *); -extern char *vtense (const char *,const char *); -extern char *Doname2 (struct obj *); -extern char *yname (struct obj *); -extern char *Yname2 (struct obj *); -extern char *ysimple_name (struct obj *); -extern char *Ysimple_name2 (struct obj *); -extern char *simpleonames (struct obj *); -extern char *ansimpleoname (struct obj *); -extern char *thesimpleoname (struct obj *); -extern char *bare_artifactname (struct obj *); -extern char *makeplural (const char *); -extern char *makesingular (const char *); -extern struct obj *readobjnam (char *,struct obj *); -extern int rnd_class (int,int); -extern const char *suit_simple_name (struct obj *); -extern const char *cloak_simple_name (struct obj *); -extern const char *helm_simple_name (struct obj *); -extern const char *mimic_obj_name (struct monst *); -extern char *safe_qbuf (char *,const char *,const char *,struct obj *, char *(*)(struct obj *),char *(*)(struct obj *),const char *); - - - - -extern boolean match_optname (const char *,const char *,int,int); -extern void initoptions(void); -extern void initoptions_init(void); -extern void initoptions_finish(void); -extern void parseoptions (char *,int,int); -extern int doset(void); -extern int dotogglepickup(void); -extern void option_help(void); -extern void next_opt (winid,const char *); -extern int fruitadd (char *,struct fruit *); -extern int choose_classes_menu (const char *,int,int,char *,char *); -extern void add_menu_cmd_alias (int, int); -extern char map_menu_cmd (int); -extern void assign_warnings (uchar *); -extern char *nh_getenv (const char *); -extern void set_duplicate_opt_detection (int); -extern void set_wc_option_mod_status (unsigned long, int); -extern void set_wc2_option_mod_status (unsigned long, int); -extern void set_option_mod_status (const char *,int); -extern int add_autopickup_exception (const char *); -extern void free_autopickup_exceptions(void); -extern int load_symset (const char *,int); -extern void parsesymbols (char *); -extern struct symparse *match_sym (char *); -extern void set_playmode(void); -extern int sym_val (char *); -extern boolean add_menu_coloring (char *); -extern boolean get_menu_coloring (char *, int *, int *); -extern void free_menu_coloring(void); - - - -extern char *self_lookat (char *); -extern int dowhatis(void); -extern int doquickwhatis(void); -extern int doidtrap(void); -extern int dowhatdoes(void); -extern char *dowhatdoes_core (int, char *); -extern int dohelp(void); -extern int dohistory(void); -extern int do_screen_description (coord, int, int, char *, const char **); -extern int do_look (int, coord *); -# 1688 "../include/extern.h" -extern int collect_obj_classes (char *,struct obj *,int,boolean (*) (struct obj *), int *); - -extern boolean rider_corpse_revival (struct obj *,int); -extern void add_valid_menu_class (int); -extern boolean allow_all (struct obj *); -extern boolean allow_category (struct obj *); -extern boolean is_worn_by_type (struct obj *); -extern int ck_bag (struct obj *); - - - - -extern int pickup (int); -extern int pickup_object (struct obj *, long, int); -extern int query_category (const char *, struct obj *, int, menu_item **, int); - -extern int query_objlist (const char *, struct obj *, int, menu_item **, int, boolean (*)(struct obj *)); - -extern struct obj *pick_obj (struct obj *); -extern int encumber_msg(void); -extern int doloot(void); -extern boolean container_gone (int (*)(struct obj *)); -extern boolean u_handsy(void); -extern int use_container (struct obj **,int); -extern int loot_mon (struct monst *,int *,boolean *); -extern int dotip(void); -extern boolean is_autopickup_exception (struct obj *, int); - - - -extern void pline (const char *,...) __attribute__ ((format (printf, 1, 2))); -extern void Norep (const char *,...) __attribute__ ((format (printf, 1, 2))); -extern void free_youbuf(void); -extern void You (const char *,...) __attribute__ ((format (printf, 1, 2))); -extern void Your (const char *,...) __attribute__ ((format (printf, 1, 2))); -extern void You_feel (const char *,...) __attribute__ ((format (printf, 1, 2))); -extern void You_cant (const char *,...) __attribute__ ((format (printf, 1, 2))); -extern void You_hear (const char *,...) __attribute__ ((format (printf, 1, 2))); -extern void You_see (const char *,...) __attribute__ ((format (printf, 1, 2))); -extern void pline_The (const char *,...) __attribute__ ((format (printf, 1, 2))); -extern void There (const char *,...) __attribute__ ((format (printf, 1, 2))); -extern void verbalize (const char *,...) __attribute__ ((format (printf, 1, 2))); -extern void raw_printf (const char *,...) __attribute__ ((format (printf, 1, 2))); -extern void impossible (const char *,...) __attribute__ ((format (printf, 1, 2))); -extern const char *align_str (int); -extern void mstatusline (struct monst *); -extern void ustatusline(void); -extern void self_invis_message(void); -extern void pudding_merge_message (struct obj*, struct obj*); - - - -extern void set_uasmon(void); -extern void float_vs_flight(void); -extern void change_sex(void); -extern void polyself (int); -extern int polymon (int); -extern void rehumanize(void); -extern int dobreathe(void); -extern int dospit(void); -extern int doremove(void); -extern int dospinweb(void); -extern int dosummon(void); -extern int dogaze(void); -extern int dohide(void); -extern int dopoly(void); -extern int domindblast(void); -extern void skinback (int); -extern const char *mbodypart (struct monst *,int); -extern const char *body_part (int); -extern int poly_gender(void); -extern void ugolemeffects (int,int); - - - -extern void set_itimeout (long *,long); -extern void incr_itimeout (long *,int); -extern void make_confused (long,int); -extern void make_stunned (long,int); -extern void make_blinded (long,int); -extern void make_sick (long, const char *, int,int); -extern void make_slimed (long,const char *); -extern void make_stoned (long,const char *,int,const char *); -extern void make_vomiting (long,int); -extern boolean make_hallucinated (long,int,long); -extern int dodrink(void); -extern int dopotion (struct obj *); -extern int peffects (struct obj *); -extern void healup (int,int,int,int); -extern void strange_feeling (struct obj *,const char *); -extern void potionhit (struct monst *,struct obj *,int); -extern void potionbreathe (struct obj *); -extern int dodip(void); -extern void mongrantswish (struct monst **); -extern void djinni_from_bottle (struct obj *); -extern struct monst *split_mon (struct monst *,struct monst *); -extern const char *bottlename(void); - - - -extern boolean critically_low_hp (int); - - - -extern int dosacrifice(void); -extern boolean can_pray (int); -extern int dopray(void); -extern const char *u_gname(void); -extern int doturn(void); -extern const char *a_gname(void); -extern const char *a_gname_at (int x,int y); -extern const char *align_gname (int); -extern const char *halu_gname (int); -extern const char *align_gtitle (int); -extern void altar_wrath (int,int); - - - - -extern int move_special (struct monst *,int,int,int,int, int,int,int,int); - -extern char temple_occupied (char *); -extern boolean inhistemple (struct monst *); -extern int pri_move (struct monst *); -extern void priestini (d_level *,struct mkroom *,int,int,int); -extern aligntyp mon_aligntyp (struct monst *); -extern char *priestname (struct monst *,char *); -extern boolean p_coaligned (struct monst *); -extern struct monst *findpriest (int); -extern void intemple (int); -extern void forget_temple_entry (struct monst *); -extern void priest_talk (struct monst *); -extern struct monst *mk_roamer (struct permonst *,int, int,int,int); - -extern void reset_hostility (struct monst *); -extern boolean in_your_sanctuary (struct monst *,int,int); -extern void ghod_hitsu (struct monst *); -extern void angry_priest(void); -extern void clearpriests(void); -extern void restpriest (struct monst *,int); -extern void newepri (struct monst *); -extern void free_epri (struct monst *); - - - -extern void onquest(void); -extern void nemdead(void); -extern void artitouch (struct obj *); -extern boolean ok_to_quest(void); -extern void leader_speaks (struct monst *); -extern void nemesis_speaks(void); -extern void quest_chat (struct monst *); -extern void quest_talk (struct monst *); -extern void quest_stat_check (struct monst *); -extern void finish_quest (struct obj *); - - - -extern void load_qtlist(void); -extern void unload_qtlist(void); -extern short quest_info (int); -extern const char *ldrname(void); -extern boolean is_quest_artifact (struct obj*); -extern void com_pager (int); -extern void qt_pager (int); -extern struct permonst *qt_montype(void); -extern void deliver_splev_message(void); -# 1867 "../include/extern.h" -extern void learnscroll (struct obj *); -extern char *tshirt_text (struct obj *, char *); -extern int doread(void); -extern boolean is_chargeable (struct obj *); -extern void recharge (struct obj *,int); -extern void forget_objects (int); -extern void forget_levels (int); -extern void forget_traps(void); -extern void forget_map (int); -extern int seffects (struct obj *); -extern void drop_boulder_on_player (int, int, int, int); -extern boolean drop_boulder_on_monster (int, int, int, int); -extern void wand_explode (struct obj *,int); - - - -extern void litroom (int,struct obj *); -extern void do_genocide (int); -extern void punish (struct obj *); -extern void unpunish(void); -extern boolean cant_revive (int *,int,struct obj *); -extern boolean create_particular(void); - - - -extern void init_rect(void); -extern NhRect *get_rect (NhRect *); -extern NhRect *rnd_rect(void); -extern void remove_rect (NhRect *); -extern void add_rect (NhRect *); -extern void split_rects (NhRect *,NhRect *); - - -extern void clear_regions(void); -extern void run_regions(void); -extern boolean in_out_region (int,int); -extern boolean m_in_out_region (struct monst *,int,int); -extern void update_player_regions(void); -extern void update_monster_region (struct monst *); -extern NhRegion *visible_region_at (int,int); -extern void show_region (NhRegion*, int, int); -extern void save_regions (int,int); -extern void rest_regions (int,int); -extern NhRegion* create_gas_cloud (int, int, int, int); -extern boolean region_danger(void); -extern void region_safety(void); - - - -extern void inven_inuse (int); -extern int dorecover (int); -extern void restcemetery (int,struct cemetery **); -extern void trickery (char *); -extern void getlev (int,int,int,int); -extern void get_plname_from_file (int, char *); - - - -extern void minit(void); -extern boolean lookup_id_mapping (unsigned, unsigned *); -extern void mread (int,genericptr_t,unsigned int); -extern int validate (int,const char *); -extern void reset_restpref(void); -extern void set_restpref (const char *); -extern void set_savepref (const char *); - - - -extern void genl_outrip (winid,int,time_t); - - - -extern int rn2 (int); -extern int rnl (int); -extern int rnd (int); -extern int d (int,int); -extern int rne (int); -extern int rnz (int); - - - -extern boolean validrole (int); -extern boolean validrace (int, int); -extern boolean validgend (int, int, int); -extern boolean validalign (int, int, int); -extern int randrole(void); -extern int randrace (int); -extern int randgend (int, int); -extern int randalign (int, int); -extern int str2role (const char *); -extern int str2race (const char *); -extern int str2gend (char *); -extern int str2align (char *); -extern boolean ok_role (int, int, int, int); -extern int pick_role (int, int, int, int); -extern boolean ok_race (int, int, int, int); -extern int pick_race (int, int, int, int); -extern boolean ok_gend (int, int, int, int); -extern int pick_gend (int, int, int, int); -extern boolean ok_align (int, int, int, int); -extern int pick_align (int, int, int, int); -extern void rigid_role_checks(void); -extern boolean setrolefilter (char *); -extern char *build_plselection_prompt (char *,int,int,int,int,int); -extern char *root_plselection_prompt (char *,int,int,int,int,int); -extern void plnamesuffix(void); -extern void role_selection_prolog (int,winid); -extern void role_menu_extra (int,winid); -extern void role_init(void); -extern const char *Hello (struct monst *); -extern const char *Goodbye(void); - - - -extern char *getrumor (int,char *, int); -extern char *get_rnd_text (const char *, char *); -extern void outrumor (int,int); -extern void outoracle (int, int); -extern void save_oracles (int,int); -extern void restore_oracles (int); -extern int doconsult (struct monst *); -extern void rumor_check(void); - - - -extern int dosave(void); -extern int dosave0(void); -extern boolean tricked_fileremoved (int, char *); - -extern void savestateinlock(void); - - - - - - -extern void savelev (int,int,int); - -extern genericptr_t mon_to_buffer (struct monst *, int *); -extern void bufon (int); -extern void bufoff (int); -extern void bflush (int); -extern void bwrite (int,genericptr_t,unsigned int); -extern void bclose (int); -extern void def_bclose (int); - - - -extern void savecemetery (int,int,struct cemetery **); -extern void savefruitchn (int,int); -extern void store_plname_in_file (int); -extern void free_dungeons(void); -extern void freedynamicdata(void); -extern void store_savefileinfo (int); - - - -extern long money2mon (struct monst *, long); -extern void money2u (struct monst *, long); -extern void shkgone (struct monst *); -extern void set_residency (struct monst *,int); -extern void replshk (struct monst *,struct monst *); -extern void restshk (struct monst *,int); -extern char inside_shop (int,int); -extern void u_left_shop (char *,int); -extern void remote_burglary (int,int); -extern void u_entered_shop (char *); -extern void pick_pick (struct obj *); -extern boolean same_price (struct obj *,struct obj *); -extern void shopper_financial_report(void); -extern int inhishop (struct monst *); -extern struct monst *shop_keeper (int); -extern boolean tended_shop (struct mkroom *); -extern boolean is_unpaid (struct obj *); -extern void delete_contents (struct obj *); -extern void obfree (struct obj *,struct obj *); -extern void home_shk (struct monst *,int); -extern void make_happy_shk (struct monst *,int); -extern void make_happy_shoppers (int); -extern void hot_pursuit (struct monst *); -extern void make_angry_shk (struct monst *,int,int); -extern int dopay(void); -extern boolean paybill (int); -extern void finish_paybill(void); -extern struct obj *find_oid (unsigned); -extern long contained_cost (struct obj *,struct monst *,long,int, int); -extern long contained_gold (struct obj *); -extern void picked_container (struct obj *); -extern void alter_cost (struct obj *,long); -extern long unpaid_cost (struct obj *,int); -extern boolean billable (struct monst **,struct obj *,int,int); -extern void addtobill (struct obj *,int,int,int); -extern void splitbill (struct obj *,struct obj *); -extern void subfrombill (struct obj *,struct monst *); -extern long stolen_value (struct obj *,int,int,int,int); -extern void sellobj_state (int); -extern void sellobj (struct obj *,int,int); -extern int doinvbill (int); -extern struct monst *shkcatch (struct obj *,int,int); -extern void add_damage (int,int,long); -extern int repair_damage (struct monst *,struct damage *,int); -extern int shk_move (struct monst *); -extern void after_shk_move (struct monst *); -extern boolean is_fshk (struct monst *); -extern void shopdig (int); -extern void pay_for_damage (const char *,int); -extern boolean costly_spot (int,int); -extern struct obj *shop_object (int,int); -extern void price_quote (struct obj *); -extern void shk_chat (struct monst *); -extern void check_unpaid_usage (struct obj *,int); -extern void check_unpaid (struct obj *); -extern void costly_gold (int,int,long); -extern boolean block_door (int,int); -extern boolean block_entry (int,int); -extern char *shk_your (char *,struct obj *); -extern char *Shk_Your (char *,struct obj *); - - - -extern void neweshk (struct monst *); -extern void free_eshk (struct monst *); -extern void stock_room (int,struct mkroom *); -extern boolean saleable (struct monst *,struct obj *); -extern int get_shop_item (int); -extern const char *shkname (struct monst *); -extern boolean shkname_is_pname (struct monst *); -extern boolean is_izchak (struct monst *,int); - - - -extern void take_gold(void); -extern int dosit(void); -extern void rndcurse(void); -extern void attrcurse(void); - - - -extern void dosounds(void); -extern const char *growl_sound (struct monst *); -extern void growl (struct monst *); -extern void yelp (struct monst *); -extern void whimper (struct monst *); -extern void beg (struct monst *); -extern int dotalk(void); - - - - - - - -extern void sys_early_init(void); -extern void sysopt_release(void); -extern void sysopt_seduce_set (int); -# 2131 "../include/extern.h" -extern boolean check_room (xchar *,xchar *,xchar *,xchar *,int); -extern boolean create_room (int,int,int,int, int,int,int,int); - -extern void create_secret_door (struct mkroom *,int); -extern boolean dig_corridor (coord *,coord *,int,int,int); -extern void fill_room (struct mkroom *,int); -extern boolean load_special (const char *); - - - - - - -extern int study_book (struct obj *); -extern void book_disappears (struct obj *); -extern void book_substitution (struct obj *,struct obj *); -extern void age_spells(void); -extern int docast(void); -extern int spell_skilltype (int); -extern int spelleffects (int,int); -extern void losespells(void); -extern int dovspell(void); -extern void initialspell (struct obj *); - - - - - - -extern long somegold (long); -extern void stealgold (struct monst *); -extern void remove_worn_item (struct obj *,int); -extern int steal (struct monst *, char *); -extern int mpickobj (struct monst *,struct obj *); -extern void stealamulet (struct monst *); -extern void maybe_absorb_item (struct monst *,struct obj *,int,int); -extern void mdrop_obj (struct monst *,struct obj *,int); -extern void mdrop_special_objs (struct monst *); -extern void relobj (struct monst *,int,int); -extern struct obj *findgold (struct obj *); - - - -extern void rider_cant_reach(void); -extern boolean can_saddle (struct monst *); -extern int use_saddle (struct obj *); -extern boolean can_ride (struct monst *); -extern int doride(void); -extern boolean mount_steed (struct monst *, int); -extern void exercise_steed(void); -extern void kick_steed(void); -extern void dismount_steed (int); -extern void place_monster (struct monst *,int,int); -extern boolean stucksteed (int); - - - -extern boolean goodpos (int,int,struct monst *,unsigned); -extern boolean enexto (coord *,int,int,struct permonst *); -extern boolean enexto_core (coord *,int,int,struct permonst *,unsigned); -extern void teleds (int,int,int); -extern boolean safe_teleds (int); -extern boolean teleport_pet (struct monst *,int); -extern void tele(void); -extern boolean scrolltele (struct obj *); -extern int dotele(void); -extern void level_tele(void); -extern void domagicportal (struct trap *); -extern void tele_trap (struct trap *); -extern void level_tele_trap (struct trap *); -extern void rloc_to (struct monst *,int,int); -extern boolean rloc (struct monst *, int); -extern boolean tele_restrict (struct monst *); -extern void mtele_trap (struct monst *, struct trap *,int); -extern int mlevel_tele_trap (struct monst *, struct trap *,int,int); -extern boolean rloco (struct obj *); -extern int random_teleport_level(void); -extern boolean u_teleport_mon (struct monst *,int); -# 2217 "../include/extern.h" -extern void burn_away_slime(void); -extern void nh_timeout(void); -extern void fall_asleep (int, int); -extern void attach_egg_hatch_timeout (struct obj *, long); -extern void attach_fig_transform_timeout (struct obj *); -extern void kill_egg (struct obj *); -extern void hatch_egg (union any *, long); -extern void learn_egg_type (int); -extern void burn_object (union any *, long); -extern void begin_burn (struct obj *, int); -extern void end_burn (struct obj *, int); -extern void do_storms(void); -extern boolean start_timer (long, int, int, union any *); -extern long stop_timer (int, union any *); -extern long peek_timer (int,union any *); -extern void run_timers(void); -extern void obj_move_timers (struct obj *, struct obj *); -extern void obj_split_timers (struct obj *, struct obj *); -extern void obj_stop_timers (struct obj *); -extern boolean obj_has_timer (struct obj *,int); -extern void spot_stop_timers (int,int,int); -extern long spot_time_expires (int,int,int); -extern long spot_time_left (int,int,int); -extern boolean obj_is_local (struct obj *); -extern void save_timers (int,int,int); -extern void restore_timers (int,int,int,long); -extern void relink_timers (int); -extern int wiz_timeout_queue(void); -extern void timer_sanity_check(void); - - - -extern void formatkiller (char *,unsigned,int); -extern void topten (int,time_t); -extern void prscore (int,char **); -extern struct obj *tt_oname (struct obj *); - - - -extern void initrack(void); -extern void settrack(void); -extern coord *gettrack (int,int); - - - -extern boolean burnarmor (struct monst *); -extern int erode_obj (struct obj *,const char *,int,int); -extern boolean grease_protect (struct obj *,const char *,struct monst *); -extern struct trap *maketrap (int,int,int); -extern void fall_through (int); -extern struct monst *animate_statue (struct obj *,int,int,int,int *); -extern struct monst *activate_statue_trap (struct trap *,int,int,int); - -extern void dotrap (struct trap *, unsigned); -extern void seetrap (struct trap *); -extern void feeltrap (struct trap *); -extern int mintrap (struct monst *); -extern void instapetrify (const char *); -extern void minstapetrify (struct monst *,int); -extern void selftouch (const char *); -extern void mselftouch (struct monst *,const char *,int); -extern void float_up(void); -extern void fill_pit (int,int); -extern int float_down (long, long); -extern void climb_pit(void); -extern boolean fire_damage (struct obj *,int,int,int); -extern int fire_damage_chain (struct obj *,int,int,int,int); -extern void acid_damage(struct obj *); -extern int water_damage (struct obj *,const char*,int); -extern void water_damage_chain (struct obj *,int); -extern boolean drown(void); -extern void drain_en (int); -extern int dountrap(void); -extern void cnv_trap_obj (int,int,struct trap *,int); -extern int untrap (int); -extern boolean openholdingtrap (struct monst *,boolean *); -extern boolean closeholdingtrap (struct monst *,boolean *); -extern boolean openfallingtrap (struct monst *,int,boolean *); -extern boolean chest_trap (struct obj *,int,int); -extern void deltrap (struct trap *); -extern boolean delfloortrap (struct trap *); -extern struct trap *t_at (int,int); -extern void b_trapped (const char *,int); -extern boolean unconscious(void); -extern void blow_up_landmine (struct trap *); -extern int launch_obj (int,int,int,int,int,int); -extern boolean launch_in_progress(void); -extern void force_launch_placement(void); -extern boolean uteetering_at_seen_pit (struct trap *); -extern boolean lava_effects(void); -extern void sink_into_lava(void); -extern void sokoban_guilt(void); - - - -extern void u_init(void); - - - -extern void erode_armor (struct monst *,int); -extern boolean attack_checks (struct monst *,struct obj *); -extern void check_caitiff (struct monst *); -extern int find_roll_to_hit (struct monst *,int,struct obj *,int *,int *); -extern boolean attack (struct monst *); -extern boolean hmon (struct monst *,struct obj *,int); -extern int damageum (struct monst *,struct attack *); -extern void missum (struct monst *,struct attack *,int); -extern int passive (struct monst *,int,int,int,int); -extern void passive_obj (struct monst *,struct obj *,struct attack *); -extern void stumble_onto_mimic (struct monst *); -extern int flash_hits_mon (struct monst *,struct obj *); -extern void light_hits_gremlin (struct monst *,int); - - - - - - - -extern void sethanguphandler (void (*)(int)); -extern boolean authorize_wizard_mode(void); -extern boolean check_user_string (char *); - - - - - -extern void gettty(void); -extern void settty (const char *); -extern void setftty(void); -extern void intron(void); -extern void introff(void); -extern void error (const char *,...) __attribute__ ((format (printf, 1, 2))); - - - - - -extern void getlock(void); -extern void regularize (char *); - - - - -extern int dosh(void); - - -extern int child (int); - - -extern boolean file_exists (const char *); -# 2381 "../include/extern.h" -extern void newegd (struct monst *); -extern void free_egd (struct monst *); -extern boolean grddead (struct monst *); -extern char vault_occupied (char *); -extern void invault(void); -extern int gd_move (struct monst *); -extern void paygd(void); -extern long hidden_gold(void); -extern boolean gd_sound(void); -extern void vault_gd_watching (unsigned int); - - - -extern char *version_string (char *); -extern char *getversionstring (char *); -extern int doversion(void); -extern int doextversion(void); - - - -extern boolean check_version (struct version_info *, const char *,int); - -extern boolean uptodate (int,const char *); -extern void store_version (int); -extern unsigned long get_feature_notice_ver (char *); -extern unsigned long get_current_feature_ver(void); -extern const char *copyright_banner_line (int); -# 2436 "../include/extern.h" -extern void vision_init(void); -extern int does_block (int,int,struct rm*); -extern void vision_reset(void); -extern void vision_recalc (int); -extern void block_point (int,int); -extern void unblock_point (int,int); -extern boolean clear_path (int,int,int,int); -extern void do_clear_area (int,int,int, void (*)(int,int,genericptr_t),genericptr_t); - -extern unsigned howmonseen (struct monst *); -# 2529 "../include/extern.h" -extern const char *weapon_descr (struct obj *); -extern int hitval (struct obj *,struct monst *); -extern int dmgval (struct obj *,struct monst *); -extern struct obj *select_rwep (struct monst *); -extern struct obj *select_hwep (struct monst *); -extern void possibly_unwield (struct monst *,int); -extern void mwepgone (struct monst *); -extern int mon_wield_item (struct monst *); -extern int abon(void); -extern int dbon(void); -extern int enhance_weapon_skill(void); -extern void unrestrict_weapon_skill (int); -extern void use_skill (int,int); -extern void add_weapon_skill (int); -extern void lose_weapon_skill (int); -extern int weapon_type (struct obj *); -extern int uwep_skill_type(void); -extern int weapon_hit_bonus (struct obj *); -extern int weapon_dam_bonus (struct obj *); -extern void skill_init (const struct def_skill *); - - - -extern void were_change (struct monst *); -extern int counter_were (int); -extern int were_beastie (int); -extern void new_were (struct monst *); -extern int were_summon (struct permonst *,int,int *,char *); -extern void you_were(void); -extern void you_unwere (int); - - - -extern void setuwep (struct obj *); -extern void setuqwep (struct obj *); -extern void setuswapwep (struct obj *); -extern int dowield(void); -extern int doswapweapon(void); -extern int dowieldquiver(void); -extern boolean wield_tool (struct obj *,const char *); -extern int can_twoweapon(void); -extern void drop_uswapwep(void); -extern int dotwoweapon(void); -extern void uwepgone(void); -extern void uswapwepgone(void); -extern void uqwepgone(void); -extern void untwoweapon(void); -extern int chwepon (struct obj *,int); -extern int welded (struct obj *); -extern void weldmsg (struct obj *); -extern void setmnotwielded (struct monst *,struct obj *); -extern boolean mwelded (struct obj *); - - - -extern void choose_windows (const char *); - - - - -extern boolean genl_can_suspend_no(void); -extern boolean genl_can_suspend_yes(void); -extern char genl_message_menu (int,int,const char *); -extern void genl_preference_update (const char *); -extern char *genl_getmsghistory (int); -extern void genl_putmsghistory (const char *,int); - -extern void nhwindows_hangup(void); - - - - -extern void amulet(void); -extern int mon_has_amulet (struct monst *); -extern int mon_has_special (struct monst *); -extern int tactics (struct monst *); -extern void aggravate(void); -extern void clonewiz(void); -extern int pick_nasty(void); -extern int nasty (struct monst*); -extern void resurrect(void); -extern void intervene(void); -extern void wizdead(void); -extern void cuss (struct monst *); - - - -extern int get_wormno(void); -extern void initworm (struct monst *,int); -extern void worm_move (struct monst *); -extern void worm_nomove (struct monst *); -extern void wormgone (struct monst *); -extern void wormhitu (struct monst *); -extern void cutworm (struct monst *,int,int,struct obj *); -extern void see_wsegs (struct monst *); -extern void detect_wsegs (struct monst *,int); -extern void save_worm (int,int); -extern void rest_worm (int); -extern void place_wsegs (struct monst *); -extern void remove_worm (struct monst *); -extern void place_worm_tail_randomly (struct monst *,int,int); -extern int count_wsegs (struct monst *); -extern boolean worm_known (struct monst *); -extern boolean worm_cross (int,int,int,int); - - - -extern void setworn (struct obj *,long); -extern void setnotworn (struct obj *); -extern long wearslot (struct obj *); -extern void mon_set_minvis (struct monst *); -extern void mon_adjust_speed (struct monst *,int,struct obj *); -extern void update_mon_intrinsics (struct monst *,struct obj *,int,int); - -extern int find_mac (struct monst *); -extern void m_dowear (struct monst *,int); -extern struct obj *which_armor (struct monst *,long); -extern void mon_break_armor (struct monst *,int); -extern void bypass_obj (struct obj *); -extern void clear_bypasses(void); -extern void bypass_objlist (struct obj *,int); -extern struct obj *nxt_unbypassed_obj (struct obj *); -extern int racial_exception (struct monst *, struct obj *); - - - -extern int dowrite (struct obj *); - - - -extern void learnwand (struct obj *); -extern int bhitm (struct monst *,struct obj *); -extern void probe_monster (struct monst *); -extern boolean get_obj_location (struct obj *,xchar *,xchar *,int); -extern boolean get_mon_location (struct monst *,xchar *,xchar *,int); -extern struct monst *get_container_location (struct obj *obj, int *, int *); -extern struct monst *montraits (struct obj *,coord *); -extern struct monst *revive (struct obj *,int); -extern int unturn_dead (struct monst *); -extern void cancel_item (struct obj *); -extern boolean drain_item (struct obj *); -extern struct obj *poly_obj (struct obj *, int); -extern boolean obj_resists (struct obj *,int,int); -extern boolean obj_shudders (struct obj *); -extern void do_osshock (struct obj *); -extern int bhito (struct obj *,struct obj *); -extern int bhitpile (struct obj *,int (*)(struct obj *,struct obj *),int,int,int); -extern int zappable (struct obj *); -extern void zapnodir (struct obj *); -extern int dozap(void); -extern int zapyourself (struct obj *,int); -extern void ubreatheu (struct attack *); -extern int lightdamage (struct obj *,int,int); -extern boolean flashburn (long); -extern boolean cancel_monst (struct monst *,struct obj *, int,int,int); - -extern void zapsetup(void); -extern void zapwrapup(void); -extern void weffects (struct obj *); -extern int spell_damage_bonus (int); -extern const char *exclam (int force); -extern void hit (const char *,struct monst *,const char *); -extern void miss (const char *,struct monst *); -extern struct monst *bhit (int,int,int,int,int (*)(struct monst *,struct obj *), int (*)(struct obj *,struct obj *),struct obj **); - -extern struct monst *boomhit (struct obj *,int,int); -extern int zhitm (struct monst *,int,int,struct obj **); -extern int burn_floor_objects (int,int,int,int); -extern void buzz (int,int,int,int,int,int); -extern void melt_ice (int,int,const char *); -extern void start_melt_ice_timeout (int,int,long); -extern void melt_ice_away (union any *, long); -extern int zap_over_floor (int,int,int,boolean *,int); -extern void fracture_rock (struct obj *); -extern boolean break_statue (struct obj *); -extern void destroy_item (int,int); -extern int destroy_mitem (struct monst *,int,int); -extern int resist (struct monst *,int,int,int); -extern void makewish(void); -# 178 "../include/hack.h" 2 -# 1 "../include/winprocs.h" 1 -# 9 "../include/winprocs.h" -# 1 "../include/botl.h" 1 -# 62 "../include/botl.h" -extern const char *status_fieldnames[]; -# 10 "../include/winprocs.h" 2 - - -struct window_procs { - const char *name; - - - unsigned long wincap; - unsigned long wincap2; - void (*win_init_nhwindows) (int *, char **); - void (*win_player_selection)(void); - void (*win_askname)(void); - void (*win_get_nh_event)(void) ; - void (*win_exit_nhwindows) (const char *); - void (*win_suspend_nhwindows) (const char *); - void (*win_resume_nhwindows)(void); - winid (*win_create_nhwindow) (int); - void (*win_clear_nhwindow) (winid); - void (*win_display_nhwindow) (winid, int); - void (*win_destroy_nhwindow) (winid); - void (*win_curs) (winid,int,int); - void (*win_putstr) (winid, int, const char *); - void (*win_putmixed) (winid, int, const char *); - void (*win_display_file) (const char *, int); - void (*win_start_menu) (winid); - void (*win_add_menu) (winid,int,const union any *, int,int,int,const char *, int); - - void (*win_end_menu) (winid, const char *); - int (*win_select_menu) (winid, int, struct mi **); - char (*win_message_menu) (int,int,const char *); - void (*win_update_inventory)(void); - void (*win_mark_synch)(void); - void (*win_wait_synch)(void); - - void (*win_cliparound) (int, int); - - - - - void (*win_print_glyph) (winid,int,int,int); - void (*win_raw_print) (const char *); - void (*win_raw_print_bold) (const char *); - int (*win_nhgetch)(void); - int (*win_nh_poskey) (int *, int *, int *); - void (*win_nhbell)(void); - int (*win_doprev_message)(void); - char (*win_yn_function) (const char *, const char *, int); - void (*win_getlin) (const char *,char *); - int (*win_get_ext_cmd)(void); - void (*win_number_pad) (int); - void (*win_delay_output)(void); -# 70 "../include/winprocs.h" - void (*win_start_screen)(void); - void (*win_end_screen)(void); - - void (*win_outrip) (winid,int,time_t); - void (*win_preference_update) (const char *); - char * (*win_getmsghistory) (int); - void (*win_putmsghistory) (const char *,int); - - void (*win_status_init)(void); - void (*win_status_finish)(void); - void (*win_status_enablefield) (int,const char *,const char *,int); - void (*win_status_update) (int,genericptr_t,int,int); - - void (*win_status_threshold) (int,int,anything,int,int,int); - - - boolean (*win_can_suspend)(void); -}; - -extern - -volatile - - struct window_procs windowprocs; -# 258 "../include/winprocs.h" -struct wc_Opt { - const char *wc_name; - unsigned long wc_bit; -}; -# 179 "../include/hack.h" 2 -# 1 "../include/sys.h" 1 -# 9 "../include/sys.h" -struct sysopt { - char *support; - char *recover; - char *wizards; - char *explorers; - char *shellers; - char *debugfiles; - int env_dbgfl; - - - - - int maxplayers; - - int persmax; - int pers_is_uid; - int entrymax; - int pointsmin; - int tt_oname_maxrank; - - - char *gdbpath; - char *greppath; - int panictrace_gdb; - - int panictrace_libc; - - - int seduce; - int check_save_uid; -}; - -extern struct sysopt sysopt; -# 180 "../include/hack.h" 2 -# 15 "lev_main.c" 2 -# 1 "../include/date.h" 1 -# 16 "lev_main.c" 2 -# 1 "../include/sp_lev.h" 1 -# 57 "../include/sp_lev.h" -enum opcode_defs { - SPO_NULL = 0, - SPO_MESSAGE, - SPO_MONSTER, - SPO_OBJECT, - SPO_ENGRAVING, - SPO_ROOM, - SPO_SUBROOM, - SPO_DOOR, - SPO_STAIR, - SPO_LADDER, - SPO_ALTAR, - SPO_FOUNTAIN, - SPO_SINK, - SPO_POOL, - SPO_TRAP, - SPO_GOLD, - SPO_CORRIDOR, - SPO_LEVREGION, - SPO_DRAWBRIDGE, - SPO_MAZEWALK, - SPO_NON_DIGGABLE, - SPO_NON_PASSWALL, - SPO_WALLIFY, - SPO_MAP, - SPO_ROOM_DOOR, - SPO_REGION, - SPO_MINERALIZE, - SPO_CMP, - SPO_JMP, - SPO_JL, - SPO_JLE, - SPO_JG, - SPO_JGE, - SPO_JE, - SPO_JNE, - SPO_TERRAIN, - SPO_REPLACETERRAIN, - SPO_EXIT, - SPO_ENDROOM, - SPO_POP_CONTAINER, - SPO_PUSH, - SPO_POP, - SPO_RN2, - SPO_DEC, - SPO_INC, - SPO_MATH_ADD, - SPO_MATH_SUB, - SPO_MATH_MUL, - SPO_MATH_DIV, - SPO_MATH_MOD, - SPO_MATH_SIGN, - SPO_COPY, - SPO_END_MONINVENT, - SPO_GRAVE, - SPO_FRAME_PUSH, - SPO_FRAME_POP, - SPO_CALL, - SPO_RETURN, - SPO_INITLEVEL, - SPO_LEVEL_FLAGS, - SPO_VAR_INIT, - SPO_SHUFFLE_ARRAY, - SPO_DICE, - - SPO_SEL_ADD, - SPO_SEL_POINT, - SPO_SEL_RECT, - SPO_SEL_FILLRECT, - SPO_SEL_LINE, - SPO_SEL_RNDLINE, - SPO_SEL_GROW, - SPO_SEL_FLOOD, - SPO_SEL_RNDCOORD, - SPO_SEL_ELLIPSE, - SPO_SEL_FILTER, - SPO_SEL_GRADIENT, - SPO_SEL_COMPLEMENT, - - MAX_SP_OPCODES -}; -# 246 "../include/sp_lev.h" -struct opvar { - xchar spovartyp; - union { - char *str; - long l; - } vardata; -}; - -struct splev_var { - struct splev_var *next; - char *name; - xchar svtyp; - union { - struct opvar *value; - struct opvar **arrayvalues; - } data; - long array_len; -}; - -struct splevstack { - long depth; - long depth_alloc; - struct opvar **stackdata; -}; - - -struct sp_frame { - struct sp_frame *next; - struct splevstack *stack; - struct splev_var *variables; - long n_opcode; -}; - - -struct sp_coder { - struct splevstack *stack; - struct sp_frame *frame; - int premapped; - boolean solidify; - struct mkroom *croom; - struct mkroom *tmproomlist[5 +1]; - boolean failed_room[5 +1]; - int n_subroom; - boolean exit_script; - int lvl_is_joined; - - int opcode; - struct opvar *opdat; -}; -# 307 "../include/sp_lev.h" -typedef struct { - xchar is_random; - long getloc_flags; - int x, y; -} unpacked_coord; - -typedef struct { - int cmp_what; - int cmp_val; -} opcmp; - -typedef struct { - long jmp_target; -} opjmp; - - -typedef union str_or_len { - char *str; - int len; -} Str_or_Len; - -typedef struct { - xchar init_style; - long flags; - schar filling; - boolean init_present, padding; - char fg, bg; - boolean smoothed, joined; - xchar lit, walled; - boolean icedpools; -} lev_init; - -typedef struct { - xchar wall, pos, secret, mask; -} room_door; - -typedef struct { - long coord; - xchar x, y, type; -} trap; - -typedef struct { - Str_or_Len name, appear_as; - short id; - aligntyp align; - long coord; - xchar x, y, class, appear; - schar peaceful, asleep; - short female, invis, cancelled, revived, avenge, fleeing, blinded, paralyzed, stunned, confused; - long seentraps; - short has_invent; -} monster; - -typedef struct { - Str_or_Len name; - int corpsenm; - short id, spe; - long coord; - xchar x, y, class, containment; - schar curse_state; - int quan; - short buried; - short lit; - short eroded, locked, trapped, recharged, invis, greased, broken; -} object; - -typedef struct { - long coord; - xchar x, y; - aligntyp align; - xchar shrine; -} altar; - -typedef struct { - xchar x1, y1, x2, y2; - xchar rtype, rlit, rirreg; -} region; - -typedef struct { - xchar ter, tlit; -} terrain; - -typedef struct { - xchar chance; - xchar x1,y1,x2,y2; - xchar fromter, toter, tolit; -} replaceterrain; - - -typedef struct { - struct { xchar x1, y1, x2, y2; } inarea; - struct { xchar x1, y1, x2, y2; } delarea; - boolean in_islev, del_islev; - xchar rtype, padding; - Str_or_Len rname; -} lev_region; - -typedef struct { - struct { - xchar room; - xchar wall; - xchar door; - } src, dest; -} corridor; - -typedef struct _room { - Str_or_Len name; - Str_or_Len parent; - xchar x, y, w, h; - xchar xalign, yalign; - xchar rtype, chance, rlit, filled, joined; -} room; - -typedef struct { - schar zaligntyp; - schar keep_region; - schar halign, valign; - char xsize, ysize; - char **map; -} mazepart; - -typedef struct { - int opcode; - struct opvar *opdat; -} _opcode; - -typedef struct { - _opcode *opcodes; - long n_opcodes; -} sp_lev; - -typedef struct { - xchar x, y, direction, count, lit; - char typ; -} spill; - - - -struct lc_funcdefs_parm { - char *name; - char parmtype; - struct lc_funcdefs_parm *next; -}; - -struct lc_funcdefs { - struct lc_funcdefs *next; - char *name; - long addr; - sp_lev code; - long n_called; - struct lc_funcdefs_parm *params; - long n_params; -}; - -struct lc_vardefs { - struct lc_vardefs *next; - char *name; - long var_type; - long n_used; -}; - -struct lc_breakdef { - struct lc_breakdef *next; - struct opvar *breakpoint; - int break_depth; -}; -# 17 "lev_main.c" 2 - - - -# 1 "/usr/include/ctype.h" 1 3 4 -# 69 "/usr/include/ctype.h" 3 4 -# 1 "/usr/include/runetype.h" 1 3 4 -# 70 "/usr/include/runetype.h" 3 4 -typedef __darwin_wint_t wint_t; -# 81 "/usr/include/runetype.h" 3 4 -typedef struct { - __darwin_rune_t __min; - __darwin_rune_t __max; - __darwin_rune_t __map; - __uint32_t *__types; -} _RuneEntry; - -typedef struct { - int __nranges; - _RuneEntry *__ranges; -} _RuneRange; - -typedef struct { - char __name[14]; - __uint32_t __mask; -} _RuneCharClass; - -typedef struct { - char __magic[8]; - char __encoding[32]; - - __darwin_rune_t (*__sgetrune)(const char *, __darwin_size_t, char const **); - int (*__sputrune)(__darwin_rune_t, char *, __darwin_size_t, char **); - __darwin_rune_t __invalid_rune; - - __uint32_t __runetype[(1 <<8 )]; - __darwin_rune_t __maplower[(1 <<8 )]; - __darwin_rune_t __mapupper[(1 <<8 )]; - - - - - - - _RuneRange __runetype_ext; - _RuneRange __maplower_ext; - _RuneRange __mapupper_ext; - - void *__variable; - int __variable_len; - - - - - int __ncharclasses; - _RuneCharClass *__charclasses; -} _RuneLocale; - - - - -extern _RuneLocale _DefaultRuneLocale; -extern _RuneLocale *_CurrentRuneLocale; - -# 70 "/usr/include/ctype.h" 2 3 4 -# 145 "/usr/include/ctype.h" 3 4 - -unsigned long ___runetype(__darwin_ct_rune_t); -__darwin_ct_rune_t ___tolower(__darwin_ct_rune_t); -__darwin_ct_rune_t ___toupper(__darwin_ct_rune_t); - - -static __inline int -isascii(int _c) -{ - return ((_c & ~0x7F) == 0); -} -# 164 "/usr/include/ctype.h" 3 4 - -int __maskrune(__darwin_ct_rune_t, unsigned long); - - - -static __inline int -__istype(__darwin_ct_rune_t _c, unsigned long _f) -{ - - - - return (isascii(_c) ? !!(_DefaultRuneLocale.__runetype[_c] & _f) - : !!__maskrune(_c, _f)); - -} - -static __inline __darwin_ct_rune_t -__isctype(__darwin_ct_rune_t _c, unsigned long _f) -{ - - - - return (_c < 0 || _c >= (1 <<8 )) ? 0 : - !!(_DefaultRuneLocale.__runetype[_c] & _f); - -} -# 204 "/usr/include/ctype.h" 3 4 - -__darwin_ct_rune_t __toupper(__darwin_ct_rune_t); -__darwin_ct_rune_t __tolower(__darwin_ct_rune_t); - - - -static __inline int -__wcwidth(__darwin_ct_rune_t _c) -{ - unsigned int _x; - - if (_c == 0) - return (0); - _x = (unsigned int)__maskrune(_c, 0xe0000000L|0x00040000L); - if ((_x & 0xe0000000L) != 0) - return ((_x & 0xe0000000L) >> 30); - return ((_x & 0x00040000L) != 0 ? 1 : -1); -} - - - - - - -static __inline int -isalnum(int _c) -{ - return (__istype(_c, 0x00000100L|0x00000400L)); -} - -static __inline int -isalpha(int _c) -{ - return (__istype(_c, 0x00000100L)); -} - -static __inline int -isblank(int _c) -{ - return (__istype(_c, 0x00020000L)); -} - -static __inline int -iscntrl(int _c) -{ - return (__istype(_c, 0x00000200L)); -} - - -static __inline int -isdigit(int _c) -{ - return (__isctype(_c, 0x00000400L)); -} - -static __inline int -isgraph(int _c) -{ - return (__istype(_c, 0x00000800L)); -} - -static __inline int -islower(int _c) -{ - return (__istype(_c, 0x00001000L)); -} - -static __inline int -isprint(int _c) -{ - return (__istype(_c, 0x00040000L)); -} - -static __inline int -ispunct(int _c) -{ - return (__istype(_c, 0x00002000L)); -} - -static __inline int -isspace(int _c) -{ - return (__istype(_c, 0x00004000L)); -} - -static __inline int -isupper(int _c) -{ - return (__istype(_c, 0x00008000L)); -} - - -static __inline int -isxdigit(int _c) -{ - return (__isctype(_c, 0x00010000L)); -} - -static __inline int -toascii(int _c) -{ - return (_c & 0x7F); -} - -static __inline int -tolower(int _c) -{ - return (__tolower(_c)); -} - -static __inline int -toupper(int _c) -{ - return (__toupper(_c)); -} - - -static __inline int -digittoint(int _c) -{ - return (__maskrune(_c, 0x0F)); -} - -static __inline int -ishexnumber(int _c) -{ - return (__istype(_c, 0x00010000L)); -} - -static __inline int -isideogram(int _c) -{ - return (__istype(_c, 0x00080000L)); -} - -static __inline int -isnumber(int _c) -{ - return (__istype(_c, 0x00000400L)); -} - -static __inline int -isphonogram(int _c) -{ - return (__istype(_c, 0x00200000L)); -} - -static __inline int -isrune(int _c) -{ - return (__istype(_c, 0xFFFFFFF0L)); -} - -static __inline int -isspecial(int _c) -{ - return (__istype(_c, 0x00100000L)); -} -# 21 "lev_main.c" 2 -# 47 "lev_main.c" -# 1 "/usr/include/fcntl.h" 1 3 4 -# 23 "/usr/include/fcntl.h" 3 4 -# 1 "/usr/include/sys/fcntl.h" 1 3 4 -# 305 "/usr/include/sys/fcntl.h" 3 4 -struct flock { - off_t l_start; - off_t l_len; - pid_t l_pid; - short l_type; - short l_whence; -}; - - - - - - - -struct radvisory { - off_t ra_offset; - int ra_count; -}; - - - - - - -typedef struct fsignatures { - off_t fs_file_start; - void *fs_blob_start; - size_t fs_blob_size; -} fsignatures_t; -# 343 "/usr/include/sys/fcntl.h" 3 4 -typedef struct fstore { - unsigned int fst_flags; - int fst_posmode; - off_t fst_offset; - off_t fst_length; - off_t fst_bytesalloc; -} fstore_t; - - - -typedef struct fbootstraptransfer { - off_t fbt_offset; - size_t fbt_length; - void *fbt_buffer; -} fbootstraptransfer_t; -# 377 "/usr/include/sys/fcntl.h" 3 4 -#pragma pack(4) - -struct log2phys { - unsigned int l2p_flags; - off_t l2p_contigbytes; - off_t l2p_devoffset; -}; - -#pragma pack() -# 396 "/usr/include/sys/fcntl.h" 3 4 -struct _filesec; -typedef struct _filesec *filesec_t; - - -typedef enum { - FILESEC_OWNER = 1, - FILESEC_GROUP = 2, - FILESEC_UUID = 3, - FILESEC_MODE = 4, - FILESEC_ACL = 5, - FILESEC_GRPUUID = 6, - - - FILESEC_ACL_RAW = 100, - FILESEC_ACL_ALLOCSIZE = 101 -} filesec_property_t; - - - - - - -int open(const char *, int, ...) __asm("_" "open" "$UNIX2003"); -int creat(const char *, mode_t) __asm("_" "creat" "$UNIX2003"); -int fcntl(int, int, ...) __asm("_" "fcntl" "$UNIX2003"); - -int openx_np(const char *, int, filesec_t); -int flock(int, int); -filesec_t filesec_init(void); -filesec_t filesec_dup(filesec_t); -void filesec_free(filesec_t); -int filesec_get_property(filesec_t, filesec_property_t, void *); -int filesec_set_property(filesec_t, filesec_property_t, const void *); -int filesec_query_property(filesec_t, filesec_property_t, int *); - - - - -# 23 "/usr/include/fcntl.h" 2 3 4 -# 48 "lev_main.c" 2 -# 82 "lev_main.c" -extern int yyparse(void); -extern void init_yyin (FILE *); -extern void init_yyout (FILE *); - -int main (int, char **); -void yyerror (const char *); -void yywarning (const char *); -int yywrap(void); -int get_floor_type (int); -int get_room_type (char *); -int get_trap_type (char *); -int get_monster_id (char *, int); -int get_object_id (char *, int); -boolean check_monster_char (int); -boolean check_object_char (int); -char what_map_char (int); -void scan_map (char *, sp_lev *); -boolean check_subrooms(void); -boolean write_level_file (char *, sp_lev *); - -struct lc_funcdefs *funcdef_new (long, char *); -void funcdef_free_all (struct lc_funcdefs *); -struct lc_funcdefs *funcdef_defined (struct lc_funcdefs *, char *, int); - - -struct lc_vardefs *vardef_new (long, char *); -void vardef_free_all (struct lc_vardefs *); -struct lc_vardefs *vardef_defined (struct lc_vardefs *, char *, int); - -void splev_add_from (sp_lev *, sp_lev *); - -extern void monst_init(void); -extern void objects_init(void); -extern void decl_init(void); - -void add_opcode (sp_lev *, int, genericptr_t); - -static boolean write_common_data (int); -static boolean write_maze (int, sp_lev *); -static void init_obj_classes(void); -static int case_insensitive_comp (const char *, const char *); - -void lc_pline (const char *, ...); -void lc_error (const char *, ...); -void lc_warning (const char *, ...); -char *decode_parm_chr (int); -char *decode_parm_str (char *); -struct opvar *set_opvar_int (struct opvar *, long); -struct opvar *set_opvar_coord (struct opvar *, long); -struct opvar *set_opvar_region (struct opvar *, long); -struct opvar *set_opvar_mapchar (struct opvar *, long); -struct opvar *set_opvar_monst (struct opvar *, long); -struct opvar *set_opvar_obj (struct opvar *, long); -struct opvar *set_opvar_str (struct opvar *, const char *); -struct opvar *set_opvar_var (struct opvar *, const char *); -void add_opvars (sp_lev *, const char *, ...); -void break_stmt_start(void); -void break_stmt_end (sp_lev *); -void break_stmt_new (sp_lev *, long); -char *funcdef_paramtypes (struct lc_funcdefs *); -const char *spovar2str (long); -void vardef_used (struct lc_vardefs *, char *); -void check_vardef_type (struct lc_vardefs *, char *, long); -struct lc_vardefs *add_vardef_type (struct lc_vardefs *, char *, long); - -int reverse_jmp_opcode (int); -struct opvar *opvar_clone (struct opvar *); -void start_level_def (sp_lev **, char *); - -static struct { - const char *name; - int type; -} trap_types[] = { { "arrow", 1 }, - { "dart", 2 }, - { "falling rock", 3 }, - { "board", 4 }, - { "bear", 5 }, - { "land mine", 6 }, - { "rolling boulder", 7 }, - { "sleep gas", 8 }, - { "rust", 9 }, - { "fire", 10 }, - { "pit", 11 }, - { "spiked pit", 12 }, - { "hole", 13 }, - { "trap door", 14 }, - { "teleport", 15 }, - { "level teleport", 16 }, - { "magic portal", 17 }, - { "web", 18 }, - { "statue", 19 }, - { "magic", 20 }, - { "anti magic", 21 }, - { "polymorph", 22 }, - { 0, 0 } }; - -static struct { - const char *name; - int type; -} room_types[] = { - - - { "ordinary", 0 }, - { "throne", 2 }, - { "swamp", 3 }, - { "vault", 4 }, - { "beehive", 5 }, - { "morgue", 6 }, - { "barracks", 7 }, - { "zoo", 8 }, - { "delphi", 9 }, - { "temple", 10 }, - { "anthole", 13 }, - { "cocknest", 12 }, - { "leprehall", 11 }, - { "shop", 14 }, - { "armor shop", 15 }, - { "scroll shop", 16 }, - { "potion shop", 17 }, - { "weapon shop", 18 }, - { "food shop", 19 }, - { "ring shop", 20 }, - { "wand shop", 21 }, - { "tool shop", 22 }, - { "book shop", 23 }, - { "health food shop", 24 }, - { "candle shop", 25 }, - { 0, 0 } -}; - -const char *fname = "(stdin)"; -int fatal_error = 0; -int got_errors = 0; -int be_verbose = 0; -int fname_counter = 1; - - - - - - -extern unsigned int max_x_map, max_y_map; - -extern int nh_line_number; - -extern int token_start_pos; -extern char curr_token[512]; - -struct lc_vardefs *variable_definitions = ((void *)0); -struct lc_funcdefs *function_definitions = ((void *)0); - -extern int allow_break_statements; -extern struct lc_breakdef *break_list; - -int -main(argc, argv) -int argc; -char **argv; -{ - FILE *fin; - int i; - boolean errors_encountered = ((boolean)0); -# 263 "lev_main.c" - monst_init(); - objects_init(); - decl_init(); - - init_obj_classes(); - - init_yyout(__stdoutp); - if (argc == 1) { - init_yyin(__stdinp); - (void) yyparse(); - if (fatal_error > 0) { - errors_encountered = ((boolean)1); - } - } else { - for (i = 1; i < argc; i++) { - fname = argv[i]; - if (!strcmp(fname, "-v")) { - be_verbose++; - continue; - } - fin = freopen(fname, "r", __stdinp); - if (!fin) { - lc_pline("Can't open \"%s\" for input.\n", fname); - perror(fname); - errors_encountered = ((boolean)1); - } else { - fname_counter = 1; - init_yyin(fin); - (void) yyparse(); - nh_line_number = 1; - if (fatal_error > 0 || got_errors > 0) { - errors_encountered = ((boolean)1); - fatal_error = 0; - } - } - } - } - exit(errors_encountered ? 1 : 0); - - return 0; -} -# 313 "lev_main.c" -void -yyerror(s) -const char *s; -{ - char *e = ((char *) s + strlen(s) - 1); - - (void) fprintf(__stderrp, "%s: line %d, pos %d: %s", fname, nh_line_number, - token_start_pos - (int) strlen(curr_token), s); - if (*e != '.' && *e != '!') - (void) fprintf(__stderrp, " at \"%s\"", curr_token); - (void) fprintf(__stderrp, "\n"); - - if (++fatal_error > 25) { - (void) fprintf(__stderrp, "Too many errors, good bye!\n"); - exit(1); - } -} - - - - -void -yywarning(s) -const char *s; -{ - (void) fprintf(__stderrp, "%s: line %d : WARNING : %s\n", fname, - nh_line_number, s); -} - - - - -int -yywrap() -{ - return 1; -} -# 361 "lev_main.c" -static int lc_pline_mode = 0; - - -static void lc_vpline (const char *, va_list); - -void lc_pline -(const char * line, ...) { va_list the_args; -{ - __builtin_va_start(the_args,line); - ; - lc_vpline(line, the_args); - __builtin_va_end(the_args); }; -} - - -static void -lc_vpline(const char *line, va_list the_args) -# 392 "lev_main.c" -{ - - char pbuf[3 * 256]; - static char nomsg[] = "(no message)"; - - - if (!line || !*line) - line = nomsg; - if (strchr(line, '%')) { - (void) vsprintf(pbuf, line, the_args); - pbuf[256 - 1] = '\0'; - line = pbuf; - } - switch (lc_pline_mode) { - case 2: - yyerror(line); - break; - case 1: - yywarning(line); - break; - default: - (void) fprintf(__stderrp, "%s\n", line); - break; - } - lc_pline_mode = 0; - return; - - - -} - - -void lc_error -(const char * line, ...) { va_list the_args; -{ - __builtin_va_start(the_args,line); - ; - lc_pline_mode = 2; - lc_vpline(line, the_args); - __builtin_va_end(the_args); }; - return; -} - - -void lc_warning -(const char * line, ...) { va_list the_args; -{ - __builtin_va_start(the_args,line); - ; - lc_pline_mode = 1; - lc_vpline(line, the_args); - __builtin_va_end(the_args); }; - return; -} - -char * -decode_parm_chr(chr) -char chr; -{ - static char buf[32]; - - switch (chr) { - default: - (void) strcpy(buf, "unknown"); - break; - case 'i': - (void) strcpy(buf, "int"); - break; - case 'r': - (void) strcpy(buf, "region"); - break; - case 's': - (void) strcpy(buf, "str"); - break; - case 'O': - (void) strcpy(buf, "obj"); - break; - case 'c': - (void) strcpy(buf, "coord"); - break; - case ' ': - (void) strcpy(buf, "nothing"); - break; - case 'm': - (void) strcpy(buf, "mapchar"); - break; - case 'M': - (void) strcpy(buf, "monster"); - break; - } - return buf; -} - -char * -decode_parm_str(str) -char *str; -{ - static char tmpbuf[1024]; - char *p = str; - tmpbuf[0] = '\0'; - if (str) { - for (; *p; p++) { - (void) strcat(tmpbuf, decode_parm_chr(*p)); - if (*(p + 1)) - (void) strcat(tmpbuf, ", "); - } - } - return tmpbuf; -} - -struct opvar * -set_opvar_int(ov, val) -struct opvar *ov; -long val; -{ - if (ov) { - ov->spovartyp = 0x01; - ov->vardata.l = val; - } - return ov; -} - -struct opvar * -set_opvar_coord(ov, val) -struct opvar *ov; -long val; -{ - if (ov) { - ov->spovartyp = 0x04; - ov->vardata.l = val; - } - return ov; -} - -struct opvar * -set_opvar_region(ov, val) -struct opvar *ov; -long val; -{ - if (ov) { - ov->spovartyp = 0x05; - ov->vardata.l = val; - } - return ov; -} - -struct opvar * -set_opvar_mapchar(ov, val) -struct opvar *ov; -long val; -{ - if (ov) { - ov->spovartyp = 0x06; - ov->vardata.l = val; - } - return ov; -} - -struct opvar * -set_opvar_monst(ov, val) -struct opvar *ov; -long val; -{ - if (ov) { - ov->spovartyp = 0x07; - ov->vardata.l = val; - } - return ov; -} - -struct opvar * -set_opvar_obj(ov, val) -struct opvar *ov; -long val; -{ - if (ov) { - ov->spovartyp = 0x08; - ov->vardata.l = val; - } - return ov; -} - -struct opvar * -set_opvar_str(ov, val) -struct opvar *ov; -const char *val; -{ - if (ov) { - ov->spovartyp = 0x02; - ov->vardata.str = (val) ? strdup(val) : ((void *)0); - } - return ov; -} - -struct opvar * -set_opvar_var(ov, val) -struct opvar *ov; -const char *val; -{ - if (ov) { - ov->spovartyp = 0x03; - ov->vardata.str = (val) ? strdup(val) : ((void *)0); - } - return ov; -} - - - - - -static void vadd_opvars (sp_lev *, const char *, va_list); - -void add_opvars -(sp_lev * sp, const char * fmt, ...) { va_list the_args; - __builtin_va_start(the_args,fmt); - ; - vadd_opvars(sp, fmt, the_args); - __builtin_va_end(the_args); }; -} - - -static void -vadd_opvars(sp_lev *sp, const char *fmt, va_list the_args) -{ -# 633 "lev_main.c" - const char *p, *lp; - long la; - - - for (p = fmt; *p != '\0'; p++) { - switch (*p) { - case ' ': - break; - case 'i': - { - struct opvar *ov = (struct opvar *) memset((genericptr_t) alloc(sizeof(struct opvar)), 0, sizeof(struct opvar)); - set_opvar_int(ov, la = __builtin_va_arg(the_args,long) ); - add_opcode(sp, SPO_PUSH, ov); - break; - } - case 'c': - { - struct opvar *ov = (struct opvar *) memset((genericptr_t) alloc(sizeof(struct opvar)), 0, sizeof(struct opvar)); - set_opvar_coord(ov, la = __builtin_va_arg(the_args,long) ); - add_opcode(sp, SPO_PUSH, ov); - break; - } - case 'r': - { - struct opvar *ov = (struct opvar *) memset((genericptr_t) alloc(sizeof(struct opvar)), 0, sizeof(struct opvar)); - set_opvar_region(ov, la = __builtin_va_arg(the_args,long) ); - add_opcode(sp, SPO_PUSH, ov); - break; - } - case 'm': - { - struct opvar *ov = (struct opvar *) memset((genericptr_t) alloc(sizeof(struct opvar)), 0, sizeof(struct opvar)); - set_opvar_mapchar(ov, la = __builtin_va_arg(the_args,long) ); - add_opcode(sp, SPO_PUSH, ov); - break; - } - case 'M': - { - struct opvar *ov = (struct opvar *) memset((genericptr_t) alloc(sizeof(struct opvar)), 0, sizeof(struct opvar)); - set_opvar_monst(ov, la = __builtin_va_arg(the_args,long) ); - add_opcode(sp, SPO_PUSH, ov); - break; - } - case 'O': - { - struct opvar *ov = (struct opvar *) memset((genericptr_t) alloc(sizeof(struct opvar)), 0, sizeof(struct opvar)); - set_opvar_obj(ov, la = __builtin_va_arg(the_args,long) ); - add_opcode(sp, SPO_PUSH, ov); - break; - } - case 's': - { - struct opvar *ov = (struct opvar *) memset((genericptr_t) alloc(sizeof(struct opvar)), 0, sizeof(struct opvar)); - set_opvar_str(ov, lp = __builtin_va_arg(the_args,const char *) ); - add_opcode(sp, SPO_PUSH, ov); - break; - } - case 'v': - { - struct opvar *ov = (struct opvar *) memset((genericptr_t) alloc(sizeof(struct opvar)), 0, sizeof(struct opvar)); - set_opvar_var(ov, lp = __builtin_va_arg(the_args,const char *) ); - add_opcode(sp, SPO_PUSH, ov); - break; - } - case 'o': - { - long i = la = __builtin_va_arg(the_args,int); - if (i < 0 || i >= MAX_SP_OPCODES) - lc_pline("add_opvars: unknown opcode '%ld'.", i); - add_opcode(sp, i, ((void *)0)); - break; - } - default: - lc_pline("add_opvars: illegal format character '%c'.", *p); - break; - } - } - return; -} - -void -break_stmt_start() -{ - allow_break_statements++; -} - -void -break_stmt_end(splev) -sp_lev *splev; -{ - struct lc_breakdef *tmp = break_list; - struct lc_breakdef *prv = ((void *)0); - while (tmp) { - if (tmp->break_depth == allow_break_statements) { - struct lc_breakdef *nxt = tmp->next; - set_opvar_int(tmp->breakpoint, - splev->n_opcodes - tmp->breakpoint->vardata.l - 1); - tmp->next = ((void *)0); - if (tmp) free((genericptr_t)(tmp)); - if (!prv) - break_list = ((void *)0); - else - prv->next = nxt; - tmp = nxt; - } else { - prv = tmp; - tmp = tmp->next; - } - } - allow_break_statements--; -} - -void -break_stmt_new(splev, i) -sp_lev *splev; -long i; -{ - struct lc_breakdef *tmp = (struct lc_breakdef *) memset((genericptr_t) alloc(sizeof(struct lc_breakdef)), 0, sizeof(struct lc_breakdef)); - tmp->breakpoint = (struct opvar *) memset((genericptr_t) alloc(sizeof(struct opvar)), 0, sizeof(struct opvar)); - tmp->break_depth = allow_break_statements; - tmp->next = break_list; - break_list = tmp; - set_opvar_int(tmp->breakpoint, i); - add_opcode(splev, SPO_PUSH, tmp->breakpoint); - add_opcode(splev, SPO_JMP, ((void *)0)); -} - -struct lc_funcdefs * -funcdef_new(addr, name) -long addr; -char *name; -{ - struct lc_funcdefs *f = (struct lc_funcdefs *) memset((genericptr_t) alloc(sizeof(struct lc_funcdefs)), 0, sizeof(struct lc_funcdefs)); - if (!f) { - lc_error("Could not alloc function definition for '%s'.", name); - return ((void *)0); - } - f->next = ((void *)0); - f->addr = addr; - f->name = strdup(name); - f->n_called = 0; - f->n_params = 0; - f->params = ((void *)0); - f->code.opcodes = ((void *)0); - f->code.n_opcodes = 0; - return f; -} - -void -funcdef_free_all(fchain) -struct lc_funcdefs *fchain; -{ - struct lc_funcdefs *tmp = fchain; - struct lc_funcdefs *nxt; - struct lc_funcdefs_parm *tmpparam; - while (tmp) { - nxt = tmp->next; - if (tmp->name) free((genericptr_t)(tmp->name)); - while (tmp->params) { - tmpparam = tmp->params->next; - if (tmp->params->name) free((genericptr_t)(tmp->params->name)); - tmp->params = tmpparam; - } - - if (tmp) free((genericptr_t)(tmp)); - tmp = nxt; - } -} - -char * -funcdef_paramtypes(f) -struct lc_funcdefs *f; -{ - int i = 0; - struct lc_funcdefs_parm *fp = f->params; - char *tmp = (char *) alloc((f->n_params) + 1); - if (!tmp) - return ((void *)0); - while (fp) { - tmp[i++] = fp->parmtype; - fp = fp->next; - } - tmp[i] = '\0'; - return tmp; -} - -struct lc_funcdefs * -funcdef_defined(f, name, casesense) -struct lc_funcdefs *f; -char *name; -int casesense; -{ - while (f) { - if (casesense) { - if (!strcmp(name, f->name)) - return f; - } else { - if (!case_insensitive_comp(name, f->name)) - return f; - } - f = f->next; - } - return ((void *)0); -} - -struct lc_vardefs * -vardef_new(typ, name) -long typ; -char *name; -{ - struct lc_vardefs *f = (struct lc_vardefs *) memset((genericptr_t) alloc(sizeof(struct lc_vardefs)), 0, sizeof(struct lc_vardefs)); - if (!f) { - lc_error("Could not alloc variable definition for '%s'.", name); - return ((void *)0); - } - f->next = ((void *)0); - f->var_type = typ; - f->name = strdup(name); - f->n_used = 0; - return f; -} - -void -vardef_free_all(fchain) -struct lc_vardefs *fchain; -{ - struct lc_vardefs *tmp = fchain; - struct lc_vardefs *nxt; - while (tmp) { - if (be_verbose && (tmp->n_used == 0)) - lc_warning("Unused variable '%s'", tmp->name); - nxt = tmp->next; - if (tmp->name) free((genericptr_t)(tmp->name)); - if (tmp) free((genericptr_t)(tmp)); - tmp = nxt; - } -} - -struct lc_vardefs * -vardef_defined(f, name, casesense) -struct lc_vardefs *f; -char *name; -int casesense; -{ - while (f) { - if (casesense) { - if (!strcmp(name, f->name)) - return f; - } else { - if (!case_insensitive_comp(name, f->name)) - return f; - } - f = f->next; - } - return ((void *)0); -} - -const char * -spovar2str(spovar) -long spovar; -{ - static int togl = 0; - static char buf[2][128]; - const char *n = ((void *)0); - int is_array = (spovar & 0x40); - spovar &= ~0x40; - - switch (spovar) { - default: - lc_error("spovar2str(%ld)", spovar); - break; - case 0x01: - n = "integer"; - break; - case 0x02: - n = "string"; - break; - case 0x03: - n = "variable"; - break; - case 0x04: - n = "coordinate"; - break; - case 0x05: - n = "region"; - break; - case 0x06: - n = "mapchar"; - break; - case 0x07: - n = "monster"; - break; - case 0x08: - n = "object"; - break; - } - - togl = ((togl + 1) % 2); - - snprintf(buf[togl], 127, "%s%s", n, (is_array ? " array" : "")); - return buf[togl]; -} - -void -vardef_used(vd, varname) -struct lc_vardefs *vd; -char *varname; -{ - struct lc_vardefs *tmp; - if ((tmp = vardef_defined(vd, varname, 1))) - tmp->n_used++; -} - -void -check_vardef_type(vd, varname, vartype) -struct lc_vardefs *vd; -char *varname; -long vartype; -{ - struct lc_vardefs *tmp; - if ((tmp = vardef_defined(vd, varname, 1))) { - if (tmp->var_type != vartype) - lc_error("Trying to use variable '%s' as %s, when it is %s.", - varname, spovar2str(vartype), spovar2str(tmp->var_type)); - } else - lc_error("Variable '%s' not defined.", varname); -} - -struct lc_vardefs * -add_vardef_type(vd, varname, vartype) -struct lc_vardefs *vd; -char *varname; -long vartype; -{ - struct lc_vardefs *tmp; - if ((tmp = vardef_defined(vd, varname, 1))) { - if (tmp->var_type != vartype) - lc_error("Trying to redefine variable '%s' as %s, when it is %s.", - varname, spovar2str(vartype), spovar2str(tmp->var_type)); - } else { - tmp = vardef_new(vartype, varname); - tmp->next = vd; - return tmp; - } - return vd; -} - -int -reverse_jmp_opcode(opcode) -int opcode; -{ - switch (opcode) { - case SPO_JE: - return SPO_JNE; - case SPO_JNE: - return SPO_JE; - case SPO_JL: - return SPO_JGE; - case SPO_JG: - return SPO_JLE; - case SPO_JLE: - return SPO_JG; - case SPO_JGE: - return SPO_JL; - default: - lc_error("Cannot reverse comparison jmp opcode %d.", opcode); - return SPO_NULL; - } -} - - -struct opvar * -opvar_clone(ov) -struct opvar *ov; -{ - if (ov) { - struct opvar *tmpov = (struct opvar *) alloc(sizeof(struct opvar)); - if (!tmpov) - panic("could not alloc opvar struct"); - switch (ov->spovartyp) { - case 0x04: - case 0x05: - case 0x06: - case 0x07: - case 0x08: - case 0x01: { - tmpov->spovartyp = ov->spovartyp; - tmpov->vardata.l = ov->vardata.l; - } break; - case 0x03: - case 0x02: { - int len = strlen(ov->vardata.str); - tmpov->spovartyp = ov->spovartyp; - tmpov->vardata.str = (char *) alloc(len + 1); - (void) memcpy((genericptr_t) tmpov->vardata.str, - (genericptr_t) ov->vardata.str, len); - tmpov->vardata.str[len] = '\0'; - } break; - default: { - lc_error("Unknown opvar_clone value type (%d)!", ov->spovartyp); - } - } - return tmpov; - } - return ((void *)0); -} - -void -splev_add_from(splev, from_splev) -sp_lev *splev; -sp_lev *from_splev; -{ - int i; - if (splev && from_splev) - for (i = 0; i < from_splev->n_opcodes; i++) - add_opcode(splev, from_splev->opcodes[i].opcode, - opvar_clone(from_splev->opcodes[i].opdat)); -} - -void -start_level_def(splev, ldfname) -sp_lev **splev; -char *ldfname; -{ - struct lc_funcdefs *f; - if (strchr(ldfname, '.')) - lc_error("Invalid dot ('.') in level name '%s'.", ldfname); - if ((int) strlen(ldfname) > 14) - lc_error("Level names limited to 14 characters ('%s').", ldfname); - f = function_definitions; - while (f) { - f->n_called = 0; - f = f->next; - } - *splev = (sp_lev *) alloc(sizeof(sp_lev)); - (*splev)->n_opcodes = 0; - (*splev)->opcodes = ((void *)0); - - vardef_free_all(variable_definitions); - variable_definitions = ((void *)0); -} - - - - -int -get_floor_type(c) -char c; -{ - int val; - - ; - val = what_map_char(c); - if (val == 127) { - val = (-1); - yywarning("Invalid fill character in MAZE declaration"); - } - return val; -} - - - - -int -get_room_type(s) -char *s; -{ - register int i; - - ; - for (i = 0; room_types[i].name; i++) - if (!strcmp(s, room_types[i].name)) - return ((int) room_types[i].type); - return (-1); -} - - - - -int -get_trap_type(s) -char *s; -{ - register int i; - - ; - for (i = 0; trap_types[i].name; i++) - if (!strcmp(s, trap_types[i].name)) - return trap_types[i].type; - return (-1); -} - - - - -int -get_monster_id(s, c) -char *s; -char c; -{ - register int i, class; - - ; - class = c ? def_char_to_monclass(c) : 0; - if (class == 61) - return (-1); - - for (i = ((-1)+1); i < 381; i++) - if (!class || class == mons[i].mlet) - if (!strcmp(s, mons[i].mname)) - return i; - - for (i = ((-1)+1); i < 381; i++) - if (!class || class == mons[i].mlet) - if (!case_insensitive_comp(s, mons[i].mname)) { - if (be_verbose) - lc_warning("Monster type \"%s\" matches \"%s\".", s, - mons[i].mname); - return i; - } - return (-1); -} - - - - -int -get_object_id(s, c) -char *s; -char c; -{ - int i, class; - const char *objname; - - ; - class = (c > 0) ? def_char_to_objclass(c) : 0; - if (class == 18) - return (-1); - - for (i = class ? bases[class] : 0; i < 437; i++) { - if (class && objects[i].oc_class != class) - break; - objname = obj_descr[i].oc_name; - if (objname && !strcmp(s, objname)) - return i; - } - for (i = class ? bases[class] : 0; i < 437; i++) { - if (class && objects[i].oc_class != class) - break; - objname = obj_descr[i].oc_name; - if (objname && !case_insensitive_comp(s, objname)) { - if (be_verbose) - lc_warning("Object type \"%s\" matches \"%s\".", s, objname); - return i; - } - } - return (-1); -} - -static void -init_obj_classes() -{ - int i, class, prev_class; - - prev_class = -1; - for (i = 0; i < 437; i++) { - class = objects[i].oc_class; - if (class != prev_class) { - bases[class] = i; - prev_class = class; - } - } -} - - - - -boolean -check_monster_char(c) -char c; -{ - return (def_char_to_monclass(c) != 61); -} - - - - -boolean -check_object_char(c) -char c; -{ - return (def_char_to_objclass(c) != 18); -} - - - - -char -what_map_char(c) -char c; -{ - ; - switch (c) { - case ' ': - return (0); - case '#': - return (23); - case '.': - return (24); - case '-': - return (2); - case '|': - return (1); - case '+': - return (22); - case 'A': - return (34); - case 'B': - return (7); - case 'C': - return (35); - case 'S': - return (14); - case 'H': - return (15); - case '{': - return (27); - case '\\': - return (28); - case 'K': - return (29); - case '}': - return (17); - case 'P': - return (16); - case 'L': - return (20); - case 'I': - return (32); - case 'W': - return (18); - case 'T': - return (13); - case 'F': - return (21); - case 'x': - return (36); - } - return (127); -} - -void -add_opcode(sp, opc, dat) -sp_lev *sp; -int opc; -genericptr_t dat; -{ - long nop = sp->n_opcodes; - _opcode *tmp; - - if ((opc < 0) || (opc >= MAX_SP_OPCODES)) - lc_error("Unknown opcode '%d'", opc); - - tmp = (_opcode *) alloc(sizeof(_opcode) * (nop + 1)); - if (sp->opcodes && nop) { - (void) memcpy(tmp, sp->opcodes, sizeof(_opcode) * nop); - free(sp->opcodes); - } else if (!tmp) - lc_error("Could not alloc opcode space"); - - sp->opcodes = tmp; - - sp->opcodes[nop].opcode = opc; - sp->opcodes[nop].opdat = dat; - - sp->n_opcodes++; -} - - - - - -void -scan_map(map, sp) -char *map; -sp_lev *sp; -{ - register int i, len; - register char *s1, *s2; - int max_len = 0; - int max_hig = 0; - char *tmpmap[21]; - int dx, dy; - char *mbuf; - - - for (s1 = s2 = map; *s1; s1++) - if (*s1 < '0' || *s1 > '9') - *s2++ = *s1; - *s2 = '\0'; - - - s1 = map; - while (s1 && *s1) { - s2 = strchr(s1, '\n'); - if (s2) { - len = (int) (s2 - s1); - s1 = s2 + 1; - } else { - len = (int) strlen(s1); - s1 = (char *) 0; - } - if (len > max_len) - max_len = len; - } - - - while (map && *map) { - tmpmap[max_hig] = (char *) alloc(max_len); - s1 = strchr(map, '\n'); - if (s1) { - len = (int) (s1 - map); - s1++; - } else { - len = (int) strlen(map); - s1 = map + len; - } - for (i = 0; i < len; i++) - if ((tmpmap[max_hig][i] = what_map_char(map[i])) - == 127) { - lc_warning("Invalid character '%c' @ (%d, %d) - replacing " - "with stone", - map[i], max_hig, i); - tmpmap[max_hig][i] = 0; - } - while (i < max_len) - tmpmap[max_hig][i++] = 0; - map = s1; - max_hig++; - } - - - - max_x_map = max_len - 1; - max_y_map = max_hig - 1; - - if (max_len > 76 || max_hig > 21) { - lc_error("Map too large at (%d x %d), max is (%d x %d)", max_len, - max_hig, 76, 21); - } - - mbuf = (char *) alloc(((max_hig - 1) * max_len) + (max_len - 1) + 2); - for (dy = 0; dy < max_hig; dy++) - for (dx = 0; dx < max_len; dx++) - mbuf[(dy * max_len) + dx] = (tmpmap[dy][dx] + 1); - - mbuf[((max_hig - 1) * max_len) + (max_len - 1) + 1] = '\0'; - - add_opvars(sp, "siio", mbuf,max_hig,max_len,SPO_MAP); - - for (dy = 0; dy < max_hig; dy++) - if (tmpmap[dy]) free((genericptr_t)(tmpmap[dy])); - if (mbuf) free((genericptr_t)(mbuf)); -} - - - - -static boolean -write_common_data(fd) -int fd; -{ - static struct version_info version_data = { - 0x03060000UL, 0x00060000UL, 0x211b517dUL, 0xc48195c4UL, - 0x00025000UL - }; - - if ((long) write(fd, (genericptr_t)(&version_data), sizeof version_data) != (long) (sizeof version_data)) return ((boolean)0);; - return ((boolean)1); -} - - - - - -static boolean -write_maze(fd, maze) -int fd; -sp_lev *maze; -{ - int i; - - if (!write_common_data(fd)) - return ((boolean)0); - - if ((long) write(fd, (genericptr_t)(&(maze->n_opcodes)), sizeof(maze->n_opcodes)) != (long) (sizeof(maze->n_opcodes))) return ((boolean)0);; - - for (i = 0; i < maze->n_opcodes; i++) { - _opcode tmpo = maze->opcodes[i]; - - if ((long) write(fd, (genericptr_t)(&(tmpo.opcode)), sizeof(tmpo.opcode)) != (long) (sizeof(tmpo.opcode))) return ((boolean)0);; - - if (tmpo.opcode < SPO_NULL || tmpo.opcode >= MAX_SP_OPCODES) - panic("write_maze: unknown opcode (%d).", tmpo.opcode); - - if (tmpo.opcode == SPO_PUSH) { - genericptr_t opdat = tmpo.opdat; - if (opdat) { - struct opvar *ov = (struct opvar *) opdat; - int size; - if ((long) write(fd, (genericptr_t)(&(ov->spovartyp)), sizeof(ov->spovartyp)) != (long) (sizeof(ov->spovartyp))) return ((boolean)0);; - switch (ov->spovartyp) { - case 0x00: - break; - case 0x04: - case 0x05: - case 0x06: - case 0x07: - case 0x08: - case 0x01: - if ((long) write(fd, (genericptr_t)(&(ov->vardata.l)), sizeof(ov->vardata.l)) != (long) (sizeof(ov->vardata.l))) return ((boolean)0);; - break; - case 0x03: - case 0x02: - if (ov->vardata.str) - size = strlen(ov->vardata.str); - else - size = 0; - if ((long) write(fd, (genericptr_t)(&size), sizeof(size)) != (long) (sizeof(size))) return ((boolean)0);; - if (size) { - if ((long) write(fd, (genericptr_t)(ov->vardata.str), size) != (long) (size)) return ((boolean)0);; - if (ov->vardata.str) free((genericptr_t)(ov->vardata.str)); - } - break; - default: - panic("write_maze: unknown data type (%d).", - ov->spovartyp); - } - } else - panic("write_maze: PUSH with no data."); - } else { - - genericptr_t opdat = tmpo.opdat; - if (opdat) - panic("write_maze: opcode (%d) has data.", tmpo.opcode); - } - - if (tmpo.opdat) free((genericptr_t)(tmpo.opdat)); - } - - if (maze->opcodes) free((genericptr_t)(maze->opcodes)); - maze->opcodes = ((void *)0); - - - - return ((boolean)1); -} - - - - - -boolean -write_level_file(filename, lvl) -char *filename; -sp_lev *lvl; -{ - int fout; - char lbuf[60]; - - lbuf[0] = '\0'; - - - - (void) strcat(lbuf, filename); - (void) strcat(lbuf, ".lev"); - - - - - fout = open(lbuf, 0x0001 | 0x0200 | 0, 0644); - - if (fout < 0) - return ((boolean)0); - - if (!lvl) - panic("write_level_file"); - - if (be_verbose) - fprintf(__stdoutp, "File: '%s', opcodes: %ld\n", lbuf, lvl->n_opcodes); - - if (!write_maze(fout, lvl)) - return ((boolean)0); - - (void) close(fout); - - return ((boolean)1); -} - -static int -case_insensitive_comp(s1, s2) -const char *s1; -const char *s2; -{ - unsigned char u1, u2; - - for (;; s1++, s2++) { - u1 = tolower((unsigned char) *s1); - u2 = tolower((unsigned char) *s2); - if ((u1 == '\0') || (u1 != u2)) { - break; - } - } - return u1 - u2; -}