Lpc Manpages

SYNOPSIS
        #include <inherit_list.h>

        string * inherit_list()
        string * inherit_list(object ob)
        string * inherit_list(object ob, int flags)

BESCHREIBUNG
        Liefert die Namen von allen Dateien, die von <ob> geerbt werden,
        inklusive <ob>s eigener Dateiname. Wird <ob> nicht angegeben, wird
        standarndmaessig das aktuelle Objekt verwendet.

        Der Wert von <flags> bestimmt die Struktur des Rueckgabewertes:
          - <flag> = INHLIST_FLAT (0, default):
            inherit_list() liefert ein Array von Dateinamen, beginnend mit dem
            Namen von <ob> selbst, gefolgt von den Namen aller geerbten
            Objekten.
          - <flag> = INHLIST_TREE (1):
            inherit_list() liefert ein Array von Dateinamen, beginnend mit dem
            Namen von <ob> selbst. Wenn ein geerbte File selbst keine Files
            erbt, wird sein Name direkt in das Ergebnis eingetragen. Wenn ein
            geerbtes File selbst Files erbt, wird ein Untervektor erzeugt, in
            dem die Inherits eingetragen werden. Der Untervektor hat die
            gleiche Struktur wie der Haupvektor.
          - <flag> = INHLIST_TAG_VIRTUAL (2):
            Alle Namen im Ergebnisvektor haben ein leeres Tag "  " (zwei
            Leerschlaege) fuer normale Inherits und "v " fuer virtuelle
            Inherits als Praefix vorangestellt.

        Alle Flags koennen mit einem binaeren Oder | verbunden werden, wobei
        INHLIST_FLAT und INHLIST_TREE sich gegenseitig ausschliessen.

        Wenn ein Objekt inklusive <ob> einem replace_program() unterworfen
        war, spiegeln die gelieferten Dateinamen das effektiv aktive Programm
        wider.

        Die Inheritpfade, die geliefert werden, beginnen immer mit '/'
        (absolute Pfade), auch wenn der Treiber im COMPAT Modus laeuft.


BEISPIELE
        Gegeben folgende Vererbungsstruktur:

            / c - d
          a
            \ b

        Wobei d virtuell geerbt wird, ergeben sich folgende Resultate:

            inherit_list(a) -> ({ "a", "c", "b", "d" })
            inherit_list(c) -> ({ "c", "d" })
            inherit_list(a, 1) -> ({ "a", ({ "c", "d" }), "b" })
            inherit_list(a, 3) -> ({ "  a", ({ " c", "v d" }), "  b" })

GESCHICHTE
        Vor 3.2.8, begannen die gelieferten Namen niemals mit einem '/'.
        LDMud 3.2.9 fuehrte die Baumstruktur (_TREE) und Tags fuer virtuelle
            Inherits ("v ") ein.

SIEHE AUCH
        debug_info(E), include_list(E)