CONCEPT
        objects

LAST UPDATED
        never

DESCRIPTION
        An object consists of a collection of functions (also called
        'methods') and data (variables) on which the functions operate.
        The only way to manipulate the data contained in an object is
        via one of the functions defined by the object.

        Every single thing in a mud is an object. Rooms are objects.
        Weapons are objects. Even your character is an object (a special
        kind of object called "interactive" but still an object in most
        every respect). Each object (except possibly virtual objects) in
        the mud is associated with some file written in LPC (in the mud's
        directory structure) that describes how the object is to interact
        with the gamedriver and the rest of the objects in the mud.

AUTHOR
        Someone

SEE ALSO
        files(C), inheritance(C), create(A), reset(A)
