Lpc Manpages

FUNKTION:
      varargs int|int* QueryTerrain( int|int* terrain )

DEFINIERT IN:
     /std/room/terrain.c

BESCHREIBUNG:
     Fragt einen bestimmten Gelaendetyp im Raum ab. Dabei kann 'terrain'
     entweder vom Typ 'int' oder '*int' sein (zugehoerige Werte sind in
     /sys/room/terrain.h definiert), um gleich mehrere Typen abzufragen.

RUECKGABEWERTE:
     * Falls kein 'terrain' angegeben -> ROOM->QueryTerrain();
       Gibt alle gesetzten Terrain-Typen als Summe 'int' zurueck.

     * Falls 'terrain' ein leeres Array ist -> ROOM->QueryTerrain(({}));
       Gibt alle gesetzten Terrain-Typen als Array zurueck.

     * Falls 'terrain' vom Typ 'int' ist -> ROOM->QueryTerrain(512);
       - 0, wenn der Gelaendetyp im Raum nicht gesetzt ist.
       - '512', wenn der Typ gesetzt ist.

     * Falls 'terrain' von Typ '*int' -> ROOM->QueryTerrain(({1,512}));
       - Ein leeres Array, wenn keiner der angegebenen Typen im Raum gesetzt
         ist.
       - Ein Array mit den Typen, auf die abgefragt wurde, und die auch im
         Raum gesetzt sind.

BEISPIELE:
      In einem Raum werden folgende Gelaendetypen gesetzt:

        AddTerrain( ({ T_FOREST, T_AIR }) );

      Abfragen mittels QueryTerrain():
 
      1) ROOM->QueryTerrain();  ---------------------->  513  (512+1)

      2) ROOM->QueryTerrain( ({ }) );  --------------->  ({ T_FOREST, T_AIR })

      3) ROOM->QueryTerrain(T_FOREST);  -------------->  T_FOREST
   
      4) ROOM->QueryTerrain(T_SWAMP);  --------------->  0
         (da T_SWAMP nicht gesetzt ist)

      5) ROOM->QueryTerrain( ({ T_FOREST }) );  ------>  ({ T_FOREST })
      
      6) ROOM->QueryTerrain(({T_FOREST,T_SWAMP}))  --->  ({ T_FOREST })
         (da T_SWAMP nicht gesetzt ist)

      7) ROOM->QueryTerrain(({T_SWAMP,T_PLAIN}));  --->  ({ })
         (da keiner der beiden Typen gesetzt ist)

BEMERKUNGEN:
      Wuerde man statt AddTerrain() die Property P_TERRAIN benutzen wollen,
      muesste man das wie folgt schreiben:

        ROOM->SetProp(P_TERRAIN, T_FOREST | T_AIR );

SIEHE AUCH:
     P_TERRAIN, RemoveTerrain, AddTerrain

----------------------------------------------------------------------------
01.11.17, Torin