GetGroupMembers()
FUNKTION:
     string *GetGroupMembers(string grp)

DEFINIERT IN:
     /p/daemon/materialdb.c (MATERIALDB)

ARGUMENTE:
     string grp - Gruppenname

BESCHREIBUNG:
     Gibt alle dieser Gruppe zugehoerigen Materialien zurueck. Dazu gut, sich
     einen Ueberblick ueber die aktuelle Liste zu verschaffen.

RUECKGABEWERT:
     Array von Strings mit Materialien oder ({})

BEISPIELE:
     // wir wollen irgend ein Metall haben, nennen dies aber beim Namen
     int ind;
     string* likeit;
     likeit=MATERIALDB->GetGroupMembers(MATGROUP_METAL);
     ind=random(sizeof(likeit));
     ...
     write("Der Schmied sagt: Mir fehlt noch "+
	   MATERIALDB->MaterialName(likeit[ind], WER, 100)+".\n");
     ...

SIEHE AUCH:
     Konzepte:	  material, materialerkennung
     Grundlegend: P_MATERIAL, /sys/thing/material.h
     Master:	  AddMaterial(), ConvMaterialList(), MaterialGroup(),
		  GroupName(), MaterialName(),
		  GetMatMembership()

7. Mai 2004 Gloinson