GESCHUETZT
SYNOPSIS
        #include <objectinfo.h>

        mixed * object_info(object ob, int what)
        mixed * object_info(object ob, int what, int index)

BESCHREIBUNG
        Liefert einige interne Informationen ueber das Objekt <ob> in Form
        eines Arrays. Das Argument <what> gibt an, welche Informationen
        geliefert werden.

        Das Resultat ist normalerweise ein Array. Wird jedoch <index>
        spezifiziert, wird nur der Wert geliefert, der im Array an der
        Position <index> stehen wuerde.

        Die moeglichen Werte fuer <what> und die Indizes des gelieferten
        Arrays sind in <objectinfo.h> definiert und muessen eingebunden
        werden. Diese Definitionen koennen sich in zukuenftigen Versionen
        des Drivers aendern!

        <what> == OINFO_BASIC:

        Dieser Aufruf liefert grundlegende Informationen ueber <ob>:
        int [OIB_HEART_BEAT]:       1, wenn <ob> einen heart_beat() hat,
                                    sonst 0.
        int [OIB_IS_WIZARD]:        1, wenn <ob> ein Gott ist (das
                                    Wizard Flag gesetzt hat), sonst 0. Der
                                    Eintrag ist immer 0, wenn set_is_wizard()
                                    nicht verfuegbar ist.
        int [OIB_ENABLE_COMMANDS]:  1, wenn <ob> Kommandos geben darf, sonst 0.
        int [OIB_CLONE]:            1, wenn <ob> ein Clon ist, sonst 0.
        int [OIB_DESTRUCTED]:       1, wenn <ob> zerstoert wurde, sonst 0.
        int [OIB_SWAPPED]:          1, wenn <ob> geswapt wurde, sonst 0.
        int [OIB_ONCE_INTERACTIVE]: 1, wenn <ob> einmal interaktiv war,
                                    sonst 0.
        int [OIB_RESET_STATE]:      1, wenn <ob> im gleichen Zustand wie nach
                                    einem reset() ist, sonst 0.
        int [OIB_WILL_CLEAN_UP]:    1, wenn <ob> clean_up() aufruft, sonst 0.
        int [OIB_LAMBDA_REFERENCED]:1, wenn <ob> Lambdas beinhaltet, sonst 0.
        int [OIB_SHADOW]:           1, wenn <ob> ein Schatten uebergeworfen
                                    wurde, sonst 0.
        int [OIB_REPLACED]:         1, wenn das Programm von <ob> ersetzt
                                    wurde (mit replace_program()), sonst 0.
        int [OIB_TOTAL_LIGHT]:      die von <ob> emittierte Helligkeit. Dieser
                                    Eintrag ist immer 0, wenn set_light()
                                    nicht verfuegbar ist.
        int [OIB_NEXT_RESET]:       Zeit bis zum naechsten Reset.
        int [OIB_TIME_OF_REF]:      Zeit des letzen Aufrufs von <ob>.
        int [OIB_REF]:              Anzahl Aufrufe von <ob>.
        int [OIB_GIGATICKS]:        GIGATICKS und TICKS liefern die summierten
        int [OIB_TICKS]:            Evalkosten von <ob>.
        int [OIB_SWAP_NUM]:         Die Swap-Nummer von <ob>s Programm, oder
                                    -1, wenn <ob> nicht geswapt wurde.
        int [OIB_PROG_SWAPPED]:     1, wenn <ob>'s Programm geswapt wurde,
                                    sonst 0.
        int [OIB_VAR_SWAPPED]:      1, wenn <ob>'s Variablen geswapt wurden,
                                    sonst 0.
        int [OIB_NAME]:             der Objektname von <ob>.
        object [OIB_NEXT_ALL]:      das naechste Objekt in der Objektliste.
        object [OIB_PREV_ALL]:      das vorherige Objekt in der Objektliste.

        <what> == OINFO_POSITION:

        Dieser Aufruf liefert Informationen ueber die Position von <ob> in der
        globalen Objektliste:

        object [OIP_NEXT]:          naechstes Objekt in der Objektliste.
        object [OIP_PREV]:          vorheriges Objekt in der Objektliste.
        int [OIP_POS]:              die Position von <ob> in der Objektliste,
                                    beginnend von 0 aufwaerts.

        Dieser Aufruf kann aufwendig an Rechenzeit sein.

        <what> == OINFO_MEMORY:

        Dieser Aufruf liefert Informationen ueber Speichernutzung von <ob>.

        int [OIM_REF]:                Anzahl Referenzierungen von <ob>.
        string [OIM_NAME]:            Name von <ob>.
        int [OIM_PROG_SIZE]:          Programmgroesse.
        int [OIM_NUM_FUNCTIONS]:      Anzahl Funktionen in <ob>.
        int [OIM_SIZE_FUNCTIONS]:     Speicherbedarf der Funktionen
        int [OIM_NUM_VARIABLES]:      Anzahl Variablen im Programm.
        int [OIM_SIZE_VARIABLES]:     Speicherbedarf der Variablen.
        int [OIM_NUM_STRINGS]:        Anzahl Strings im Programm.
        int [OIM_SIZE_STRINGS]:       Speicherbedarf der String-Pointer.
        int [OIM_SIZE_STRINGS_DATA]:  Speicherbedarf der String-Daten,
                                      korrigiert um das Ausmass des Daten-
                                      Sharing.
        int [OIM_SIZE_STRINGS_TOTAL]: unkorrigierter Speicherbedarf der
                                      String-Daten.
        int [OIM_NUM_INCLUDES]:       Anzahl Includefiles im Programm.
        int [OIM_NUM_INHERITED]:      Anzahl inheriter Programme.
        int [OIM_SIZE_INHERITED]:     Speicherbedarf der Inherits.
        int [OIM_TOTAL_SIZE]:         Gesamter Speicherbedarf des Programms.
        int [OIM_DATA_SIZE]:          Gesamte Speicherbedarf der Variablenwerte
                                      des Objekts <ob>, korrigiert um das
                                      Ausmass des Daten-Sharings.
        int [OIM_DATA_SIZE_TOTAL]:    unkorrigierter Gesamter Speicherbedarf
                                      der Variablenwerte des Objekts.
        int [OIM_NO_INHERIT]:         1, wenn das Programm nicht inheritet
                                      werden kann.
        int [OIM_NO_CLONE]:           1, wenn das Programm / der Blueprint
                                      nicht geclont werden kann.
        int [OIM_NO_SHADOW]:          1, wenn dem Objekt kein Shadow
                                      uebergeworfen werden darf.

        Dieser Aufruf holt das Programm aus dem Swap, falls notwendig.
        Die OIM_SIZE_xxx-Eintraege zeigen nur den Speicherbedarf der
        Strukturen / Pointer an, nicht aber den Speicherbedarf von
        Variablenwerten, Funktionscode oder der Strings selbst.


GESCHICHTE
        Eingefuehrt in LDMud 3.2.6.
        Aenderungen in LDMud 3.2.7:
          - neues Kriterium OIB_REPLACED.
          - das Kriterium OIB_IS_WIZARD ist immer 0, wenn set_is_wizard()
            nicht verfuegbar ist.
          - das Kriterium OIB_APPROVED wurde entfernt.
        LDMud 3.2.8 fuehrte neu OIM_DATA_SIZE im Resultat von OINFO_MEMORY ein.
        LDMud 3.2.9 erweiterte OINFO_MEMORY um den Index Mechanismus,
            OIM_NUM_INCLUDES, OIM_NO_INHERIT, OIM_NO_SHADOW, OIM_NO_CLONE,
            OIM_SIZE_STRINGS_DATA, OIM_SIZE_STRINGS_TOTAL, und
            OIM_DATA_SIZE_TOTAL

SIEHE AUCH
        debug_info(E)
