diff --git a/doc/fixes34.4 b/doc/fixes34.4 index de8e38476..710fc871c 100644 --- a/doc/fixes34.4 +++ b/doc/fixes34.4 @@ -405,6 +405,8 @@ the weight of a non-cursed bag of holding was sometimes off by 1 unit for number_pad:2 (MSDOS compatibility), M-5 (Alt+5, or Shift+keypad5 using MSDOS/Windows keystroke hackery) didn't function as G movement prefix objects inside the Wizard's Tower can't be teleport to outside and vica versa +unlit candelabrum would become unlightable if its candles had exactly 1 turn + of fuel left and it was applied anywhere other than the invocation spot Platform- and/or Interface-Specific Fixes diff --git a/src/apply.c b/src/apply.c index d3de0fd36..979a63860 100644 --- a/src/apply.c +++ b/src/apply.c @@ -1040,9 +1040,12 @@ register struct obj *obj; pline("%s's %s burn%s", The(xname(obj)), s, (Blind ? "." : " brightly!")); } - if (!invocation_pos(u.ux, u.uy)) { + if (!invocation_pos(u.ux, u.uy) || On_stairs(u.ux, u.uy)) { pline_The("%s %s being rapidly consumed!", s, vtense(s, "are")); - obj->age /= 2; + /* this used to be obj->age /= 2, rounding down; an age of + 1 would yield 0, confusing begin_burn() and producing an + unlightable, unrefillable candelabrum; round up instead */ + obj->age = (obj->age + 1L) / 2L; } else { if(obj->spe == 7) { if (Blind)