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/BINARIES +1 -1
- data/CHANGELOG +39 -1
- data/CHEATSHEET +20 -6
- data/README +29 -12
- data/Rakefile +3 -3
- data/SETTINGS +3 -69
- data/bin/nwn-dsl +2 -7
- data/lib/nwn/all.rb +1 -0
- data/lib/nwn/erf.rb +19 -192
- data/lib/nwn/gff.rb +0 -1
- data/lib/nwn/gff/field.rb +53 -14
- data/lib/nwn/gff/reader.rb +2 -2
- data/lib/nwn/gff/struct.rb +27 -9
- data/lib/nwn/res.rb +275 -0
- data/lib/nwn/settings.rb +0 -4
- data/lib/nwn/tlk.rb +1 -1
- data/lib/nwn/twoda.rb +36 -17
- data/lib/nwn/yaml.rb +13 -198
- data/spec/cexolocstr_spec.rb +15 -0
- data/spec/erf_spec.rb +87 -0
- data/spec/field_spec.rb +21 -0
- data/spec/gff_spec.rb +22 -0
- data/spec/res_spec.rb +59 -0
- data/spec/spec_helper.rb +24 -0
- data/spec/struct_spec.rb +61 -0
- data/spec/tlk_spec.rb +47 -0
- data/spec/twoda_spec.rb +146 -0
- data/spec/wellformed_gff.binary +0 -0
- metadata +13 -8
- data/DATA_STRUCTURES +0 -50
- data/TYPE_VALUE_INFERRING +0 -93
- data/data/gff-common-nwn1.yaml +0 -982
- data/lib/nwn/infer.rb +0 -125
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}
|
data/data/gff-common-nwn1.yaml
DELETED
@@ -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
|