Section A5: Library attributes

Contents Back Forward | ### A5. Library attributes
| Here is a concise account of all the normal rules concerning all the library's attributes, except that: rules about how the parser sorts out ambiguities are far too complicated to include here, but should not concern designers anyway; and the definitions of 'scope' and 'darkness' are given in Section 28 and Section 17 respectively. These rules are the result of pragmatism and compromise, but are all easily modifiable. `absent` A 'floating object' (one with a `found_in` property, which can appear in many different rooms) which is `absent` will in future no longer appear in the game. Note that you cannot make a floating object disappear merely by giving it `absent`, but must explicitly `remove` it as well. `animate` "Is alive (human or animal).'' Can be spoken to in "richard, hello'' style; matches the `creature` token in grammar; picks up "him'' or "her'' (according to gender) rather than "it'', likewise "his''; an object the player is changed into becomes `animate`; some messages read "on whom'', etc., instead of "on which''; can't be taken; its subobjects "belong to'' it rather than "are part of'' it; messages don't assume it can be "touched'' or "squeezed'' as an ordinary object can; the actions `Attack`, `ThrowAt` are diverted to `life` rather than rejected as being 'futile violence'. `clothing` "Can be worn.'' `concealed` "Concealed from view but present.'' The player object has this; an object which was the player until `ChangePlayer` happened loses this property; a `concealed` `door` can't be entered; does not appear in room descriptions. `container` Affects scope and light; object lists recurse through it if `open` (or `transparent`); may be described as closed, open, locked, empty; a possession will give it a `LetGo` action if the player tries to remove it, or a `Receive` if something is put in; things can be taken or removed from it, or inserted into it, but only if it is `open`; likewise for "transfer'' and "empty''; room descriptions describe using `when_open` or `when_closed` if given; if there is no defined `description`, an `Examine` causes the contents to be searched (i.e. written out) rather than a message "You see nothing special about...''; `Search` only reveals the contents of `container`s, otherwise saying "You find nothing''. `door` "Is a door or bridge.'' Room descriptions describe using `when_open` or `when_closed` if given; and an `Enter` action becomes a `Go` action. If a `Go` has to go through this object, then: if `concealed`, the player "can't go that way''; if not `open`, then the player is told either that this cannot be ascended or descended (if the player tried "up'' or "down''), or that it is in the way (otherwise); but if neither, then its `door_to` property is consulted to see where it leads; finally, if this is zero, then it is said to "lead nowhere'' and otherwise the player actually moves to the location. `edible` "Can be eaten'' (and thus removed from game). `enterable` Affects scope and light; only an `enterable` on the floor can be entered. If an `enterable` is also a `container` then it can only be entered or exited if it is `open`. `female` This object has a feminine name. In games written in English, this makes her a female person, though in other languages it might be inanimate. The parser uses this information when considering pronouns like "her''. (In English, anything `animate` is assumed to be male unless `female` or `neuter` is set.) `general` A general-purpose attribute, defined by the library but never looked at or altered by it. This is left free to mean something different for each object: often used by programmers for something like "the puzzle for this object has been solved''. `light` "Is giving off light.'' (See Section 17.) Also: the parser understands "lit'', "lighted'', "unlit'' using this; inventories will say "(providing light)'' of it, and so will room descriptions if the current `location` is ordinarily dark; it will never be automatically put away into the player's `SACK_OBJECT`, as it might plausibly be inflammable or the main light source. `lockable` Can be locked or unlocked by a player holding its key object, which is given by the property `with_key`; if a `container` and also `locked`, may be called "locked'' in inventories. `locked` Can't be opened. If a `container` and also `lockable`, may be called "locked'' in inventories. `male` This object has a masculine name. In games written in English, this makes him a male person, though in other languages it might be inanimate. The parser uses this information when considering pronouns like "him''. (In English, anything `animate` is assumed to be male unless `female` or `neuter` is set.) `moved` "Has been or is being held by the player.'' Objects (immediately) owned by the player after `Initialise` has run are given it; at the end of each turn, if an item is newly held by the player and is `scored`, it is given `moved` and `OBJECT_SCORE` points are awarded; an object's `initial` message only appears in room descriptions if it is un`moved`. `neuter` This object's name is neither masculine nor feminine. (In English, anything without `animate` is assumed neuter, because only people and higher animals have gender. Anything `animate` is assumed male unless `female` or `neuter` is set. A robot, for instance, might be an `animate` object worth making `neuter`.) `on` "Switched on.'' A `switchable` object with this is described by `with_on` in room descriptions; it will be called "switched on'' by `Examine`. `open` "Open door or container.'' Affects scope and light; lists (such as inventories) recurse through an `open` `container`; if a `container`, called "open'' by some descriptions; things can be taken or removed from an `open` `container`; similarly inserted, transferred or emptied. A `container` can only be entered or exited if it is both `enterable` and `open`. An `open` `door` can be entered. Described by `when_open` in room descriptions. `openable` Can be opened or closed, unless `locked`. `pluralname` This single object's name is in the plural. For instance, an object called "seedless grapes'' should have `pluralname` set. The library will then use the pronoun "them'' and the indefinite article "some'' automatically. `proper` Its short name is a proper noun, and never preceded by "the'' or "The''. The player's object must have this (so something changed into will be given it). `scenery` Not listed by the library in room descriptions; "not portable'' to be taken; "you are unable to'' pull, push, or turn it. `scored` The player gets `OBJECT_SCORE` points for picking it up for the first time; or, if a room, `ROOM_SCORE` points for visiting it for the first time. `static` "Fixed in place'' if player tries to take, remove, pull, push or turn. `supporter` "Things can be put on top of it.'' Affects scope and light; object lists recurse through it; a possession will give it a `LetGo` action if the player tries to remove it, or a `Receive` if something is put in; things can be taken or removed from it, or put on it; likewise for transfers; a player inside it is said to be "on'' rather than "in'' it; room descriptions list its contents in separate paragraphs if it is itself listed. `switchable` Can be switched on or off; listed as such by `Examine`; described using `when_on` or `when_off` in room descriptions. `talkable` Player can talk to this object in "thing, do this'' style. This is useful for microphones and the like, when `animate` is inappropriate. `transparent` "Contents are visible.'' Affects scope and light; a `transparent` container is treated as if it were `open` for printing of contents. `visited` "Has been or is being visited by the player.'' Given to a room immediately after a `Look` first happens there: if this room is `scored` then `ROOM_SCORE` points are awarded. Affects whether room descriptions are abbreviated or not. `workflag` Temporary flag used by Inform internals, also available to outside routines; can be used to select items for some lists printed by `WriteListFrom`. `worn` "Item of clothing being worn.'' Should only be an object being immediately carried by player. Affects inventories; doesn't count towards the limit of `MAX_CARRIED`; won't be automatically put away into the `SACK_OBJECT`; a `Drop` action will cause a `Disrobe` action first; so will `PutOn` or `Insert`. Note that very few attributes sensibly apply to rooms: only really `light`, `scored` and `visited`, together with `general` if you choose to use it. Note also that an object cannot be both a `container` and a `supporter`; and that the old attribute `autosearch`, which was in earlier releases, has been withdrawn as obsolete.

Contents / Back / Forward
Chapter I / Chapter II / Chapter III / Chapter IV / Chapter V / Chapter VI / Appendix

Mechanically translated to HTML from third edition as revised 16 May 1997. Copyright © Graham Nelson 1993, 1994, 1995, 1996, 1997: all rights reserved.