avoid divide by zero crash if Luck drops below -1 while a prayer is in progress
make hero inflicted with lycanthropy immune to level drain just like monsters
describe locomotion method accurately when flyers traverse ladders or holes
+when there were multiple boulders at a location, moving one of them sometimes
+ resulted in line-of-sight anomalies
Platform- and/or Interface-Specific Fixes
-/* SCCS Id: @(#)mkobj.c 3.5 2005/03/26 */
+/* SCCS Id: @(#)mkobj.c 3.5 2005/09/03 */
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
/* NetHack may be freely redistributed. See license for details. */
panic("place_object: obj not free");
obj_no_longer_held(otmp);
+ /* (could bypass this vision update if there is already a boulder here) */
if (otmp->otyp == BOULDER) block_point(x,y); /* vision */
/* obj goes under boulders */
if (otmp->where != OBJ_FLOOR)
panic("remove_object: obj not on floor");
- if (otmp->otyp == BOULDER) unblock_point(x,y); /* vision */
extract_nexthere(otmp, &level.objects[x][y]);
extract_nobj(otmp, &fobj);
+ /* update vision iff this was the only boulder at its spot */
+ if (otmp->otyp == BOULDER && !sobj_at(BOULDER, x, y))
+ unblock_point(x,y); /* vision */
if (otmp->timed) obj_timer_checks(otmp,x,y,0);
}