Enter()

FUNKTION:
     int Enter();

DEFINIERT IN:
     /std/transport.c

ARGUMENTE:
     keine

BESCHREIBUNG:
     Wenn sich der Spieler noch nicht auf dem Transporter befindet, und der
     Transporter momentan an einer Haltestelle liegt, betritt der Spieler
     den Transporter.

RUeCKGABEWERT:
     Null, wenn der Spieler den Transporter nicht betreten konnte, sonst
     ungleich Null.

BEMERKUNGEN:
     Es werden keine Tests durchgefuehrt, ob der Transporter ueberhaupt
     angesprochen wurde! Das muss man selber machen.

BEISPIELE:

     int myEnter(string str)
     {
       if (str && id(str))
         return Enter();

       notify_fail("Was willst Du betreten?\n");
       return 0;
     }

SIEHE AUCH:
     Leave(), /std/transport.c

----------------------------------------------------------------------------
Last modified: Wed May 8 10:18:42 1996 by Wargon
