ScummVM API documentation
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
u6_actor_types.h
1 /* ScummVM - Graphic Adventure Engine
2  *
3  * ScummVM is the legal property of its developers, whose names
4  * are too numerous to list here. Please refer to the COPYRIGHT
5  * file distributed with this source distribution.
6  *
7  * This program is free software: you can redistribute it and/or modify
8  * it under the terms of the GNU General Public License as published by
9  * the Free Software Foundation, either version 3 of the License, or
10  * (at your option) any later version.
11  *
12  * This program is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15  * GNU General Public License for more details.
16  *
17  * You should have received a copy of the GNU General Public License
18  * along with this program. If not, see <http://www.gnu.org/licenses/>.
19  *
20  */
21 
22 #ifndef ULTIMA_ULTIMA6_ACTORS_U6_ACTOR_TYPES_H
23 #define ULTIMA_ULTIMA6_ACTORS_U6_ACTOR_TYPES_H
24 
25 #include "ultima/nuvie/actors/u6_actor.h"
26 
27 namespace Ultima {
28 namespace Nuvie {
29 
30 /*
31 base_obj_n
32 frames_per_direction
33 tiles_per_direction
34 tiles_per_frame
35 tile_start_offset
36 dead_obj_n
37 dead_frame_n // 255 means same frame as they died
38 can_laydown
39 can_sit
40 tile_type
41 movetype
42 twitch_rand
43 body_armor_class
44 */
45 
46 const U6ActorType u6ActorTypes[] = {
47 // 4x1 tile actors AC
48  {OBJ_U6_INSECTS, 0, 0, 1, 0, OBJ_U6_NOTHING, 0, false, false, ACTOR_ST, MOVETYPE_U6_AIR_LOW, 2, 0},
49  {OBJ_U6_GIANT_SQUID, 0, 0, 1, 0, OBJ_U6_NOTHING, 0, false, false, ACTOR_ST, MOVETYPE_U6_WATER_HIGH, 50, 0},
50  {OBJ_U6_GHOST, 0, 0, 1, 0, OBJ_U6_NOTHING, 0, false, false, ACTOR_ST, MOVETYPE_U6_LAND, 45, 0},
51  {OBJ_U6_ACID_SLUG, 0, 0, 1, 0, OBJ_U6_NOTHING, 0, false, false, ACTOR_ST, MOVETYPE_U6_LAND, 50, 0},
52  {OBJ_U6_WISP, 0, 0, 1, 0, OBJ_U6_NOTHING, 0, false, false, ACTOR_ST, MOVETYPE_U6_AIR_LOW, 50, 0},
53  {OBJ_U6_GIANT_BAT, 0, 0, 1, 0, OBJ_U6_BLOOD, 0, false, false, ACTOR_ST, MOVETYPE_U6_AIR_LOW, 30, 0},
54  {OBJ_U6_REAPER, 0, 0, 1, 0, OBJ_U6_REAPER, 255, false, false, ACTOR_ST, MOVETYPE_U6_LAND, 40, 4},
55  {OBJ_U6_GREMLIN, 0, 0, 1, 0, OBJ_U6_BLOOD, 0, false, false, ACTOR_ST, MOVETYPE_U6_LAND, 20, 0},
56  {OBJ_U6_GAZER, 0, 0, 1, 0, OBJ_U6_BLOOD, 0, false, false, ACTOR_ST, MOVETYPE_U6_LAND, 30, 0},
57  {OBJ_U6_BIRD, 0, 0, 1, 0, OBJ_U6_BLOOD, 0, false, false, ACTOR_ST, MOVETYPE_U6_AIR_LOW, 20, 0},
58  {OBJ_U6_CORPSER, 0, 0, 1, 0, OBJ_U6_BLOOD, 0, false, false, ACTOR_ST, MOVETYPE_U6_LAND, 50, 0},
59  {OBJ_U6_RABBIT, 0, 0, 1, 0, OBJ_U6_BLOOD, 0, false, false, ACTOR_ST, MOVETYPE_U6_LAND, 25, 0},
60  {OBJ_U6_ROT_WORMS, 0, 0, 1, 0, OBJ_U6_BLOOD, 0, false, false, ACTOR_ST, MOVETYPE_U6_LAND, 50, 0},
61  {OBJ_U6_HYDRA, 0, 0, 1, 0, OBJ_U6_BLOOD, 0, false, false, ACTOR_MT, MOVETYPE_U6_LAND, 5, 0},
62  {OBJ_U6_MOUSE, 1, 1, 1, 0, OBJ_U6_MOUSE, 255, false, false, ACTOR_ST, MOVETYPE_U6_LAND, 0, 0},
63  {OBJ_U6_CAT, 1, 1, 1, 0, OBJ_U6_CAT, 255, false, false, ACTOR_ST, MOVETYPE_U6_LAND, 40, 0},
64  {OBJ_U6_TANGLE_VINE, 1, 1, 1, 0, OBJ_U6_TANGLE_VINE, 255, false, false, ACTOR_ST, MOVETYPE_U6_LAND, 0, 4},
65 
66 // 4x2
67  {OBJ_U6_SEA_SERPENT, 2, 2, 1, 0, OBJ_U6_NOTHING, 0, false, false, ACTOR_ST, MOVETYPE_U6_WATER_HIGH, 60, 2},
68  {OBJ_U6_GIANT_RAT, 2, 2, 1, 0, OBJ_U6_BLOOD, 0, false, false, ACTOR_ST, MOVETYPE_U6_LAND, 40, 0},
69  {OBJ_U6_SHEEP, 2, 2, 1, 0, OBJ_U6_BLOOD, 0, false, false, ACTOR_ST, MOVETYPE_U6_LAND, 35, 0},
70  {OBJ_U6_DOG, 2, 2, 1, 0, OBJ_U6_DOG, 255, false, false, ACTOR_ST, MOVETYPE_U6_LAND, 35, 0},
71  {OBJ_U6_DEER, 2, 2, 1, 0, OBJ_U6_DEER, 255, false, false, ACTOR_ST, MOVETYPE_U6_LAND, 20, 0},
72  {OBJ_U6_WOLF, 2, 2, 1, 0, OBJ_U6_WOLF, 255, false, false, ACTOR_ST, MOVETYPE_U6_LAND, 20, 0},
73  {OBJ_U6_SNAKE, 2, 2, 1, 0, OBJ_U6_BLOOD, 0, false, false, ACTOR_ST, MOVETYPE_U6_LAND, 20, 1},
74  {OBJ_U6_GIANT_SPIDER, 2, 2, 1, 0, OBJ_U6_BLOOD, 0, false, false, ACTOR_ST, MOVETYPE_U6_LAND, 20, 0},
75  {OBJ_U6_DRAKE, 2, 2, 1, 0, OBJ_U6_DRAKE, 255, false, false, ACTOR_ST, MOVETYPE_U6_AIR_LOW, 15, 4},
76  {OBJ_U6_MONGBAT, 2, 2, 1, 0, OBJ_U6_MONGBAT, 255, false, false, ACTOR_ST, MOVETYPE_U6_LAND, 15, 4},
77  {OBJ_U6_DAEMON, 2, 2, 1, 0, OBJ_U6_DEAD_BODY, 0, true, false, ACTOR_ST, MOVETYPE_U6_LAND, 30, 10},
78  {OBJ_U6_SKELETON, 2, 2, 1, 0, OBJ_U6_DEAD_BODY, 9, true, false, ACTOR_ST, MOVETYPE_U6_LAND, 30, 0},
79  {OBJ_U6_HEADLESS, 2, 2, 1, 0, OBJ_U6_DEAD_BODY, 1, true, false, ACTOR_ST, MOVETYPE_U6_LAND, 30, 2},
80  {OBJ_U6_TROLL, 2, 2, 1, 0, OBJ_U6_DEAD_BODY, 0, true, false, ACTOR_ST, MOVETYPE_U6_LAND, 40, 4},
81  {OBJ_U6_CYCLOPS, 2, 8, 4, 0, OBJ_U6_DEAD_CYCLOPS, 3, true, false, ACTOR_QT, MOVETYPE_U6_LAND, 45, 4},
82 
83 // 4x3 fix dead frame
84  {OBJ_U6_WINGED_GARGOYLE, 3, 12, 4, 0, OBJ_U6_DEAD_GARGOYLE, 3, true, false, ACTOR_QT, MOVETYPE_U6_LAND, 60, 10},
85  {OBJ_U6_GARGOYLE, 3, 3, 1, 0, OBJ_U6_DEAD_BODY, 0, true, false, ACTOR_ST, MOVETYPE_U6_LAND, 50, 5},
86 
87 // 4x5
88  {OBJ_U6_FIGHTER, 3, 4, 1, 0, OBJ_U6_DEAD_BODY, 6, true, true, ACTOR_ST, MOVETYPE_U6_LAND, 50, 0},
89  {OBJ_U6_SWASHBUCKLER, 3, 4, 1, 0, OBJ_U6_DEAD_BODY, 5, true, true, ACTOR_ST, MOVETYPE_U6_LAND, 50, 0},
90  {OBJ_U6_MAGE, 3, 4, 1, 0, OBJ_U6_DEAD_BODY, 3, true, true, ACTOR_ST, MOVETYPE_U6_LAND, 50, 0},
91  {OBJ_U6_VILLAGER, 3, 4, 1, 0, OBJ_U6_DEAD_BODY, 2, true, true, ACTOR_ST, MOVETYPE_U6_LAND, 50, 0},
92  {OBJ_U6_MERCHANT, 3, 4, 1, 0, OBJ_U6_DEAD_BODY, 2, true, true, ACTOR_ST, MOVETYPE_U6_LAND, 50, 0},
93  {OBJ_U6_CHILD, 3, 4, 1, 0, OBJ_U6_DEAD_BODY, 8, true, true, ACTOR_ST, MOVETYPE_U6_LAND, 30, 0},
94  {OBJ_U6_GUARD, 3, 4, 1, 0, OBJ_U6_DEAD_BODY, 4, true, true, ACTOR_ST, MOVETYPE_U6_LAND, 35, 0},
95  {OBJ_U6_JESTER, 3, 4, 1, 0, OBJ_U6_DEAD_BODY, 8, true, true, ACTOR_ST, MOVETYPE_U6_LAND, 5, 0},
96  {OBJ_U6_PEASANT, 3, 4, 1, 0, OBJ_U6_DEAD_BODY, 5, true, true, ACTOR_ST, MOVETYPE_U6_LAND, 50, 0}, //not sure of stats here
97  {OBJ_U6_FARMER, 3, 4, 1, 0, OBJ_U6_DEAD_BODY, 8, true, true, ACTOR_ST, MOVETYPE_U6_LAND, 40, 0},
98  {OBJ_U6_MUSICIAN, 3, 4, 1, 0, OBJ_U6_DEAD_BODY, 7, true, true, ACTOR_ST, MOVETYPE_U6_LAND, 50, 0},
99  {OBJ_U6_WOMAN, 3, 4, 1, 0, OBJ_U6_DEAD_BODY, 3, true, true, ACTOR_ST, MOVETYPE_U6_LAND, 50, 0},
100  {OBJ_U6_LORD_BRITISH, 3, 4, 1, 0, OBJ_U6_DEAD_BODY, 2, true, true, ACTOR_ST, MOVETYPE_U6_LAND, 60, 30}, //does LB have a dead frame!? ;)
101  {OBJ_U6_AVATAR, 3, 4, 1, 0, OBJ_U6_DEAD_BODY, 7, true, true, ACTOR_ST, MOVETYPE_U6_LAND, 50, 0},
102 
103  {OBJ_U6_MUSICIAN_PLAYING, 2, 2, 1, 0, OBJ_U6_NOTHING, 0, false, true, ACTOR_ST, MOVETYPE_U6_LAND, 3, 0},
104 
105  {OBJ_U6_SHIP, 1, 2, 2, 8, OBJ_U6_NOTHING, 0, false, false, ACTOR_MT, MOVETYPE_U6_WATER_HIGH, 0, 30},
106  {OBJ_U6_SKIFF, 1, 1, 1, 0, OBJ_U6_NOTHING, 0, false, false, ACTOR_ST, MOVETYPE_U6_WATER_LOW, 0, 0},
107  {OBJ_U6_INFLATED_BALLOON, 0, 0, 0, 4, OBJ_U6_NOTHING, 0, false, false, ACTOR_ST, MOVETYPE_U6_AIR_LOW, 0, 0},
108 
109  {OBJ_U6_GIANT_SCORPION, 2, 2, 1, 0, OBJ_U6_BLOOD, 0, false, false, ACTOR_DT, MOVETYPE_U6_LAND, 30, 3},
110  {OBJ_U6_GIANT_ANT, 2, 2, 1, 0, OBJ_U6_BLOOD, 0, false, false, ACTOR_DT, MOVETYPE_U6_LAND, 30, 3},
111  {OBJ_U6_COW, 2, 2, 1, 0, OBJ_U6_BLOOD, 0, false, false, ACTOR_DT, MOVETYPE_U6_LAND, 40, 0},
112  {OBJ_U6_ALLIGATOR, 2, 2, 1, 0, OBJ_U6_BLOOD, 0, false, false, ACTOR_DT, MOVETYPE_U6_LAND, 30, 6},
113  {OBJ_U6_HORSE, 2, 2, 1, 0, OBJ_U6_HORSE_CARCASS, 1, false, false, ACTOR_DT, MOVETYPE_U6_LAND, 20, 0},
114  {OBJ_U6_HORSE_WITH_RIDER, 2, 2, 1, 0, OBJ_U6_BLOOD, 0, false, false, ACTOR_DT, MOVETYPE_U6_LAND, 20, 0},
115 
116  {OBJ_U6_DRAGON, 2, 2, 1, 0, OBJ_U6_NOTHING, 0, false, false, ACTOR_MT, MOVETYPE_U6_AIR_LOW, 10, 12},
117  {OBJ_U6_SILVER_SERPENT, 1, 2, 1, 0, OBJ_U6_NOTHING, 0, false, false, ACTOR_MT, MOVETYPE_U6_LAND, 0, 15},
118 
119 // 2x1 FIXME
120  {OBJ_U6_RAFT, 0, 0, 0, 1, OBJ_U6_NOTHING, 0, false, false, ACTOR_ST, MOVETYPE_U6_WATER_LOW, 0, 0}, // FIX might need to fix this
121  {OBJ_U6_TANGLE_VINE_POD, 2, 2, 1, 0, OBJ_U6_TANGLE_VINE_POD, 255, false, false, ACTOR_ST, MOVETYPE_U6_NONE, 20, 4}, // Movement type is probably a temp fix
122 
123  {OBJ_U6_SLIME, 0, 0, 0, 0, OBJ_U6_NOTHING, 0, false, false, ACTOR_ST, MOVETYPE_U6_LAND, 0, 0},
124 
125 // 1x1
126  {OBJ_U6_CHEST, 0, 0, 0, 1, OBJ_U6_CHEST, 0, false, false, ACTOR_ST, MOVETYPE_U6_LAND, 5, 0},
127 
128  {OBJ_U6_NOTHING, 0, 0, 0, 1, OBJ_U6_NOTHING, 0, false, false, ACTOR_ST, MOVETYPE_U6_LAND, 0, 0} //end indicator
129 };
130 
131 // A list of readiable objects and their readied location.
132 
133 static const struct {
134  uint16 obj_n;
135  uint8 readiable_location;
136  uint8 defence;
137  uint8 attack;
138 }
139 readiable_objects[] = {
140  {OBJ_U6_LEATHER_HELM, ACTOR_HEAD, 1, 0 },
141  {OBJ_U6_CHAIN_COIF, ACTOR_HEAD, 2, 0 },
142  {OBJ_U6_IRON_HELM, ACTOR_HEAD, 3, 0 },
143  {OBJ_U6_SPIKED_HELM, ACTOR_HEAD, 3, 4 },
144  {OBJ_U6_WINGED_HELM, ACTOR_HEAD, 2, 0 },
145  {OBJ_U6_BRASS_HELM, ACTOR_HEAD, 2, 0 },
146  {OBJ_U6_GARGOYLE_HELM, ACTOR_HEAD, 3, 0 },
147  {OBJ_U6_MAGIC_HELM, ACTOR_HEAD, 5, 0 },
148  {OBJ_U6_WOODEN_SHIELD, ACTOR_ARM, 2, 0 },
149  {OBJ_U6_CURVED_HEATER, ACTOR_ARM, 3, 0 },
150  {OBJ_U6_WINGED_SHIELD, ACTOR_ARM, 3, 0 },
151  {OBJ_U6_KITE_SHIELD, ACTOR_ARM, 3, 0 },
152  {OBJ_U6_SPIKED_SHIELD, ACTOR_ARM, 2, 4 },
153  {OBJ_U6_BLACK_SHIELD, ACTOR_ARM, 2, 0 },
154  {OBJ_U6_DOOR_SHIELD, ACTOR_ARM, 4, 0 },
155  {OBJ_U6_MAGIC_SHIELD, ACTOR_ARM, 5, 0 },
156  {OBJ_U6_CLOTH_ARMOUR, ACTOR_BODY, 1, 0 },
157  {OBJ_U6_LEATHER_ARMOR, ACTOR_BODY, 2, 0 },
158  {OBJ_U6_RING_MAIL, ACTOR_BODY, 3, 0 },
159  {OBJ_U6_SCALE_MAIL, ACTOR_BODY, 4, 0 },
160  {OBJ_U6_CHAIN_MAIL, ACTOR_BODY, 5, 0 },
161  {OBJ_U6_PLATE_MAIL, ACTOR_BODY, 7, 0 },
162  {OBJ_U6_MAGIC_ARMOUR, ACTOR_BODY, 10, 0 },
163  {OBJ_U6_SPIKED_COLLAR, ACTOR_NECK, 2, 0 },
164  {OBJ_U6_GUILD_BELT, ACTOR_BODY, 0, 0 },
165  {OBJ_U6_GARGOYLE_BELT, ACTOR_BODY, 0, 0 },
166  {OBJ_U6_LEATHER_BOOTS, ACTOR_FOOT, 0, 0 },
167  {OBJ_U6_SWAMP_BOOTS, ACTOR_FOOT, 0, 0 },
168 
169  {OBJ_U6_SLING, ACTOR_ARM, 0, 6 },
170  {OBJ_U6_CLUB, ACTOR_ARM, 0, 8 },
171  {OBJ_U6_MAIN_GAUCHE, ACTOR_ARM, 1, 8 },
172  {OBJ_U6_SPEAR, ACTOR_ARM, 0, 10 },
173  {OBJ_U6_THROWING_AXE, ACTOR_ARM, 0, 10 },
174  {OBJ_U6_DAGGER, ACTOR_ARM, 0, 6 },
175  {OBJ_U6_MACE, ACTOR_ARM, 0, 15 },
176  {OBJ_U6_MORNING_STAR, ACTOR_ARM, 0, 15 },
177  {OBJ_U6_BOW, ACTOR_ARM_2, 0, 10 },
178  {OBJ_U6_CROSSBOW, ACTOR_ARM_2, 0, 12 },
179  {OBJ_U6_SWORD, ACTOR_ARM, 0, 15 },
180  {OBJ_U6_TWO_HANDED_HAMMER, ACTOR_ARM_2, 0, 20 },
181  {OBJ_U6_TWO_HANDED_AXE, ACTOR_ARM_2, 0, 20 },
182  {OBJ_U6_TWO_HANDED_SWORD, ACTOR_ARM_2, 0, 20 },
183  {OBJ_U6_HALBERD, ACTOR_ARM_2, 0, 30 },
184  {OBJ_U6_GLASS_SWORD, ACTOR_ARM, 0, 255 },
185  {OBJ_U6_BOOMERANG, ACTOR_ARM, 0, 8 },
186  {OBJ_U6_TRIPLE_CROSSBOW, ACTOR_ARM_2, 0, 12 * 3 }, // ?? how to handle this
187 
188  {OBJ_U6_MAGIC_BOW, ACTOR_ARM_2, 0, 20 },
189  {OBJ_U6_SPELLBOOK, ACTOR_ARM, 0, 0 },
190 
191  {OBJ_U6_ANKH_AMULET, ACTOR_NECK, 0, 0 },
192  {OBJ_U6_SNAKE_AMULET, ACTOR_NECK, 0, 0 },
193  {OBJ_U6_AMULET_OF_SUBMISSION, ACTOR_NECK, 0, 0 },
194 
195  {OBJ_U6_STAFF, ACTOR_ARM, 0, 4 },
196  {OBJ_U6_LIGHTNING_WAND, ACTOR_ARM, 0, 30 },
197  {OBJ_U6_FIRE_WAND, ACTOR_ARM, 0, 20 },
198  {OBJ_U6_STORM_CLOAK, ACTOR_BODY, 0, 0 },
199  {OBJ_U6_RING, ACTOR_HAND, 0, 0 },
200  {OBJ_U6_FLASK_OF_OIL, ACTOR_ARM, 0, 4 },
201 
202  {OBJ_U6_TORCH, ACTOR_ARM, 0, 0 },
203 
204  {OBJ_U6_SCYTHE, ACTOR_ARM, 0, 0 },
205  {OBJ_U6_PITCHFORK, ACTOR_ARM, 0, 0 },
206  {OBJ_U6_RAKE, ACTOR_ARM, 0, 0 },
207  {OBJ_U6_PICK, ACTOR_ARM, 0, 0 },
208  {OBJ_U6_SHOVEL, ACTOR_ARM, 0, 0 },
209  {OBJ_U6_HOE, ACTOR_ARM, 0, 0 },
210 
211  {OBJ_U6_ROLLING_PIN, ACTOR_ARM, 0, 2 },
212 
213  {OBJ_U6_CLEAVER, ACTOR_ARM, 0, 4 },
214  {OBJ_U6_KNIFE, ACTOR_ARM, 0, 4 },
215 
216  {OBJ_U6_TUNIC, ACTOR_BODY, 0, 0 },
217  {OBJ_U6_DRESS, ACTOR_BODY, 0, 0 },
218  {OBJ_U6_PANTS, ACTOR_BODY, 0, 0 },
219 
220  {OBJ_U6_LUTE, ACTOR_ARM, 0, 0 },
221 
222  {OBJ_U6_PLIERS, ACTOR_ARM, 0, 0 },
223  {OBJ_U6_HAMMER, ACTOR_ARM, 0, 0 },
224 
225  {OBJ_U6_PROTECTION_RING, ACTOR_HAND, 0, 0 },
226  {OBJ_U6_REGENERATION_RING, ACTOR_HAND, 0, 0 },
227  {OBJ_U6_INVISIBILITY_RING, ACTOR_HAND, 0, 0 },
228 
229  {OBJ_U6_ZU_YLEM, ACTOR_ARM, 0, 0},
230 
231  {OBJ_U6_NOTHING, ACTOR_NOT_READIABLE, 0, 0 }
232 }; // this last element terminates the array.
233 
234 
235 // obj_n, defence, attack, hit_range, attack_type, missle_tile_num, thrown_obj_n, breaks_on_contact
236 
237 const CombatType u6combat_hand = {OBJ_U6_NOTHING, {0}, {4}, 1, ATTACK_TYPE_HAND, 0, OBJ_U6_NOTHING, false};
238 const CombatType u6combat_ship_cannon = {OBJ_U6_SHIP, {0}, {30}, 4, ATTACK_TYPE_MISSLE, TILE_U6_LIGHTNING, OBJ_U6_NOTHING, false };
239 
240 const CombatType u6combat_objects[] = {
241  {OBJ_U6_LEATHER_HELM, {1}, {0}, 0, ATTACK_TYPE_NONE, 0, OBJ_U6_NOTHING, false },
242  {OBJ_U6_CHAIN_COIF, {2}, {0}, 0, ATTACK_TYPE_NONE, 0, OBJ_U6_NOTHING, false },
243  {OBJ_U6_IRON_HELM, {3}, {0}, 0, ATTACK_TYPE_NONE, 0, OBJ_U6_NOTHING, false },
244  {OBJ_U6_SPIKED_HELM, {3}, {4}, 1, ATTACK_TYPE_HAND, 0, OBJ_U6_NOTHING, false },
245  {OBJ_U6_WINGED_HELM, {2}, {0}, 0, ATTACK_TYPE_NONE, 0, OBJ_U6_NOTHING, false },
246  {OBJ_U6_BRASS_HELM, {2}, {0}, 0, ATTACK_TYPE_NONE, 0, OBJ_U6_NOTHING, false },
247  {OBJ_U6_GARGOYLE_HELM, {3}, {0}, 0, ATTACK_TYPE_NONE, 0, OBJ_U6_NOTHING, false },
248  {OBJ_U6_MAGIC_HELM, {5}, {0}, 0, ATTACK_TYPE_NONE, 0, OBJ_U6_NOTHING, false },
249  {OBJ_U6_WOODEN_SHIELD, {2}, {0}, 0, ATTACK_TYPE_NONE, 0, OBJ_U6_NOTHING, false },
250  {OBJ_U6_CURVED_HEATER, {3}, {0}, 0, ATTACK_TYPE_NONE, 0, OBJ_U6_NOTHING, false },
251  {OBJ_U6_WINGED_SHIELD, {3}, {0}, 0, ATTACK_TYPE_NONE, 0, OBJ_U6_NOTHING, false },
252  {OBJ_U6_KITE_SHIELD, {3}, {0}, 0, ATTACK_TYPE_NONE, 0, OBJ_U6_NOTHING, false },
253  {OBJ_U6_SPIKED_SHIELD, {2}, {4}, 1, ATTACK_TYPE_HAND, 0, OBJ_U6_NOTHING, false },
254  {OBJ_U6_BLACK_SHIELD, {2}, {0}, 0, ATTACK_TYPE_NONE, 0, OBJ_U6_NOTHING, false },
255  {OBJ_U6_DOOR_SHIELD, {4}, {0}, 0, ATTACK_TYPE_NONE, 0, OBJ_U6_NOTHING, false },
256  {OBJ_U6_MAGIC_SHIELD, {5}, {0}, 0, ATTACK_TYPE_NONE, 0, OBJ_U6_NOTHING, false },
257  {OBJ_U6_CLOTH_ARMOUR, {1}, {0}, 0, ATTACK_TYPE_NONE, 0, OBJ_U6_NOTHING, false },
258  {OBJ_U6_LEATHER_ARMOR, {2}, {0}, 0, ATTACK_TYPE_NONE, 0, OBJ_U6_NOTHING, false },
259  {OBJ_U6_RING_MAIL, {3}, {0}, 0, ATTACK_TYPE_NONE, 0, OBJ_U6_NOTHING, false },
260  {OBJ_U6_SCALE_MAIL, {4}, {0}, 0, ATTACK_TYPE_NONE, 0, OBJ_U6_NOTHING, false },
261  {OBJ_U6_CHAIN_MAIL, {5}, {0}, 0, ATTACK_TYPE_NONE, 0, OBJ_U6_NOTHING, false },
262  {OBJ_U6_PLATE_MAIL, {7}, {0}, 0, ATTACK_TYPE_NONE, 0, OBJ_U6_NOTHING, false },
263  {OBJ_U6_MAGIC_ARMOUR, {10}, {0}, 0, ATTACK_TYPE_NONE, 0, OBJ_U6_NOTHING, false },
264  {OBJ_U6_SPIKED_COLLAR, {2}, {0}, 0, ATTACK_TYPE_NONE, 0, OBJ_U6_NOTHING, false },
265 
266  {OBJ_U6_SLING, {0}, {6}, 3, ATTACK_TYPE_MISSLE, TILE_U6_SLING_STONE, OBJ_U6_NOTHING, false },
267  {OBJ_U6_CLUB, {0}, {8}, 1, ATTACK_TYPE_HAND, 0, OBJ_U6_NOTHING, false },
268  {OBJ_U6_MAIN_GAUCHE, {1}, {8}, 1, ATTACK_TYPE_HAND, 0, OBJ_U6_NOTHING, false },
269  {OBJ_U6_SPEAR, {0}, {10}, 4, ATTACK_TYPE_THROWN, 0, OBJ_U6_SPEAR, false },
270  {OBJ_U6_THROWING_AXE, {0}, {10}, 3, ATTACK_TYPE_THROWN, 0, OBJ_U6_THROWING_AXE, false },
271  {OBJ_U6_DAGGER, {0}, {6}, 2, ATTACK_TYPE_THROWN, 0, OBJ_U6_DAGGER, false }, //melee weapon if at range 1
272  {OBJ_U6_MACE, {0}, {15}, 1, ATTACK_TYPE_HAND, 0, OBJ_U6_NOTHING, false },
273  {OBJ_U6_MORNING_STAR, {0}, {15}, 2, ATTACK_TYPE_HAND, 0, OBJ_U6_NOTHING, false },
274  {OBJ_U6_BOW, {0}, {10}, 5, ATTACK_TYPE_MISSLE, TILE_U6_ARROW, OBJ_U6_ARROW, false },
275  {OBJ_U6_CROSSBOW, {0}, {12}, 0, ATTACK_TYPE_MISSLE, TILE_U6_BOLT, OBJ_U6_BOLT, false },
276  {OBJ_U6_SWORD, {0}, {15}, 1, ATTACK_TYPE_HAND, 0, OBJ_U6_NOTHING, false },
277  {OBJ_U6_TWO_HANDED_HAMMER, {0}, {20}, 1, ATTACK_TYPE_HAND, 0, OBJ_U6_NOTHING, false },
278  {OBJ_U6_TWO_HANDED_AXE, {0}, {20}, 1, ATTACK_TYPE_HAND, 0, OBJ_U6_NOTHING, false },
279  {OBJ_U6_TWO_HANDED_SWORD, {0}, {20}, 1, ATTACK_TYPE_HAND, 0, OBJ_U6_NOTHING, false },
280  {OBJ_U6_HALBERD, {0}, {30}, 2, ATTACK_TYPE_HAND, 0, OBJ_U6_NOTHING, false },
281  {OBJ_U6_GLASS_SWORD, {0}, {255}, 1, ATTACK_TYPE_HAND, 0, OBJ_U6_NOTHING, true },
282  {OBJ_U6_BOOMERANG, {0}, {8}, 0, ATTACK_TYPE_THROWN, 0, OBJ_U6_BOOMERANG, false },
283  {OBJ_U6_TRIPLE_CROSSBOW, {0}, {12 * 3}, 0, ATTACK_TYPE_MISSLE, TILE_U6_BOLT, OBJ_U6_NOTHING, false }, // ?? how to handle this
284 
285  {OBJ_U6_MAGIC_BOW, {0}, {20}, 0, ATTACK_TYPE_MISSLE, TILE_U6_ARROW, OBJ_U6_NOTHING, false },
286 
287  {OBJ_U6_STAFF, {0}, {4}, 0, ATTACK_TYPE_HAND, 0, OBJ_U6_NOTHING, false },
288  {OBJ_U6_LIGHTNING_WAND, {0}, {30}, 0, ATTACK_TYPE_MISSLE, TILE_U6_LIGHTNING, OBJ_U6_NOTHING, false },
289  {OBJ_U6_FIRE_WAND, {0}, {20}, 0, ATTACK_TYPE_MISSLE, TILE_U6_FIREBALL, OBJ_U6_NOTHING, false },
290  {OBJ_U6_FLASK_OF_OIL, {0}, {4}, 0, ATTACK_TYPE_THROWN, 0, OBJ_U6_FLASK_OF_OIL, false },
291 
292  {OBJ_U6_ROLLING_PIN, {0}, {2}, 1, ATTACK_TYPE_HAND, 0, OBJ_U6_NOTHING, false },
293 
294  {OBJ_U6_CLEAVER, {0}, {4}, 1, ATTACK_TYPE_HAND, 0, OBJ_U6_NOTHING, false },
295  {OBJ_U6_KNIFE, {0}, {4}, 1, ATTACK_TYPE_HAND, 0, OBJ_U6_NOTHING, false },
296 
297  {OBJ_U6_PROTECTION_RING, {5}, {0}, 0, ATTACK_TYPE_NONE, 0, OBJ_U6_NOTHING, false },
298 
299  {OBJ_U6_ZU_YLEM, {0}, {1}, 0, ATTACK_TYPE_HAND, 0, OBJ_U6_NOTHING, false },
300 
301  {OBJ_U6_NOTHING, {0}, {0} , 0, ATTACK_TYPE_NONE, 0, OBJ_U6_NOTHING, false} // this last element terminates the array.
302 };
303 
304 } // End of namespace Nuvie
305 } // End of namespace Ultima
306 
307 #endif
Definition: detection.h:27