| GetMatMembership() |
| FUNKTION: |
| string *GetMatMembership(string mat) |
| |
| DEFINIERT IN: |
| /p/daemon/materialdb.c (MATERIALDB) |
| |
| ARGUMENTE: |
| string mat - ein Material |
| |
| BESCHREIBUNG: |
| Gibt alle Gruppen, denen das Material angehoert zurueck. Geeignet, um |
| die Eigenschaften eines Materials zu ueberpruefen. |
| |
| RUECKGABEWERT: |
| Array von Strings mit Materialiengruppen oder ({}) |
| |
| BEISPIELE: |
| // 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 etwas besser erkannt (zu 5%), aber |
| // alles aus Metall wird zu +100% besser erkannt ... |
| mname=MATERIALDB->MaterialName(mat[i], WER, |
| ({5, ([MATRGROUP_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(), MaterialName(), |
| GetGroupMembers() |
| |
| 7. Mai 2004 Gloinson |