Fix the reported bug of using Passes_walls to carry an unpaid item from inside a shop into the wall it shares with another shop producing a situation where examining inventory issued an impossible "unpaid_cost: object wasn't on any bill" when trying to append the cost to the formatted inventory line. u.ushops[], u.ushops0[], and others are lists that can have up to four entries and the relevant code was only checking the first one. Not mentioned in the report: continuing another step into the other shop didn't get recognized as robbing the first shop, for a similar reason. For either of these bugs, digging a breach in the wall, paying off the miffed shopkeeper, then stepping into the breach before it gets repaired will probably trigger the same results without the need for polymorphing into a xorn or earth elemental. But not on the tourist goal level test case since walls there are undiggable. I didn't go looking for other instances of not checking all relevant shopkeepers. It wouldn't surprise me if there are some more.
98 KiB
98 KiB