classids

prop
SYNOPSIS
    string * P_CLASS_IDS  "ClassIds"  -- experimental

    string * Set(P_CLASS_IDS, string * value)
    string * Query(P_CLASS_IDS)
      or
    string SetClassIds(string * value)
    string QueryClassIds()

      also:
    string * AddClassId (string|string * id)
    string * RemoveClassId (string|string * id)

DESCRIPTION
    The property holds an array of strings which serve as classification
    ids of the object. For example a torch has "thing" set as class id.
    The strings set are mapped to lowercase, leading and trailing spaces
    are removed, sequences of embedded spaces are shrunk to just one
    space each.

    As the /std-things initialise P_CLASS_IDS with generic id strings (to
    make 'all things' possible), changes to P_IDS should happen JUST
    through these two lfuns:

      string * AddClassId (string|string * id)
        Adds <id> to P_CLASS_IDS and returns the new value of P_CLASS_IDS.
        <id> may an array of strings as well.

      string * RemoveClassId (string|string * id)
        Removes <id> to P_CLASS_IDS and returns the new value of P_CLASS_IDS.
        <id> may an array of strings as well.

    However, in general it is not necessary to modify the P_CLASS_IDS as
    the inherited /std-thing takes care of it.

    Note: any change to an object's current class ids sets the value
    of the P_CLASS_PATTERN property back to 0.

EXAMPLE
    AddClassId(C_WEAPON); -- Adds class id "weapon" to the object.

AVAILABILITY
    Include: <properties.h>
             <classes.h> : defined class ids and adjectives.

    Availability: /std/thing(/description) and descendants.

SEE ALSO
    thing(S), ids(P), classads(P), classpattern(P)