diff -Ndru nethack-3.4.3/src/read.c nethack-patched/src/read.c --- nethack-3.43/src/read.c 2006-03-09 19:50:28.000000000 +0000 +++ nethack-patched/src/read.c 2006-03-28 15:38:56.000000000 +0000 @@ -681,6 +681,30 @@ } } +/* Turn all the player's royal jelly into candles. */ +static int +make_candles(blessed) +boolean blessed; +{ + register struct obj *otmp; + int changed_quan = 0; + + for(otmp = invent; otmp; otmp = otmp->nobj) { + if(otmp->otyp != LUMP_OF_ROYAL_JELLY) continue; + otmp->oclass = TOOL_CLASS; + otmp->otyp = WAX_CANDLE; + otmp->spe = 1; + if (blessed && !otmp->cursed) + otmp->age = 30L * (long)objects[WAX_CANDLE].oc_cost; + else otmp->age = 20L * (long)objects[WAX_CANDLE].oc_cost; + otmp->lamplit = 0; + changed_quan += otmp->quan; + } + if (changed_quan) update_inventory(); + return changed_quan; +} + + int seffects(sobj) register struct obj *sobj; @@ -1044,8 +1068,16 @@ else do_genocide(!sobj->cursed | (2 * !!Confusion)); break; case SCR_LIGHT: + if (confused && !sobj->cursed) { + if (make_candles(sobj->blessed)) { + pline("Your pack feels lighter."); + known = TRUE; + } + } + else { if(!Blind) known = TRUE; litroom(!confused && !sobj->cursed, sobj); + } break; case SCR_TELEPORTATION: if(confused || sobj->cursed) level_tele();