P_NAME_ADJ
**********


NAME
====

   P_NAME_ADJ "name_adj"


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

   <thing/description.h>


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

   Diese Property enthaelt ein oder mehrere Adjektive in Form eines Arrays
   von Strings. Es ist nur der Wortstamm anzugeben! Die Adjektive werden
   von der Funktion name() dekliniert und vor den Namen gesetzt, wirken
   also als Aufzaehlung von Adjektiven vor dem Namen.

   Die hier angegebenen Adjektive dienen nur zur Ausgabe! Soll sich das
   Objekt auch ueber Adjektive ansprechen lassen, muss man diese mit
   AddAdjective() uebergeben.

   Soll das Objekt nur ein einzelnes Namensadjektiv besitzen, kann man dem
   SetProp()-Aufruf auch einen String uebergeben; gespeichert wird die
   Property aber in jedem Fall als Array.

   Wenn ein Adjektiv unregelmaessig ist, kann man die vier Faelle auch
   als Array uebergeben. Man muss dann aber Arrays schachteln, damit von den
   mehrfachen Adjektiven unterschieden werden kann.


BEISPIELE
=========

   SetProp(P_NAME, "Hut");
   SetProp(P_NAME_ADJ, "alt");

   name(WESSEN,1)      => "des alten Huts"


   // Zwei Adjektive, gleichrangig zu Substantiv
   SetProp(P_NAME_ADJ, ({"alt", "gammelig"}));

   name(WESSEN,1)      => "des alten, gammeligen Huts"


   // Zwei Adjektive, erstes ist Attribut zu zweitem
   falsch:  SetProp(P_NAME_ADJ, ({"gruen", "gestreift"}));
            name(WESSEN,1)      => "des gruenen, gestreiften Huts"
   richtig: SetProp(P_NAME_ADJ, ({"gruen gestreift"}));
            name(WESSEN,1)      => "des gruen gestreiften Huts"

   // Unregelmaessiges Adjektiv
   SetProp( P_NAME_ADJ,({({"rosa","rosa","rosa","rosa"})});
            name(WESSEN,1)         => "des rosa Huts"
   // Ohne inneres Array haette man 4 mal rosa als Adjektiv
   // => "des rosaen, rosaen, rosaen, rosaen Huts"


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

   /std/thing/description.c, name(), P_NAME, DeclAdj()

23.April 2007 Rumata
