update_actions()
****************


FUNKTION
========

   void update_actions()


ARGUMENTE
=========

   keine


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

   Falls eine Aktion ein add_action() ausgeloest hat, werden mit dieser
   Funktion die neuen Befehle bei allen Lebewesen im aufrufenden Objekt
   bzw. in der Umgebung des aufrufenden Objektes aktiv.


RUECKGABEWERT
=============

   keiner


BEMERKUNGEN
===========

   Diese Funktion wird eigentlich nur benoetigt, wenn man mit add_action()
   anstelle von AddCmd() arbeitet (zB. bei Objekten, die nicht
   /std/thing/commands inheriten).


BEISPIELE
=========

   /* Normalerweise sollte man es SO gerade nicht machen. Stattdessen
    * sollte die "kletter"-Funktion pruefen, ob die Luke geoeffnet ist,
    * und sich im Fehlerfall beschweren.
    * So aber dient es als schoenes Beispiel fuer update_actions() ;)
    */
   int oeffne(string str)
   {
     if( str == "luke" ) {
       write( "Du oeffnest die Luke. Du kannst jetzt nach unten klettern.\n");
       add_action("kletter", "kletter", 1);
       update_actions();
       return 1;
     }
     return 0;
   }


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

   add_action(E), AddCmd(L), RemoveCmd(L)
