NewDoor()
=========

FUNKTION
--------
::

     varargs int NewDoor(string|string* cmds, string dest, string|string* ids,
                         mapping|<int|string|string*>* props);

DEFINIERT IN
------------
::

     /std/room/doors.c

ARGUMENTE
---------
::

     cmds (string|string*)
          String oder Array von Strings mit den Befehlen, mit denen man
          durch die Tuer geht (in der Regel Richtungen wie "norden").
     dest (string)
          Pfad des Zielraumes, OHNE ".c", sonst wird eine zweiseitige Tuer
          (wie sie ueblich ist) nicht als solche erkannt.
     ids (string|string*)
          String oder Array von Strings mit den Bezeichnern der Tuer. Kann
          auch 0 sein; in diesem Fall laesst sich die Tuer nur als "tuer"
          ansprechen.
     props (mapping|<int|string|string*>*)
          Die Eigenschaften der Tuer (s.u.).

BESCHREIBUNG
------------
::

     Es wird eine neue Tuer geschaffen. Die Tuer laesst sich, wenn sie
     geoeffnet ist, mit den in <cmds> angegebenen Befehlen durchschreiten.
     Man gelangt dann in den Raum <dest>.

     Die Kommandos werden bei geoeffneter Tuer in die Liste der sichtbaren
     Ausgaenge eingefuegt.

     In <props> lassen sich Aussehen und Eigenschaften der Tuer festlegen.
     Historisch ist es ein Array mit Paaren von Schluesseln und Werten, d.h.
     es kommt immer erst ein Element, welches die Eigenschaft bezeichnet und
     dann ein Element mit dem Wert dieser Eigenschaft.
     Moderner ist es, ein Mapping mit den entsprechenden Schluesseln und
     Werten zu uebergeben. Dies ist auch dringend empfohlen.

     In <doorroom.h> sind dazu folgende Eigenschaften definiert:
     D_FLAGS
          DOOR_OPEN
               Die Tuer ist beim Erzeugen geoeffnet.
          DOOR_CLOSED
               Die Tuer ist beim Erzeugen geschlossen.
          DOOR_NEEDKEY
               Man benoetigt einen Schluessel zum Oeffnen der Tuer.
          DOOR_CLOSEKEY
               Man benoetigt einen Schluessel zum Schliessen der Tuer.
          DOOR_RESET_CL
               Die Tuer schliesst sich beim Reset.
          DOOR_RESET_OP
               Die Tuer oeffnet sich beim Reset.

     D_LONG
          Die Langbeschreibung der Tuer. 
          Hier kann ein Mapping eingetragen werden, das als Keys den Tuer-
          Status hat und die zugehoerige Langbeschreibung dazu. Beispiel:
          ([ D_STATUS_CLOSED : "Die Tuer ist geschlossen.\n",
             D_STATUS_OPEN   : "Die Tuer ist offen.\n" ])

          

          Default: "Eine Tuer.\n"

     D_SHORT
          Die Kurzbeschreibung der Tuer. Ein "%s" wird durch "geoeffnet"
          bzw. "geschlossen" ersetzt.

          Es werden die Kurzbeschreibungen aller im Raum vorhandenen Tueren
          aneinandergehaengt (es wird jeweils ein Leerzeichen eingeschoben),
          das Ganze mit break_string() umgebrochen und an P_INT_LONG
          angehaengt.

          Default: "Eine %se Tuer."

     D_NAME
          Der Name der Tuer. Dieser Name wird beim Oeffnen und Schliessen
          der Tuer sowie bei Fehlermeldungen ausgegeben. Man kann wie bei
          P_NAME einen String oder ein Array von Strings angeben.

          Default: "Tuer"

     D_GENDER
          Das Geschlecht der Tuer.

          Default: FEMALE

     D_MSGS
          String oder Array von drei Strings. Diese Strings werden beim
          Durchschreiten der Tuer an move() als dir bzw. dir, textout und
          textin uebergeben.

     D_FUNC
          String mit dem Namen einer Funktion, die im Startraum vor dem
          Durchschreiten der Tuer aufgerufen werden soll. Diese Funktion
          kann das Durchschreiten jedoch nicht verhindern!

     D_FUNC2
          String mit dem Namen einer Funktion, die im Zielraum nach dem
          Durchschreiten der Tuer aufgerufen werden soll.

     D_TESTFUNC
          Falls auf den Namen einer Funktion gesetzt, wird diese Funktion
          vor dem Durchschreiten im Startraum aufgerufen. Wenn sie einen
          Wert != 0 zurueckliefert, wird die Tuer NICHT durchschritten. 

     D_RESET_MSG
          Meldung, die beim Reset der Tuer ausgegeben wird.

     D_OPEN_WITH_MOVE
          Tuer oeffnet automatisch bei Eingabe des Befehls zum 
          Hindurchgehen.

          

