blob: 211c51dbf13862dfb5af850d40fdc43ef9b24373 [file] [log] [blame]
Zesstra18626972017-01-31 10:38:27 +01001AddMaterial()
2=============
3
4FUNKTION
5--------
6::
7
8 private static varargs void AddMaterial(string mat, int gender,
9 mixed names, mixed groups,
10 mixed dif) {
11
12DEFINIERT IN
13------------
14::
15
16 /p/daemon/materialdb.c (MATERIALDB)
17
18ARGUMENTE
19---------
20::
21
22 string mat
23 Materialstring, definiert in <thing/material.h>
24
25 int gender
26 Geschlecht des einzutragenden Materials
27
28 mixed names
29 Name des Materials:
30 - "<Nominativ>" oder (meist nur Nom. und Gen. noetig)
31 - ({"<Nominativ>","<Genitiv>","<Dativ>","<Akkusativ>"})
32
33 mixed groups
34 Eingruppierung des Materials:
35 - MATGROUP_XXX oder ({MATGROUP_XXX,...})
36 - ([MAT_GROUP_XXX:xx,MATGROUP_YYY:yy,...])
37
38 mixed dif
39 Schwierigkeiten bei der Erkennbarkeit:
40 - int x oder ({MINMAT,x1,MATPOS1,x2,MATPOS2 ...})
41 - xn: Erkennbarkeitsschwierigkeit (100=100%) -100..100
42 - MINMAT: Erkennung zumindest als _dieses_ Material
43 moeglich
44 - MATPOSn: moegliches Material, erkennbar, wenn
45 Erkennbarkeitfaehigkeit>=xn
46 -> das letzte MATPOS muss natuerlich
47 string mat entsprechen
48
49BESCHREIBUNG
50------------
51::
52
53 Es wird in die Materialiendatenbank eine neues Material aufgenommen,
54 die Stringkonstante dafuer wird vorher in <thing/material.h> fest-
55 gelegt. Falls der Genitiv nicht Nominativ+"s" entspricht (z.B. "Seide"),
56 sollte dieser explizit angegeben werden.
57 Nach Neuladen der Datenbank ist dieses Material auch per MaterialName(),
58 'erkennbar' (siehe mixed dif, siehe Beispiel) bzw. seinen einzelnen
59 Gruppen zuordnbar.
60
61BEISPIELE
62---------
63::
64
65 AddMaterial(MAT_NITROGLYCERINE,NEUTER,"Nitroglycerin",
66 ({MATGROUP_EXPLOSIVE,MATGROUP_FLUID}),
67 ({MAT_OIL,25,MAT_MISC_EXPLOSIVE,50,MAT_NITROGLYCERINE}));
68
69 Damit wird das Material Nytroglycerin aufgenommen, ein explosiver
70 (damit entflammbarer) sowie fluessiger Stoff. Liegt die Erkennungs-
71 faehigkeit (MaterialName()) unter 25, wird es nur als Oel erkannt,
72 liegt sie unter 50, wird es zumindest als explosives Material erkannt,
73 liegt sie ueber 49, so wird es korrekt erkannt (wie schade :) ).
74
75BEMERKUNGEN
76-----------
77::
78
79 Wird in der create() der Datenbank aufgerufen. Zu beachten:
80 - vor Eintrag eines _neuen_ Materials die Datenbank durchsuchen!
81 - bei den Materialiengruppen die automatischen Abhaengigkeiten in
82 AddMaterial() durchsehen!
83 - bitte Datenbank neu laden
84
85SIEHE AUCH
86----------
87::
88
89 Konzepte: material, materialerkennung
90 Grundlegend: P_MATERIAL, /sys/thing/material.h
91 Methoden: QueryMaterial(), QueryMaterialGroup(), MaterialList(),
92 Listen: AllMaterials(), AllGroups(), Dump()
93 materialliste, materialgruppen
94 Master: ConvMaterialList(), MaterialGroup(),
95 GroupName(), MaterialName(),
96 GetGroupMembers(), GetMatMembership()
97 Sonstiges: P_MATERIAL_KNOWLEDGE
98
997. Mai 2004 Gloinson
100