## §11 Clothing

The player's possessions are normally thought of as being held in the hands, but there are two alternative possibilities: some items might be being carried indirectly in a bag or other container (see §12 next), while others might be worn as clothing. Wearing a hat is evidently different from carrying it. Some consequences are left to the designer to sort out, such as taking account of the hat keeping the rain off, but others are automatically provided: for instance, a request to “drop all” will not be taken as including the hat, and the hat will not count towards any maximum number of items allowed to be held in the player's hands. The library provides two actions for clothing: `Wear` and `Disrobe`. There is already an action called `Remove` for taking items out of containers, which is why the name `Remove` is not used for taking clothes off.

‘Ruins’ contains only one item of clothing, found resting on an altar in the Shrine: it summons a priest.

    Treasure -> -> mask "jade mosaic face-mask"
      with description "How exquisite it would look in the Museum.",
           initial "Resting on the altar is a jade mosaic face-mask.",
           name 'jade' 'mosaic' 'face-mask' 'mask' 'face',
           cultural_value 10,
           after [;
               Wear: move priest to Shrine;
                   if (location == Shrine)
                       "Looking through the obsidian eyeslits of the
                       mosaic mask, a ghostly presence reveals itself:
                       a mummified calendrical priest, attending your
                       word.";
               Disrobe: remove priest;
           ],
      has  clothing;

The attribute `clothing` signifies that the mask can be worn. During the time something is worn, it has the attribute `worn`. The library's standard rules ensure that:

An object can only have `worn` if it is `in player`, that is, if it is an immediate possession of the player.

If you use `move` or `remove` to shift items of clothing in your own code, or give or take away the `worn` attribute, then you too should follow this principle.

▲ A risk of providing clothing for the player is that it's hard to resist the lure of realism. A tweed jacket would add some colour to ‘Ruins’. But if a jacket, why not plus-four trousers, an old pair of army boots and a hat with a mosquito net? And if trousers, why not underwear? What are the consequences if the player strips off? Too much of this kind of realism can throw a game off balance, so: no tweed.

•▲▲ EXERCISE 14
Design a pair of white silk gloves, left and right, which are a single object called “pair of white gloves” until the player asks to do something which implies dividing them (typing “wear left glove”, say, or “put right glove in drawer”). They should automatically rejoin into the pair as soon as they are together again. (By Richard Tucker. Hint: `react_before` and `before` rules are all you need.)

• REFERENCES
For designers who do want to go down the “if trousers, why not underwear?” road, Denis Moskowitz's library extension `"clothing.h"` models clothing by layer and by area of body covered. •For players who also want to, the road to take is ‘I-0’, by Adam Cadre.