ScummVM API documentation
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
27namespace Ultima {
28namespace Nuvie {
29
30/*
31base_obj_n
32frames_per_direction
33tiles_per_direction
34tiles_per_frame
35tile_start_offset
36dead_obj_n
37dead_frame_n // 255 means same frame as they died
38can_laydown
39can_sit
40tile_type
41movetype
42twitch_rand
43body_armor_class
44*/
45
46const 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
133static const struct {
134 uint16 obj_n;
135 uint8 readiable_location;
136 uint8 defence;
137 uint8 attack;
138}
139readiable_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
237const CombatType u6combat_hand = {OBJ_U6_NOTHING, {0}, {4}, 1, ATTACK_TYPE_HAND, 0, OBJ_U6_NOTHING, false};
238const CombatType u6combat_ship_cannon = {OBJ_U6_SHIP, {0}, {30}, 4, ATTACK_TYPE_MISSLE, TILE_U6_LIGHTNING, OBJ_U6_NOTHING, false };
239
240const 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