MG Mud User | 88f1247 | 2016-06-24 23:31:02 +0200 | [diff] [blame^] | 1 | SYNOPSIS |
| 2 | int restore_object(string name); |
| 3 | int restore_object(string str); (VORLAEUFIG) |
| 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 |
| 15 | fuegt dem Dateinamen ein .o hinzu. Die Gueltigkeit des Dateinamens |
| 16 | wird mit der Funktion check_valid_path() automatisch ueberprueft. |
| 17 | |
| 18 | Die Funktion gibt 1 zurueck, wenn die Variablen erfolgreich geladen |
| 19 | wurden und 0, wenn es nichts zu laden gab. |
| 20 | |
| 21 | Variablen mit dem Typenvermerk nosave werden nicht geladen, zum |
| 22 | Beispiel nosave int xxx; |
| 23 | |
| 24 | Closures aus Lfuns, Variablne und simul_efuns werden nur geladen, |
| 25 | wenn sie gefunden werden. Falls nicht, werden sie mit dem Wert '0' |
| 26 | geladen. |
| 27 | |
| 28 | Wenn Vererbung verwendet wird, kann es vorkommen, dass mehrere |
| 29 | Variablen mit dem gleichen Namen an unterschiedlichen Orten vorkommen |
| 30 | und deshalb in der Speicherdatei mehrmals auftreten. Beim Laden der |
| 31 | Variablen werden sie in Reihenfolge ihres Auftretens im Vererbungsbaum |
| 32 | geladen. Ein geeignetes Vorgehen ist die Verwendung von Verbose und |
| 33 | einzigartigen Namen bei nicht-statischen Variablen. So wird auch das |
| 34 | manuelle Lesen oder Editieren des Savefiles einfacher. |
| 35 | |
| 36 | AENDERUNGEN |
| 37 | Das direkte Laden aus einem String wurde in LDMud 3.2.8 eingefuehrt, |
| 38 | wird aber moeglicherweise in Zukunft in eine separate Efun |
| 39 | ausgelagert. |
| 40 | LDMud 3.2.9 ergaenzte die Funktion um die Moeglichkeit, |
| 41 | NonLambda-Closures, Symbole und gequotete Arrays zu laden, |
| 42 | indem ein neues Format fuer das Savefile verwendet wird. |
| 43 | |
| 44 | SIEHE AUCH |
| 45 | save_object(E), restore_value(E), valid_read(M) |