forked from DFHack/df-structures
-
Notifications
You must be signed in to change notification settings - Fork 0
/
df.projectile.xml
110 lines (92 loc) · 3.62 KB
/
df.projectile.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
<data-definition>
<enum-type type-name='projectile_type'>
<enum-item name='Item'/>
<enum-item name='Unit'/>
<enum-item name='Magic'/>
</enum-type>
<struct-type type-name='proj_list_link'>
<pointer name='item' type-name='projectile'/>
<pointer name='prev' type-name='proj_list_link'/>
<pointer name='next' type-name='proj_list_link'/>
</struct-type>
<bitfield-type type-name='projectile_flags'>
<flag-bit name='no_impact_destroy'/>
<flag-bit name='has_hit_ground'/>
<flag-bit name='bouncing'/>
<flag-bit name='high_flying'/>
<flag-bit name='piercing'/>
<flag-bit name='to_be_deleted'/>
<flag-bit name='unk6'/>
<flag-bit name='unk7'/>
<flag-bit name='parabolic'/>
<flag-bit name='unk9'/>
<flag-bit name='unk10'/>
<flag-bit name='no_collide'/>
<flag-bit name='safe_landing'/>
</bitfield-type>
<class-type type-name='projectile' original-name='projst' key-field='id'>
<pointer name='link' type-name='proj_list_link'/>
<int32_t name='id'/>
<pointer name='firer' type-name='unit'/>
<compound name='origin_pos' type-name='coord'/>
<compound name='target_pos' type-name='coord'/>
<compound name='cur_pos' type-name='coord'/>
<compound name='prev_pos' type-name='coord'/>
<int32_t name='distance_flown'/>
<int32_t name='fall_threshold'/>
<int32_t name='min_hit_distance'/>
<int32_t name='min_ground_distance'/>
<compound name='flags' type-name='projectile_flags'/>
<int16_t name='fall_counter' comment='counts down from delay to 0, then it moves'/>
<int16_t name='fall_delay'/>
<int32_t name='hit_rating'/>
<int32_t name='unk21'/>
<int32_t name='unk22'/>
<int32_t name='bow_id' ref-target='item'/>
-- Parabolic projectile info:
<int32_t name="unk_item_id" ref-target='item'/>
<int32_t name="unk_unit_id" ref-target='unit'/>
<padding size='4' comment='v0.40.01'/>
<int32_t name="pos_x"/>
<int32_t name="pos_y"/>
<int32_t name="pos_z"/>
<int32_t name="speed_x"/>
<int32_t name="speed_y"/>
<int32_t name="speed_z"/>
<int32_t name="accel_x"/>
<int32_t name="accel_y"/>
<int32_t name="accel_z"/>
<virtual-methods>
<vmethod ret-type='projectile_type' name='getType'/>
<vmethod ret-type='bool' name='checkImpact'>
<bool name='noDamageFloor'/>
</vmethod>
<vmethod ret-type='bool' name='checkMovement'/>
<vmethod name='read_file'>
<pointer name='file' type-name='file_compressorst'/>
<int32_t name='loadversion'/>
</vmethod>
<vmethod name='write_file'> <pointer name='file' type-name='file_compressorst'/> </vmethod>
<vmethod>
<pointer/>
</vmethod>
<vmethod ret-type='bool' name='isObjectLost'/>
<vmethod is-destructor='true'/>
</virtual-methods>
</class-type>
<class-type type-name='proj_itemst' inherits-from='projectile'>
<pointer name='item' type-name='item'/>
</class-type>
<class-type type-name='proj_unitst' inherits-from='projectile'>
<pointer name='unit' type-name='unit' comment='?'/>
</class-type>
<class-type type-name='proj_magicst' inherits-from='projectile'>
<pointer name='unk' comment='?'/>
</class-type>
</data-definition>
<!--
Local Variables:
indent-tabs-mode: nil
nxml-child-indent: 4
End:
-->