While an object is being thrown, it isn't on any list. This means that killing a shopkeeper with an unpaid object wouldn't be able to clear the unpaid bit. By the time the object lands, the shopkeeper is gone, and then it's too late. Added a new global to track a thrown object, set it and later clear it in throwit(), also clear it as needed in dealloc_obj(), and check it in setpaid(). It should be possible to use this global to avoid losing thrown objects during hangup saves as well. But that can wait.
48 KiB
48 KiB