Remove some more code that forced pointers into a long int, and vice versa where information could be lost (P64 platforms such as WIN64 have a 64 bit pointer size, but a 32 bit long size.) This 2nd part deals with timeout functions switching some arguments from type genericptr_t to 'anything'. Like part 1, this needs to increment EDITLEVEL in patchlevel.h.
46 lines
1.4 KiB
C
46 lines
1.4 KiB
C
/* SCCS Id: @(#)timeout.h 3.5 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 FDECL((*timeout_proc), (ANY_P *, long));
|
|
|
|
/* kind of timer */
|
|
#define TIMER_LEVEL 0 /* event specific to level */
|
|
#define TIMER_GLOBAL 1 /* event follows current play */
|
|
#define TIMER_OBJECT 2 /* event follows a object */
|
|
#define TIMER_MONSTER 3 /* 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 */
|
|
|
|
/*
|
|
* 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 REVIVE_MON 2
|
|
#define BURN_OBJECT 3
|
|
#define HATCH_EGG 4
|
|
#define FIG_TRANSFORM 5
|
|
#define MELT_ICE_AWAY 6
|
|
#define NUM_TIME_FUNCS 7
|
|
|
|
/* used in timeout.c */
|
|
typedef struct fe {
|
|
struct fe *next; /* next item in 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 */
|
|
anything arg; /* pointer to timeout argument */
|
|
Bitfield (needs_fixup,1); /* does arg need to be patched? */
|
|
} timer_element;
|
|
|
|
#endif /* TIMEOUT_H */
|