Added public files
Roughly added all public files. Probably missed some, though.
diff --git a/doc/wiz/materialerkennung b/doc/wiz/materialerkennung
new file mode 100644
index 0000000..976106f
--- /dev/null
+++ b/doc/wiz/materialerkennung
@@ -0,0 +1,79 @@
+Materialerkennung
+=================
+
+ Bei MaterialName(mat,casus,idinf) und MaterialList(casus,idinf) id der
+ Parameter <idinf> als Angabe dafuer gedacht, wie gut Materialien
+ erkannt werden sollen. Es sind folgende Arten von Angaben moeglich:
+
+ - Ein Array
+ Die einzelnen Arrayelemente werden nach untenstehenden Regeln
+ behandelt und deren Ergebnisse addiert.
+ - Ein Objekt
+ In diesem Fall wird
+ ob->QueryProp(P_MATERIAL_KNOWLEDGE)
+ nach untenstehenden Regeln behandelt.
+ Diese Property ist fuer rassenabhaengige Faehigkeiten gedacht.
+ - Eine Zahl
+ In diesem Fall wird der Wert direkt als Faehigkeit angesehen, das
+ Material erkennen zu koennen.
+ - Eine Closure
+ In diesem Fall wird der Returnwert von
+ funcall(closure,material,gruppen_in_denen_diese_material_ist)
+ genommen.
+ - Ein Mapping
+ In einem Mapping sind 3 Arten von Eintraegen moeglich:
+ - Ist im Mapping unter <mat> eine Zahl eingetragen, wird diese
+ genommen und die weiteren Eintraege nicht weiter ausgewertet.
+ - Die Werte von allen Gruppen im Mapping, zu denen das Material
+ gehoert, werden addiert.
+ - Falls das Mapping einen Eintrag MATERIAL_SYMMETRIC_RECOGNIZABILITY
+ hat, der ein Array von der Form
+ ({gruppe1, wert1, gruppe2, wert2, ...})
+ ist, wird fuer jede dieser Gruppen der zugehoerige Wert
+ addiert, falls das Material in der Gruppe ist, und sonst
+ abgezogen.
+ Im Beispiel: ({MATGROUP_BIO: 5}) gibt einen Erkennbonus von 5% auf
+ alle biologischen Materialien, aber einen Malus von -5% auf alle
+ nichtbiologischen Materialien.
+
+ Schwer erkennbare Materialien haben in der Materialdatenbank eine
+ zusaetzliche Angabe der Form
+ ({mat1, wert2, mat3, wert4, mat5, ... wert(n-1), mat(n)})
+ wobei mat(n) das Material selber ist.
+
+ Das erkannte Material ist das Material mat(k), bei dem die
+ wert(k-1) <= Erkennungsfaehigkeit < wert(k+1)
+ ist. Bei Erkennungsfaehigkeit 100 oder mehr wird das Material auf jeden
+ Fall erkannt.
+
+ Der Wert fuer Durchschnittsspieler ist 0.
+
+BEISPIEL:
+ Angenommen, bei Platin waere die Angabe in der Datenbank
+ ({Metall, -20, Silber, 20, Platin})
+ Ein Spieler ohne besondere Erkennungsfaehigkeiten (also Wert 0) wuerde
+ also Platin fuer Silber halten, jemand, der von Metallen keine Ahnung
+ hat (beispielsweise mit der Angabe ([MATGROUP_METAL:-25]) in
+ P_MATERIAL_KNOWLEDGE) sieht nur noch, dass es ein Metall ist und jemand
+ mit ueberdurchschnittlicher Faehigkeit erkennt Platin als das, was es
+ ist.
+
+ P_MATERIAL_KNOWLEDGE koennte z.B. fuer Rassen wie folgt gesetzt werden:
+ Elf: ([MATGROUP_WOOD:30])
+ Zwerg: ([MATGROUP_STONE:30])
+ oder etwas komplexer
+ Zwerg: ([MATGROUP_STONE:30,
+ MATERIAL_SYMMETRIC_RECOGNIZABILITY: ({MATGROUP_BIO: -5})])
+
+SIEHE AUCH:
+ Konzepte: material
+ Grundlegend: P_MATERIAL, /sys/thing/material.h
+ Methoden: QueryMaterial(), QueryMaterialGroup(), MaterialList(),
+ Listen: AllMaterials(), AllGroups(), Dump()
+ materialliste, materialgruppen
+ Master: AddMaterial(), ConvMaterialList(), MaterialGroup(),
+ GroupName(), MaterialName(),
+ GetGroupMembers(), GetMatMembership()
+ Sonstiges: P_MATERIAL_KNOWLEDGE
+
+7. Mai 2004 Gloinson
\ No newline at end of file