forked from DFHack/df-structures
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdf.art.xml
128 lines (113 loc) · 6.44 KB
/
df.art.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
<data-definition>
<struct-type type-name='art_image_ref' comment='not actually a real structure'>
<int32_t name='id' ref-target='art_image_chunk'/>
<int16_t name='subid' ref-target='art_image' aux-value='$$.id'/>
<int32_t name='civ_id' ref-target='historical_entity' since='v0.34.01'/>
<int32_t name='site_id' ref-target='world_site' since='v0.34.01'/>
</struct-type>
<struct-type type-name='poetic_form_subject_target' is-union='true'>
<compound name='Histfig'>
<int32_t name='subject_histfig' ref-target='historical_figure'/>
</compound>
<compound name='Concept'>
<enum name='subject_topic' base-type='int32_t' type-name='sphere_type'/>
</compound>
</struct-type>
<enum-type type-name='scale_type' base-type='int32_t'> bay12: ScaleFoundationType
<enum-item name='Octave' comment="The octave is divided into X steps of even length"/>
<enum-item name='Variable' comment="The octave is divided into notes at varying intervals, approximated by quartertones"/>
<enum-item name='PerfectFourth' comment="The perfect fourth interval is divided into steps of even length"/>
</enum-type>
<struct-type type-name='chord' original-name='scale_chordst'>
<stl-string name='name'/>
<static-array name='notes' type-name='int32_t' count='5' comment="chord_size entries used. Refers to the notes indices"/>
<int32_t name='chord_size'/>
<bitfield base-type='uint32_t' name='flags'> bay12: SCALE_CHORD_FLAG_*
<flag-bit comment='lower'/>
</bitfield>
</struct-type>
<enum-type type-name='scale_construction_type' base-type='int32_t'> bay12: ScaleConstructionType
<enum-item name='ByInterval'/>
<enum-item name='PerfectFifthJoinedPerfectFourth'/>
<enum-item name='PerfectFifthHalfMajorThird'/>
<enum-item name='TritoneHalfPercentFourth'/>
<enum-item name='PerfectFourthWholePerfectFourth'/>
</enum-type>
<struct-type type-name='named_scale' original-name='scale_constructionst'>
<enum name='type' type-name='scale_construction_type'/>
<stl-string name='name'/>
<static-array name='degrees' type-name='int32_t' count='7' comment="indices into the (not necessarily named) notes of the scale"/>
<int32_t name='degrees_used' comment="elements used in array above"/>
<static-array name='chord_index' type-name='int32_t' count='2'/>
</struct-type>
<enum-type type-name='scale_naming_type' base-type='int32_t'> bay12: ScaleNamingType
<enum-item name='EveryNote'/>
<enum-item name='PreferredNotes'/>
<enum-item name='EveryNoteAfterConstructionByDegree'/>
<enum-item name='PreferredNoteAfterConstructionByDegree'/>
</enum-type>
<struct-type type-name='scale_namingst'>
<enum name='type' type-name='scale_naming_type'/>
<static-array name='name' type-name='stl-string' count='25'/>
<static-array name='abreviation' type-name='stl-string' count='25'/>
<static-array name='number' type-name='int32_t' count='25'/>
<int32_t name='length' comment='number of elements of the arrays above used'/>
</struct-type>
<struct-type type-name='scale' instance-vector='$global.world.scales.all' key-field='id'>
<int32_t name='id'/>
<bitfield name='flags' base-type='uint32_t'> bay12: SCALE_FLAG_*
<flag-bit name='tonic_note_fixed_at_performance' comment='moveable_tonic'/>
</bitfield>
<enum name='type' type-name='scale_type' base-type='int32_t'/>
<static-array name='quartertones_used' type-name='int32_t' count='25' comment="Quartertone corresponding note matches. Scale_length elements are used when type = Variable. Unused elements uninitialized"/>
<int32_t name='scale_length' comment="Number of notes in the scale. When type = Variable this is the number of used indices pointing out their placement."/>
<stl-vector name='chords' pointer-type='chord'/>
<stl-vector name='scales' pointer-type='named_scale' comment="Note that the top level scale doesn't have a name. These seem to be named scales using the unnamed scale's notes as their foundation"/>
<compound name='notes' type-name='scale_namingst'/>
</struct-type>
<struct-type type-name='rhythm' instance-vector='$global.world.rhythms.all' key-field='id'>
<int32_t name='id'/>
<stl-vector name='patterns' pointer-type='rhythm_pattern'/>
<stl-vector name='sub_rhythms' pointer-type='sub_rhythm'/>
<bitfield name='flags' base-type='uint32_t'> bay12: RHYTHM_FLAG_*
<flag-bit name='fundamental_polyrhythm'/>
<flag-bit name='fundamental_polymeter'/>
</bitfield>
</struct-type>
<bitfield-type type-name='beat_flag' base-type='uint32_t'> bay12: RHYTHM_BEAT_FLAG_*
<flag-bit name='PrimaryAccent'/>
<flag-bit name='Accent'/>
<flag-bit name='Regular'/>
<flag-bit name='Early'/>
<flag-bit name='Late'/>
</bitfield-type>
<struct-type type-name='rhythm_barst'>
<pointer name='beat' is-array='true' type-name='beat_flag' comment="Length as per length field"/>
<int32_t name='length'/>
</struct-type>
<struct-type type-name='rhythm_pattern' original-name='rhythm_patternst'>
<stl-string name='name'/>
<stl-vector name='bars' pointer-type='rhythm_barst'/>
<pointer name='beat_name' type-name='stl-string' is-array='true' comment="length as per length field"/>
<pointer name='beat_abbreviation' type-name='stl-string' is-array='true' comment="length as per length field"/>
<int32_t name='length'/>
</struct-type>
<bitfield-type type-name='rhythm_construction_pattern_flag' base-type='uint32_t'> bay12: RHYTHM_CONSTRUCTION_PATTERN_FLAG_*
<flag-bit name='Primary'/>
<flag-bit name='Secondary'/>
</bitfield-type>
<struct-type type-name='sub_rhythm' original-name='rhythm_constructionst'>
<stl-string name='name'/>
<stl-vector name='patterns' type-name='int32_t' comment="indices into patterns"/>
<stl-vector name='pattern_flags' type-name='rhythm_construction_pattern_flag' comment="Same length as patterns"/>
<bitfield name='flags' base-type='uint32_t'> bay12: RHYTHM_CONSTRUCTION_FLAG_*
<flag-bit name='polymetric'/>
</bitfield>
</struct-type>
</data-definition>
<!--
Local Variables:
indent-tabs-mode: nil
nxml-child-indent: 4
End:
-->