| SYNOPSIS |
| int save_object(string name [, int format]) |
| string save_object([int format]) |
| |
| DESCRIPTION |
| Encode the saveable variables of the current object into a string. |
| |
| In the first form, the string is written to the file <name>. |
| A suffix ".c" will be stripped from the name, the suffix ".o" |
| may be added by the master object during the check in |
| valid_read(). Result is 0 if the save file could be created, |
| and non-zero on a non-fatal error (file could not be written, |
| or current object is destructed). |
| |
| In the second form the string is returned directly. If the |
| object is destructed, the result is 0. |
| |
| In both forms, the optional <format> argument determines the |
| format of the savefile to be written: |
| |
| -1: use the driver's native format (default). |
| 0: original format, used by Amylaar LPMud and LDMud <= 3.2.8 . |
| 1: LDMud >= 3.2.9: non-lambda closures, symbols, quoted arrays |
| can be saved. |
| 2: LDMud >= 3.5.0: floats are stored in a different way, which is |
| more compact and can store the new float losslessly. |
| 3: LDMud >= 3.5.0: can also save lvalues references (without it, |
| the plain rvalue will be saved). |
| |
| It is recommended to use version 3 or higher. |
| |
| A variable is considered 'saveable' if it is not declared |
| as 'nosave' or 'static'. |
| |
| Only lfuns bound to the current object can be saved. |
| |
| HISTORY |
| Since LDMud 3.2.8, save_object() returns a success value. |
| The direct encoding into a string was added in LDMud 3.2.8, but |
| may be moved into a different efun in future. |
| LDMud 3.2.9 added the saving of non-lambda closures, symbols, |
| and quoted arrays, using the new savefile format version 1. |
| LDMud 3.2.10 added the <format> argument. |
| LDMud 3.5.0 added savefile format version 2 and 3. |
| |
| SEE ALSO |
| restore_object(E), save_value(E) |