1
0
Fork 0
mirror of https://codeberg.org/noisytoot/notnotdnethack.git synced 2024-11-21 16:55:06 +00:00
notnotdnethack/include/timeout.h
Ron Nazarov 34aaaf57e1
Replace FDECL, NDECL, VDECL, and E macros with their definitions
E as in the alias for extern, not the completely different E that's an
alias for EXPLOSION used in objects.c.
2024-05-06 00:28:05 +01:00

66 lines
2 KiB
C

/* SCCS Id: @(#)timeout.h 3.4 1999/02/13 */
/* Copyright 1994, Dean Luick */
/* NetHack may be freely redistributed. See license for details. */
#ifndef TIMEOUT_H
#define TIMEOUT_H
/* generic timeout function */
typedef void (*timeout_proc)(void *, long);
/* kind of timer */
#define TIMER_OBJECT 1 /* event follows a object */
#define TIMER_MONSTER 2 /* event follows a monster */
/* save/restore timer ranges */
#define RANGE_LEVEL 0 /* save/restore timers staying on level */
#define RANGE_GLOBAL 1 /* save/restore timers following global play */
/* flags for revive type after timeout */
#define REVIVE_MONSTER 0
#define GROW_MOLD 1
#define REVIVE_MOLD 2
#define GROW_SLIME 3
#define REVIVE_ZOMBIE 4
#define REVIVE_SHADE 5
#define REVIVE_YELLOW 6
#define GROW_BBLOOM 7
/*
* Timeout functions. Add a define here, then put it in the table
* in timeout.c. "One more level of indirection will fix everything."
*/
#define ROT_ORGANIC 0 /* for buried organics */
#define ROT_CORPSE 1
#define MOLDY_CORPSE 2
#define REVIVE_MON 3
#define BURN_OBJECT 4
#define HATCH_EGG 5
#define FIG_TRANSFORM 6
#define LIGHT_DAMAGE 7
#define SLIMY_CORPSE 8
#define ZOMBIE_CORPSE 9
#define SHADY_CORPSE 10
#define YELLOW_CORPSE 11
#define BOMB_BLOW 12
#define RETURN_AMMO 13
#define DESUMMON_MON 14
#define DESUMMON_OBJ 15
#define LARVAE_DIE 16
#define REVIVE_PICKUP 17
#define NUM_TIME_FUNCS 18
/* used in timeout.c */
typedef struct timer {
struct timer *next; /* next item in PROCESSING chain */
struct timer *tnxt; /* next item in LOCAL chain */
long timeout; /* when we time out */
unsigned long tid; /* timer ID */
short kind; /* kind of use */
short func_index; /* what to call when we time out */
void * arg; /* pointer to timeout argument */
int timerflags; /* flags for the timer */
} timer_element;
#define TIMERFLAG_PAUSED 0x01 /* pause progression of timer -- 'timeout' is how many turns were remaining when paused, instead of end-turn*/
#define TIMERFLAG_MIGRATING 0x10 /* progress but do not execute timer, as 'arg' is migrating */
#endif /* TIMEOUT_H */