OSDN Git Service

fix sokoban defs
[nethackexpress/trunk.git] / include / timeout.h
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 */