QueryDoorStatus()
*****************


FUNKTION
========

   int QueryDoorStatus(string dest);


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

   /obj/doormaster.c


ARGUMENTE
=========

   <dest> = Zielraum der Tuer.


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

   Es wird der Zustand der Tuer, die von diesem Raum nach <dest> fuehrt,
   ermittelt.


RUeCKGABEWERT
=============

   0 bei nicht vorhandene Tuer, ansonsten einer der folgenden Zustaende (aus
     <doorroom.h>):

     D_STATUS_LOCKED - Tuer abgeschlossen
     D_STATUS_CLOSED - Tuer geschlossen
     D_STATUS_OPEN   - Tuer geoeffnet


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

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

Letzte Aenderung: Don, 08.05.2014, Gabylon
