Source:Timeout.h

Below is the full text to include/timeout.h from NetHack 3.4.3. To link to a particular line, write [[timeout.h#line123 ]], for example. 1.   /*	SCCS Id: @(#)timeout.h	3.4	1999/02/13	*/ 2.   /* Copyright 1994, Dean Luick					  */ 3.   /* NetHack may be freely redistributed. See license for details. */ 4.

5.   #ifndef TIMEOUT_H 6.   #define TIMEOUT_H 7.    8.    /* generic timeout function */ 9.   typedef void FDECL((*timeout_proc), (genericptr_t, long)); 10.   11.   /* kind of timer */ 12.  #define TIMER_LEVEL	0	/* event specific to level */ 13.  #define TIMER_GLOBAL	1	/* event follows current play */ 14.  #define TIMER_OBJECT	2	/* event follows a object */ 15.  #define TIMER_MONSTER	3	/* event follows a monster */ 16.   17.   /* save/restore timer ranges */ 18.  #define RANGE_LEVEL  0		/* save/restore timers staying on level */ 19.  #define RANGE_GLOBAL 1		/* save/restore timers following global play */ 20.   21.   /*  22.    * Timeout functions. Add a define here, then put it in the table 23.   * in timeout.c.  "One more level of indirection will fix everything." 24.   */  25.   #define ROT_ORGANIC	0	/* for buried organics */ 26.  #define ROT_CORPSE	1 27.  #define REVIVE_MON	2 28.  #define BURN_OBJECT	3 29.  #define HATCH_EGG	4 30.  #define FIG_TRANSFORM	5 31.  #define NUM_TIME_FUNCS	6 32.   33.   /* used in timeout.c */ 34.  typedef struct fe { 35.      struct fe *next;		/* next item in chain */ 36.      long timeout;		/* when we time out */ 37.      unsigned long tid;		/* timer ID */ 38.      short kind;			/* kind of use */ 39.      short func_index;		/* what to call when we time out */ 40.      genericptr_t arg;		/* pointer to timeout argument */ 41.      Bitfield (needs_fixup,1);	/* does arg need to be patched? */ 42.   } timer_element; 43.   44.   #endif /* TIMEOUT_H */