MaterialName()
==============

FUNKTION
--------
::

     varargs string MaterialName(string mat, int casus, mixed idinf)

DEFINIERT IN
------------
::

     /p/daemon/materialdb.c (MATERIALDB)

ARGUMENTE
---------
::

     string mat	 - das zu erkennende Material
     int casus	 - der Fall
     mixed idinf - Dinge, welche die Faehigkeiten des Erkennens beeinflussen
		   (siehe "man MaterialList")

BESCHREIBUNG
------------
::

     Diese Funktion sucht unter Beruecksichtigung der Erkennungsbe-
     schraenkungen des Materials und Faehigkeiten des Spielers den
     Klarnamen des Materials heraus und gibt den zurueck.

RUECKGABEWERT
-------------
::

     string: Materialname oder genereller Name.

BEISPIELE
---------
::

     // der hier mag alle existierenden Juwelen, auch wenn welche ergaenzt
     // werden sollten
     // Parameter: 1. ein Juwel, 2. Casus, 3. 100% Erkennung - ob er sie
     // beim Empfang dann auch zu 100% erkennt, steht hier nicht!
     string* likeit;
     likeit=MATERIALDB->GetGroupMembers(MATGROUP_JEWEL);
     ...
     write("Der Alte sagt: Ich mag "+
	   MATERIALDB->MaterialName(likeit[random(sizeof(likeit))], WEN, 100)+
	   ".\n");
     ...

     // ein weiser schmied:
     int i;
     string *mat, mname, mgroup;
     mat=m_indices(ob->queryprop(p_material));
     i=sizeof(mat);

     write("der schmied sagt: "+ob->name(wer)+" besteht aus ...\n");
     while(i--) {
      // den namen erkennen/aussprechen:
      // materialien werden allgemein ganz schlecht erkannt (zu 5%), aber
      // alles aus metall wird zu +100% gut erkannt ...
      mname=materialdb->materialname(mat[i], wer,
	     ({5, ([material_symmetric_recognizability:
			({matgroup_metal, 100})])}));

      // und nur metalle analysieren ...
      if(materialdb->materialgroup(([mat[i]:100]),matgroup_metal)>=100) {
       int j;
       string *mgr;
       mgr=materialdb->getmatmembership(mat[i]);
       j=sizeof(mgr);
       mgroup=" gehoert zu ";
       while(j--) {
        mgroup+=materialdb->groupname(mgr[j]);
        if(j>0) mgroup+=", ";
       }
      } else mgroup=" kenne ich nicht";
      printf("%-12.12s: %s\n",mname, mgroup);
     }

SIEHE AUCH
----------
::

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

7. Mai 2004 Gloinson