blob: 2ec83b2a0538607b081d9f7c54832ca67916cbc8 [file] [log] [blame]
MG Mud User88f12472016-06-24 23:31:02 +02001SYNOPSIS
Zesstrab6ac9f62020-01-21 11:11:16 +01002 int save_object(string name [, int format])
3 string save_object([int format])
MG Mud User88f12472016-06-24 23:31:02 +02004
5BESCHREIBUNG
Zesstrab6ac9f62020-01-21 11:11:16 +01006 Codiert die speicherbaren Variablen des aktuellen Objekts in einen
7 String.
MG Mud User88f12472016-06-24 23:31:02 +02008
9 In der ersten Form wir der String in die Datei <name> geschrieben. Eine
10 Endung ".c" in <name> wird entfernt, dafuer kann eine Endung ".o"
11 durch das Masterobjekt angefuegt werden, waehrend der Ueberpruefung
12 durch valid_read(). Die Efun save_object() liefert 0, wenn die
13 Speicherdatei erfolgreich erstellt wurde, sonst eine Zahl ungleich 0,
14 wenn ein nicht schwerwiegendee Fehler aufgetreten ist (die Datei
15 konnte nicht geschrieben werden oder das aktuelle Objekt wurde
16 inzwischen zerstoert).
17
18 In der zweiten Form wird der String direkt zurueck gegeben. Wenn das
19 Objekt zerstoert wurde, wird 0 zurueck gegeben. In beiden Faellen kann
20 durch das optionale Argument <format> das Format der Speicherdatei
21 angegeben werden:
22
23 -1: das normale Format des Treibers (Standard)
24 0: das Originalformat nach Amylaar's LPMud und LDMud <=3.2.8
25 1: LDMud >= 3.2.9: Non-Lambda Closures, Symbole und gequotete
26 Arrays koennen gespeichert werden
Zesstrab6ac9f62020-01-21 11:11:16 +010027 2: LDMUd >= 3.5.0: Gleitkommazahlen werden in einem neuen Format
28 geschrieben, welches kompakter ist die Gleitkommazahlen aus
29 3.5.x verlustfrei speichern kann.
30
31 Es wird empfohlen, die Angabe des Formats wegzulassen oder in Version
32 2 (oder hoeher) zu speichern.
MG Mud User88f12472016-06-24 23:31:02 +020033
34 Eine Variable wird als 'speicherbar' betrachtet, wenn sie nicht als
35 'nosave' oder 'static' deklariert ist.
36
Zesstrab6ac9f62020-01-21 11:11:16 +010037GESCHICHTE
MG Mud User88f12472016-06-24 23:31:02 +020038 Seit LDMud 3.2.8 liefert save_object() einen fixen Wert bei Erfolg.
39 Das direkte Abspeichern in einen String wurde in LDMud 3.2.8
40 eingefuehrt, wird aber in Zukunft eventuell in eine separate Efun
41 umgezogen.
42 LDMud 3.2.9 ergaenzte die Funktion um das Speichern von Non-Lambda
43 Closures, Symbolen und gequoteten Arrays. Dazu wurde ein neues
44 Format fuer die Speicherdatei eingefuehrt.
45 LDMud 3.2.10 fuehrte das Argument <format> ein.
Zesstrab6ac9f62020-01-21 11:11:16 +010046 LDMud 3.5.0 fuehrte Formatversion 2 ein.
MG Mud User88f12472016-06-24 23:31:02 +020047
48SIEHE AUCH
Zesstrab6ac9f62020-01-21 11:11:16 +010049 restore_object(E), save_value(E)