home *** CD-ROM | disk | FTP | other *** search
/ Giga Games 1 / Giga Games.iso / net / hack / 2_3 / timeout.c < prev    next >
Encoding:
C/C++ Source or Header  |  1993-06-20  |  2.0 KB  |  87 lines

  1. /*    SCCS Id: @(#)timeout.c    2.0    87/09/18
  2. /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
  3.  
  4. #include    "hack.h"
  5.  
  6. timeout(){
  7. register struct prop *upp;
  8. #ifdef KAA
  9. register struct monst *mtmp;
  10. #endif
  11.     if(Stoned) stoned_dialogue();
  12. #ifdef KAA
  13.     if(u.mtimedone) if (!--u.mtimedone) rehumanize();
  14. # ifdef KOPS
  15.     if(u.ucreamed > 0) u.ucreamed--;
  16. # endif
  17. #endif
  18.     for(upp = u.uprops; upp < u.uprops+SIZE(u.uprops); upp++)
  19.         if((upp->p_flgs & TIMEOUT) && !(--upp->p_flgs & TIMEOUT)) {
  20.         if(upp->p_tofn) (*upp->p_tofn)();
  21.         else switch(upp - u.uprops){
  22.         case STONED:
  23.             killer = "cockatrice";
  24.             done("died");
  25.             break;
  26.         case SICK:
  27.             pline("You die because of food poisoning.");
  28.             killer = u.usick_cause;
  29.             done("died");
  30.             break;
  31.         case FAST:
  32.             pline("You feel yourself slowing down.");
  33.             break;
  34.         case CONFUSION:
  35.             if (Hallucination) pline("You feel less trippy now.");
  36.             else
  37.                 pline("You feel less confused now.");
  38.             break;
  39.         case BLINDED:
  40.             if (Hallucination) pline("Oh like wow! What a rush.");
  41.             else           pline("You can see again.");
  42.             setsee();
  43.             break;
  44.         case INVIS:
  45.             on_scr(u.ux,u.uy);
  46.             if (!See_invisible)
  47.                 pline("You are no longer invisible.");
  48.             break;
  49.         case WOUNDED_LEGS:
  50.             heal_legs();
  51.             break;
  52. #ifdef KAA
  53.         case HALLUCINATION:
  54.             pline("Everything looks SO boring now.");
  55.             setsee();
  56.             for (mtmp=fmon; mtmp; mtmp=mtmp->nmon)
  57.                 if ((Blind && Telepat) || canseemon(mtmp))
  58.                     atl(mtmp->mx, mtmp->my, (!mtmp->mappearance || 
  59.                     Protection_from_shape_changers) 
  60.                     ? mtmp->data->mlet : mtmp->mappearance);
  61.             break;
  62. #endif
  63.         }
  64.     }
  65. }
  66.  
  67. /* He is being petrified - dialogue by inmet!tower */
  68. char *stoned_texts[] = {
  69.     "You are slowing down.",        /* 5 */
  70.     "Your limbs are stiffening.",        /* 4 */
  71.     "Your limbs have turned to stone.",    /* 3 */
  72.     "You have turned to stone.",        /* 2 */
  73.     "You are a statue."            /* 1 */
  74. };
  75.  
  76. stoned_dialogue()
  77. {
  78.     register long i = (Stoned & TIMEOUT);
  79.  
  80.     if(i > 0 && i <= SIZE(stoned_texts))
  81.         pline(stoned_texts[SIZE(stoned_texts) - i]);
  82.     if(i == 5)
  83.         Fast = 0;
  84.     if(i == 3)
  85.         nomul(-3);
  86. }
  87.