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