
short()
*******


FUNKTION
========

   public varargs string short();


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

   /std/thing/description.c


ARGUMENTE
=========

   keine


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

   Der Inhalt der Property P_SHORT wird ausgewertet, mit ".n"
   abgeschlossen und zurueckgegeben.

   Durch Ueberladen von short() lassen sich ggf. weitere Eigenschaften
   des Objektes zeigen. Fackeln zeigen zum Beispiel an, ob sie
   brennen, Ruestungen, ob sie angezogen sind und Waffen, ob sie
   gezueckt sind.

   In jedem Fall muss die Kurzbeschreibung aber *kurz* sein, empfohlen
   werden max. 60 Zeichen.


RUeCKGABEWERT
=============

   Die Kurzbeschreibung als String oder 0, falls das Objekt nicht
   wahrnehmbar ist (d.h. nicht in Inventaren angezeigt wird).


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

   Zu der mit dem Rueckgabewert von 0 vermittelten Unsichtbarkeit s.
   P_SHORT.


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

   Aehnliches
      long()

   Properties
      P_SHORT, P_INVIS, P_INT_SHORT

Letzte Aenderung:
   18.06.2020, Zesstra
