
QueryInsertHooks()
******************

********************* OBSOLETE LFUN
*********************************** * Diese Efun bitte nicht mehr
benutzen, sondern stattdessen die       * * Hooks (s. /doc/std/hooks).
* *******************************************************************
**** QueryInsertHooks()


FUNKTION
========

   object *QueryInsertHooks();


DEFINIERT IN
============

   /std/player/restrictions.c


ARGUMENTE
=========

   keine


BESCHREIBUNG
============

   (Diese Funktionalitaet wurde ersetzt durch den allgemeinen Hook
    H_HOOK_INSERT und ist nur noch aus Gruenden der Kompatibilitaet
    vorhanden.)

   Diese Funktion gibt die aktuell beim Spielerobjekt angemeldeten
   Listener-Objekte zurueck.


RUeCKGABEWERT
=============

   Array aus Objektpointern oder leeres Array


SIEHE AUCH
==========

   NotifyInsert(), AddInsertHook(), RemoveInsertHook()

Last modified: 14.04.2010, Arathorn
