| 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. |
| LDMud 3.5.0 added the possibility to restore version 2 with its higher |
| float precision and version 3 with lvalue references. |
| |
| SEE ALSO |
| save_object(E), restore_value(E), valid_read(M) |