P_SHORT
*******


NAME
====

   P_SHORT
      "short"


DEFINIERT IN
============

   /sys/thing/description.h


BESCHREIBUNG
============

   Diese Property enthaelt die Kurzbeschreibung eines Objektes bei
   Ansicht *von aussen* als String. Fuer die Innen(kurz)ansicht von
   Raeumen muss man P_INT_SHORT benutzen.

   Die Kurzbeschreibung darf *nicht* mit einem "n" abgeschlossen sein
   (dies wird von den zustaendigen Funktionen erledigt). Aus
   historischen Gruenden wird ein Punkt ergaenzt, wenn das letzte
   Zeichen kein Punkt, Ausrufezeichen oder Fragezeichen ist.

   Setzt man diese Property auf 0, so wird das Objekt von Spielern
   nicht mehr wahrgenommen (es wird in Inventaren nicht mehr
   angezeigt). Der Effekt ist der eines "PAL-Feldes" ("Problem anderer
   Leute"). Es bleibt allerdings ansprechbar, wenn Spieler eine ID des
   Objektes kennen. Diese koennen dann damit alles anstellen, was sie
   sonst auch koennten. D.h. Objekte koennen insb. mitgenommen,
   weggeworfen, untersucht oder ggf. auch angegriffen werden und es
   kann angreifen. Will man dies nicht, muss man das Objekt mit
   P_INVIS richtig unsichtbar machen.


BEMERKUNGEN
===========

   * In altem Code wird manchmal eine Closure als Wert (nicht als
     Querymethode) eingetragen, welche einen String zurueckgibt. Dies
     ist *deprecated* und sollte nicht mehr formuliert werden.

   * Die Funktion, die die Kurzbeschreibung ausgibt (short()), filtert
     P_SHORT durch process_string(). Dieses Feature ist *deprecated*
     und von der Nutzung wird in neuem Code abgeraten.

   * Soll eine dyn. Kurzbeschreibung geschaffen werden, bitte eine
     F_QUERY_METHOD einsetzen oder short() passend ueberschreiben.


BEISPIELE
=========

   // eine Axt sieht natuerlich so aus:
   SetProp(P_SHORT, "Eine Axt");


SIEHE AUCH
==========

   Aehnliches
      P_LONG, P_INT_SHORT, P_INVIS, short()

13.06.2020, Zesstra
