1/*	$NetBSD: extern.h,v 1.15 2012/01/08 18:16:00 dholland Exp $	*/
2
3/*
4 * Copyright (c) 1997 Christos Zoulas.  All rights reserved.
5 *
6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions
8 * are met:
9 * 1. Redistributions of source code must retain the above copyright
10 *    notice, this list of conditions and the following disclaimer.
11 * 2. Redistributions in binary form must reproduce the above copyright
12 *    notice, this list of conditions and the following disclaimer in the
13 *    documentation and/or other materials provided with the distribution.
14 *
15 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
16 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
17 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
18 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
19 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
20 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
21 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
22 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
23 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
24 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
25 */
26
27#include <string.h>
28#include <stdint.h>
29
30/* crc.c */
31struct crcstate {
32	uint32_t crcval;
33	unsigned step;
34};
35
36void crc_start(struct crcstate *);
37void crc_add(struct crcstate *, const void *, size_t);
38uint32_t crc_get(struct crcstate *);
39
40/* done.c */
41int score(void);
42void done(int) __dead;
43void die(int);
44
45/* init.c */
46void init(void);
47char   *decr(int, int, int, int, int);
48void trapdel(int);
49void startup(void);
50
51/* io.c */
52void getin(char **, char **);
53int yes(int, int, int);
54int yesm(int, int, int);
55void rdata(void);
56#ifdef DEBUG
57void twrite(int);
58#endif
59void rspeak(int);
60void mspeak(int);
61struct text;
62void speak(const struct text *);
63void pspeak(int, int);
64
65/* save.c */
66int save(const char *);
67int restore(const char *);
68
69/* subr.c */
70int toting(int);
71int here(int);
72int at(int);
73int liq(void);
74int liqloc(int);
75int forced(int);
76int dark(void);
77int pct(int);
78int fdwarf(void);
79int march(void);
80void bug(int) __dead;
81void checkhints(void);
82int trsay(void);
83int trtake(void);
84int trdrop(void);
85int tropen(void);
86int trkill(void);
87int trtoss(void);
88int trfeed(void);
89int trfill(void);
90void closing(void);
91void caveclose(void);
92
93/* vocab.c */
94void destroy(int);
95void juggle(int);
96void move(int, int);
97int put(int, int, int);
98void carry(int, int);
99void drop(int, int);
100int vocab(const char *, int, int);
101
102/* These three used to be functions in vocab.c */
103#define copystr(src, dest)	strcpy((dest), (src))
104#define weq(str1, str2)		(!strncmp((str1), (str2), 5))
105#define length(str)		(strlen((str)) + 1)
106
107/* wizard.c */
108void datime(int *, int *);
109void poof(void);
110int Start(void);
111void ciao(void);
112int ran(int);
113