Lpc Manpages

P_INT_LONG

NAME:
    P_INT_LONG                     "int_long"                    

DEFINIERT IN:
    /sys/room/description.h

BESCHREIBUNG:
    Beschreibung, die man bekommt, wenn man sich in dem Container
    umschaut.
    
    P_INT_LONG kann:

    1. ein String sein. In Raeumen wird dann die Beschreibung automatisch "
       "mit einem break_string auf 78 Zeichen versehen, wenn vorher 
       keine "\n" drin waren.
  
    2. eine Closure sein. Dann muss man allerdings Set anstelle 
       von SetProp verwenden. In diesem Fall wird dann die Funktion
       ausgefuehrt, auf die die Closure zeigt. Die Funktion muss natuerlich
       einen String zurueck liefern, dieser wird aber nicht automatisch
       mit break_string umgebrochen. Dafuer muss man dann selbst sorgen.
 
    3. ein Mapping sein. Dies ist fuer richtungsabhaengige
       Langbeschreibungen gedacht. Forgende Keys im Mapping sind erlaubt:
        
         * Eine Richtung, aus die der Spieler kam. Z.B "norden"
         * LONG_DEFAULT: Sollte immer gesetzt sein. Wird ausgegeben,
                         wenn keine Richtung zutrifft.
         * LONG_HEADER:  Text, der immer vorangestellt wird.
         * LONG_FOOTER:  Text, der immer angehaengt wird.
       
       LONG_FOOTER, LONG_HEADER und LONG_DEFAULT muessen nicht zwingend 
       gesetzt werden.

BEISPIELE:
    * Beispiel fuer eine einfache Beschreibung:

      SetProp( P_INT_LONG,
               "Ein einfacher Raum ohne jede Besonderheit. Er hat vier "
               "Waende, eine Decke und einen Boden.");

    * Beispiel fuer eine Raumbeschreibung, die mittels einer Closure
      dynamisch angepasst wird:

        string my_int_long()
        {
          string text;
          
          text = "Der Text, der als Raumbeschreibung angezeigt werden soll.";
          
          return break_string(text,0);
        }

        void create()
        {
          ::create();
          Set( P_INT_LONG, #'my_int_long, F_QUERY_METHOD);
          ...
        }

    * Beispiel fuer ein Mapping:
      
      SetProp(P_INT_LONG,
      ([
        LONG_HEADER:
        "Dieser Text wird immer vorangestellt.",

        "norden":
        "Diesen Text bekommt der Spieler zu sehen, wenn er aus Sueden kam.",

        "sueden":
        "Der Spieler kam aus Norden",

        LONG_DEFAULT:
        "Diesen Text bekommt der Spieler zu sehen, wenn er unerwartet "
        "sonstwo her kam",

        LONG_FOOTER:
        "Dieser Text wird immer angehaengt."
      ]));

      Wenn der Spieler aus Sueden kam (D.h. er schlug als letzte Richtung 
      Norden ein), wuerde das nun so aussehen:

       Dieser Text wird immer vorangestellt. Diesen Text bekommt der
       Spieler zu sehen, wenn er aus Sueden kam. Dieser Text wird immer 
       angehaengt.

SIEHE AUCH:
     P_INT_SHORT, P_INT_LONG_EXT, /sys/room/description.h,
     /std/room/description.c

GEAENDERT:
     21.07.2004  Tyron            Beispiele ergaenzt 
     14.11.2004  Tyron            Fehler im Beispiel verbessert
     08.09.2004  It@AnderLand     Querverweise
     01.11.2009  It@AnderLand     Closures und Mappings als INT_LONG
                                  ergaenzt