xref: /openbsd-src/games/adventure/extern.h (revision 893695cea05286a86be12c6215f6501df588dceb)
1*893695ceSjsg /*	$OpenBSD: extern.h,v 1.12 2023/01/04 13:00:11 jsg Exp $	*/
212ee68bbSpjanzen /*	$NetBSD: extern.h,v 1.3 1997/10/11 01:55:27 lukem Exp $	*/
312ee68bbSpjanzen 
412ee68bbSpjanzen /*
512ee68bbSpjanzen  * Copyright (c) 1997 Christos Zoulas.  All rights reserved.
612ee68bbSpjanzen  *
712ee68bbSpjanzen  * Redistribution and use in source and binary forms, with or without
812ee68bbSpjanzen  * modification, are permitted provided that the following conditions
912ee68bbSpjanzen  * are met:
1012ee68bbSpjanzen  * 1. Redistributions of source code must retain the above copyright
1112ee68bbSpjanzen  *    notice, this list of conditions and the following disclaimer.
1212ee68bbSpjanzen  * 2. Redistributions in binary form must reproduce the above copyright
1312ee68bbSpjanzen  *    notice, this list of conditions and the following disclaimer in the
1412ee68bbSpjanzen  *    documentation and/or other materials provided with the distribution.
1512ee68bbSpjanzen  *
1612ee68bbSpjanzen  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
1712ee68bbSpjanzen  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
1812ee68bbSpjanzen  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
1912ee68bbSpjanzen  * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
2012ee68bbSpjanzen  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
2112ee68bbSpjanzen  * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
2212ee68bbSpjanzen  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
2312ee68bbSpjanzen  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
2412ee68bbSpjanzen  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
2512ee68bbSpjanzen  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
2612ee68bbSpjanzen  */
2712ee68bbSpjanzen 
2812ee68bbSpjanzen #include <sys/types.h>
29400fe323Smestre 
3012ee68bbSpjanzen #include <string.h>
3112ee68bbSpjanzen 
3212ee68bbSpjanzen /* crc.c */
33c72b5b24Smillert void crc_start(void);
34c72b5b24Smillert unsigned long crc(const char *, int);
3512ee68bbSpjanzen 
3612ee68bbSpjanzen /* done.c */
37c72b5b24Smillert int score(void);
38c72b5b24Smillert void done(int);
39c72b5b24Smillert void die(int);
4012ee68bbSpjanzen 
4112ee68bbSpjanzen /* init.c */
42c72b5b24Smillert void init(void);
43a5ca3416Sderaadt char   *decr(char, char, char, char, char);
44c72b5b24Smillert void linkdata(void);
45c72b5b24Smillert void trapdel(int);
46c72b5b24Smillert void startup(void);
4712ee68bbSpjanzen 
4812ee68bbSpjanzen /* io.c */
498a190032Smillert void getin(char *, size_t, char *, size_t);
50c72b5b24Smillert int yes(int, int, int);
51c72b5b24Smillert int yesm(int, int, int);
52c72b5b24Smillert int next(void);
53c72b5b24Smillert void rdata(void);
54c72b5b24Smillert int rnum(void);
55c72b5b24Smillert void rdesc(int);
56c72b5b24Smillert void rtrav(void);
5712ee68bbSpjanzen #ifdef DEBUG
58c72b5b24Smillert void twrite(int);
5912ee68bbSpjanzen #endif
60c72b5b24Smillert void rvoc(void);
61c72b5b24Smillert void rlocs(void);
62c72b5b24Smillert void rdflt(void);
63c72b5b24Smillert void rliq(void);
64c72b5b24Smillert void rhints(void);
65c72b5b24Smillert void rspeak(int);
66c72b5b24Smillert void mspeak(int);
6712ee68bbSpjanzen struct text;
68c72b5b24Smillert void speak(const struct text *);
69c72b5b24Smillert void pspeak(int, int);
7012ee68bbSpjanzen 
7112ee68bbSpjanzen /* save.c */
72c72b5b24Smillert int save(const char *);
73c72b5b24Smillert int restore(const char *);
7412ee68bbSpjanzen 
7512ee68bbSpjanzen /* subr.c */
76c72b5b24Smillert int toting(int);
77c72b5b24Smillert int here(int);
78c72b5b24Smillert int at(int);
79c72b5b24Smillert int liq2(int);
80c72b5b24Smillert int liq(void);
81c72b5b24Smillert int liqloc(int);
82c72b5b24Smillert int bitset(int, int);
83c72b5b24Smillert int forced(int);
84c72b5b24Smillert int dark(void);
85c72b5b24Smillert int pct(int);
86c72b5b24Smillert int fdwarf(void);
87c72b5b24Smillert int march(void);
88c72b5b24Smillert int mback(void);
89c72b5b24Smillert int specials(void);
90c72b5b24Smillert int trbridge(void);
91c72b5b24Smillert void badmove(void);
927ad55f55Smestre __dead void bug(int);
93c72b5b24Smillert void checkhints(void);
94c72b5b24Smillert int trsay(void);
95c72b5b24Smillert int trtake(void);
96c72b5b24Smillert int dropper(void);
97c72b5b24Smillert int trdrop(void);
98c72b5b24Smillert int tropen(void);
99c72b5b24Smillert int trkill(void);
100c72b5b24Smillert int trtoss(void);
101c72b5b24Smillert int trfeed(void);
102c72b5b24Smillert int trfill(void);
103c72b5b24Smillert void closing(void);
104c72b5b24Smillert void caveclose(void);
10512ee68bbSpjanzen 
10612ee68bbSpjanzen /* vocab.c */
107c72b5b24Smillert void dstroy(int);
108c72b5b24Smillert void juggle(int);
109c72b5b24Smillert void move(int, int);
110c72b5b24Smillert int put(int, int, int);
111c72b5b24Smillert void carry(int, int);
112c72b5b24Smillert void drop(int, int);
113c72b5b24Smillert int vocab(const char *, int, int);
114c72b5b24Smillert void prht(void);
11512ee68bbSpjanzen 
11612ee68bbSpjanzen /* These three used to be functions in vocab.c */
11712ee68bbSpjanzen #define weq(str1, str2)		(!strncmp((str1), (str2), 5))
11812ee68bbSpjanzen #define length(str)			(strlen((str)) + 1)
11912ee68bbSpjanzen 
12012ee68bbSpjanzen /* wizard.c */
121c72b5b24Smillert void poof(void);
122c72b5b24Smillert int Start(void);
123c72b5b24Smillert int wizard(void);
124c72b5b24Smillert void ciao(void);
125c72b5b24Smillert int ran(int);
126