blob: 62b12ee36ca8d40e30563018e7cd03f8bf540d5c [file] [log] [blame]
MG Mud User88f12472016-06-24 23:31:02 +02001SYNOPSIS
Zesstrad59c3892019-11-28 20:53:39 +01002 #include <inherit_list.h>
MG Mud User88f12472016-06-24 23:31:02 +02003
Zesstrad59c3892019-11-28 20:53:39 +01004 string * inherit_list()
Zesstra5481d492021-04-08 20:07:06 +02005 string * inherit_list(object|lwobject ob)
6 string * inherit_list(object|lwobject ob, int flags)
MG Mud User88f12472016-06-24 23:31:02 +02007
8BESCHREIBUNG
9 Liefert die Namen von allen Dateien, die von <ob> geerbt werden,
10 inklusive <ob>s eigener Dateiname. Wird <ob> nicht angegeben, wird
11 standarndmaessig das aktuelle Objekt verwendet.
12
13 Der Wert von <flags> bestimmt die Struktur des Rueckgabewertes:
14 - <flag> = INHLIST_FLAT (0, default):
15 inherit_list() liefert ein Array von Dateinamen, beginnend mit dem
16 Namen von <ob> selbst, gefolgt von den Namen aller geerbten
17 Objekten.
18 - <flag> = INHLIST_TREE (1):
19 inherit_list() liefert ein Array von Dateinamen, beginnend mit dem
20 Namen von <ob> selbst. Wenn ein geerbte File selbst keine Files
21 erbt, wird sein Name direkt in das Ergebnis eingetragen. Wenn ein
22 geerbtes File selbst Files erbt, wird ein Untervektor erzeugt, in
23 dem die Inherits eingetragen werden. Der Untervektor hat die
24 gleiche Struktur wie der Haupvektor.
25 - <flag> = INHLIST_TAG_VIRTUAL (2):
26 Alle Namen im Ergebnisvektor haben ein leeres Tag " " (zwei
27 Leerschlaege) fuer normale Inherits und "v " fuer virtuelle
28 Inherits als Praefix vorangestellt.
29
30 Alle Flags koennen mit einem binaeren Oder | verbunden werden, wobei
31 INHLIST_FLAT und INHLIST_TREE sich gegenseitig ausschliessen.
32
Zesstrad59c3892019-11-28 20:53:39 +010033 Wenn ein Objekt inklusive <ob> einem replace_program() unterworfen
MG Mud User88f12472016-06-24 23:31:02 +020034 war, spiegeln die gelieferten Dateinamen das effektiv aktive Programm
35 wider.
36
37 Die Inheritpfade, die geliefert werden, beginnen immer mit '/'
38 (absolute Pfade), auch wenn der Treiber im COMPAT Modus laeuft.
39
Zesstrad59c3892019-11-28 20:53:39 +010040
41BEISPIELE
MG Mud User88f12472016-06-24 23:31:02 +020042 Gegeben folgende Vererbungsstruktur:
43
44 / c - d
45 a
46 \ b
47
48 Wobei d virtuell geerbt wird, ergeben sich folgende Resultate:
49
50 inherit_list(a) -> ({ "a", "c", "b", "d" })
51 inherit_list(c) -> ({ "c", "d" })
52 inherit_list(a, 1) -> ({ "a", ({ "c", "d" }), "b" })
53 inherit_list(a, 3) -> ({ " a", ({ " c", "v d" }), " b" })
54
Zesstrad59c3892019-11-28 20:53:39 +010055GESCHICHTE
MG Mud User88f12472016-06-24 23:31:02 +020056 Vor 3.2.8, begannen die gelieferten Namen niemals mit einem '/'.
57 LDMud 3.2.9 fuehrte die Baumstruktur (_TREE) und Tags fuer virtuelle
58 Inherits ("v ") ein.
59
60SIEHE AUCH
61 debug_info(E), include_list(E)