nwn-lib 0.4.5 → 0.4.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/DATA_STRUCTURES DELETED
@@ -1,50 +0,0 @@
1
- == Internal data representation
2
-
3
- All data is representend internally as simple hashes or arrays. On load,
4
- each structure will be extended by a representing module containing
5
- the API and some application logic.
6
-
7
- * Structs are normal hashes extended by NWN::Gff::Struct
8
- * Lists are arrays extended by NWN::Gff::List
9
- * Fields are normal hashes extended by NWN::Gff::Field
10
- * CExoLocStrings are normal hashes extended by NWN::Gff::CExoLocString
11
-
12
-
13
- === Struct
14
-
15
- Example:
16
- "/AddCost" => {"value" => 5, "label" => "AddCost", "type" => :dword}
17
-
18
- Also, a NWN::Gff::Struct also has these accessors:
19
-
20
- * data_type: A string describing the data type of this struct. (see Data Type)
21
- * data_version: A string describing the version (usually "V3.2")
22
- * struct_id: the struct Id of this struct.
23
- * element: The NWN::Gff::Field which this struct contains. This is nil
24
- for root structs.
25
-
26
-
27
- === Field
28
-
29
- Each field is a hash containing two keys:
30
- "value": The data contained in this field, depending on
31
- "type": The data type. For known data types, see NWN::Gff::Gff.
32
-
33
- Additionally, "label" is a key set by the Readers saying its' label name.
34
- This key, however, will not be written out to YAML (since it would be
35
- redundant).
36
-
37
- Also, each field has a .parent, which is a simple accessor set by
38
- the various readers pointing to the struct it is member of.
39
-
40
-
41
- === Data Type
42
-
43
- Each Struct has a data_type, which describes the type of data the struct contains.
44
- For top-level structs, this equals the data type written to the GFF file ("UTI",
45
- for example); for sub structures, this is usually the top-level data type + the
46
- field label ("UTI/PropertiesList", for example). This is used by various loaders/writers
47
- to infer field types and default values.
48
-
49
- This also means that inventory items in /ItemList/ structs have a type of "UTI" and
50
- thus could be exported to item files, or re-attached somewhere else with minimum scripting.
data/TYPE_VALUE_INFERRING DELETED
@@ -1,93 +0,0 @@
1
- == Go infer yourself, wacko
2
-
3
- nwn-lib is smart enough to infer data types when it is pointed to a
4
- file containing information on what is to be expected.
5
-
6
- This also works for default values.
7
-
8
- For these libaries, this is called type and value inferring.
9
-
10
- To use it, simply set the environment variable NWN_LIB_INFER_DATA_FILE
11
- to a YAML file location, or use the --infer-data-file argument most
12
- command-line scripts will take.
13
-
14
- Some sample files have been provided with nwn-lib, look for them within
15
- the distribution unter data/.
16
-
17
- Here is an example to see what the fuss is about: From both representations
18
- will exactly the same gff represenation generated.
19
-
20
- Please be advised that inferring support for YAML is <b>EXPERIMENTAL</b> and may result in
21
- <b>module and gff file corruption</b>.
22
-
23
- === Without inferring
24
-
25
- --- !nwn-lib.elv.es,2008-12/struct
26
- __data_type: UTI
27
- __struct_id: 4294967295
28
- AddCost: {type: :dword, value: 0}
29
- BaseItem: {type: :int, value: 80}
30
- Charges: {type: :byte, value: 0}
31
- Cloth1Color: {type: :byte, value: 0}
32
- Cloth2Color: {type: :byte, value: 0}
33
- Comment: {type: :cexostr, value: ""}
34
- Cost: {type: :dword, value: 200}
35
- Cursed: {type: :byte, value: 0}
36
- DescIdentified:
37
- type: :cexolocstr
38
- value: {}
39
-
40
- Description:
41
- type: :cexolocstr
42
- value: {}
43
-
44
- Identified: {type: :byte, value: 1}
45
- Leather1Color: {type: :byte, value: 0}
46
- Leather2Color: {type: :byte, value: 0}
47
- LocalizedName:
48
- type: :cexolocstr
49
- value:
50
- 4: Einfacher Umhang
51
- Metal1Color: {type: :byte, value: 0}
52
- Metal2Color: {type: :byte, value: 0}
53
- ModelPart1: {type: :byte, value: 1}
54
- PaletteID: {type: :byte, value: 18}
55
- Plot: {type: :byte, value: 0}
56
- PropertiesList:
57
- type: :list
58
- value: []
59
-
60
- StackSize: {type: :word, value: 1}
61
- Stolen: {type: :byte, value: 0}
62
- Tag: {type: :cexostr, value: Umhang}
63
- TemplateResRef: {type: :resref, value: umhang}
64
- VarTable:
65
- type: :list
66
- value:
67
- - !nwn-lib.elv.es,2008-12/struct
68
- __data_type: UTI/VarTable
69
- __struct_id: 0
70
- Name: {type: :cexostr, value: cloak_model}
71
- Type: {type: :dword, value: 1}
72
- Value: {type: :int, value: 10}
73
-
74
- === With type and default-value inferring
75
-
76
- --- !nwn-lib.elv.es,2008-12/struct
77
- __data_type: UTI
78
- BaseItem: 80
79
- Cost: 200
80
- Identified: 1
81
- LocalizedName:
82
- value:
83
- 4: Einfacher Umhang
84
- ModelPart1: 1
85
- PaletteID: 18
86
- Tag: Umhang
87
- TemplateResRef: umhang
88
- VarTable:
89
- - !nwn-lib.elv.es,2008-12/struct
90
- __data_type: UTI/VarTable
91
- Name: cloak_model
92
- Type: 1
93
- Value: {type: :int, value: 10}
@@ -1,982 +0,0 @@
1
- # This file contains default infer data for common
2
- # bioware structs. They're identified by their path,
3
- # which is usually contained in the yml data file.
4
- #
5
- # Values for each label are: [type, default_value, str_ref]
6
- # If no str_ref is specified, 0xffffffff is assumed (the
7
- # bioware default for "no text entered").
8
- # If a default_value is specified (!= nil), dumping to
9
- # yaml will omit values which match the default value.
10
- #
11
- # Some safe default values have been prepopulated with
12
- # defaults that nwserver will use as if no GFF field had
13
- # been specified.
14
- #
15
- # You can use regular expressions in pathes, but not in
16
- # field names.
17
- #
18
- # Special field labels:
19
- # __inline: "yes" to dump this struct inline (YAML only)
20
- # __struct_id:
21
- # "iterative" to assign struct ids iteratively (only for
22
- # compacted struct lists!)
23
- # "inline" struct_id is first field in compacted struct
24
- # list
25
- # some number: as-is
26
- ---
27
- __OBJECT_INVALID: &OBJECT_INVALID 0x7f000000
28
- __OBJECT_SELF: &OBJECT_SELF 0xffffffff
29
-
30
- # Generic structs first.
31
- '.*/VarTable':
32
- __compact: [ Name, Type, Value ]
33
- __inline: yes
34
- __struct_id: 0
35
- Name: :cexostr
36
- Type: :dword
37
- Comment: [ :cexostr, "" ]
38
-
39
- '[A-Z]{3}':
40
- __struct_id: *OBJECT_SELF
41
-
42
- __ref: &ref
43
- Tag: :cexostr
44
- ResRef: :resref
45
- TemplateResRef: :resref
46
- Comment: [ :cexostr, "" ]
47
- Comments: [ :cexostr, "" ]
48
- PaletteID: :byte
49
-
50
- __events: &events
51
- OnEnter: [ :resref, "" ]
52
- OnExit: [ :resref, "" ]
53
- OnClick: [ :resref, "" ]
54
- OnClosed: [ :resref, "" ]
55
- OnDamaged: [ :resref, "" ]
56
- OnDeath: [ :resref, "" ]
57
- OnDisarm: [ :resref, "" ]
58
- OnHeartbeat: [ :resref, "" ]
59
- OnInvDisturbed: [ :resref, "" ]
60
- OnLock: [ :resref, "" ]
61
- OnMeleeAttacked: [ :resref, "" ]
62
- OnOpen: [ :resref, "" ]
63
- OnFailToOpen: [ :resref, "" ]
64
- OnSpellCastAt: [ :resref, "" ]
65
- OnTrapTriggered: [ :resref, "" ]
66
- OnUnlock: [ :resref, "" ]
67
- OnUsed: [ :resref, "" ]
68
- OnUserDefined: [ :resref, "" ]
69
-
70
- ScriptAttacked: [ :resref, "" ]
71
- ScriptDamaged: [ :resref, "" ]
72
- ScriptDeath: [ :resref, "" ]
73
- ScriptDialogue: [ :resref, "" ]
74
- ScriptDisturbed: [ :resref, "" ]
75
- ScriptEndRound: [ :resref, "" ]
76
- ScriptHeartbeat: [ :resref, "" ]
77
- ScriptOnBlocked: [ :resref, "" ]
78
- ScriptOnEnter: [ :resref, "" ]
79
- ScriptOnExit: [ :resref, "" ]
80
- ScriptOnNotice: [ :resref, "" ]
81
- ScriptRested: [ :resref, "" ]
82
- ScriptSpawn: [ :resref, "" ]
83
- ScriptSpellAt: [ :resref, "" ]
84
- ScriptUserDefine: [ :resref, "" ]
85
-
86
- __game_object: &gameobject
87
- <<: *events
88
- Interruptable: [ :byte, 1 ]
89
- BodyBag: [ :byte, 0 ]
90
- BodyBagId: [ :dword, *OBJECT_SELF ]
91
- AmbientAnimState: [ :byte, 0 ]
92
- AnimationDay: [ :dword, 0 ]
93
- AnimationTime: [ :dword, 0 ]
94
- AnimationState: [ :byte, 0 ]
95
- FortSaveThrow: :char
96
- RefSaveThrow: :char
97
- WillSaveThrow: :char
98
- fortbonus: [ :short, 0 ]
99
- refbonus: [ :short, 0 ]
100
- willbonus: [ :short, 0 ]
101
- Fort: [ :byte, 0]
102
- Ref: [ :byte, 0]
103
- Will: [ :byte, 0]
104
- ActionList: [ :list, [] ]
105
- EffectList: [ :list, [] ]
106
- ObjectId: :dword
107
- Plot: [ :byte, 0 ]
108
- HitPoints: :short
109
- Hardness: :byte
110
- CurrentHitPoints: :short
111
- MaxHitPoints: :short
112
- CurrentHP: :short
113
- HP: :short
114
- FactionID: :word
115
- Faction: :dword
116
- Conversation: [ :resref, "" ]
117
- PortraitId: [ :word, 0 ]
118
- Portrait: [ :resref, "" ]
119
-
120
- __location: &location
121
- Bearing: [ :float, 0.0 ]
122
- Orientation: [ :float, 0 ]
123
- X: [ :float, 0.0 ]
124
- Y: [ :float, 0.0 ]
125
- Z: [ :float, 0.0 ]
126
- XOrientation: [ :float, 1.0 ]
127
- XPosition: [ :float, 0.0 ]
128
- YOrientation: [ :float, 0.0 ]
129
- YPosition: [ :float, 0.0 ]
130
- ZOrientation: [ :float, 0.0 ]
131
- ZPosition: [ :float, 0.0 ]
132
-
133
- __geometry: &geometry
134
- __compact: [ PointX, PointY, PointZ ]
135
- __inline: yes
136
- PointX: :float
137
- PointY: :float
138
- PointZ: :float
139
-
140
- __naming: &naming
141
- DisplayName: [ :cexostr, "" ]
142
- FirstName: [ :cexolocstr, {} ]
143
- LastName: [ :cexolocstr, {} ]
144
- DescIdentified: [ :cexolocstr, {} ]
145
- Description: [ :cexolocstr, {} ]
146
- LocName: [ :cexolocstr, {} ]
147
- LocalizedName: [ :cexolocstr, {} ]
148
- DescIdentifiedOv: [ :cexostr, "" ]
149
- DescriptionOverr: [ :cexostr, "" ]
150
-
151
- __mapnote: &mapnote
152
- HasMapNote: [ :byte, 0 ]
153
- MapNote: [ :cexolocstr, {} ]
154
- MapNoteEnabled: [ :byte, 0 ]
155
-
156
- __lock: &lock
157
- KeyName: [ :cexostr, "" ]
158
- KeyRequired: [ :byte, 0 ]
159
- LocName: [ :cexolocstr, {} ]
160
- Lockable: :byte
161
- Locked: [ :byte, 0 ]
162
- OpenLockDC: [ :byte, 0 ]
163
- CloseLockDC: [ :byte, 0 ]
164
- AutoRemoveKey: [ :byte, 0 ]
165
-
166
- __trap: &trap
167
- DisarmDC: [ :byte, 0 ]
168
- TrapDetectDC: [ :byte, 0 ]
169
- TrapDetectable: :byte
170
- TrapDisarmable: :byte
171
- TrapFlag: [ :byte, 0 ]
172
- TrapOneShot: [ :byte, 1 ]
173
- TrapType: [ :byte, 0 ]
174
-
175
- __trigger: &trigger
176
- Cursor: [ :byte, 0 ]
177
- HighlightHeight: [ :float, 0.0 ]
178
-
179
- __transition: &transition
180
- <<: *trigger
181
- LoadScreenID: [ :word, 0 ]
182
- LinkedTo: [ :cexostr, "" ]
183
- LinkedToFlags: [ :byte, 0 ]
184
- GenericType: :byte
185
-
186
- __armorpart: &armorpart
187
- ArmorPart_Belt: [ :byte, 0 ]
188
- ArmorPart_LBicep: [ :byte, 0 ]
189
- ArmorPart_LFArm: [ :byte, 0 ]
190
- ArmorPart_LFoot: [ :byte, 0 ]
191
- ArmorPart_LHand: [ :byte, 0 ]
192
- ArmorPart_LShin: [ :byte, 0 ]
193
- ArmorPart_LShoul: [ :byte, 0 ]
194
- ArmorPart_LThigh: [ :byte, 0 ]
195
- ArmorPart_Neck: [ :byte, 0 ]
196
- ArmorPart_Pelvis: [ :byte, 0 ]
197
- ArmorPart_RBicep: [ :byte, 0 ]
198
- ArmorPart_RFArm: [ :byte, 0 ]
199
- ArmorPart_RFoot: [ :byte, 0 ]
200
- ArmorPart_RHand: [ :byte, 0 ]
201
- ArmorPart_RShin: [ :byte, 0 ]
202
- ArmorPart_RShoul: [ :byte, 0 ]
203
- ArmorPart_RThigh: [ :byte, 0 ]
204
- ArmorPart_Torso: [ :byte, 0 ]
205
- ArmorPart_Robe: [ :byte, 0 ]
206
- UArmorPart_Belt: [ :byte, 0 ]
207
- UArmorPart_LBice: [ :byte, 0 ]
208
- UArmorPart_LFArm: [ :byte, 0 ]
209
- UArmorPart_LFoot: [ :byte, 0 ]
210
- UArmorPart_LHand: [ :byte, 0 ]
211
- UArmorPart_LShin: [ :byte, 0 ]
212
- UArmorPart_LShou: [ :byte, 0 ]
213
- UArmorPart_LThig: [ :byte, 0 ]
214
- UArmorPart_Neck: [ :byte, 0 ]
215
- UArmorPart_Pelvi: [ :byte, 0 ]
216
- UArmorPart_RBice: [ :byte, 0 ]
217
- UArmorPart_RFArm: [ :byte, 0 ]
218
- UArmorPart_RFoot: [ :byte, 0 ]
219
- UArmorPart_RHand: [ :byte, 0 ]
220
- UArmorPart_RShin: [ :byte, 0 ]
221
- UArmorPart_RShou: [ :byte, 0 ]
222
- UArmorPart_RThig: [ :byte, 0 ]
223
- UArmorPart_Torso: [ :byte, 0 ]
224
- UArmorPart_Robe: [ :byte, 0 ]
225
-
226
-
227
- UTI: &uti
228
- <<: *ref
229
- <<: *gameobject
230
- <<: *location
231
- <<: *naming
232
- <<: *armorpart
233
- AddCost: [ :dword, 0 ]
234
- BaseItem: :int
235
- Charges: [ :byte, 0 ]
236
- Cloth1Color: [ :byte, 0 ]
237
- Cloth2Color: [ :byte, 0 ]
238
- Cost: [ :dword, 0 ]
239
- Cursed: [ :byte, 0 ]
240
- Dropable: [ :byte, 1 ]
241
- Identified: [ :byte, 0 ]
242
- Leather1Color: [ :byte, 0 ]
243
- Leather2Color: [ :byte, 0 ]
244
- Metal1Color: [ :byte, 0 ]
245
- Metal2Color: [ :byte, 0 ]
246
- ModelPart1: :byte
247
- ModelPart2: :byte
248
- ModelPart3: :byte
249
- Pickpocketable: [ :byte, 1 ]
250
- PropertiesList: [ :list, [] ]
251
- StackSize: [ :word, 1 ]
252
- Stolen: [ :byte, 0 ]
253
- VarTable: [ :list, [] ]
254
-
255
- '(UTI|BIC|UTC|UTP|Creature List)/(ItemList/)?ItemList':
256
- <<: *uti
257
- __struct_id: iterative
258
- InventoryRes: :resref
259
-
260
- # Containers dont have as many pages
261
- # as an inventory, sooo .. a byte was
262
- # enough for everyone, eh, Bioware?
263
- '(UTI|BIC|UTC|UTP|Creature List)/ItemList':
264
- Repos_PosX: [ :word, 0 ]
265
- Repos_Posy: [ :word, 0 ]
266
- '(UTI|BIC|UTC|UTP|Creature List)/ItemList/ItemList':
267
- Repos_PosX: [ :byte, 0 ]
268
- Repos_Posy: [ :byte, 0 ]
269
-
270
- '(BIC|UTC|UTC|Creature List)/Equip_ItemList':
271
- <<: *uti
272
- EquippedRes: :resref
273
-
274
- # Looks weird, but:
275
- # UTI/ItemList/Properties: Inventory
276
- # UTI/ItemList/ItemList/Properties: container
277
- # UTI/Equip_ItemList/Properties: equipped stuff
278
- '(UTI|BIC|UTC|Creature List)/(ItemList/)?((Equip_)?ItemList/)?PropertiesList':
279
- __compact: [ PropertyName, Subtype, CostTable, CostValue, Param1, Param1Value, UsesPerDay ]
280
- __always: [ ChanceAppear, Useable ]
281
- __inline: yes
282
- __struct_id: 0
283
-
284
- ChanceAppear: [ :byte, 100 ]
285
- Useable: [ :byte, 1 ]
286
- UsesPerDay: [ :byte, 255 ]
287
-
288
- PropertyName: :word
289
- __2da_PropertyName: [ itempropdef, Label ]
290
- Subtype: [ :word, 0 ]
291
- __2da_Subtype: [ :PropertyName, SubTypeResRef, Label ]
292
-
293
- CostTable: :byte
294
- __2da_CostTable: [ iprp_costtable, Name ]
295
- CostValue: [ :word, -1 ]
296
- __2da_CostValue: [ :CostTable, Name, Label ]
297
-
298
- Param1: [ :byte, 255 ]
299
- __2da_Param1: [ iprp_paramtable, Lable ]
300
- Param1Value: [ :byte, 0 ]
301
- __2da_Param1Value: [ :Param1, TableResRef, Label ]
302
-
303
-
304
- UTC: &utc
305
- <<: *ref
306
- <<: *gameobject
307
- <<: *location
308
- <<: *naming
309
- # Yeah, I know, its weird .. but UTC
310
- # seems to write armorpart values sometimes.
311
- # Im adding it here for completeness' sake.
312
- <<: *armorpart
313
- Age: :int
314
- Appearance_Head: :byte
315
- Appearance_Type: :word
316
- AreaId: :dword
317
- ArmorClass: :short
318
- BaseAttackBonus: :byte
319
- BodyPart_Belt: :byte
320
- BodyPart_LBicep: :byte
321
- BodyPart_LFArm: :byte
322
- BodyPart_LFoot: :byte
323
- BodyPart_LHand: :byte
324
- BodyPart_LShin: :byte
325
- BodyPart_LShoul: :byte
326
- BodyPart_LThigh: :byte
327
- BodyPart_Neck: :byte
328
- BodyPart_Pelvis: :byte
329
- BodyPart_RBicep: :byte
330
- BodyPart_RFArm: :byte
331
- BodyPart_RHand: :byte
332
- BodyPart_RShin: :byte
333
- BodyPart_RShoul: :byte
334
- BodyPart_RThigh: :byte
335
- BodyPart_Torso: :byte
336
- CRAdjust: [ :int, 0 ]
337
- Cha: :byte
338
- ChallengeRating: [ :float, 1.0 ]
339
- Color_Hair: [ :byte, 0 ]
340
- Color_Skin: [ :byte, 0 ]
341
- Color_Tattoo1: [ :byte, 0 ]
342
- Color_Tattoo2: [ :byte, 0 ]
343
- CreatnScrptFird: [ :byte, 1 ]
344
- CreatureSize: :int
345
- DeadSelectable: [ :byte, 1 ]
346
- Con: :byte
347
- DecayTime: [ :dword, 5000 ]
348
- Deity: [ :cexostr, "" ]
349
- Dex: :byte
350
- DetectMode: [ :byte, 0 ]
351
- Disarmable: [ :byte, 1 ]
352
- EncounterObject: [ :dword, *OBJECT_INVALID ]
353
- Experience: [ :dword, 0 ]
354
- FamiliarName: [ :cexostr, "" ]
355
- FamiliarType: :int
356
- FootstepType: [ :int, -1 ]
357
- Gender: [ :byte, 0 ]
358
- Gold: [ :dword, 0 ]
359
- GoodEvil: [ :byte, 50 ]
360
- LawfulChaotic: [ :byte, 50 ]
361
- Int: :byte
362
- IsCommandable: [ :byte, 1 ]
363
- IsImmortal: [ :byte, 0 ]
364
- IsPC: [ :byte, 0 ]
365
- IsDM: [ :byte, 0 ]
366
- IsDestroyable: [ :byte, 1 ]
367
- IsRaiseable: [ :byte, 1 ]
368
- Listening: [ :byte, 0 ]
369
- Lootable: :byte
370
- MClassLevUpIn: [ :byte, 0 ]
371
- MasterID: [ :dword, *OBJECT_INVALID ]
372
- MovementRate: [ :byte, 0 ]
373
- OverrideBAB: [ :byte, 0 ]
374
- PM_IsPolymorphed: [ :byte, 0 ]
375
- NaturalAC: :byte
376
- NoPermDeath: [ :byte, 0 ]
377
- PerceptionRange: :byte
378
- Phenotype: [ :int, 0 ]
379
- PregameCurrent: :short
380
- Race: :byte
381
- SitObject: [ :dword, *OBJECT_INVALID ]
382
- SkillPoints: [ :word, 0 ]
383
- SoundSetFile: :word
384
- StartingPackage: [ :byte, 0 ]
385
- StealthMode: [ :byte, 0 ]
386
- Str: :byte
387
- Subrace: [ :cexostr, "" ]
388
- Tail: [ :byte, 0 ]
389
- Tail_New: [ :dword, 0 ]
390
- WalkRate: :int
391
- Wings: [ :byte, 0 ]
392
- Wings_New: [ :dword, 0 ]
393
- Wis: :byte
394
-
395
- CombatInfo: :struct
396
- CombatRoundData: :struct
397
-
398
- TemplateList: [ :list, [] ]
399
- SpecAbilityList: [ :list, [] ]
400
- Equip_ItemList: [ :list, [] ]
401
- ItemList: [ :list, [] ]
402
- ClassList: :list
403
- SkillList: :list
404
- FeatList: :list
405
- LvlStatList: [ :list, [] ]
406
- PerceptionList: [ :list, [] ]
407
- QBList: [ :list, [] ]
408
-
409
- '(BIC|UTC|Creature List)/LvlStatList':
410
- __struct_id: 0
411
- EpicLevel: [ :byte, 0 ]
412
- FeatList: :list
413
- LvlStatClass: :byte
414
- LvlStatHitDie: :byte
415
- LvlStatAbility: :byte
416
- SkillList: :list
417
- SkillPoints: [ :word, 0 ]
418
-
419
- '(BIC|UTC|Creature List)/PerceptionList':
420
- __struct_id: 0
421
- __compact: [ ObjectId, PerceptionData ]
422
- __inline: yes
423
- ObjectId: :dword
424
- PerceptionData: :byte
425
-
426
- '(BIC|UTC|Creature List)/QBList':
427
- __struct_id: 0
428
- __compact: [ QBObjectType, QBCommandLabel, QBCommandLine, QBCastPropIndex, QBCastSubPropIdx,
429
- QBContReposX, QBContReposY, QBItemInvSlot, QBDomainLevel, QBINTParam1,
430
- QBMetaType, QBMultiClass, QBItemReposX, QBItemReposY ]
431
- __inline: yes
432
- QBCommandLabel: [ :cexostr, "" ]
433
- QBCommandLine: [ :cexostr, "" ]
434
- QBCastPropIndex: [ :byte, 0 ]
435
- QBCastSubPropIdx: [ :byte, 255 ]
436
- QBContReposX: [ :byte, 255 ]
437
- QBContReposY: [ :byte, 255 ]
438
- QBItemInvSlot: [ :dword, *OBJECT_SELF ]
439
- QBDomainLevel: [ :byte, 0 ]
440
- QBINTParam1: [ :int, 0 ]
441
- QBMetaType: [ :byte, 0 ]
442
- QBMultiClass: [ :byte, 0 ]
443
- QBObjectType: [ :byte, 0 ]
444
- QBItemReposX: [ :byte, 0xff ]
445
- QBItemReposY: [ :byte, 0xff ]
446
-
447
- '(BIC|UTC|Creature List)/CombatInfo':
448
- __struct_id: 51882
449
- ArcaneSpellFail: [ :byte, 0 ]
450
- ArmorCheckPen: [ :byte, 0 ]
451
- AttackList: [ :list, [] ]
452
- CreatureDice: [ :byte, 0 ]
453
- CreatureDie: [ :byte, 0 ]
454
- DamageDice: [ :byte, 0 ]
455
- DamageDie: [ :byte, 0 ]
456
- DamageList: [ :list, [] ]
457
- LeftEquip: [ :dword, *OBJECT_INVALID ]
458
- LeftString: [ :cexostr, "" ]
459
- NumAttacks: [ :byte, 1 ]
460
- OffHandAttackMod: [ :char, 0 ]
461
- OffHandCritMult: [ :byte, 2 ]
462
- OffHandCritRng: [ :byte, 1 ]
463
- OffHandDamageMod: [ :char, 0 ]
464
- OffHandWeaponEq: [ :byte, 0 ]
465
- OnHandAttackMod: [ :char, 1 ]
466
- OnHandCritMult: [ :byte, 2 ]
467
- OnHandCritRng: [ :byte, 1 ]
468
- OnHandDamageMod: [ :char, 1 ]
469
- RightEquip: [ :dword, *OBJECT_INVALID ]
470
- RightString: [ :cexostr, "" ]
471
- SpellResistance: [ :byte, 0 ]
472
- UnarmedDamDice: [ :byte, 1 ]
473
- UnarmedDamDie: [ :byte, 3 ]
474
- eatureDice: [ :byte, 0 ]
475
- eatureDie: [ :byte, 0 ]
476
- reatureDice: [ :byte, 0 ]
477
- reatureDie: [ :byte, 0 ]
478
-
479
- '(BIC|UTC|Creature List)/CombatRoundData':
480
- __struct_id: 51930
481
-
482
- '(BIC|UTC|Creature List)/ClassList':
483
- # __compact: [ Class, ClassLevel ]
484
- # __inline: yes
485
- __struct_id: 2
486
- Class: :int
487
- __2da_Class: [ classes, Label ]
488
- ClassLevel: :short
489
- KnownList0: [ :list, [] ]
490
- KnownList1: [ :list, [] ]
491
- KnownList2: [ :list, [] ]
492
- KnownList3: [ :list, [] ]
493
- KnownList4: [ :list, [] ]
494
- KnownList5: [ :list, [] ]
495
- KnownList6: [ :list, [] ]
496
- KnownList7: [ :list, [] ]
497
- KnownList8: [ :list, [] ]
498
- KnownList9: [ :list, [] ]
499
- MemorizedList0: [ :list, [] ]
500
- MemorizedList1: [ :list, [] ]
501
- MemorizedList2: [ :list, [] ]
502
- MemorizedList3: [ :list, [] ]
503
- MemorizedList4: [ :list, [] ]
504
- MemorizedList5: [ :list, [] ]
505
- MemorizedList6: [ :list, [] ]
506
- MemorizedList7: [ :list, [] ]
507
- MemorizedList8: [ :list, [] ]
508
- MemorizedList9: [ :list, [] ]
509
- School: :byte
510
-
511
- '(BIC|UTC|Creature List)/ClassList/KnownList[0-9]':
512
- __compact: Spell
513
- __inline: no
514
- __struct_id: 3
515
- Spell: :word
516
- __2da_Spell: [ spells, Label ]
517
-
518
- '(BIC|UTC|Creature List)/ClassList/MemorizedList[0-9]':
519
- __compact: [ Spell, SpellMetaMagic, SpellFlags, Ready ]
520
- __inline: yes
521
- __struct_id: 3
522
- Spell: :word
523
- __2da_Spell: [ spells, Label ]
524
- SpellMetaMagic: [ :byte, 0x00 ]
525
- SpellFlags: [ :byte, 0x01 ]
526
- Ready: [ :byte, 1 ]
527
-
528
- '(BIC|UTC|Creature List)/FeatList':
529
- __struct_id: 1
530
-
531
- '(BIC|UTC|Creature List)/(LvlStatList/)?FeatList':
532
- __compact: [ Feat, Uses ]
533
- __inline: yes
534
- __struct_id: 0
535
- Feat: :word
536
- __2da_Feat: [ feat, LABEL ]
537
- Uses: [ :byte, 0 ]
538
-
539
- '(BIC|UTC|Creature List)/(LvlStatList/)?SkillList':
540
- __compact: Rank
541
- __struct_id: 0
542
- Rank: :byte
543
-
544
- '(BIC|UTC)/(LvlStatList/)?KnownList[0-9]':
545
- __compact: Spell
546
- __struct_id: 0
547
- Spell: :word
548
- __2da_Spell: [ spells, Label ]
549
-
550
- BIC: &bic
551
- <<: *utc
552
-
553
- UTP: &utp
554
- <<: *ref
555
- <<: *gameobject
556
- <<: *lock
557
- <<: *trap
558
- <<: *location
559
- Appearance: :dword
560
- Description: [ :cexolocstr, {} ]
561
- HasInventory: [ :byte, 0 ]
562
- Static: [ :byte, 0 ]
563
- Type: [ :byte, 0 ]
564
- Useable: [ :byte, 0 ]
565
-
566
-
567
- UTD: &utd
568
- <<: *ref
569
- <<: *gameobject
570
- <<: *lock
571
- <<: *trap
572
- <<: *naming
573
- <<: *transition
574
- <<: *location
575
- Appearance: :dword
576
-
577
- UTE: &ute
578
- <<: *ref
579
- <<: *gameobject
580
- <<: *naming
581
- <<: *location
582
- Active: :byte
583
- 'CreatureList': :list
584
- Difficulty: :int
585
- DifficultyIndex: :int
586
- MaxCreatures: :int
587
- OnEntered: :resref
588
- OnExhausted: :resref
589
- PlayerOnly: :byte
590
- RecCreatures: :int
591
- Reset: :byte
592
- ResetTime: :int
593
- Respawns: :int
594
- SpawnOption: :int
595
-
596
- UTE/CreatureList:
597
- __struct_id: 0
598
- Appearance: :int
599
- CR: :float
600
- ResRef: :resref
601
- SingleSpawn: :byte
602
-
603
- UTE/Geometry:
604
- __struct_id: 1
605
- <<: *geometry
606
-
607
- UTM: &utm
608
- <<: *ref
609
- <<: *naming
610
- <<: *location
611
- ID: :byte
612
- OnOpenStore: [ :resref, "" ]
613
- OnStoreClosed: [ :resref, "" ]
614
- StoreGold: [ :int, -1 ]
615
- MaxBuyPrice: [ :int, -1 ]
616
- WillOnlyBuy: [ :list, [] ]
617
- WillNotBuy: [ :list, [] ]
618
- MarkUp: [ :int ]
619
- MarkDown: [ :int ]
620
- BlackMarket: [ :byte, 0 ]
621
- BM_MarkDown: [ :int ]
622
- IdentifyPrice: [ :int, -1 ]
623
- StoreList: [ :list, [] ]
624
-
625
- UTM/WillOnlyBuy:
626
- __struct_id: 97869
627
- __compact: BaseItem
628
- BaseItem: :int
629
-
630
- UTM/StoreList:
631
- __struct_id: 0
632
- __inline: no
633
- ItemList: [ :list, [] ]
634
-
635
- UTM/StoreList/ItemList:
636
- <<: *uti
637
- __struct_id: 0
638
- __compact: [ InventoryRes, Infinite, Repos_PosX, Repos_Posy ]
639
- __inline: yes
640
- Infinite: [ :byte, 0 ]
641
- InventoryRes: :resref
642
- Repos_PosX: [ :word ]
643
- Repos_Posy: [ :word ]
644
-
645
- UTS: &uts
646
- <<: *ref
647
- <<: *gameobject
648
- <<: *naming
649
- <<: *location
650
- Active: :byte
651
- Continuous: :byte
652
- Elevation: :float
653
- GeneratedType: [ :dword, 0 ]
654
- Hours: :dword
655
- Interval: :dword
656
- IntervalVrtn: :dword
657
- Looping: :byte
658
- MaxDistance: :float
659
- MinDistance: :float
660
- PitchVariation: :float
661
- Positional: :byte
662
- Priority: :byte
663
- Random: :byte
664
- RandomPosition: :byte
665
- RandomRangeX: :float
666
- RandomRangeY: :float
667
- Times: :byte
668
- Volume: :byte
669
- VolumeVrtn: :byte
670
-
671
- Sounds: :list
672
-
673
- __sound_list: &sound_list
674
- __compact: Sound
675
- __struct_id: 0
676
- Sound: :resref
677
-
678
- UTS/Sounds:
679
- <<: *sound_list
680
-
681
- UTT: &utt
682
- <<: *ref
683
- <<: *gameobject
684
- <<: *naming
685
- <<: *trap
686
- <<: *lock
687
- <<: *transition
688
- <<: *location
689
- Type: [ :int, 0 ]
690
-
691
- UTW: &utw
692
- <<: *ref
693
- <<: *gameobject
694
- <<: *naming
695
- <<: *transition
696
- <<: *mapnote
697
- <<: *location
698
- Appearance: :byte
699
-
700
-
701
- ARE: &are
702
- <<: *ref
703
- <<: *events
704
- ChanceLightning: :int
705
- ChanceRain: :int
706
- ChanceSnow: :int
707
- Creator_ID: :int
708
- DayNightCycle: :byte
709
- Expansion_List: [ :list, [] ]
710
- Flags: :dword
711
- FogClipDist: :float
712
- Height: :int
713
- ID: :int
714
- IsNight: :byte
715
- LightingScheme: :byte
716
- LoadScreenID: :word
717
- ModListenCheck: :int
718
- ModSpotCheck: :int
719
- MoonAmbientColor: :dword
720
- MoonDiffuseColor: :dword
721
- MoonFogAmount: :byte
722
- MoonFogColor: :dword
723
- MoonShadows: :byte
724
- Name: :cexolocstr
725
- NoRest: :byte
726
- PlayerVsPlayer: :byte
727
- ShadowOpacity: :byte
728
- SkyBox: :byte
729
- SunAmbientColor: :dword
730
- SunDiffuseColor: :dword
731
- SunFogAmount: :byte
732
- SunFogColor: :dword
733
- SunShadows: :byte
734
- Tileset: :resref
735
- Version: :dword
736
- Width: :int
737
- WindPower: :int
738
-
739
- Tile_List: :list
740
-
741
- ARE/Tile_List:
742
- __struct_id: 1
743
- __compact: [ Tile_AnimLoop1, Tile_AnimLoop2, Tile_AnimLoop3,
744
- Tile_Height, Tile_ID, Tile_MainLight1, Tile_MainLight2,
745
- Tile_Orientation, Tile_SrcLight1, Tile_SrcLight2 ]
746
- __inline: yes
747
- Tile_AnimLoop1: :byte
748
- Tile_AnimLoop2: :byte
749
- Tile_AnimLoop3: :byte
750
- Tile_Height: :int
751
- Tile_ID: :int
752
- Tile_MainLight1: :byte
753
- Tile_MainLight2: :byte
754
- Tile_Orientation: :int
755
- Tile_SrcLight1: :byte
756
- Tile_SrcLight2: :byte
757
-
758
- GIT: &git
759
- 'Creature List': [ :list, [] ]
760
- 'Door List': [ :list, [] ]
761
- 'Encounter List': [ :list, [] ]
762
- 'Placeable List': [ :list, [] ]
763
- 'SoundList': [ :list, [] ]
764
- 'StoreList': [ :list, [] ]
765
- 'TriggerList': [ :list, [] ]
766
- 'WaypointList': [ :list, [] ]
767
- # What is THAT, Bioware?
768
- List: [ :list, [] ]
769
-
770
- GIT/AreaProperties:
771
- __struct_id: 100
772
- AmbientSndDay: :int
773
- AmbientSndDayVol: :int
774
- AmbientSndNight: :int
775
- AmbientSndNitVol: :int
776
- EnvAudio: :int
777
- MusicBattle: :int
778
- MusicDay: :int
779
- MusicDelay: :int
780
- MusicNight: :int
781
-
782
- 'GIT/Creature List':
783
- <<: *utc
784
- 'GIT/Door List':
785
- <<: *utd
786
- 'GIT/Encounter List':
787
- <<: *ute
788
- SpawnPointList: [ :list, [] ]
789
-
790
- 'GIT/Encounter List/Geometry':
791
- __struct_id: 1
792
- __compact: [ X, Y, Z ]
793
- __inline: yes
794
- X: :float
795
- Y: :float
796
- Z: :float
797
-
798
- 'GIT/Encounter List/SpawnPointList':
799
- __struct_id: 2
800
- __inline: yes
801
- __compact: [ X, Y, Z, Orientation ]
802
- <<: *location
803
-
804
- 'GIT/Placeable List':
805
- <<: *utp
806
-
807
- 'GIT/SoundList':
808
- <<: *uts
809
-
810
- 'GIT/SoundList/Sounds':
811
- <<: *sound_list
812
-
813
- 'GIT/StoreList':
814
- <<: *utm
815
-
816
- 'GIT/TriggerList':
817
- <<: *utt
818
- Geometry: [ :list, [] ]
819
-
820
- 'GIT/TriggerList/Geometry':
821
- __struct_id: 3
822
- <<: *geometry
823
-
824
- 'GIT/WaypointList':
825
- <<: *utw
826
-
827
- IFO:
828
- Expansion_Pack: :word
829
- Mod_Area_list: :list
830
- Mod_CacheNSSList: :list
831
- Mod_Creator_ID: :int
832
- Mod_CustomTlk: :cexostr
833
- Mod_CutSceneList: [ :list, [] ]
834
- Mod_DawnHour: :byte
835
- Mod_Description: :cexolocstr
836
- Mod_DuskHour: :byte
837
- Mod_Entry_Area: :resref
838
- Mod_Entry_Dir_X: :float
839
- Mod_Entry_Dir_Y: :float
840
- Mod_Entry_X: :float
841
- Mod_Entry_Y: :float
842
- Mod_Entry_Z: :float
843
- Mod_Expan_List: [ :list, [] ]
844
- Mod_GVar_List: [ :list, [] ]
845
- Mod_ID: :void
846
- Mod_IsSaveGame: [ :byte, 0 ]
847
- Mod_MinGameVer: :cexostr
848
- Mod_MinPerHour: :byte
849
- Mod_Name: :cexolocstr
850
- Mod_OnAcquirItem: :resref
851
- Mod_OnActvtItem: :resref
852
- Mod_OnClientEntr: :resref
853
- Mod_OnClientLeav: :resref
854
- Mod_OnCutsnAbort: :resref
855
- Mod_OnHeartbeat: :resref
856
- Mod_OnModLoad: :resref
857
- Mod_OnModStart: :resref
858
- Mod_OnPlrDeath: :resref
859
- Mod_OnPlrDying: :resref
860
- Mod_OnPlrEqItm: :resref
861
- Mod_OnPlrLvlUp: :resref
862
- Mod_OnPlrRest: :resref
863
- Mod_OnPlrUnEqItm: :resref
864
- Mod_OnSpawnBtnDn: :resref
865
- Mod_OnUnAqreItem: :resref
866
- Mod_OnUsrDefined: :resref
867
- Mod_StartDay: :byte
868
- Mod_StartHour: :byte
869
- Mod_StartMonth: :byte
870
- Mod_StartMovie: :resref
871
- Mod_StartYear: :dword
872
- Mod_Tag: [ :cexostr, "MODULE" ]
873
- Mod_Version: :dword
874
- Mod_XPScale: :byte
875
- VarTable: [ :list, [] ]
876
- Mod_HakList: [ :list, [] ]
877
-
878
- IFO/Mod_Area_list:
879
- __struct_id: 6
880
- __compact: Area_Name
881
- __inline: no
882
- Area_Name: :resref
883
-
884
- IFO/Mod_CacheNSSList:
885
- __struct_id: 9
886
- __compact: ResRef
887
- __inline: no
888
- ResRef: :resref
889
-
890
- IFO/Mod_HakList:
891
- __struct_id: 8
892
- __compact: Mod_Hak
893
- __inline: no
894
- Mod_Hak: :cexostr
895
-
896
- FAC:
897
- FactionList: :list
898
- RepList: :list
899
-
900
- FAC/FactionList:
901
- __struct_id: iterative
902
- __compact: [ FactionGlobal, FactionName, FactionParentID ]
903
- __inline: yes
904
- FactionGlobal: :word
905
- FactionName: :cexostr
906
- FactionParentID: :dword
907
-
908
- FAC/RepList:
909
- __struct_id: iterative
910
- __compact: [ FactionID1, FactionID2, FactionRep ]
911
- __inline: yes
912
- FactionID1: :dword
913
- FactionID2: :dword
914
- FactionRep: :dword
915
-
916
- JRL:
917
- Categories: :list
918
-
919
- JRL/Categories:
920
- __struct_id: iterative
921
- Name: :cexolocstr
922
- Comment: [ :cexostr, "" ]
923
- EntryList: :list
924
- Picture: [ :word, 0xffff ]
925
- Priority: :dword
926
- Tag: [ :cexostr, "" ]
927
- XP: [ :dword, 0 ]
928
-
929
- JRL/Categories/EntryList:
930
- __struct_id: iterative
931
- # __compact: [ End, ID, Text ]
932
- # __inline: yes
933
- End: :word
934
- ID: :dword
935
- Text: :cexolocstr
936
-
937
- DLG:
938
- DelayEntry: [ :dword, 0 ]
939
- DelayReply: [ :dword, 0 ]
940
- EndConverAbort: :resref
941
- EndConversation: :resref
942
- NumWords: :dword
943
- PreventZoomIn: :byte
944
-
945
- EntryList: :list
946
- ReplyList: :list
947
- StartingList: :list
948
-
949
-
950
- 'DLG/(Entry|Reply)List':
951
- __struct_id: iterative
952
- AnimLoop: [ :byte, 1 ]
953
- Animation: [ :dword, 0 ]
954
- Comment: [ :cexostr, "" ]
955
- Delay: [ :dword, *OBJECT_SELF ]
956
- Quest: [ :cexostr, "" ]
957
- Script: [ :resref, "" ]
958
- Sound: [ :resref, "" ]
959
- Text: [ :cexolocstr, {} ]
960
-
961
- DLG/EntryList:
962
- ReplistList: :list
963
- Speaker: [ :cexostr, "" ]
964
-
965
- DLG/ReplyList:
966
- EntriesList: :list
967
-
968
- 'DLG/(Entry|Reply)List/(Replies|Entries)List':
969
- __compact: [ Active, Index, IsChild, LinkComment ]
970
- __inline: yes
971
- __struct_id: iterative
972
- Active: :resref
973
- Index: :dword
974
- IsChild: :byte
975
- LinkComment: [ :cexostr, "" ]
976
-
977
- DLG/StartingList:
978
- __compact: [ Active, Index ]
979
- __inline: yes
980
- __struct_id: iterative
981
- Active: :resref
982
- Index: :dword