RUECKGABEWERT
-------------
::

     1, wenn die Tuer ordungsgemaess eingebaut werden konnte, sonst 0.

BEMERKUNGEN
-----------
::

     Zwei Tuerseiten gelten als verschiedene Seiten einer Tuer, wenn als
     Ziel in Raum A Raum B und in Raum B Raum A angegeben ist. Der Zustand
     wird abgefragt, wenn der Raum betreten wird (init), wenn die Tuer
     geoeffnet/geschlossen wird, P_INT_LONG oder P_EXITS abgefragt wird
     und beim Reset.

     Es sind auch Tueren moeglich, die nur auf einer Seite existieren, oder
     auch solche, die auf beiden Seiten verschieden aussehen oder gar auf
     einer Seite nur mit einem Schluessel zu oeffnen sind, auf der anderen
     jedoch kein Schluessel noetig ist.

     Wer aus irgendeinem Grund den Zustand einer Tuer selber abfragen oder
     veraendern will, kann dafuer in /obj/doormaster die Funktionen
     QueryDoorStatus(ziel) bzw. SetDoorStatus(ziel,status) aufrufen.

     *** ACHTUNG ***
     Es gibt eine Questbelohnung (Phiole aus der Sternenlicht-Quest von
     Miril), mit der man durch Tueren hindurchschauen kann. Derzeit ist das
     per default fuer alle Tueren erlaubt. Wenn man das nicht moechte,
     oder andere Texte ausgeben, als die Phiole normalerweise erzeugt,
     dann kann man dies durch Nutzung bestimmter Funktionen bzw. Flags
     erreichen. Zur Dokumentation siehe Manpage zu GetPhiolenInfos().

BEISPIELE
---------
::

  ** Dies ist eine gewoehnliche Tuer ohne Besonderheiten und ohne
     Extra-Beschreibung:

     NewDoor("sueden","/players/rochus/room/test1");

  ** Ein Portal:

     NewDoor("norden","/players/rochus/room/test2",
             "portal",
             ([ D_NAME:   "Portal",
                D_GENDER: NEUTER,
                D_SHORT:  "Im Norden siehst Du ein %ses Portal.",
                D_LONG:   "Das Portal ist einfach nur gigantisch.\n",
              ]) );

     Alternativ mit props in alter Arraynotation:
     NewDoor("norden","/players/rochus/room/test2",
             "portal",
             ({ D_NAME,   "Portal",
                D_GENDER, NEUTER,
                D_SHORT,  "Im Norden siehst Du ein %ses Portal.",
                D_LONG,   "Das Portal ist einfach nur gigantisch.\n"
              }) );

     

  ** Tueren mit Bewegungsmeldung:

     NewDoor("norden","/room/see2",
             ({ D_MSGS,  ({"nach Norden","schwimmt",
                           "kommt hereingeschwommen"}) }) );

  ** Eine Tuer mit Testfunktion:

     NewDoor("osten","/mein/zielraum",
             ({ D_TESTFUNC, "blocker_da" }) );

     Die Funktion blocker_da:

     int blocker_da()      // KEINE protected-Funktion! Sie wird sonst NICHT
     {                     // aufgerufen und ausgewertet!
       if ( present("mein_fieses_mo\nster",this_object()) )
        {
         write("Ein fieses Monster stellt sich Dir in den Weg.\n");
         return 1;
        }
       return 0;           // optional
     }

  ** Nun noch eine Tuer mit einigen Extras:

     NewDoor("nordwesten","/rooms/kammer",
             ({"tuer","holztuer"}),
             ({
               D_FLAGS,  (DOOR_CLOSED|DOOR_RESET_CL),
               D_MSGS,   ({"nach Nordwesten","geht",
                         "kommt durch eine Tuer herein"}),
               D_SHORT,  "Im Nordwesten siehst Du eine %se Holztuer.",
               D_LONG,   "Sie trennt den Laden vom dahinterliegenden Raum.\n",
               D_NAME,   "Holztuer",
               D_FUNC,   "view",
               D_FUNC2,  "look_up"
             }) );

     Im Startraum:

     void view()
     {
       write("Der Angestellte wirft Dir einen missbilligenden Blick zu, "
             "laesst Dich aber passieren.\n");
     }

     Im Zielraum:

     void look_up()
     {
       write("Ein alter Mann schaut kurz zu Dir auf und vertieft sich dann "
             "wieder in seine Akten.\n");
     }

SIEHE AUCH
----------
::

    QueryDoorKey(), QueryDoorStatus(), SetDoorStatus(),
    /std/room/doors.c, /obj/doormaster.c, GetPhiolenInfos(), QueryAllDoors()


08.02.2015, Arathorn

