melting ice (trunk only)

add a new melt_ice_away timer for ice created via zapping
a wand/spell of cold.

Some follow-up adjustments to the length of time before
the ice melts may be necessary. Ideally, I'd like to
have it so that the shorter the length of time since
the ice was created, the lesser the chance that it will
melt out from under you.  Likewise, the longer it has
been, the more risky it will be to venture onto it.

At the moment, however, each spot of ice is just
getting a somewhat random time always greater
than 50, which is less than ideal.
This commit is contained in:
nethack.allison
2003-10-12 04:21:27 +00:00
parent f6425ee3c5
commit 6712fc1b04
6 changed files with 80 additions and 8 deletions

View File

@@ -1982,6 +1982,7 @@ E void NDECL(run_timers);
E void FDECL(obj_move_timers, (struct obj *, struct obj *));
E void FDECL(obj_split_timers, (struct obj *, struct obj *));
E void FDECL(obj_stop_timers, (struct obj *));
E void FDECL(spot_stop_timers, (XCHAR_P,XCHAR_P,SHORT_P));
E boolean FDECL(obj_is_local, (struct obj *));
E void FDECL(save_timers, (int,int,int));
E void FDECL(restore_timers, (int,int,BOOLEAN_P,long));
@@ -2379,7 +2380,9 @@ E struct monst *FDECL(bhit, (int,int,int,int,int (*)(MONST_P,OBJ_P),
E struct monst *FDECL(boomhit, (int,int));
E int FDECL(burn_floor_paper, (int,int,BOOLEAN_P,BOOLEAN_P));
E void FDECL(buzz, (int,int,XCHAR_P,XCHAR_P,int,int));
E void FDECL(melt_ice, (XCHAR_P,XCHAR_P));
E void FDECL(melt_ice, (XCHAR_P,XCHAR_P,const char *));
E void FDECL(start_melt_ice_timeout, (XCHAR_P,XCHAR_P));
E void FDECL(melt_ice_away, (genericptr_t, long));
E int FDECL(zap_over_floor, (XCHAR_P,XCHAR_P,int,boolean *));
E void FDECL(fracture_rock, (struct obj *));
E boolean FDECL(break_statue, (struct obj *));

View File

@@ -28,7 +28,8 @@ typedef void FDECL((*timeout_proc), (genericptr_t, long));
#define BURN_OBJECT 3
#define HATCH_EGG 4
#define FIG_TRANSFORM 5
#define NUM_TIME_FUNCS 6
#define MELT_ICE_AWAY 6
#define NUM_TIME_FUNCS 7
/* used in timeout.c */
typedef struct fe {