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