WEAR ALL gives multiple identical responses for non-wearable objects

If you are carrying multiple objects and one or more of those are not wearable, you get a separate identical response for each of the non-wearable objects. For example, imagine you are carrying a book, a candle and a jumper. Only the jumper is wearable.

>WEAR ALL
You can't wear that.
You can't wear that.
You put on the jumper.

The first two responses don’t tell you which objects it is that you can’t wear. It would better if these responses told you what you can’t wear (as per option1 below) or were omitted (as per option 2 below).

Option 1:

>WEAR ALL
You can't wear the book.
You can't wear the candle.
You put on the jumper.

Option 2:

>WEAR ALL
You put on the jumper.

Obviously, if nothing is wearable, you need an error response:

>WEAR ALL
There is nothing you can wear at the moment.

We already get that response.

This is the same problem we had with GET ALL some time back. That was fixed using option 2, so I guess that WEAR ALL should be the same.

Fixed in beta 66e.

Just tried it in Beta 66e and nothing has changed.

This is why I need a demonstrative source code. To test if I fixed it. My own tests pass. Show me a snippet with it not working and I’ll take a look.

Perhaps this is because I’m using do_all as described by you here because of containers. The custom wear handler is essentially as follows:

   : match "wear _" {
      : if (noun1_is "all") {
         : do_all "inventory_notworn";
         : done;
      }
   }

I’m trying to get a game finished, but I’ll get something to you a.s.a.p.

You are using custom do_alls. System level WEAR ALLs were fixed, but if you want to fix this bug using custom do_alls then you need this ’

: do_all "inventory_notworn_wearable";

This will iterate over all held not worn but wearable items.

This category should be visible with the usual CONTROL + SPACE assistance.

inventory_notworn_wearable is not given as an option with Ctrl+Space. When I enter it manually, I get an error saying:

Invalid reference.
"inventory_notworn_wearable" should refer to an instance of one of the following types:
[character, game_object, location, object_immovable, page, zone]

Please try beta 66f. It seems I failed to bake the editor metadata into 66e.

1 Like

Confirmed fixed in Beta 66f. Thank you.

1 Like