| AddMaterial() |
| FUNKTION: |
| private static varargs void AddMaterial(string mat, int gender, |
| mixed names, mixed groups, |
| mixed dif) { |
| |
| DEFINIERT IN: |
| /p/daemon/materialdb.c (MATERIALDB) |
| |
| ARGUMENTE: |
| string mat |
| Materialstring, definiert in <thing/material.h> |
| |
| int gender |
| Geschlecht des einzutragenden Materials |
| |
| mixed names |
| Name des Materials: |
| - "<Nominativ>" oder (meist nur Nom. und Gen. noetig) |
| - ({"<Nominativ>","<Genitiv>","<Dativ>","<Akkusativ>"}) |
| |
| mixed groups |
| Eingruppierung des Materials: |
| - MATGROUP_XXX oder ({MATGROUP_XXX,...}) |
| - ([MAT_GROUP_XXX:xx,MATGROUP_YYY:yy,...]) |
| |
| mixed dif |
| Schwierigkeiten bei der Erkennbarkeit: |
| - int x oder ({MINMAT,x1,MATPOS1,x2,MATPOS2 ...}) |
| - xn: Erkennbarkeitsschwierigkeit (100=100%) -100..100 |
| - MINMAT: Erkennung zumindest als _dieses_ Material |
| moeglich |
| - MATPOSn: moegliches Material, erkennbar, wenn |
| Erkennbarkeitfaehigkeit>=xn |
| -> das letzte MATPOS muss natuerlich |
| string mat entsprechen |
| |
| BESCHREIBUNG: |
| Es wird in die Materialiendatenbank eine neues Material aufgenommen, |
| die Stringkonstante dafuer wird vorher in <thing/material.h> fest- |
| gelegt. Falls der Genitiv nicht Nominativ+"s" entspricht (z.B. "Seide"), |
| sollte dieser explizit angegeben werden. |
| Nach Neuladen der Datenbank ist dieses Material auch per MaterialName(), |
| 'erkennbar' (siehe mixed dif, siehe Beispiel) bzw. seinen einzelnen |
| Gruppen zuordnbar. |
| |
| BEISPIELE: |
| AddMaterial(MAT_NITROGLYCERINE,NEUTER,"Nitroglycerin", |
| ({MATGROUP_EXPLOSIVE,MATGROUP_FLUID}), |
| ({MAT_OIL,25,MAT_MISC_EXPLOSIVE,50,MAT_NITROGLYCERINE})); |
| |
| Damit wird das Material Nytroglycerin aufgenommen, ein explosiver |
| (damit entflammbarer) sowie fluessiger Stoff. Liegt die Erkennungs- |
| faehigkeit (MaterialName()) unter 25, wird es nur als Oel erkannt, |
| liegt sie unter 50, wird es zumindest als explosives Material erkannt, |
| liegt sie ueber 49, so wird es korrekt erkannt (wie schade :) ). |
| |
| BEMERKUNGEN: |
| Wird in der create() der Datenbank aufgerufen. Zu beachten: |
| - vor Eintrag eines _neuen_ Materials die Datenbank durchsuchen! |
| - bei den Materialiengruppen die automatischen Abhaengigkeiten in |
| AddMaterial() durchsehen! |
| - bitte Datenbank neu laden |
| |
| SIEHE AUCH: |
| Konzepte: material, materialerkennung |
| Grundlegend: P_MATERIAL, /sys/thing/material.h |
| Methoden: QueryMaterial(), QueryMaterialGroup(), MaterialList(), |
| Listen: AllMaterials(), AllGroups(), Dump() |
| materialliste, materialgruppen |
| Master: ConvMaterialList(), MaterialGroup(), |
| GroupName(), MaterialName(), |
| GetGroupMembers(), GetMatMembership() |
| Sonstiges: P_MATERIAL_KNOWLEDGE |
| |
| 7. Mai 2004 Gloinson |