
1: /* $NetBSD: hack.timeout.c,v 1.6 2003/04/02 18:36:41 jsm Exp $ */ 2: 3: /* 4: * Copyright (c) 1985, Stichting Centrum voor Wiskunde en Informatica, 5: * Amsterdam 6: * All rights reserved. 7: * 8: * Redistribution and use in source and binary forms, with or without 9: * modification, are permitted provided that the following conditions are 10: * met: 11: * 12: * - Redistributions of source code must retain the above copyright notice, 13: * this list of conditions and the following disclaimer. 14: * 15: * - Redistributions in binary form must reproduce the above copyright 16: * notice, this list of conditions and the following disclaimer in the 17: * documentation and/or other materials provided with the distribution. 18: * 19: * - Neither the name of the Stichting Centrum voor Wiskunde en 20: * Informatica, nor the names of its contributors may be used to endorse or 21: * promote products derived from this software without specific prior 22: * written permission. 23: * 24: * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS 25: * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED 26: * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A 27: * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER 28: * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 29: * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 30: * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 31: * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 32: * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING 33: * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 34: * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 35: */ 36: 37: /* 38: * Copyright (c) 1982 Jay Fenlason <hack@gnu.org> 39: * All rights reserved. 40: * 41: * Redistribution and use in source and binary forms, with or without 42: * modification, are permitted provided that the following conditions 43: * are met: 44: * 1. Redistributions of source code must retain the above copyright 45: * notice, this list of conditions and the following disclaimer. 46: * 2. Redistributions in binary form must reproduce the above copyright 47: * notice, this list of conditions and the following disclaimer in the 48: * documentation and/or other materials provided with the distribution. 49: * 3. The name of the author may not be used to endorse or promote products 50: * derived from this software without specific prior written permission. 51: * 52: * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, 53: * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY 54: * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL 55: * THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 56: * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 57: * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; 58: * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 59: * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR 60: * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF 61: * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 62: */ 63: 64: #include <sys/cdefs.h> 65: #ifndef lint 66: __RCSID("$NetBSD: hack.timeout.c,v 1.6 2003/04/02 18:36:41 jsm Exp $"); 67: #endif /* not lint */ 68: 69: #include "hack.h" 70: #include "extern.h" 71: 72: void 73: timeout() 74: { 75: struct prop *upp; 76: if (Stoned) 77: stoned_dialogue(); 78: for (upp = u.uprops; upp < u.uprops + SIZE(u.uprops); upp++) 79: if ((upp->p_flgs & TIMEOUT) && !--upp->p_flgs) { 80: if (upp->p_tofn) 81: (*upp->p_tofn) (); 82: else 83: switch (upp - u.uprops) { 84: case STONED: 85: killer = "cockatrice"; 86: done("died"); 87: break; 88: case SICK: 89: pline("You die because of food poisoning."); 90: killer = u.usick_cause; 91: done("died"); 92: break; 93: case FAST: 94: pline("You feel yourself slowing down."); 95: break; 96: case CONFUSION: 97: pline("You feel less confused now."); 98: break; 99: case BLIND: 100: pline("You can see again."); 101: setsee(); 102: break; 103: case INVIS: 104: on_scr(u.ux, u.uy); 105: pline("You are no longer invisible."); 106: break; 107: case WOUNDED_LEGS: 108: heal_legs(); 109: break; 110: } 111: } 112: } 113: 114: /* He is being petrified - dialogue by inmet!tower */ 115: const char *const stoned_texts[] = { 116: "You are slowing down.",/* 5 */ 117: "Your limbs are stiffening.", /* 4 */ 118: "Your limbs have turned to stone.", /* 3 */ 119: "You have turned to stone.", /* 2 */ 120: "You are a statue." /* 1 */ 121: }; 122: 123: void 124: stoned_dialogue() 125: { 126: long i = (Stoned & TIMEOUT); 127: 128: if (i > 0 && i <= SIZE(stoned_texts)) 129: pline(stoned_texts[SIZE(stoned_texts) - i]); 130: if (i == 5) 131: Fast = 0; 132: if (i == 3) 133: nomul(-3); 134: }