MG Mud User | 88f1247 | 2016-06-24 23:31:02 +0200 | [diff] [blame] | 1 | SYNOPSIS |
Zesstra | d59c389 | 2019-11-28 20:53:39 +0100 | [diff] [blame] | 2 | int restore_object(string name) |
| 3 | int restore_object(string str) |
MG Mud User | 88f1247 | 2016-06-24 23:31:02 +0200 | [diff] [blame] | 4 | |
| 5 | BESCHREIBUNG |
| 6 | Laedt Werte von Variablen fuer das aktuelle Objekt aus der Datei |
| 7 | <name> oder direkt aus dem String <str>. |
| 8 | |
| 9 | Um direkt aus einem String Variablen laden zu koennen, muss dieser |
| 10 | mit der typischen Zeile "#x:y" beginnen. Strings, die von der Efun |
| 11 | save_object() erzeugt wurden, beginnen so. |
| 12 | |
| 13 | Wenn Variablen aus einer Datei geladen werden, kann <name> mit .c |
| 14 | enden. Diese Dateiendung wird vom Treiber entfernt. Das Masterobjekt |
Zesstra | d59c389 | 2019-11-28 20:53:39 +0100 | [diff] [blame] | 15 | fuegt vermutlich dem Dateinamen ein .o hinzu. Die Gueltigkeit des |
| 16 | Dateinamens wird mit der Funktion check_valid_path() automatisch |
| 17 | ueberprueft. |
MG Mud User | 88f1247 | 2016-06-24 23:31:02 +0200 | [diff] [blame] | 18 | |
| 19 | Die Funktion gibt 1 zurueck, wenn die Variablen erfolgreich geladen |
| 20 | wurden und 0, wenn es nichts zu laden gab. |
| 21 | |
| 22 | Variablen mit dem Typenvermerk nosave werden nicht geladen, zum |
| 23 | Beispiel nosave int xxx; |
| 24 | |
Zesstra | d59c389 | 2019-11-28 20:53:39 +0100 | [diff] [blame] | 25 | Clousers aus Lfuns, Variablne und simul_efuns werden nur geladen, |
MG Mud User | 88f1247 | 2016-06-24 23:31:02 +0200 | [diff] [blame] | 26 | wenn sie gefunden werden. Falls nicht, werden sie mit dem Wert '0' |
| 27 | geladen. |
| 28 | |
| 29 | Wenn Vererbung verwendet wird, kann es vorkommen, dass mehrere |
| 30 | Variablen mit dem gleichen Namen an unterschiedlichen Orten vorkommen |
| 31 | und deshalb in der Speicherdatei mehrmals auftreten. Beim Laden der |
| 32 | Variablen werden sie in Reihenfolge ihres Auftretens im Vererbungsbaum |
| 33 | geladen. Ein geeignetes Vorgehen ist die Verwendung von Verbose und |
| 34 | einzigartigen Namen bei nicht-statischen Variablen. So wird auch das |
| 35 | manuelle Lesen oder Editieren des Savefiles einfacher. |
| 36 | |
Zesstra | d59c389 | 2019-11-28 20:53:39 +0100 | [diff] [blame] | 37 | GESCHICHTE |
MG Mud User | 88f1247 | 2016-06-24 23:31:02 +0200 | [diff] [blame] | 38 | Das direkte Laden aus einem String wurde in LDMud 3.2.8 eingefuehrt, |
| 39 | wird aber moeglicherweise in Zukunft in eine separate Efun |
| 40 | ausgelagert. |
| 41 | LDMud 3.2.9 ergaenzte die Funktion um die Moeglichkeit, |
| 42 | NonLambda-Closures, Symbole und gequotete Arrays zu laden, |
| 43 | indem ein neues Format fuer das Savefile verwendet wird. |
Zesstra | d59c389 | 2019-11-28 20:53:39 +0100 | [diff] [blame] | 44 | LDMud 3.5.0 unterstuetzt das Einlesen von Formatversion 2 mit hoeherer |
| 45 | Praezision der Gleitkommazahlen. |
MG Mud User | 88f1247 | 2016-06-24 23:31:02 +0200 | [diff] [blame] | 46 | |
| 47 | SIEHE AUCH |
| 48 | save_object(E), restore_value(E), valid_read(M) |