1*aed906e4Smestre /* $OpenBSD: hack.Decl.c,v 1.7 2016/01/09 18:33:15 mestre Exp $ */ 2d0b779f3Sniklas 3df930be7Sderaadt /* 4d25013f2Scamield * Copyright (c) 1985, Stichting Centrum voor Wiskunde en Informatica, 5d25013f2Scamield * Amsterdam 6d25013f2Scamield * All rights reserved. 7d25013f2Scamield * 8d25013f2Scamield * Redistribution and use in source and binary forms, with or without 9d25013f2Scamield * modification, are permitted provided that the following conditions are 10d25013f2Scamield * met: 11d25013f2Scamield * 12d25013f2Scamield * - Redistributions of source code must retain the above copyright notice, 13d25013f2Scamield * this list of conditions and the following disclaimer. 14d25013f2Scamield * 15d25013f2Scamield * - Redistributions in binary form must reproduce the above copyright 16d25013f2Scamield * notice, this list of conditions and the following disclaimer in the 17d25013f2Scamield * documentation and/or other materials provided with the distribution. 18d25013f2Scamield * 19d25013f2Scamield * - Neither the name of the Stichting Centrum voor Wiskunde en 20d25013f2Scamield * Informatica, nor the names of its contributors may be used to endorse or 21d25013f2Scamield * promote products derived from this software without specific prior 22d25013f2Scamield * written permission. 23d25013f2Scamield * 24d25013f2Scamield * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS 25d25013f2Scamield * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED 26d25013f2Scamield * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A 27d25013f2Scamield * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER 28d25013f2Scamield * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 29d25013f2Scamield * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 30d25013f2Scamield * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 31d25013f2Scamield * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 32d25013f2Scamield * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING 33d25013f2Scamield * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 34d25013f2Scamield * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 35d25013f2Scamield */ 36d25013f2Scamield 37d25013f2Scamield /* 38d25013f2Scamield * Copyright (c) 1982 Jay Fenlason <hack@gnu.org> 39d25013f2Scamield * All rights reserved. 40d25013f2Scamield * 41d25013f2Scamield * Redistribution and use in source and binary forms, with or without 42d25013f2Scamield * modification, are permitted provided that the following conditions 43d25013f2Scamield * are met: 44d25013f2Scamield * 1. Redistributions of source code must retain the above copyright 45d25013f2Scamield * notice, this list of conditions and the following disclaimer. 46d25013f2Scamield * 2. Redistributions in binary form must reproduce the above copyright 47d25013f2Scamield * notice, this list of conditions and the following disclaimer in the 48d25013f2Scamield * documentation and/or other materials provided with the distribution. 49d25013f2Scamield * 3. The name of the author may not be used to endorse or promote products 50d25013f2Scamield * derived from this software without specific prior written permission. 51d25013f2Scamield * 52d25013f2Scamield * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, 53d25013f2Scamield * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY 54d25013f2Scamield * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL 55d25013f2Scamield * THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 56d25013f2Scamield * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 57d25013f2Scamield * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; 58d25013f2Scamield * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 59d25013f2Scamield * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR 60d25013f2Scamield * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF 61d25013f2Scamield * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 62df930be7Sderaadt */ 63df930be7Sderaadt 64df930be7Sderaadt #include "hack.h" 65*aed906e4Smestre 66df930be7Sderaadt char nul[40]; /* contains zeros */ 67df930be7Sderaadt char plname[PL_NSIZ]; /* player name */ 68df930be7Sderaadt char lock[PL_NSIZ+4] = "1lock"; /* long enough for login name .99 */ 69df930be7Sderaadt 70df930be7Sderaadt boolean in_mklev, restoring; 71df930be7Sderaadt 72df930be7Sderaadt struct rm levl[COLNO][ROWNO]; /* level map */ 73df930be7Sderaadt #ifndef QUEST 74df930be7Sderaadt struct mkroom rooms[MAXNROFROOMS+1]; 75df930be7Sderaadt coord doors[DOORMAX]; 7654da88e4Spjanzen #endif /* QUEST */ 77df930be7Sderaadt struct monst *fmon = 0; 78df930be7Sderaadt struct trap *ftrap = 0; 79df930be7Sderaadt struct gold *fgold = 0; 80df930be7Sderaadt struct obj *fobj = 0, *fcobj = 0, *invent = 0, *uwep = 0, *uarm = 0, 81df930be7Sderaadt *uarm2 = 0, *uarmh = 0, *uarms = 0, *uarmg = 0, *uright = 0, 82df930be7Sderaadt *uleft = 0, *uchain = 0, *uball = 0; 83df930be7Sderaadt struct flag flags; 84df930be7Sderaadt struct you u; 85df930be7Sderaadt struct monst youmonst; /* dummy; used as return value for boomhit */ 86df930be7Sderaadt 87df930be7Sderaadt xchar dlevel = 1; 88df930be7Sderaadt xchar xupstair, yupstair, xdnstair, ydnstair; 89df930be7Sderaadt char *save_cm = 0, *killer, *nomovemsg; 90df930be7Sderaadt 91df930be7Sderaadt long moves = 1; 92df930be7Sderaadt long wailmsg = 0; 93df930be7Sderaadt 94df930be7Sderaadt int multi = 0; 95df930be7Sderaadt char genocided[60]; 96df930be7Sderaadt char fut_geno[60]; 97df930be7Sderaadt 98df930be7Sderaadt xchar curx,cury; 99df930be7Sderaadt xchar seelx, seehx, seely, seehy; /* corners of lit room */ 100df930be7Sderaadt 101df930be7Sderaadt coord bhitpos; 102df930be7Sderaadt 103df930be7Sderaadt char quitchars[] = " \r\n\033"; 104