melting ice follow up (trunk only)

(now + 50) < (melting time) < (now + 50 + 2000)
with the chance approaching 100% the longer the time passed
This commit is contained in:
nethack.allison
2003-10-12 14:49:42 +00:00
parent 6712fc1b04
commit afd8d17d43
+9 -4
View File
@@ -3518,6 +3518,8 @@ const char *msg;
spoteffects(TRUE); /* possibly drown, notice objects */ spoteffects(TRUE); /* possibly drown, notice objects */
} }
#define MIN_ICE_TIME 50
#define MAX_ICE_TIME 2000
/* /*
* Start a melt_ice timer. * Start a melt_ice timer.
*/ */
@@ -3525,13 +3527,16 @@ void
start_melt_ice_timeout(x,y) start_melt_ice_timeout(x,y)
xchar x,y; xchar x,y;
{ {
long when, where; int when;
long where;
short action = MELT_ICE_AWAY; short action = MELT_ICE_AWAY;
for (when = 50L; when < 2000L; when++) for (when = MIN_ICE_TIME; when < (MAX_ICE_TIME + MIN_ICE_TIME); when++)
if (!rn2(3)) break; if (!rn2((MAX_ICE_TIME - when) + MIN_ICE_TIME)) break;
where = (((long)x << 16) | ((long)y)); where = (((long)x << 16) | ((long)y));
(void) start_timer(when, TIMER_LEVEL, action, (genericptr_t)where); (void) start_timer((long)when, TIMER_LEVEL, action, (genericptr_t)where);
} }
#undef MIN_ICE_TIME
#undef MAX_ICE_TIME
/* /*
* Called when ice has melted completely away. * Called when ice has melted completely away.