blob: 97c738e9e5fd6242bd709c11601fa608574ed091 [file] [log] [blame]
MG Mud User88f12472016-06-24 23:31:02 +02001SYNOPSIS
2 #include <sys/inherit_list.h>
3
4 string *inherit_list();
5 string *inherit_list(object ob);
6 string *inherit_list(object ob, int flags);
7
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
33 Wenn ein Objekt, inklusive <ob>, einem replace_programm() unterworfen
34 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
40BEISPIEL
41 Gegeben folgende Vererbungsstruktur:
42
43 / c - d
44 a
45 \ b
46
47 Wobei d virtuell geerbt wird, ergeben sich folgende Resultate:
48
49 inherit_list(a) -> ({ "a", "c", "b", "d" })
50 inherit_list(c) -> ({ "c", "d" })
51 inherit_list(a, 1) -> ({ "a", ({ "c", "d" }), "b" })
52 inherit_list(a, 3) -> ({ " a", ({ " c", "v d" }), " b" })
53
54AENDERUNGEN
55 Vor 3.2.8, begannen die gelieferten Namen niemals mit einem '/'.
56 LDMud 3.2.9 fuehrte die Baumstruktur (_TREE) und Tags fuer virtuelle
57 Inherits ("v ") ein.
58
59SIEHE AUCH
60 debug_info(E), include_list(E)