Scatter did not consider the ball or chain, and moved them around, causing
ball and chain sanity error.
One way to trigger was being punished, with chain on a land mine and having
a monster trigger the mine. Now the chain will shatter, unpunishing the hero.
over but buffered output didn't show it until hero stopped, so it
wasn't possible to tell where they were, unlike all other forms of
multiple movement; stop running if/when an engraving is reached
+fix exploding land mine moving ball or chain and causing a sanity error
Fixes to Post-3.6.2 Problems that Were Exposed Via git Repository
obj->ox, obj->oy, sx, sy);
while ((otmp = (individual_object ? obj : level.objects[sx][sy])) != 0) {
+ if (otmp == uball || otmp == uchain) {
+ boolean waschain = (otmp == uchain);
+ pline_The("chain shatters!");
+ unpunish();
+ if (waschain)
+ continue;
+ }
if (otmp->quan > 1L) {
qtmp = otmp->quan - 1L;
if (qtmp > LARGEST_INT)