Fix ball and chain sanity
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.
This commit is contained in:
@@ -177,6 +177,7 @@ avoid 'object lost' panic when polymorph causes loss of levitation boots or
|
||||
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
|
||||
|
||||
@@ -621,6 +621,13 @@ struct obj *obj; /* only scatter this obj */
|
||||
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)
|
||||
|
||||
Reference in New Issue
Block a user