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