GetVItemClones()
================

FUNKTION
--------

  public object* GetVItemClones()

DEFINIERT IN
------------

  /std/container/vitems.c

BESCHREIBUNG
------------

  Es werden alle zur Zeit in diesem Container/Raum anwesenden virtuellen
  vItems (also deren Objekte) zurueckgeliefert.

RUeckGABEWERT
-------------

  Ein Array von Objekten.

SIEHE AUCH
----------

  :doc:`AddVItem`, :doc:`RemoveVItem`, :doc:`AddItem`, :doc:`RemoveItem`
  :doc:`../std/vitems`

Last modified: 19.03.2019, Zesstra

