AllMaterials()
**************


FUNKTION
========

   string *AllMaterials()


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

   /p/daemon/materialdb.c (MATERIALDB)


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

   Gibt ein Array aller existenten Materialien zurueck (ihre Definitions-
   form wie in <thing/material.h> aufgelistet).


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

   Konzepte:    material, materialerkennung
   Grundlegend: P_MATERIAL, /sys/thing/material.h
   Listen:      AllGroups(), Dump()
                materialliste, materialgruppen
   Master:      AddMaterial(), ConvMaterialList(), MaterialGroup(),
                GroupName(), MaterialName(),
                GetGroupMembers(), GetMatMembership()

7. Mai 2004 Gloinson
