blob: 3103e7de7238816cf1a3d4cb4a8b0e10d5404a29 [file] [log] [blame]
MG Mud User88f12472016-06-24 23:31:02 +02001SYNOPSIS
Zesstrad59c3892019-11-28 20:53:39 +01002 int restore_object(string name)
3 int restore_object(string str)
MG Mud User88f12472016-06-24 23:31:02 +02004
5BESCHREIBUNG
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
Zesstrad59c3892019-11-28 20:53:39 +010015 fuegt vermutlich dem Dateinamen ein .o hinzu. Die Gueltigkeit des
16 Dateinamens wird mit der Funktion check_valid_path() automatisch
17 ueberprueft.
MG Mud User88f12472016-06-24 23:31:02 +020018
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
Zesstrad59c3892019-11-28 20:53:39 +010025 Clousers aus Lfuns, Variablne und simul_efuns werden nur geladen,
MG Mud User88f12472016-06-24 23:31:02 +020026 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
Zesstrad59c3892019-11-28 20:53:39 +010037GESCHICHTE
MG Mud User88f12472016-06-24 23:31:02 +020038 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.
Zesstrad59c3892019-11-28 20:53:39 +010044 LDMud 3.5.0 unterstuetzt das Einlesen von Formatversion 2 mit hoeherer
45 Praezision der Gleitkommazahlen.
MG Mud User88f12472016-06-24 23:31:02 +020046
47SIEHE AUCH
48 save_object(E), restore_value(E), valid_read(M)