1 1.2 mycroft /* 2 1.2 mycroft * Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. 3 1.2 mycroft */ 4 1.2 mycroft 5 1.2 mycroft #ifndef lint 6 1.2 mycroft static char rcsid[] = "$Id: hack.timeout.c,v 1.2 1993/08/02 17:19:29 mycroft Exp $"; 7 1.2 mycroft #endif /* not lint */ 8 1.1 cgd 9 1.1 cgd #include "hack.h" 10 1.1 cgd 11 1.1 cgd timeout(){ 12 1.1 cgd register struct prop *upp; 13 1.1 cgd if(Stoned) stoned_dialogue(); 14 1.1 cgd for(upp = u.uprops; upp < u.uprops+SIZE(u.uprops); upp++) 15 1.1 cgd if((upp->p_flgs & TIMEOUT) && !--upp->p_flgs) { 16 1.1 cgd if(upp->p_tofn) (*upp->p_tofn)(); 17 1.1 cgd else switch(upp - u.uprops){ 18 1.1 cgd case STONED: 19 1.1 cgd killer = "cockatrice"; 20 1.1 cgd done("died"); 21 1.1 cgd break; 22 1.1 cgd case SICK: 23 1.1 cgd pline("You die because of food poisoning."); 24 1.1 cgd killer = u.usick_cause; 25 1.1 cgd done("died"); 26 1.1 cgd break; 27 1.1 cgd case FAST: 28 1.1 cgd pline("You feel yourself slowing down."); 29 1.1 cgd break; 30 1.1 cgd case CONFUSION: 31 1.1 cgd pline("You feel less confused now."); 32 1.1 cgd break; 33 1.1 cgd case BLIND: 34 1.1 cgd pline("You can see again."); 35 1.1 cgd setsee(); 36 1.1 cgd break; 37 1.1 cgd case INVIS: 38 1.1 cgd on_scr(u.ux,u.uy); 39 1.1 cgd pline("You are no longer invisible."); 40 1.1 cgd break; 41 1.1 cgd case WOUNDED_LEGS: 42 1.1 cgd heal_legs(); 43 1.1 cgd break; 44 1.1 cgd } 45 1.1 cgd } 46 1.1 cgd } 47 1.1 cgd 48 1.1 cgd /* He is being petrified - dialogue by inmet!tower */ 49 1.1 cgd char *stoned_texts[] = { 50 1.1 cgd "You are slowing down.", /* 5 */ 51 1.1 cgd "Your limbs are stiffening.", /* 4 */ 52 1.1 cgd "Your limbs have turned to stone.", /* 3 */ 53 1.1 cgd "You have turned to stone.", /* 2 */ 54 1.1 cgd "You are a statue." /* 1 */ 55 1.1 cgd }; 56 1.1 cgd 57 1.1 cgd stoned_dialogue() 58 1.1 cgd { 59 1.1 cgd register long i = (Stoned & TIMEOUT); 60 1.1 cgd 61 1.1 cgd if(i > 0 && i <= SIZE(stoned_texts)) 62 1.1 cgd pline(stoned_texts[SIZE(stoned_texts) - i]); 63 1.1 cgd if(i == 5) 64 1.1 cgd Fast = 0; 65 1.1 cgd if(i == 3) 66 1.1 cgd nomul(-3); 67 1.1 cgd } 68