Home | History | Annotate | Line # | Download | only in hack
hack.timeout.c revision 1.2
      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