SYNOPSIS
        int restore_object(string name)
        int restore_object(string str)

BESCHREIBUNG
        Laedt Werte von Variablen fuer das aktuelle Objekt aus der Datei
        <name> oder direkt aus dem String <str>.

        Um direkt aus einem String Variablen laden zu koennen, muss dieser
        mit der typischen Zeile "#x:y" beginnen. Strings, die von der Efun
        save_object() erzeugt wurden, beginnen so.

        Wenn Variablen aus einer Datei geladen werden, kann <name> mit .c
        enden. Diese Dateiendung wird vom Treiber entfernt. Das Masterobjekt
        fuegt vermutlich dem Dateinamen ein .o hinzu. Die Gueltigkeit des
        Dateinamens wird mit der Funktion check_valid_path() automatisch
        ueberprueft.

        Die Funktion gibt 1 zurueck, wenn die Variablen erfolgreich geladen
        wurden und 0, wenn es nichts zu laden gab.

        Variablen mit dem Typenvermerk nosave werden nicht geladen, zum
        Beispiel nosave int xxx;

        Clousers aus Lfuns, Variablne und simul_efuns werden nur geladen,
        wenn sie gefunden werden. Falls nicht, werden sie mit dem Wert '0'
        geladen.

        Wenn Vererbung verwendet wird, kann es vorkommen, dass mehrere
        Variablen mit dem gleichen Namen an unterschiedlichen Orten vorkommen
        und deshalb in der Speicherdatei mehrmals auftreten. Beim Laden der
        Variablen werden sie in Reihenfolge ihres Auftretens im Vererbungsbaum
        geladen. Ein geeignetes Vorgehen ist die Verwendung von Verbose und
        einzigartigen Namen bei nicht-statischen Variablen. So wird auch das
        manuelle Lesen oder Editieren des Savefiles einfacher.

GESCHICHTE
        Das direkte Laden aus einem String wurde in LDMud 3.2.8 eingefuehrt,
            wird aber moeglicherweise in Zukunft in eine separate Efun
            ausgelagert.
        LDMud 3.2.9 ergaenzte die Funktion um die Moeglichkeit,
            NonLambda-Closures, Symbole und gequotete Arrays zu laden,
            indem ein neues Format fuer das Savefile verwendet wird.
        LDMud 3.5.0 unterstuetzt das Einlesen von Formatversion 2 mit hoeherer
            Praezision der Gleitkommazahlen.

SIEHE AUCH
        save_object(E), restore_value(E), valid_read(M)
