SYNOPSIS
        object environment();
        object environment(object obj);
        object environment(string obj);

ARGUMENTE:
     obj
          Objekt oder Pfad-String eines Objektes dessen Umgebungsobjekt
          gesucht ist

BESCHREIBUNG:
     Es wird das Objekt bestimmt, in dem sich obj aufhaelt.
     Wird obj nicht angegeben, so wird this_object() als Objekt angenommen.

     Zerstoerte Objekte haben kein Environment.

BEMERKUNGEN:
     - Blueprints, wie zum Beispiel Raeume haben oft kein environment(). Man
       sollte daher ueberpruefen, ob ein environment() existiert, wenn man
       darin oder darauf eine Funktion aufrufen will.

BEISPIELE:
     // In der Variable "raum" steht der Raum, in dem sich der Spieler derzeit
     // aufhaelt - das kann auch 0 sein!
     raum = environment(this_player());

     // Dieses Objekt hat noch kein environment, da es eben erst geclont
     // wurde. Ergo steht in env eine 0.
     obj = clone_object("/std/thing");
     env = environment(obj);

     // alle Methoden die auf Environment arbeiten, sollten das vorher
     // pruefen - insbesondere tell_room()
     if(this_player() && environment(this_player()) &&
        objectp(o=present("schild",environment(this_player()))) {

      write("Du klebst Deine Plakette auf "+o->name(WEN)+".\n");
      tell_room(environment(this_player()), break_string(
		this_player()->Name(WER)+" pappt einen Aufkleber auf "+
		o->name(WEN)+".",78),
		({this_player()}));
     }

     // wenn Dinge sehr offensichtlich in Leuten kaputtgehen wird es
     // komplexer (man kann das natuerlich noch weiter schachteln oder
     // ueber all_environment() versuchen zu loesen
     if(environment()) {
      object ee;
      ee=environment(environment());
      if(living(environment())) {
       tell_object(environment(),Name(WER)+" zerfaellt.\n");
       if(ee)
        tell_room(ee,
	 environment()->Name(WESSEN)+" "+name(RAW)+" zerfaellt.\n",
	 ({environment()}));
      } else if(ee && living(ee))
       if(environment()->QueryProp(P_TRANSPARENT))
        tell_object(ee, Name(WER)+" zerfaellt in Deine"+
	 (environment()->QueryProp(P_PLURAL)?"n":
	  (environment()->QueryProp(P_GENDER)==FEMALE?"r":"m"))+
	 environment()->name(RAW)+".\n");
      } else tell_room(environment(),Name(WER)+" zerfaellt.\n");
     }

SIEHE AUCH:
        first_inventory(E), next_inventory(E), all_inventory(E)
        all_environment(E)

20. Sep. 2002 Gloinson@MG