Added public files

Roughly added all public files. Probably missed some, though.
diff --git a/doc/std/transport b/doc/std/transport
new file mode 100644
index 0000000..3000c97
--- /dev/null
+++ b/doc/std/transport
@@ -0,0 +1,264 @@
+> FUNKTIONSWEISE VON TRANSPORTERN <
+Version 1.0 (04.05.1993) von Rumata
+===================================
+
+
+INHALT:
+======
+
+	1.	Allgemeines
+	2.	Properties
+	3.	Haltestellen
+	4.	Steuerung
+	5.	Betreten und verlassen
+	6.	Extras
+	7.	Kommandos in Trnasportern
+
+
+1. ALLGEMEINES
+==============
+
+	Ein Transporter ist ein Raum mit besonderen Eigenschaften.
+	Waehrend normale Raume miteinnder starr verbunden sind,
+	kann dieser Raum seine Verbindung zu anderen Raeumen mit
+	der Zeit aendern.
+
+	Jeder Transporter besitzt einen 'Kurs' den er abfaehrt; nach der
+	letzten 'Haltestelle' beginnt der Kurs wieder von Vorne.
+	Will man einen Kurs setzen, der entlang einer Strecke hin-
+	und zurueck fuehrt, so muss man jede Haltestelle einmal fuer
+	den Hinweg und einmal fuer den Rueckweg einfuegen.
+
+	Ein Beispiel, wie man einen solchen Transporter programmiert,
+	ist in /doc/beispiele/wolke.c zu sehen (und zu laden :-).
+
+2. PROPERTIES
+=============
+
+	P_ENTERMSG
+		Array mit zwei Meldungen in der Art von msgin und
+		msgout.  Die erste Meldung ist fuer den Raum, den der
+		Spieler verlaesst, und die zweite fuer den Transporter,
+		in den er geht.
+
+	P_LEAVEMSG
+		Array mit zwei Meldungen, eine fuer den Transporter, den
+		er verlaesst, und eine fuer den Raum, in den er kommt.
+
+	P_ENTERFAIL
+		Meldung an ein Wesen, wenn den vollen Transporter
+		betreten will. Ist die Prop. ein Array, so wird das erste
+		Element als Meldung an das Wesen, das zweite als Meldung
+		an die Mitspieler im Raum geschickt. Ist die Property
+		eine Closure, wird diese ausgefuehrt, wenn ein Spieler
+		vergeblich versucht, den Transporter zu betreten.
+
+	P_LEAVEFAIL
+		Meldung an ein Wesen, wenn es ausserhalb der Anlegezeiten
+		den Transporter verlassen will. Ist die Prop. ein Array,
+		so wird das erste Element als Meldung an das Wesen, das
+		zweite als Meldung an die Mitspieler im Transporter
+		geschickt. Ist die Property eine Closure, wird diese
+		ausgefuehrt, wenn ein Spieler vergeblich versucht, den
+		Transporter zu verlassen.
+
+	P_ARRIVEMSG
+		Ein Array mit zwei Meldungen. Das erste Element ist die
+		Meldung, die die Wesen im Transporter bekommen. Die
+		zweite Meldung ist fuer die Wesen in dem Raum, an dem
+		der Transporter anlegt. 
+
+	P_DEPARTMSG
+		Dito fuer das Ablegen.
+
+	P_MAX_PASSENGERS
+		Numerischer Wert fuer die maximale Anzahl von Wesen, die
+		sich in dem Transporter aufhalten duerfen.
+		0 bedeutet unbeschaenkte Spielerzahl.
+
+
+3. HALTESTELLEN
+===============
+
+	Es gibt 3 Sorten von Haltestellen:
+
+	1.) Raeume als Haltestellen.
+
+	FUNKTION:
+	
+		AddRoute( raum, verweil, next );
+		oder
+		AddRoute( raum, verweil, next, code );
+
+	PARAMETER:
+
+		raum	- Raum, an dem der Transporter halten soll.
+		verweil	- Zeit in Sekunden, die der Transporter in dem
+			  Raum verbleibt, bis er weiterfaehrt.
+		next	- Zeit in Sekunden bis zur naechsten Halte-
+			  stelle.
+
+		code	- Text, der von der Funktion QueryArrived
+			  zurueckgegeben wird, wenn der Transporter
+			  an dieser Haltestelle angelegt hat.
+			  Wird dieser Parameter nicht angegeben, wird
+			  ein leerer String als code gesetzt.
+
+	2.) Meldungen als Haltestellen.
+
+	FUNKTION:
+
+	      AddMsg( text, next );
+
+	PARAMETER:
+
+		text	- Text, der Meldung, die in dem Transporter
+			  ausgegeben wird.
+		next	- Zeit in Sekunden bis zur naechsten Halte-
+			  stelle.
+
+	3.) Funktionsaufrufe als Haltestellen.
+
+	FUNKTION:
+
+		AddFun( fun, next );
+
+	PARAMETER:
+
+		fun	- Name einer Funktion, die im Transporter
+			  aufgerufen wird.
+		next	- Zeit in Sekunden bis zur naechsten Halte-
+			  stelle.
+
+4. STEUERUNG
+============
+
+	FUNKTION
+
+		Start();
+		oder
+		Start(nummer);
+
+	BESCHREIBUNG:
+
+		Der Transporter soll sofort an der Haltestelle mit
+		der angegebenen Nummer (keine Nummer heisst an der ersten)
+		anlegen und von da ab seinen Kurs fahren.
+
+	FUNKTION:
+
+		Halt();
+
+	BESCHREIBUNG:
+
+		Halte die Fahrt an. Der Transporter bleibt stehen, wo
+		er ist.
+
+
+5. BETRETEN UND VERLASSEN
+=========================
+
+	Der Transporter hat keine Verben programmiert, mit denen man
+	den Transporter betreten oder verlassen kann.
+	Dafuer muessen mit AddCmd() Verben eingefuehrt werden, die
+	auf selbstgeschriebene Funktionen zugreifen.
+
+	FUNKTION:
+
+		Enter();
+
+	BESCHREIBUNG:
+
+		Teste, ob fuer dun aktuellen Spieler (this_player())
+		noch Platz im Transporter ist und ob er sich ausserhalb
+		des Transporters befindet. Wenn ja, bewege ihn in den
+		Transporter. Wenn der Transporter eine Reaktion (Bewegen des
+		Spielers oder Ueberlauf), so gib eine 1 zurueck sonst eine 0.
+
+		Wenn der Transporter nicht da (also unsichtbar) ist, tue fuer
+		die Spieler ausserhalb des Transporters so,
+		als ob das Verb nicht definiert wurde.
+
+		Dieser Wert kann im allgemeinen direkt als returnwert benutzt
+		werden.
+
+	FUNKTION:
+
+		Leave();
+
+	BESCHREIBUNG:
+
+		Wenn der Momentane Spieler nicht im Transporter ist, so gib
+		eine Fehlermeldung aus. Anderenfalls teste, ob der
+		Transporter an einen Raum angelegt hat. Wenn nein, gebe
+		die LEAVEFAIL Meldung aus; und wenn alles ok ist, so
+		bewege den Spieler aus dem Transporter.
+
+6. EXTRAS
+=========
+
+	FUNKTION:
+
+		QueryArrived();
+
+	BESCHREIBUNG:
+
+		Gebe den Code des Raumes zurueck, an dem der Transporter
+		gerade anliegt. Hat der Raum keinen Code, gebe einen
+		Leerstring zurueck. Liegt der Transporter an keinem Raum
+		an, so gebe 0 zurueck.
+
+		Diese Funktion bietet sich an um mittels process_string
+		die Ankunfts- und Abfahrtsmeldungen abwechslungsreich
+		zu gestalten.
+
+	FUNKTION:
+
+		QueryPassengers(),
+
+	BESCHREIBUNG:
+
+		Gebe eine Liste mit allen Lebewesen, die sich auf/in dem
+		Transporter befinden, zurueck.
+
+	FUNKTION:
+
+		RemoveRoute();
+
+	BESCHREIBUNG:
+
+		Halte den Transporter an und loesche dessen Kurs.
+
+7. KOMMANDOS IN TRANSPORTERN
+============================
+
+	Da sich der Transporter in dem Raum befindet, in dem er angelegt
+	hat, sind alle Kommandos des Transporters auch dort verfuegbar.
+	Selbst wenn der Transporter abgelegt hat, steht er noch immer
+	unsichtbar dort herum.
+
+	Deshabl muss in den Kommandos vorsorge grtroffen werden, dass nur
+	die richtigen Spieler (die drinnen und die draussen) die richtigen
+	Kommandos ausfuehren koennen.
+
+	KOMMANDOS FUER SPIELER AUSSERHALB:
+
+		Es muss abgetestet werden, ob der Spieler nicht im
+		Transporter ist, und ob der Transporter angelegt hat.
+
+		if( environment(this_player())==this_object() 
+			|| !QueryArrived() ) return 0;
+
+	KOMMANDOS FUER SPIELER INNERHALB:
+
+		Abtesten, ob der Spieler wirklich im Transport ist.
+
+		if( environment(this_player())!=this_object() )
+			return 0;
+
+		Vorsicht auch bei AddExits innerhalb des Transporters,
+		aber daran arbiete ich noch... :-)
+
+	Die Funktionen Enter() und Leave() haben diese Funktionalitaet
+	eingebaut.
+