From bdef58ca99e4b4239bbd98b7057218231625e378 Mon Sep 17 00:00:00 2001 From: Jude Brown Date: Thu, 31 Dec 2009 22:29:01 +1000 Subject: Remove hand crossbows. This involves a lot of changes, and also increments TAG_MAJOR_VERSION to 13. The unrand "Sniper" is now a crossbow (hopefully its current title is still suitable for this task), and thieves no longer start with hand crossbows (but still retain darts). Wanderers with crossbow skills will now get a crossbow and bolts. This may be overpowered, but I didn't want to change the code here too much. It can always be adjusted. This removes the "quiver_type" enum from enum.h, and uses NUM_AMMO in the player.h quiver vector instead. Random elves that generated with hand crossbows before no longer do so, and this has not been replaced by normal crossbows. I hope that's everything! --- crawl-ref/source/art-data.h | 4 +- crawl-ref/source/art-data.txt | 4 +- crawl-ref/source/artefact.cc | 5 +-- crawl-ref/source/dat/descript/items.txt | 6 +-- crawl-ref/source/dat/trove.des | 2 +- crawl-ref/source/enum.h | 11 ------ crawl-ref/source/item_use.cc | 12 ------ crawl-ref/source/itemprop-enum.h | 18 ++++----- crawl-ref/source/itemprop.cc | 8 +--- crawl-ref/source/makeitem.cc | 13 +------ crawl-ref/source/mon-act.cc | 5 --- crawl-ref/source/mon-gear.cc | 3 +- crawl-ref/source/newgame.cc | 41 ++++++--------------- crawl-ref/source/player.h | 3 +- crawl-ref/source/quiver.cc | 8 +--- crawl-ref/source/quiver.h | 2 +- crawl-ref/source/rltiles/UNUSED/hand_crossbow.png | Bin 0 -> 657 bytes crawl-ref/source/rltiles/UNUSED/hand_crossbow2.png | Bin 0 -> 742 bytes crawl-ref/source/rltiles/dc-item.txt | 2 - .../source/rltiles/item/weapon/hand_crossbow.png | Bin 657 -> 0 bytes .../source/rltiles/item/weapon/hand_crossbow2.png | Bin 742 -> 0 bytes crawl-ref/source/shopping.cc | 4 -- crawl-ref/source/tags.h | 2 +- crawl-ref/source/tilepick.cc | 5 --- 24 files changed, 37 insertions(+), 121 deletions(-) create mode 100644 crawl-ref/source/rltiles/UNUSED/hand_crossbow.png create mode 100644 crawl-ref/source/rltiles/UNUSED/hand_crossbow2.png delete mode 100644 crawl-ref/source/rltiles/item/weapon/hand_crossbow.png delete mode 100644 crawl-ref/source/rltiles/item/weapon/hand_crossbow2.png diff --git a/crawl-ref/source/art-data.h b/crawl-ref/source/art-data.h index 29f93896bf..ae161b0bbb 100644 --- a/crawl-ref/source/art-data.h +++ b/crawl-ref/source/art-data.h @@ -672,7 +672,7 @@ /* UNRAND_SNIPER */ { "hand crossbow \"Sniper\"", "black crossbow", - OBJ_WEAPONS, WPN_HAND_CROSSBOW, +10, +0, ETC_DARK, 0, + OBJ_WEAPONS, WPN_CROSSBOW, +10, +0, ETC_DARK, 0, UNRAND_FLAG_NONE, { SPWPN_VENOM, 0, 0, 0, 0, 0, @@ -682,7 +682,7 @@ 0, 0, 0, 0, 0, 0, }, - "A hand crossbow made of some black material.", + "A crossbow made of some black material.", "", "", NULL, NULL, NULL, { NULL }, NULL, diff --git a/crawl-ref/source/art-data.txt b/crawl-ref/source/art-data.txt index 792b3fcf45..4d142615a1 100644 --- a/crawl-ref/source/art-data.txt +++ b/crawl-ref/source/art-data.txt @@ -588,14 +588,14 @@ DESC_END: This powerful staff used to belong to the leader of the Guild of NAME: hand crossbow "Sniper" APPEAR: black crossbow -OBJ: OBJ_WEAPONS/WPN_HAND_CROSSBOW +OBJ: OBJ_WEAPONS/WPN_CROSSBOW PLUS: +10/+0 COLOUR: ETC_DARK TILE: urand_sniper TILE_EQ: sniper BRAND: SPWPN_VENOM BOOL: seeinv -DESC: A hand crossbow made of some black material. +DESC: A crossbow made of some black material. NAME: longbow "Piercer" APPEAR: very long metal bow diff --git a/crawl-ref/source/artefact.cc b/crawl-ref/source/artefact.cc index 71ae7b27cd..228dc51339 100644 --- a/crawl-ref/source/artefact.cc +++ b/crawl-ref/source/artefact.cc @@ -773,11 +773,8 @@ void static _get_randart_properties(const item_def &item, proprt[ARTP_BRAND] = SPWPN_NORMAL; } - if (atype == WPN_CROSSBOW && one_chance_in(5) - || atype == WPN_HAND_CROSSBOW && one_chance_in(10)) - { + if (atype == WPN_CROSSBOW && one_chance_in(5)) proprt[ARTP_BRAND] = SPWPN_ELECTROCUTION; - } } } diff --git a/crawl-ref/source/dat/descript/items.txt b/crawl-ref/source/dat/descript/items.txt index 2b1dc4c4ea..4c528ae6d2 100644 --- a/crawl-ref/source/dat/descript/items.txt +++ b/crawl-ref/source/dat/descript/items.txt @@ -461,7 +461,7 @@ It causes massive damage when used for backstabbing. %%%% dart -A small throwing weapon. It can also be fired from a hand crossbow. +A small throwing weapon. %%%% deck of changes @@ -644,10 +644,6 @@ hand axe A small axe designed for either hand combat or throwing. %%%% -hand crossbow - -A small crossbow, for firing darts. -%%%% helm A piece of metal headgear. diff --git a/crawl-ref/source/dat/trove.des b/crawl-ref/source/dat/trove.des index 224cc528d8..abfa17dd61 100644 --- a/crawl-ref/source/dat/trove.des +++ b/crawl-ref/source/dat/trove.des @@ -500,7 +500,7 @@ MONS: dragon skeleton ITEM: animal skin good_item / any armour good_item ITEM: gold dragon hide / storm dragon hide / dragon hide / troll hide / any armour good_item ITEM: arrow good_item / dart good_item / bolt good_item / any missile good_item -ITEM: bow good_item / crossbow good_item / hand crossbow good_item / any weapon good_item +ITEM: bow good_item / crossbow good_item / any weapon good_item SHUFFLE: 123 SHUFFLE: defg : trove_setup_features(_G) diff --git a/crawl-ref/source/enum.h b/crawl-ref/source/enum.h index 9882f7616c..eed1964627 100644 --- a/crawl-ref/source/enum.h +++ b/crawl-ref/source/enum.h @@ -180,17 +180,6 @@ enum attribute_type NUM_ATTRIBUTES }; -enum quiver_type -{ - QUIVER_THROW, // no launcher wielded -> darts, stones, ... - QUIVER_BOW, // wielded bow -> arrows - QUIVER_SLING, // wielded sling -> stones, sling bullets - QUIVER_CROSSBOW, // wielded crossbow -> bolts - QUIVER_HAND_CROSSBOW, // wielded hand crossbow -> darts - QUIVER_BLOWGUN, // wielded blowgun -> needles - NUM_QUIVER -}; - enum beam_type // beam[].flavour { BEAM_NONE, // 0 diff --git a/crawl-ref/source/item_use.cc b/crawl-ref/source/item_use.cc index 07aa928eb4..b5e4a27897 100644 --- a/crawl-ref/source/item_use.cc +++ b/crawl-ref/source/item_use.cc @@ -2327,10 +2327,6 @@ void throw_noise(actor* act, const bolt &pbolt, const item_def &ammo) level = 1; msg = "You hear a whirring sound."; break; - case WPN_HAND_CROSSBOW: - level = 3; - msg = "You hear a small twanging sound."; - break; case WPN_BOW: level = 5; msg = "You hear a twanging sound."; @@ -2747,13 +2743,6 @@ bool throw_it(bolt &pbolt, int throw_2, bool teleport, int acc_bonus, dice_mult = dice_mult * (22 + random2(1 + effSkill)) / 22; - if (lnchType == WPN_HAND_CROSSBOW) - { - exHitBonus -= 2; - dice_mult = dice_mult * 26 / 30; - } - break; - default: break; } @@ -2813,7 +2802,6 @@ bool throw_it(bolt &pbolt, int throw_2, bool teleport, int acc_bonus, { switch (lnchType) { - case WPN_HAND_CROSSBOW: case WPN_CROSSBOW: if (returning && !one_chance_in(1 + skill_bump(SK_CROSSBOWS))) did_return = true; diff --git a/crawl-ref/source/itemprop-enum.h b/crawl-ref/source/itemprop-enum.h index 44ef53c65c..9947f0cbbd 100644 --- a/crawl-ref/source/itemprop-enum.h +++ b/crawl-ref/source/itemprop-enum.h @@ -396,49 +396,49 @@ enum stave_type enum weapon_type { - WPN_CLUB, // 0 + WPN_CLUB, WPN_WHIP, WPN_HAMMER, WPN_MACE, WPN_FLAIL, - WPN_MORNINGSTAR, // 5 + WPN_MORNINGSTAR, WPN_SPIKED_FLAIL, WPN_DIRE_FLAIL, WPN_EVENINGSTAR, WPN_GREAT_MACE, - WPN_DAGGER, // 10 + WPN_DAGGER, WPN_QUICK_BLADE, WPN_SHORT_SWORD, WPN_SABRE, WPN_FALCHION, - WPN_LONG_SWORD, // 15 + WPN_LONG_SWORD, WPN_SCIMITAR, WPN_GREAT_SWORD, WPN_HAND_AXE, WPN_WAR_AXE, - WPN_BROAD_AXE, // 20 + WPN_BROAD_AXE, WPN_BATTLEAXE, WPN_EXECUTIONERS_AXE, WPN_SPEAR, WPN_TRIDENT, - WPN_HALBERD, // 25 + WPN_HALBERD, WPN_GLAIVE, WPN_BARDICHE, WPN_BLOWGUN, - WPN_HAND_CROSSBOW, - WPN_CROSSBOW, // 30 + WPN_CROSSBOW, + // Was hand crossbows, they are gone. WPN_BOW, WPN_LONGBOW, WPN_MAX_RACIAL = WPN_LONGBOW, WPN_ANKUS, WPN_DEMON_WHIP, - WPN_GIANT_CLUB, // 35 + WPN_GIANT_CLUB, WPN_GIANT_SPIKED_CLUB, WPN_KNIFE, diff --git a/crawl-ref/source/itemprop.cc b/crawl-ref/source/itemprop.cc index bf47f3ab96..8e673e24a9 100644 --- a/crawl-ref/source/itemprop.cc +++ b/crawl-ref/source/itemprop.cc @@ -342,9 +342,6 @@ static weapon_def Weapon_prop[NUM_WEAPONS] = { WPN_SLING, "sling", 0, 2, 11, 20, 1, SK_SLINGS, HANDS_ONE, SIZE_LITTLE, MI_STONE, false, DAMV_NON_MELEE, 10 }, - { WPN_HAND_CROSSBOW, "hand crossbow", 3, 4, 15, 70, 5, - SK_CROSSBOWS, HANDS_HALF, SIZE_SMALL, MI_DART, false, - DAMV_NON_MELEE, 10 }, { WPN_CROSSBOW, "crossbow", 5, 4, 15, 150, 8, SK_CROSSBOWS, HANDS_TWO, SIZE_MEDIUM, MI_BOLT, false, DAMV_NON_MELEE, 10 }, @@ -430,7 +427,7 @@ void init_properties() { // Compare with enum comments, to catch changes. COMPILE_CHECK(NUM_ARMOURS == 37, c1); - COMPILE_CHECK(NUM_WEAPONS == 56, c2); + COMPILE_CHECK(NUM_WEAPONS == 55, c2); COMPILE_CHECK(NUM_MISSILES == 9, c3); COMPILE_CHECK(NUM_FOODS == 22, c4); @@ -743,7 +740,6 @@ void set_equip_race( item_def &item, unsigned long flags ) && item.sub_type != WPN_LONG_SWORD) || weapon_skill(item) == SK_POLEARMS || item.sub_type == WPN_BLOWGUN - || item.sub_type == WPN_HAND_CROSSBOW || item.sub_type == WPN_BOW || item.sub_type == WPN_LONGBOW) { @@ -776,7 +772,6 @@ void set_equip_race( item_def &item, unsigned long flags ) { case OBJ_WEAPONS: if (item.sub_type == WPN_QUICK_BLADE - || item.sub_type == WPN_HAND_CROSSBOW || item.sub_type == WPN_LONGBOW) return; break; @@ -1248,7 +1243,6 @@ int weapon_rarity( int w_type ) return (5); case WPN_BROAD_AXE: - case WPN_HAND_CROSSBOW: case WPN_SPIKED_FLAIL: case WPN_WHIP: return (4); diff --git a/crawl-ref/source/makeitem.cc b/crawl-ref/source/makeitem.cc index e1e8e3bc6e..eac23e371e 100644 --- a/crawl-ref/source/makeitem.cc +++ b/crawl-ref/source/makeitem.cc @@ -1129,11 +1129,6 @@ static item_status_flag_type _determine_weapon_race(const item_def& item, rc = ISFLAG_DWARVEN; break; - case WPN_HAND_CROSSBOW: - if (one_chance_in(3)) - rc = ISFLAG_ELVEN; - break; - case WPN_BLOWGUN: if (one_chance_in(6)) rc = ISFLAG_ELVEN; @@ -1409,7 +1404,6 @@ static brand_type _determine_weapon_brand(const item_def& item, int item_level) case WPN_SLING: - case WPN_HAND_CROSSBOW: if (coinflip()) break; // **** possible intentional fall through here **** @@ -1433,12 +1427,9 @@ static brand_type _determine_weapon_brand(const item_def& item, int item_level) else rc = SPWPN_SPEED; - if ((item.sub_type == WPN_HAND_CROSSBOW - || item.sub_type == WPN_CROSSBOW) - && one_chance_in(5)) - { + if (item.sub_type == WPN_CROSSBOW && one_chance_in(5)) rc = SPWPN_ELECTROCUTION; - } + break; } diff --git a/crawl-ref/source/mon-act.cc b/crawl-ref/source/mon-act.cc index 067d59d3a6..2984379968 100644 --- a/crawl-ref/source/mon-act.cc +++ b/crawl-ref/source/mon-act.cc @@ -1218,11 +1218,6 @@ static bool _mons_throw(struct monsters *monster, struct bolt &pbolt, hitMult = 70; damMult = 30; break; - case WPN_HAND_CROSSBOW: - baseHit = 2; - hitMult = 50; - damMult = 20; - break; case WPN_SLING: baseHit = 10; hitMult = 40; diff --git a/crawl-ref/source/mon-gear.cc b/crawl-ref/source/mon-gear.cc index 640a875051..0dbae25aab 100644 --- a/crawl-ref/source/mon-gear.cc +++ b/crawl-ref/source/mon-gear.cc @@ -383,8 +383,7 @@ static item_make_species_type _give_weapon(monsters *mon, int level, item.base_type = OBJ_WEAPONS; item.sub_type = random_choose_weighted( 22, WPN_LONG_SWORD, 22, WPN_SHORT_SWORD, 17, WPN_SCIMITAR, - 17, WPN_BOW, 17, WPN_HAND_CROSSBOW, - 5, WPN_LONGBOW, + 17, WPN_BOW, 5, WPN_LONGBOW, 0); break; diff --git a/crawl-ref/source/newgame.cc b/crawl-ref/source/newgame.cc index 2d4dbd4a04..bf827f60c7 100644 --- a/crawl-ref/source/newgame.cc +++ b/crawl-ref/source/newgame.cc @@ -1810,7 +1810,7 @@ static bool _give_wanderer_weapon(int & slot, int wpn_skill, int plus) break; case SK_CROSSBOWS: - you.inv[slot].sub_type = WPN_HAND_CROSSBOW; + you.inv[slot].sub_type = WPN_CROSSBOW; break; } @@ -2586,39 +2586,23 @@ static void _wanderer_cover_equip_holes(int & slot) } } - // The player gets a stack of darts if they have a hand - // crossbow/darts skill but no blowgun. - bool need_darts = false; + // The player needs a stack of bolts if they have a crossbow. + bool need_bolts = false; for (int i = 0; i < slot; ++i) { if (you.inv[i].base_type == OBJ_WEAPONS - && you.inv[i].sub_type == WPN_HAND_CROSSBOW) + && you.inv[i].sub_type == WPN_CROSSBOW) { - need_darts = true; + need_bolts = true; break; } } - if (!need_darts && you.skills[SK_DARTS]) + if (need_bolts) { - need_darts = true; - - for (int i = 0; i < slot; ++i) - { - if (you.inv[i].base_type == OBJ_WEAPONS - && you.inv[i].sub_type == WPN_BLOWGUN) - { - need_darts = false; - break; - } - } - } - - if (need_darts) - { - _newgame_make_item(slot, EQ_NONE, OBJ_MISSILES, MI_DART, -1, - 8 + roll_dice(2, 8)); + _newgame_make_item(slot, EQ_NONE, OBJ_MISSILES, MI_BOLT, -1, + 15 + random2avg(21, 5)); slot++; } @@ -4540,12 +4524,9 @@ bool _give_items_skills() case JOB_THIEF: _newgame_make_item(0, EQ_WEAPON, OBJ_WEAPONS, WPN_SHORT_SWORD); - _newgame_make_item(1, EQ_NONE, OBJ_WEAPONS, WPN_HAND_CROSSBOW); - - _newgame_make_item(2, EQ_BODY_ARMOUR, OBJ_ARMOUR, ARM_ROBE); - _newgame_make_item(3, EQ_CLOAK, OBJ_ARMOUR, ARM_CLOAK); - - _newgame_make_item(4, EQ_NONE, OBJ_MISSILES, MI_DART, -1, 20); + _newgame_make_item(1, EQ_BODY_ARMOUR, OBJ_ARMOUR, ARM_ROBE); + _newgame_make_item(2, EQ_CLOAK, OBJ_ARMOUR, ARM_CLOAK); + _newgame_make_item(3, EQ_NONE, OBJ_MISSILES, MI_DART, -1, 20); // Spriggans used to get a rod of striking, but now that anyone // can get one when playing an Artificer, this is no longer diff --git a/crawl-ref/source/player.h b/crawl-ref/source/player.h index 9c64409023..e9b59b2364 100644 --- a/crawl-ref/source/player.h +++ b/crawl-ref/source/player.h @@ -9,6 +9,7 @@ #define PLAYER_H #include "actor.h" +#include "quiver.h" #include "itemprop-enum.h" #include "species.h" @@ -142,7 +143,7 @@ public: int berserk_penalty; // penalty for moving while berserk FixedVector attribute; - FixedVector quiver; // default items for quiver + FixedVector quiver; // default items for quiver FixedVector sacrifice_value; undead_state_type is_undead; diff --git a/crawl-ref/source/quiver.cc b/crawl-ref/source/quiver.cc index f31b7b76dd..e9a24c534c 100644 --- a/crawl-ref/source/quiver.cc +++ b/crawl-ref/source/quiver.cc @@ -162,8 +162,7 @@ void choose_item_for_quiver() t == AMMO_BLOWGUN ? "blowgun" : t == AMMO_SLING ? "sling" : t == AMMO_BOW ? "bow" : - t == AMMO_CROSSBOW ? "crossbow" - : "hand crossbow"); + "crossbow"); return; } else if (slot == you.equip[EQ_WEAPON] @@ -202,8 +201,7 @@ void choose_item_for_quiver() t == AMMO_BLOWGUN ? "blowguns" : t == AMMO_SLING ? "slings" : t == AMMO_BOW ? "bows" : - t == AMMO_CROSSBOW ? "crossbows" - : "hand crossbows"); + "crossbows"); } // Notification that item was fired with 'f'. @@ -606,8 +604,6 @@ static ammo_t _get_weapon_ammo_type(const item_def* weapon) return AMMO_BOW; case WPN_CROSSBOW: return AMMO_CROSSBOW; - case WPN_HAND_CROSSBOW: - return AMMO_HAND_CROSSBOW; default: return AMMO_THROW; } diff --git a/crawl-ref/source/quiver.h b/crawl-ref/source/quiver.h index 3bf6154af0..02a9f3d6b4 100644 --- a/crawl-ref/source/quiver.h +++ b/crawl-ref/source/quiver.h @@ -19,7 +19,7 @@ enum ammo_t AMMO_BOW, // wielded bow -> arrows AMMO_SLING, // wielded sling -> stones, sling bullets AMMO_CROSSBOW, // wielded crossbow -> bolts - AMMO_HAND_CROSSBOW, // wielded hand crossbow -> darts + // Used to be hand crossbows AMMO_BLOWGUN, // wielded blowgun -> needles NUM_AMMO }; diff --git a/crawl-ref/source/rltiles/UNUSED/hand_crossbow.png b/crawl-ref/source/rltiles/UNUSED/hand_crossbow.png new file mode 100644 index 0000000000..92071c1040 Binary files /dev/null and b/crawl-ref/source/rltiles/UNUSED/hand_crossbow.png differ diff --git a/crawl-ref/source/rltiles/UNUSED/hand_crossbow2.png b/crawl-ref/source/rltiles/UNUSED/hand_crossbow2.png new file mode 100644 index 0000000000..821a9cd5bc Binary files /dev/null and b/crawl-ref/source/rltiles/UNUSED/hand_crossbow2.png differ diff --git a/crawl-ref/source/rltiles/dc-item.txt b/crawl-ref/source/rltiles/dc-item.txt index 8d775bcb29..af4d8b3c83 100644 --- a/crawl-ref/source/rltiles/dc-item.txt +++ b/crawl-ref/source/rltiles/dc-item.txt @@ -104,8 +104,6 @@ bow WPN_BOW bow2 crossbow WPN_CROSSBOW crossbow2 -hand_crossbow WPN_HAND_CROSSBOW -hand_crossbow2 ##Pole quarterstaff WPN_QUARTERSTAFF diff --git a/crawl-ref/source/rltiles/item/weapon/hand_crossbow.png b/crawl-ref/source/rltiles/item/weapon/hand_crossbow.png deleted file mode 100644 index 92071c1040..0000000000 Binary files a/crawl-ref/source/rltiles/item/weapon/hand_crossbow.png and /dev/null differ diff --git a/crawl-ref/source/rltiles/item/weapon/hand_crossbow2.png b/crawl-ref/source/rltiles/item/weapon/hand_crossbow2.png deleted file mode 100644 index 821a9cd5bc..0000000000 Binary files a/crawl-ref/source/rltiles/item/weapon/hand_crossbow2.png and /dev/null differ diff --git a/crawl-ref/source/shopping.cc b/crawl-ref/source/shopping.cc index 2b5d582316..ac20af1433 100644 --- a/crawl-ref/source/shopping.cc +++ b/crawl-ref/source/shopping.cc @@ -954,10 +954,6 @@ unsigned int item_value( item_def item, bool ident ) case WPN_BLESSED_SCIMITAR: valued += 50; - case WPN_HAND_CROSSBOW: - valued += 51; - break; - case WPN_HALBERD: valued += 52; break; diff --git a/crawl-ref/source/tags.h b/crawl-ref/source/tags.h index f9c3959299..915c6d1f80 100644 --- a/crawl-ref/source/tags.h +++ b/crawl-ref/source/tags.h @@ -40,7 +40,7 @@ enum tag_file_type // file types supported by tag system enum tag_major_version { TAG_MAJOR_START = 5, - TAG_MAJOR_VERSION = 12 + TAG_MAJOR_VERSION = 13 }; // Minor version will be reset to zero when major version changes. diff --git a/crawl-ref/source/tilepick.cc b/crawl-ref/source/tilepick.cc index 6085e31d63..95b7609e5a 100644 --- a/crawl-ref/source/tilepick.cc +++ b/crawl-ref/source/tilepick.cc @@ -109,7 +109,6 @@ static int _bow_offset(const monsters *mon) case WPN_BOW: case WPN_LONGBOW: case WPN_CROSSBOW: - case WPN_HAND_CROSSBOW: return (0); default: return (1); @@ -1302,9 +1301,6 @@ static int _tileidx_weapon_base(const item_def &item) case WPN_CROSSBOW: return TILE_WPN_CROSSBOW; - case WPN_HAND_CROSSBOW: - return TILE_WPN_HAND_CROSSBOW; - case WPN_SPEAR: return TILE_WPN_SPEAR; @@ -4002,7 +3998,6 @@ int tilep_equ_weapon(const item_def &item) case WPN_SLING: return TILEP_HAND1_SLING; case WPN_BOW: return TILEP_HAND1_BOW2; case WPN_CROSSBOW: return TILEP_HAND1_CROSSBOW; - case WPN_HAND_CROSSBOW: return TILEP_HAND1_CROSSBOW; case WPN_BLOWGUN: return TILEP_HAND1_BLOWGUN; case WPN_LONGBOW: return TILEP_HAND1_BOW3; -- cgit v1.2.3-54-g00ecf