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