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

DESCRIPTION
        Restore values of variables for current object from the file <name>,
        or directly from the string <str>.

        To restore directly from a string <str>, the string must begin
        with the typical line "#x:y" as it is created by the save_object()
        efun.

        When restoring from a file, the name may end in ".c" which is stripped
        off by the parser. The master object will probably append a .o to the
        <name>. The validity of the filename is checked with a call to
        check_valid_path().

        Return 1 on success, 0 if there was nothing to restore.

        Variables that has the type modifer 'nosave' will not be restored.
        Example: nosave int xxx;

        Lfun, variable and simul_efun closures are restored only if they
        can be found (this excludes closures of private lfuns as well) - if
        not, they are restored as value '0'.

        If inheritance is used, then it might be possible that a
        variable will exist with the same name in more than one place,
        and thus appear in the  save file multiple times. When
        restoring, the variables are restored in the order they are
        found in the inheritance tree.  A good practice is to have
        verbose and unique name on non-static variables, which also
        will make it more easy to read or patch the save file
        manually.

HISTORY
        Restoring directly from a string was added in LDMud 3.2.8 and
        may be moved in future into a separate efun.
        LDMud 3.2.9 added the restoring of non-lambda closures, symbols,
        and quoted arrays, using a new savefile format version.

SEE ALSO
        save_object(E), restore_value(E), valid_read(M)
