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