
short()
*******


FUNKTION
========

   public 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
