
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",
              ({"gitter","eisengitter"}),
              ({ D_MSGS,  ({"nach Norden","schwimmt",
                            "schwimmt von Sueden herein"}),
                 D_GENDER, NEUTER}) );

   ** Eine Tuer mit Testfunktion:

      NewDoor("osten","/mein/zielraum",
              ({"tuer"}),
              ({ 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()) )
        {
          tell_object(this_player(),
              "Ein fieses Monster stellt sich Dir in den Weg.\n");
          return 1;
        }
        return 0;
      }

   ** 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()
      {
        tell_object(this_player(), break_string("Der Angestellte wirft Dir "
          "einen missbilligenden Blick zu, laesst Dich aber passieren.",78));
      }

      Im Zielraum:

      void look_up()
      {
        tell_object(this_player(), break_string("Ein alter Mann schaut kurz "
          "zu Dir auf und vertieft sich dann wieder in seine Akten.",78));
      }


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

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

08.02.2015, Arathorn
