From 62f7040f14b39e67042be98f951575fbc819e84e Mon Sep 17 00:00:00 2001 From: ennewalker Date: Sat, 5 Jan 2008 01:33:53 +0000 Subject: Tiles! git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@3194 c06c8d41-db1a-0410-9941-cceddc491573 --- crawl-ref/source/AppHdr.h | 12 +- crawl-ref/source/acr.cc | 77 +- crawl-ref/source/beam.cc | 39 +- crawl-ref/source/chardump.cc | 4 + crawl-ref/source/cio.cc | 14 +- crawl-ref/source/cio.h | 10 + crawl-ref/source/command.cc | 4 + crawl-ref/source/debug.cc | 7 +- crawl-ref/source/defines.h | 28 + crawl-ref/source/describe.cc | 22 +- crawl-ref/source/direct.cc | 65 +- crawl-ref/source/direct.h | 6 + crawl-ref/source/enum.h | 9 + crawl-ref/source/externs.h | 26 + crawl-ref/source/files.cc | 7 + crawl-ref/source/food.cc | 10 +- crawl-ref/source/food.h | 4 +- crawl-ref/source/guic-win.cc | 999 +++++ crawl-ref/source/guic-x11.cc | 1052 ++++++ crawl-ref/source/guic.cc | 773 ++++ crawl-ref/source/guic.h | 464 +++ crawl-ref/source/initfile.cc | 29 + crawl-ref/source/invent.cc | 32 + crawl-ref/source/invent.h | 1 + crawl-ref/source/item_use.cc | 191 +- crawl-ref/source/item_use.h | 17 +- crawl-ref/source/items.cc | 1 + crawl-ref/source/libgui.cc | 2172 +++++++++++ crawl-ref/source/libgui.h | 164 + crawl-ref/source/libunix.cc | 2 +- crawl-ref/source/libunix.h | 5 +- crawl-ref/source/libutil.cc | 21 +- crawl-ref/source/libutil.h | 4 + crawl-ref/source/libw32c.cc | 2 +- crawl-ref/source/libw32c.h | 2 +- crawl-ref/source/libwt.cc | 540 +++ crawl-ref/source/libx11.cc | 478 +++ crawl-ref/source/macro.cc | 6 +- crawl-ref/source/makefile.x11 | 365 ++ crawl-ref/source/makefile_tiles.mgw | 242 ++ crawl-ref/source/menu.cc | 32 +- crawl-ref/source/menu.h | 4 + crawl-ref/source/message.cc | 17 +- crawl-ref/source/misc.cc | 13 +- crawl-ref/source/mutation.cc | 2 +- crawl-ref/source/newgame.cc | 7 +- crawl-ref/source/output.cc | 87 +- crawl-ref/source/player.cc | 21 +- crawl-ref/source/randart.cc | 5 + crawl-ref/source/randart.h | 1 + crawl-ref/source/rltiles/blank.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/bmp2png/README | 69 + crawl-ref/source/rltiles/bmp2png/bmp2png.c | 1078 ++++++ crawl-ref/source/rltiles/bmp2png/bmp2png.dsp | 112 + crawl-ref/source/rltiles/bmp2png/bmphed.h | 84 + crawl-ref/source/rltiles/bmp2png/common.c | 748 ++++ crawl-ref/source/rltiles/bmp2png/common.h | 196 + crawl-ref/source/rltiles/bmp2png/makefile.bcc | 52 + crawl-ref/source/rltiles/bmp2png/makefile.dj2 | 54 + crawl-ref/source/rltiles/bmp2png/makefile.lin | 48 + crawl-ref/source/rltiles/bmp2png/png2bmp.c | 647 ++++ crawl-ref/source/rltiles/bmp2png/png2bmp.dsp | 111 + crawl-ref/source/rltiles/dc-2d.txt | 32 + crawl-ref/source/rltiles/dc-co.txt | 256 ++ crawl-ref/source/rltiles/dc-dngn.txt | 161 + crawl-ref/source/rltiles/dc-dngn/dngn_altar.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-dngn/dngn_altar_beogh.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-dngn/dngn_altar_elyvilon.bmp | Bin 0 -> 2102 bytes .../rltiles/dc-dngn/dngn_altar_kikubaaqudgha.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-dngn/dngn_altar_lugonu.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-dngn/dngn_altar_makhleb.bmp | Bin 0 -> 2102 bytes .../rltiles/dc-dngn/dngn_altar_nemelex_xobeh.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-dngn/dngn_altar_okawaru.bmp | Bin 0 -> 2102 bytes .../rltiles/dc-dngn/dngn_altar_shining_one.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-dngn/dngn_altar_sif_muna.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-dngn/dngn_altar_trog.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-dngn/dngn_altar_vehumet.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-dngn/dngn_altar_xom.bmp | Bin 0 -> 2102 bytes .../rltiles/dc-dngn/dngn_altar_yredelemnul.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-dngn/dngn_altar_zin.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-dngn/dngn_blue_fountain.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-dngn/dngn_branch_stairs.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-dngn/dngn_closed_door.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-dngn/dngn_deep_water.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-dngn/dngn_dry_fountain.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-dngn/dngn_enter.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-dngn/dngn_enter_abyss.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-dngn/dngn_enter_cocytus.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-dngn/dngn_enter_dis.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-dngn/dngn_enter_gehenna.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-dngn/dngn_enter_hell.bmp | Bin 0 -> 2102 bytes .../rltiles/dc-dngn/dngn_enter_labyrinth.bmp | Bin 0 -> 2102 bytes .../rltiles/dc-dngn/dngn_enter_pandemonium.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-dngn/dngn_enter_shop.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-dngn/dngn_enter_tartarus.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-dngn/dngn_entrance.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-dngn/dngn_exit.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-dngn/dngn_floor.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-dngn/dngn_granite_statue.bmp | Bin 0 -> 2102 bytes .../rltiles/dc-dngn/dngn_green_crystal_wall.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-dngn/dngn_ice_statue.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-dngn/dngn_lava.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-dngn/dngn_metal_wall.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-dngn/dngn_open_door.bmp | Bin 0 -> 2102 bytes .../rltiles/dc-dngn/dngn_orange_crystal_statue.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-dngn/dngn_orcish_idol.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-dngn/dngn_return.bmp | Bin 0 -> 2102 bytes .../rltiles/dc-dngn/dngn_rock_stairs_down.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-dngn/dngn_rock_stairs_up.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-dngn/dngn_rock_wall_00.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-dngn/dngn_rock_wall_01.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-dngn/dngn_rock_wall_02.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-dngn/dngn_rock_wall_03.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-dngn/dngn_rock_wall_04.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-dngn/dngn_rock_wall_05.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-dngn/dngn_rock_wall_06.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-dngn/dngn_rock_wall_07.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-dngn/dngn_rock_wall_08.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-dngn/dngn_rock_wall_09.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-dngn/dngn_rock_wall_10.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-dngn/dngn_rock_wall_11.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-dngn/dngn_rock_wall_12.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-dngn/dngn_rock_wall_13.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-dngn/dngn_rock_wall_14.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-dngn/dngn_rock_wall_15.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-dngn/dngn_shallow_water.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-dngn/dngn_silver_statue.bmp | Bin 0 -> 2102 bytes .../rltiles/dc-dngn/dngn_sparkling_fountain.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-dngn/dngn_stone_arch.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-dngn/dngn_stone_wall.bmp | Bin 0 -> 2102 bytes .../rltiles/dc-dngn/dngn_transit_pandemonium.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-dngn/dngn_trap_iii.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-dngn/dngn_trap_magical.bmp | Bin 0 -> 2102 bytes .../rltiles/dc-dngn/dngn_trap_mechanical.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-dngn/dngn_unseen.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-dngn/dngn_wax_wall.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-dngn/floor/bog_green0.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-dngn/floor/bog_green1.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-dngn/floor/bog_green2.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-dngn/floor/bog_green3.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-dngn/floor/brick_gray0.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-dngn/floor/brick_gray1.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-dngn/floor/brick_gray2.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-dngn/floor/brick_gray3.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-dngn/floor/dirt0.bmp | Bin 0 -> 3126 bytes crawl-ref/source/rltiles/dc-dngn/floor/dirt1.bmp | Bin 0 -> 3126 bytes crawl-ref/source/rltiles/dc-dngn/floor/dirt2.bmp | Bin 0 -> 3126 bytes crawl-ref/source/rltiles/dc-dngn/floor/dirt_e.bmp | Bin 0 -> 3126 bytes .../source/rltiles/dc-dngn/floor/dirt_full.bmp | Bin 0 -> 3126 bytes crawl-ref/source/rltiles/dc-dngn/floor/dirt_n.bmp | Bin 0 -> 3126 bytes crawl-ref/source/rltiles/dc-dngn/floor/dirt_ne.bmp | Bin 0 -> 3126 bytes crawl-ref/source/rltiles/dc-dngn/floor/dirt_nw.bmp | Bin 0 -> 3126 bytes crawl-ref/source/rltiles/dc-dngn/floor/dirt_s.bmp | Bin 0 -> 3126 bytes crawl-ref/source/rltiles/dc-dngn/floor/dirt_se.bmp | Bin 0 -> 3126 bytes crawl-ref/source/rltiles/dc-dngn/floor/dirt_sw.bmp | Bin 0 -> 3126 bytes crawl-ref/source/rltiles/dc-dngn/floor/dirt_w.bmp | Bin 0 -> 3126 bytes crawl-ref/source/rltiles/dc-dngn/floor/grass0.bmp | Bin 0 -> 3126 bytes crawl-ref/source/rltiles/dc-dngn/floor/grass1.bmp | Bin 0 -> 3126 bytes crawl-ref/source/rltiles/dc-dngn/floor/grass2.bmp | Bin 0 -> 3126 bytes crawl-ref/source/rltiles/dc-dngn/floor/grass_e.bmp | Bin 0 -> 3126 bytes .../source/rltiles/dc-dngn/floor/grass_full.bmp | Bin 0 -> 3126 bytes crawl-ref/source/rltiles/dc-dngn/floor/grass_n.bmp | Bin 0 -> 3126 bytes .../source/rltiles/dc-dngn/floor/grass_ne.bmp | Bin 0 -> 3126 bytes .../source/rltiles/dc-dngn/floor/grass_nw.bmp | Bin 0 -> 3126 bytes crawl-ref/source/rltiles/dc-dngn/floor/grass_s.bmp | Bin 0 -> 3126 bytes .../source/rltiles/dc-dngn/floor/grass_se.bmp | Bin 0 -> 3126 bytes .../source/rltiles/dc-dngn/floor/grass_sw.bmp | Bin 0 -> 3126 bytes crawl-ref/source/rltiles/dc-dngn/floor/grass_w.bmp | Bin 0 -> 3126 bytes crawl-ref/source/rltiles/dc-dngn/floor/hive0.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-dngn/floor/hive1.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-dngn/floor/hive2.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-dngn/floor/hive3.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-dngn/floor/ice0.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-dngn/floor/ice1.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-dngn/floor/ice2.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-dngn/floor/ice3.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-dngn/floor/lair0.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-dngn/floor/lair1.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-dngn/floor/lair2.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-dngn/floor/lair3.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-dngn/floor/lava0.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-dngn/floor/lava1.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-dngn/floor/lava2.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-dngn/floor/lava3.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-dngn/floor/mesh0.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-dngn/floor/mesh1.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-dngn/floor/mesh2.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-dngn/floor/mesh3.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-dngn/floor/pebble_gray0.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-dngn/floor/pebble_gray1.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-dngn/floor/pebble_gray2.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-dngn/floor/pebble_gray3.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-dngn/floor/pebble_gray4.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-dngn/floor/pedestal_e.bmp | Bin 0 -> 3126 bytes .../source/rltiles/dc-dngn/floor/pedestal_full.bmp | Bin 0 -> 3126 bytes .../source/rltiles/dc-dngn/floor/pedestal_n.bmp | Bin 0 -> 3126 bytes .../source/rltiles/dc-dngn/floor/pedestal_ne.bmp | Bin 0 -> 3126 bytes .../source/rltiles/dc-dngn/floor/pedestal_nw.bmp | Bin 0 -> 3126 bytes .../source/rltiles/dc-dngn/floor/pedestal_s.bmp | Bin 0 -> 3126 bytes .../source/rltiles/dc-dngn/floor/pedestal_se.bmp | Bin 0 -> 3126 bytes .../source/rltiles/dc-dngn/floor/pedestal_sw.bmp | Bin 0 -> 3126 bytes .../source/rltiles/dc-dngn/floor/pedestal_w.bmp | Bin 0 -> 3126 bytes .../source/rltiles/dc-dngn/floor/rect_gray0.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-dngn/floor/rect_gray1.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-dngn/floor/rect_gray2.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-dngn/floor/rect_gray3.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-dngn/floor/rough_brown0.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-dngn/floor/rough_brown1.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-dngn/floor/rough_brown2.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-dngn/floor/rough_brown3.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-dngn/floor/rough_red0.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-dngn/floor/rough_red1.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-dngn/floor/rough_red2.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-dngn/floor/rough_red3.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-dngn/floor/snake0.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-dngn/floor/snake1.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-dngn/floor/snake2.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-dngn/floor/snake3.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-dngn/floor/swamp0.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-dngn/floor/swamp1.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-dngn/floor/swamp2.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-dngn/floor/swamp3.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-dngn/floor/tomb0.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-dngn/floor/tomb1.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-dngn/floor/tomb2.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-dngn/floor/tomb3.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-dngn/rock_stairs_down.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-dngn/rock_stairs_up.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-dngn/stone_stairs_down.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-dngn/stone_stairs_up.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-dngn/wall/brick_brown0.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-dngn/wall/brick_brown1.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-dngn/wall/brick_brown2.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-dngn/wall/brick_brown3.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-dngn/wall/brick_gray0.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-dngn/wall/brick_gray1.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-dngn/wall/brick_gray2.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-dngn/wall/brick_gray3.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-dngn/wall/hive0.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-dngn/wall/hive1.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-dngn/wall/hive2.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-dngn/wall/hive3.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-dngn/wall/ice0.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-dngn/wall/ice1.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-dngn/wall/ice2.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-dngn/wall/ice3.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-dngn/wall/lair0.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-dngn/wall/lair1.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-dngn/wall/lair2.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-dngn/wall/lair3.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-dngn/wall/marble_green0.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-dngn/wall/marble_green1.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-dngn/wall/marble_green2.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-dngn/wall/marble_green3.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-dngn/wall/pebble_red0.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-dngn/wall/pebble_red1.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-dngn/wall/pebble_red2.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-dngn/wall/pebble_red3.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-dngn/wall/relief0.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-dngn/wall/relief1.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-dngn/wall/relief2.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-dngn/wall/relief3.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-dngn/wall/slime0.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-dngn/wall/slime1.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-dngn/wall/slime2.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-dngn/wall/slime3.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-dngn/wall/snake0.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-dngn/wall/snake1.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-dngn/wall/snake2.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-dngn/wall/snake3.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-dngn/wall/stone2_gray0.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-dngn/wall/stone2_gray1.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-dngn/wall/stone2_gray2.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-dngn/wall/stone2_gray3.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-dngn/wall/stone_gray0.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-dngn/wall/stone_gray1.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-dngn/wall/stone_gray2.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-dngn/wall/stone_gray3.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-dngn/wall/tomb0.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-dngn/wall/tomb1.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-dngn/wall/tomb2.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-dngn/wall/tomb3.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-dngn/wall/undead0.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-dngn/wall/undead1.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-dngn/wall/undead2.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-dngn/wall/undead3.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-dngn/wall/vault0.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-dngn/wall/vault1.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-dngn/wall/vault2.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-dngn/wall/vault3.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-dngn/wall/zot_blue0.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-dngn/wall/zot_blue1.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-dngn/wall/zot_blue2.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-dngn/wall/zot_blue3.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-dngn/wall/zot_cyan0.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-dngn/wall/zot_cyan1.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-dngn/wall/zot_cyan2.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-dngn/wall/zot_cyan3.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-dngn/wall/zot_gray0.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-dngn/wall/zot_gray1.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-dngn/wall/zot_gray2.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-dngn/wall/zot_gray3.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-dngn/wall/zot_green0.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-dngn/wall/zot_green1.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-dngn/wall/zot_green2.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-dngn/wall/zot_green3.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-dngn/wall/zot_magenta0.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-dngn/wall/zot_magenta1.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-dngn/wall/zot_magenta2.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-dngn/wall/zot_magenta3.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-dngn/wall/zot_red0.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-dngn/wall/zot_red1.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-dngn/wall/zot_red2.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-dngn/wall/zot_red3.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-dngn/wall/zot_yellow0.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-dngn/wall/zot_yellow1.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-dngn/wall/zot_yellow2.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-dngn/wall/zot_yellow3.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-item.txt | 598 +++ crawl-ref/source/rltiles/dc-misc.txt | 167 + crawl-ref/source/rltiles/dc-misc/blood_blue.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-misc/blood_green.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-misc/blood_magenta.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-misc/blood_red.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-misc/char20.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-misc/char28.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-misc/char30.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-misc/char38.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-misc/char40.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-misc/char48.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-misc/char50.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-misc/char58.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-misc/char60.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-misc/char68.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-misc/char70.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-misc/char78.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-misc/cursor.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-misc/cursor_green.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-misc/cursor_red.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-misc/error.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-misc/heart.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-misc/magicmap.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-misc/mask_deep_water.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-misc/mask_lava.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-misc/mask_shallow_water.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-misc/may_stab_brand.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-misc/ray.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-misc/sink_mask.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-misc/slot.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-misc/slot_cursed.bmp | Bin 0 -> 582 bytes crawl-ref/source/rltiles/dc-misc/slot_eq.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-misc/slot_eq_cursed.bmp | Bin 0 -> 582 bytes .../source/rltiles/dc-misc/something_under.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-misc/stab_brand.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-misc/txt1.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-misc/txt2.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-misc/txt3.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-misc/txt4.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-misc/unseen.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-misc/unseen_armour.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-misc/unseen_item.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-misc/unseen_monster.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-misc/unseen_weapon.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon.txt | 494 +++ .../source/rltiles/dc-mon/abomination_large.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-mon/abomination_large1.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-mon/abomination_large2.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-mon/abomination_large3.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-mon/abomination_large4.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-mon/abomination_large5.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-mon/abomination_large6.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-mon/abomination_small.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/acid_blob.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/adolf.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/agnes.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/air_elemental.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/ancient_lich.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/angel.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/antaeus.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/asmodeus.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/azure_jelly.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/ball_lightning.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/balrug.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/bear.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/beast.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/big_fish.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/big_kobold.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/black_bear.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/black_snake.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/blink_frog.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/blork_the_orc0.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/blue_death.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/blue_devil.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/boggart.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/boring_beetle.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/boris.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/boulder_beetle.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/brain_worm.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/brown_ooze.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/brown_snake.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/bumblebee.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/butterfly.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/butterfly1.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/butterfly2.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/butterfly3.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/butterfly4.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/butterfly5.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/butterfly6.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/cacodemon.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/centaur.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-mon/centaur_warrior.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/cerebov.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/clay_golem.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/crystal_golem.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/curse_skull.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/curse_toe.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/cyclops.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/daeva.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/death_cob.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/death_drake.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/death_ooze.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/death_yak.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-mon/deep_elf_annihilator.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-mon/deep_elf_blademaster.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-mon/deep_elf_conjurer.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-mon/deep_elf_death_mage.bmp | Bin 0 -> 2102 bytes .../rltiles/dc-mon/deep_elf_demonologist.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-mon/deep_elf_fighter0.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-mon/deep_elf_high_priest.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-mon/deep_elf_knight0.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/deep_elf_mage.bmp | Bin 0 -> 2102 bytes .../rltiles/dc-mon/deep_elf_master_archer.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-mon/deep_elf_priest.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-mon/deep_elf_soldier0.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-mon/deep_elf_sorcerer.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-mon/deep_elf_summoner.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/deep_troll.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-mon/demonic_crawler.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/dispater.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/donald.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/dragon.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/duane0.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-mon/earth_elemental.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/edmund0.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/efreet.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/electric_golem.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/electrical_eel.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/elephant_slug.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/elf.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/ereshkigal.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/erica.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/erolcha.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/ettin.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/executioner.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-mon/eye_of_devastation.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-mon/eye_of_draining.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/fiend.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/fire_elemental.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/fire_giant.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/fire_vortex.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/firedrake.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/flayed_ghost.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/flying_skull.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/frances0.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/francis.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/frederick.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-mon/freezing_wraith.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/frost_giant.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/fungus.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/gargoyle.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/geryon.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/ghost.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/ghoul.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/giant_amoeba.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/giant_ant.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/giant_bat.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/giant_beetle.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/giant_blowfly.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-mon/giant_brown_frog.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-mon/giant_centipede.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-mon/giant_cockroach.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/giant_eyeball.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/giant_frog.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/giant_gecko.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/giant_goldfish.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/giant_iguana.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/giant_lizard.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/giant_mite.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/giant_mosquito.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/giant_newt.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-mon/giant_orange_brain.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/giant_slug.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/giant_snail.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/giant_spore.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/gila_monster.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/gloorx_vloq.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-mon/glowing_shapeshifter.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/gnoll0.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/goblin0.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/golden_dragon.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-mon/great_orb_of_eyes.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/greater_mummy.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/greater_naga0.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/green_death.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/green_rat.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/grey_rat.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/grey_snake.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/griffon.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/grizzly_bear.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/guardian_mummy.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/guardian_naga.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/hairy_devil.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/harold0.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/hell_hog.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/hell_hound.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/hell_knight.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/hellion.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/hellwing.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/hill_giant.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/hippogriff.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/hobgoblin0.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/hog.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/hound.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/human.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/hungry_ghost.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/hydra1.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/hydra2.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/hydra3.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/hydra4.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/hydra5.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/ice_beast.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/ice_devil.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/ice_dragon.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/ice_fiend.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/ijyb0.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/imp.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-mon/insubstantial_wisp.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/iron_devil.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/iron_dragon.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/iron_golem.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/iron_troll.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/jackal.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/jelly.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/jellyfish.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/jessica.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/joseph0.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/josephine.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/jozef0.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/killer_bee.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-mon/killer_bee_larva.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/killer_klown.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/kobold.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-mon/kobold_demonologist.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/komodo_dragon.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/large_mimic.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/lava_fish.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/lava_snake.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/lava_worm.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/lemure.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/lich.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/lindwurm.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/lom_lobon.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/lorocyproca.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/louise.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/manes.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/manticore.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/margery.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/maud0.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/metal_gargoyle.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/michael.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/midge.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/minotaur.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/mnoleg.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-mon/molten_gargoyle.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/moth_of_wrath.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/mottled_dragon.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/mummy.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/mummy_priest.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/murray.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/naga0.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/naga_mage.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/naga_warrior0.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/necromancer.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/necrophage.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/neqoxec.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/norbert.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/norris2.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/ogre.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/ogre_mage.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/oklob_plant.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/ooze.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/orange_demon.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/orange_rat.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/orb_guardian.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/orb_of_fire.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/orc0.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-mon/orc_high_priest.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/orc_knight0.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/orc_priest.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/orc_sorcerer.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/orc_warlord0.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/orc_warrior0.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/orc_wizard.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-mon/pandemonium_demon.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/phantom.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/pit_fiend.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/plant.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/polar_bear.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/polyphemus.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/program_bug.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/psyche.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/pulsating_lump.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/quasit.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/queen_ant.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/queen_bee.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-mon/quicksilver_dragon.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/quokka.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/rakshasa.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/rakshasa_fake.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/rat.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/reaper.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/red_devil.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/red_wasp.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/redback.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/rock_troll.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/rotting_devil.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/rotting_hulk.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/royal_jelly.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/rupert0.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/salamander.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/scorpion.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-mon/serpent_of_hell.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/shadow.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/shadow_demon.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/shadow_dragon.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/shadow_fiend.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/shadow_imp.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/shadow_wraith.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/shapeshifter.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/sheep.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/shining_eye.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/sigmund.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-mon/simulacrum_large.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-mon/simulacrum_small.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-mon/skeletal_dragon.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-mon/skeletal_warrior0.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/skeleton_large.bmp | Bin 0 -> 2103 bytes crawl-ref/source/rltiles/dc-mon/skeleton_small.bmp | Bin 0 -> 2103 bytes crawl-ref/source/rltiles/dc-mon/slime_creature.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/small_snake.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/smoke_demon.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/snake.bmp | Bin 0 -> 2103 bytes crawl-ref/source/rltiles/dc-mon/snorg.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/soldier_ant.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/soul_eater.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/spatial_vortex.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/spectral_thing.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-mon/spectral_warrior.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/sphinx.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/spiny_frog.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/spiny_worm.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/steam_dragon.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/stone_giant.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/stone_golem.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/storm_dragon.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/sun_demon.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/swamp_dragon.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/swamp_drake.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/swamp_worm.bmp | Bin 0 -> 2102 bytes .../rltiles/dc-mon/tentacled_monstrosity.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/terence0.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/tiamat.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/titan.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/toenail_golem.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/tormentor.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/troll.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-mon/two_headed_ogre.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/ufetubus.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/ugly_thing.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/unseen_horror.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/urug0.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/vampire.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/vampire_knight.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/vampire_mage.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/vapour.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/vault_guard0.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-mon/very_ugly_thing.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-mon/wandering_mushroom.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/war_dog.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/warg.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-mon/water_elemental.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/wayne0.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/white_imp.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/wight.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/wizard.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/wolf.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/wolf_spider.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/wood_golem.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/worm.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/wraith.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/wyvern.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/xtahua.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/yak.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/yaktaur.bmp | Bin 0 -> 2102 bytes .../source/rltiles/dc-mon/yaktaur_captain.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/yellow_snake.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/yellow_wasp.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/ynoxinul.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/zombie_large.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-mon/zombie_small.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/dc-pl.txt | 853 +++++ crawl-ref/source/rltiles/dc-urand.txt | 54 + crawl-ref/source/rltiles/dc-wall2d.txt | 289 ++ crawl-ref/source/rltiles/effect/acid_venom.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/effect/arrow0.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/effect/arrow1.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/effect/arrow2.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/effect/arrow3.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/effect/arrow4.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/effect/arrow5.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/effect/arrow6.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/effect/arrow7.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/effect/blinding_venom.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/effect/bolt0.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/effect/bolt01.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/effect/bolt02.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/effect/bolt03.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/effect/bolt04.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/effect/bolt05.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/effect/bolt06.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/effect/bolt07.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/effect/bolt08.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/effect/bolt1.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/effect/bolt2.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/effect/bolt3.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/effect/bolt4.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/effect/bolt5.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/effect/bolt6.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/effect/bolt7.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/effect/boomerang1.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/effect/boomerang2.bmp | Bin 0 -> 2102 bytes .../source/rltiles/effect/cloud_black_smoke.bmp | Bin 0 -> 2102 bytes .../source/rltiles/effect/cloud_blue_smoke.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/effect/cloud_cold0.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/effect/cloud_cold1.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/effect/cloud_cold2.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/effect/cloud_fire0.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/effect/cloud_fire1.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/effect/cloud_fire2.bmp | Bin 0 -> 2102 bytes .../source/rltiles/effect/cloud_grey_smoke.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/effect/cloud_miasma.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/effect/cloud_poison0.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/effect/cloud_poison1.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/effect/cloud_poison2.bmp | Bin 0 -> 2102 bytes .../source/rltiles/effect/cloud_purp_smoke.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/effect/dart0.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/effect/dart1.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/effect/dart2.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/effect/dart3.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/effect/dart4.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/effect/dart5.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/effect/dart6.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/effect/dart7.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/effect/engulf1.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/effect/engulf2.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/effect/engulf3.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/effect/engulf4.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/effect/engulf5.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/effect/engulf6.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/effect/engulf7.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/effect/engulf8.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/effect/explode_black0.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/effect/explode_black1.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/effect/explode_black2.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/effect/explode_black3.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/effect/explode_black4.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/effect/explode_black5.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/effect/explode_black6.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/effect/explode_black7.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/effect/explode_black8.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/effect/explode_blue0.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/effect/explode_blue1.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/effect/explode_blue2.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/effect/explode_blue3.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/effect/explode_blue4.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/effect/explode_blue5.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/effect/explode_blue6.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/effect/explode_blue7.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/effect/explode_blue8.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/effect/explode_brown0.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/effect/explode_brown1.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/effect/explode_brown2.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/effect/explode_brown3.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/effect/explode_brown4.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/effect/explode_brown5.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/effect/explode_brown6.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/effect/explode_brown7.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/effect/explode_brown8.bmp | Bin 0 -> 2102 bytes .../source/rltiles/effect/explode_darkblue0.bmp | Bin 0 -> 2102 bytes .../source/rltiles/effect/explode_darkblue1.bmp | Bin 0 -> 2102 bytes .../source/rltiles/effect/explode_darkblue2.bmp | Bin 0 -> 2102 bytes .../source/rltiles/effect/explode_darkblue3.bmp | Bin 0 -> 2102 bytes .../source/rltiles/effect/explode_darkblue4.bmp | Bin 0 -> 2102 bytes .../source/rltiles/effect/explode_darkblue5.bmp | Bin 0 -> 2102 bytes .../source/rltiles/effect/explode_darkblue6.bmp | Bin 0 -> 2102 bytes .../source/rltiles/effect/explode_darkblue7.bmp | Bin 0 -> 2102 bytes .../source/rltiles/effect/explode_darkblue8.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/effect/explode_green0.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/effect/explode_green1.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/effect/explode_green2.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/effect/explode_green3.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/effect/explode_green4.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/effect/explode_green5.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/effect/explode_green6.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/effect/explode_green7.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/effect/explode_green8.bmp | Bin 0 -> 2102 bytes .../source/rltiles/effect/explode_purple0.bmp | Bin 0 -> 2102 bytes .../source/rltiles/effect/explode_purple1.bmp | Bin 0 -> 2102 bytes .../source/rltiles/effect/explode_purple2.bmp | Bin 0 -> 2102 bytes .../source/rltiles/effect/explode_purple3.bmp | Bin 0 -> 2102 bytes .../source/rltiles/effect/explode_purple4.bmp | Bin 0 -> 2102 bytes .../source/rltiles/effect/explode_purple5.bmp | Bin 0 -> 2102 bytes .../source/rltiles/effect/explode_purple6.bmp | Bin 0 -> 2102 bytes .../source/rltiles/effect/explode_purple7.bmp | Bin 0 -> 2102 bytes .../source/rltiles/effect/explode_purple8.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/effect/explode_red0.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/effect/explode_red1.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/effect/explode_red2.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/effect/explode_red3.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/effect/explode_red4.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/effect/explode_red5.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/effect/explode_red6.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/effect/explode_red7.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/effect/explode_red8.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/effect/javelin0.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/effect/javelin1.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/effect/javelin2.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/effect/javelin3.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/effect/javelin4.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/effect/javelin5.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/effect/javelin6.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/effect/javelin7.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/effect/needle0.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/effect/needle1.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/effect/needle2.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/effect/needle3.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/effect/needle4.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/effect/needle5.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/effect/needle6.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/effect/needle7.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/effect/net_trap.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/effect/resist1.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/effect/resist2.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/effect/resist3.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/effect/resist4.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/effect/rock0.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/effect/sling_bullet0.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/effect/stone0.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/effect/throwing_net0.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/effect/throwing_net1.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/effect/throwing_net2.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/effect/throwing_net3.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/effect/throwing_net4.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/effect/throwing_net5.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/effect/throwing_net6.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/effect/throwing_net7.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/effect/zap_acid0.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/effect/zap_acid1.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/effect/zap_acid2.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/effect/zap_acid3.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/effect/zap_black0.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/effect/zap_black1.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/effect/zap_black2.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/effect/zap_black3.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/effect/zap_dig.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/effect/zap_elec0.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/effect/zap_elec1.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/effect/zap_elec2.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/effect/zap_elec3.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/effect/zap_fire0.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/effect/zap_fire1.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/effect/zap_fire2.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/effect/zap_fire3.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/effect/zap_flash.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/effect/zap_gas0.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/effect/zap_gas1.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/effect/zap_gas2.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/effect/zap_gas3.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/effect/zap_ice0.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/effect/zap_ice1.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/effect/zap_ice2.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/effect/zap_ice3.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/effect/zap_magic0.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/effect/zap_magic1.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/effect/zap_magic2.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/effect/zap_magic3.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/effect/zap_sleep0.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/effect/zap_sleep1.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/effect/zap_sleep2.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/effect/zap_sleep3.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/effect/zigzag1.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/effect/zigzag2.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/effect/zigzag3.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/effect/zigzag4.bmp | Bin 0 -> 2102 bytes .../rltiles/item/amulet/amulet_of_yendor.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/amulet/bone_gray.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/amulet/cameo_blue.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/amulet/cameo_orange.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/amulet/celtic_blue.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/amulet/celtic_red.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/amulet/celtic_yellow.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/amulet/circular.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/amulet/concave.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/amulet/crystal_green.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/amulet/crystal_red.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/amulet/crystal_white.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/amulet/cylinder_gray.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/amulet/eye_cyan.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/amulet/eye_green.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/amulet/eye_magenta.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/amulet/face1_gold.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/amulet/face2.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/amulet/hexagonal.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/amulet/octagonal.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/amulet/oval.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/amulet/penta_green.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/amulet/penta_orange.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/amulet/pyramidal.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/amulet/ring_cyan.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/amulet/ring_green.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/amulet/ring_red.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/amulet/spherical.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/amulet/square.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/amulet/stone1_cyan.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/amulet/stone1_green.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/amulet/stone1_pink.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/amulet/stone2_blue.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/amulet/stone2_green.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/amulet/stone2_red.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/amulet/stone3_blue.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/amulet/stone3_green.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/amulet/stone3_magenta.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/amulet/triangular.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/amulet/urand_bloodlust.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/amulet/urand_cekugob.bmp | Bin 0 -> 2102 bytes .../rltiles/item/amulet/urand_four_winds.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/armor/alchemy_smock.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/armor/animal_skin.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/armor/animal_skin2.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/armor/banded_mail.bmp | Bin 0 -> 2102 bytes .../rltiles/item/armor/black_dragon_scale_mail.bmp | Bin 0 -> 2102 bytes .../rltiles/item/armor/black_dragon_scales.bmp | Bin 0 -> 2102 bytes .../rltiles/item/armor/blue_dragon_scale_mail.bmp | Bin 0 -> 2102 bytes .../rltiles/item/armor/blue_dragon_scales.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/armor/boots_blue1.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/armor/boots_brown1.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/armor/boots_brown2.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/armor/boots_green1.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/armor/boots_green2.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/armor/boots_iron1.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/armor/boots_iron2.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/armor/boots_iron3.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/armor/boots_stripe1.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/armor/boots_yellow1.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/armor/breast_plate1.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/armor/breast_plate2.bmp | Bin 0 -> 2102 bytes .../rltiles/item/armor/bronze_plate_mail.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/armor/buckled_boots.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/armor/cap1.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/armor/cap2.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/armor/cap3.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/armor/centaur_barding.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/armor/chain_mail.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/armor/chain_mail1.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/armor/chain_mail2.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/armor/chain_mail3.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/armor/cloak2.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/armor/cloak3.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/armor/cloak4.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/armor/combat_boots.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/armor/cornuthaum.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/armor/crested_helmet.bmp | Bin 0 -> 2102 bytes .../rltiles/item/armor/crystal_plate_mail.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/armor/dented_pot.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/armor/dunce_cap.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/armor/dwarven_ringmail.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/armor/dwarvish_cloak.bmp | Bin 0 -> 2102 bytes .../rltiles/item/armor/dwarvish_iron_helm.bmp | Bin 0 -> 2102 bytes .../rltiles/item/armor/dwarvish_mithril_coat.bmp | Bin 0 -> 2102 bytes .../rltiles/item/armor/dwarvish_roundshield.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/armor/elven_cloak.bmp | Bin 0 -> 2102 bytes .../rltiles/item/armor/elven_leather_armor.bmp | Bin 0 -> 2102 bytes .../rltiles/item/armor/elven_leather_helm.bmp | Bin 0 -> 2102 bytes .../rltiles/item/armor/elven_mithril_coat.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/armor/elven_ringmail.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/armor/elven_scalemail.bmp | Bin 0 -> 2106 bytes .../source/rltiles/item/armor/elven_shield.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/armor/etched_helmet.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/armor/fedora.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/armor/fencing_gloves.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/armor/gauntlet1.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/armor/gauntlet2.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/armor/glove1.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/armor/glove2.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/armor/glove3.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/armor/glove4.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/armor/glove5.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/armor/glove6.bmp | Bin 0 -> 2102 bytes .../rltiles/item/armor/gold_dragon_armour.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/armor/gold_dragon_hide.bmp | Bin 0 -> 2102 bytes .../rltiles/item/armor/gray_dragon_scale_mail.bmp | Bin 0 -> 2102 bytes .../rltiles/item/armor/gray_dragon_scales.bmp | Bin 0 -> 2102 bytes .../rltiles/item/armor/green_dragon_scale_mail.bmp | Bin 0 -> 2102 bytes .../rltiles/item/armor/green_dragon_scales.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/armor/hat1.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/armor/hawaiian_shirt.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/armor/helm2.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/armor/helm3.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/armor/helm_green.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/armor/helm_visor1.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/armor/hiking_boots.bmp | Bin 0 -> 2102 bytes .../rltiles/item/armor/ice_dragon_armour.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/armor/ice_dragon_hide.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/armor/iron_shoes.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/armor/jackboots.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/armor/jungle_boots.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/armor/large_shield.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/armor/leather_armor.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/armor/leather_armor2.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/armor/leather_armor3.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/armor/leather_armor4.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/armor/leather_armour2.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/armor/leather_cloak.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/armor/leather_jacket.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/armor/low_boots.bmp | Bin 0 -> 2102 bytes .../rltiles/item/armor/mottled_dragon_hide.bmp | Bin 0 -> 2102 bytes .../rltiles/item/armor/mpttled_dragon_armour.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/armor/mud_boots.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/armor/mummy_wrapping.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/armor/naga_barding.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/armor/oilskin_cloak.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/armor/old_gloves.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/armor/opera_cloak.bmp | Bin 0 -> 2102 bytes .../item/armor/orange_dragon_scale_mail.bmp | Bin 0 -> 2102 bytes .../rltiles/item/armor/orange_dragon_scales.bmp | Bin 0 -> 2102 bytes .../rltiles/item/armor/orcish_chain_mail.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/armor/orcish_cloak.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/armor/orcish_helm.bmp | Bin 0 -> 2102 bytes .../rltiles/item/armor/orcish_leather_armor.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/armor/orcish_platemail.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/armor/orcish_ring_mail.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/armor/orcish_ringmail.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/armor/orcish_shield.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/armor/ornamental_cope.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/armor/padded_gloves.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/armor/piece_of_cloth.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/armor/plate_mail.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/armor/plate_mail2.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/armor/plumed_helmet.bmp | Bin 0 -> 2102 bytes .../rltiles/item/armor/red_dragon_scale_mail.bmp | Bin 0 -> 2102 bytes .../rltiles/item/armor/red_dragon_scales.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/armor/riding_boots.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/armor/riding_gloves.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/armor/ring_mail.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/armor/ring_mail2.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/armor/robe.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/armor/robe2.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/armor/robe3.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/armor/s_suit.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/armor/scale_mail.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/armor/scale_mail2.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/armor/shield2.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/armor/shield_gondor.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/armor/shield_kite2.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/armor/shield_kite3.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/armor/shield_large2.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/armor/shield_large3.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/armor/shield_large4.bmp | Bin 0 -> 2102 bytes .../rltiles/item/armor/shield_of_reflection.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/armor/shield_rohan.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/armor/shield_round2.bmp | Bin 0 -> 2102 bytes .../item/armor/shimmering_dragon_scale_mail.bmp | Bin 0 -> 2102 bytes .../item/armor/shimmering_dragon_scales.bmp | Bin 0 -> 2102 bytes .../item/armor/silver_dragon_scale_mail.bmp | Bin 0 -> 2102 bytes .../rltiles/item/armor/silver_dragon_scales.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/armor/small_shield.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/armor/small_shield2.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/armor/snow_boots.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/armor/splint_mail.bmp | Bin 0 -> 2102 bytes .../rltiles/item/armor/studded_leather_armor.bmp | Bin 0 -> 2102 bytes .../rltiles/item/armor/swamp_dragon_armour.bmp | Bin 0 -> 2102 bytes .../rltiles/item/armor/swamp_dragon_hide.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/armor/t_shirt.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/armor/tattered_cape.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/armor/troll_hide.bmp | Bin 0 -> 2102 bytes .../rltiles/item/armor/troll_leather_armour.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/armor/urand_alchemist.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/armor/urand_assassin.bmp | Bin 0 -> 2102 bytes .../rltiles/item/armor/urand_augmentation.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/armor/urand_bullseye.bmp | Bin 0 -> 2102 bytes .../rltiles/item/armor/urand_dragon_king.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/armor/urand_dragonmask.bmp | Bin 0 -> 2102 bytes .../rltiles/item/armor/urand_dyrovepreva.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/armor/urand_edison.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/armor/urand_fencer.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/armor/urand_flash.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/armor/urand_folly.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/armor/urand_ignorance.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/armor/urand_lear.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/armor/urand_misfortune.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/armor/urand_night.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/armor/urand_resistance.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/armor/urand_salamander.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/armor/urand_thief.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/armor/urand_war.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/armor/urand_zhor.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/armor/urand_zin.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/armor/uruk_hai_shield.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/armor/visored_helmet.bmp | Bin 0 -> 2102 bytes .../rltiles/item/armor/white_dragon_scale_mail.bmp | Bin 0 -> 2102 bytes .../rltiles/item/armor/white_dragon_scales.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/armor/wizard_hat.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/armor/wizard_hat2.bmp | Bin 0 -> 2102 bytes .../item/armor/yellow_dragon_scale_mail.bmp | Bin 0 -> 2102 bytes .../rltiles/item/armor/yellow_dragon_scales.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/book/blank_paper.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/book/book_of_the_dead.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/book/bronze.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/book/cloth.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/book/copper.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/book/cyan.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/book/dark_blue.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/book/dark_brown.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/book/dark_gray.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/book/dark_green.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/book/dog_eared.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/book/dull.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/book/dusty.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/book/glittering.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/book/gold.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/book/gray.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/book/indigo.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/book/leather.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/book/light_blue.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/book/light_brown.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/book/light_gray.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/book/light_green.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/book/magenta.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/book/metal_blue.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/book/metal_cyan.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/book/metal_green.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/book/mottled.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/book/orange.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/book/parchment.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/book/pink.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/book/plaid.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/book/purple.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/book/ragged.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/book/red.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/book/shining.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/book/silver.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/book/stained.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/book/tan.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/book/thick.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/book/thin.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/book/turquoise.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/book/vellum.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/book/velvet.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/book/violet.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/book/white.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/book/wrinkled.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/book/yellow.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/food/apple.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/food/apricot.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/food/banana.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/food/beef_jerky.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/food/bone.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/food/bread0.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/food/bread_ration.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/food/c_ration.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/food/candy_bar.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/food/carrot.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/food/cheese.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/food/chocorate.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/food/choko.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/food/clove_of_garlic.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/food/corpse.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/food/corpse_rotten.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/food/cram_ration.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/food/cream_pie.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/food/egg.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/food/eucalyptus_leaf.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/food/food_ration.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/food/fortune_cookie.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/food/grape.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/food/honeycomb.bmp | Bin 0 -> 2102 bytes .../rltiles/item/food/huge_chunk_of_meat.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/food/k_ration.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/food/kelp_frond.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/food/lembas_wafer.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/food/lemon.bmp | Bin 0 -> 2102 bytes .../rltiles/item/food/lump_of_royal_jelly.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/food/lychee.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/food/meat_ring.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/food/meat_stick.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/food/meatball.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/food/melon.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/food/orange.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/food/pancake.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/food/pear.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/food/pizza.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/food/rambutan.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/food/sausage.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/food/slime_mold.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/food/snozzcumber.bmp | Bin 0 -> 2102 bytes .../rltiles/item/food/sprig_of_wolfsbane.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/food/strawberry.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/food/sultana.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/food/tin.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/food/tripe_ration.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/gem/black.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/gem/blue.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/gem/boulder.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/gem/gold_piece.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/gem/green.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/gem/grey_stone.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/gem/orange.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/gem/red.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/gem/rock.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/gem/stone.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/gem/violet.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/gem/white.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/gem/yellow.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/gem/yellowish_brown.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/misc/beartrap.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/misc/bell.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/misc/bell_of_opening.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/misc/blindfold.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/misc/brass_lantern.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/misc/bugle.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/misc/can_of_grease.bmp | Bin 0 -> 2102 bytes .../item/misc/candelabrum_of_invocation.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/misc/chest.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/misc/credit_card.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/misc/crystal_ball.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/misc/drum.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/misc/expensive_camera.bmp | Bin 0 -> 2103 bytes crawl-ref/source/rltiles/item/misc/figurine.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/misc/flute.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/misc/grappling_hook.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/misc/harp.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/misc/heavy_iron_ball.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/misc/horn.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/misc/ice_box.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/misc/iron_chain.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/misc/lamp.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/misc/land_mine.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/misc/large_box.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/misc/leash.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/misc/lenses.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/misc/lock_pick.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/misc/magic_marker.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/misc/mirror.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/misc/misc_altar.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/misc/misc_book.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/misc/misc_bottle.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/misc/misc_box.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/misc/misc_crystal.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/misc/misc_deck.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/misc/misc_disc.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/misc/misc_fan.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/misc/misc_horn.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/misc/misc_lamp.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/misc/misc_lantern.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/misc/misc_orb.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/misc/misc_rune.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/misc/misc_stone.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/misc/pick_axe.bmp | Bin 0 -> 2103 bytes crawl-ref/source/rltiles/item/misc/sack.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/misc/saddle.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/misc/skeleton_key.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/misc/statue.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/misc/stethoscope.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/misc/tallow_candle.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/misc/tin_opener.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/misc/tinning_kit.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/misc/towel.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/misc/unicorn_horn.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/misc/wax_candle.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/misc/whistle.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/potion/black.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/potion/brilliant_blue.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/potion/brown.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/potion/bubbly.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/potion/clear.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/potion/cloudy.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/potion/cyan.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/potion/dark.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/potion/dark_green.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/potion/effervescent.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/potion/emerald.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/potion/fizzy.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/potion/golden.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/potion/i-berserk-rage.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/potion/i-blood.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/potion/i-confusion.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/potion/i-cure-mutation.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/potion/i-decay.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/potion/i-degeneration.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/potion/i-experience.bmp | Bin 0 -> 2102 bytes .../rltiles/item/potion/i-gain-dexterity.bmp | Bin 0 -> 2102 bytes .../rltiles/item/potion/i-gain-intelligence.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/potion/i-gain-strength.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/potion/i-heal-wounds.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/potion/i-heal-wounds.bmp2 | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/potion/i-heal.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/potion/i-invisibility.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/potion/i-label.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/potion/i-label2.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/potion/i-levitation.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/potion/i-levitation.bmp2 | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/potion/i-magic.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/potion/i-might.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/potion/i-mutation.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/potion/i-paralysis.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/potion/i-poison.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/potion/i-porridge.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/potion/i-resistance.bmp | Bin 0 -> 2102 bytes .../rltiles/item/potion/i-restore-abilities.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/potion/i-slowing.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/potion/i-speed.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/potion/i-strong-poison.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/potion/i-water.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/potion/magenta.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/potion/milky.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/potion/murky.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/potion/orange.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/potion/pink.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/potion/puce.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/potion/purple_red.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/potion/ruby.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/potion/silver.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/potion/sky_blue.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/potion/smoky.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/potion/swirly.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/potion/white.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/potion/yellow.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/ring/agate.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/ring/black_onyx.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/ring/brass.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/ring/bronze.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/ring/clay.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/ring/copper.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/ring/coral.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/ring/diamond.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/ring/emerald.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/ring/engagement.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/ring/glass.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/ring/gold.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/ring/gold_blue.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/ring/gold_cyan.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/ring/gold_green.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/ring/gold_magenta.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/ring/gold_red.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/ring/gold_white.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/ring/gold_yellow.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/ring/granite.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/ring/iron.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/ring/ivory.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/ring/jade.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/ring/moonstone.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/ring/opal.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/ring/pearl.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/ring/plain_black.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/ring/plain_blue.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/ring/plain_cyan.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/ring/plain_dark.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/ring/plain_green.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/ring/plain_magenta.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/ring/plain_red.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/ring/plain_yellow.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/ring/ruby.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/ring/sapphire.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/ring/shiny.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/ring/silver.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/ring/steel.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/ring/tiger_eye.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/ring/topaz.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/ring/twisted.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/ring/urand_mage.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/ring/urand_robustness.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/ring/urand_shadows.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/ring/urand_shaolin.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/ring/wire.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/ring/wooden.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/scroll/andova_begarin.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/scroll/blank_paper.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/scroll/daiyen_fooels.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/scroll/duam_xnaht.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/scroll/elam_ebow.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/scroll/elbib_yloh.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/scroll/foobie_bletch.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/scroll/garven_deh.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/scroll/hackem_muche.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/scroll/i-acquirement.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/scroll/i-blinking.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/scroll/i-curse_armour.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/scroll/i-curse_weapon.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/scroll/i-detect_curse.bmp | Bin 0 -> 2102 bytes .../rltiles/item/scroll/i-enchant-weapon1.bmp | Bin 0 -> 2102 bytes .../rltiles/item/scroll/i-enchant-weapon2.bmp | Bin 0 -> 2102 bytes .../rltiles/item/scroll/i-enchant-weapon3.bmp | Bin 0 -> 2102 bytes .../rltiles/item/scroll/i-enchant_armour.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/scroll/i-fear.bmp | Bin 0 -> 2102 bytes .../rltiles/item/scroll/i-foregetfulness.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/scroll/i-identify.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/scroll/i-immolation.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/scroll/i-magic_mapping.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/scroll/i-noise.bmp | Bin 0 -> 2102 bytes .../rltiles/item/scroll/i-random_uselessness.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/scroll/i-recharging.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/scroll/i-remove_curse.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/scroll/i-summoning.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/scroll/i-teleportation.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/scroll/i-torment.bmp | Bin 0 -> 2102 bytes .../rltiles/item/scroll/i-vorpalize-weapon.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/scroll/juyed_awk_yacc.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/scroll/kernod_wel.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/scroll/kirje.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/scroll/lep_gex_ven_zea.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/scroll/mail.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/scroll/nr_9.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/scroll/pratyavayah.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/scroll/prirutsenie.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/scroll/read_me.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/scroll/temov.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/scroll/tharr.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/scroll/ve_forbryderne.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/scroll/velox_neb.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/scroll/venzar_borgavve.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/scroll/verr_yed_horre.bmp | Bin 0 -> 2102 bytes .../rltiles/item/scroll/xixaxa_xoxaxa_xuxaxa.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/scroll/yum_yum.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/scroll/zelgo_mer.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/wand/aluminum.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/wand/balsa.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/wand/brass.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/wand/copper.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/wand/crystal.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/wand/curved.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/wand/ebony.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/wand/forked.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/wand/gem_bone.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/wand/gem_brass.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/wand/gem_bronze.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/wand/gem_copper.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/wand/gem_glass.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/wand/gem_gold.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/wand/gem_iron.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/wand/gem_ivory.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/wand/gem_lead.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/wand/gem_plastic.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/wand/gem_silver.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/wand/gem_wood.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/wand/glass.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/wand/hexagonal.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/wand/i-cold.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/wand/i-confusion.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/wand/i-digging.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/wand/i-disintegration.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/wand/i-draining.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/wand/i-enslavement.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/wand/i-fire.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/wand/i-fireball.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/wand/i-flame.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/wand/i-frost.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/wand/i-hasting.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/wand/i-healing.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/wand/i-invisibility.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/wand/i-label.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/wand/i-lightning.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/wand/i-magic_darts.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/wand/i-paralysis.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/wand/i-polymorph_other.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/wand/i-random_effects.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/wand/i-slowing.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/wand/i-teleportation.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/wand/iridium.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/wand/iron.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/wand/jeweled.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/wand/long.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/wand/maple.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/wand/marble.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/wand/oak.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/wand/pine.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/wand/platinum.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/wand/runed.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/wand/short.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/wand/silver.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/wand/spiked.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/wand/staff00.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/wand/staff01.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/wand/staff02.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/wand/staff03.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/wand/staff04.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/wand/staff05.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/wand/staff06.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/wand/staff07.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/wand/staff08.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/wand/staff09.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/wand/steel.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/wand/tin.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/wand/uranium.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/wand/zinc.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/weapon/aklys.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/weapon/ancient_sword.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/weapon/ancus.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/weapon/arrow.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/weapon/athame.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/weapon/axe.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/weapon/bardiche.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/weapon/battle_axe.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/weapon/battle_axe2.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/weapon/battle_axe3.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/weapon/bec_de_corbin.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/weapon/bill_guisarme.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/weapon/blessed_blade.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/weapon/blowgun.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/weapon/blowgun2.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/weapon/boomerang.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/weapon/bow.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/weapon/bow2.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/weapon/broad_axe2.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/weapon/broadsword.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/weapon/bullwhip.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/weapon/club.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/weapon/crossbow.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/weapon/crossbow2.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/weapon/crossbow_bolt.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/weapon/crysknife.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/weapon/dagger.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/weapon/dart-p.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/weapon/dart.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/weapon/demon_blade.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/weapon/demon_trident.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/weapon/demon_whip.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/weapon/double_sword.bmp | Bin 0 -> 2102 bytes .../rltiles/item/weapon/dwarvish_mattock.bmp | Bin 0 -> 2103 bytes .../rltiles/item/weapon/dwarvish_short_sword.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/weapon/dwarvish_spear.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/weapon/elven_arrow.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/weapon/elven_bow.bmp | Bin 0 -> 2102 bytes .../rltiles/item/weapon/elven_broadsword.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/weapon/elven_dagger.bmp | Bin 0 -> 2102 bytes .../rltiles/item/weapon/elven_short_sword.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/weapon/elven_spear.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/weapon/eveningstar.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/weapon/eveningstar2.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/weapon/executioner_axe.bmp | Bin 0 -> 2102 bytes .../rltiles/item/weapon/executioner_axe2.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/weapon/falchion.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/weapon/fauchard.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/weapon/flail.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/weapon/flail2.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/weapon/flail_angmar.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/weapon/giant_club.bmp | Bin 0 -> 2102 bytes .../rltiles/item/weapon/giant_spiked_club.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/weapon/glaive.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/weapon/glaive2.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/weapon/great_flail.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/weapon/great_flail2.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/weapon/greatsword.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/weapon/greatsword2.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/weapon/guisarme.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/weapon/halberd.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/weapon/halberd2.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/weapon/hammer.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/weapon/hammer2.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/weapon/hand_axe.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/weapon/hand_crossbow.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/weapon/hand_crossbow2.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/weapon/javelin.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/weapon/katana.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/weapon/katana2.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/weapon/katana3.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/weapon/knife.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/weapon/lajatang.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/weapon/lance.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/weapon/lochaber_axe.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/weapon/long_sword.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/weapon/long_sword2.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/weapon/long_sword3.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/weapon/longbow.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/weapon/lucern_hammer.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/weapon/mace.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/weapon/mace2.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/weapon/mace3.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/weapon/mace_large.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/weapon/mace_large2.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/weapon/morning_star.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/weapon/morningstar.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/weapon/morningstar2.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/weapon/needle-p.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/weapon/needle.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/weapon/orcish_arrow.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/weapon/orcish_bow.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/weapon/orcish_dagger.bmp | Bin 0 -> 2106 bytes .../source/rltiles/item/weapon/orcish_glaive.bmp | Bin 0 -> 2106 bytes .../rltiles/item/weapon/orcish_great_sword.bmp | Bin 0 -> 2106 bytes .../rltiles/item/weapon/orcish_long_sword.bmp | Bin 0 -> 2106 bytes .../rltiles/item/weapon/orcish_short_sword.bmp | Bin 0 -> 2106 bytes .../source/rltiles/item/weapon/orcish_spear.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/weapon/partisan.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/weapon/quarterstaff.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/weapon/quickblade.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/weapon/ranseur.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/weapon/rubber_hose.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/weapon/runesword.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/weapon/sabre2.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/weapon/scalpel.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/weapon/scimitar.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/weapon/scimitar2.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/weapon/scythe.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/weapon/scythe2.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/weapon/short_sword.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/weapon/short_sword2.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/weapon/shuriken.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/weapon/silver_arrow.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/weapon/silver_dagger.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/weapon/silver_saber.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/weapon/silver_spear.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/weapon/sling.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/weapon/sling_bullet.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/weapon/spear.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/weapon/spear2.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/weapon/spetum.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/weapon/spiked_flail.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/weapon/spiked_flail2.bmp | Bin 0 -> 2102 bytes .../rltiles/item/weapon/spwpn_glaive_of_prune.bmp | Bin 0 -> 2102 bytes .../item/weapon/spwpn_knife_of_accuracy.bmp | Bin 0 -> 2102 bytes .../item/weapon/spwpn_mace_of_variability.bmp | Bin 0 -> 2102 bytes .../item/weapon/spwpn_sceptre_of_asmodeus.bmp | Bin 0 -> 2102 bytes .../item/weapon/spwpn_sceptre_of_asmodeus2.bmp | Bin 0 -> 2102 bytes .../item/weapon/spwpn_sceptre_of_torment.bmp | Bin 0 -> 2102 bytes .../item/weapon/spwpn_sceptre_of_torment2.bmp | Bin 0 -> 2102 bytes .../rltiles/item/weapon/spwpn_scythe_of_curses.bmp | Bin 0 -> 2102 bytes .../item/weapon/spwpn_scythe_of_curses2.bmp | Bin 0 -> 2102 bytes .../rltiles/item/weapon/spwpn_singing_sword.bmp | Bin 0 -> 2102 bytes .../rltiles/item/weapon/spwpn_singing_sword2.bmp | Bin 0 -> 2102 bytes .../item/weapon/spwpn_staff_of_dispater.bmp | Bin 0 -> 2102 bytes .../item/weapon/spwpn_staff_of_dispater2.bmp | Bin 0 -> 2102 bytes .../rltiles/item/weapon/spwpn_staff_of_olgreb.bmp | Bin 0 -> 2102 bytes .../rltiles/item/weapon/spwpn_sword_of_cerebov.bmp | Bin 0 -> 2102 bytes .../rltiles/item/weapon/spwpn_sword_of_power.bmp | Bin 0 -> 2102 bytes .../rltiles/item/weapon/spwpn_sword_of_power2.bmp | Bin 0 -> 2102 bytes .../item/weapon/spwpn_sword_of_zonguldrok.bmp | Bin 0 -> 2102 bytes .../item/weapon/spwpn_sword_of_zonguldrok2.bmp | Bin 0 -> 2102 bytes .../rltiles/item/weapon/spwpn_vampires_tooth.bmp | Bin 0 -> 2102 bytes .../rltiles/item/weapon/spwpn_wrath_of_trog.bmp | Bin 0 -> 2102 bytes .../rltiles/item/weapon/spwpn_wrath_of_trog2.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/weapon/stiletto.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/weapon/sword_orcish.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/weapon/throwing_net.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/weapon/trident.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/weapon/trident2.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/weapon/triple_sword.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/weapon/tsurugi.bmp | Bin 0 -> 2102 bytes .../rltiles/item/weapon/two_handed_sword.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/weapon/urand_arga.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/weapon/urand_bloodbane.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/weapon/urand_blowgun.bmp | Bin 0 -> 2102 bytes .../rltiles/item/weapon/urand_brilliance.bmp | Bin 0 -> 2102 bytes .../rltiles/item/weapon/urand_chilly_death.bmp | Bin 0 -> 2102 bytes .../rltiles/item/weapon/urand_doom_knight.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/weapon/urand_elemental.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/weapon/urand_eos.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/weapon/urand_erchidel.bmp | Bin 0 -> 2102 bytes .../rltiles/item/weapon/urand_fiery_devil.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/weapon/urand_finisher.bmp | Bin 0 -> 2102 bytes .../rltiles/item/weapon/urand_fkaming_death.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/weapon/urand_guard.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/weapon/urand_jihad.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/weapon/urand_krishna.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/weapon/urand_leech.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/weapon/urand_morg.bmp | Bin 0 -> 2102 bytes .../rltiles/item/weapon/urand_octopus_king.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/weapon/urand_plutonium.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/weapon/urand_punk.bmp | Bin 0 -> 2102 bytes .../rltiles/item/weapon/urand_skullcrusher.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/weapon/urand_sniper.bmp | Bin 0 -> 2102 bytes .../rltiles/item/weapon/urand_undeadhunter.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/weapon/urand_voo_doo.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/weapon/voulge.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/weapon/war_axe.bmp | Bin 0 -> 2106 bytes .../source/rltiles/item/weapon/war_hammer.bmp | Bin 0 -> 2102 bytes .../source/rltiles/item/weapon/worm_tooth.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/weapon/ya.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/item/weapon/yumi.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/license.txt | 17 + crawl-ref/source/rltiles/makefile.mgw | 121 + crawl-ref/source/rltiles/makefile.unix | 121 + crawl-ref/source/rltiles/player/arm/claws.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/arm/gauntlet_blue.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/arm/glove_black.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/arm/glove_black2.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/arm/glove_blue.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/arm/glove_brown.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/arm/glove_chunli.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/arm/glove_gold.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/arm/glove_gray.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/arm/glove_grayfist.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/arm/glove_orange.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/arm/glove_purple.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/arm/glove_red.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/arm/glove_short_blue.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/arm/glove_short_gray.bmp | Bin 0 -> 2102 bytes .../rltiles/player/arm/glove_short_green.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/arm/glove_short_red.bmp | Bin 0 -> 2102 bytes .../rltiles/player/arm/glove_short_white.bmp | Bin 0 -> 2102 bytes .../rltiles/player/arm/glove_short_yellow.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/arm/glove_white.bmp | Bin 0 -> 2102 bytes .../rltiles/player/arm/glove_wrist_purple.bmp | Bin 0 -> 2102 bytes .../rltiles/player/barding/centaur_barding.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/barding/naga_barding.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/base/centaur_f.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/base/centaur_m.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/base/deep_elf_f.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/base/deep_elf_m.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/base/demigod_f.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/base/demigod_m.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/base/demonspawn_f.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/base/demonspawn_m.bmp | Bin 0 -> 2102 bytes .../rltiles/player/base/draconian_black_f.bmp | Bin 0 -> 2102 bytes .../rltiles/player/base/draconian_black_m.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/base/draconian_f.bmp | Bin 0 -> 2102 bytes .../rltiles/player/base/draconian_gold_f.bmp | Bin 0 -> 2102 bytes .../rltiles/player/base/draconian_gold_m.bmp | Bin 0 -> 2102 bytes .../rltiles/player/base/draconian_gray_f.bmp | Bin 0 -> 2102 bytes .../rltiles/player/base/draconian_gray_m.bmp | Bin 0 -> 2102 bytes .../rltiles/player/base/draconian_green_f.bmp | Bin 0 -> 2102 bytes .../rltiles/player/base/draconian_green_m.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/base/draconian_m.bmp | Bin 0 -> 2102 bytes .../rltiles/player/base/draconian_mottled_f.bmp | Bin 0 -> 2102 bytes .../rltiles/player/base/draconian_mottled_m.bmp | Bin 0 -> 2102 bytes .../rltiles/player/base/draconian_pale_f.bmp | Bin 0 -> 2102 bytes .../rltiles/player/base/draconian_pale_m.bmp | Bin 0 -> 2102 bytes .../rltiles/player/base/draconian_purple_f.bmp | Bin 0 -> 2102 bytes .../rltiles/player/base/draconian_purple_m.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/base/draconian_red_f.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/base/draconian_red_m.bmp | Bin 0 -> 2102 bytes .../rltiles/player/base/draconian_white_f.bmp | Bin 0 -> 2102 bytes .../rltiles/player/base/draconian_white_m.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/base/dwarf_f.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/base/dwarf_m.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/base/elf_f.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/base/elf_m.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/base/ghoul_f.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/base/ghoul_m.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/base/gnome_f.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/base/gnome_m.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/base/halfling_f.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/base/halfling_m.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/base/human_f.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/base/human_m.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/base/kenku_f.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/base/kenku_m.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/base/kobold_f.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/base/kobold_m.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/base/merfolk_f.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/base/merfolk_fs.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/base/merfolk_m.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/base/merfolk_ms.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/base/merfolk_water_f.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/base/merfolk_water_m.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/base/minotaur_f.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/base/minotaur_m.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/base/mummy_f.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/base/mummy_m.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/base/naga_f.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/base/naga_m.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/base/ogre_f.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/base/ogre_m.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/base/ogre_mage_f.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/base/ogre_mage_m.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/base/orc_f.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/base/orc_m.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/base/shadow.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/base/spriggan_f.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/base/spriggan_m.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/base/troll_f.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/base/troll_m.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/base/vampire_f.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/base/vampire_m.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/beard/long_black.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/beard/long_red.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/beard/long_white.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/beard/long_yellow.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/beard/pj.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/beard/short_black.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/beard/short_red.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/beard/short_white.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/beard/short_yellow.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/body/animal_skin.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/body/aragorn.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/body/aragorn2.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/body/armor_blue_gold.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/body/armor_mummy.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/body/arwen.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/body/banded.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/body/banded2.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/body/belt1.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/body/belt2.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/body/bikini_red.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/body/bloody.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/body/boromir.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/body/bplate_green.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/body/bplate_metal1.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/body/breast_black.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/body/chainmail.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/body/chainmail2.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/body/chainmail3.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/body/china_red.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/body/china_red2.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/body/chunli.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/body/coat_black.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/body/coat_red.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/body/crystal_plate.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/body/dragonarm_blue.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/body/dragonarm_brown.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/body/dragonarm_cyan.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/body/dragonarm_gold.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/body/dragonarm_green.bmp | Bin 0 -> 2102 bytes .../rltiles/player/body/dragonarm_magenta.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/body/dragonarm_white.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/body/dragonsc_blue.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/body/dragonsc_brown.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/body/dragonsc_cyan.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/body/dragonsc_gold.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/body/dragonsc_green.bmp | Bin 0 -> 2102 bytes .../rltiles/player/body/dragonsc_magenta.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/body/dragonsc_white.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/body/dress_green.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/body/dress_white.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/body/edison.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/body/frodo.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/body/gandalf_g.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/body/gil-galad.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/body/gimli.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/body/green_chain.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/body/green_susp.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/body/half_plate.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/body/half_plate2.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/body/half_plate3.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/body/isildur.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/body/jacket2.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/body/jacket3.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/body/jacket_stud.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/body/jessica.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/body/karate.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/body/karate2.bmp | Bin 0 -> 2102 bytes .../rltiles/player/body/lears_chain_mail.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/body/leather2.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/body/leather_armour.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/body/leather_armour2.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/body/leather_armour3.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/body/leather_green.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/body/leather_heavy.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/body/leather_jacket.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/body/leather_metal.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/body/leather_red.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/body/leather_short.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/body/leather_stud.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/body/legolas.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/body/merry.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/body/mesh_black.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/body/mesh_red.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/body/metal_blue.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/body/monk_black.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/body/monk_blue.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/body/neck.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/body/pipin.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/body/pj.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/body/plate.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/body/plate2.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/body/plate_and_cloth.bmp | Bin 0 -> 2102 bytes .../rltiles/player/body/plate_and_cloth2.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/body/plate_black.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/body/ringmail.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/body/robe_black.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/body/robe_black_gold.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/body/robe_black_hood.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/body/robe_black_red.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/body/robe_blue.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/body/robe_blue_green.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/body/robe_blue_white.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/body/robe_brown.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/body/robe_brown2.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/body/robe_brown3.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/body/robe_cyan.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/body/robe_gray2.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/body/robe_green.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/body/robe_green_gold.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/body/robe_magenta.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/body/robe_of_night.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/body/robe_purple.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/body/robe_rainbow.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/body/robe_red.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/body/robe_red2.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/body/robe_red3.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/body/robe_red_gold.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/body/robe_white.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/body/robe_white2.bmp | Bin 0 -> 2102 bytes .../rltiles/player/body/robe_white_green.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/body/robe_white_red.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/body/robe_yellow.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/body/sailor.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/body/sam.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/body/saruman.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/body/scalemail.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/body/scalemail2.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/body/shirt_black.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/body/shirt_black3.bmp | Bin 0 -> 2102 bytes .../rltiles/player/body/shirt_black_and_cloth.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/body/shirt_blue.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/body/shirt_check.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/body/shirt_hawaii.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/body/shirt_vest.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/body/shirt_white1.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/body/shirt_white2.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/body/shirt_white3.bmp | Bin 0 -> 2102 bytes .../rltiles/player/body/shirt_white_yellow.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/body/shoulder_pad.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/body/skirt_onep_grey.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/body/slit_black.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/body/susp_black.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/body/troll_hide.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/body/vanhel1.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/body/vest_red.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/body/vest_red2.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/body/zhor.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/boot/blue_gold.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/boot/hooves.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/boot/long_red.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/boot/long_white.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/boot/mesh_black.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/boot/mesh_blue.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/boot/mesh_red.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/boot/mesh_white.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/boot/middle_brown.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/boot/middle_brown2.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/boot/middle_brown3.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/boot/middle_gold.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/boot/middle_gray.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/boot/middle_green.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/boot/middle_purple.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/boot/middle_ybrown.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/boot/pj.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/boot/short_brown.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/boot/short_brown2.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/boot/short_purple.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/boot/short_red.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/cloak/black.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/cloak/blue.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/cloak/brown.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/cloak/cyan.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/cloak/gray.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/cloak/green.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/cloak/magenta.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/cloak/red.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/cloak/white.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/cloak/yellow.bmp | Bin 0 -> 2102 bytes .../rltiles/player/drchead/drchead_black.bmp | Bin 0 -> 2102 bytes .../rltiles/player/drchead/drchead_brown.bmp | Bin 0 -> 2102 bytes .../rltiles/player/drchead/drchead_green.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/drchead/drchead_grey.bmp | Bin 0 -> 2102 bytes .../rltiles/player/drchead/drchead_mottled.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/drchead/drchead_pale.bmp | Bin 0 -> 2102 bytes .../rltiles/player/drchead/drchead_purple.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/drchead/drchead_red.bmp | Bin 0 -> 2102 bytes .../rltiles/player/drchead/drchead_white.bmp | Bin 0 -> 2102 bytes .../rltiles/player/drchead/drchead_yellow.bmp | Bin 0 -> 2102 bytes .../rltiles/player/drcwing/drcwing_black.bmp | Bin 0 -> 2102 bytes .../rltiles/player/drcwing/drcwing_brown.bmp | Bin 0 -> 2102 bytes .../rltiles/player/drcwing/drcwing_green.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/drcwing/drcwing_grey.bmp | Bin 0 -> 2102 bytes .../rltiles/player/drcwing/drcwing_mottled.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/drcwing/drcwing_pale.bmp | Bin 0 -> 2102 bytes .../rltiles/player/drcwing/drcwing_purple.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/drcwing/drcwing_red.bmp | Bin 0 -> 2102 bytes .../rltiles/player/drcwing/drcwing_white.bmp | Bin 0 -> 2102 bytes .../rltiles/player/drcwing/drcwing_yellow.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/hair/aragorn.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/hair/arwen.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/hair/boromir.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/hair/brown1.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/hair/brown2.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/hair/elf_black.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/hair/elf_red.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/hair/elf_white.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/hair/elf_yellow.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/hair/fem_black.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/hair/fem_red.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/hair/fem_white.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/hair/fem_yellow.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/hair/frodo.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/hair/legolas.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/hair/long_black.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/hair/long_red.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/hair/long_white.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/hair/long_yellow.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/hair/merry.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/hair/pigtail_red.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/hair/pj.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/hair/sam.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/hair/short_black.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/hair/short_red.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/hair/short_white.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/hair/short_yellow.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/hand1/aragorn.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/hand1/arga.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/hand1/arwen.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/hand1/asmodeus.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/hand1/axe.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/hand1/axe2.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/hand1/axe_blood.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/hand1/axe_double.bmp | Bin 0 -> 2102 bytes .../rltiles/player/hand1/axe_executioner.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/hand1/axe_short.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/hand1/axe_small.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/hand1/axe_trog.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/hand1/black_sword.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/hand1/black_whip.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/hand1/bladehands.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/hand1/blessed_blade.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/hand1/bloodbane.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/hand1/blowgun.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/hand1/bone_lantern.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/hand1/boromir.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/hand1/bottle.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/hand1/bow.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/hand1/bow2.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/hand1/bow3.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/hand1/bow_blue.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/hand1/box.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/hand1/broadsword.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/hand1/chilly_death.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/hand1/club.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/hand1/club2.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/hand1/club3.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/hand1/club_slant.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/hand1/crossbow.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/hand1/crossbow2.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/hand1/crossbow3.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/hand1/crossbow4.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/hand1/crossbow_fire.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/hand1/crystal.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/hand1/d_glaive.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/hand1/dagger.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/hand1/dagger_slant.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/hand1/deck.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/hand1/dirt.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/hand1/disc.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/hand1/dispater.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/hand1/doom_knight.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/hand1/double_sword.bmp | Bin 0 -> 2102 bytes .../rltiles/player/hand1/elemental_staff.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/hand1/eveningstar.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/hand1/falchion.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/hand1/fan.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/hand1/finisher.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/hand1/fire_blue.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/hand1/fire_cyan.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/hand1/fire_dark.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/hand1/fire_green.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/hand1/fire_red.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/hand1/fire_white.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/hand1/fire_white2.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/hand1/flaming_death.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/hand1/fork2.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/hand1/frail_ball.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/hand1/frail_ball2.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/hand1/frail_ball3.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/hand1/frail_ball4.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/hand1/frail_balls.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/hand1/frail_spike.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/hand1/frail_stick.bmp | Bin 0 -> 2102 bytes .../rltiles/player/hand1/frail_stick_slant.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/hand1/frodo.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/hand1/gandalf.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/hand1/giant_club.bmp | Bin 0 -> 2102 bytes .../rltiles/player/hand1/giant_club_slant.bmp | Bin 0 -> 2102 bytes .../rltiles/player/hand1/giant_club_spike.bmp | Bin 0 -> 2102 bytes .../player/hand1/giant_club_spike_slant.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/hand1/gimli.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/hand1/glaive.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/hand1/glaive2.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/hand1/glaive3.bmp | Bin 0 -> 2102 bytes .../rltiles/player/hand1/glaive_of_prune.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/hand1/great_axe.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/hand1/great_bow.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/hand1/great_staff.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/hand1/great_sword.bmp | Bin 0 -> 2102 bytes .../rltiles/player/hand1/great_sword_slant.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/hand1/halberd.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/hand1/hammer.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/hand1/hammer2.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/hand1/hammer3.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/hand1/hand_axe.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/hand1/head.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/hand1/heavy_sword.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/hand1/hook.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/hand1/horn.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/hand1/jihad.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/hand1/katana.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/hand1/katana_slant.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/hand1/knife.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/hand1/krishna.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/hand1/lance.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/hand1/lance2.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/hand1/lantern.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/hand1/large_mace.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/hand1/leech.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/hand1/legolas.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/hand1/light_blue.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/hand1/light_red.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/hand1/light_yellow.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/hand1/long_sword.bmp | Bin 0 -> 2102 bytes .../rltiles/player/hand1/long_sword_slant.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/hand1/mace.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/hand1/mace2.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/hand1/mace3.bmp | Bin 0 -> 2102 bytes .../rltiles/player/hand1/mace_of_variability.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/hand1/mace_ruby.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/hand1/morg.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/hand1/morningstar.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/hand1/morningstar2.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/hand1/nunchaku.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/hand1/olgreb.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/hand1/orb.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/hand1/pick_axe.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/hand1/pike.bmp | Bin 0 -> 2102 bytes .../rltiles/player/hand1/plutonium_sword.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/hand1/pole_forked.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/hand1/punk.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/hand1/quarterstaff1.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/hand1/quarterstaff2.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/hand1/quarterstaff3.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/hand1/quarterstaff4.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/hand1/sabre.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/hand1/saruman.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/hand1/sceptre.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/hand1/scimitar.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/hand1/scimitar2.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/hand1/scythe.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/hand1/scythe_slant.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/hand1/short_sword.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/hand1/short_sword2.bmp | Bin 0 -> 2102 bytes .../rltiles/player/hand1/short_sword_slant.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/hand1/sickle.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/hand1/singing_sword.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/hand1/skull.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/hand1/sling.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/hand1/sniper.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/hand1/spark.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/hand1/spear1.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/hand1/spear2.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/hand1/spear3.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/hand1/spear4.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/hand1/spear5.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/hand1/staff_evil.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/hand1/staff_fork.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/hand1/staff_large.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/hand1/staff_mage.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/hand1/staff_mage2.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/hand1/staff_mummy.bmp | Bin 0 -> 2102 bytes .../rltiles/player/hand1/staff_ring_blue.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/hand1/staff_ruby.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/hand1/staff_skull.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/hand1/stick.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/hand1/stone.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/hand1/sword2.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/hand1/sword3.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/hand1/sword_black.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/hand1/sword_breaker.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/hand1/sword_jag.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/hand1/sword_seven.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/hand1/sword_thief.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/hand1/sword_tri.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/hand1/sword_twist.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/hand1/trident.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/hand1/trident2.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/hand1/trident3.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/hand1/trident_demon.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/hand1/trident_elec.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/hand1/triple_sword.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/hand1/voodoo.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/hand1/war_axe.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/hand1/whip.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/hand1/zonguldrok.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/hand2/bladehands.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/hand2/book_black.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/hand2/book_blue.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/hand2/book_blue_dim.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/hand2/book_cyan.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/hand2/book_cyan_dim.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/hand2/book_green.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/hand2/book_green_dim.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/hand2/book_magenta.bmp | Bin 0 -> 2102 bytes .../rltiles/player/hand2/book_magenta_dim.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/hand2/book_red.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/hand2/book_red_dim.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/hand2/book_sky.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/hand2/book_white.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/hand2/book_yellow.bmp | Bin 0 -> 2102 bytes .../rltiles/player/hand2/book_yellow_dim.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/hand2/boromir.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/hand2/bullseye.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/hand2/dagger.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/hand2/fire_cyan.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/hand2/fire_dark.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/hand2/fire_green.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/hand2/fire_white.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/hand2/fire_white2.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/hand2/gil-galad.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/hand2/lantern.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/hand2/light_blue.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/hand2/light_red.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/hand2/light_yellow.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/hand2/pj.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/hand2/sabre.bmp | Bin 0 -> 2102 bytes .../rltiles/player/hand2/shield_diamond_yellow.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/hand2/shield_kite1.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/hand2/shield_kite2.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/hand2/shield_kite3.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/hand2/shield_kite4.bmp | Bin 0 -> 2102 bytes .../rltiles/player/hand2/shield_knight_blue.bmp | Bin 0 -> 2102 bytes .../rltiles/player/hand2/shield_knight_gray.bmp | Bin 0 -> 2102 bytes .../rltiles/player/hand2/shield_knight_rw.bmp | Bin 0 -> 2102 bytes .../rltiles/player/hand2/shield_long_cross.bmp | Bin 0 -> 2102 bytes .../rltiles/player/hand2/shield_long_red.bmp | Bin 0 -> 2102 bytes .../rltiles/player/hand2/shield_middle_black.bmp | Bin 0 -> 2102 bytes .../rltiles/player/hand2/shield_middle_brown.bmp | Bin 0 -> 2102 bytes .../rltiles/player/hand2/shield_middle_cyan.bmp | Bin 0 -> 2102 bytes .../rltiles/player/hand2/shield_middle_ethn.bmp | Bin 0 -> 2102 bytes .../rltiles/player/hand2/shield_middle_gray.bmp | Bin 0 -> 2102 bytes .../rltiles/player/hand2/shield_middle_round.bmp | Bin 0 -> 2102 bytes .../rltiles/player/hand2/shield_middle_unicorn.bmp | Bin 0 -> 2102 bytes .../rltiles/player/hand2/shield_of_resistance.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/hand2/shield_round1.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/hand2/shield_round2.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/hand2/shield_round3.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/hand2/shield_round4.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/hand2/shield_round5.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/hand2/shield_round6.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/hand2/shield_round7.bmp | Bin 0 -> 2102 bytes .../rltiles/player/hand2/shield_round_small.bmp | Bin 0 -> 2102 bytes .../rltiles/player/hand2/shield_round_small2.bmp | Bin 0 -> 2102 bytes .../rltiles/player/hand2/shield_round_white.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/hand2/shield_shaman.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/hand2/shield_skull.bmp | Bin 0 -> 2102 bytes .../rltiles/player/hand2/short_sword_slant.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/hand2/spark.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/hand2/torch.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/hand2/torsh2.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/head/art_dragonhelm.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/head/band_blue.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/head/band_magenta.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/head/band_red.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/head/band_white.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/head/band_yellow.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/head/bandana_ybrown.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/head/black_horn.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/head/black_horn2.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/head/blue_horn_gold.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/head/brown_gold.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/head/cap_black1.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/head/cap_blue.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/head/chain.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/head/cheek_red.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/head/clown1.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/head/cone_blue.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/head/cone_red.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/head/crown_gold.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/head/dyrovepreva.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/head/feather_blue.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/head/feather_green.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/head/feather_red.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/head/feather_white.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/head/feather_yellow.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/head/fhelm_gray3.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/head/fhelm_horn2.bmp | Bin 0 -> 2102 bytes .../rltiles/player/head/fhelm_horn_yellow.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/head/full_black.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/head/full_gold.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/head/gandalf.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/head/hat_black.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/head/healer.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/head/helm_gimli.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/head/helm_green.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/head/helm_plume.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/head/helm_red.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/head/hood_black2.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/head/hood_cyan.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/head/hood_gray.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/head/hood_green.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/head/hood_green2.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/head/hood_orange.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/head/hood_red.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/head/hood_red2.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/head/hood_white.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/head/hood_white2.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/head/hood_ybrown.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/head/horn_evil.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/head/horn_gray.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/head/horned.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/head/horns1.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/head/horns2.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/head/horns3.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/head/iron1.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/head/iron2.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/head/iron3.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/head/iron_red.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/head/isildur.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/head/mummy.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/head/ninja_black.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/head/straw.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/head/taiso_blue.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/head/taiso_magenta.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/head/taiso_red.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/head/taiso_white.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/head/taiso_yellow.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/head/turban_brown.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/head/turban_purple.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/head/turban_white.bmp | Bin 0 -> 2102 bytes .../rltiles/player/head/wizard_blackgold.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/head/wizard_blackred.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/head/wizard_blue.bmp | Bin 0 -> 2102 bytes .../rltiles/player/head/wizard_bluegreen.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/head/wizard_brown.bmp | Bin 0 -> 2102 bytes .../rltiles/player/head/wizard_darkgreen.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/head/wizard_purple.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/head/wizard_red.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/head/wizard_white.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/head/yellow_wing.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/leg/belt_gray.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/leg/belt_redbrown.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/leg/bikini_red.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/leg/chunli.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/leg/garter.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/leg/leg_armor00.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/leg/leg_armor01.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/leg/leg_armor02.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/leg/leg_armor03.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/leg/leg_armor04.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/leg/leg_armor05.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/leg/loincloth_red.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/leg/long_red.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/leg/metal_gray.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/leg/metal_green.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/leg/pants16.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/leg/pants_black.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/leg/pants_blue.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/leg/pants_brown.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/leg/pants_darkgreen.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/leg/pants_l_white.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/leg/pants_orange.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/leg/pants_red.bmp | Bin 0 -> 2102 bytes .../rltiles/player/leg/pants_short_brown.bmp | Bin 0 -> 2102 bytes .../rltiles/player/leg/pants_short_brown3.bmp | Bin 0 -> 2102 bytes .../rltiles/player/leg/pants_short_darkbrown.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/leg/pants_short_gray.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/leg/pj.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/leg/skirt_blue.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/leg/skirt_green.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/player/leg/skirt_red.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/leg/skirt_white.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/leg/skirt_white2.bmp | Bin 0 -> 2102 bytes .../source/rltiles/player/leg/trouser_green.bmp | Bin 0 -> 2102 bytes crawl-ref/source/rltiles/tool/bm.c | 558 +++ crawl-ref/source/rltiles/tool/bm.h | 26 + crawl-ref/source/rltiles/tool/dcpl.c | 581 +++ crawl-ref/source/rltiles/tool/dcqv.c | 847 +++++ crawl-ref/source/rltiles/tool/dcreverse.c | 216 ++ crawl-ref/source/rltiles/tool/dctile.c | 642 ++++ crawl-ref/source/rltiles/tool/mkmap.c | 408 +++ crawl-ref/source/rltiles/tool/mkmapq.c | 783 ++++ crawl-ref/source/rltiles/tool/palette.h | 355 ++ crawl-ref/source/rltiles/tool/shade.c | 254 ++ crawl-ref/source/rltiles/walls2d/hall.bmp | Bin 0 -> 9270 bytes crawl-ref/source/rltiles/walls2d/hall.png | Bin 0 -> 3148 bytes crawl-ref/source/rltiles/walls2d/hive.bmp | Bin 0 -> 9270 bytes crawl-ref/source/rltiles/walls2d/hive.png | Bin 0 -> 4079 bytes crawl-ref/source/rltiles/walls2d/ice.bmp | Bin 0 -> 9270 bytes crawl-ref/source/rltiles/walls2d/ice.png | Bin 0 -> 3698 bytes crawl-ref/source/rltiles/walls2d/lair.bmp | Bin 0 -> 9270 bytes crawl-ref/source/rltiles/walls2d/lair.png | Bin 0 -> 3883 bytes crawl-ref/source/rltiles/walls2d/normal.bmp | Bin 0 -> 9270 bytes crawl-ref/source/rltiles/walls2d/normal.png | Bin 0 -> 3413 bytes crawl-ref/source/rltiles/walls2d/orc.bmp | Bin 0 -> 9270 bytes crawl-ref/source/rltiles/walls2d/orc.png | Bin 0 -> 3883 bytes crawl-ref/source/rltiles/walls2d/slime.bmp | Bin 0 -> 9270 bytes crawl-ref/source/rltiles/walls2d/slime.png | Bin 0 -> 3792 bytes crawl-ref/source/rltiles/walls2d/snake.bmp | Bin 0 -> 9270 bytes crawl-ref/source/rltiles/walls2d/snake.png | Bin 0 -> 3284 bytes crawl-ref/source/rltiles/walls2d/swamp.bmp | Bin 0 -> 9270 bytes crawl-ref/source/rltiles/walls2d/swamp.png | Bin 0 -> 3902 bytes crawl-ref/source/rltiles/walls2d/tomb.bmp | Bin 0 -> 9270 bytes crawl-ref/source/rltiles/walls2d/tomb.png | Bin 0 -> 3212 bytes crawl-ref/source/rltiles/walls2d/undead.bmp | Bin 0 -> 9270 bytes crawl-ref/source/rltiles/walls2d/undead.png | Bin 0 -> 3717 bytes crawl-ref/source/rltiles/walls2d/vault.bmp | Bin 0 -> 9270 bytes crawl-ref/source/rltiles/walls2d/vault.png | Bin 0 -> 3333 bytes crawl-ref/source/rltiles/walls2d/z_blue.bmp | Bin 0 -> 9270 bytes crawl-ref/source/rltiles/walls2d/z_blue.png | Bin 0 -> 3574 bytes crawl-ref/source/rltiles/walls2d/z_cyan.bmp | Bin 0 -> 9270 bytes crawl-ref/source/rltiles/walls2d/z_cyan.png | Bin 0 -> 3572 bytes crawl-ref/source/rltiles/walls2d/z_gray.bmp | Bin 0 -> 9270 bytes crawl-ref/source/rltiles/walls2d/z_gray.png | Bin 0 -> 3528 bytes crawl-ref/source/rltiles/walls2d/z_green.bmp | Bin 0 -> 9270 bytes crawl-ref/source/rltiles/walls2d/z_green.png | Bin 0 -> 3572 bytes crawl-ref/source/rltiles/walls2d/z_magenta.bmp | Bin 0 -> 9270 bytes crawl-ref/source/rltiles/walls2d/z_magenta.png | Bin 0 -> 3573 bytes crawl-ref/source/rltiles/walls2d/z_red.bmp | Bin 0 -> 9270 bytes crawl-ref/source/rltiles/walls2d/z_red.png | Bin 0 -> 3563 bytes crawl-ref/source/rltiles/walls2d/z_yellow.bmp | Bin 0 -> 9270 bytes crawl-ref/source/rltiles/walls2d/z_yellow.png | Bin 0 -> 3572 bytes crawl-ref/source/shopping.cc | 8 +- crawl-ref/source/spells2.cc | 15 + crawl-ref/source/stuff.cc | 12 +- crawl-ref/source/tags.cc | 197 + crawl-ref/source/tags.h | 1 + crawl-ref/source/tile1.cc | 3813 ++++++++++++++++++++ crawl-ref/source/tile2.cc | 3023 ++++++++++++++++ crawl-ref/source/tiles.h | 213 ++ crawl-ref/source/tutorial.cc | 4 + crawl-ref/source/view.cc | 211 +- crawl-ref/source/view.h | 2 +- 2437 files changed, 26517 insertions(+), 109 deletions(-) create mode 100644 crawl-ref/source/guic-win.cc create mode 100644 crawl-ref/source/guic-x11.cc create mode 100644 crawl-ref/source/guic.cc create mode 100644 crawl-ref/source/guic.h create mode 100644 crawl-ref/source/libgui.cc create mode 100644 crawl-ref/source/libgui.h create mode 100644 crawl-ref/source/libwt.cc create mode 100644 crawl-ref/source/libx11.cc create mode 100644 crawl-ref/source/makefile.x11 create mode 100644 crawl-ref/source/makefile_tiles.mgw create mode 100644 crawl-ref/source/rltiles/blank.bmp create mode 100644 crawl-ref/source/rltiles/bmp2png/README create mode 100644 crawl-ref/source/rltiles/bmp2png/bmp2png.c create mode 100644 crawl-ref/source/rltiles/bmp2png/bmp2png.dsp create mode 100644 crawl-ref/source/rltiles/bmp2png/bmphed.h create mode 100644 crawl-ref/source/rltiles/bmp2png/common.c create mode 100644 crawl-ref/source/rltiles/bmp2png/common.h create mode 100644 crawl-ref/source/rltiles/bmp2png/makefile.bcc create mode 100644 crawl-ref/source/rltiles/bmp2png/makefile.dj2 create mode 100644 crawl-ref/source/rltiles/bmp2png/makefile.lin create mode 100644 crawl-ref/source/rltiles/bmp2png/png2bmp.c create mode 100644 crawl-ref/source/rltiles/bmp2png/png2bmp.dsp create mode 100644 crawl-ref/source/rltiles/dc-2d.txt create mode 100644 crawl-ref/source/rltiles/dc-co.txt create mode 100644 crawl-ref/source/rltiles/dc-dngn.txt create mode 100644 crawl-ref/source/rltiles/dc-dngn/dngn_altar.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/dngn_altar_beogh.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/dngn_altar_elyvilon.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/dngn_altar_kikubaaqudgha.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/dngn_altar_lugonu.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/dngn_altar_makhleb.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/dngn_altar_nemelex_xobeh.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/dngn_altar_okawaru.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/dngn_altar_shining_one.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/dngn_altar_sif_muna.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/dngn_altar_trog.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/dngn_altar_vehumet.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/dngn_altar_xom.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/dngn_altar_yredelemnul.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/dngn_altar_zin.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/dngn_blue_fountain.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/dngn_branch_stairs.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/dngn_closed_door.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/dngn_deep_water.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/dngn_dry_fountain.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/dngn_enter.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/dngn_enter_abyss.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/dngn_enter_cocytus.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/dngn_enter_dis.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/dngn_enter_gehenna.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/dngn_enter_hell.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/dngn_enter_labyrinth.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/dngn_enter_pandemonium.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/dngn_enter_shop.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/dngn_enter_tartarus.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/dngn_entrance.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/dngn_exit.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/dngn_floor.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/dngn_granite_statue.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/dngn_green_crystal_wall.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/dngn_ice_statue.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/dngn_lava.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/dngn_metal_wall.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/dngn_open_door.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/dngn_orange_crystal_statue.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/dngn_orcish_idol.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/dngn_return.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/dngn_rock_stairs_down.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/dngn_rock_stairs_up.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/dngn_rock_wall_00.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/dngn_rock_wall_01.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/dngn_rock_wall_02.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/dngn_rock_wall_03.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/dngn_rock_wall_04.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/dngn_rock_wall_05.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/dngn_rock_wall_06.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/dngn_rock_wall_07.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/dngn_rock_wall_08.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/dngn_rock_wall_09.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/dngn_rock_wall_10.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/dngn_rock_wall_11.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/dngn_rock_wall_12.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/dngn_rock_wall_13.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/dngn_rock_wall_14.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/dngn_rock_wall_15.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/dngn_shallow_water.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/dngn_silver_statue.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/dngn_sparkling_fountain.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/dngn_stone_arch.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/dngn_stone_wall.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/dngn_transit_pandemonium.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/dngn_trap_iii.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/dngn_trap_magical.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/dngn_trap_mechanical.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/dngn_unseen.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/dngn_wax_wall.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/floor/bog_green0.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/floor/bog_green1.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/floor/bog_green2.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/floor/bog_green3.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/floor/brick_gray0.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/floor/brick_gray1.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/floor/brick_gray2.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/floor/brick_gray3.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/floor/dirt0.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/floor/dirt1.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/floor/dirt2.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/floor/dirt_e.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/floor/dirt_full.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/floor/dirt_n.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/floor/dirt_ne.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/floor/dirt_nw.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/floor/dirt_s.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/floor/dirt_se.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/floor/dirt_sw.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/floor/dirt_w.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/floor/grass0.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/floor/grass1.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/floor/grass2.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/floor/grass_e.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/floor/grass_full.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/floor/grass_n.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/floor/grass_ne.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/floor/grass_nw.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/floor/grass_s.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/floor/grass_se.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/floor/grass_sw.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/floor/grass_w.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/floor/hive0.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/floor/hive1.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/floor/hive2.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/floor/hive3.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/floor/ice0.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/floor/ice1.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/floor/ice2.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/floor/ice3.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/floor/lair0.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/floor/lair1.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/floor/lair2.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/floor/lair3.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/floor/lava0.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/floor/lava1.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/floor/lava2.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/floor/lava3.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/floor/mesh0.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/floor/mesh1.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/floor/mesh2.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/floor/mesh3.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/floor/pebble_gray0.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/floor/pebble_gray1.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/floor/pebble_gray2.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/floor/pebble_gray3.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/floor/pebble_gray4.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/floor/pedestal_e.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/floor/pedestal_full.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/floor/pedestal_n.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/floor/pedestal_ne.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/floor/pedestal_nw.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/floor/pedestal_s.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/floor/pedestal_se.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/floor/pedestal_sw.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/floor/pedestal_w.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/floor/rect_gray0.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/floor/rect_gray1.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/floor/rect_gray2.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/floor/rect_gray3.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/floor/rough_brown0.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/floor/rough_brown1.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/floor/rough_brown2.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/floor/rough_brown3.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/floor/rough_red0.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/floor/rough_red1.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/floor/rough_red2.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/floor/rough_red3.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/floor/snake0.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/floor/snake1.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/floor/snake2.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/floor/snake3.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/floor/swamp0.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/floor/swamp1.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/floor/swamp2.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/floor/swamp3.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/floor/tomb0.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/floor/tomb1.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/floor/tomb2.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/floor/tomb3.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/rock_stairs_down.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/rock_stairs_up.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/stone_stairs_down.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/stone_stairs_up.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/wall/brick_brown0.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/wall/brick_brown1.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/wall/brick_brown2.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/wall/brick_brown3.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/wall/brick_gray0.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/wall/brick_gray1.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/wall/brick_gray2.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/wall/brick_gray3.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/wall/hive0.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/wall/hive1.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/wall/hive2.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/wall/hive3.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/wall/ice0.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/wall/ice1.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/wall/ice2.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/wall/ice3.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/wall/lair0.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/wall/lair1.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/wall/lair2.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/wall/lair3.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/wall/marble_green0.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/wall/marble_green1.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/wall/marble_green2.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/wall/marble_green3.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/wall/pebble_red0.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/wall/pebble_red1.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/wall/pebble_red2.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/wall/pebble_red3.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/wall/relief0.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/wall/relief1.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/wall/relief2.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/wall/relief3.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/wall/slime0.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/wall/slime1.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/wall/slime2.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/wall/slime3.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/wall/snake0.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/wall/snake1.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/wall/snake2.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/wall/snake3.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/wall/stone2_gray0.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/wall/stone2_gray1.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/wall/stone2_gray2.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/wall/stone2_gray3.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/wall/stone_gray0.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/wall/stone_gray1.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/wall/stone_gray2.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/wall/stone_gray3.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/wall/tomb0.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/wall/tomb1.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/wall/tomb2.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/wall/tomb3.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/wall/undead0.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/wall/undead1.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/wall/undead2.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/wall/undead3.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/wall/vault0.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/wall/vault1.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/wall/vault2.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/wall/vault3.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/wall/zot_blue0.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/wall/zot_blue1.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/wall/zot_blue2.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/wall/zot_blue3.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/wall/zot_cyan0.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/wall/zot_cyan1.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/wall/zot_cyan2.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/wall/zot_cyan3.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/wall/zot_gray0.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/wall/zot_gray1.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/wall/zot_gray2.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/wall/zot_gray3.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/wall/zot_green0.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/wall/zot_green1.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/wall/zot_green2.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/wall/zot_green3.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/wall/zot_magenta0.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/wall/zot_magenta1.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/wall/zot_magenta2.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/wall/zot_magenta3.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/wall/zot_red0.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/wall/zot_red1.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/wall/zot_red2.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/wall/zot_red3.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/wall/zot_yellow0.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/wall/zot_yellow1.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/wall/zot_yellow2.bmp create mode 100644 crawl-ref/source/rltiles/dc-dngn/wall/zot_yellow3.bmp create mode 100644 crawl-ref/source/rltiles/dc-item.txt create mode 100644 crawl-ref/source/rltiles/dc-misc.txt create mode 100644 crawl-ref/source/rltiles/dc-misc/blood_blue.bmp create mode 100644 crawl-ref/source/rltiles/dc-misc/blood_green.bmp create mode 100644 crawl-ref/source/rltiles/dc-misc/blood_magenta.bmp create mode 100644 crawl-ref/source/rltiles/dc-misc/blood_red.bmp create mode 100644 crawl-ref/source/rltiles/dc-misc/char20.bmp create mode 100644 crawl-ref/source/rltiles/dc-misc/char28.bmp create mode 100644 crawl-ref/source/rltiles/dc-misc/char30.bmp create mode 100644 crawl-ref/source/rltiles/dc-misc/char38.bmp create mode 100644 crawl-ref/source/rltiles/dc-misc/char40.bmp create mode 100644 crawl-ref/source/rltiles/dc-misc/char48.bmp create mode 100644 crawl-ref/source/rltiles/dc-misc/char50.bmp create mode 100644 crawl-ref/source/rltiles/dc-misc/char58.bmp create mode 100644 crawl-ref/source/rltiles/dc-misc/char60.bmp create mode 100644 crawl-ref/source/rltiles/dc-misc/char68.bmp create mode 100644 crawl-ref/source/rltiles/dc-misc/char70.bmp create mode 100644 crawl-ref/source/rltiles/dc-misc/char78.bmp create mode 100644 crawl-ref/source/rltiles/dc-misc/cursor.bmp create mode 100644 crawl-ref/source/rltiles/dc-misc/cursor_green.bmp create mode 100644 crawl-ref/source/rltiles/dc-misc/cursor_red.bmp create mode 100644 crawl-ref/source/rltiles/dc-misc/error.bmp create mode 100644 crawl-ref/source/rltiles/dc-misc/heart.bmp create mode 100644 crawl-ref/source/rltiles/dc-misc/magicmap.bmp create mode 100644 crawl-ref/source/rltiles/dc-misc/mask_deep_water.bmp create mode 100644 crawl-ref/source/rltiles/dc-misc/mask_lava.bmp create mode 100644 crawl-ref/source/rltiles/dc-misc/mask_shallow_water.bmp create mode 100644 crawl-ref/source/rltiles/dc-misc/may_stab_brand.bmp create mode 100644 crawl-ref/source/rltiles/dc-misc/ray.bmp create mode 100644 crawl-ref/source/rltiles/dc-misc/sink_mask.bmp create mode 100644 crawl-ref/source/rltiles/dc-misc/slot.bmp create mode 100644 crawl-ref/source/rltiles/dc-misc/slot_cursed.bmp create mode 100644 crawl-ref/source/rltiles/dc-misc/slot_eq.bmp create mode 100644 crawl-ref/source/rltiles/dc-misc/slot_eq_cursed.bmp create mode 100644 crawl-ref/source/rltiles/dc-misc/something_under.bmp create mode 100644 crawl-ref/source/rltiles/dc-misc/stab_brand.bmp create mode 100644 crawl-ref/source/rltiles/dc-misc/txt1.bmp create mode 100644 crawl-ref/source/rltiles/dc-misc/txt2.bmp create mode 100644 crawl-ref/source/rltiles/dc-misc/txt3.bmp create mode 100644 crawl-ref/source/rltiles/dc-misc/txt4.bmp create mode 100644 crawl-ref/source/rltiles/dc-misc/unseen.bmp create mode 100644 crawl-ref/source/rltiles/dc-misc/unseen_armour.bmp create mode 100644 crawl-ref/source/rltiles/dc-misc/unseen_item.bmp create mode 100644 crawl-ref/source/rltiles/dc-misc/unseen_monster.bmp create mode 100644 crawl-ref/source/rltiles/dc-misc/unseen_weapon.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon.txt create mode 100644 crawl-ref/source/rltiles/dc-mon/abomination_large.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/abomination_large1.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/abomination_large2.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/abomination_large3.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/abomination_large4.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/abomination_large5.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/abomination_large6.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/abomination_small.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/acid_blob.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/adolf.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/agnes.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/air_elemental.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/ancient_lich.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/angel.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/antaeus.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/asmodeus.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/azure_jelly.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/ball_lightning.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/balrug.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/bear.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/beast.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/big_fish.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/big_kobold.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/black_bear.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/black_snake.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/blink_frog.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/blork_the_orc0.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/blue_death.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/blue_devil.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/boggart.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/boring_beetle.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/boris.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/boulder_beetle.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/brain_worm.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/brown_ooze.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/brown_snake.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/bumblebee.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/butterfly.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/butterfly1.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/butterfly2.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/butterfly3.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/butterfly4.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/butterfly5.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/butterfly6.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/cacodemon.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/centaur.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/centaur_warrior.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/cerebov.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/clay_golem.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/crystal_golem.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/curse_skull.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/curse_toe.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/cyclops.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/daeva.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/death_cob.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/death_drake.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/death_ooze.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/death_yak.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/deep_elf_annihilator.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/deep_elf_blademaster.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/deep_elf_conjurer.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/deep_elf_death_mage.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/deep_elf_demonologist.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/deep_elf_fighter0.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/deep_elf_high_priest.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/deep_elf_knight0.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/deep_elf_mage.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/deep_elf_master_archer.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/deep_elf_priest.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/deep_elf_soldier0.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/deep_elf_sorcerer.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/deep_elf_summoner.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/deep_troll.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/demonic_crawler.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/dispater.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/donald.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/dragon.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/duane0.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/earth_elemental.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/edmund0.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/efreet.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/electric_golem.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/electrical_eel.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/elephant_slug.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/elf.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/ereshkigal.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/erica.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/erolcha.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/ettin.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/executioner.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/eye_of_devastation.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/eye_of_draining.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/fiend.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/fire_elemental.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/fire_giant.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/fire_vortex.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/firedrake.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/flayed_ghost.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/flying_skull.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/frances0.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/francis.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/frederick.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/freezing_wraith.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/frost_giant.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/fungus.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/gargoyle.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/geryon.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/ghost.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/ghoul.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/giant_amoeba.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/giant_ant.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/giant_bat.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/giant_beetle.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/giant_blowfly.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/giant_brown_frog.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/giant_centipede.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/giant_cockroach.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/giant_eyeball.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/giant_frog.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/giant_gecko.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/giant_goldfish.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/giant_iguana.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/giant_lizard.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/giant_mite.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/giant_mosquito.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/giant_newt.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/giant_orange_brain.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/giant_slug.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/giant_snail.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/giant_spore.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/gila_monster.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/gloorx_vloq.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/glowing_shapeshifter.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/gnoll0.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/goblin0.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/golden_dragon.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/great_orb_of_eyes.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/greater_mummy.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/greater_naga0.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/green_death.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/green_rat.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/grey_rat.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/grey_snake.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/griffon.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/grizzly_bear.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/guardian_mummy.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/guardian_naga.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/hairy_devil.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/harold0.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/hell_hog.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/hell_hound.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/hell_knight.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/hellion.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/hellwing.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/hill_giant.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/hippogriff.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/hobgoblin0.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/hog.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/hound.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/human.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/hungry_ghost.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/hydra1.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/hydra2.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/hydra3.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/hydra4.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/hydra5.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/ice_beast.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/ice_devil.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/ice_dragon.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/ice_fiend.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/ijyb0.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/imp.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/insubstantial_wisp.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/iron_devil.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/iron_dragon.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/iron_golem.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/iron_troll.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/jackal.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/jelly.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/jellyfish.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/jessica.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/joseph0.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/josephine.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/jozef0.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/killer_bee.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/killer_bee_larva.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/killer_klown.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/kobold.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/kobold_demonologist.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/komodo_dragon.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/large_mimic.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/lava_fish.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/lava_snake.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/lava_worm.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/lemure.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/lich.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/lindwurm.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/lom_lobon.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/lorocyproca.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/louise.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/manes.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/manticore.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/margery.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/maud0.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/metal_gargoyle.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/michael.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/midge.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/minotaur.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/mnoleg.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/molten_gargoyle.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/moth_of_wrath.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/mottled_dragon.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/mummy.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/mummy_priest.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/murray.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/naga0.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/naga_mage.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/naga_warrior0.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/necromancer.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/necrophage.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/neqoxec.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/norbert.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/norris2.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/ogre.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/ogre_mage.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/oklob_plant.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/ooze.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/orange_demon.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/orange_rat.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/orb_guardian.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/orb_of_fire.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/orc0.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/orc_high_priest.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/orc_knight0.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/orc_priest.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/orc_sorcerer.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/orc_warlord0.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/orc_warrior0.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/orc_wizard.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/pandemonium_demon.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/phantom.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/pit_fiend.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/plant.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/polar_bear.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/polyphemus.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/program_bug.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/psyche.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/pulsating_lump.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/quasit.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/queen_ant.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/queen_bee.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/quicksilver_dragon.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/quokka.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/rakshasa.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/rakshasa_fake.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/rat.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/reaper.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/red_devil.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/red_wasp.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/redback.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/rock_troll.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/rotting_devil.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/rotting_hulk.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/royal_jelly.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/rupert0.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/salamander.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/scorpion.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/serpent_of_hell.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/shadow.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/shadow_demon.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/shadow_dragon.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/shadow_fiend.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/shadow_imp.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/shadow_wraith.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/shapeshifter.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/sheep.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/shining_eye.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/sigmund.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/simulacrum_large.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/simulacrum_small.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/skeletal_dragon.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/skeletal_warrior0.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/skeleton_large.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/skeleton_small.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/slime_creature.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/small_snake.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/smoke_demon.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/snake.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/snorg.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/soldier_ant.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/soul_eater.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/spatial_vortex.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/spectral_thing.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/spectral_warrior.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/sphinx.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/spiny_frog.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/spiny_worm.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/steam_dragon.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/stone_giant.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/stone_golem.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/storm_dragon.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/sun_demon.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/swamp_dragon.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/swamp_drake.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/swamp_worm.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/tentacled_monstrosity.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/terence0.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/tiamat.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/titan.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/toenail_golem.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/tormentor.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/troll.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/two_headed_ogre.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/ufetubus.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/ugly_thing.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/unseen_horror.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/urug0.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/vampire.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/vampire_knight.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/vampire_mage.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/vapour.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/vault_guard0.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/very_ugly_thing.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/wandering_mushroom.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/war_dog.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/warg.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/water_elemental.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/wayne0.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/white_imp.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/wight.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/wizard.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/wolf.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/wolf_spider.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/wood_golem.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/worm.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/wraith.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/wyvern.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/xtahua.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/yak.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/yaktaur.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/yaktaur_captain.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/yellow_snake.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/yellow_wasp.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/ynoxinul.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/zombie_large.bmp create mode 100644 crawl-ref/source/rltiles/dc-mon/zombie_small.bmp create mode 100644 crawl-ref/source/rltiles/dc-pl.txt create mode 100644 crawl-ref/source/rltiles/dc-urand.txt create mode 100644 crawl-ref/source/rltiles/dc-wall2d.txt create mode 100644 crawl-ref/source/rltiles/effect/acid_venom.bmp create mode 100644 crawl-ref/source/rltiles/effect/arrow0.bmp create mode 100644 crawl-ref/source/rltiles/effect/arrow1.bmp create mode 100644 crawl-ref/source/rltiles/effect/arrow2.bmp create mode 100644 crawl-ref/source/rltiles/effect/arrow3.bmp create mode 100644 crawl-ref/source/rltiles/effect/arrow4.bmp create mode 100644 crawl-ref/source/rltiles/effect/arrow5.bmp create mode 100644 crawl-ref/source/rltiles/effect/arrow6.bmp create mode 100644 crawl-ref/source/rltiles/effect/arrow7.bmp create mode 100644 crawl-ref/source/rltiles/effect/blinding_venom.bmp create mode 100644 crawl-ref/source/rltiles/effect/bolt0.bmp create mode 100644 crawl-ref/source/rltiles/effect/bolt01.bmp create mode 100644 crawl-ref/source/rltiles/effect/bolt02.bmp create mode 100644 crawl-ref/source/rltiles/effect/bolt03.bmp create mode 100644 crawl-ref/source/rltiles/effect/bolt04.bmp create mode 100644 crawl-ref/source/rltiles/effect/bolt05.bmp create mode 100644 crawl-ref/source/rltiles/effect/bolt06.bmp create mode 100644 crawl-ref/source/rltiles/effect/bolt07.bmp create mode 100644 crawl-ref/source/rltiles/effect/bolt08.bmp create mode 100644 crawl-ref/source/rltiles/effect/bolt1.bmp create mode 100644 crawl-ref/source/rltiles/effect/bolt2.bmp create mode 100644 crawl-ref/source/rltiles/effect/bolt3.bmp create mode 100644 crawl-ref/source/rltiles/effect/bolt4.bmp create mode 100644 crawl-ref/source/rltiles/effect/bolt5.bmp create mode 100644 crawl-ref/source/rltiles/effect/bolt6.bmp create mode 100644 crawl-ref/source/rltiles/effect/bolt7.bmp create mode 100644 crawl-ref/source/rltiles/effect/boomerang1.bmp create mode 100644 crawl-ref/source/rltiles/effect/boomerang2.bmp create mode 100644 crawl-ref/source/rltiles/effect/cloud_black_smoke.bmp create mode 100644 crawl-ref/source/rltiles/effect/cloud_blue_smoke.bmp create mode 100644 crawl-ref/source/rltiles/effect/cloud_cold0.bmp create mode 100644 crawl-ref/source/rltiles/effect/cloud_cold1.bmp create mode 100644 crawl-ref/source/rltiles/effect/cloud_cold2.bmp create mode 100644 crawl-ref/source/rltiles/effect/cloud_fire0.bmp create mode 100644 crawl-ref/source/rltiles/effect/cloud_fire1.bmp create mode 100644 crawl-ref/source/rltiles/effect/cloud_fire2.bmp create mode 100644 crawl-ref/source/rltiles/effect/cloud_grey_smoke.bmp create mode 100644 crawl-ref/source/rltiles/effect/cloud_miasma.bmp create mode 100644 crawl-ref/source/rltiles/effect/cloud_poison0.bmp create mode 100644 crawl-ref/source/rltiles/effect/cloud_poison1.bmp create mode 100644 crawl-ref/source/rltiles/effect/cloud_poison2.bmp create mode 100644 crawl-ref/source/rltiles/effect/cloud_purp_smoke.bmp create mode 100644 crawl-ref/source/rltiles/effect/dart0.bmp create mode 100644 crawl-ref/source/rltiles/effect/dart1.bmp create mode 100644 crawl-ref/source/rltiles/effect/dart2.bmp create mode 100644 crawl-ref/source/rltiles/effect/dart3.bmp create mode 100644 crawl-ref/source/rltiles/effect/dart4.bmp create mode 100644 crawl-ref/source/rltiles/effect/dart5.bmp create mode 100644 crawl-ref/source/rltiles/effect/dart6.bmp create mode 100644 crawl-ref/source/rltiles/effect/dart7.bmp create mode 100644 crawl-ref/source/rltiles/effect/engulf1.bmp create mode 100644 crawl-ref/source/rltiles/effect/engulf2.bmp create mode 100644 crawl-ref/source/rltiles/effect/engulf3.bmp create mode 100644 crawl-ref/source/rltiles/effect/engulf4.bmp create mode 100644 crawl-ref/source/rltiles/effect/engulf5.bmp create mode 100644 crawl-ref/source/rltiles/effect/engulf6.bmp create mode 100644 crawl-ref/source/rltiles/effect/engulf7.bmp create mode 100644 crawl-ref/source/rltiles/effect/engulf8.bmp create mode 100644 crawl-ref/source/rltiles/effect/explode_black0.bmp create mode 100644 crawl-ref/source/rltiles/effect/explode_black1.bmp create mode 100644 crawl-ref/source/rltiles/effect/explode_black2.bmp create mode 100644 crawl-ref/source/rltiles/effect/explode_black3.bmp create mode 100644 crawl-ref/source/rltiles/effect/explode_black4.bmp create mode 100644 crawl-ref/source/rltiles/effect/explode_black5.bmp create mode 100644 crawl-ref/source/rltiles/effect/explode_black6.bmp create mode 100644 crawl-ref/source/rltiles/effect/explode_black7.bmp create mode 100644 crawl-ref/source/rltiles/effect/explode_black8.bmp create mode 100644 crawl-ref/source/rltiles/effect/explode_blue0.bmp create mode 100644 crawl-ref/source/rltiles/effect/explode_blue1.bmp create mode 100644 crawl-ref/source/rltiles/effect/explode_blue2.bmp create mode 100644 crawl-ref/source/rltiles/effect/explode_blue3.bmp create mode 100644 crawl-ref/source/rltiles/effect/explode_blue4.bmp create mode 100644 crawl-ref/source/rltiles/effect/explode_blue5.bmp create mode 100644 crawl-ref/source/rltiles/effect/explode_blue6.bmp create mode 100644 crawl-ref/source/rltiles/effect/explode_blue7.bmp create mode 100644 crawl-ref/source/rltiles/effect/explode_blue8.bmp create mode 100644 crawl-ref/source/rltiles/effect/explode_brown0.bmp create mode 100644 crawl-ref/source/rltiles/effect/explode_brown1.bmp create mode 100644 crawl-ref/source/rltiles/effect/explode_brown2.bmp create mode 100644 crawl-ref/source/rltiles/effect/explode_brown3.bmp create mode 100644 crawl-ref/source/rltiles/effect/explode_brown4.bmp create mode 100644 crawl-ref/source/rltiles/effect/explode_brown5.bmp create mode 100644 crawl-ref/source/rltiles/effect/explode_brown6.bmp create mode 100644 crawl-ref/source/rltiles/effect/explode_brown7.bmp create mode 100644 crawl-ref/source/rltiles/effect/explode_brown8.bmp create mode 100644 crawl-ref/source/rltiles/effect/explode_darkblue0.bmp create mode 100644 crawl-ref/source/rltiles/effect/explode_darkblue1.bmp create mode 100644 crawl-ref/source/rltiles/effect/explode_darkblue2.bmp create mode 100644 crawl-ref/source/rltiles/effect/explode_darkblue3.bmp create mode 100644 crawl-ref/source/rltiles/effect/explode_darkblue4.bmp create mode 100644 crawl-ref/source/rltiles/effect/explode_darkblue5.bmp create mode 100644 crawl-ref/source/rltiles/effect/explode_darkblue6.bmp create mode 100644 crawl-ref/source/rltiles/effect/explode_darkblue7.bmp create mode 100644 crawl-ref/source/rltiles/effect/explode_darkblue8.bmp create mode 100644 crawl-ref/source/rltiles/effect/explode_green0.bmp create mode 100644 crawl-ref/source/rltiles/effect/explode_green1.bmp create mode 100644 crawl-ref/source/rltiles/effect/explode_green2.bmp create mode 100644 crawl-ref/source/rltiles/effect/explode_green3.bmp create mode 100644 crawl-ref/source/rltiles/effect/explode_green4.bmp create mode 100644 crawl-ref/source/rltiles/effect/explode_green5.bmp create mode 100644 crawl-ref/source/rltiles/effect/explode_green6.bmp create mode 100644 crawl-ref/source/rltiles/effect/explode_green7.bmp create mode 100644 crawl-ref/source/rltiles/effect/explode_green8.bmp create mode 100644 crawl-ref/source/rltiles/effect/explode_purple0.bmp create mode 100644 crawl-ref/source/rltiles/effect/explode_purple1.bmp create mode 100644 crawl-ref/source/rltiles/effect/explode_purple2.bmp create mode 100644 crawl-ref/source/rltiles/effect/explode_purple3.bmp create mode 100644 crawl-ref/source/rltiles/effect/explode_purple4.bmp create mode 100644 crawl-ref/source/rltiles/effect/explode_purple5.bmp create mode 100644 crawl-ref/source/rltiles/effect/explode_purple6.bmp create mode 100644 crawl-ref/source/rltiles/effect/explode_purple7.bmp create mode 100644 crawl-ref/source/rltiles/effect/explode_purple8.bmp create mode 100644 crawl-ref/source/rltiles/effect/explode_red0.bmp create mode 100644 crawl-ref/source/rltiles/effect/explode_red1.bmp create mode 100644 crawl-ref/source/rltiles/effect/explode_red2.bmp create mode 100644 crawl-ref/source/rltiles/effect/explode_red3.bmp create mode 100644 crawl-ref/source/rltiles/effect/explode_red4.bmp create mode 100644 crawl-ref/source/rltiles/effect/explode_red5.bmp create mode 100644 crawl-ref/source/rltiles/effect/explode_red6.bmp create mode 100644 crawl-ref/source/rltiles/effect/explode_red7.bmp create mode 100644 crawl-ref/source/rltiles/effect/explode_red8.bmp create mode 100644 crawl-ref/source/rltiles/effect/javelin0.bmp create mode 100644 crawl-ref/source/rltiles/effect/javelin1.bmp create mode 100644 crawl-ref/source/rltiles/effect/javelin2.bmp create mode 100644 crawl-ref/source/rltiles/effect/javelin3.bmp create mode 100644 crawl-ref/source/rltiles/effect/javelin4.bmp create mode 100644 crawl-ref/source/rltiles/effect/javelin5.bmp create mode 100644 crawl-ref/source/rltiles/effect/javelin6.bmp create mode 100644 crawl-ref/source/rltiles/effect/javelin7.bmp create mode 100644 crawl-ref/source/rltiles/effect/needle0.bmp create mode 100644 crawl-ref/source/rltiles/effect/needle1.bmp create mode 100644 crawl-ref/source/rltiles/effect/needle2.bmp create mode 100644 crawl-ref/source/rltiles/effect/needle3.bmp create mode 100644 crawl-ref/source/rltiles/effect/needle4.bmp create mode 100644 crawl-ref/source/rltiles/effect/needle5.bmp create mode 100644 crawl-ref/source/rltiles/effect/needle6.bmp create mode 100644 crawl-ref/source/rltiles/effect/needle7.bmp create mode 100644 crawl-ref/source/rltiles/effect/net_trap.bmp create mode 100644 crawl-ref/source/rltiles/effect/resist1.bmp create mode 100644 crawl-ref/source/rltiles/effect/resist2.bmp create mode 100644 crawl-ref/source/rltiles/effect/resist3.bmp create mode 100644 crawl-ref/source/rltiles/effect/resist4.bmp create mode 100644 crawl-ref/source/rltiles/effect/rock0.bmp create mode 100644 crawl-ref/source/rltiles/effect/sling_bullet0.bmp create mode 100644 crawl-ref/source/rltiles/effect/stone0.bmp create mode 100644 crawl-ref/source/rltiles/effect/throwing_net0.bmp create mode 100644 crawl-ref/source/rltiles/effect/throwing_net1.bmp create mode 100644 crawl-ref/source/rltiles/effect/throwing_net2.bmp create mode 100644 crawl-ref/source/rltiles/effect/throwing_net3.bmp create mode 100644 crawl-ref/source/rltiles/effect/throwing_net4.bmp create mode 100644 crawl-ref/source/rltiles/effect/throwing_net5.bmp create mode 100644 crawl-ref/source/rltiles/effect/throwing_net6.bmp create mode 100644 crawl-ref/source/rltiles/effect/throwing_net7.bmp create mode 100644 crawl-ref/source/rltiles/effect/zap_acid0.bmp create mode 100644 crawl-ref/source/rltiles/effect/zap_acid1.bmp create mode 100644 crawl-ref/source/rltiles/effect/zap_acid2.bmp create mode 100644 crawl-ref/source/rltiles/effect/zap_acid3.bmp create mode 100644 crawl-ref/source/rltiles/effect/zap_black0.bmp create mode 100644 crawl-ref/source/rltiles/effect/zap_black1.bmp create mode 100644 crawl-ref/source/rltiles/effect/zap_black2.bmp create mode 100644 crawl-ref/source/rltiles/effect/zap_black3.bmp create mode 100644 crawl-ref/source/rltiles/effect/zap_dig.bmp create mode 100644 crawl-ref/source/rltiles/effect/zap_elec0.bmp create mode 100644 crawl-ref/source/rltiles/effect/zap_elec1.bmp create mode 100644 crawl-ref/source/rltiles/effect/zap_elec2.bmp create mode 100644 crawl-ref/source/rltiles/effect/zap_elec3.bmp create mode 100644 crawl-ref/source/rltiles/effect/zap_fire0.bmp create mode 100644 crawl-ref/source/rltiles/effect/zap_fire1.bmp create mode 100644 crawl-ref/source/rltiles/effect/zap_fire2.bmp create mode 100644 crawl-ref/source/rltiles/effect/zap_fire3.bmp create mode 100644 crawl-ref/source/rltiles/effect/zap_flash.bmp create mode 100644 crawl-ref/source/rltiles/effect/zap_gas0.bmp create mode 100644 crawl-ref/source/rltiles/effect/zap_gas1.bmp create mode 100644 crawl-ref/source/rltiles/effect/zap_gas2.bmp create mode 100644 crawl-ref/source/rltiles/effect/zap_gas3.bmp create mode 100644 crawl-ref/source/rltiles/effect/zap_ice0.bmp create mode 100644 crawl-ref/source/rltiles/effect/zap_ice1.bmp create mode 100644 crawl-ref/source/rltiles/effect/zap_ice2.bmp create mode 100644 crawl-ref/source/rltiles/effect/zap_ice3.bmp create mode 100644 crawl-ref/source/rltiles/effect/zap_magic0.bmp create mode 100644 crawl-ref/source/rltiles/effect/zap_magic1.bmp create mode 100644 crawl-ref/source/rltiles/effect/zap_magic2.bmp create mode 100644 crawl-ref/source/rltiles/effect/zap_magic3.bmp create mode 100644 crawl-ref/source/rltiles/effect/zap_sleep0.bmp create mode 100644 crawl-ref/source/rltiles/effect/zap_sleep1.bmp create mode 100644 crawl-ref/source/rltiles/effect/zap_sleep2.bmp create mode 100644 crawl-ref/source/rltiles/effect/zap_sleep3.bmp create mode 100644 crawl-ref/source/rltiles/effect/zigzag1.bmp create mode 100644 crawl-ref/source/rltiles/effect/zigzag2.bmp create mode 100644 crawl-ref/source/rltiles/effect/zigzag3.bmp create mode 100644 crawl-ref/source/rltiles/effect/zigzag4.bmp create mode 100644 crawl-ref/source/rltiles/item/amulet/amulet_of_yendor.bmp create mode 100644 crawl-ref/source/rltiles/item/amulet/bone_gray.bmp create mode 100644 crawl-ref/source/rltiles/item/amulet/cameo_blue.bmp create mode 100644 crawl-ref/source/rltiles/item/amulet/cameo_orange.bmp create mode 100644 crawl-ref/source/rltiles/item/amulet/celtic_blue.bmp create mode 100644 crawl-ref/source/rltiles/item/amulet/celtic_red.bmp create mode 100644 crawl-ref/source/rltiles/item/amulet/celtic_yellow.bmp create mode 100644 crawl-ref/source/rltiles/item/amulet/circular.bmp create mode 100644 crawl-ref/source/rltiles/item/amulet/concave.bmp create mode 100644 crawl-ref/source/rltiles/item/amulet/crystal_green.bmp create mode 100644 crawl-ref/source/rltiles/item/amulet/crystal_red.bmp create mode 100644 crawl-ref/source/rltiles/item/amulet/crystal_white.bmp create mode 100644 crawl-ref/source/rltiles/item/amulet/cylinder_gray.bmp create mode 100644 crawl-ref/source/rltiles/item/amulet/eye_cyan.bmp create mode 100644 crawl-ref/source/rltiles/item/amulet/eye_green.bmp create mode 100644 crawl-ref/source/rltiles/item/amulet/eye_magenta.bmp create mode 100644 crawl-ref/source/rltiles/item/amulet/face1_gold.bmp create mode 100644 crawl-ref/source/rltiles/item/amulet/face2.bmp create mode 100644 crawl-ref/source/rltiles/item/amulet/hexagonal.bmp create mode 100644 crawl-ref/source/rltiles/item/amulet/octagonal.bmp create mode 100644 crawl-ref/source/rltiles/item/amulet/oval.bmp create mode 100644 crawl-ref/source/rltiles/item/amulet/penta_green.bmp create mode 100644 crawl-ref/source/rltiles/item/amulet/penta_orange.bmp create mode 100644 crawl-ref/source/rltiles/item/amulet/pyramidal.bmp create mode 100644 crawl-ref/source/rltiles/item/amulet/ring_cyan.bmp create mode 100644 crawl-ref/source/rltiles/item/amulet/ring_green.bmp create mode 100644 crawl-ref/source/rltiles/item/amulet/ring_red.bmp create mode 100644 crawl-ref/source/rltiles/item/amulet/spherical.bmp create mode 100644 crawl-ref/source/rltiles/item/amulet/square.bmp create mode 100644 crawl-ref/source/rltiles/item/amulet/stone1_cyan.bmp create mode 100644 crawl-ref/source/rltiles/item/amulet/stone1_green.bmp create mode 100644 crawl-ref/source/rltiles/item/amulet/stone1_pink.bmp create mode 100644 crawl-ref/source/rltiles/item/amulet/stone2_blue.bmp create mode 100644 crawl-ref/source/rltiles/item/amulet/stone2_green.bmp create mode 100644 crawl-ref/source/rltiles/item/amulet/stone2_red.bmp create mode 100644 crawl-ref/source/rltiles/item/amulet/stone3_blue.bmp create mode 100644 crawl-ref/source/rltiles/item/amulet/stone3_green.bmp create mode 100644 crawl-ref/source/rltiles/item/amulet/stone3_magenta.bmp create mode 100644 crawl-ref/source/rltiles/item/amulet/triangular.bmp create mode 100644 crawl-ref/source/rltiles/item/amulet/urand_bloodlust.bmp create mode 100644 crawl-ref/source/rltiles/item/amulet/urand_cekugob.bmp create mode 100644 crawl-ref/source/rltiles/item/amulet/urand_four_winds.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/alchemy_smock.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/animal_skin.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/animal_skin2.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/banded_mail.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/black_dragon_scale_mail.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/black_dragon_scales.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/blue_dragon_scale_mail.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/blue_dragon_scales.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/boots_blue1.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/boots_brown1.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/boots_brown2.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/boots_green1.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/boots_green2.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/boots_iron1.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/boots_iron2.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/boots_iron3.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/boots_stripe1.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/boots_yellow1.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/breast_plate1.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/breast_plate2.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/bronze_plate_mail.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/buckled_boots.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/cap1.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/cap2.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/cap3.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/centaur_barding.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/chain_mail.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/chain_mail1.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/chain_mail2.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/chain_mail3.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/cloak2.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/cloak3.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/cloak4.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/combat_boots.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/cornuthaum.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/crested_helmet.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/crystal_plate_mail.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/dented_pot.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/dunce_cap.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/dwarven_ringmail.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/dwarvish_cloak.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/dwarvish_iron_helm.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/dwarvish_mithril_coat.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/dwarvish_roundshield.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/elven_cloak.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/elven_leather_armor.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/elven_leather_helm.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/elven_mithril_coat.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/elven_ringmail.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/elven_scalemail.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/elven_shield.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/etched_helmet.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/fedora.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/fencing_gloves.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/gauntlet1.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/gauntlet2.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/glove1.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/glove2.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/glove3.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/glove4.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/glove5.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/glove6.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/gold_dragon_armour.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/gold_dragon_hide.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/gray_dragon_scale_mail.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/gray_dragon_scales.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/green_dragon_scale_mail.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/green_dragon_scales.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/hat1.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/hawaiian_shirt.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/helm2.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/helm3.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/helm_green.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/helm_visor1.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/hiking_boots.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/ice_dragon_armour.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/ice_dragon_hide.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/iron_shoes.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/jackboots.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/jungle_boots.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/large_shield.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/leather_armor.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/leather_armor2.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/leather_armor3.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/leather_armor4.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/leather_armour2.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/leather_cloak.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/leather_jacket.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/low_boots.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/mottled_dragon_hide.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/mpttled_dragon_armour.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/mud_boots.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/mummy_wrapping.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/naga_barding.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/oilskin_cloak.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/old_gloves.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/opera_cloak.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/orange_dragon_scale_mail.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/orange_dragon_scales.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/orcish_chain_mail.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/orcish_cloak.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/orcish_helm.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/orcish_leather_armor.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/orcish_platemail.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/orcish_ring_mail.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/orcish_ringmail.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/orcish_shield.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/ornamental_cope.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/padded_gloves.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/piece_of_cloth.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/plate_mail.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/plate_mail2.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/plumed_helmet.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/red_dragon_scale_mail.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/red_dragon_scales.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/riding_boots.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/riding_gloves.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/ring_mail.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/ring_mail2.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/robe.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/robe2.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/robe3.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/s_suit.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/scale_mail.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/scale_mail2.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/shield2.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/shield_gondor.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/shield_kite2.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/shield_kite3.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/shield_large2.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/shield_large3.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/shield_large4.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/shield_of_reflection.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/shield_rohan.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/shield_round2.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/shimmering_dragon_scale_mail.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/shimmering_dragon_scales.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/silver_dragon_scale_mail.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/silver_dragon_scales.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/small_shield.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/small_shield2.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/snow_boots.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/splint_mail.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/studded_leather_armor.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/swamp_dragon_armour.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/swamp_dragon_hide.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/t_shirt.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/tattered_cape.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/troll_hide.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/troll_leather_armour.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/urand_alchemist.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/urand_assassin.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/urand_augmentation.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/urand_bullseye.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/urand_dragon_king.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/urand_dragonmask.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/urand_dyrovepreva.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/urand_edison.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/urand_fencer.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/urand_flash.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/urand_folly.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/urand_ignorance.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/urand_lear.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/urand_misfortune.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/urand_night.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/urand_resistance.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/urand_salamander.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/urand_thief.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/urand_war.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/urand_zhor.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/urand_zin.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/uruk_hai_shield.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/visored_helmet.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/white_dragon_scale_mail.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/white_dragon_scales.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/wizard_hat.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/wizard_hat2.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/yellow_dragon_scale_mail.bmp create mode 100644 crawl-ref/source/rltiles/item/armor/yellow_dragon_scales.bmp create mode 100644 crawl-ref/source/rltiles/item/book/blank_paper.bmp create mode 100644 crawl-ref/source/rltiles/item/book/book_of_the_dead.bmp create mode 100644 crawl-ref/source/rltiles/item/book/bronze.bmp create mode 100644 crawl-ref/source/rltiles/item/book/cloth.bmp create mode 100644 crawl-ref/source/rltiles/item/book/copper.bmp create mode 100644 crawl-ref/source/rltiles/item/book/cyan.bmp create mode 100644 crawl-ref/source/rltiles/item/book/dark_blue.bmp create mode 100644 crawl-ref/source/rltiles/item/book/dark_brown.bmp create mode 100644 crawl-ref/source/rltiles/item/book/dark_gray.bmp create mode 100644 crawl-ref/source/rltiles/item/book/dark_green.bmp create mode 100644 crawl-ref/source/rltiles/item/book/dog_eared.bmp create mode 100644 crawl-ref/source/rltiles/item/book/dull.bmp create mode 100644 crawl-ref/source/rltiles/item/book/dusty.bmp create mode 100644 crawl-ref/source/rltiles/item/book/glittering.bmp create mode 100644 crawl-ref/source/rltiles/item/book/gold.bmp create mode 100644 crawl-ref/source/rltiles/item/book/gray.bmp create mode 100644 crawl-ref/source/rltiles/item/book/indigo.bmp create mode 100644 crawl-ref/source/rltiles/item/book/leather.bmp create mode 100644 crawl-ref/source/rltiles/item/book/light_blue.bmp create mode 100644 crawl-ref/source/rltiles/item/book/light_brown.bmp create mode 100644 crawl-ref/source/rltiles/item/book/light_gray.bmp create mode 100644 crawl-ref/source/rltiles/item/book/light_green.bmp create mode 100644 crawl-ref/source/rltiles/item/book/magenta.bmp create mode 100644 crawl-ref/source/rltiles/item/book/metal_blue.bmp create mode 100644 crawl-ref/source/rltiles/item/book/metal_cyan.bmp create mode 100644 crawl-ref/source/rltiles/item/book/metal_green.bmp create mode 100644 crawl-ref/source/rltiles/item/book/mottled.bmp create mode 100644 crawl-ref/source/rltiles/item/book/orange.bmp create mode 100644 crawl-ref/source/rltiles/item/book/parchment.bmp create mode 100644 crawl-ref/source/rltiles/item/book/pink.bmp create mode 100644 crawl-ref/source/rltiles/item/book/plaid.bmp create mode 100644 crawl-ref/source/rltiles/item/book/purple.bmp create mode 100644 crawl-ref/source/rltiles/item/book/ragged.bmp create mode 100644 crawl-ref/source/rltiles/item/book/red.bmp create mode 100644 crawl-ref/source/rltiles/item/book/shining.bmp create mode 100644 crawl-ref/source/rltiles/item/book/silver.bmp create mode 100644 crawl-ref/source/rltiles/item/book/stained.bmp create mode 100644 crawl-ref/source/rltiles/item/book/tan.bmp create mode 100644 crawl-ref/source/rltiles/item/book/thick.bmp create mode 100644 crawl-ref/source/rltiles/item/book/thin.bmp create mode 100644 crawl-ref/source/rltiles/item/book/turquoise.bmp create mode 100644 crawl-ref/source/rltiles/item/book/vellum.bmp create mode 100644 crawl-ref/source/rltiles/item/book/velvet.bmp create mode 100644 crawl-ref/source/rltiles/item/book/violet.bmp create mode 100644 crawl-ref/source/rltiles/item/book/white.bmp create mode 100644 crawl-ref/source/rltiles/item/book/wrinkled.bmp create mode 100644 crawl-ref/source/rltiles/item/book/yellow.bmp create mode 100644 crawl-ref/source/rltiles/item/food/apple.bmp create mode 100644 crawl-ref/source/rltiles/item/food/apricot.bmp create mode 100644 crawl-ref/source/rltiles/item/food/banana.bmp create mode 100644 crawl-ref/source/rltiles/item/food/beef_jerky.bmp create mode 100644 crawl-ref/source/rltiles/item/food/bone.bmp create mode 100644 crawl-ref/source/rltiles/item/food/bread0.bmp create mode 100644 crawl-ref/source/rltiles/item/food/bread_ration.bmp create mode 100644 crawl-ref/source/rltiles/item/food/c_ration.bmp create mode 100644 crawl-ref/source/rltiles/item/food/candy_bar.bmp create mode 100644 crawl-ref/source/rltiles/item/food/carrot.bmp create mode 100644 crawl-ref/source/rltiles/item/food/cheese.bmp create mode 100644 crawl-ref/source/rltiles/item/food/chocorate.bmp create mode 100644 crawl-ref/source/rltiles/item/food/choko.bmp create mode 100644 crawl-ref/source/rltiles/item/food/clove_of_garlic.bmp create mode 100644 crawl-ref/source/rltiles/item/food/corpse.bmp create mode 100644 crawl-ref/source/rltiles/item/food/corpse_rotten.bmp create mode 100644 crawl-ref/source/rltiles/item/food/cram_ration.bmp create mode 100644 crawl-ref/source/rltiles/item/food/cream_pie.bmp create mode 100644 crawl-ref/source/rltiles/item/food/egg.bmp create mode 100644 crawl-ref/source/rltiles/item/food/eucalyptus_leaf.bmp create mode 100644 crawl-ref/source/rltiles/item/food/food_ration.bmp create mode 100644 crawl-ref/source/rltiles/item/food/fortune_cookie.bmp create mode 100644 crawl-ref/source/rltiles/item/food/grape.bmp create mode 100644 crawl-ref/source/rltiles/item/food/honeycomb.bmp create mode 100644 crawl-ref/source/rltiles/item/food/huge_chunk_of_meat.bmp create mode 100644 crawl-ref/source/rltiles/item/food/k_ration.bmp create mode 100644 crawl-ref/source/rltiles/item/food/kelp_frond.bmp create mode 100644 crawl-ref/source/rltiles/item/food/lembas_wafer.bmp create mode 100644 crawl-ref/source/rltiles/item/food/lemon.bmp create mode 100644 crawl-ref/source/rltiles/item/food/lump_of_royal_jelly.bmp create mode 100644 crawl-ref/source/rltiles/item/food/lychee.bmp create mode 100644 crawl-ref/source/rltiles/item/food/meat_ring.bmp create mode 100644 crawl-ref/source/rltiles/item/food/meat_stick.bmp create mode 100644 crawl-ref/source/rltiles/item/food/meatball.bmp create mode 100644 crawl-ref/source/rltiles/item/food/melon.bmp create mode 100644 crawl-ref/source/rltiles/item/food/orange.bmp create mode 100644 crawl-ref/source/rltiles/item/food/pancake.bmp create mode 100644 crawl-ref/source/rltiles/item/food/pear.bmp create mode 100644 crawl-ref/source/rltiles/item/food/pizza.bmp create mode 100644 crawl-ref/source/rltiles/item/food/rambutan.bmp create mode 100644 crawl-ref/source/rltiles/item/food/sausage.bmp create mode 100644 crawl-ref/source/rltiles/item/food/slime_mold.bmp create mode 100644 crawl-ref/source/rltiles/item/food/snozzcumber.bmp create mode 100644 crawl-ref/source/rltiles/item/food/sprig_of_wolfsbane.bmp create mode 100644 crawl-ref/source/rltiles/item/food/strawberry.bmp create mode 100644 crawl-ref/source/rltiles/item/food/sultana.bmp create mode 100644 crawl-ref/source/rltiles/item/food/tin.bmp create mode 100644 crawl-ref/source/rltiles/item/food/tripe_ration.bmp create mode 100644 crawl-ref/source/rltiles/item/gem/black.bmp create mode 100644 crawl-ref/source/rltiles/item/gem/blue.bmp create mode 100644 crawl-ref/source/rltiles/item/gem/boulder.bmp create mode 100644 crawl-ref/source/rltiles/item/gem/gold_piece.bmp create mode 100644 crawl-ref/source/rltiles/item/gem/green.bmp create mode 100644 crawl-ref/source/rltiles/item/gem/grey_stone.bmp create mode 100644 crawl-ref/source/rltiles/item/gem/orange.bmp create mode 100644 crawl-ref/source/rltiles/item/gem/red.bmp create mode 100644 crawl-ref/source/rltiles/item/gem/rock.bmp create mode 100644 crawl-ref/source/rltiles/item/gem/stone.bmp create mode 100644 crawl-ref/source/rltiles/item/gem/violet.bmp create mode 100644 crawl-ref/source/rltiles/item/gem/white.bmp create mode 100644 crawl-ref/source/rltiles/item/gem/yellow.bmp create mode 100644 crawl-ref/source/rltiles/item/gem/yellowish_brown.bmp create mode 100644 crawl-ref/source/rltiles/item/misc/beartrap.bmp create mode 100644 crawl-ref/source/rltiles/item/misc/bell.bmp create mode 100644 crawl-ref/source/rltiles/item/misc/bell_of_opening.bmp create mode 100644 crawl-ref/source/rltiles/item/misc/blindfold.bmp create mode 100644 crawl-ref/source/rltiles/item/misc/brass_lantern.bmp create mode 100644 crawl-ref/source/rltiles/item/misc/bugle.bmp create mode 100644 crawl-ref/source/rltiles/item/misc/can_of_grease.bmp create mode 100644 crawl-ref/source/rltiles/item/misc/candelabrum_of_invocation.bmp create mode 100644 crawl-ref/source/rltiles/item/misc/chest.bmp create mode 100644 crawl-ref/source/rltiles/item/misc/credit_card.bmp create mode 100644 crawl-ref/source/rltiles/item/misc/crystal_ball.bmp create mode 100644 crawl-ref/source/rltiles/item/misc/drum.bmp create mode 100644 crawl-ref/source/rltiles/item/misc/expensive_camera.bmp create mode 100644 crawl-ref/source/rltiles/item/misc/figurine.bmp create mode 100644 crawl-ref/source/rltiles/item/misc/flute.bmp create mode 100644 crawl-ref/source/rltiles/item/misc/grappling_hook.bmp create mode 100644 crawl-ref/source/rltiles/item/misc/harp.bmp create mode 100644 crawl-ref/source/rltiles/item/misc/heavy_iron_ball.bmp create mode 100644 crawl-ref/source/rltiles/item/misc/horn.bmp create mode 100644 crawl-ref/source/rltiles/item/misc/ice_box.bmp create mode 100644 crawl-ref/source/rltiles/item/misc/iron_chain.bmp create mode 100644 crawl-ref/source/rltiles/item/misc/lamp.bmp create mode 100644 crawl-ref/source/rltiles/item/misc/land_mine.bmp create mode 100644 crawl-ref/source/rltiles/item/misc/large_box.bmp create mode 100644 crawl-ref/source/rltiles/item/misc/leash.bmp create mode 100644 crawl-ref/source/rltiles/item/misc/lenses.bmp create mode 100644 crawl-ref/source/rltiles/item/misc/lock_pick.bmp create mode 100644 crawl-ref/source/rltiles/item/misc/magic_marker.bmp create mode 100644 crawl-ref/source/rltiles/item/misc/mirror.bmp create mode 100644 crawl-ref/source/rltiles/item/misc/misc_altar.bmp create mode 100644 crawl-ref/source/rltiles/item/misc/misc_book.bmp create mode 100644 crawl-ref/source/rltiles/item/misc/misc_bottle.bmp create mode 100644 crawl-ref/source/rltiles/item/misc/misc_box.bmp create mode 100644 crawl-ref/source/rltiles/item/misc/misc_crystal.bmp create mode 100644 crawl-ref/source/rltiles/item/misc/misc_deck.bmp create mode 100644 crawl-ref/source/rltiles/item/misc/misc_disc.bmp create mode 100644 crawl-ref/source/rltiles/item/misc/misc_fan.bmp create mode 100644 crawl-ref/source/rltiles/item/misc/misc_horn.bmp create mode 100644 crawl-ref/source/rltiles/item/misc/misc_lamp.bmp create mode 100644 crawl-ref/source/rltiles/item/misc/misc_lantern.bmp create mode 100644 crawl-ref/source/rltiles/item/misc/misc_orb.bmp create mode 100644 crawl-ref/source/rltiles/item/misc/misc_rune.bmp create mode 100644 crawl-ref/source/rltiles/item/misc/misc_stone.bmp create mode 100644 crawl-ref/source/rltiles/item/misc/pick_axe.bmp create mode 100644 crawl-ref/source/rltiles/item/misc/sack.bmp create mode 100644 crawl-ref/source/rltiles/item/misc/saddle.bmp create mode 100644 crawl-ref/source/rltiles/item/misc/skeleton_key.bmp create mode 100644 crawl-ref/source/rltiles/item/misc/statue.bmp create mode 100644 crawl-ref/source/rltiles/item/misc/stethoscope.bmp create mode 100644 crawl-ref/source/rltiles/item/misc/tallow_candle.bmp create mode 100644 crawl-ref/source/rltiles/item/misc/tin_opener.bmp create mode 100644 crawl-ref/source/rltiles/item/misc/tinning_kit.bmp create mode 100644 crawl-ref/source/rltiles/item/misc/towel.bmp create mode 100644 crawl-ref/source/rltiles/item/misc/unicorn_horn.bmp create mode 100644 crawl-ref/source/rltiles/item/misc/wax_candle.bmp create mode 100644 crawl-ref/source/rltiles/item/misc/whistle.bmp create mode 100644 crawl-ref/source/rltiles/item/potion/black.bmp create mode 100644 crawl-ref/source/rltiles/item/potion/brilliant_blue.bmp create mode 100644 crawl-ref/source/rltiles/item/potion/brown.bmp create mode 100644 crawl-ref/source/rltiles/item/potion/bubbly.bmp create mode 100644 crawl-ref/source/rltiles/item/potion/clear.bmp create mode 100644 crawl-ref/source/rltiles/item/potion/cloudy.bmp create mode 100644 crawl-ref/source/rltiles/item/potion/cyan.bmp create mode 100644 crawl-ref/source/rltiles/item/potion/dark.bmp create mode 100644 crawl-ref/source/rltiles/item/potion/dark_green.bmp create mode 100644 crawl-ref/source/rltiles/item/potion/effervescent.bmp create mode 100644 crawl-ref/source/rltiles/item/potion/emerald.bmp create mode 100644 crawl-ref/source/rltiles/item/potion/fizzy.bmp create mode 100644 crawl-ref/source/rltiles/item/potion/golden.bmp create mode 100644 crawl-ref/source/rltiles/item/potion/i-berserk-rage.bmp create mode 100644 crawl-ref/source/rltiles/item/potion/i-blood.bmp create mode 100644 crawl-ref/source/rltiles/item/potion/i-confusion.bmp create mode 100644 crawl-ref/source/rltiles/item/potion/i-cure-mutation.bmp create mode 100644 crawl-ref/source/rltiles/item/potion/i-decay.bmp create mode 100644 crawl-ref/source/rltiles/item/potion/i-degeneration.bmp create mode 100644 crawl-ref/source/rltiles/item/potion/i-experience.bmp create mode 100644 crawl-ref/source/rltiles/item/potion/i-gain-dexterity.bmp create mode 100644 crawl-ref/source/rltiles/item/potion/i-gain-intelligence.bmp create mode 100644 crawl-ref/source/rltiles/item/potion/i-gain-strength.bmp create mode 100644 crawl-ref/source/rltiles/item/potion/i-heal-wounds.bmp create mode 100755 crawl-ref/source/rltiles/item/potion/i-heal-wounds.bmp2 create mode 100644 crawl-ref/source/rltiles/item/potion/i-heal.bmp create mode 100644 crawl-ref/source/rltiles/item/potion/i-invisibility.bmp create mode 100644 crawl-ref/source/rltiles/item/potion/i-label.bmp create mode 100644 crawl-ref/source/rltiles/item/potion/i-label2.bmp create mode 100644 crawl-ref/source/rltiles/item/potion/i-levitation.bmp create mode 100755 crawl-ref/source/rltiles/item/potion/i-levitation.bmp2 create mode 100644 crawl-ref/source/rltiles/item/potion/i-magic.bmp create mode 100644 crawl-ref/source/rltiles/item/potion/i-might.bmp create mode 100644 crawl-ref/source/rltiles/item/potion/i-mutation.bmp create mode 100644 crawl-ref/source/rltiles/item/potion/i-paralysis.bmp create mode 100644 crawl-ref/source/rltiles/item/potion/i-poison.bmp create mode 100644 crawl-ref/source/rltiles/item/potion/i-porridge.bmp create mode 100644 crawl-ref/source/rltiles/item/potion/i-resistance.bmp create mode 100644 crawl-ref/source/rltiles/item/potion/i-restore-abilities.bmp create mode 100644 crawl-ref/source/rltiles/item/potion/i-slowing.bmp create mode 100644 crawl-ref/source/rltiles/item/potion/i-speed.bmp create mode 100644 crawl-ref/source/rltiles/item/potion/i-strong-poison.bmp create mode 100644 crawl-ref/source/rltiles/item/potion/i-water.bmp create mode 100644 crawl-ref/source/rltiles/item/potion/magenta.bmp create mode 100644 crawl-ref/source/rltiles/item/potion/milky.bmp create mode 100644 crawl-ref/source/rltiles/item/potion/murky.bmp create mode 100644 crawl-ref/source/rltiles/item/potion/orange.bmp create mode 100644 crawl-ref/source/rltiles/item/potion/pink.bmp create mode 100644 crawl-ref/source/rltiles/item/potion/puce.bmp create mode 100644 crawl-ref/source/rltiles/item/potion/purple_red.bmp create mode 100644 crawl-ref/source/rltiles/item/potion/ruby.bmp create mode 100644 crawl-ref/source/rltiles/item/potion/silver.bmp create mode 100644 crawl-ref/source/rltiles/item/potion/sky_blue.bmp create mode 100644 crawl-ref/source/rltiles/item/potion/smoky.bmp create mode 100644 crawl-ref/source/rltiles/item/potion/swirly.bmp create mode 100644 crawl-ref/source/rltiles/item/potion/white.bmp create mode 100644 crawl-ref/source/rltiles/item/potion/yellow.bmp create mode 100644 crawl-ref/source/rltiles/item/ring/agate.bmp create mode 100644 crawl-ref/source/rltiles/item/ring/black_onyx.bmp create mode 100644 crawl-ref/source/rltiles/item/ring/brass.bmp create mode 100644 crawl-ref/source/rltiles/item/ring/bronze.bmp create mode 100644 crawl-ref/source/rltiles/item/ring/clay.bmp create mode 100644 crawl-ref/source/rltiles/item/ring/copper.bmp create mode 100644 crawl-ref/source/rltiles/item/ring/coral.bmp create mode 100644 crawl-ref/source/rltiles/item/ring/diamond.bmp create mode 100644 crawl-ref/source/rltiles/item/ring/emerald.bmp create mode 100644 crawl-ref/source/rltiles/item/ring/engagement.bmp create mode 100644 crawl-ref/source/rltiles/item/ring/glass.bmp create mode 100644 crawl-ref/source/rltiles/item/ring/gold.bmp create mode 100644 crawl-ref/source/rltiles/item/ring/gold_blue.bmp create mode 100644 crawl-ref/source/rltiles/item/ring/gold_cyan.bmp create mode 100644 crawl-ref/source/rltiles/item/ring/gold_green.bmp create mode 100644 crawl-ref/source/rltiles/item/ring/gold_magenta.bmp create mode 100644 crawl-ref/source/rltiles/item/ring/gold_red.bmp create mode 100644 crawl-ref/source/rltiles/item/ring/gold_white.bmp create mode 100644 crawl-ref/source/rltiles/item/ring/gold_yellow.bmp create mode 100644 crawl-ref/source/rltiles/item/ring/granite.bmp create mode 100644 crawl-ref/source/rltiles/item/ring/iron.bmp create mode 100644 crawl-ref/source/rltiles/item/ring/ivory.bmp create mode 100644 crawl-ref/source/rltiles/item/ring/jade.bmp create mode 100644 crawl-ref/source/rltiles/item/ring/moonstone.bmp create mode 100644 crawl-ref/source/rltiles/item/ring/opal.bmp create mode 100644 crawl-ref/source/rltiles/item/ring/pearl.bmp create mode 100644 crawl-ref/source/rltiles/item/ring/plain_black.bmp create mode 100644 crawl-ref/source/rltiles/item/ring/plain_blue.bmp create mode 100644 crawl-ref/source/rltiles/item/ring/plain_cyan.bmp create mode 100644 crawl-ref/source/rltiles/item/ring/plain_dark.bmp create mode 100644 crawl-ref/source/rltiles/item/ring/plain_green.bmp create mode 100644 crawl-ref/source/rltiles/item/ring/plain_magenta.bmp create mode 100644 crawl-ref/source/rltiles/item/ring/plain_red.bmp create mode 100644 crawl-ref/source/rltiles/item/ring/plain_yellow.bmp create mode 100644 crawl-ref/source/rltiles/item/ring/ruby.bmp create mode 100644 crawl-ref/source/rltiles/item/ring/sapphire.bmp create mode 100644 crawl-ref/source/rltiles/item/ring/shiny.bmp create mode 100644 crawl-ref/source/rltiles/item/ring/silver.bmp create mode 100644 crawl-ref/source/rltiles/item/ring/steel.bmp create mode 100644 crawl-ref/source/rltiles/item/ring/tiger_eye.bmp create mode 100644 crawl-ref/source/rltiles/item/ring/topaz.bmp create mode 100644 crawl-ref/source/rltiles/item/ring/twisted.bmp create mode 100644 crawl-ref/source/rltiles/item/ring/urand_mage.bmp create mode 100644 crawl-ref/source/rltiles/item/ring/urand_robustness.bmp create mode 100644 crawl-ref/source/rltiles/item/ring/urand_shadows.bmp create mode 100644 crawl-ref/source/rltiles/item/ring/urand_shaolin.bmp create mode 100644 crawl-ref/source/rltiles/item/ring/wire.bmp create mode 100644 crawl-ref/source/rltiles/item/ring/wooden.bmp create mode 100644 crawl-ref/source/rltiles/item/scroll/andova_begarin.bmp create mode 100644 crawl-ref/source/rltiles/item/scroll/blank_paper.bmp create mode 100644 crawl-ref/source/rltiles/item/scroll/daiyen_fooels.bmp create mode 100644 crawl-ref/source/rltiles/item/scroll/duam_xnaht.bmp create mode 100644 crawl-ref/source/rltiles/item/scroll/elam_ebow.bmp create mode 100644 crawl-ref/source/rltiles/item/scroll/elbib_yloh.bmp create mode 100644 crawl-ref/source/rltiles/item/scroll/foobie_bletch.bmp create mode 100644 crawl-ref/source/rltiles/item/scroll/garven_deh.bmp create mode 100644 crawl-ref/source/rltiles/item/scroll/hackem_muche.bmp create mode 100644 crawl-ref/source/rltiles/item/scroll/i-acquirement.bmp create mode 100644 crawl-ref/source/rltiles/item/scroll/i-blinking.bmp create mode 100644 crawl-ref/source/rltiles/item/scroll/i-curse_armour.bmp create mode 100644 crawl-ref/source/rltiles/item/scroll/i-curse_weapon.bmp create mode 100644 crawl-ref/source/rltiles/item/scroll/i-detect_curse.bmp create mode 100644 crawl-ref/source/rltiles/item/scroll/i-enchant-weapon1.bmp create mode 100644 crawl-ref/source/rltiles/item/scroll/i-enchant-weapon2.bmp create mode 100644 crawl-ref/source/rltiles/item/scroll/i-enchant-weapon3.bmp create mode 100644 crawl-ref/source/rltiles/item/scroll/i-enchant_armour.bmp create mode 100644 crawl-ref/source/rltiles/item/scroll/i-fear.bmp create mode 100644 crawl-ref/source/rltiles/item/scroll/i-foregetfulness.bmp create mode 100644 crawl-ref/source/rltiles/item/scroll/i-identify.bmp create mode 100644 crawl-ref/source/rltiles/item/scroll/i-immolation.bmp create mode 100644 crawl-ref/source/rltiles/item/scroll/i-magic_mapping.bmp create mode 100644 crawl-ref/source/rltiles/item/scroll/i-noise.bmp create mode 100644 crawl-ref/source/rltiles/item/scroll/i-random_uselessness.bmp create mode 100644 crawl-ref/source/rltiles/item/scroll/i-recharging.bmp create mode 100644 crawl-ref/source/rltiles/item/scroll/i-remove_curse.bmp create mode 100644 crawl-ref/source/rltiles/item/scroll/i-summoning.bmp create mode 100644 crawl-ref/source/rltiles/item/scroll/i-teleportation.bmp create mode 100644 crawl-ref/source/rltiles/item/scroll/i-torment.bmp create mode 100644 crawl-ref/source/rltiles/item/scroll/i-vorpalize-weapon.bmp create mode 100644 crawl-ref/source/rltiles/item/scroll/juyed_awk_yacc.bmp create mode 100644 crawl-ref/source/rltiles/item/scroll/kernod_wel.bmp create mode 100644 crawl-ref/source/rltiles/item/scroll/kirje.bmp create mode 100644 crawl-ref/source/rltiles/item/scroll/lep_gex_ven_zea.bmp create mode 100644 crawl-ref/source/rltiles/item/scroll/mail.bmp create mode 100644 crawl-ref/source/rltiles/item/scroll/nr_9.bmp create mode 100644 crawl-ref/source/rltiles/item/scroll/pratyavayah.bmp create mode 100644 crawl-ref/source/rltiles/item/scroll/prirutsenie.bmp create mode 100644 crawl-ref/source/rltiles/item/scroll/read_me.bmp create mode 100644 crawl-ref/source/rltiles/item/scroll/temov.bmp create mode 100644 crawl-ref/source/rltiles/item/scroll/tharr.bmp create mode 100644 crawl-ref/source/rltiles/item/scroll/ve_forbryderne.bmp create mode 100644 crawl-ref/source/rltiles/item/scroll/velox_neb.bmp create mode 100644 crawl-ref/source/rltiles/item/scroll/venzar_borgavve.bmp create mode 100644 crawl-ref/source/rltiles/item/scroll/verr_yed_horre.bmp create mode 100644 crawl-ref/source/rltiles/item/scroll/xixaxa_xoxaxa_xuxaxa.bmp create mode 100644 crawl-ref/source/rltiles/item/scroll/yum_yum.bmp create mode 100644 crawl-ref/source/rltiles/item/scroll/zelgo_mer.bmp create mode 100644 crawl-ref/source/rltiles/item/wand/aluminum.bmp create mode 100644 crawl-ref/source/rltiles/item/wand/balsa.bmp create mode 100644 crawl-ref/source/rltiles/item/wand/brass.bmp create mode 100644 crawl-ref/source/rltiles/item/wand/copper.bmp create mode 100644 crawl-ref/source/rltiles/item/wand/crystal.bmp create mode 100644 crawl-ref/source/rltiles/item/wand/curved.bmp create mode 100644 crawl-ref/source/rltiles/item/wand/ebony.bmp create mode 100644 crawl-ref/source/rltiles/item/wand/forked.bmp create mode 100644 crawl-ref/source/rltiles/item/wand/gem_bone.bmp create mode 100644 crawl-ref/source/rltiles/item/wand/gem_brass.bmp create mode 100644 crawl-ref/source/rltiles/item/wand/gem_bronze.bmp create mode 100644 crawl-ref/source/rltiles/item/wand/gem_copper.bmp create mode 100644 crawl-ref/source/rltiles/item/wand/gem_glass.bmp create mode 100644 crawl-ref/source/rltiles/item/wand/gem_gold.bmp create mode 100644 crawl-ref/source/rltiles/item/wand/gem_iron.bmp create mode 100644 crawl-ref/source/rltiles/item/wand/gem_ivory.bmp create mode 100644 crawl-ref/source/rltiles/item/wand/gem_lead.bmp create mode 100644 crawl-ref/source/rltiles/item/wand/gem_plastic.bmp create mode 100644 crawl-ref/source/rltiles/item/wand/gem_silver.bmp create mode 100644 crawl-ref/source/rltiles/item/wand/gem_wood.bmp create mode 100644 crawl-ref/source/rltiles/item/wand/glass.bmp create mode 100644 crawl-ref/source/rltiles/item/wand/hexagonal.bmp create mode 100644 crawl-ref/source/rltiles/item/wand/i-cold.bmp create mode 100644 crawl-ref/source/rltiles/item/wand/i-confusion.bmp create mode 100644 crawl-ref/source/rltiles/item/wand/i-digging.bmp create mode 100644 crawl-ref/source/rltiles/item/wand/i-disintegration.bmp create mode 100644 crawl-ref/source/rltiles/item/wand/i-draining.bmp create mode 100644 crawl-ref/source/rltiles/item/wand/i-enslavement.bmp create mode 100644 crawl-ref/source/rltiles/item/wand/i-fire.bmp create mode 100644 crawl-ref/source/rltiles/item/wand/i-fireball.bmp create mode 100644 crawl-ref/source/rltiles/item/wand/i-flame.bmp create mode 100644 crawl-ref/source/rltiles/item/wand/i-frost.bmp create mode 100644 crawl-ref/source/rltiles/item/wand/i-hasting.bmp create mode 100644 crawl-ref/source/rltiles/item/wand/i-healing.bmp create mode 100644 crawl-ref/source/rltiles/item/wand/i-invisibility.bmp create mode 100644 crawl-ref/source/rltiles/item/wand/i-label.bmp create mode 100644 crawl-ref/source/rltiles/item/wand/i-lightning.bmp create mode 100644 crawl-ref/source/rltiles/item/wand/i-magic_darts.bmp create mode 100644 crawl-ref/source/rltiles/item/wand/i-paralysis.bmp create mode 100644 crawl-ref/source/rltiles/item/wand/i-polymorph_other.bmp create mode 100644 crawl-ref/source/rltiles/item/wand/i-random_effects.bmp create mode 100644 crawl-ref/source/rltiles/item/wand/i-slowing.bmp create mode 100644 crawl-ref/source/rltiles/item/wand/i-teleportation.bmp create mode 100644 crawl-ref/source/rltiles/item/wand/iridium.bmp create mode 100644 crawl-ref/source/rltiles/item/wand/iron.bmp create mode 100644 crawl-ref/source/rltiles/item/wand/jeweled.bmp create mode 100644 crawl-ref/source/rltiles/item/wand/long.bmp create mode 100644 crawl-ref/source/rltiles/item/wand/maple.bmp create mode 100644 crawl-ref/source/rltiles/item/wand/marble.bmp create mode 100644 crawl-ref/source/rltiles/item/wand/oak.bmp create mode 100644 crawl-ref/source/rltiles/item/wand/pine.bmp create mode 100644 crawl-ref/source/rltiles/item/wand/platinum.bmp create mode 100644 crawl-ref/source/rltiles/item/wand/runed.bmp create mode 100644 crawl-ref/source/rltiles/item/wand/short.bmp create mode 100644 crawl-ref/source/rltiles/item/wand/silver.bmp create mode 100644 crawl-ref/source/rltiles/item/wand/spiked.bmp create mode 100644 crawl-ref/source/rltiles/item/wand/staff00.bmp create mode 100644 crawl-ref/source/rltiles/item/wand/staff01.bmp create mode 100644 crawl-ref/source/rltiles/item/wand/staff02.bmp create mode 100644 crawl-ref/source/rltiles/item/wand/staff03.bmp create mode 100644 crawl-ref/source/rltiles/item/wand/staff04.bmp create mode 100644 crawl-ref/source/rltiles/item/wand/staff05.bmp create mode 100644 crawl-ref/source/rltiles/item/wand/staff06.bmp create mode 100644 crawl-ref/source/rltiles/item/wand/staff07.bmp create mode 100644 crawl-ref/source/rltiles/item/wand/staff08.bmp create mode 100644 crawl-ref/source/rltiles/item/wand/staff09.bmp create mode 100644 crawl-ref/source/rltiles/item/wand/steel.bmp create mode 100644 crawl-ref/source/rltiles/item/wand/tin.bmp create mode 100644 crawl-ref/source/rltiles/item/wand/uranium.bmp create mode 100644 crawl-ref/source/rltiles/item/wand/zinc.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/aklys.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/ancient_sword.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/ancus.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/arrow.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/athame.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/axe.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/bardiche.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/battle_axe.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/battle_axe2.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/battle_axe3.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/bec_de_corbin.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/bill_guisarme.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/blessed_blade.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/blowgun.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/blowgun2.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/boomerang.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/bow.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/bow2.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/broad_axe2.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/broadsword.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/bullwhip.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/club.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/crossbow.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/crossbow2.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/crossbow_bolt.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/crysknife.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/dagger.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/dart-p.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/dart.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/demon_blade.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/demon_trident.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/demon_whip.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/double_sword.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/dwarvish_mattock.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/dwarvish_short_sword.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/dwarvish_spear.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/elven_arrow.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/elven_bow.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/elven_broadsword.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/elven_dagger.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/elven_short_sword.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/elven_spear.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/eveningstar.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/eveningstar2.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/executioner_axe.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/executioner_axe2.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/falchion.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/fauchard.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/flail.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/flail2.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/flail_angmar.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/giant_club.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/giant_spiked_club.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/glaive.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/glaive2.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/great_flail.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/great_flail2.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/greatsword.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/greatsword2.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/guisarme.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/halberd.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/halberd2.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/hammer.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/hammer2.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/hand_axe.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/hand_crossbow.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/hand_crossbow2.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/javelin.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/katana.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/katana2.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/katana3.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/knife.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/lajatang.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/lance.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/lochaber_axe.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/long_sword.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/long_sword2.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/long_sword3.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/longbow.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/lucern_hammer.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/mace.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/mace2.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/mace3.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/mace_large.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/mace_large2.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/morning_star.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/morningstar.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/morningstar2.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/needle-p.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/needle.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/orcish_arrow.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/orcish_bow.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/orcish_dagger.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/orcish_glaive.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/orcish_great_sword.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/orcish_long_sword.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/orcish_short_sword.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/orcish_spear.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/partisan.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/quarterstaff.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/quickblade.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/ranseur.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/rubber_hose.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/runesword.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/sabre2.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/scalpel.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/scimitar.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/scimitar2.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/scythe.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/scythe2.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/short_sword.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/short_sword2.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/shuriken.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/silver_arrow.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/silver_dagger.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/silver_saber.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/silver_spear.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/sling.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/sling_bullet.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/spear.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/spear2.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/spetum.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/spiked_flail.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/spiked_flail2.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/spwpn_glaive_of_prune.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/spwpn_knife_of_accuracy.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/spwpn_mace_of_variability.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/spwpn_sceptre_of_asmodeus.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/spwpn_sceptre_of_asmodeus2.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/spwpn_sceptre_of_torment.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/spwpn_sceptre_of_torment2.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/spwpn_scythe_of_curses.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/spwpn_scythe_of_curses2.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/spwpn_singing_sword.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/spwpn_singing_sword2.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/spwpn_staff_of_dispater.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/spwpn_staff_of_dispater2.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/spwpn_staff_of_olgreb.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/spwpn_sword_of_cerebov.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/spwpn_sword_of_power.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/spwpn_sword_of_power2.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/spwpn_sword_of_zonguldrok.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/spwpn_sword_of_zonguldrok2.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/spwpn_vampires_tooth.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/spwpn_wrath_of_trog.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/spwpn_wrath_of_trog2.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/stiletto.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/sword_orcish.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/throwing_net.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/trident.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/trident2.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/triple_sword.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/tsurugi.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/two_handed_sword.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/urand_arga.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/urand_bloodbane.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/urand_blowgun.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/urand_brilliance.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/urand_chilly_death.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/urand_doom_knight.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/urand_elemental.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/urand_eos.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/urand_erchidel.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/urand_fiery_devil.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/urand_finisher.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/urand_fkaming_death.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/urand_guard.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/urand_jihad.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/urand_krishna.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/urand_leech.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/urand_morg.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/urand_octopus_king.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/urand_plutonium.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/urand_punk.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/urand_skullcrusher.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/urand_sniper.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/urand_undeadhunter.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/urand_voo_doo.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/voulge.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/war_axe.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/war_hammer.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/worm_tooth.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/ya.bmp create mode 100644 crawl-ref/source/rltiles/item/weapon/yumi.bmp create mode 100644 crawl-ref/source/rltiles/license.txt create mode 100644 crawl-ref/source/rltiles/makefile.mgw create mode 100644 crawl-ref/source/rltiles/makefile.unix create mode 100644 crawl-ref/source/rltiles/player/arm/claws.bmp create mode 100644 crawl-ref/source/rltiles/player/arm/gauntlet_blue.bmp create mode 100644 crawl-ref/source/rltiles/player/arm/glove_black.bmp create mode 100644 crawl-ref/source/rltiles/player/arm/glove_black2.bmp create mode 100644 crawl-ref/source/rltiles/player/arm/glove_blue.bmp create mode 100644 crawl-ref/source/rltiles/player/arm/glove_brown.bmp create mode 100644 crawl-ref/source/rltiles/player/arm/glove_chunli.bmp create mode 100644 crawl-ref/source/rltiles/player/arm/glove_gold.bmp create mode 100644 crawl-ref/source/rltiles/player/arm/glove_gray.bmp create mode 100644 crawl-ref/source/rltiles/player/arm/glove_grayfist.bmp create mode 100644 crawl-ref/source/rltiles/player/arm/glove_orange.bmp create mode 100644 crawl-ref/source/rltiles/player/arm/glove_purple.bmp create mode 100644 crawl-ref/source/rltiles/player/arm/glove_red.bmp create mode 100644 crawl-ref/source/rltiles/player/arm/glove_short_blue.bmp create mode 100644 crawl-ref/source/rltiles/player/arm/glove_short_gray.bmp create mode 100644 crawl-ref/source/rltiles/player/arm/glove_short_green.bmp create mode 100644 crawl-ref/source/rltiles/player/arm/glove_short_red.bmp create mode 100644 crawl-ref/source/rltiles/player/arm/glove_short_white.bmp create mode 100644 crawl-ref/source/rltiles/player/arm/glove_short_yellow.bmp create mode 100644 crawl-ref/source/rltiles/player/arm/glove_white.bmp create mode 100644 crawl-ref/source/rltiles/player/arm/glove_wrist_purple.bmp create mode 100644 crawl-ref/source/rltiles/player/barding/centaur_barding.bmp create mode 100644 crawl-ref/source/rltiles/player/barding/naga_barding.bmp create mode 100644 crawl-ref/source/rltiles/player/base/centaur_f.bmp create mode 100644 crawl-ref/source/rltiles/player/base/centaur_m.bmp create mode 100644 crawl-ref/source/rltiles/player/base/deep_elf_f.bmp create mode 100644 crawl-ref/source/rltiles/player/base/deep_elf_m.bmp create mode 100644 crawl-ref/source/rltiles/player/base/demigod_f.bmp create mode 100644 crawl-ref/source/rltiles/player/base/demigod_m.bmp create mode 100644 crawl-ref/source/rltiles/player/base/demonspawn_f.bmp create mode 100644 crawl-ref/source/rltiles/player/base/demonspawn_m.bmp create mode 100644 crawl-ref/source/rltiles/player/base/draconian_black_f.bmp create mode 100644 crawl-ref/source/rltiles/player/base/draconian_black_m.bmp create mode 100644 crawl-ref/source/rltiles/player/base/draconian_f.bmp create mode 100644 crawl-ref/source/rltiles/player/base/draconian_gold_f.bmp create mode 100644 crawl-ref/source/rltiles/player/base/draconian_gold_m.bmp create mode 100644 crawl-ref/source/rltiles/player/base/draconian_gray_f.bmp create mode 100644 crawl-ref/source/rltiles/player/base/draconian_gray_m.bmp create mode 100644 crawl-ref/source/rltiles/player/base/draconian_green_f.bmp create mode 100644 crawl-ref/source/rltiles/player/base/draconian_green_m.bmp create mode 100644 crawl-ref/source/rltiles/player/base/draconian_m.bmp create mode 100644 crawl-ref/source/rltiles/player/base/draconian_mottled_f.bmp create mode 100644 crawl-ref/source/rltiles/player/base/draconian_mottled_m.bmp create mode 100644 crawl-ref/source/rltiles/player/base/draconian_pale_f.bmp create mode 100644 crawl-ref/source/rltiles/player/base/draconian_pale_m.bmp create mode 100644 crawl-ref/source/rltiles/player/base/draconian_purple_f.bmp create mode 100644 crawl-ref/source/rltiles/player/base/draconian_purple_m.bmp create mode 100644 crawl-ref/source/rltiles/player/base/draconian_red_f.bmp create mode 100644 crawl-ref/source/rltiles/player/base/draconian_red_m.bmp create mode 100644 crawl-ref/source/rltiles/player/base/draconian_white_f.bmp create mode 100644 crawl-ref/source/rltiles/player/base/draconian_white_m.bmp create mode 100644 crawl-ref/source/rltiles/player/base/dwarf_f.bmp create mode 100644 crawl-ref/source/rltiles/player/base/dwarf_m.bmp create mode 100644 crawl-ref/source/rltiles/player/base/elf_f.bmp create mode 100644 crawl-ref/source/rltiles/player/base/elf_m.bmp create mode 100644 crawl-ref/source/rltiles/player/base/ghoul_f.bmp create mode 100644 crawl-ref/source/rltiles/player/base/ghoul_m.bmp create mode 100644 crawl-ref/source/rltiles/player/base/gnome_f.bmp create mode 100644 crawl-ref/source/rltiles/player/base/gnome_m.bmp create mode 100644 crawl-ref/source/rltiles/player/base/halfling_f.bmp create mode 100644 crawl-ref/source/rltiles/player/base/halfling_m.bmp create mode 100644 crawl-ref/source/rltiles/player/base/human_f.bmp create mode 100644 crawl-ref/source/rltiles/player/base/human_m.bmp create mode 100644 crawl-ref/source/rltiles/player/base/kenku_f.bmp create mode 100644 crawl-ref/source/rltiles/player/base/kenku_m.bmp create mode 100644 crawl-ref/source/rltiles/player/base/kobold_f.bmp create mode 100644 crawl-ref/source/rltiles/player/base/kobold_m.bmp create mode 100644 crawl-ref/source/rltiles/player/base/merfolk_f.bmp create mode 100644 crawl-ref/source/rltiles/player/base/merfolk_fs.bmp create mode 100644 crawl-ref/source/rltiles/player/base/merfolk_m.bmp create mode 100644 crawl-ref/source/rltiles/player/base/merfolk_ms.bmp create mode 100644 crawl-ref/source/rltiles/player/base/merfolk_water_f.bmp create mode 100644 crawl-ref/source/rltiles/player/base/merfolk_water_m.bmp create mode 100644 crawl-ref/source/rltiles/player/base/minotaur_f.bmp create mode 100644 crawl-ref/source/rltiles/player/base/minotaur_m.bmp create mode 100644 crawl-ref/source/rltiles/player/base/mummy_f.bmp create mode 100644 crawl-ref/source/rltiles/player/base/mummy_m.bmp create mode 100644 crawl-ref/source/rltiles/player/base/naga_f.bmp create mode 100644 crawl-ref/source/rltiles/player/base/naga_m.bmp create mode 100644 crawl-ref/source/rltiles/player/base/ogre_f.bmp create mode 100644 crawl-ref/source/rltiles/player/base/ogre_m.bmp create mode 100644 crawl-ref/source/rltiles/player/base/ogre_mage_f.bmp create mode 100644 crawl-ref/source/rltiles/player/base/ogre_mage_m.bmp create mode 100644 crawl-ref/source/rltiles/player/base/orc_f.bmp create mode 100644 crawl-ref/source/rltiles/player/base/orc_m.bmp create mode 100644 crawl-ref/source/rltiles/player/base/shadow.bmp create mode 100644 crawl-ref/source/rltiles/player/base/spriggan_f.bmp create mode 100644 crawl-ref/source/rltiles/player/base/spriggan_m.bmp create mode 100644 crawl-ref/source/rltiles/player/base/troll_f.bmp create mode 100644 crawl-ref/source/rltiles/player/base/troll_m.bmp create mode 100644 crawl-ref/source/rltiles/player/base/vampire_f.bmp create mode 100644 crawl-ref/source/rltiles/player/base/vampire_m.bmp create mode 100644 crawl-ref/source/rltiles/player/beard/long_black.bmp create mode 100644 crawl-ref/source/rltiles/player/beard/long_red.bmp create mode 100644 crawl-ref/source/rltiles/player/beard/long_white.bmp create mode 100644 crawl-ref/source/rltiles/player/beard/long_yellow.bmp create mode 100644 crawl-ref/source/rltiles/player/beard/pj.bmp create mode 100644 crawl-ref/source/rltiles/player/beard/short_black.bmp create mode 100644 crawl-ref/source/rltiles/player/beard/short_red.bmp create mode 100644 crawl-ref/source/rltiles/player/beard/short_white.bmp create mode 100644 crawl-ref/source/rltiles/player/beard/short_yellow.bmp create mode 100644 crawl-ref/source/rltiles/player/body/animal_skin.bmp create mode 100644 crawl-ref/source/rltiles/player/body/aragorn.bmp create mode 100644 crawl-ref/source/rltiles/player/body/aragorn2.bmp create mode 100644 crawl-ref/source/rltiles/player/body/armor_blue_gold.bmp create mode 100644 crawl-ref/source/rltiles/player/body/armor_mummy.bmp create mode 100644 crawl-ref/source/rltiles/player/body/arwen.bmp create mode 100644 crawl-ref/source/rltiles/player/body/banded.bmp create mode 100644 crawl-ref/source/rltiles/player/body/banded2.bmp create mode 100644 crawl-ref/source/rltiles/player/body/belt1.bmp create mode 100644 crawl-ref/source/rltiles/player/body/belt2.bmp create mode 100644 crawl-ref/source/rltiles/player/body/bikini_red.bmp create mode 100644 crawl-ref/source/rltiles/player/body/bloody.bmp create mode 100644 crawl-ref/source/rltiles/player/body/boromir.bmp create mode 100644 crawl-ref/source/rltiles/player/body/bplate_green.bmp create mode 100644 crawl-ref/source/rltiles/player/body/bplate_metal1.bmp create mode 100644 crawl-ref/source/rltiles/player/body/breast_black.bmp create mode 100644 crawl-ref/source/rltiles/player/body/chainmail.bmp create mode 100644 crawl-ref/source/rltiles/player/body/chainmail2.bmp create mode 100644 crawl-ref/source/rltiles/player/body/chainmail3.bmp create mode 100644 crawl-ref/source/rltiles/player/body/china_red.bmp create mode 100644 crawl-ref/source/rltiles/player/body/china_red2.bmp create mode 100644 crawl-ref/source/rltiles/player/body/chunli.bmp create mode 100644 crawl-ref/source/rltiles/player/body/coat_black.bmp create mode 100644 crawl-ref/source/rltiles/player/body/coat_red.bmp create mode 100644 crawl-ref/source/rltiles/player/body/crystal_plate.bmp create mode 100644 crawl-ref/source/rltiles/player/body/dragonarm_blue.bmp create mode 100644 crawl-ref/source/rltiles/player/body/dragonarm_brown.bmp create mode 100644 crawl-ref/source/rltiles/player/body/dragonarm_cyan.bmp create mode 100644 crawl-ref/source/rltiles/player/body/dragonarm_gold.bmp create mode 100644 crawl-ref/source/rltiles/player/body/dragonarm_green.bmp create mode 100644 crawl-ref/source/rltiles/player/body/dragonarm_magenta.bmp create mode 100644 crawl-ref/source/rltiles/player/body/dragonarm_white.bmp create mode 100644 crawl-ref/source/rltiles/player/body/dragonsc_blue.bmp create mode 100644 crawl-ref/source/rltiles/player/body/dragonsc_brown.bmp create mode 100644 crawl-ref/source/rltiles/player/body/dragonsc_cyan.bmp create mode 100644 crawl-ref/source/rltiles/player/body/dragonsc_gold.bmp create mode 100644 crawl-ref/source/rltiles/player/body/dragonsc_green.bmp create mode 100644 crawl-ref/source/rltiles/player/body/dragonsc_magenta.bmp create mode 100644 crawl-ref/source/rltiles/player/body/dragonsc_white.bmp create mode 100644 crawl-ref/source/rltiles/player/body/dress_green.bmp create mode 100644 crawl-ref/source/rltiles/player/body/dress_white.bmp create mode 100644 crawl-ref/source/rltiles/player/body/edison.bmp create mode 100644 crawl-ref/source/rltiles/player/body/frodo.bmp create mode 100644 crawl-ref/source/rltiles/player/body/gandalf_g.bmp create mode 100644 crawl-ref/source/rltiles/player/body/gil-galad.bmp create mode 100644 crawl-ref/source/rltiles/player/body/gimli.bmp create mode 100644 crawl-ref/source/rltiles/player/body/green_chain.bmp create mode 100644 crawl-ref/source/rltiles/player/body/green_susp.bmp create mode 100644 crawl-ref/source/rltiles/player/body/half_plate.bmp create mode 100644 crawl-ref/source/rltiles/player/body/half_plate2.bmp create mode 100644 crawl-ref/source/rltiles/player/body/half_plate3.bmp create mode 100644 crawl-ref/source/rltiles/player/body/isildur.bmp create mode 100644 crawl-ref/source/rltiles/player/body/jacket2.bmp create mode 100644 crawl-ref/source/rltiles/player/body/jacket3.bmp create mode 100644 crawl-ref/source/rltiles/player/body/jacket_stud.bmp create mode 100644 crawl-ref/source/rltiles/player/body/jessica.bmp create mode 100644 crawl-ref/source/rltiles/player/body/karate.bmp create mode 100644 crawl-ref/source/rltiles/player/body/karate2.bmp create mode 100644 crawl-ref/source/rltiles/player/body/lears_chain_mail.bmp create mode 100644 crawl-ref/source/rltiles/player/body/leather2.bmp create mode 100644 crawl-ref/source/rltiles/player/body/leather_armour.bmp create mode 100644 crawl-ref/source/rltiles/player/body/leather_armour2.bmp create mode 100644 crawl-ref/source/rltiles/player/body/leather_armour3.bmp create mode 100644 crawl-ref/source/rltiles/player/body/leather_green.bmp create mode 100644 crawl-ref/source/rltiles/player/body/leather_heavy.bmp create mode 100644 crawl-ref/source/rltiles/player/body/leather_jacket.bmp create mode 100644 crawl-ref/source/rltiles/player/body/leather_metal.bmp create mode 100644 crawl-ref/source/rltiles/player/body/leather_red.bmp create mode 100644 crawl-ref/source/rltiles/player/body/leather_short.bmp create mode 100644 crawl-ref/source/rltiles/player/body/leather_stud.bmp create mode 100644 crawl-ref/source/rltiles/player/body/legolas.bmp create mode 100644 crawl-ref/source/rltiles/player/body/merry.bmp create mode 100644 crawl-ref/source/rltiles/player/body/mesh_black.bmp create mode 100644 crawl-ref/source/rltiles/player/body/mesh_red.bmp create mode 100644 crawl-ref/source/rltiles/player/body/metal_blue.bmp create mode 100644 crawl-ref/source/rltiles/player/body/monk_black.bmp create mode 100644 crawl-ref/source/rltiles/player/body/monk_blue.bmp create mode 100644 crawl-ref/source/rltiles/player/body/neck.bmp create mode 100644 crawl-ref/source/rltiles/player/body/pipin.bmp create mode 100644 crawl-ref/source/rltiles/player/body/pj.bmp create mode 100644 crawl-ref/source/rltiles/player/body/plate.bmp create mode 100644 crawl-ref/source/rltiles/player/body/plate2.bmp create mode 100644 crawl-ref/source/rltiles/player/body/plate_and_cloth.bmp create mode 100644 crawl-ref/source/rltiles/player/body/plate_and_cloth2.bmp create mode 100644 crawl-ref/source/rltiles/player/body/plate_black.bmp create mode 100644 crawl-ref/source/rltiles/player/body/ringmail.bmp create mode 100644 crawl-ref/source/rltiles/player/body/robe_black.bmp create mode 100644 crawl-ref/source/rltiles/player/body/robe_black_gold.bmp create mode 100644 crawl-ref/source/rltiles/player/body/robe_black_hood.bmp create mode 100644 crawl-ref/source/rltiles/player/body/robe_black_red.bmp create mode 100644 crawl-ref/source/rltiles/player/body/robe_blue.bmp create mode 100644 crawl-ref/source/rltiles/player/body/robe_blue_green.bmp create mode 100644 crawl-ref/source/rltiles/player/body/robe_blue_white.bmp create mode 100644 crawl-ref/source/rltiles/player/body/robe_brown.bmp create mode 100644 crawl-ref/source/rltiles/player/body/robe_brown2.bmp create mode 100644 crawl-ref/source/rltiles/player/body/robe_brown3.bmp create mode 100644 crawl-ref/source/rltiles/player/body/robe_cyan.bmp create mode 100644 crawl-ref/source/rltiles/player/body/robe_gray2.bmp create mode 100644 crawl-ref/source/rltiles/player/body/robe_green.bmp create mode 100644 crawl-ref/source/rltiles/player/body/robe_green_gold.bmp create mode 100644 crawl-ref/source/rltiles/player/body/robe_magenta.bmp create mode 100644 crawl-ref/source/rltiles/player/body/robe_of_night.bmp create mode 100644 crawl-ref/source/rltiles/player/body/robe_purple.bmp create mode 100644 crawl-ref/source/rltiles/player/body/robe_rainbow.bmp create mode 100644 crawl-ref/source/rltiles/player/body/robe_red.bmp create mode 100644 crawl-ref/source/rltiles/player/body/robe_red2.bmp create mode 100644 crawl-ref/source/rltiles/player/body/robe_red3.bmp create mode 100644 crawl-ref/source/rltiles/player/body/robe_red_gold.bmp create mode 100644 crawl-ref/source/rltiles/player/body/robe_white.bmp create mode 100644 crawl-ref/source/rltiles/player/body/robe_white2.bmp create mode 100644 crawl-ref/source/rltiles/player/body/robe_white_green.bmp create mode 100644 crawl-ref/source/rltiles/player/body/robe_white_red.bmp create mode 100644 crawl-ref/source/rltiles/player/body/robe_yellow.bmp create mode 100644 crawl-ref/source/rltiles/player/body/sailor.bmp create mode 100644 crawl-ref/source/rltiles/player/body/sam.bmp create mode 100644 crawl-ref/source/rltiles/player/body/saruman.bmp create mode 100644 crawl-ref/source/rltiles/player/body/scalemail.bmp create mode 100644 crawl-ref/source/rltiles/player/body/scalemail2.bmp create mode 100644 crawl-ref/source/rltiles/player/body/shirt_black.bmp create mode 100644 crawl-ref/source/rltiles/player/body/shirt_black3.bmp create mode 100644 crawl-ref/source/rltiles/player/body/shirt_black_and_cloth.bmp create mode 100644 crawl-ref/source/rltiles/player/body/shirt_blue.bmp create mode 100644 crawl-ref/source/rltiles/player/body/shirt_check.bmp create mode 100644 crawl-ref/source/rltiles/player/body/shirt_hawaii.bmp create mode 100644 crawl-ref/source/rltiles/player/body/shirt_vest.bmp create mode 100644 crawl-ref/source/rltiles/player/body/shirt_white1.bmp create mode 100644 crawl-ref/source/rltiles/player/body/shirt_white2.bmp create mode 100644 crawl-ref/source/rltiles/player/body/shirt_white3.bmp create mode 100644 crawl-ref/source/rltiles/player/body/shirt_white_yellow.bmp create mode 100644 crawl-ref/source/rltiles/player/body/shoulder_pad.bmp create mode 100644 crawl-ref/source/rltiles/player/body/skirt_onep_grey.bmp create mode 100644 crawl-ref/source/rltiles/player/body/slit_black.bmp create mode 100644 crawl-ref/source/rltiles/player/body/susp_black.bmp create mode 100644 crawl-ref/source/rltiles/player/body/troll_hide.bmp create mode 100644 crawl-ref/source/rltiles/player/body/vanhel1.bmp create mode 100644 crawl-ref/source/rltiles/player/body/vest_red.bmp create mode 100644 crawl-ref/source/rltiles/player/body/vest_red2.bmp create mode 100644 crawl-ref/source/rltiles/player/body/zhor.bmp create mode 100644 crawl-ref/source/rltiles/player/boot/blue_gold.bmp create mode 100644 crawl-ref/source/rltiles/player/boot/hooves.bmp create mode 100644 crawl-ref/source/rltiles/player/boot/long_red.bmp create mode 100644 crawl-ref/source/rltiles/player/boot/long_white.bmp create mode 100644 crawl-ref/source/rltiles/player/boot/mesh_black.bmp create mode 100644 crawl-ref/source/rltiles/player/boot/mesh_blue.bmp create mode 100644 crawl-ref/source/rltiles/player/boot/mesh_red.bmp create mode 100644 crawl-ref/source/rltiles/player/boot/mesh_white.bmp create mode 100644 crawl-ref/source/rltiles/player/boot/middle_brown.bmp create mode 100644 crawl-ref/source/rltiles/player/boot/middle_brown2.bmp create mode 100644 crawl-ref/source/rltiles/player/boot/middle_brown3.bmp create mode 100644 crawl-ref/source/rltiles/player/boot/middle_gold.bmp create mode 100644 crawl-ref/source/rltiles/player/boot/middle_gray.bmp create mode 100644 crawl-ref/source/rltiles/player/boot/middle_green.bmp create mode 100644 crawl-ref/source/rltiles/player/boot/middle_purple.bmp create mode 100644 crawl-ref/source/rltiles/player/boot/middle_ybrown.bmp create mode 100644 crawl-ref/source/rltiles/player/boot/pj.bmp create mode 100644 crawl-ref/source/rltiles/player/boot/short_brown.bmp create mode 100644 crawl-ref/source/rltiles/player/boot/short_brown2.bmp create mode 100644 crawl-ref/source/rltiles/player/boot/short_purple.bmp create mode 100644 crawl-ref/source/rltiles/player/boot/short_red.bmp create mode 100644 crawl-ref/source/rltiles/player/cloak/black.bmp create mode 100644 crawl-ref/source/rltiles/player/cloak/blue.bmp create mode 100644 crawl-ref/source/rltiles/player/cloak/brown.bmp create mode 100644 crawl-ref/source/rltiles/player/cloak/cyan.bmp create mode 100644 crawl-ref/source/rltiles/player/cloak/gray.bmp create mode 100644 crawl-ref/source/rltiles/player/cloak/green.bmp create mode 100644 crawl-ref/source/rltiles/player/cloak/magenta.bmp create mode 100644 crawl-ref/source/rltiles/player/cloak/red.bmp create mode 100644 crawl-ref/source/rltiles/player/cloak/white.bmp create mode 100644 crawl-ref/source/rltiles/player/cloak/yellow.bmp create mode 100644 crawl-ref/source/rltiles/player/drchead/drchead_black.bmp create mode 100644 crawl-ref/source/rltiles/player/drchead/drchead_brown.bmp create mode 100644 crawl-ref/source/rltiles/player/drchead/drchead_green.bmp create mode 100644 crawl-ref/source/rltiles/player/drchead/drchead_grey.bmp create mode 100644 crawl-ref/source/rltiles/player/drchead/drchead_mottled.bmp create mode 100644 crawl-ref/source/rltiles/player/drchead/drchead_pale.bmp create mode 100644 crawl-ref/source/rltiles/player/drchead/drchead_purple.bmp create mode 100644 crawl-ref/source/rltiles/player/drchead/drchead_red.bmp create mode 100644 crawl-ref/source/rltiles/player/drchead/drchead_white.bmp create mode 100644 crawl-ref/source/rltiles/player/drchead/drchead_yellow.bmp create mode 100644 crawl-ref/source/rltiles/player/drcwing/drcwing_black.bmp create mode 100644 crawl-ref/source/rltiles/player/drcwing/drcwing_brown.bmp create mode 100644 crawl-ref/source/rltiles/player/drcwing/drcwing_green.bmp create mode 100644 crawl-ref/source/rltiles/player/drcwing/drcwing_grey.bmp create mode 100644 crawl-ref/source/rltiles/player/drcwing/drcwing_mottled.bmp create mode 100644 crawl-ref/source/rltiles/player/drcwing/drcwing_pale.bmp create mode 100644 crawl-ref/source/rltiles/player/drcwing/drcwing_purple.bmp create mode 100644 crawl-ref/source/rltiles/player/drcwing/drcwing_red.bmp create mode 100644 crawl-ref/source/rltiles/player/drcwing/drcwing_white.bmp create mode 100644 crawl-ref/source/rltiles/player/drcwing/drcwing_yellow.bmp create mode 100644 crawl-ref/source/rltiles/player/hair/aragorn.bmp create mode 100644 crawl-ref/source/rltiles/player/hair/arwen.bmp create mode 100644 crawl-ref/source/rltiles/player/hair/boromir.bmp create mode 100644 crawl-ref/source/rltiles/player/hair/brown1.bmp create mode 100644 crawl-ref/source/rltiles/player/hair/brown2.bmp create mode 100644 crawl-ref/source/rltiles/player/hair/elf_black.bmp create mode 100644 crawl-ref/source/rltiles/player/hair/elf_red.bmp create mode 100644 crawl-ref/source/rltiles/player/hair/elf_white.bmp create mode 100644 crawl-ref/source/rltiles/player/hair/elf_yellow.bmp create mode 100644 crawl-ref/source/rltiles/player/hair/fem_black.bmp create mode 100644 crawl-ref/source/rltiles/player/hair/fem_red.bmp create mode 100644 crawl-ref/source/rltiles/player/hair/fem_white.bmp create mode 100644 crawl-ref/source/rltiles/player/hair/fem_yellow.bmp create mode 100644 crawl-ref/source/rltiles/player/hair/frodo.bmp create mode 100644 crawl-ref/source/rltiles/player/hair/legolas.bmp create mode 100644 crawl-ref/source/rltiles/player/hair/long_black.bmp create mode 100644 crawl-ref/source/rltiles/player/hair/long_red.bmp create mode 100644 crawl-ref/source/rltiles/player/hair/long_white.bmp create mode 100644 crawl-ref/source/rltiles/player/hair/long_yellow.bmp create mode 100644 crawl-ref/source/rltiles/player/hair/merry.bmp create mode 100644 crawl-ref/source/rltiles/player/hair/pigtail_red.bmp create mode 100644 crawl-ref/source/rltiles/player/hair/pj.bmp create mode 100644 crawl-ref/source/rltiles/player/hair/sam.bmp create mode 100644 crawl-ref/source/rltiles/player/hair/short_black.bmp create mode 100644 crawl-ref/source/rltiles/player/hair/short_red.bmp create mode 100644 crawl-ref/source/rltiles/player/hair/short_white.bmp create mode 100644 crawl-ref/source/rltiles/player/hair/short_yellow.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/aragorn.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/arga.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/arwen.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/asmodeus.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/axe.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/axe2.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/axe_blood.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/axe_double.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/axe_executioner.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/axe_short.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/axe_small.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/axe_trog.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/black_sword.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/black_whip.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/bladehands.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/blessed_blade.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/bloodbane.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/blowgun.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/bone_lantern.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/boromir.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/bottle.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/bow.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/bow2.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/bow3.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/bow_blue.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/box.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/broadsword.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/chilly_death.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/club.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/club2.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/club3.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/club_slant.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/crossbow.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/crossbow2.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/crossbow3.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/crossbow4.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/crossbow_fire.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/crystal.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/d_glaive.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/dagger.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/dagger_slant.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/deck.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/dirt.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/disc.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/dispater.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/doom_knight.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/double_sword.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/elemental_staff.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/eveningstar.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/falchion.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/fan.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/finisher.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/fire_blue.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/fire_cyan.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/fire_dark.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/fire_green.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/fire_red.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/fire_white.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/fire_white2.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/flaming_death.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/fork2.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/frail_ball.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/frail_ball2.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/frail_ball3.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/frail_ball4.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/frail_balls.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/frail_spike.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/frail_stick.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/frail_stick_slant.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/frodo.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/gandalf.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/giant_club.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/giant_club_slant.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/giant_club_spike.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/giant_club_spike_slant.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/gimli.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/glaive.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/glaive2.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/glaive3.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/glaive_of_prune.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/great_axe.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/great_bow.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/great_staff.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/great_sword.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/great_sword_slant.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/halberd.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/hammer.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/hammer2.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/hammer3.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/hand_axe.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/head.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/heavy_sword.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/hook.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/horn.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/jihad.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/katana.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/katana_slant.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/knife.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/krishna.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/lance.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/lance2.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/lantern.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/large_mace.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/leech.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/legolas.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/light_blue.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/light_red.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/light_yellow.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/long_sword.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/long_sword_slant.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/mace.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/mace2.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/mace3.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/mace_of_variability.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/mace_ruby.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/morg.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/morningstar.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/morningstar2.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/nunchaku.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/olgreb.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/orb.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/pick_axe.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/pike.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/plutonium_sword.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/pole_forked.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/punk.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/quarterstaff1.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/quarterstaff2.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/quarterstaff3.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/quarterstaff4.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/sabre.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/saruman.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/sceptre.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/scimitar.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/scimitar2.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/scythe.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/scythe_slant.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/short_sword.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/short_sword2.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/short_sword_slant.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/sickle.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/singing_sword.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/skull.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/sling.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/sniper.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/spark.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/spear1.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/spear2.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/spear3.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/spear4.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/spear5.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/staff_evil.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/staff_fork.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/staff_large.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/staff_mage.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/staff_mage2.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/staff_mummy.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/staff_ring_blue.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/staff_ruby.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/staff_skull.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/stick.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/stone.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/sword2.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/sword3.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/sword_black.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/sword_breaker.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/sword_jag.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/sword_seven.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/sword_thief.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/sword_tri.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/sword_twist.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/trident.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/trident2.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/trident3.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/trident_demon.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/trident_elec.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/triple_sword.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/voodoo.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/war_axe.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/whip.bmp create mode 100644 crawl-ref/source/rltiles/player/hand1/zonguldrok.bmp create mode 100644 crawl-ref/source/rltiles/player/hand2/bladehands.bmp create mode 100644 crawl-ref/source/rltiles/player/hand2/book_black.bmp create mode 100644 crawl-ref/source/rltiles/player/hand2/book_blue.bmp create mode 100644 crawl-ref/source/rltiles/player/hand2/book_blue_dim.bmp create mode 100644 crawl-ref/source/rltiles/player/hand2/book_cyan.bmp create mode 100644 crawl-ref/source/rltiles/player/hand2/book_cyan_dim.bmp create mode 100644 crawl-ref/source/rltiles/player/hand2/book_green.bmp create mode 100644 crawl-ref/source/rltiles/player/hand2/book_green_dim.bmp create mode 100644 crawl-ref/source/rltiles/player/hand2/book_magenta.bmp create mode 100644 crawl-ref/source/rltiles/player/hand2/book_magenta_dim.bmp create mode 100644 crawl-ref/source/rltiles/player/hand2/book_red.bmp create mode 100644 crawl-ref/source/rltiles/player/hand2/book_red_dim.bmp create mode 100644 crawl-ref/source/rltiles/player/hand2/book_sky.bmp create mode 100644 crawl-ref/source/rltiles/player/hand2/book_white.bmp create mode 100644 crawl-ref/source/rltiles/player/hand2/book_yellow.bmp create mode 100644 crawl-ref/source/rltiles/player/hand2/book_yellow_dim.bmp create mode 100644 crawl-ref/source/rltiles/player/hand2/boromir.bmp create mode 100644 crawl-ref/source/rltiles/player/hand2/bullseye.bmp create mode 100644 crawl-ref/source/rltiles/player/hand2/dagger.bmp create mode 100644 crawl-ref/source/rltiles/player/hand2/fire_cyan.bmp create mode 100644 crawl-ref/source/rltiles/player/hand2/fire_dark.bmp create mode 100644 crawl-ref/source/rltiles/player/hand2/fire_green.bmp create mode 100644 crawl-ref/source/rltiles/player/hand2/fire_white.bmp create mode 100644 crawl-ref/source/rltiles/player/hand2/fire_white2.bmp create mode 100644 crawl-ref/source/rltiles/player/hand2/gil-galad.bmp create mode 100644 crawl-ref/source/rltiles/player/hand2/lantern.bmp create mode 100644 crawl-ref/source/rltiles/player/hand2/light_blue.bmp create mode 100644 crawl-ref/source/rltiles/player/hand2/light_red.bmp create mode 100644 crawl-ref/source/rltiles/player/hand2/light_yellow.bmp create mode 100644 crawl-ref/source/rltiles/player/hand2/pj.bmp create mode 100644 crawl-ref/source/rltiles/player/hand2/sabre.bmp create mode 100644 crawl-ref/source/rltiles/player/hand2/shield_diamond_yellow.bmp create mode 100644 crawl-ref/source/rltiles/player/hand2/shield_kite1.bmp create mode 100644 crawl-ref/source/rltiles/player/hand2/shield_kite2.bmp create mode 100644 crawl-ref/source/rltiles/player/hand2/shield_kite3.bmp create mode 100644 crawl-ref/source/rltiles/player/hand2/shield_kite4.bmp create mode 100644 crawl-ref/source/rltiles/player/hand2/shield_knight_blue.bmp create mode 100644 crawl-ref/source/rltiles/player/hand2/shield_knight_gray.bmp create mode 100644 crawl-ref/source/rltiles/player/hand2/shield_knight_rw.bmp create mode 100644 crawl-ref/source/rltiles/player/hand2/shield_long_cross.bmp create mode 100644 crawl-ref/source/rltiles/player/hand2/shield_long_red.bmp create mode 100644 crawl-ref/source/rltiles/player/hand2/shield_middle_black.bmp create mode 100644 crawl-ref/source/rltiles/player/hand2/shield_middle_brown.bmp create mode 100644 crawl-ref/source/rltiles/player/hand2/shield_middle_cyan.bmp create mode 100644 crawl-ref/source/rltiles/player/hand2/shield_middle_ethn.bmp create mode 100644 crawl-ref/source/rltiles/player/hand2/shield_middle_gray.bmp create mode 100644 crawl-ref/source/rltiles/player/hand2/shield_middle_round.bmp create mode 100644 crawl-ref/source/rltiles/player/hand2/shield_middle_unicorn.bmp create mode 100644 crawl-ref/source/rltiles/player/hand2/shield_of_resistance.bmp create mode 100644 crawl-ref/source/rltiles/player/hand2/shield_round1.bmp create mode 100644 crawl-ref/source/rltiles/player/hand2/shield_round2.bmp create mode 100644 crawl-ref/source/rltiles/player/hand2/shield_round3.bmp create mode 100644 crawl-ref/source/rltiles/player/hand2/shield_round4.bmp create mode 100644 crawl-ref/source/rltiles/player/hand2/shield_round5.bmp create mode 100644 crawl-ref/source/rltiles/player/hand2/shield_round6.bmp create mode 100644 crawl-ref/source/rltiles/player/hand2/shield_round7.bmp create mode 100644 crawl-ref/source/rltiles/player/hand2/shield_round_small.bmp create mode 100644 crawl-ref/source/rltiles/player/hand2/shield_round_small2.bmp create mode 100644 crawl-ref/source/rltiles/player/hand2/shield_round_white.bmp create mode 100644 crawl-ref/source/rltiles/player/hand2/shield_shaman.bmp create mode 100644 crawl-ref/source/rltiles/player/hand2/shield_skull.bmp create mode 100644 crawl-ref/source/rltiles/player/hand2/short_sword_slant.bmp create mode 100644 crawl-ref/source/rltiles/player/hand2/spark.bmp create mode 100644 crawl-ref/source/rltiles/player/hand2/torch.bmp create mode 100644 crawl-ref/source/rltiles/player/hand2/torsh2.bmp create mode 100644 crawl-ref/source/rltiles/player/head/art_dragonhelm.bmp create mode 100644 crawl-ref/source/rltiles/player/head/band_blue.bmp create mode 100644 crawl-ref/source/rltiles/player/head/band_magenta.bmp create mode 100644 crawl-ref/source/rltiles/player/head/band_red.bmp create mode 100644 crawl-ref/source/rltiles/player/head/band_white.bmp create mode 100644 crawl-ref/source/rltiles/player/head/band_yellow.bmp create mode 100644 crawl-ref/source/rltiles/player/head/bandana_ybrown.bmp create mode 100644 crawl-ref/source/rltiles/player/head/black_horn.bmp create mode 100644 crawl-ref/source/rltiles/player/head/black_horn2.bmp create mode 100644 crawl-ref/source/rltiles/player/head/blue_horn_gold.bmp create mode 100644 crawl-ref/source/rltiles/player/head/brown_gold.bmp create mode 100644 crawl-ref/source/rltiles/player/head/cap_black1.bmp create mode 100644 crawl-ref/source/rltiles/player/head/cap_blue.bmp create mode 100644 crawl-ref/source/rltiles/player/head/chain.bmp create mode 100644 crawl-ref/source/rltiles/player/head/cheek_red.bmp create mode 100644 crawl-ref/source/rltiles/player/head/clown1.bmp create mode 100644 crawl-ref/source/rltiles/player/head/cone_blue.bmp create mode 100644 crawl-ref/source/rltiles/player/head/cone_red.bmp create mode 100644 crawl-ref/source/rltiles/player/head/crown_gold.bmp create mode 100644 crawl-ref/source/rltiles/player/head/dyrovepreva.bmp create mode 100644 crawl-ref/source/rltiles/player/head/feather_blue.bmp create mode 100644 crawl-ref/source/rltiles/player/head/feather_green.bmp create mode 100644 crawl-ref/source/rltiles/player/head/feather_red.bmp create mode 100644 crawl-ref/source/rltiles/player/head/feather_white.bmp create mode 100644 crawl-ref/source/rltiles/player/head/feather_yellow.bmp create mode 100644 crawl-ref/source/rltiles/player/head/fhelm_gray3.bmp create mode 100644 crawl-ref/source/rltiles/player/head/fhelm_horn2.bmp create mode 100644 crawl-ref/source/rltiles/player/head/fhelm_horn_yellow.bmp create mode 100644 crawl-ref/source/rltiles/player/head/full_black.bmp create mode 100644 crawl-ref/source/rltiles/player/head/full_gold.bmp create mode 100644 crawl-ref/source/rltiles/player/head/gandalf.bmp create mode 100644 crawl-ref/source/rltiles/player/head/hat_black.bmp create mode 100644 crawl-ref/source/rltiles/player/head/healer.bmp create mode 100644 crawl-ref/source/rltiles/player/head/helm_gimli.bmp create mode 100644 crawl-ref/source/rltiles/player/head/helm_green.bmp create mode 100644 crawl-ref/source/rltiles/player/head/helm_plume.bmp create mode 100644 crawl-ref/source/rltiles/player/head/helm_red.bmp create mode 100644 crawl-ref/source/rltiles/player/head/hood_black2.bmp create mode 100644 crawl-ref/source/rltiles/player/head/hood_cyan.bmp create mode 100644 crawl-ref/source/rltiles/player/head/hood_gray.bmp create mode 100644 crawl-ref/source/rltiles/player/head/hood_green.bmp create mode 100644 crawl-ref/source/rltiles/player/head/hood_green2.bmp create mode 100644 crawl-ref/source/rltiles/player/head/hood_orange.bmp create mode 100644 crawl-ref/source/rltiles/player/head/hood_red.bmp create mode 100644 crawl-ref/source/rltiles/player/head/hood_red2.bmp create mode 100644 crawl-ref/source/rltiles/player/head/hood_white.bmp create mode 100644 crawl-ref/source/rltiles/player/head/hood_white2.bmp create mode 100644 crawl-ref/source/rltiles/player/head/hood_ybrown.bmp create mode 100644 crawl-ref/source/rltiles/player/head/horn_evil.bmp create mode 100644 crawl-ref/source/rltiles/player/head/horn_gray.bmp create mode 100644 crawl-ref/source/rltiles/player/head/horned.bmp create mode 100644 crawl-ref/source/rltiles/player/head/horns1.bmp create mode 100644 crawl-ref/source/rltiles/player/head/horns2.bmp create mode 100644 crawl-ref/source/rltiles/player/head/horns3.bmp create mode 100644 crawl-ref/source/rltiles/player/head/iron1.bmp create mode 100644 crawl-ref/source/rltiles/player/head/iron2.bmp create mode 100644 crawl-ref/source/rltiles/player/head/iron3.bmp create mode 100644 crawl-ref/source/rltiles/player/head/iron_red.bmp create mode 100644 crawl-ref/source/rltiles/player/head/isildur.bmp create mode 100644 crawl-ref/source/rltiles/player/head/mummy.bmp create mode 100644 crawl-ref/source/rltiles/player/head/ninja_black.bmp create mode 100644 crawl-ref/source/rltiles/player/head/straw.bmp create mode 100644 crawl-ref/source/rltiles/player/head/taiso_blue.bmp create mode 100644 crawl-ref/source/rltiles/player/head/taiso_magenta.bmp create mode 100644 crawl-ref/source/rltiles/player/head/taiso_red.bmp create mode 100644 crawl-ref/source/rltiles/player/head/taiso_white.bmp create mode 100644 crawl-ref/source/rltiles/player/head/taiso_yellow.bmp create mode 100644 crawl-ref/source/rltiles/player/head/turban_brown.bmp create mode 100644 crawl-ref/source/rltiles/player/head/turban_purple.bmp create mode 100644 crawl-ref/source/rltiles/player/head/turban_white.bmp create mode 100644 crawl-ref/source/rltiles/player/head/wizard_blackgold.bmp create mode 100644 crawl-ref/source/rltiles/player/head/wizard_blackred.bmp create mode 100644 crawl-ref/source/rltiles/player/head/wizard_blue.bmp create mode 100644 crawl-ref/source/rltiles/player/head/wizard_bluegreen.bmp create mode 100644 crawl-ref/source/rltiles/player/head/wizard_brown.bmp create mode 100644 crawl-ref/source/rltiles/player/head/wizard_darkgreen.bmp create mode 100644 crawl-ref/source/rltiles/player/head/wizard_purple.bmp create mode 100644 crawl-ref/source/rltiles/player/head/wizard_red.bmp create mode 100644 crawl-ref/source/rltiles/player/head/wizard_white.bmp create mode 100644 crawl-ref/source/rltiles/player/head/yellow_wing.bmp create mode 100644 crawl-ref/source/rltiles/player/leg/belt_gray.bmp create mode 100644 crawl-ref/source/rltiles/player/leg/belt_redbrown.bmp create mode 100644 crawl-ref/source/rltiles/player/leg/bikini_red.bmp create mode 100644 crawl-ref/source/rltiles/player/leg/chunli.bmp create mode 100644 crawl-ref/source/rltiles/player/leg/garter.bmp create mode 100644 crawl-ref/source/rltiles/player/leg/leg_armor00.bmp create mode 100644 crawl-ref/source/rltiles/player/leg/leg_armor01.bmp create mode 100644 crawl-ref/source/rltiles/player/leg/leg_armor02.bmp create mode 100644 crawl-ref/source/rltiles/player/leg/leg_armor03.bmp create mode 100644 crawl-ref/source/rltiles/player/leg/leg_armor04.bmp create mode 100644 crawl-ref/source/rltiles/player/leg/leg_armor05.bmp create mode 100644 crawl-ref/source/rltiles/player/leg/loincloth_red.bmp create mode 100644 crawl-ref/source/rltiles/player/leg/long_red.bmp create mode 100644 crawl-ref/source/rltiles/player/leg/metal_gray.bmp create mode 100644 crawl-ref/source/rltiles/player/leg/metal_green.bmp create mode 100644 crawl-ref/source/rltiles/player/leg/pants16.bmp create mode 100644 crawl-ref/source/rltiles/player/leg/pants_black.bmp create mode 100644 crawl-ref/source/rltiles/player/leg/pants_blue.bmp create mode 100644 crawl-ref/source/rltiles/player/leg/pants_brown.bmp create mode 100644 crawl-ref/source/rltiles/player/leg/pants_darkgreen.bmp create mode 100644 crawl-ref/source/rltiles/player/leg/pants_l_white.bmp create mode 100644 crawl-ref/source/rltiles/player/leg/pants_orange.bmp create mode 100644 crawl-ref/source/rltiles/player/leg/pants_red.bmp create mode 100644 crawl-ref/source/rltiles/player/leg/pants_short_brown.bmp create mode 100644 crawl-ref/source/rltiles/player/leg/pants_short_brown3.bmp create mode 100644 crawl-ref/source/rltiles/player/leg/pants_short_darkbrown.bmp create mode 100644 crawl-ref/source/rltiles/player/leg/pants_short_gray.bmp create mode 100644 crawl-ref/source/rltiles/player/leg/pj.bmp create mode 100644 crawl-ref/source/rltiles/player/leg/skirt_blue.bmp create mode 100644 crawl-ref/source/rltiles/player/leg/skirt_green.bmp create mode 100644 crawl-ref/source/rltiles/player/leg/skirt_red.bmp create mode 100644 crawl-ref/source/rltiles/player/leg/skirt_white.bmp create mode 100644 crawl-ref/source/rltiles/player/leg/skirt_white2.bmp create mode 100644 crawl-ref/source/rltiles/player/leg/trouser_green.bmp create mode 100644 crawl-ref/source/rltiles/tool/bm.c create mode 100644 crawl-ref/source/rltiles/tool/bm.h create mode 100644 crawl-ref/source/rltiles/tool/dcpl.c create mode 100644 crawl-ref/source/rltiles/tool/dcqv.c create mode 100644 crawl-ref/source/rltiles/tool/dcreverse.c create mode 100644 crawl-ref/source/rltiles/tool/dctile.c create mode 100644 crawl-ref/source/rltiles/tool/mkmap.c create mode 100644 crawl-ref/source/rltiles/tool/mkmapq.c create mode 100644 crawl-ref/source/rltiles/tool/palette.h create mode 100644 crawl-ref/source/rltiles/tool/shade.c create mode 100644 crawl-ref/source/rltiles/walls2d/hall.bmp create mode 100644 crawl-ref/source/rltiles/walls2d/hall.png create mode 100644 crawl-ref/source/rltiles/walls2d/hive.bmp create mode 100644 crawl-ref/source/rltiles/walls2d/hive.png create mode 100644 crawl-ref/source/rltiles/walls2d/ice.bmp create mode 100644 crawl-ref/source/rltiles/walls2d/ice.png create mode 100644 crawl-ref/source/rltiles/walls2d/lair.bmp create mode 100644 crawl-ref/source/rltiles/walls2d/lair.png create mode 100644 crawl-ref/source/rltiles/walls2d/normal.bmp create mode 100644 crawl-ref/source/rltiles/walls2d/normal.png create mode 100644 crawl-ref/source/rltiles/walls2d/orc.bmp create mode 100644 crawl-ref/source/rltiles/walls2d/orc.png create mode 100644 crawl-ref/source/rltiles/walls2d/slime.bmp create mode 100644 crawl-ref/source/rltiles/walls2d/slime.png create mode 100644 crawl-ref/source/rltiles/walls2d/snake.bmp create mode 100644 crawl-ref/source/rltiles/walls2d/snake.png create mode 100644 crawl-ref/source/rltiles/walls2d/swamp.bmp create mode 100644 crawl-ref/source/rltiles/walls2d/swamp.png create mode 100644 crawl-ref/source/rltiles/walls2d/tomb.bmp create mode 100644 crawl-ref/source/rltiles/walls2d/tomb.png create mode 100644 crawl-ref/source/rltiles/walls2d/undead.bmp create mode 100644 crawl-ref/source/rltiles/walls2d/undead.png create mode 100644 crawl-ref/source/rltiles/walls2d/vault.bmp create mode 100644 crawl-ref/source/rltiles/walls2d/vault.png create mode 100644 crawl-ref/source/rltiles/walls2d/z_blue.bmp create mode 100644 crawl-ref/source/rltiles/walls2d/z_blue.png create mode 100644 crawl-ref/source/rltiles/walls2d/z_cyan.bmp create mode 100644 crawl-ref/source/rltiles/walls2d/z_cyan.png create mode 100644 crawl-ref/source/rltiles/walls2d/z_gray.bmp create mode 100644 crawl-ref/source/rltiles/walls2d/z_gray.png create mode 100644 crawl-ref/source/rltiles/walls2d/z_green.bmp create mode 100644 crawl-ref/source/rltiles/walls2d/z_green.png create mode 100644 crawl-ref/source/rltiles/walls2d/z_magenta.bmp create mode 100644 crawl-ref/source/rltiles/walls2d/z_magenta.png create mode 100644 crawl-ref/source/rltiles/walls2d/z_red.bmp create mode 100644 crawl-ref/source/rltiles/walls2d/z_red.png create mode 100644 crawl-ref/source/rltiles/walls2d/z_yellow.bmp create mode 100644 crawl-ref/source/rltiles/walls2d/z_yellow.png create mode 100644 crawl-ref/source/tile1.cc create mode 100644 crawl-ref/source/tile2.cc create mode 100644 crawl-ref/source/tiles.h (limited to 'crawl-ref/source') diff --git a/crawl-ref/source/AppHdr.h b/crawl-ref/source/AppHdr.h index 2f0d01ab0a..899a818d53 100644 --- a/crawl-ref/source/AppHdr.h +++ b/crawl-ref/source/AppHdr.h @@ -104,8 +104,10 @@ #define FILE_SEPARATOR '/' #define CHARACTER_SET 0 +#ifndef USE_TILE #define USE_ASCII_CHARACTERS #define USE_CURSES +#endif #define EOL "\n" // Unix builds use curses/ncurses, which supports colour. @@ -178,8 +180,10 @@ #include -#elif defined(WIN32CONSOLE) - #include "libw32c.h" +#elif defined(WIN32CONSOLE) || defined(WIN32TILES) + #if defined(WIN32CONSOLE) + #include "libw32c.h" + #endif #define EOL "\n" #define CHARACTER_SET A_ALTCHARSET #define getstr(X,Y) get_console_string(X,Y) @@ -198,6 +202,10 @@ #error Missing platform #define or unsupported compiler. #endif +#ifdef USE_TILE + #include "libgui.h" +#endif + // ========================================================================= // Defines for dgamelaunch-specific things. // ========================================================================= diff --git a/crawl-ref/source/acr.cc b/crawl-ref/source/acr.cc index c3b65b061b..2c89e5eaf9 100644 --- a/crawl-ref/source/acr.cc +++ b/crawl-ref/source/acr.cc @@ -138,6 +138,8 @@ #include "stash.h" #include "xom.h" +#include "tiles.h" + crawl_environment env; player you; system_environment SysEnv; @@ -191,7 +193,11 @@ static void read_messages(); It all starts here. Some initialisations are run first, then straight to new_game and then input. */ +#ifdef WIN32TILES +int old_main( int argc, char *argv[] ) +#else int main( int argc, char *argv[] ) +#endif { // Load in the system environment variables get_system_environment(); @@ -257,7 +263,9 @@ int main( int argc, char *argv[] ) input(); // Should never reach this stage, right? -#ifdef UNIX +#if defined(USE_TILE) + libgui_shutdown(); +#elif defined(UNIX) unixcurses_shutdown(); #endif @@ -1360,7 +1368,11 @@ static void input() // Enable the cursor to read input. The cursor stays on while // the command is being processed, so subsidiary prompts // shouldn't need to turn it on explicitly. +#ifdef USE_TILE + cursor_control con(false); +#else cursor_control con(true); +#endif crawl_state.waiting_for_command = true; c_input_reset(true); @@ -1633,6 +1645,39 @@ void process_command( command_type cmd ) switch (cmd) { +#ifdef USE_TILE + case CMD_EDIT_PREFS: + edit_prefs(); + break; + + case CMD_USE_ITEM: + { + int idx; + InvAction act; + gui_get_mouse_inv(idx, act); + use_item(idx, act); + } + break; + + case CMD_VIEW_ITEM: + { + int idx; + InvAction act; + gui_get_mouse_inv(idx, act); + + if (idx < 0) + describe_item(mitm[-idx]); + else + describe_item(you.inv[idx]); + redraw_screen(); + } + break; + + case CMD_EDIT_PLAYER_TILE: + TilePlayerEdit(); + break; +#endif // USE_TILE + case CMD_OPEN_DOOR_UP_RIGHT: open_door(-1, -1); break; case CMD_OPEN_DOOR_UP: open_door( 0, -1); break; case CMD_OPEN_DOOR_UP_LEFT: open_door( 1, -1); break; @@ -2088,9 +2133,11 @@ void process_command( command_type cmd ) // because we want to have CTRL-Y available... // and unfortunately they tend to be stuck together. clrscr(); +#ifndef USE_TILE unixcurses_shutdown(); kill(0, SIGTSTP); unixcurses_startup(); +#endif redraw_screen(); break; #endif @@ -3118,6 +3165,13 @@ command_type keycode_to_command( keycode_type key ) { switch ( key ) { +#ifdef USE_TILE + case '-': return CMD_EDIT_PLAYER_TILE; + case CK_MOUSE_DONE: return CMD_NEXT_CMD; + case CK_MOUSE_B1ITEM: return CMD_USE_ITEM; + case CK_MOUSE_B2ITEM: return CMD_VIEW_ITEM; +#endif // USE_TILE + case KEY_MACRO_DISABLE_MORE: return CMD_DISABLE_MORE; case KEY_MACRO_ENABLE_MORE: return CMD_ENABLE_MORE; case KEY_REPEAT_KEYS: return CMD_REPEAT_KEYS; @@ -3225,7 +3279,11 @@ command_type keycode_to_command( keycode_type key ) case CONTROL('M'): return CMD_NO_CMD; case CONTROL('O'): return CMD_EXPLORE; case CONTROL('P'): return CMD_REPLAY_MESSAGES; +#ifdef USE_TILE + case CONTROL('Q'): return CMD_EDIT_PREFS; +#else case CONTROL('Q'): return CMD_NO_CMD; +#endif case CONTROL('R'): return CMD_REDRAW_SCREEN; case CONTROL('S'): return CMD_MARK_STASH; case CONTROL('V'): return CMD_TOGGLE_AUTOPRAYER; @@ -3244,7 +3302,18 @@ keycode_type get_next_keycode() keycode_type keyin; flush_input_buffer( FLUSH_BEFORE_COMMAND ); + +#ifdef USE_TILE + tile_draw_inv(-1, REGION_INV1); +#ifdef USE_X11 + update_screen(); +#endif + mouse_set_mode(MOUSE_MODE_COMMAND); + keyin = unmangle_direction_keys(getch_with_command_macros()); + mouse_set_mode(MOUSE_MODE_NORMAL); +#else // !USE_TILE keyin = unmangle_direction_keys(getch_with_command_macros()); +#endif if (!is_synthetic_key(keyin)) mesclr(); @@ -3563,6 +3632,12 @@ static bool initialise(void) you.wizard = true; #endif +#ifdef USE_TILE + TilePlayerInit(); + TileInitItems(); + TileNewLevel(true); +#endif + init_properties(); burden_change(); make_hungry(0,true); diff --git a/crawl-ref/source/beam.cc b/crawl-ref/source/beam.cc index 65ba80d43a..8ad73623d2 100644 --- a/crawl-ref/source/beam.cc +++ b/crawl-ref/source/beam.cc @@ -64,6 +64,8 @@ #include "view.h" #include "xom.h" +#include "tiles.h" + #define BEAM_STOP 1000 // all beams stopped by subtracting this // from remaining range #define MON_RESIST 0 // monster resisted @@ -179,9 +181,14 @@ void zap_animation( int colour, const monsters *mon, bool force ) if (in_los_bounds(drawx, drawy)) { +#ifdef USE_TILE + TileDrawBolt(drawx-1, drawy-1, tileidx_zap(colour)); +#else view_update(); - gotoxy( drawx, drawy ); + gotoxy( drawx, drawy , GOTO_DNGN ); put_colour_ch( colour, dchar_glyph( DCHAR_FIRED_ZAP ) ); +#endif + update_screen(); delay(50); } @@ -1301,6 +1308,17 @@ void fire_beam( bolt &pbolt, item_def *item ) beam_message_cache.clear(); +#ifdef USE_TILE + int tile_beam = -1; + + if (item) + { + tile_beam = tileidx_item_throw(*item, + pbolt.target_x-pbolt.source_x, + pbolt.target_y-pbolt.source_y); + } +#endif + #if DEBUG_DIAGNOSTICS if (pbolt.flavour != BEAM_LINE_OF_SIGHT) { @@ -1481,6 +1499,18 @@ void fire_beam( bolt &pbolt, item_def *item ) // draw new position int drawx = grid2viewX(tx); int drawy = grid2viewY(ty); + +#ifdef USE_TILE + if (tile_beam == -1) + tile_beam = tileidx_bolt(pbolt); + if (tile_beam != -1 && in_los_bounds(drawx, drawy) && + (tx != you.x_pos || ty != you.y_pos)) + { + TileDrawBolt(drawx-1, drawy-1, tile_beam); + delay(15); + } + else +#endif // bounds check if (in_los_bounds(drawx, drawy)) { @@ -4723,14 +4753,19 @@ static void explosion_cell(bolt &beam, int x, int y, bool drawOnly) if (see_grid(realx, realy) || (realx == you.x_pos && realy == you.y_pos)) { +#ifdef USE_TILE + if (in_los_bounds(drawx, drawy)) + TileDrawBolt(drawx-1, drawy-1, tileidx_bolt(beam)); +#else // bounds check if (in_los_bounds(drawx, drawy)) { - gotoxy(drawx, drawy); + gotoxy(drawx, drawy, GOTO_DNGN); put_colour_ch( beam.colour == BLACK ? random_colour() : beam.colour, dchar_glyph( DCHAR_EXPLOSION ) ); } +#endif } } } diff --git a/crawl-ref/source/chardump.cc b/crawl-ref/source/chardump.cc index 478ad3657e..841423b2bb 100644 --- a/crawl-ref/source/chardump.cc +++ b/crawl-ref/source/chardump.cc @@ -1240,6 +1240,10 @@ void display_notes() void resists_screen() { +#ifdef USE_TILE + mouse_control mc(MOUSE_MODE_MORE); +#endif + std::vector vfs = get_full_detail(false); clrscr(); gotoxy(1,1); diff --git a/crawl-ref/source/cio.cc b/crawl-ref/source/cio.cc index 12909bf5e2..fcaaa7adc1 100644 --- a/crawl-ref/source/cio.cc +++ b/crawl-ref/source/cio.cc @@ -121,7 +121,9 @@ void get_input_line( char *const buff, int len ) return; } -#if defined(UNIX) +#if defined(USE_TILE) + get_input_line_gui( buff, len ); +#elif defined(UNIX) get_input_line_from_curses( buff, len ); // implemented in libunix.cc #elif defined(WIN32CONSOLE) getstr( buff, len ); @@ -169,13 +171,15 @@ int c_getch() // cursoring over darkgray or black causes problems. void cursorxy(int x, int y) { -#ifdef UNIX +#if defined(USE_TILE) + tile_place_cursor(x-1, y-1, true); +#elif defined(UNIX) && !defined(USE_TILE) if (Options.use_fake_cursor) fakecursorxy(x, y); else - gotoxy(x, y); + gotoxy(x, y, GOTO_DNGN); #else - gotoxy(x, y); + gotoxy(x, y, GOTO_DNGN); #endif } @@ -317,7 +321,7 @@ void line_reader::cursorto(int ncx) { int x = (start_x + ncx - 1) % wrapcol + 1; int y = start_y + (start_x + ncx - 1) / wrapcol; - ::gotoxy(x, y); + ::gotoxy(x, y, GOTO_LAST); } int line_reader::read_line(bool clear_previous) diff --git a/crawl-ref/source/cio.h b/crawl-ref/source/cio.h index 026ac42179..93e6471df4 100644 --- a/crawl-ref/source/cio.h +++ b/crawl-ref/source/cio.h @@ -184,6 +184,16 @@ enum KEYS // Mouse codes. CK_MOUSE_MOVE = 10001, +#ifdef USE_TILE + CK_MOUSE_DONE, + CK_MOUSE_B1, + CK_MOUSE_B2, + CK_MOUSE_B3, + CK_MOUSE_B4, + CK_MOUSE_B5, + CK_MOUSE_B1ITEM, + CK_MOUSE_B2ITEM, +#endif CK_MOUSE_CLICK }; diff --git a/crawl-ref/source/command.cc b/crawl-ref/source/command.cc index 55c16e5c78..3f1d62435a 100644 --- a/crawl-ref/source/command.cc +++ b/crawl-ref/source/command.cc @@ -97,6 +97,10 @@ static const char *features[] = { #ifdef UNICODE_GLYPHS "Unicode glyphs", #endif + +#ifdef USE_TILE + "Tile support", +#endif }; void version(void) diff --git a/crawl-ref/source/debug.cc b/crawl-ref/source/debug.cc index 8d76a489df..07fcc1e5d7 100644 --- a/crawl-ref/source/debug.cc +++ b/crawl-ref/source/debug.cc @@ -86,6 +86,7 @@ #include "state.h" #include "stuff.h" #include "terrain.h" +#include "tiles.h" #include "traps.h" #include "travel.h" #include "version.h" @@ -641,7 +642,11 @@ static void wizard_go_to_level(const level_pos &pos) you.where_are_you = static_cast(pos.id.branch); you.your_level = abs_depth; - load(stair_taken, LOAD_ENTER_LEVEL, old_level_type, old_level, old_where); + const bool newlevel = load(stair_taken, LOAD_ENTER_LEVEL, old_level_type, + old_level, old_where); +#ifdef USE_TILE + TileNewLevel(newlevel); +#endif save_game_state(); new_level(); viewwindow(1, true); diff --git a/crawl-ref/source/defines.h b/crawl-ref/source/defines.h index fccbcf37ba..c7b994134d 100644 --- a/crawl-ref/source/defines.h +++ b/crawl-ref/source/defines.h @@ -120,9 +120,15 @@ const int LABYRINTH_BORDER = 4; #define ENV_SHOW_OFFSET (LOS_RADIUS + 1) #define ENV_SHOW_DIAMETER (ENV_SHOW_OFFSET * 2 + 1) +#ifdef USE_TILE +#define VIEW_BASE_WIDTH (tile_dngn_x) +#define VIEW_MIN_WIDTH (tile_dngn_x) +#define VIEW_MIN_HEIGHT (tile_dngn_y) +#else #define VIEW_BASE_WIDTH 33 #define VIEW_MIN_WIDTH 17 #define VIEW_MIN_HEIGHT 17 +#endif // max traps per level #define MAX_TRAPS 100 @@ -304,4 +310,26 @@ const int LABYRINTH_BORDER = 4; #define KEY_MACRO_ENABLE_MORE -2 #define KEY_REPEAT_KEYS -3 +// gotoxy regions +enum GotoRegion +{ + GOTO_CRT, // cprintf > crt + GOTO_MSG, // cprintf > message + GOTO_STAT, // cprintf > character status + GOTO_DNGN, // cprintf > dungeon screen + GOTO_LAST // cprintf > last active region or CRT, if none +}; + +// Mouse modes (for tiles) +enum MouseMode +{ + MOUSE_MODE_NORMAL, + MOUSE_MODE_COMMAND, + MOUSE_MODE_TARGET, + MOUSE_MODE_TARGET_DIR, + MOUSE_MODE_MORE, + MOUSE_MODE_MACRO +}; + + #endif diff --git a/crawl-ref/source/describe.cc b/crawl-ref/source/describe.cc index d67c27fde0..28f38c0574 100644 --- a/crawl-ref/source/describe.cc +++ b/crawl-ref/source/describe.cc @@ -1687,7 +1687,11 @@ void describe_feature_wide(int x, int y) clrscr(); print_description(desc); - + +#ifdef USE_TILE + mouse_control mc(MOUSE_MODE_MORE); +#endif + if (Options.tutorial_left) tutorial_describe_feature(grd[x][y]); @@ -1848,6 +1852,10 @@ void describe_spell(spell_type spelled) clrscr(); print_description(description); +#ifdef USE_TILE + mouse_control mc(MOUSE_MODE_MORE); +#endif + if (getch() == 0) getch(); } // end describe_spell() @@ -2137,6 +2145,10 @@ void describe_monsters(monsters& mons) clrscr(); print_description(description.str()); +#ifdef USE_TILE + mouse_control mc(MOUSE_MODE_MORE); +#endif + if (Options.tutorial_left) tutorial_describe_monster(static_cast(&mons)); @@ -2553,14 +2565,18 @@ void describe_god( god_type which_god, bool give_title ) if ( which_god == you.religion ) { if (you.religion == GOD_ZIN) - gotoxy(1, get_number_of_lines() - 1); + gotoxy(1, get_number_of_lines() - 1, GOTO_MSG); else - gotoxy(1, get_number_of_lines() - 2); + gotoxy(1, get_number_of_lines() - 2, GOTO_MSG); textcolor(LIGHTGRAY); cprintf(get_linebreak_string(religion_help(which_god), numcols).c_str()); } +#ifdef USE_TILE + mouse_control mc(MOUSE_MODE_MORE); +#endif + get_ch(); } diff --git a/crawl-ref/source/direct.cc b/crawl-ref/source/direct.cc index 0c5cdd769a..36925ca8df 100644 --- a/crawl-ref/source/direct.cc +++ b/crawl-ref/source/direct.cc @@ -50,6 +50,7 @@ #include "stuff.h" #include "spells4.h" #include "stash.h" +#include "tiles.h" #include "terrain.h" #include "traps.h" #include "travel.h" @@ -114,6 +115,10 @@ void direction_choose_compass( dist& moves, targeting_behaviour *beh) moves.isCancel = false; moves.dx = moves.dy = 0; +#ifdef USE_TILE + mouse_control mc(MOUSE_MODE_TARGET_DIR); +#endif + beh->compass = true; do { @@ -219,6 +224,9 @@ static const char *target_mode_help_text(int mode) static void draw_ray_glyph(const coord_def &pos, int colour, int glych, int mcol) { +#ifdef USE_TILE + tile_place_ray(pos); +#else int mid = mgrd(pos); if (mid != NON_MONSTER) { @@ -230,9 +238,10 @@ static void draw_ray_glyph(const coord_def &pos, int colour, } } const coord_def vp = grid2view(pos); - gotoxy(vp.x, vp.y); + gotoxy(vp.x, vp.y, GOTO_DNGN); textcolor( real_colour(colour) ); putch(glych); +#endif } // We handle targeting for repeating commands and re-doing the @@ -487,7 +496,35 @@ void direction(dist& moves, targeting_type restricts, key_command = CMD_TARGET_CYCLE_FORWARD; // find closest enemy } else + { +#ifdef USE_TILE + mouse_control mc(MOUSE_MODE_TARGET); +#endif key_command = beh->get_command(); + } + +#ifdef USE_TILE + // if a mouse command, update location to mouse position... + if ( key_command == CMD_TARGET_MOUSE_MOVE || + key_command == CMD_TARGET_MOUSE_SELECT ) + { + coord_def gc; + if (gui_get_mouse_grid_pos(gc)) + { + moves.tx = gc.x; + moves.ty = gc.y; + + if ( key_command == CMD_TARGET_MOUSE_SELECT ) + { + key_command = CMD_TARGET_SELECT; + } + } + else + { + key_command = CMD_NO_CMD; + } + } +#endif if (target_unshifted && moves.tx == you.x_pos && moves.ty == you.y_pos && restricts != DIR_TARGET) @@ -879,9 +916,16 @@ void direction(dist& moves, targeting_type restricts, terse_describe_square(moves.target()); } +#ifdef USE_TILE + // tiles always need a beam redraw if show_beam is true (and if valid...) + if (show_beam && find_ray(you.x_pos, you.y_pos, moves.tx, moves.ty, + true, ray, 0, true) || need_beam_redraw ) + { +#else if ( need_beam_redraw ) { viewwindow(true, false); +#endif if ( show_beam && in_vlos(grid2viewX(moves.tx), grid2viewY(moves.ty)) && moves.target() != you.pos() ) @@ -902,7 +946,15 @@ void direction(dist& moves, targeting_type restricts, raycopy.advance_through(moves.target()); } textcolor(LIGHTGREY); +#ifdef USE_TILE + draw_ray_glyph(moves.target(), MAGENTA, '*', + MAGENTA | COLFLAG_REVERSE); + } + viewwindow(true, false); +#else } +#endif + } skip_iter = false; // only skip one iteration at most } @@ -2138,6 +2190,10 @@ targeting_behaviour::~targeting_behaviour() int targeting_behaviour::get_key() { +#ifdef USE_TILE + mouse_control mc(MOUSE_MODE_TARGET_DIR); +#endif + if (!crawl_state.is_replaying_keys()) flush_input_buffer(FLUSH_BEFORE_COMMAND); @@ -2153,7 +2209,12 @@ command_type targeting_behaviour::get_command(int key) switch ( key ) { case ESCAPE: case 'x': return CMD_TARGET_CANCEL; - + +#ifdef USE_TILE + case CK_MOUSE_MOVE: return CMD_TARGET_MOUSE_MOVE; + case CK_MOUSE_CLICK: return CMD_TARGET_MOUSE_SELECT; +#endif + #ifdef WIZARD case 'F': return CMD_TARGET_WIZARD_MAKE_FRIENDLY; case 's': return CMD_TARGET_WIZARD_MAKE_SHOUT; diff --git a/crawl-ref/source/direct.h b/crawl-ref/source/direct.h index ad4f6f3b44..839b84ebe9 100644 --- a/crawl-ref/source/direct.h +++ b/crawl-ref/source/direct.h @@ -16,6 +16,7 @@ #include "externs.h" #include "enum.h" +#include "libgui.h" #include "ray.h" class crawl_view_buffer @@ -214,6 +215,11 @@ inline coord_def view2show(const coord_def &pos) return (pos - crawl_view.vlos1 + coord_def(1, 1)); } +inline coord_def show2view(const coord_def &pos) +{ + return (pos + crawl_view.vlos1 - coord_def(1, 1)); +} + inline coord_def grid2show(const coord_def &pos) { return (view2show(grid2view(pos))); diff --git a/crawl-ref/source/enum.h b/crawl-ref/source/enum.h index 83d63b4c3d..69332130f6 100644 --- a/crawl-ref/source/enum.h +++ b/crawl-ref/source/enum.h @@ -581,6 +581,15 @@ enum command_type CMD_TARGET_WIZARD_GIVE_ITEM, CMD_TARGET_HELP, +#ifdef USE_TILE + CMD_TARGET_MOUSE_MOVE, + CMD_TARGET_MOUSE_SELECT, + CMD_EDIT_PREFS, + CMD_EDIT_PLAYER_TILE, + CMD_USE_ITEM, + CMD_VIEW_ITEM, +#endif + // Disable/enable -more- prompts. CMD_DISABLE_MORE, CMD_ENABLE_MORE, diff --git a/crawl-ref/source/externs.h b/crawl-ref/source/externs.h index d6c0ed410e..bdaa02b36f 100644 --- a/crawl-ref/source/externs.h +++ b/crawl-ref/source/externs.h @@ -34,6 +34,15 @@ #include "mpr.h" #include "store.h" +#ifdef USE_TILE +struct TileFlavor +{ + char floor; + char wall; + char special; +}; +#endif + #define INFO_SIZE 200 // size of message buffers #define ITEMNAME_SIZE 200 // size of item names/shop names/etc #define HIGHSCORE_SIZE 800 // <= 10 Lines for long format scores @@ -1332,6 +1341,16 @@ public: FixedArray show_col; // view window colour +#ifdef USE_TILE + // indexed by grid coords + FixedArray tile_bk_fg; // tile fg + FixedArray tile_bk_bg; // tile bg + FixedArray tile_flavor; + // indexed by (show-1) coords + FixedArray tile_fg; + FixedArray tile_bg; +#endif + FixedVector< cloud_struct, MAX_CLOUDS > cloud; // cloud list unsigned char cloud_no; @@ -1736,6 +1755,13 @@ public: std::vector fsim_kit; #endif // WIZARD +#ifdef USE_TILE + char show_items[20]; +#endif +#ifdef WIN32TILES + bool use_dos_char; +#endif + typedef std::map opt_map; opt_map named_options; // All options not caught above are // recorded here. diff --git a/crawl-ref/source/files.cc b/crawl-ref/source/files.cc index 6af6196a0c..78d8edb5ef 100644 --- a/crawl-ref/source/files.cc +++ b/crawl-ref/source/files.cc @@ -87,6 +87,7 @@ #include "state.h" #include "stuff.h" #include "tags.h" +#include "tiles.h" #include "terrain.h" #include "travel.h" #include "tutorial.h" @@ -1090,7 +1091,9 @@ bool load( dungeon_feature_type stair_taken, load_mode_type load_mode, if (timeval > 0) { you.time_taken = timeval; +#ifndef USE_TILE viewwindow(true, false); +#endif handle_monsters(); } } @@ -1354,6 +1357,10 @@ void load_ghost(void) menv[imn].set_ghost(ghosts[0]); menv[imn].ghost_init(); +#ifdef USE_TILE + TileGhostInit(ghosts[0]); +#endif + ghosts.erase(ghosts.begin()); } } diff --git a/crawl-ref/source/food.cc b/crawl-ref/source/food.cc index f0074f4ec7..6f7133cd2e 100644 --- a/crawl-ref/source/food.cc +++ b/crawl-ref/source/food.cc @@ -452,7 +452,7 @@ static bool userdef_eat_food() #endif } -bool prompt_eat_from_inventory(void) +bool prompt_eat_from_inventory(int slot) { if (inv_count() < 1) { @@ -460,7 +460,7 @@ bool prompt_eat_from_inventory(void) return (false); } - int which_inventory_slot = + int which_inventory_slot = (slot != -1)? slot: prompt_invent_item( "Eat which item?", MT_INVLIST, @@ -505,7 +505,7 @@ bool prompt_eat_from_inventory(void) } // [ds] Returns true if something was eaten -bool eat_food(bool run_hook) +bool eat_food(bool run_hook, int slot) { if (you.is_undead == US_UNDEAD) { @@ -528,7 +528,7 @@ bool eat_food(bool run_hook) return (false); } - if (igrd[you.x_pos][you.y_pos] != NON_ITEM) + if (igrd[you.x_pos][you.y_pos] != NON_ITEM && slot == -1) { const int res = eat_from_floor(); if ( res == 1 ) @@ -537,7 +537,7 @@ bool eat_food(bool run_hook) return false; } - return (prompt_eat_from_inventory()); + return (prompt_eat_from_inventory(slot)); } // end eat_food() /* diff --git a/crawl-ref/source/food.h b/crawl-ref/source/food.h index 2aba226354..63277b3002 100644 --- a/crawl-ref/source/food.h +++ b/crawl-ref/source/food.h @@ -53,7 +53,7 @@ bool butchery(void); /* *********************************************************************** * called from: acr * *********************************************************************** */ -bool eat_food(bool run_hook = true); +bool eat_food(bool run_hook = true, int slot = -1); // last updated 19jun2000 {dlb} @@ -92,7 +92,7 @@ int eat_from_floor(); void eat_from_inventory(int which_inventory_slot); -bool prompt_eat_from_inventory(void); +bool prompt_eat_from_inventory(int slot = -1); void chunk_nutrition_message(int nutrition); diff --git a/crawl-ref/source/guic-win.cc b/crawl-ref/source/guic-win.cc new file mode 100644 index 0000000000..7624f44334 --- /dev/null +++ b/crawl-ref/source/guic-win.cc @@ -0,0 +1,999 @@ +// Windows wb_[ t@C: +#include +#include +#include + +// C ^C wb_[ t@C +#include +#include +#include +#include +#include + +// WinClass & RegionClass definitions +#include "guic.h" + +static HINSTANCE hInst; +static int nCmdShow; + +// colors +static COLORREF term_pix[MAX_TERM_COL]; +BYTE pix_transparent; +BYTE pix_black; +BYTE pix_white; +BYTE pix_magenta; +BYTE pix_rimcolor; + +RGBQUAD RegionClass::std_palette[256]; + +bool GuicInit(HINSTANCE h, int nCmd) +{ + int i; + hInst = h; + nCmdShow = nCmd; + + for (i=0; i< MAX_TERM_COL; i++) + { + int *c = (int *)&term_colors[i]; + term_pix[i] =PALETTERGB( c[0], c[1], c[2] ); + } + return true; +} + +void GuicDeinit() +{ + +} + +void WinClass::SysInit() +{ + hWnd = NULL; +} + +void WinClass::SysDeinit() +{} + +void RegionClass::SysInit() +{ + font = NULL; +} + +void RegionClass::SysDeinit() +{ + if (font != NULL && !font_copied) DeleteObject(font); +} + +void RegionClass::sys_flush() +{} + +void TextRegionClass::SysInit(int x, int y, int cx, int cy) +{ + dos_char = false; +} + +void TextRegionClass::SysDeinit() +{} + +void TileRegionClass::SysInit(int mx0, int my0, int dx0, int dy0) +{} + +void TileRegionClass::SysDeinit() +{} + +void MapRegionClass::SysInit(int x, int y, int o_x, int o_y) +{} + +void MapRegionClass::SysDeinit() +{} + +void RegionClass::init_font(const char *name, int height) +{ + int wid, hgt; + LOGFONT lf; + HFONT ftmp; + + strcpy(lf.lfFaceName, name); + lf.lfHeight = height; + lf.lfWidth = 0; + lf.lfEscapement = 0; + lf.lfOrientation = lf.lfEscapement; + lf.lfWeight = FW_NORMAL; + lf.lfItalic = FALSE; + lf.lfUnderline = FALSE; + lf.lfStrikeOut = FALSE; + lf.lfOutPrecision = OUT_DEFAULT_PRECIS; + lf.lfClipPrecision = CLIP_DEFAULT_PRECIS; + lf.lfQuality = DEFAULT_QUALITY; +#ifdef JP + lf.lfCharSet = (dos_char) ? OEM_CHARSET:SHIFTJIS_CHARSET; + lf.lfPitchAndFamily= FF_DONTCARE|FIXED_PITCH; +#else + lf.lfCharSet = (dos_char) ? OEM_CHARSET:ANSI_CHARSET; + lf.lfPitchAndFamily= FF_MODERN|FIXED_PITCH; +#endif + ftmp = CreateFontIndirect( &lf ); + + if (!ftmp) + { + if (font) return; + exit(1); + } + font = ftmp; + + wid = lf.lfWidth; + hgt = lf.lfHeight; + /* This part is taken from angband */ + /* Hack -- Unknown size */ + if (!wid || !hgt) + { + HDC hdcDesktop; + HFONT hfOld; + TEXTMETRIC tm; + + /* all this trouble to get the cell size */ + hdcDesktop = GetDC(HWND_DESKTOP); + hfOld = (HFONT)SelectObject(hdcDesktop, font); + GetTextMetrics(hdcDesktop, &tm); + SelectObject(hdcDesktop, hfOld); + ReleaseDC(HWND_DESKTOP, hdcDesktop); + + /* Font size info */ + wid = tm.tmAveCharWidth; + hgt = tm.tmHeight; + } + + fx = dx = wid; + fy = dy = hgt; +} + +void RegionClass::change_font(const char *name, int height) +{ + if (font != NULL) DeleteObject(font); + init_font(name, height); +} + +void RegionClass::copy_font(RegionClass *r) +{ + fx = r->fx; + fy = r->fy; + dx = r->dx; + dy = r->dy; + font = r->font; +} + +void RegionClass::set_std_palette(RGBQUAD *pPal) +{ + int i; + for(i=0;i<256;i++) + { + std_palette[i].rgbRed = pPal[i].rgbRed ; + std_palette[i].rgbGreen = pPal[i].rgbGreen; + std_palette[i].rgbBlue = pPal[i].rgbBlue ; + + if ( (pPal[i].rgbRed == 0) + &&(pPal[i].rgbGreen == 0) + &&(pPal[i].rgbBlue == 0) ) + pix_black = i; + + //(255, 255, 255)̔ԍi[ + if ( (pPal[i].rgbRed == 255) + &&(pPal[i].rgbGreen == 255) + &&(pPal[i].rgbBlue == 255) ) + pix_white = i; + + //}[^(255, 0, 255)̔ԍi[ + if ( (pPal[i].rgbRed == 255) + &&(pPal[i].rgbGreen == 0 ) + &&(pPal[i].rgbBlue == 255) ) + pix_magenta = i; + + //̐F(1, 1, 1)̔ԍi[ + if ( (pPal[i].rgbRed == 1) + &&(pPal[i].rgbGreen == 1) + &&(pPal[i].rgbBlue == 1) ) + pix_rimcolor = i; + } + + std_palette[pix_transparent].rgbRed = 0; + std_palette[pix_transparent].rgbGreen = 0; + std_palette[pix_transparent].rgbBlue = 0; +} + +void RegionClass::init_backbuf(RGBQUAD *pPal, int ncolor) +{ + int i; + + // first time + if (backbuf == NULL) + { + // alloc for misc info + backbuf = (dib_pack *)GlobalAlloc(GPTR, sizeof(dib_pack)); + + // alloc for header+palette data + backbuf->pDib = (LPBITMAPINFO)GlobalAlloc(GPTR, + (sizeof(BITMAPINFO) + 256 * sizeof(RGBQUAD)) ); + + // set header data + backbuf->pDib->bmiHeader.biSize = sizeof(BITMAPINFOHEADER); + backbuf->pDib->bmiHeader.biPlanes = 1; + backbuf->pDib->bmiHeader.biBitCount = 8; + backbuf->pDib->bmiHeader.biCompression=BI_RGB; + backbuf->pDib->bmiHeader.biSizeImage=0; + backbuf->pDib->bmiHeader.biXPelsPerMeter=0; + backbuf->pDib->bmiHeader.biYPelsPerMeter=0; + backbuf->pDib->bmiHeader.biClrUsed=0; + backbuf->pDib->bmiHeader.biClrImportant=0; + + // set palette data + for (i = 0; i < ncolor; i++) + { + // copy palette from given palette pPal + backbuf->pDib->bmiColors[i].rgbRed = pPal[i].rgbRed ; + backbuf->pDib->bmiColors[i].rgbGreen = pPal[i].rgbGreen; + backbuf->pDib->bmiColors[i].rgbBlue = pPal[i].rgbBlue ; + } + } + // set dimension + backbuf->pDib->bmiHeader.biWidth = mx*dx; + backbuf->pDib->bmiHeader.biHeight = my*dy; + backbuf->Width = mx * dx; + backbuf->Height= my * dy; + + if (win != NULL) + { + // this routine should be called after the window is initialized + if (win->hWnd != NULL) + { + HDC hdc1 = GetDC(0); + HDC hdc2 = GetDC(win->hWnd); + // alloc a region of the window + backbuf->hDib = CreateDIBSection(hdc1, backbuf->pDib, + DIB_RGB_COLORS, (VOID **)&(backbuf->pDibBits), NULL, 0); + backbuf->hDC = CreateCompatibleDC(hdc2); + SelectObject(backbuf->hDC, backbuf->hDib); + ReleaseDC(win->hWnd, hdc2); + ReleaseDC(0, hdc1); + } + } + backbuf->pDibZero = (backbuf->pDibBits) + + (backbuf->Height -1) * backbuf->Width; +} + +void RegionClass::resize_backbuf() +{ + int i; + + // discard it for resize + if (backbuf->hDC != NULL) DeleteDC(backbuf->hDC); + if (backbuf->hDib != NULL) DeleteObject(backbuf->hDib); + + // set dimension + backbuf->pDib->bmiHeader.biWidth = mx*dx; + backbuf->pDib->bmiHeader.biHeight = my*dy; + backbuf->Width = mx * dx; + backbuf->Height= my * dy; + + HDC hdc1 = GetDC(0); + HDC hdc2 = GetDC(win->hWnd); + // alloc a region of the window + backbuf->hDib = CreateDIBSection(hdc1, backbuf->pDib, + DIB_RGB_COLORS, (VOID **)&(backbuf->pDibBits), NULL, 0); + backbuf->hDC = CreateCompatibleDC(hdc2); + SelectObject(backbuf->hDC, backbuf->hDib); + ReleaseDC(win->hWnd, hdc2); + ReleaseDC(0, hdc1); + + backbuf->pDibZero = (backbuf->pDibBits) + + (backbuf->Height -1) * backbuf->Width; + + for (i = 0; i< mx*dx*my*dy; i++) + *(backbuf->pDibBits + i) = pix_black; +} + +void MapRegionClass::resize_backbuf() +{ + RegionClass::resize_backbuf(); +} + +void TileRegionClass::resize_backbuf() +{ + RegionClass::resize_backbuf(); +} + +void TextRegionClass::init_backbuf() +{ + /* not use */ +} + +void TileRegionClass::init_backbuf(RGBQUAD *pPal) +{ + int i; + if (!pPal) + RegionClass::init_backbuf(std_palette, 256); + else + RegionClass::init_backbuf(pPal, 256); + + for (i = 0; i< mx*dx*my*dy; i++) + *(backbuf->pDibBits + i) = pix_black; + +} + +void MapRegionClass::init_backbuf() +{ +//~j}bvppbg̍쐬 + BYTE black = 0; + RGBQUAD scol[MAX_MAP_COL]; + int i; + + for (i=0; i< MAX_MAP_COL;i++) + { + scol[i].rgbBlue = map_colors[i][2]; + scol[i].rgbGreen = map_colors[i][1]; + scol[i].rgbRed = map_colors[i][0]; + scol[i].rgbReserved = 0; + } + + // just resize + if (backbuf != NULL) + RegionClass::init_backbuf(NULL, 0); + else + RegionClass::init_backbuf(scol, MAX_MAP_COL); + + for (i = 0; i < MAX_MAP_COL; i++) + { + //(0, 0, 0)̔ԍi[ + if ( (backbuf->pDib->bmiColors[i].rgbRed == 0) + &&(backbuf->pDib->bmiColors[i].rgbGreen == 0) + &&(backbuf->pDib->bmiColors[i].rgbBlue == 0) ) + black = i; + } + + for (i = 0; i< mx*dx*my*dy; i++) + *(backbuf->pDibBits + i) = black; //Ŗ߂B +} + +// defined to object, not to class +void TextRegionClass::draw_string(int x, int y, unsigned char *buf, + int len, int col) +{ + HDC hdc = GetDC(win->hWnd); + RECT rc; + rc.left = ox + x * dx; + rc.right = rc.left + len * dx; + rc.top = oy + y * dy; + rc.bottom = rc.top + dy; + SelectObject(hdc, font); + SetBkColor(hdc, term_pix[col>>4]); + SetTextColor(hdc, term_pix[col&0x0f]); + ExtTextOut(hdc, rc.left, rc.top, ETO_CLIPPED, &rc, + (char *)buf, len, NULL); + ReleaseDC(win->hWnd, hdc); +} + +void TextRegionClass::draw_cursor(int x, int y) +{ + RECT rc; + HDC hdc; + + int cx = x - cx_ofs; + int cy = y - cy_ofs; + + if(!flag)return; + + hdc =GetDC(win->hWnd); + SelectObject(hdc, font); + + rc.left = ox + cx * dx ; + rc.right = rc.left + (2 * dx); + rc.top = oy + cy * dy; + rc.bottom = rc.top + dy; + + SetBkMode(hdc, TRANSPARENT); + SetTextColor(hdc, term_pix[0x0f]); + ExtTextOut(hdc, rc.left, rc.top, ETO_CLIPPED, &rc, + "_ ", 2, NULL); + ReleaseDC(win->hWnd, hdc); +} + +void TextRegionClass::erase_cursor(){ + + int x0 = cursor_x; + int y0 = cursor_y; + int adrs = y0 * mx + x0; + int col = abuf[adrs]; + + if(!flag)return; + + RECT rc; + HDC hdc =GetDC(win->hWnd); + SelectObject(hdc, font); + + //restore previous cursor cell + rc.left = ox + x0 * dx; + rc.right= rc.left + (2 * dx); + rc.top = oy + y0 * dy; + rc.bottom = rc.top + dy; + unsigned char rchar[3]; + + SetBkColor(hdc, term_pix[col>>4]); + SetTextColor(hdc, term_pix[col&0x0f]); + rchar[0] = cbuf[adrs]; +#ifdef JP + if ( (rchar[0]&0x80) && !dos_char /*_ismbblead( rchar[0])*/ ) + { + rchar[1] = cbuf[adrs+1]; + rchar[2] = '\0'; + ExtTextOut(hdc, rc.left, rc.top, ETO_CLIPPED, &rc, + (char *)&rchar, 2, NULL); + } + else +#endif + { + rchar[1] = '\0'; + ExtTextOut(hdc, rc.left, rc.top, ETO_CLIPPED, &rc, + (char *)&rchar, 1, NULL); + } + ReleaseDC(win->hWnd, hdc); +} + + +void WinClass::clear() +{ + fillrect(0, 0, wx-1, wy-1, PIX_BLACK); +} + +void RegionClass::clear() +{ + fillrect(0, 0, wx-1, wy-1, PIX_BLACK); +} + +void TileRegionClass::clear() +{ + RegionClass::clear(); +} + +void MapRegionClass::clear() +{ + int i; + + for (i=0; i::iterator r; + + for (r = regions.begin();r != regions.end();r++) + { + if ( (*r)->backbuf != NULL) + { + img_type b = (*r)->backbuf; + HDC hdc1 = GetDC(0); + HDC hdc2 = GetDC(hWnd); + b->hDib = CreateDIBSection(hdc1, b->pDib, DIB_RGB_COLORS, + (VOID **)&(b->pDibBits), NULL, 0); + b->hDC = CreateCompatibleDC(hdc2); + SelectObject(b->hDC, b->hDib); + ReleaseDC(hWnd, hdc2); + ReleaseDC(0, hdc1); + } + } +#endif + return TRUE; +} + +void WinClass::move() +{ + SetWindowPos(hWnd, 0, ox, oy, wx, wy, SWP_NOSIZE); + UpdateWindow( hWnd ); +} + +void WinClass::resize() +{ + RECT rc; + rc.left = 0; + rc.right = wx; + rc.top = 0; + rc.bottom = wy; + + AdjustWindowRectEx(&rc, + (WS_OVERLAPPED | WS_SYSMENU | + WS_MINIMIZEBOX | WS_CAPTION | + WS_VISIBLE), + false, 0); + + SetWindowPos(hWnd, 0, ox, oy, + rc.right - rc.left, + rc.bottom - rc.top, + SWP_NOMOVE); + UpdateWindow( hWnd ); +} + + +void TileRegionClass::redraw(int x1, int y1, int x2, int y2) +{ + if (!flag) return; + if (!is_active()) return; + + HDC hdc = GetDC(win->hWnd); + BitBlt(hdc, ox, oy, mx*dx, my*dy, + backbuf->hDC, 0, 0, SRCCOPY); + ReleaseDC(win->hWnd, hdc); +} + +void MapRegionClass::redraw(int x1, int y1, int x2, int y2) +{ + if (!flag) return; + if (!is_active()) return; + HDC hdc =GetDC(win->hWnd); + BitBlt(hdc, ox, oy, dx*mx, dy*my, + backbuf->hDC, 0, 0, SRCCOPY); + ReleaseDC(win->hWnd, hdc); +} + +void MapRegionClass::draw_data(unsigned char *buf){ + int i, j, x, y, col; + int dx2, dy2; + static int px = 0; + static int py = 0; + + if(!flag)return; + + LPBYTE ppix ,dpix; + // OA x, y [vł̃AhX + int inc_x, inc_y, inc_x0, inc_y0; + int bufx = mx * dx; + int bufy = my * dy; + + bufx = (bufx+3)/4; + bufx *=4; +#define BUF_IDX(x,y, x1, y1) ((x)*dx-(y)*dy*bufx + (x1) - (y1)*bufx) +#define BUF_IDX_ISO(x,y, x1, y1) ((x-y+my2-1)*dx-(x+y)*dy*bufx + (x1)-(y1)*bufx) + // upper left corner + LPBYTE pDibBit0 = backbuf->pDibBits + bufx*(bufy-1); + + dx2 = dx; + dy2 = dy; + ppix = pDibBit0; + + inc_x = dx; + inc_x0 = 1; + + // dy mmapDibX + inc_y = - mx2 * inc_x + BUF_IDX(0, 1, 0, 0); + // 1 dx + inc_y0 = - dx2 * inc_x0 + BUF_IDX(0, 0, 0, 1); + + // Draw gauge + // erase old + for (j = 0; j < dy*2; j++) + { + *(pDibBit0 + BUF_IDX(px, 0, dx/2, j)) = MAP_BLACK; + } + for (j = 0; j < dx*2; j++) + { + *(pDibBit0 + BUF_IDX(0, py, j, dy/2)) = MAP_BLACK; + } + + dpix = ppix; + for (j = 0; j < my2; j++) + { + for (i = 0; i < mx2; i++) + { + col=buf[(i+x_margin) + (j+y_margin)*(mx2 + x_margin*2)]; + if (col == MAP_WHITE) + { + px = i; + py = j; + } + if ( (col != get_col(i,j)) || force_redraw) + { + dpix = ppix; + for (y=0; yWidth)/4)*4; + LPBYTE ref = dib->pDibBits + x + (dib->Height -1 -y) * w; + return ref; +} + +bool ImgIsTransparentAt(img_type img, int x, int y) +{ + if (pix_transparent == *( dib_ref_pixel(img, x, y) )) return true; + return false; +} +void ImgSetTransparentPix(img_type img) +{ + pix_transparent = (BYTE)*(img->pDibZero); +} + +img_type ImgCreateSimple(int wx, int wy) +{ + if (wx ==0 || wy == 0) return NULL; + dib_pack *ptr = (dib_pack *)GlobalAlloc(GPTR, sizeof(dib_pack)); + + ptr->pDibBits = (LPBYTE)GlobalAlloc(GPTR, wx*wy ); + ptr->pDibZero = ptr->pDibBits + (wy -1)* wx; + ptr->Width = wx; + ptr->Height = wy; + + ptr->pDib = NULL; + ptr->hDib = NULL; + ptr->hDC = NULL; + + return ptr; +} + +void ImgDestroy(img_type img) +{ + if (!img) return; + + //if (img->pDibBits) GlobalFree(img->pDibBits); + if (img->pDib) GlobalFree(img->pDib); + if (img->hDC) DeleteDC (img->hDC); + if (img->hDib) DeleteObject(img->hDib); + + GlobalFree(img); +} + +img_type ImgLoadFile(const char *name) +{ + HANDLE fh; + DWORD dummy; + BITMAPFILEHEADER bmHead; + int BitsSize; + HDC hdc1; + dib_pack *img; + + hdc1 = GetDC(0); + + fh=CreateFile(name, GENERIC_READ,0,NULL,OPEN_EXISTING, + FILE_ATTRIBUTE_NORMAL,NULL); + if (fh == INVALID_HANDLE_VALUE) return NULL; + + SetFilePointer(fh,0,NULL,FILE_BEGIN); + + if (!ReadFile(fh,&bmHead, sizeof(BITMAPFILEHEADER), &dummy, NULL)) + return NULL; + + img = (dib_pack *) GlobalAlloc(GPTR, sizeof(dib_pack)); + if (!img) return NULL; + + img->pDib = (LPBITMAPINFO)GlobalAlloc(GPTR, + (sizeof(BITMAPINFO) + 256 * sizeof(RGBQUAD)) ); + if (img->pDib == NULL) + { + GlobalFree(img); + return NULL; + } + + SetFilePointer(fh, sizeof(BITMAPFILEHEADER), NULL, FILE_BEGIN); + if (!ReadFile(fh,img->pDib, sizeof(BITMAPINFOHEADER)+ 256 * sizeof(RGBQUAD), + &dummy, NULL)) + { + GlobalFree(img->pDib); + GlobalFree(img); + return NULL; + } + + //DIB쐬 + img->hDib = CreateDIBSection(hdc1, img->pDib, DIB_RGB_COLORS, + (VOID **)&(img->pDibBits), NULL,0); + if (img->hDib == NULL) + { + GlobalFree(img->pDib); + GlobalFree(img); + return NULL; + } + + + //摜̃rbg̃TCY + BitsSize = bmHead.bfSize-bmHead.bfOffBits; + //rbgz|Cg + SetFilePointer(fh, bmHead.bfOffBits, NULL, FILE_BEGIN); + + //ǂݍ + if (!ReadFile(fh, img->pDibBits, BitsSize, &dummy, NULL)) + { + GlobalFree(img->hDib); + GlobalFree(img->pDib); + GlobalFree(img); + return NULL; + } + + CloseHandle(fh); //t@C‚ + + //QƗp̍\̂Ɋi[ + img->Width = img->pDib->bmiHeader.biWidth ; + img->Height = img->pDib->bmiHeader.biHeight; + img->pDibZero = img->pDibBits + (img->Height - 1) * img->Width; + + ReleaseDC(0, hdc1); + return img; +} + +void ImgClear(img_type img) +{ + int i; + for (i = 0; i< (img->Width * img->Height); i++) + *(img->pDibBits + i) = pix_transparent; +} + +// Copy internal image to another internal image +void ImgCopy(img_type src, int sx, int sy, int wx, int wy, + img_type dest, int dx, int dy, int copy) +{ + int x, y; + BYTE pix; + + if(copy) + { + for(x=0;xhWnd); + + HBRUSH curbrush; + HDC curbrushhdc = NULL; + RECT currect; + curbrush = CreateSolidBrush(term_pix[color]); + currect.left = sx+left; + currect.right = sx+right; + currect.top = sy+top; + currect.bottom= sy+bottom; + SelectObject(curbrushhdc, curbrush); + FrameRect(hdc, &currect, curbrush); + DeleteObject(curbrush); + DeleteDC(curbrushhdc); + + ReleaseDC(win->hWnd, hdc); +} + +void TileRegionClass::framerect(int left, int top, int right, int bottom, + int color) +{ + HDC dhdc = backbuf->hDC; + HBRUSH curbrush; + HDC curbrushhdc = NULL; + RECT currect; + curbrush = CreateSolidBrush(term_pix[color]); + currect.left = left; + currect.right = right; + currect.top = top; + currect.bottom= bottom; + SelectObject(curbrushhdc, curbrush); + FrameRect(dhdc, &currect, curbrush); + DeleteObject(curbrush); + DeleteDC(curbrushhdc); +} + +void RegionClass::fillrect(int left, int top, int right, int bottom, int color) +{ + HDC hdc = GetDC(win->hWnd); + + HBRUSH curbrush; + HDC curbrushhdc = NULL; + RECT currect; + curbrush = CreateSolidBrush(term_pix[color]); + currect.left = sx+left; + currect.right = sx+right; + currect.top = sy+top; + currect.bottom= sy+bottom; + SelectObject(curbrushhdc, curbrush); + FillRect(hdc, &currect, curbrush); + DeleteObject(curbrush); + DeleteDC(curbrushhdc); + + ReleaseDC(win->hWnd, hdc); +} + +void TileRegionClass::fillrect(int left, int top, int right, int bottom, + int color) +{ + HDC dhdc = backbuf->hDC; + HBRUSH curbrush; + HDC curbrushhdc = NULL; + RECT currect; + curbrush = CreateSolidBrush(term_pix[color]); + currect.left = left; + currect.right = right; + currect.top = top; + currect.bottom= bottom; + SelectObject(curbrushhdc, curbrush); + FillRect(dhdc, &currect, curbrush); + DeleteObject(curbrush); + DeleteDC(curbrushhdc); +} + diff --git a/crawl-ref/source/guic-x11.cc b/crawl-ref/source/guic-x11.cc new file mode 100644 index 0000000000..cbf2f045ab --- /dev/null +++ b/crawl-ref/source/guic-x11.cc @@ -0,0 +1,1052 @@ +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include + +#if DEBUG +#define ASSERT(p) {if (!(p)) printf( __FILE__, __LINE__);} +#else +#define ASSERT(p) ((void) 0) +#endif + +#include "guic.h" + +static Display *display; +static int screen; +static GC term_gc[MAX_TERM_COL]; +static GC map_gc[MAX_MAP_COL]; +static unsigned long term_pix[MAX_TERM_COL]; +static unsigned long map_pix[MAX_MAP_COL]; +static unsigned long pix_transparent; +static unsigned long pix_hilite; +static unsigned long pix_black; +static unsigned long pix_rimcolor; +static int x11_byte_per_pixel_ximage(); +static unsigned long create_pixel(unsigned int red, unsigned int green, + unsigned int blue); +static XImage *read_png(const char *fname); + +/*******************************************************/ +void WinClass::SysInit() +{ + win = (Window)NULL; +} + +void WinClass::SysDeinit() +{} + +void RegionClass::SysInit() +{ + font = NULL; +} + +void RegionClass::SysDeinit() +{ + if (font != NULL && !font_copied) XFreeFont(display, font); +} + +void TextRegionClass::SysInit(int x, int y, int cx, int cy) +{} + +void TextRegionClass::SysDeinit() +{} + +void TileRegionClass::SysInit(int mx0, int my0, int dx0, int dy0) +{} + +void TileRegionClass::SysDeinit() +{} + +void MapRegionClass::SysInit(int x, int y, int o_x, int o_y) +{} + +void MapRegionClass::SysDeinit() +{} + +void RegionClass::init_font(const char *name){ + /*** Large part of this routine was copied from Hengband ***/ + int ascent, descent, width; + + font = XLoadQueryFont(display, name); + if (!font) + { + fprintf(stderr,"Error! Can't load font %s\n",name); + exit(1); + } + width = font->max_bounds.width; + ascent = font->ascent; + descent = font->descent; + + int i; + for (i=0;ifid); + + fx = dx = width; + fy = dy = ascent + descent; + asc = ascent; + font_copied = false; +} + +void RegionClass::copy_font(RegionClass *r) +{ + fx = r->fx; + fy = r->fy; + dx = r->dx; + dy = r->dy; + asc = r->asc; + font = r->font; + font_copied = true; +} + +void RegionClass::sys_flush() +{ + XFlush(display); +} + +void RegionClass::init_backbuf() +{ +} + +void TextRegionClass::init_backbuf() +{ +} + +void TileRegionClass::init_backbuf() +{ + int x, y; + + backbuf = ImgCreateSimple(mx*dx, my*dy); + for (x = 0; x < mx*dx; x++) + for (y = 0; y < my*dy; y++) + XPutPixel(backbuf, x, y, pix_black); +} + +void TileRegionClass::resize_backbuf() +{ + if (backbuf != NULL) ImgDestroy(backbuf); + init_backbuf(); +} + +void RegionClass::resize_backbuf() +{ + if (backbuf != NULL) ImgDestroy(backbuf); + init_backbuf(); +} + +void MapRegionClass::init_backbuf() +{ + int x, y; + backbuf = ImgCreateSimple(mx*dx, my*dy); + for (x = 0; x < mx*dx; x++) + for (y = 0; y < my*dy; y++) + XPutPixel(backbuf, x, y, pix_black); +} + +void MapRegionClass::resize_backbuf() +{ + if (backbuf != NULL) + ImgDestroy(backbuf); + init_backbuf(); +} + +void TextRegionClass::draw_string(int x, int y, unsigned char *buf, + int len, int col) +{ + XFillRectangle(display, win->win, term_gc[col>>4], + x*dx+ox, y*dy+oy, dx * len, dy); + XDrawString(display, win->win, term_gc[col&0x0f], x*dx+ox, y*dy+asc+oy, + (char *)&cbuf[y*mx+x], len); +} + +void TextRegionClass::draw_cursor(int x, int y) +{ + if(!flag)return; + + XDrawString(display, win->win, term_gc[0x0f], x*dx+ox, y*dy+asc+oy, + "_", 1); + sys_flush(); +} + +void TextRegionClass::erase_cursor() +{ + WinClass *w = win; + + int x0 = cursor_x; + int y0 = cursor_y; + int width = 1; + int adrs = y0 * mx + x0; + int col = abuf[adrs]; + int x1 = x0;; + if(!flag)return; + + XFillRectangle(display, w->win, term_gc[col>>4], + x1*dx + ox, y0*dy +oy, dx*width, dy); + + XDrawString(display, w->win, + term_gc[col&0x0f], x0*dx+ ox, y0*dy+asc+ oy, + (char *)&cbuf[adrs], width ); +} + + +void WinClass::clear() +{ + fillrect(0, 0, wx, wy, PIX_BLACK); + XFlush(display); +} + +void RegionClass::clear() +{ + fillrect(0, 0, wx, wy, PIX_BLACK); + XFlush(display); +} + +void TileRegionClass::clear() +{ + RegionClass::clear(); +} + +void MapRegionClass::clear() +{ + int i; + + for (i=0; i= mx*dx) + { + wwx -= x2-mx*dx+1; + } + + if (y2 >= my*dy) + { + wwy -= y2-my*dy+1; + } + + XPutImage(display, win->win, term_gc[0], + backbuf, x1, y1, x1+ox, y1+oy, wwx, wwy); +} + +void MapRegionClass::redraw(int x1, int y1, int x2, int y2) +{ + if (!flag) + return; + + XPutImage(display, win->win, term_gc[0], + backbuf, x1*dx, y1*dy, + x1*dx+ox, y1*dy+oy, + (x2-x1+1)*dx, (y2-y1+1)*dy); +} + +void MapRegionClass::draw_data(unsigned char *buf){ + int x, y, xx, yy; + static int px = 0; + static int py = 0; + + if (!flag) + return; + + for(yy=0;yy=0); + ASSERT(y>=0); + ASSERT(x<(img->width)); + ASSERT(y<(img->height)); + + return (pix_transparent == XGetPixel(img, x, y)) ? true:false; +} + +void ImgSetTransparentPix(img_type img) +{ + pix_transparent = XGetPixel(img, 0, 0); +} + +void ImgDestroy(img_type img) +{ + XDestroyImage(img); +} + +img_type ImgCreateSimple(int wx, int wy) +{ + if (wx ==0 || wy == 0) return NULL; + char *buf = (char *)malloc(x11_byte_per_pixel_ximage()* wx * wy); + + img_type res= XCreateImage(display, DefaultVisual(display, screen), + DefaultDepth(display, screen), + ZPixmap, 0, buf, wx, wy, 8, 0); + return(res); +} + +img_type ImgLoadFile(const char *name) +{ + return read_png(name); +} + +void ImgClear(img_type img) +{ + int x,y; + ASSERT(img != NULL); + for(y=0;yheight;y++) + for(x=0;xwidth;x++) + XPutPixel(img, x, y, pix_transparent); +} + +// Copy internal image to another internal image +void ImgCopy(img_type src, int sx, int sy, int wx, int wy, + img_type dest, int dx, int dy, int copy) +{ + int x, y; + int bpp = src->bytes_per_line / src->width; + int bpl_s = src->bytes_per_line; + int bpl_d = dest->bytes_per_line; + + ASSERT(sx>=0); + ASSERT(sy>=0); + ASSERT(sx+wx<=(src->width)); + ASSERT(sy+wy<=(src->height)); + ASSERT(dx>=0); + ASSERT(dy>=0); + ASSERT(dx+wx<=(dest->width)); + ASSERT(dy+wy<=(dest->height)); + + if(copy==1) + { + char *p_src = (char *)(src->data + bpl_s * sy + sx * bpp); + char *p_dest = (char *)(dest->data + bpl_d * dy + dx * bpp); + + for(y=0;ydata + bpl_s * sy + sx * bpp); + CARD8 *p_dest = (CARD8 *)(dest->data + bpl_d * dy + dx * bpp); + for(y=0;ydata + bpl_s * sy + sx * bpp); + CARD16 *p_dest = (CARD16 *)(dest->data + bpl_d * dy + dx * bpp); + for(y=0;ydata + bpl_s * sy + sx * bpp); + CARD32 *p_dest = (CARD32 *)(dest->data + bpl_d * dy + dx * bpp); + for(y=0;ybytes_per_line / src->width; + int bpl_s = src->bytes_per_line; + int bpl_d = dest->bytes_per_line; + + ASSERT(sx>=0); + ASSERT(sy>=0); + ASSERT(sx+wx<=(src->width)); + ASSERT(sy+wy<=(src->height)); + ASSERT(dx>=0); + ASSERT(dy>=0); + ASSERT(dx+wx<=(dest->width)); + ASSERT(dy+wy<=(dest->height)); + + if(copy==1) + { + char *p_src = (char *)(src->data + bpl_s * sy + sx * bpp); + char *p_dest = (char *)(dest->data + bpl_d * dy + dx * bpp); + + for(y=0;ydata + bpl_s * sy + sx * bpp); + CARD8 *p_dest = (CARD8 *)(dest->data + bpl_d * dy + dx * bpp); + for(y=0;ydata + bpl_s * sy + sx * bpp); + CARD16 *p_dest = (CARD16 *)(dest->data + bpl_d * dy + dx * bpp); + for(y=0;ydata + bpl_s * sy + sx * bpp); + CARD32 *p_dest = (CARD32 *)(dest->data + bpl_d * dy + dx * bpp); + for(y=0;ybytes_per_line / src->width; + int bpl_s = src->bytes_per_line; + int bpl_d = dest->bytes_per_line; + ASSERT(sx>=0); + ASSERT(sy>=0); + ASSERT(sx+wx<=(src->width)); + ASSERT(sy+wy<=(src->height)); + ASSERT(dx>=0); + ASSERT(dy>=0); + ASSERT(dx+wx<=(dest->width)); + ASSERT(dy+wy<=(dest->height)); + + + count = 0; + + if(bpp<=1) + { + CARD8 *p_src = (CARD8 *)(src->data + bpl_s * sy + sx * bpp); + CARD8 *p_dest = (CARD8 *)(dest->data + bpl_d * dy + dx * bpp); + for(y=0;ydata + bpl_s * sy + sx * bpp); + CARD16 *p_dest = (CARD16 *)(dest->data + bpl_d * dy + dx * bpp); + for(y=0;ydata + bpl_s * sy + sx * bpp); + CARD32 *p_dest = (CARD32 *)(dest->data + bpl_d * dy + dx * bpp); + for(y=0;ybytes_per_line / src->width; + int bpl_s = src->bytes_per_line; + int bpl_d = dest->bytes_per_line; + ASSERT(sx>=0); + ASSERT(sy>=0); + ASSERT(sx+wx<=(src->width)); + ASSERT(sy+wy<=(src->height)); + ASSERT(dx>=0); + ASSERT(dy>=0); + ASSERT(dx+wx<=(dest->width)); + ASSERT(dy+wy<=(dest->height)); + + + count = 0; + + if(bpp<=1) + { + CARD8 *p_src = (CARD8 *)(src->data + bpl_s * sy + sx * bpp); + CARD8 *p_dest = (CARD8 *)(dest->data + bpl_d * dy + dx * bpp); + for(y=0;ydata + bpl_s * sy + sx * bpp); + CARD16 *p_dest = (CARD16 *)(dest->data + bpl_d * dy + dx * bpp); + for(y=0;ydata + bpl_s * sy + sx * bpp); + CARD32 *p_dest = (CARD32 *)(dest->data + bpl_d * dy + dx * bpp); + for(y=0;ywin, term_gc[color&0xf], + ox+left, oy+top, right-left, bottom-top); +} + +void TileRegionClass::framerect(int left, int top, int right, int bottom, + int color) +{ + int x,y; + int pix = term_pix[color]; + + for (x=left; x<=right; x++){ + XPutPixel(backbuf, x, top, pix); + XPutPixel(backbuf, x, bottom, pix); + } + + for (y=top+1; y< bottom; y++){ + XPutPixel(backbuf, left, y, pix); + XPutPixel(backbuf, right, y, pix); + } +} + +void WinClass::fillrect(int left, int top, int right, int bottom, + int color) +{ + XFillRectangle(display, win, term_gc[color&0xf], + top, left, right-left+1, bottom-top+1); +} + +void RegionClass::fillrect(int left, int top, int right, int bottom, + int color) +{ + XFillRectangle(display, win->win, term_gc[color&0xf], + ox+left, oy+top, right-left, bottom-top); +} + +void TileRegionClass::fillrect(int left, int top, int right, int bottom, + int color) +{ + int x,y; + int pix = term_pix[color]; + + ASSERT(left>=0); + ASSERT(top>=0); + ASSERT(right> 2; + while (j >>= 1) i <<= 1; + return i; +} + +unsigned long create_pixel(unsigned int red, unsigned int green, + unsigned int blue) +{ + Colormap cmap = DefaultColormapOfScreen(DefaultScreenOfDisplay(display)); + XColor xcolour; + + xcolour.red = red * 256; + xcolour.green = green * 256; + xcolour.blue = blue * 256; + xcolour.flags = DoRed | DoGreen | DoBlue; + + XAllocColor(display, cmap, &xcolour); + return (xcolour.pixel); +} + +/* + Copied from pngtopnm.c and modified by M.Itakura + (mostly omitted and added a few lines) + only color paletted image is handled +*/ + +/* +** pngtopnm.c - +** read a Portable Network Graphics file and produce a portable anymap +** +** Copyright (C) 1995,1998 by Alexander Lehmann +** and Willem van Schaik +** +** Permission to use, copy, modify, and distribute this software and its +** documentation for any purpose and without fee is hereby granted, provided +** that the above copyright notice appear in all copies and that both that +** copyright notice and this permission notice appear in supporting +** documentation. This software is provided "as is" without express or +** implied warranty. +** +** modeled after giftopnm by David Koblas and +** with lots of bits pasted from libpng.txt by Guy Eric Schalnat +*/ + +#define VERSION "2.37.1 (3 July 1998)" + +#include "png.h" + +#define pm_message printf +#define pm_error(x) {fprintf(stderr,x);return NULL;} + +# define TRUE 1 +# define FALSE 0 +# define NONE 0 + +#define SIG_CHECK_SIZE 4 + +XImage *read_png (const char *fname) +{ + char sig_buf [SIG_CHECK_SIZE]; + png_struct *png_ptr; + png_info *info_ptr; + png_byte **png_image; + png_byte *png_pixel; + unsigned int x, y; + int linesize; + png_uint_16 c; + unsigned int i; + + //X11 + XImage *res; + unsigned long pix_table[256]; + + + FILE *ifp = fopen(fname,"r"); + + if(!ifp) { fprintf(stderr, "File not found: %s", fname); return NULL; } + + if (fread (sig_buf, 1, SIG_CHECK_SIZE, ifp) != SIG_CHECK_SIZE) + pm_error ("input file empty or too short"); + if (png_sig_cmp ((unsigned char *)sig_buf, (png_size_t) 0, (png_size_t) SIG_CHECK_SIZE) != 0) + pm_error ("input file not a PNG file"); + + png_ptr = png_create_read_struct (PNG_LIBPNG_VER_STRING, NULL, NULL, NULL); + if (png_ptr == NULL) { + pm_error ("cannot allocate LIBPNG structure"); + } + info_ptr = png_create_info_struct (png_ptr); + if (info_ptr == NULL) { + png_destroy_read_struct (&png_ptr, (png_infopp)NULL, (png_infopp)NULL); + pm_error ("cannot allocate LIBPNG structures"); + } + + if (setjmp (png_ptr->jmpbuf)) { + png_destroy_read_struct (&png_ptr, (png_infopp)NULL, (png_infopp)NULL); + free (png_ptr); + free (info_ptr); + pm_error ("setjmp returns error condition"); + } + + png_init_io (png_ptr, ifp); + png_set_sig_bytes (png_ptr, SIG_CHECK_SIZE); + png_read_info (png_ptr, info_ptr); + + + + png_image = (png_byte **)malloc (info_ptr->height * sizeof (png_byte*)); + if (png_image == NULL) { + free (png_ptr); + free (info_ptr); + pm_error ("couldn't alloc space for image"); + } + + if (info_ptr->bit_depth == 16) + linesize = 2 * info_ptr->width; + else + linesize = info_ptr->width; + + if (info_ptr->color_type == PNG_COLOR_TYPE_GRAY_ALPHA) + linesize *= 2; + else + if (info_ptr->color_type == PNG_COLOR_TYPE_RGB) + linesize *= 3; + else + if (info_ptr->color_type == PNG_COLOR_TYPE_RGB_ALPHA) + linesize *= 4; + + for (y = 0 ; y < info_ptr->height ; y++) { + png_image[y] = (png_byte *)malloc (linesize); + if (png_image[y] == NULL) { + for (x = 0 ; x < y ; x++) + free (png_image[x]); + free (png_image); + free (png_ptr); + free (info_ptr); + pm_error ("couldn't alloc space for image"); + } + } + + if (info_ptr->bit_depth < 8) + png_set_packing (png_ptr); + + /* sBIT handling is very tricky. If we are extracting only the image, we + can use the sBIT info for grayscale and color images, if the three + values agree. If we extract the transparency/alpha mask, sBIT is + irrelevant for trans and valid for alpha. If we mix both, the + multiplication may result in values that require the normal bit depth, + so we will use the sBIT info only for transparency, if we know that only + solid and fully transparent is used */ + + if (info_ptr->valid & PNG_INFO_sBIT) { + + if ((info_ptr->color_type == PNG_COLOR_TYPE_PALETTE || + info_ptr->color_type == PNG_COLOR_TYPE_RGB || + info_ptr->color_type == PNG_COLOR_TYPE_RGB_ALPHA) && + (info_ptr->sig_bit.red != info_ptr->sig_bit.green || + info_ptr->sig_bit.red != info_ptr->sig_bit.blue) ) { + pm_message ("different bit depths for color channels not supported"); + pm_message ("writing file with %d bit resolution", info_ptr->bit_depth); + } else + if ((info_ptr->color_type == PNG_COLOR_TYPE_PALETTE) && + (info_ptr->sig_bit.red < 255)) { + for (i = 0 ; i < info_ptr->num_palette ; i++) { + info_ptr->palette[i].red >>= (8 - info_ptr->sig_bit.red); + info_ptr->palette[i].green >>= (8 - info_ptr->sig_bit.green); + info_ptr->palette[i].blue >>= (8 - info_ptr->sig_bit.blue); + } + + } else + if ((info_ptr->color_type == PNG_COLOR_TYPE_GRAY || + info_ptr->color_type == PNG_COLOR_TYPE_GRAY_ALPHA) && + (info_ptr->sig_bit.gray < info_ptr->bit_depth)) { + png_set_shift (png_ptr, &(info_ptr->sig_bit)); + } + + + } + + if (info_ptr->color_type == PNG_COLOR_TYPE_PALETTE) + { +//X11 + for (i = 0 ; i < info_ptr->num_palette ; i++) + pix_table[i] = create_pixel(info_ptr->palette[i].red, + info_ptr->palette[i].green, info_ptr->palette[i].blue); + } + else + if (info_ptr->color_type == PNG_COLOR_TYPE_GRAY) + { + for (i = 0 ; i < 256 ; i++) +//X11 + pix_table[i] = create_pixel(i, i, i); + } + + png_read_image (png_ptr, png_image); + png_read_end (png_ptr, info_ptr); + + res = ImgCreateSimple(info_ptr->width, info_ptr->height); + + for (y = 0 ; y < info_ptr->height ; y++) { + png_pixel = png_image[y]; + for (x = 0 ; x < info_ptr->width ; x++) { + c = *png_pixel; + png_pixel++; + XPutPixel(res, x, y, pix_table[c]); + } + } + + for (y = 0 ; y < info_ptr->height ; y++) + free (png_image[y]); + free (png_image); + free (png_ptr); + free (info_ptr); + + fclose(ifp); + return res; +} diff --git a/crawl-ref/source/guic.cc b/crawl-ref/source/guic.cc new file mode 100644 index 0000000000..5c29797a5c --- /dev/null +++ b/crawl-ref/source/guic.cc @@ -0,0 +1,773 @@ +/* 1) Image manipulation routines + * 2) WinClass and RegionClass system independent imprementaions + * see guic-*.cc for system dependent implementations + */ + +// Class defines +#include "guic.h" + +#ifdef WIN32TILES +#else +#define dos_char false; +#endif + +int TextRegionClass::print_x; +int TextRegionClass::print_y; +TextRegionClass *TextRegionClass::text_mode = NULL; +int TextRegionClass::text_col = 0; + +TextRegionClass *TextRegionClass::cursor_region= NULL; +int TextRegionClass::cursor_flag = 0; +int TextRegionClass::cursor_x; +int TextRegionClass::cursor_y; + +// more logical color naming +const int map_colors[MAX_MAP_COL][3]= +{ + { 0, 0, 0}, // BLACK + {128, 128, 128}, // DKGREY + {160, 160, 160}, // MDGREY + {192, 192, 192}, // LTGREY + {255, 255, 255}, // WHITE + + { 0, 64, 255}, // BLUE (actually cyan-blue) + {128, 128, 255}, // LTBLUE + { 0, 32, 128}, // DKBLUE (maybe too dark) + + { 0, 255, 0}, // GREEN + {128, 255, 128}, // LTGREEN + { 0, 128, 0}, // DKGREEN + + { 0, 255, 255}, // CYAN + { 64, 255, 255}, // LTCYAN (maybe too pale) + { 0, 128, 128}, // DKCYAN + + {255, 0, 0}, // RED + {255, 128, 128}, // LTRED (actually pink) + {128, 0, 0}, // DKRED + + {192, 0, 255}, // MAGENTA (actually blue-magenta) + {255, 128, 255}, // LTMAGENTA + { 96, 0, 128}, // DKMAGENTA + + {255, 255, 0}, // YELLOW + {255, 255, 64}, // LTYELLOW (maybe too pale) + {128, 128, 0}, // DKYELLOW + + {165, 91, 0}, // BROWN +}; + +const int term_colors[MAX_TERM_COL][3]= +{ + { 0, 0, 0}, // BLACK + { 0, 82, 255}, // BLUE + {100, 185, 70}, // GREEN + { 0, 180, 180}, // CYAN + {255, 48, 0}, // RED + {238, 92, 238}, // MAGENTA + {165, 91, 0}, // BROWN + {162, 162, 162}, // LIGHTGREY + { 82, 82, 82}, // DARKGREY + { 82, 102, 255}, // LIGHTBLUE + { 82, 255, 82}, // LIGHTGREEN + { 82, 255, 255}, // LIGHTCYAN + {255, 82, 82}, // LIGHTRED + {255, 82, 255}, // LIGHTMAGENTA + {255, 255, 82}, // YELLOW + {255, 255, 255} // WHITE +}; +/*------------------------------------------*/ + +// ������ +WinClass::WinClass() +{ + // Minimum; + wx = 10; + wy = 10; + + ox = 0; + oy = 0; + SysInit(); +} + +// �I�� +WinClass::~WinClass() +{ + SysDeinit(); + regions.clear(); + layers.clear(); +} + +void WinClass::placeRegion(RegionClass *r, int layer0, + int x, int y, + int margin_top, int margin_left, + int margin_bottom, int margin_right) +{ + if (r->win == NULL) + { + regions.push_back(r); + layers.push_back(layer0); + } + + r->win = this; + r->layer = layer0; + r->flag = true; + + r->sx = x; + r->sy = y; + + r->ox = r->sx + margin_left; + r->oy = r->sy + margin_top; + r->wx = r->dx * r->mx + margin_left + margin_right; + r->wy = r->dy * r->my + margin_top + margin_bottom; + r->ex = r->sx + r->wx; + r->ey = r->sy + r->wy; + if (r->ex > wx) wx = r->ex; + if (r->ey > wy) wy = r->ey; +} + +void WinClass::placeRegion(RegionClass *r, int layer0, + RegionClass *neighbor, int pflag, + int margin_top, int margin_left, + int margin_bottom, int margin_right) +{ + int sx0 =0; + int sy0 =0; + int ex0 =0; + int ey0 =0; + + int x = 0; + int y = 0; + + if (neighbor!=NULL) + { + sx0 = neighbor->sx; + sy0 = neighbor->sy; + ex0 = neighbor->ex; + ey0 = neighbor->ey; + } + + if (pflag == PLACE_RIGHT) + { + x = ex0; + y = sy0; + } + else + { + x = sx0; + y = ey0; + } + placeRegion(r, layer0, x, y, margin_top, margin_left, + margin_bottom, margin_right); + +} + +void WinClass::redraw(int x1, int y1, int x2, int y2) +{ + std::vector ::iterator r; + int cx1, cx2, cy1, cy2; + for (r = regions.begin();r != regions.end();r++) + { + if (!(*r)->is_active()) continue; + if( (*r)->convert_redraw_rect(x1, y1, x2, y2, &cx1, &cy1, &cx2, &cy2)) + { + (*r)->redraw(cx1, cy1, cx2, cy2); + } + } +} + +void WinClass::redraw() +{ + redraw(0, 0, wx-1, wy-1); +} + +void WinClass::move(int ox0, int oy0) +{ + ox = ox0; + oy = oy0; + move(); // system dependent +} + +void WinClass::resize(int wx0, int wy0) +{ + if (wx0>0) wx = wx0; + if (wy0>0) wy = wy0; + resize(); // system dependent +} + +/*------------------------------------------*/ + +/* �������̏��� + * 0 (�e�N���X�̏����A����) + * 1 �@�틤�ʏ��� + * 2 �@���ˑ����� + * + * �I�������̏��� + * 1 �@���ˑ����� + * 2 �@�틤�ʏ��� + * (3) (�e�N���X�̏����A����) + */ + + +//������ +RegionClass::RegionClass() +{ + flag = false; + win = NULL; + backbuf = NULL; + SysInit(); + ox = oy = 0; + dx = dy = 1; + font_copied = false; + id = 0; +} + +//�I������ +RegionClass::~RegionClass() +{ + SysDeinit(); + // �o�b�N�o�b�t�@���� + if (backbuf != NULL) ImgDestroy(backbuf); +} + +void TextRegionClass::resize(int x, int y) +{ + int i; + free(cbuf); + free(abuf); + cbuf = (unsigned char *)malloc(x*y); + abuf = (unsigned char *)malloc(x*y); + for (i=0; iactive_layer == layer) + return true; + else return false; +} + +void RegionClass::make_active() +{ + if (!flag) return; + win->active_layer = layer; +} + +void RegionClass::redraw(int x1, int y1, int x2, int y2) +{ +} + +void RegionClass::redraw() +{ + redraw(0, 0, mx-1, my-1); +} + +void MapRegionClass::redraw() +{ + redraw(0, 0, mx-1, my-1); +} + +void TileRegionClass::redraw() +{ + redraw(0, 0, mx*dx-1, my*dy-1); +} + +void MapRegionClass::set_col(int col, int x, int y) +{ + mbuf[x + y * mx2] = col; +} + +int MapRegionClass::get_col(int x, int y) +{ + return mbuf[x + y * mx2]; +} + +/*------------------------------------------*/ +bool RegionClass::convert_redraw_rect(int x1, int y1, int x2, int y2, + int *rx1, int *ry1, int *rx2, int *ry2) +{ + int cx1 = x1-ox; + int cy1 = y1-oy; + int cx2 = x2-ox; + int cy2 = y2-oy; + + if ( (cx2 < 0) || (cy2 < 0) || (cx1 >= dx*mx) || (cy1 >=dy*my)) + return false; + + cx1 /= dx; + cy1 /= dy; + cx2 /= dx; + cy2 /= dy; + + if(cx2>=mx-1)cx2=mx-1; + if(cy2>=my-1)cy2=my-1; + if(cx1<0) cx1=0; + if(cy1<0) cy1=0; + + *rx1 = cx1; + *ry1 = cy1; + *rx2 = cx2; + *ry2 = cy2; + + return true; +} + +bool TileRegionClass::convert_redraw_rect(int x1, int y1, int x2, int y2, + int *rx1, int *ry1, int *rx2, int *ry2) +{ + int cx1 = x1-ox; + int cy1 = y1-oy; + int cx2 = x2-ox; + int cy2 = y2-oy; + + int wwx = dx*mx; + int wwy = dy*my; + + if ( (cx2 < 0) || (cy2 < 0) || (cx1 >= wwx) || (cy1 >=wwy)) + return false; + + if(cx2>=wwx-1)cx2=wwx-1; + if(cy2>=wwy-1)cy2=wwy-1; + if(cx1<0) cx1=0; + if(cy1<0) cy1=0; + + *rx1 = cx1; + *ry1 = cy1; + *rx2 = cx2; + *ry2 = cy2; + + return true; +} + +bool RegionClass::mouse_pos(int mouse_x, int mouse_y, int *cx, int *cy) +{ + int x = mouse_x - ox; + int y = mouse_y - oy; + if (!is_active()) return false; + if ( x < 0 || y < 0 ) return false; + x /= dx; + y /= dy; + if (x >= mx || y >= my) return false; + *cx = x; + *cy = y; + return true; +} + +bool MapRegionClass::mouse_pos(int mouse_x, int mouse_y, int *cx, int *cy) +{ + int x = mouse_x - ox; + int y = mouse_y - oy; + if ( x < 0 || y < 0 ) return false; + x /= dx; + y /= dy; + if (x >= mx || y >= my) return false; + if (!is_active()) return false; + + *cx = x; + *cy = y; + return true; +} + +bool TileRegionClass::mouse_pos(int mouse_x, int mouse_y, int *cx, int *cy) +{ + int x = mouse_x - ox; + int y = mouse_y - oy; + if (!is_active()) return false; + if ( x < 0 || y < 0 ) return false; + if ( x >= dx*mx || y >= dy*my ) return false; + + x /= dx; + y /= dy; + *cx = x; + *cy = y; + + return true; +} + +/* + * Text related + */ + +void TextRegionClass::scroll() +{ + int idx; + + if(!flag) + return; + + for(idx=0; idx*x2) + { + nx2=x; + break; + } + if (ptr[x] & 0x80) x+=2; + else x++; + } + *x1 = nx1; + *x2 = nx2; +#else + *x2 = *x2 + 1; +#endif +} + +void TextRegionClass::addstr(char *buffer) +{ + int i,j; + char buf2[1024]; + int len = strlen(buffer); + + if(!flag)return; + + j=0; + + for(i=0;ierase_cursor(); + cursor_region = NULL; + } + + if (cursor_flag) + { + text_mode->draw_cursor(print_x, print_y); + cursor_x = print_x; + cursor_y = print_y; + cursor_region = text_mode; + } +} + +int TextRegionClass::wherex() +{ + return print_x + 1; +} + +int TextRegionClass::wherey() +{ + return print_y + 1; +} + +void TextRegionClass::_setcursortype(int curstype) +{ + cursor_flag = curstype; + if (cursor_region != NULL) + cursor_region ->erase_cursor(); + + if (curstype) + { + text_mode->draw_cursor(print_x, print_y); + cursor_x = print_x; + cursor_y = print_y; + cursor_region = text_mode; + } +} + +#if 0 +int TextRegionClass::get_number_of_lines() +{ + return (text_mode->cx_ofs + text_mode->my); +} +#endif diff --git a/crawl-ref/source/guic.h b/crawl-ref/source/guic.h new file mode 100644 index 0000000000..56a4785f14 --- /dev/null +++ b/crawl-ref/source/guic.h @@ -0,0 +1,464 @@ +#ifdef USE_X11 +#include +#include +bool GuicInit(Display **d, int *s); +void GuicDeinit(); + +#elif defined(WIN32TILES) +#include +#include +bool GuicInit(HINSTANCE h, int nCmdShow); +void GuicDeinit(); + +#elif defined(SOME_OS) +#include +bool GuicInit(some args); +#endif + +#include + +/* + * Internal Image types + */ + +#ifdef USE_X11 +/*********** X11 ********/ +typedef XImage *img_type; +#define ImgWidth(img) (img->width) +#define ImgHeight(img) (img->height) + +#elif defined(WIN32TILES) +/********** Windows *****/ +// struct for DIB info +typedef struct dib_pack +{ + LPBITMAPINFO pDib ; //^CDIB̃wb_+pbgւ̃|C^ + HBITMAP hDib ; //^CDIBƂĕێ + HDC hDC ; //^C̃foCReLXgnh + LPBYTE pDibBits ; //DIB̐擪oCgւ̃|C^ + LPBYTE pDibZero ; //DIB(0,0)_̃oCgւ̃|C^ + int Width ; //DIB̕ + int Height ; //DIB̍ +} dib_pack; +typedef dib_pack *img_type; +#define ImgWidth(img) (img->Width) +#define ImgHeight(img) (img->Height) + +#elif defined(SOME_OS) +typedef sometype *img_type; +#define ImgWidth(img) (img->x) +#define ImgHeight(img) (img->y) +#endif + +// Image overlay/copy between internal images, +// implemented in winclass-*.cc +void ImgCopy(img_type src, int sx, int sy, int wx, int wy, + img_type dest, int dx, int dy, int copy); +// hilight rim color #010101 to magenta +void ImgCopyH(img_type src, int sx, int sy, int wx, int wy, + img_type dest, int dx, int dy, int copy); +// maskout by char array mask +void ImgCopyMasked(img_type src, int sx, int sy, int wx, int wy, + img_type dest, int dx, int dy, char *mask); +// maskout+hilight +void ImgCopyMaskedH(img_type src, int sx, int sy, int wx, int wy, + img_type dest, int dx, int dy, char *mask); + +// create internal buffer (not assosiated to any window) +img_type ImgCreateSimple(int wx, int wy); +// create it from file +img_type ImgLoadFile(const char *name); + +// destroy +void ImgDestroy(img_type img); +// clear by transparent color +void ImgClear(img_type img); +// if it is pix_transparent #476c6c +bool ImgIsTransparentAt(img_type img, int x, int y); +void ImgSetTransparentPix(img_type img); + +/* + * Windows and internal regions (text, dungeon, map, etc) + */ + +class WinClass +{ + public: + int ox; //Offset x in dots + int oy; //Offset y in dots + + int wx; //width in dots + int wy; //height in dots + + std::vector regions; + std::vector layers; + + // EBhEŃ_W/CxgȂǓꏊ + // \؂ւꍇɎgp + int active_layer; + + // Pointer to the window +#ifdef USE_X11 + Window win; +#elif defined(WIN32TILES) + HWND hWnd; +#elif defined(SOME_OS) + somewindowtype win; +#endif + + // + WinClass(); + + // @ˑlj + void SysInit(); + void SysDeinit(); + + // I + ~WinClass(); + + // fillout with black: Sys dep + void clear(); + // create: Sys dep +#ifdef USE_X11 + void create(char *name); +#elif defined(WIN32TILES) + BOOL create(const char *name); +#elif defined(SOME_OS) + void create(some args); +#endif + + void resize(int wx, int wy); + void resize(); + void move(int ox, int oy); + void move(); + + // place Regions inside it + void placeRegion(class RegionClass *r, int layer, + class RegionClass *neighbor, + int pflag, + int margin_top = 0, int margin_left = 0, + int margin_bottom = 0, int margin_right = 0); + + void placeRegion(class RegionClass *r, int layer, + int x, int y, + int margin_top = 0, int margin_left = 0, + int margin_bottom = 0, int margin_right = 0); + + // fillout a rectangle + void fillrect(int left, int right, int top, int bottom, int color); + + // redraw for exposure, etc + void redraw(int x1, int y1, int x2, int y2); + void redraw(); +}; + +class RegionClass +{ + public: + + WinClass *win; + int layer; + + // Geometry + // <-----------------wx-----------------------> + // sx ox ex + // |margin| text/tile area |margin| + + int ox; //Offset x in dots + int oy; //Offset y in dots + + int dx; //unit width + int dy; //unit height + + int mx; //window width in dx + int my; //window height in dy + + int wx; //width in dots = dx*mx + margins + int wy; //height in dots = dy*my + margins + + int sx; //Left edge pos + int sy; //Top edge pos + int ex; //right edge pos + int ey; //bottom edge pos + + bool flag;// use or no + + int id; // for general purpose + + // pointer to internal backup image buffer + // used for redraw and supplessing flicker + // Win ł ^Cƃ}bvA X11 ł̓^CŎgp + img_type backbuf; +#ifdef WIN32TILES + static void set_std_palette(RGBQUAD *pPal); + static RGBQUAD std_palette[256]; + void init_backbuf(RGBQUAD *pPal = NULL, int ncol = 0); + bool dos_char; +#else + void init_backbuf(); +#endif + void resize_backbuf(); + + // font-related + int fx; // font height and width (can differ from dx, dy) + int fy; +#ifdef USE_X11 + int asc; //font ascent + #ifdef JP + XFontSet font; //fontset + #else + XFontStruct *font; + #endif + void init_font(const char *name); +#elif defined(WIN32TILES) + HFONT font; + void init_font(const char *name, int height); + void change_font(const char *name, int height); +#elif defined(SOME_OS) + sometype font; + void init_font(some args); +#endif + + bool font_copied; + + void copy_font(RegionClass *r); + + // init/deinit + RegionClass(); + virtual ~RegionClass(); + + // system-dependent init/deinit + void SysInit(); + void SysDeinit(); + + // Sys indep + bool is_active(); + void make_active(); + + //ȉ̓eLXg/}bv/^C̔hNXŋς + + //Sys indep + //}EXʒu_WʒuɕϊA͈͓Ȃ true Ԃ + // convert mouse point into logical position + virtual bool mouse_pos(int mouse_x, int mouse_y, int *cx, int *cy); + + //`̈W region W + virtual bool convert_redraw_rect(int x1, int y1, int x2, int y2, + int *rx1, int *ry1, int *rx2, int *ry2); + + //Sys dep + // exposure Ȃǂ̍ĕ` + virtual void redraw(int x1, int y1, int x2, int y2); + virtual void redraw(); + void sys_flush(); + + //჌x` J[\p + // TileRegionClass ł ʂłȂobNobt@C[Wɂ` + //`h‚Ԃ + virtual void fillrect(int left, int right, int top, int bottom, int color); + //`` + virtual void framerect(int left, int right, int top, int bottom, int color); + + // Sys dep + // œh + virtual void clear(); +}; + + +// h +class TextRegionClass :public RegionClass +{ + public: + // init/deinit + TextRegionClass(int x, int y , int cx, int cy); + ~TextRegionClass(); + + // os dependent init/deinit + void SysInit(int x, int y, int cx, int cy); + void SysDeinit(); + + // where now printing? what color? + static int print_x; + static int print_y; + static int text_col; + // which region now printing? + static class TextRegionClass *text_mode; + // display cursor? where is the cursor now? + static int cursor_flag; + static class TextRegionClass *cursor_region; + static int cursor_x; + static int cursor_y; + + // class methods + static void gotoxy(int x, int y); + static int wherex(); + static int wherey(); + //static int get_number_of_lines(void); + static void _setcursortype(int curstype); + static void textbackground(int bg); + static void textcolor(int col); + + // Object's method + void clear_to_end_of_line(void); + void clear_to_end_of_screen(void); + void putch(unsigned char chr); + void writeWChar(unsigned char *ch); + + unsigned char *cbuf; //text backup + unsigned char *abuf; //textcolor backup + + int cx_ofs; //cursor x offset + int cy_ofs; //cursor y offset + + void addstr(char *buffer); + void addstr_aux(char *buffer, int len); + void adjust_region(int *x1, int *x2, int y); + void scroll(); + //bool mouse_pos(int mouse_x, int mouse_y, int *cx, int *cy); + + //Sys dep + void draw_string(int x, int y, unsigned char *buf, int len, int col); + void draw_cursor(int x, int y, int width); + void draw_cursor(int x, int y); + void erase_cursor(); + void clear(); + void init_backbuf(); + void redraw(int x1, int y1, int x2, int y2); + void resize(int x, int y); +}; + +class TileRegionClass :public RegionClass +{ + public: + bool force_redraw; + + void DrawPanel(int left, int top, int width, int height); + //obNobt@Œ`h‚Ԃ + void fillrect(int left, int right, int top, int bottom, int color); + //obNobt@Œ`` + void framerect(int left, int right, int top, int bottom, int color); + + bool mouse_pos(int mouse_x, int mouse_y, int *cx, int *cy); + virtual bool convert_redraw_rect(int x1, int y1, int x2, int y2, + int *rx1, int *ry1, int *rx2, int *ry2); + void redraw(int x1, int y1, int x2, int y2); + void redraw(); + void clear(); + + //Sys dep + void resize(int x, int y, int dx, int dy); + +#ifdef WIN32TILES + void init_backbuf(RGBQUAD *pPal = NULL); +#else + void init_backbuf(); +#endif + void resize_backbuf(); + + // + TileRegionClass(int mx0, int my0, int dx0, int dy0); + + // @ˑlj + void SysInit(int mx0, int my0, int dx0, int dy0); + void SysDeinit(); + + //I + ~TileRegionClass(); +}; + +class MapRegionClass :public RegionClass +{ + public: + int mx2; + int my2; + int x_margin; + int y_margin; + unsigned char *mbuf; + bool force_redraw; + bool mouse_pos(int mouse_x, int mouse_y, int *cx, int *cy); + void draw_data(unsigned char *buf); + void redraw(int x1, int y1, int x2, int y2); + void redraw(); + void clear(); + + //Sys dep + void init_backbuf(); + void resize_backbuf(); + void resize(int mx0, int my0, int dx0, int dy0); + + void set_col(int col, int x, int y); + int get_col(int x, int y); + + // + MapRegionClass(int x, int y, int o_x, int o_y, bool iso); + + // @ˑlj + void SysInit(int x, int y, int o_x, int o_y); + void SysDeinit(); + + //I + ~MapRegionClass(); +}; + +#define PLACE_RIGHT 0 +#define PLACE_BOTTOM 1 +#define PLACE_FORCE 2 + +// Graphics Colors +#define PIX_BLACK 0 +#define PIX_BLUE 1 +#define PIX_GREEN 2 +#define PIX_CYAN 3 +#define PIX_RED 4 +#define PIX_MAGENTA 5 +#define PIX_BROWN 6 +#define PIX_LIGHTGREY 7 +#define PIX_DARKGREY 8 +#define PIX_LIGHTBLUE 9 +#define PIX_LIGHTGREEN 10 +#define PIX_LIGHTCYAN 11 +#define PIX_LIGHTRED 12 +#define PIX_LIGHTMAGENTA 13 +#define PIX_YELLOW 14 +#define PIX_WHITE 15 +#define MAX_TERM_COL 16 + + +#define MAP_BLACK 0 +#define MAP_DKGREY 1 +#define MAP_MDGREY 2 +#define MAP_LTGREY 3 +#define MAP_WHITE 4 + +#define MAP_BLUE 5 +#define MAP_LTBLUE 6 +#define MAP_DKBLUE 7 + +#define MAP_GREEN 8 +#define MAP_LTGREEN 9 +#define MAP_DKGREEN 10 + +#define MAP_CYAN 11 +#define MAP_LTCYAN 12 +#define MAP_DKCYAN 13 + +#define MAP_RED 14 +#define MAP_LTRED 15 +#define MAP_DKRED 16 + +#define MAP_MAGENTA 17 +#define MAP_LTMAGENTA 18 +#define MAP_DKMAGENTA 19 + +#define MAP_YELLOW 20 +#define MAP_LTYELLOW 21 +#define MAP_DKYELLOW 22 + +#define MAP_BROWN 23 + +#define MAX_MAP_COL 24 + + +extern const int term_colors[MAX_TERM_COL][3]; +extern const int map_colors[MAX_MAP_COL][3]; + diff --git a/crawl-ref/source/initfile.cc b/crawl-ref/source/initfile.cc index d17dcd6df1..d2b5421992 100644 --- a/crawl-ref/source/initfile.cc +++ b/crawl-ref/source/initfile.cc @@ -654,7 +654,11 @@ void game_options::reset_options() detected_item_colour = GREEN; detected_monster_colour= LIGHTRED; +#ifdef USE_TILE + classic_item_colours = true; +#else classic_item_colours = false; +#endif easy_exit_menu = true; #ifdef DOS @@ -742,6 +746,14 @@ void game_options::reset_options() wiz_mode = WIZ_NO; #endif +#ifdef USE_TILE + show_items[0] = '0'; +#endif + +#ifdef WIN32TILES + use_dos_char = true; +#endif + // map each colour to itself as default #ifdef USE_8_COLOUR_TERM_MAP for (int i = 0; i < 16; i++) @@ -1613,6 +1625,7 @@ void game_options::read_option_line(const std::string &str, bool runscript) player_name = field; } #endif +#ifndef USE_TILE else if (key == "char_set" || key == "ascii_display") { bool valid = true; @@ -1642,6 +1655,7 @@ void game_options::read_option_line(const std::string &str, bool runscript) } } } +#endif else if (key == "default_autopickup") { // should autopickup default to on or off? @@ -2602,6 +2616,21 @@ void game_options::read_option_line(const std::string &str, bool runscript) else pickup_mode = read_bool_or_number(field, pickup_mode, "auto:"); } + +#ifdef USE_TILE + else if (key == "show_items" ) + { + strncpy(show_items, field.c_str(), 18); + } +#endif + +#ifdef WIN32TILES + else if (key == "use_dos_char" ) + { + use_dos_char = read_bool( field, use_dos_char ); + } +#endif + // Catch-all else, copies option into map else if (runscript) { diff --git a/crawl-ref/source/invent.cc b/crawl-ref/source/invent.cc index f55cdd856b..49e497070a 100644 --- a/crawl-ref/source/invent.cc +++ b/crawl-ref/source/invent.cc @@ -44,6 +44,8 @@ #include "menu.h" #include "randart.h" +#include "tiles.h" + /////////////////////////////////////////////////////////////////////////////// // Inventory menu shenanigans @@ -350,6 +352,36 @@ void InvMenu::load_inv_items(int item_selector, } } +void InvMenu::draw_stock_item(int index, const MenuEntry *me) const +{ +#ifdef USE_TILE + const InvEntry *ie = dynamic_cast(me); + if (ie && me->quantity > 0) + { + int draw_quantity = ie->quantity > 1 ? ie->quantity : -1; + bool is_item_on_floor = true; + bool is_item_tried = false; + char c = 0; + int idx = -1; + if (ie->item) + { + is_item_on_floor = ie->item->x != -1; + is_item_tried = item_type_tried(*ie->item); + c = ie->hotkeys.size() > 0 ? ie->hotkeys[0] : 0; + idx = (is_item_on_floor ? ie->item->index() : + letter_to_index(c)); + } + + TileDrawOneItem(REGION_INV2, get_entry_index(ie), c, + idx, tileidx_item(*ie->item), draw_quantity, + is_item_on_floor, ie->selected(), ie->is_item_equipped(), + is_item_tried, ie->is_item_cursed()); + } +#endif + + Menu::draw_stock_item(index, me); +} + template int compare_item_str(const InvEntry *a, const InvEntry *b) { diff --git a/crawl-ref/source/invent.h b/crawl-ref/source/invent.h index 74386687f0..747ebac85f 100644 --- a/crawl-ref/source/invent.h +++ b/crawl-ref/source/invent.h @@ -152,6 +152,7 @@ protected: void sort_menu(std::vector &items, const menu_sort_condition *cond); const menu_sort_condition *find_menu_sort_condition() const; + virtual void draw_stock_item(int index, const MenuEntry *me) const; protected: menu_type type; diff --git a/crawl-ref/source/item_use.cc b/crawl-ref/source/item_use.cc index 5aeccf8cf1..509aacc3aa 100644 --- a/crawl-ref/source/item_use.cc +++ b/crawl-ref/source/item_use.cc @@ -73,6 +73,7 @@ #include "spl-util.h" #include "state.h" #include "stuff.h" +#include "tiles.h" #include "transfor.h" #include "tutorial.h" #include "view.h" @@ -220,7 +221,8 @@ bool wield_weapon(bool auto_wield, int slot, bool show_weff_messages) // Prompt if not using the auto swap command, or if the swap slot // is empty. - if (!auto_wield || !is_valid_item(you.inv[item_slot]) || !good_swap) + if (item_slot != PROMPT_GOT_SPECIAL && + (!auto_wield || !is_valid_item(you.inv[item_slot]) || !good_swap)) { if (!auto_wield) item_slot = prompt_invent_item( @@ -731,11 +733,13 @@ static bool cloak_is_being_removed( void ) // wear_armour // //--------------------------------------------------------------- -void wear_armour(void) +void wear_armour( int slot ) { int armour_wear_2 = 0; - if (!armour_prompt("Wear which item?", &armour_wear_2, OPER_WEAR)) + if (slot != -1) + armour_wear_2 = slot; + else if (!armour_prompt("Wear which item?", &armour_wear_2, OPER_WEAR)) return; if (safe_to_remove_or_wear(you.inv[armour_wear_2], false)) @@ -1175,7 +1179,7 @@ bool takeoff_armour(int item) return true; } // end takeoff_armour() -void throw_anything(void) +void throw_anything( int slot ) { struct bolt beam; int throw_slot; @@ -1191,7 +1195,10 @@ void throw_anything(void) return; } - throw_slot = prompt_invent_item( "Throw which item? (* to show all)", + if (slot != -1) + throw_slot = slot; + else + throw_slot = prompt_invent_item( "Throw which item? (* to show all)", MT_INVLIST, OBJ_MISSILES, true, true, true, 0, NULL, OPER_THROW ); @@ -3121,7 +3128,7 @@ bool remove_ring(int slot, bool announce) return (true); } // end remove_ring() -void zap_wand(void) +void zap_wand( int slot ) { bolt beam; dist zap_wand; @@ -3145,7 +3152,10 @@ void zap_wand(void) return; } - item_slot = prompt_invent_item( "Zap which item?", + if (slot != -1) + item_slot = slot; + else + item_slot = prompt_invent_item( "Zap which item?", MT_INVLIST, OBJ_WANDS, true, true, true, 0, NULL, @@ -3325,7 +3335,7 @@ void inscribe_item() } } -void drink(void) +void drink( int slot ) { int item_slot; @@ -3335,11 +3345,14 @@ void drink(void) return; } - if (grd[you.x_pos][you.y_pos] == DNGN_BLUE_FOUNTAIN - || grd[you.x_pos][you.y_pos] == DNGN_SPARKLING_FOUNTAIN) + if (slot == -1) { - if (drink_fountain()) - return; + if (grd[you.x_pos][you.y_pos] == DNGN_BLUE_FOUNTAIN + || grd[you.x_pos][you.y_pos] == DNGN_SPARKLING_FOUNTAIN) + { + if (drink_fountain()) + return; + } } if (inv_count() == 0) @@ -3360,7 +3373,10 @@ void drink(void) return; } - item_slot = prompt_invent_item( "Drink which item?", + if (slot != -1) + item_slot = slot; + else + item_slot = prompt_invent_item( "Drink which item?", MT_INVLIST, OBJ_POTIONS, true, true, true, 0, NULL, OPER_QUAFF ); @@ -3824,7 +3840,7 @@ static void handle_read_book( int item_slot ) } } -void read_scroll(void) +void read_scroll( int slot ) { int affected = 0; int i; @@ -3847,7 +3863,9 @@ void read_scroll(void) return; } - int item_slot = prompt_invent_item( + int item_slot = (slot != -1) ? + slot : + prompt_invent_item( "Read which item?", MT_INVLIST, OBJ_SCROLLS, @@ -4351,3 +4369,146 @@ bool wearing_slot(int inv_slot) return true; return false; } + +#ifdef USE_TILE +// Interactive menu for item drop/use +void use_item(int idx, InvAction act) +{ + if (act == INV_PICKUP) + { + pickup_single_item(idx, mitm[idx].quantity); + return; + } + else if (act == INV_DROP) + { +#ifdef USE_TILE + TileMoveInvCursor(-1); +#endif + drop_item(idx, you.inv[idx].quantity); + return; + } + else if (act != INV_USE) + { + return; + } + + // Equipped? + bool equipped = false; + for (unsigned int i=0; i< NUM_EQUIP;i++) + { + if (you.equip[i] == idx) + { + equipped = true; + break; + } + } + +#ifdef USE_TILE + TileMoveInvCursor(-1); +#endif + + // Special case for folks who are wielding something + // that they shouldn't be wielding. + if (you.equip[EQ_WEAPON] == idx) + { + if (!check_warning_inscriptions(you.inv[idx], OPER_WIELD)) + return; + + wield_weapon(true, PROMPT_GOT_SPECIAL); + return; + } + + // Use it + switch (you.inv[idx].base_type) + { + case OBJ_WEAPONS: + case OBJ_STAVES: + if (!check_warning_inscriptions(you.inv[idx], OPER_WIELD)) + return; + if (equipped) + wield_weapon(true, PROMPT_GOT_SPECIAL); + else + wield_weapon(true, idx); + return; + + case OBJ_MISCELLANY: + if (equipped) + { + if (!check_warning_inscriptions(you.inv[idx], OPER_EVOKE)) + return; + evoke_wielded(); + } + else + { + if (!check_warning_inscriptions(you.inv[idx], OPER_WIELD)) + return; + wield_weapon(true, idx); + } + return; + + case OBJ_MISSILES: + if (!check_warning_inscriptions(you.inv[idx], OPER_THROW)) + return; + throw_anything(idx); + return; + + case OBJ_ARMOUR: + if (equipped) + { + if (!check_warning_inscriptions(you.inv[idx], OPER_TAKEOFF)) + return; + takeoff_armour(idx); + } + else + { + if (!check_warning_inscriptions(you.inv[idx], OPER_WEAR)) + return; + wear_armour(idx); + } + return; + + case OBJ_WANDS: + if (!check_warning_inscriptions(you.inv[idx], OPER_ZAP)) + return; + zap_wand(idx); + return; + + case OBJ_FOOD: + if (!check_warning_inscriptions(you.inv[idx], OPER_EAT)) + return; + eat_food(false, idx); + return; + + case OBJ_SCROLLS: + case OBJ_BOOKS: + if (!check_warning_inscriptions(you.inv[idx], OPER_READ)) + return; + read_scroll(idx); + return; + + case OBJ_JEWELLERY: + if (equipped) + { + if (!check_warning_inscriptions(you.inv[idx], OPER_REMOVE)) + return; + remove_ring(idx); + } + else + { + if (!check_warning_inscriptions(you.inv[idx], OPER_PUTON)) + return; + puton_ring(idx, false); + } + return; + + case OBJ_POTIONS: + if (!check_warning_inscriptions(you.inv[idx], OPER_QUAFF)) + return; + drink(idx); + return; + + default: + return; + } +} +#endif diff --git a/crawl-ref/source/item_use.h b/crawl-ref/source/item_use.h index e191c6833d..e4d09c72a3 100644 --- a/crawl-ref/source/item_use.h +++ b/crawl-ref/source/item_use.h @@ -64,7 +64,7 @@ bool takeoff_armour(int index); /* *********************************************************************** * called from: acr * *********************************************************************** */ -void drink(void); +void drink(int slot = -1); bool elemental_missile_beam(int launcher_brand, int ammo_brand); @@ -88,7 +88,7 @@ bool puton_ring(int slot = -1, bool prompt_finger = true); /* *********************************************************************** * called from: acr * *********************************************************************** */ -void read_scroll(void); +void read_scroll(int slot = -1); // last updated 12may2000 {dlb} @@ -111,14 +111,14 @@ void shoot_thing(void); /* *********************************************************************** * called from: acr * *********************************************************************** */ -void throw_anything(void); +void throw_anything(int slot = -1); // last updated 12may2000 {dlb} /* *********************************************************************** * called from: acr * *********************************************************************** */ -void wear_armour( void ); +void wear_armour( int slot = -1 ); bool can_wear_armour(const item_def &item, bool verbose, bool ignore_temporary); @@ -147,7 +147,7 @@ bool wield_weapon(bool auto_wield, int slot = -1, bool show_we_messages = true); /* *********************************************************************** * called from: acr * *********************************************************************** */ -void zap_wand(void); +void zap_wand(int slot = -1); // last updated 15jan2001 {gdl} @@ -184,4 +184,11 @@ int item_special_wield_effect(const item_def &item); bool wearing_slot(int inv_slot); +#ifdef USE_TILE +/* *********************************************************************** + * * called from: acr + * * *********************************************************************** */ +void use_item(int idx, InvAction act); +#endif + #endif diff --git a/crawl-ref/source/items.cc b/crawl-ref/source/items.cc index 184a24eecc..d5346e87c6 100644 --- a/crawl-ref/source/items.cc +++ b/crawl-ref/source/items.cc @@ -67,6 +67,7 @@ #include "spl-util.h" #include "stuff.h" #include "stash.h" +#include "tiles.h" #include "state.h" #include "terrain.h" #include "transfor.h" diff --git a/crawl-ref/source/libgui.cc b/crawl-ref/source/libgui.cc new file mode 100644 index 0000000000..08e00b2a5d --- /dev/null +++ b/crawl-ref/source/libgui.cc @@ -0,0 +1,2172 @@ +/* + * File: libx11.cc + * Summary: Functions for x11 + * Written by: M.Itakura + * + * Change History (most recent first): + * + * <1> 03/08/11 Ita copied from liblinux.cc and modified + * + */ + +#define deblog(x) {FILE *ddfp=fopen("log.txt","a");fprintf(ddfp,x);fprintf(ddfp,"\n");fclose(ddfp);} +#define deblog2(x,y) {FILE *ddfp=fopen("log.txt","a");fprintf(ddfp,"%s %d\n",x,y);fclose(ddfp);} + +#include +#include +#include + +#include "AppHdr.h" +#include "cio.h" +#include "defines.h" +#include "describe.h" +#include "direct.h" +#include "files.h" +#include "itemname.h" +#include "items.h" +#include "externs.h" +#include "guic.h" +#include "message.h" +#include "player.h" +#include "stash.h" +#include "state.h" +#include "stuff.h" +#include "terrain.h" +#include "tiles.h" +#include "travel.h" +#include "version.h" +#include "view.h" + +int tile_dngn_x; +int tile_dngn_y; +#define DCX (tile_dngn_x/2) +#define DCY (tile_dngn_y/2) + +// libx11.cc or libwt.cc +extern void update_tip_text(const char *tip); +extern void libgui_init_sys(); +extern void libgui_shutdown_sys(); +extern void GetNextEvent(int *etype, + int *key, bool *shift, bool *ctrl, + int *x1, int *y1, int *x2, int *y2); +#ifdef WIN32TILES +// libwt.cc +extern bool windows_change_font(char *font_name, int *font_size, bool dos); +extern void windows_get_winpos(int *x, int *y); +extern void TileInitWin(); +#endif + +// Main window +WinClass *win_main; +// Regions +TextRegionClass *region_crt = NULL; +MapRegionClass *region_map = NULL; +TileRegionClass *region_tile = NULL; +TextRegionClass *region_stat = NULL; +TextRegionClass *region_msg = NULL; +TextRegionClass *region_dngn = NULL; +TextRegionClass *region_xmap = NULL; +TextRegionClass *region_tip = NULL; + +TileRegionClass *region_item = NULL; +TileRegionClass *region_item2 = NULL; + +// Raw tile images +img_type TileImg, TileIsoImg; +img_type PlayerImg; +img_type WallImg; + +extern bool force_redraw_tile; +extern bool force_redraw_inv; + +// for item use gui +#define MAX_ITEMLIST 60 +extern int itemlist[MAX_ITEMLIST]; +extern int itemlist_num[MAX_ITEMLIST]; +extern int itemlist_idx[MAX_ITEMLIST]; +extern char itemlist_key[MAX_ITEMLIST]; +extern int itemlist_iflag[MAX_ITEMLIST]; +extern int itemlist_flag; +extern int itemlist_n; + +static bool gui_smart_cursor = false; + +// Window prefs +static int crt_x = 80; +static int crt_y = 30; +static int map_px = 3; +static int msg_x = 80, msg_y = 8; +static int dngn_x = 17, dngn_y = 17; +static int winox = 0, winoy = 0; +#define MAX_PREF_CHAR 256 + +#ifdef USE_X11 +#define UseDosChar false +static char font_name[MAX_PREF_CHAR+1] = "8x16"; +#endif + +#ifdef WIN32TILES +static char font_name[MAX_PREF_CHAR+1] = "courier"; +#define UseDosChar (Options.use_dos_char) +static char dos_font_name[MAX_PREF_CHAR+1] = "Terminal"; +static int dos_font_size = 16; +#endif + +static int font_size = 12; + +#define PREF_MODE_TEXT 0 +#define PREF_MODE_TILE 1 +#define PREF_MODE_ISO 2 +#define PREF_MODE_NUM 3 +static const char *pref_mode_name[PREF_MODE_NUM] + ={ "Text", "Tile", "Iso"}; + +typedef struct prefs +{ + const char *name; + const char *tagname; + char type; + void *ptr; + int min, max; + int dummy_idx; +}prefs; + +#ifdef WIN32TILES +#define MAX_PREFS 11 +#else +#define MAX_PREFS 9 +#endif + +#define MAX_EDIT_PREFS 5 +static int dummy_int[PREF_MODE_NUM][8]; +static char dummy_str[PREF_MODE_NUM][2][MAX_PREF_CHAR+1]; +struct prefs pref_data[MAX_PREFS] = +{ + {"DUNGEON X", "DngnX", 'I', &dngn_x, 17, 35, 0}, + {"DUNGEON Y", "DngnY", 'I', &dngn_y, 17, 35, 1}, + {"MAP PX ", "MapPx", 'I', &map_px, 1, 10, 2}, + {"MSG X ", "MsgX", 'I', &msg_x, 40, 80, 3}, + {"MSG Y ", "MsgY", 'I', &msg_y, 8, 20, 4}, + {"WIN TOP ", "WindowTop", 'I', &winox, -100, 2000, 5}, + {"WIN LEFT ", "WindowLeft",'I', &winoy, -100, 2000, 6}, + {"FONT ", "FontName", 'S', font_name, 0,0, 0}, + {"FONT SIZE", "FontSize", 'I', &font_size, 8,24, 7} +#ifdef WIN32TILES + ,{"DOS FONT", "DosFontName", 'S', dos_font_name, 0,0, 1}, + {"DOS FONT SIZE", "DosFontSize", 'I', &dos_font_size, 8,24, 8} +#endif +}; + +static int pref_mode = 0; +static void libgui_load_prefs(); +static void libgui_save_prefs(); + +//Internal variables + +static int mouse_mode = MOUSE_MODE_NORMAL; +// hack: prevent clrscr for some region +static bool region_lock[NUM_REGIONS]; +static bool toggle_telescope; + +#define char_is_wall(ch) (ch == 127 || (ch >= 137 && ch <= 140) \ + || ch == 177 || ch == 176 || ch == '#') + +#define char_is_item(ch) ( (ch == 33)||(ch == 34)||(ch == 36)||(ch == 37) \ + ||(ch == 40) ||(ch == 41)||(ch == 43)||(ch == 47)||(ch == 48) \ + ||(ch == 58) ||(ch == 61)||(ch == 63)||(ch == 88)||(ch == 91) \ + ||(ch == 92) ||(ch == 93)||(ch == 125) || (ch == '~')) + +#define char_is_monster(ch) ( (ch>='@' && ch<='Z') || (ch>='a' && ch<='z') \ + || ch=='&' || (ch>='1' && ch<='5') || ch == ';') + +/***********************************************************/ +//micromap color array +#define MAP_XMAX GXM +#define MAP_YMAX GYM + +static unsigned char gmap_data[GXM][GYM]; +static int gmap_min_x, gmap_max_x; +static int gmap_min_y, gmap_max_y; +static int gmap_ox, gmap_oy; + +// redefine color constants with shorter name to save space +#define PX_0 MAP_BLACK //unseen +#define PX_F MAP_LTGREY //floor +#define PX_W MAP_DKGREY //walls +#define PX_D MAP_BROWN //doors +#define PX_WB MAP_LTBLUE //blue wall +#define PX_I MAP_GREEN //items +#define PX_M MAP_RED //monsters +#define PX_US MAP_BLUE //upstair +#define PX_DS MAP_MAGENTA //downstair +#define PX_SS MAP_CYAN //special stair +#define PX_WT MAP_MDGREY //water +#define PX_LV MAP_MDGREY //lava +#define PX_T MAP_YELLOW //trap +#define PX_MS MAP_CYAN //misc + + static const char gmap_col[256] = { + /* 0x00 */ PX_0, PX_0, PX_0, PX_0, PX_0, PX_0, PX_0, PX_0, + /* 0x08 */ PX_0, PX_0, PX_0, PX_0, PX_0, PX_0, PX_0, PX_0, + /* 0x10 */ PX_0, PX_0, PX_0, PX_0, PX_0, PX_0, PX_0, PX_0, + /* 0x18 */ PX_0, PX_0, PX_0, PX_0, PX_0, PX_0, PX_0, PX_0, + + /* ' ' '!' '"' '#' '$' '%' '&' ''' */ + /* 0x20 */ PX_0, PX_I, PX_I, PX_F, PX_I, PX_I, PX_M, PX_D, + /* '(' ')' '*' '+' ',' '-' '.' '/' */ + /* 0x28 */ PX_I, PX_I, PX_WB,PX_I, PX_F, PX_0, PX_F, PX_I, + /* 0 1 2 3 4 5 6 7 */ + /* 0x30 */ PX_0, PX_M, PX_M, PX_M, PX_M, PX_M, PX_0, PX_0, + /* 8 9 : ; < = > ? */ + /* 0x38 */ PX_MS,PX_0, PX_0, PX_M, PX_US,PX_I, PX_DS,PX_I, + /* @ A B C D E F G */ + /* 0x40 */ PX_M, PX_M, PX_M, PX_M, PX_M, PX_M, PX_M, PX_M, + /* H I J K L M N O */ + /* 0x48 */ PX_M, PX_M, PX_M, PX_M, PX_M, PX_M, PX_M, PX_M, + /* P Q R S T U V W */ + /* 0x50 */ PX_M, PX_M, PX_M, PX_M, PX_M, PX_M, PX_M, PX_M, + /* X Y Z [ \ ] ^ _ */ + /* 0x58 */ PX_M, PX_M, PX_M, PX_I, PX_I, PX_I, PX_T, PX_MS, + /* ` a b c d e f g */ + /* 0x60 */ PX_0, PX_M, PX_M, PX_M, PX_M, PX_M, PX_M, PX_M, + /* h i j k l m n o */ + /* 0x68 */ PX_M, PX_M, PX_M, PX_M, PX_M, PX_M, PX_M, PX_M, + /* p q r s t u v w */ + /* 0x70 */ PX_M, PX_M, PX_M, PX_M, PX_M, PX_M, PX_M, PX_M, + /* x y z { | } ~ WALL */ + /* 0x78 */ PX_M, PX_M, PX_M, PX_WT,PX_0, PX_I, PX_I, PX_W, + /* old cralwj symbols */ + /* �� �s �E �� �� �� �� �� */ + /* 0x80 */ PX_D, PX_SS,PX_F, PX_MS,PX_MS,PX_MS,PX_D, PX_WT, + /* �t �� �� �� �� �� �� */ + /* 0x88 */ PX_SS,PX_W, PX_W, PX_W, PX_W, PX_LV, PX_I, PX_0, + /**/ + /* 0x90 144*/ PX_0, PX_0, PX_0, PX_0, PX_0, PX_0, PX_0, PX_0, + /* 0x98 152*/ PX_0, PX_0, PX_0, PX_0, PX_0, PX_0, PX_0, PX_0, + /* 0xa0 160*/ PX_0, PX_0, PX_0, PX_0, PX_0, PX_0, PX_0, PX_0, + /* 0xa8 168*/ PX_0, PX_0, PX_0, PX_0, PX_0, PX_0, PX_0, PX_0, + /* 0xb0 176*/ PX_WB,PX_W, PX_W, PX_0, PX_0, PX_0, PX_0, PX_0, + /* 0xb8 184*/ PX_0, PX_0, PX_0, PX_0, PX_0, PX_0, PX_0, PX_0, + /* 0xc0 192*/ PX_0, PX_0, PX_0, PX_0, PX_0, PX_0, PX_0, PX_0, + /* 0xc8 200*/ PX_0, PX_0, PX_0, PX_0, PX_0, PX_0, PX_0, PX_0, + /* 0xd0 208*/ PX_0, PX_0, PX_0, PX_0, PX_0, PX_0, PX_0, PX_0, + /* 0xd8 216*/ PX_0, PX_0, PX_0, PX_0, PX_MS, PX_0, PX_0, PX_0, + /* 0xe0 224*/ PX_0, PX_0, PX_0, PX_0, PX_0, PX_0, PX_0, PX_0, + /* 0xe8 232*/ PX_0, PX_0, PX_0, PX_0, PX_0, PX_0, PX_0, PX_MS, + /* 0xf0 240*/ PX_0, PX_0, PX_0, PX_0, PX_MS,PX_0, PX_0, PX_WT, + /* 0xf8 248*/ PX_0, PX_F, PX_F, PX_0, PX_0, PX_0, PX_D, PX_0 +}; + +int mouse_grid_x; +int mouse_grid_y; +bool mouse_in_dngn = false; + +void gui_set_mouse_view_pos(bool in_dngn, int cx, int cy) +{ + const coord_def& gc = view2grid(coord_def(cx,cy)); + mouse_grid_x = gc.x; + mouse_grid_y = gc.y; + ASSERT(!in_dngn || gc.x >= 0 && gc.y >= 0 && gc.x < GXM && gc.y < GYM); + + mouse_in_dngn = in_dngn; +} + +bool gui_get_mouse_grid_pos(coord_def &gc) +{ + if (mouse_in_dngn) + { + gc.x = mouse_grid_x; + gc.y = mouse_grid_y; + ASSERT(gc.x >= 0 && gc.y >= 0 && gc.x < GXM && gc.y < GYM); + } + + return mouse_in_dngn; +} + +int inv_idx = 0; +InvAction inv_action = INV_NUMACTIONS; + +void gui_set_mouse_inv(int idx, InvAction act) +{ + inv_idx = idx; + inv_action = act; +} + +void gui_get_mouse_inv(int &idx, InvAction &act) +{ + idx = inv_idx; + act = inv_action; +} + +int tile_idx_unseen_terrain(int x, int y, int what) +{ + const coord_def gc(x,y); + unsigned int feature = grd(gc); + + unsigned int grid_symbol; + unsigned short grid_color; + get_item_symbol(feature, &grid_symbol, &grid_color); + + if (feature == DNGN_SECRET_DOOR) + feature = (unsigned int)grid_secret_door_appearance(x, y); + + int t = tileidx_feature(feature); + if (t == TILE_ERROR || what == ' ') + t = tileidx_unseen(what, gc); + + t |= tile_unseen_flag(gc); + + return t; +} + +void GmapUpdate(int x, int y, int what, bool upd_tile) +{ + int c; + const coord_def gc(x,y); + unsigned int feature = grd(gc); + + unsigned int grid_symbol; + unsigned short grid_color; + get_item_symbol(feature, &grid_symbol, &grid_color); + + switch (what) + { + // In some cases (like smoke), update the gmap with the ground color + // instead. This keeps it prettier in the case of lava + smoke. + case '#': + c = gmap_col[grid_symbol & 0xff]; + break; + default: + c = gmap_col[what & 0xff]; + break; + } + + int oldc = gmap_data[x][y]; + gmap_data[x][y] = c; + + // NOTE: In the case of a magic mapping, we really want the + // map to update with the correct feature (stone instead of rock wall, + // fountains instead of TILE_ERROR). tileidx_unseen won't give that + // to us. However, we can't give the player all the information, + // since that might be cheating in some cases. This could be rewritten. + int t = tile_idx_unseen_terrain(x, y, what); + + if (c!=0 && c!= oldc && upd_tile) + { + if (c == PX_I || c == PX_M) + { + env.tile_bk_fg[x][y]= t; + if (env.tile_bk_bg[x][y] == 0) + env.tile_bk_bg[x][y] = tileidx_feature(DNGN_UNSEEN); + } + else + { + env.tile_bk_bg[x][y] = t; + } + } + else if (c==0) + { + // forget map + env.tile_bk_fg[x][y]=0; + env.tile_bk_bg[x][y]=t; + return; + } + + if (x < gmap_min_x) gmap_min_x = x; + else + if (x > gmap_max_x) gmap_max_x = x; + + if (y < gmap_min_y) gmap_min_y = y; + else + if (y > gmap_max_y) gmap_max_y = y; +} + +void GmapInit(bool upd_tile) +{ + int x, y; + gmap_min_x = gmap_max_x = you.x_pos -1; + gmap_min_y = gmap_max_y = you.y_pos -1; + + for (y = 0; y < GYM; y++) + { + for (x = 0; x < GXM; x++) + { + GmapUpdate(x, y, env.map[x][y].glyph(), upd_tile); + } + } +} + +void GmapDisplay(int linex, int liney) +{ + static unsigned char buf2[GXM*GYM]; + + int x,y; + int count=0; + int ox, oy; + + for (x = 0; x < GXM*GYM; x++) + { + buf2[x] = 0; + } + + ox = ( gmap_min_x + (GXM -1 - gmap_max_x) ) / 2; + oy = ( gmap_min_y + (GYM -1 - gmap_max_y) ) / 2; + count = ox + oy * GXM; + gmap_ox = ox - gmap_min_x; + gmap_oy = oy - gmap_min_y; + + for (y = gmap_min_y; y <= gmap_max_y; y++) + { + for (x = gmap_min_x; x <= gmap_max_x; x++) + { + if ( (count>=0)&&(countflag = true; + region_map->draw_data(buf2); +} + +/* initialize routines */ +static void do_layout() +{ +#define LAYER_NML 0 +#define LAYER_CRT 1 +#define LAYER_XMAP 2 + win_main->wx = win_main->wy = 10; + + int tm = region_crt->dx; + + if (UseDosChar) + win_main->placeRegion(region_xmap, LAYER_XMAP, 0, 0, tm, tm, tm, tm); + + RegionClass *lowest; + + // tile 2d mode + win_main->placeRegion(region_tile, LAYER_NML, 0, 0); + win_main->placeRegion(region_msg, LAYER_NML, region_tile, PLACE_BOTTOM, + tm, tm, tm, tm); + + int sx = std::max(region_msg->ex + region_msg->dx, region_tile->ex); + int sy = 0; + win_main->placeRegion(region_stat, LAYER_NML, sx, sy); + + win_main->placeRegion(region_map, LAYER_NML, region_stat, PLACE_BOTTOM); + + if (region_tip) + { + win_main->placeRegion(region_tip, LAYER_NML, region_map, PLACE_BOTTOM); + lowest = region_tip; + } + else + { + lowest = region_map; + } + + int item_x = (win_main->wx-2*tm) / TILE_X; + int item_y = (52 + item_x -1) / item_x; + + region_item2 -> resize(item_x, item_y, TILE_X, TILE_Y); + + // Update crt size appropriately, based on the window size. + int crt_pwx = win_main->wx; + int crt_wx = crt_pwx / region_crt->dx; + int crt_pwy = win_main->wy - 2*tm - item_y * region_item2->dy; + int crt_wy = crt_pwy / region_crt->dy; + region_crt->resize(crt_wx, crt_wy); + + win_main->placeRegion(region_crt, LAYER_CRT, 0, 0, tm, tm, tm, tm); + win_main->placeRegion (region_item2, LAYER_CRT, region_crt, PLACE_BOTTOM, + tm, tm, tm, tm); + + if (Options.show_items[0] != 0) + { + item_x = (win_main->wx - lowest->sx) / TILE_X; + item_y = (win_main->wy - lowest->ey) / TILE_Y; + RegionClass *r0 = lowest; + int place = PLACE_BOTTOM; + + int item_x2 = (win_main->wx - region_msg->ex) / TILE_X; + int item_y2 = (win_main->wy - region_msg->sy) / TILE_Y; + + if (item_x * item_y < item_x2 * item_y2 && + lowest->ey < region_msg->sy) + { + item_x = item_x2; + item_y = item_y2; + r0 = region_msg; + place = PLACE_RIGHT; + } + while(item_x * item_y < 40) item_y++; + region_item -> resize(item_x, item_y, TILE_X, TILE_Y); + win_main->placeRegion (region_item, LAYER_NML, r0, place); + } +} + +void libgui_init() +{ + int i; + int map_margin = 2; + + libgui_init_sys(); + + for(i=0;iox = winox; + win_main->oy = winoy; + + + region_crt = new TextRegionClass(crt_x, crt_y, 0, 0); + region_crt->id = REGION_CRT; + TextRegionClass::text_mode = region_crt; + + region_map = + new MapRegionClass(MAP_XMAX-map_margin*2, + MAP_YMAX-map_margin*2, + map_margin, map_margin, + false); + region_map->id = REGION_MAP; + region_map->dx = map_px; + region_map->dy = map_px; + + TileInit(); + +#ifdef WIN32TILES + TileInitWin(); +#endif + + if (Options.show_items[0] != 0) + { + // temporal size + region_item = new TileRegionClass(1, 1, TILE_X, TILE_Y); + region_item->id = REGION_INV1; + } + // temporal size + region_item2 = new TileRegionClass(1, 1, TILE_X, TILE_Y); + region_item2->id = REGION_INV2; + + region_tile = + new TileRegionClass(tile_dngn_x, tile_dngn_y, + TILE_UX_NORMAL, TILE_UY_NORMAL); + region_tile->id = REGION_DNGN; + +#if DEBUG_DIAGNOSTICS + // one more line for debug GPS + region_stat = new TextRegionClass(40, 17, 0, 0); +#else + region_stat = new TextRegionClass(40, 16, 0, 0); +#endif + region_stat->id = REGION_STAT; + region_msg = new TextRegionClass(msg_x, msg_y, 0, 0); + region_msg->id = REGION_MSG; + + if (UseDosChar) + { + region_xmap = new TextRegionClass(crt_x, crt_y, 0, 0); + region_xmap->id = REGION_XMAP; + } + +#ifdef WIN32TILES + region_crt->init_font(font_name, font_size); + region_stat->copy_font(region_crt); + region_msg->copy_font(region_crt); + + if (UseDosChar) + { + region_xmap->dos_char = true; + region_xmap->init_font(dos_font_name, dos_font_size); + } + +#elif defined(USE_X11) + region_tip = new TextRegionClass(region_stat->mx, 1, 0, 0); + region_tip->id = REGION_TIP; + + region_crt->init_font(font_name); + region_stat->init_font(font_name); + region_msg->init_font(font_name); + region_tip->init_font(font_name); + if (region_dngn) region_dngn->init_font(font_name); +#endif + + do_layout(); + + win_main->create((char*)(CRAWL " " VERSION)); + + region_map->init_backbuf(); + + region_tile -> init_backbuf(); + region_item2->init_backbuf(); + if (region_item) region_item->init_backbuf(); +} + +void libgui_shutdown() +{ + + if(TileImg) ImgDestroy(TileImg); + if(PlayerImg) ImgDestroy(PlayerImg); + if(WallImg) ImgDestroy(WallImg); + if(TileIsoImg) ImgDestroy(TileIsoImg); + + // do this before delete win_main + libgui_save_prefs(); + + std::vector::iterator r; + for (r = win_main->regions.begin();r != win_main->regions.end();r++) + { + RegionClass* pRegion = *r; + delete (pRegion); + } + + delete win_main; + + + libgui_shutdown_sys(); +} + +/*** Save, Load, and Edit window prefs ***/ +static void libgui_load_prefs() +{ + int i, mode; + FILE *fp; + char buf[256]; + char tagbuf[256]; + + // set default + for (mode = 0; mode < PREF_MODE_NUM; mode++) + { + for(i=0;idummy_idx; + if (p->type == 'I') + dummy_int[mode][idx] = *(int *)p->ptr; + else if (p->type == 'S') + strncpy(dummy_str[mode][idx], (char *)p->ptr, MAX_PREF_CHAR); + } + } + + const char *baseTxt = "wininit.txt"; + std::string winTxtString = datafile_path(baseTxt, true, true); + const char *winTxt = winTxtString.c_str()[0] == 0 ? + baseTxt : winTxtString.c_str(); + + if ( (fp = fopen(winTxt, "r")) != NULL ) + { + while(!feof(fp)) + { + fgets(buf, 250, fp); + i = 0; + while(buf[i] >= 32 && i< 120) i++; + buf[i] = 0; + + for(i=0;itagname); + if(strncmp(buf, tagbuf, strlen(tagbuf)) == 0) + { + char *dat = &buf[strlen(tagbuf)+1]; + if (p->type == 'I') + { + int val = atoi(dat); + if (val > p->max) val = p->max; + if (val < p->min) val = p->min; + dummy_int[mode][p->dummy_idx] = val; + if (mode == pref_mode) + *(int *)p->ptr = val; + } + if (p->type == 'S') + { + strncpy(dummy_str[mode][p->dummy_idx], dat, + MAX_PREF_CHAR); + if (mode == pref_mode) + strncpy((char *)p->ptr, dat, MAX_PREF_CHAR); + } + break; + }// tag match + } //mode + }//i + }// while + } +} + +static void libgui_save_prefs() +{ + int i, mode; + FILE *fp; + + winox = win_main->ox; + winoy = win_main->oy; +#ifdef WIN32TILES + windows_get_winpos(&winox, &winoy); +#endif + + for(i=0;idummy_idx; + if (p->type == 'I') + dummy_int[pref_mode][idx] = *(int *)p->ptr; + else if (p->type == 'S') + strncpy(dummy_str[pref_mode][idx], (char *)p->ptr, MAX_PREF_CHAR); + } + + const char *baseTxt = "wininit.txt"; + std::string winTxtString = datafile_path(baseTxt, false, true); + const char *winTxt = winTxtString.c_str()[0] == 0 ? + baseTxt : winTxtString.c_str(); + + if ( (fp = fopen(winTxt, "w")) != NULL ) + { + for (mode = 0; mode < PREF_MODE_NUM; mode++) + { + for(i=0;idummy_idx; + if (p->type == 'I') + fprintf(fp, "%s:%s=%d\n", pref_mode_name[mode], + p->tagname, dummy_int[mode][idx]); + if (p->type == 'S') + fprintf(fp, "%s:%s=%s\n", pref_mode_name[mode], + p->tagname, dummy_str[mode][idx]); + } + fprintf(fp, "\n"); + } + fclose(fp); + } +} + +static void draw_hgauge(int x, int y, int ofs, int region, int len, int col) +{ + int i; + gotoxy(x, y, region); + textcolor(col); + for (i=0; i < len; i++) + { + switch((i+ ofs) % 10) + { + case 0: cprintf("%c",'+');break; + case 4: cprintf("%c",'0' + (1+(i+ofs)/10)%10);break; + case 5: cprintf("%c",'0');break; + default: cprintf("%c",'-'); + } + } +} + +static void draw_vgauge(int x, int y, int ofs, int region, int len, int col) +{ + int i; + textcolor(col); + for (i=0; i < len; i++) + { + gotoxy(x, y+i, region); + cprintf("%02d", ofs+i); + } +} + +void edit_prefs() +{ + + int i; + int cur_pos = 0; + cursor_control cs(false); + bool need_draw_stat = true; + bool need_draw_msg = true; + + if (region_tip) + region_tip->clear(); + region_stat->clear(); + region_msg->clear(); + viewwindow(true, false); + + while(1) + { + bool upd_msg = false; + bool upd_dngn = false; + bool upd_crt = false; + bool upd_map = false; + bool need_resize = false; + int inc = 0; + + if (need_draw_msg) + { + textcolor(LIGHTGREY); + region_msg->clear(); + + textcolor(WHITE); + gotoxy (4, 4, GOTO_MSG); + cprintf("j, k, up, down : Select pref"); + gotoxy (4, 5, GOTO_MSG); + cprintf("h, l, left, right : Decrease/Increase"); + gotoxy (4, 6, GOTO_MSG); + cprintf("H, L : Dec/Inc by 10"); + need_draw_msg = false; + } + + if (need_draw_stat) + { + region_stat->clear(); + for(i=0; i"); + } + else + { + textcolor(LIGHTGREY); + cprintf(" "); + } + if (pref_data[i].type == 'I') + cprintf(" %s: %3d ", p->name, *(int *)p->ptr); + else + cprintf(" %s: %s", p->name, (char *)p->ptr); + } + textcolor(LIGHTGREY); + +#ifdef WIN32TILES + gotoxy(4, MAX_EDIT_PREFS+3, GOTO_STAT); + cprintf("FONT: %s %d",font_name, font_size); + if (UseDosChar) + { + gotoxy(4, MAX_EDIT_PREFS+4, GOTO_STAT); + cprintf("DOSFONT: %s %d", dos_font_name, dos_font_size); + } +#else + gotoxy(4, MAX_EDIT_PREFS+3, GOTO_STAT); + cprintf("FONT: %s",font_name); +#endif + + + int *dat = (int *)pref_data[cur_pos].ptr; +#define WHITEIF(x) (dat == &x)?0xf0:LIGHTGREY + + draw_hgauge(3, 1, 3, GOTO_MSG, msg_x-2, WHITEIF(msg_x)); + clear_to_end_of_line(); + draw_vgauge(1, 1, 1, GOTO_MSG, msg_y, WHITEIF(msg_y)); + need_draw_stat = false; + } + + int key = getch(); + + struct prefs *p = &pref_data[cur_pos]; + int *dat = (int *)p->ptr; + + if (key == 0x1b || key == '\r') break; + if (key == 'j' || key == CK_DOWN) + { + cur_pos++; + need_draw_stat = true; + } + if (key == 'k' || key == CK_UP) + { + cur_pos--; + need_draw_stat = true; + } + if (key == CK_LEFT) key = 'h'; + if (key == CK_RIGHT) key = 'l'; + + cur_pos = (cur_pos + MAX_EDIT_PREFS) % MAX_EDIT_PREFS; + + switch(key) + { + case 'l': inc=1; break; + case 'L': inc=10; break; + case 'h': inc=-1; break; + case 'H': inc=-10; break; + } + + int crt_x_old = crt_x; + int crt_y_old = crt_y; + int map_px_old = map_px; + int msg_x_old = msg_x; + int msg_y_old = msg_y; + int dngn_x_old = dngn_x; + int dngn_y_old = dngn_y; + + if ( (p->type == 'I') && inc != 0) + { + if (dat == &dngn_x || dat == &dngn_y ) + { + if (inc==1) inc=2; + if (inc==-1) inc=-2; + } + int olddat = *dat; + (*dat)+= inc; + + if (*dat > p->max) *dat = p->max; + if (*dat < p->min) *dat = p->min; + + if (olddat == *dat) continue; + need_resize = true; + }// changed + + if (need_resize) + { + need_draw_stat = need_draw_msg = true; + + // crt screen layouts + + // resize msg? + if (msg_x != msg_x_old || msg_y != msg_y_old) + { + upd_msg = true; + region_msg->resize(msg_x, msg_y); + } + // resize crt? + if (crt_x != crt_x_old || crt_y != crt_y_old) + { + upd_crt = true; + region_crt->resize(crt_x, crt_y); + } + // resize map? + if (map_px != map_px_old) + { + upd_map = true; + region_map->resize( 0, 0, map_px, map_px); + } + + // resize dngn tile screen? + if (dngn_x != dngn_x_old || dngn_y != dngn_y_old) + { + clrscr(); + upd_dngn = true; + tile_dngn_x = dngn_x; + tile_dngn_y = dngn_y; + region_tile->resize(dngn_x, dngn_y, 0, 0); + } + + do_layout(); + win_main->resize(); + win_main->clear(); + + // Now screens are all black + + if (upd_map) + region_map->resize_backbuf(); + if (upd_dngn) + { + region_tile -> resize_backbuf(); + force_redraw_tile = true; + TileResizeScreen(dngn_x, dngn_y); + } + if (region_item) + region_item->resize_backbuf(); + if (region_item2) + region_item2->resize_backbuf(); + force_redraw_inv = true; + tile_draw_inv(-1, REGION_INV1); + + region_map->force_redraw = true; + viewwindow(true, true); + region_tile->redraw(); + region_item->redraw(); + }// need resize + }//while + clrscr(); + redraw_screen(); + mpr("Done."); +} + +// Tiptext help info +typedef struct tip_info +{ + int sx; + int ex; + int sy; + int ey; + const char *tiptext; + const char *tipfilename; +} tip_info; + +static int old_tip_idx = -1; + +void tip_grid(int gx, int gy, bool do_null = true, int minimap=0) +{ + mesclr(); + const coord_def gc(gx,gy); + terse_describe_square(gc); +} + +int tile_cursor_x = -1; +int tile_cursor_y = -1; +int tile_cursor_flag=0; + +void tile_place_cursor(int x, int y, bool display) +{ + if (tile_cursor_x != -1) + { + // erase old cursor + TileDrawCursor(tile_cursor_x, tile_cursor_y, tile_cursor_flag); + } + if (!display) + { + tile_cursor_x = -1; + return; + } + + int new_flag = TILE_FLAG_CURSOR1; + const coord_def gc = view2grid(coord_def(x+1, y+1)); + if (gc.x < 0 || gc.y < 0 || gc.x >= GXM || gc.y >= GYM) + { + // off the dungeon... + tile_cursor_x = -1; + return; + } + else if (!map_bounds(gc)) + { + new_flag = TILE_FLAG_CURSOR2; + } + else + { + unsigned char ch = env.map[gc.x][gc.y].glyph() & 0xff; + if (ch==0 || ch==' ' || char_is_wall(ch)) + new_flag = TILE_FLAG_CURSOR2; + } + tile_cursor_x = x; + tile_cursor_y = y; + tile_cursor_flag = TileDrawCursor(x, y, new_flag); +} + +int convert_cursor_pos(int mx, int my, int *cx, int *cy) +{ + std::vector ::iterator r; + WinClass *w = win_main; + int id = REGION_NONE; + int x, y; + int mx0 = 0; + + for (r = w->regions.begin();r != w->regions.end();r++) + { + if (! (*r)->is_active()) continue; + if( (*r)->mouse_pos(mx, my, cx, cy)) + { + id = (*r)->id; + mx0 = (*r)->mx; + break; + } + } + + x = *cx; + y = *cy; + +/********************************************/ + if(id == REGION_TDNGN) + { + x--; + if (!in_viewport_bounds(x+1,y+1)) return REGION_NONE; + } + + if (id == REGION_MAP) + { + x = x - gmap_ox + region_map->x_margin + 1; + y = y - gmap_oy + region_map->y_margin + 1; + } + + if (id == REGION_INV1 || id == REGION_INV2) + { + x = x + y * mx0; + y = 0; + } + + if (id == REGION_DNGN) + { + // Out of LOS range + if (!in_viewport_bounds(x+1,y+1)) + return REGION_NONE; + } + + *cx = x; + *cy = y; + + return id; +} + +static int handle_mouse_motion(int mouse_x, int mouse_y, bool init) +{ + int cx = -1; + int cy = -1; + int mode = 0; + + static int oldcx = -1; + static int oldcy = -1; + static int oldmode = -1; + static int olditem = -1; + + if (init) + { + oldcx = -1; + oldcy = -1; + oldmode = -1; + old_tip_idx = -1; + olditem = -1; + return 0; + } + + switch(mouse_mode) + { + case MOUSE_MODE_NORMAL: + case MOUSE_MODE_MORE: + case MOUSE_MODE_MACRO: + return 0; + break; + } + + if (mouse_x < 0) + { + mode = 0; + oldcx = oldcy = -10; + } + else + mode = convert_cursor_pos(mouse_x, mouse_y, &cx, &cy); + if (oldcx == cx && oldcy == cy && oldmode == mode) return 0; + + // erase old cursor + if ( oldmode == REGION_DNGN && mode != oldmode) + { + oldcx = -10; + //_setcursortype(0); + } + + if (olditem != -1) + { + oldcx = -10; + TileMoveInvCursor(-1); + olditem = -1; + } + + if ( oldmode == REGION_DNGN && mode != oldmode) + { + oldcx = -10; + tile_place_cursor(0, 0, false); + } + + if (toggle_telescope && mode != REGION_MAP) + { + TileDrawDungeon(NULL); + toggle_telescope = false; + } + + bool valid_tip_region = (mode == REGION_MAP || mode == REGION_DNGN || + mode == REGION_INV1 || mode == REGION_INV2 || mode == REGION_MSG); + + if (valid_tip_region && mode != oldmode) + { + update_tip_text(""); + } + + if (toggle_telescope && mode == REGION_MAP) + { + oldmode = mode; + oldcx = cx; + oldcy = cy; + tip_grid(cx-1, cy-1, 1); + TileDrawFarDungeon(cx-1, cy-1); + return 0; + } + + if (mode == REGION_INV1 || mode == REGION_INV2) + { + oldcx = cx; + oldcy = cy; + oldmode = mode; + int ix = TileInvIdx(cx); + std::string desc; + if (ix != -1) + { + bool display_actions = mode == REGION_INV1; + + if (itemlist_iflag[cx] & TILEI_FLAG_FLOOR) + { + if (itemlist_key[cx]) + { + desc = itemlist_key[cx]; + desc += " - "; + } + desc += mitm[ix].name(DESC_NOCAP_A); + if (display_actions) + desc += EOL "[L-Click] *Pickup(g)"; + } + else + { + desc = you.inv[ix].name(DESC_INVENTORY_EQUIP); + + if (display_actions) + { + desc += EOL "[L-Click] "; + int type = you.inv[ix].base_type; + + if (itemlist_iflag[cx] & TILEI_FLAG_EQUIP) + type += 18; + + switch (type) + { + case OBJ_JEWELLERY + 18: + desc += "*(R)emove"; + break; + case OBJ_WEAPONS: + case OBJ_STAVES: + desc += "*(w)ield"; + break; + case OBJ_MISSILES: + desc += "*(t)hrow"; + break; + case OBJ_WANDS: + desc += "*(z)ap"; + break; + case OBJ_SCROLLS: + case OBJ_BOOKS: + desc += "*(r)ead"; + break; + case OBJ_JEWELLERY: + desc += "*(P)ut on"; + break; + case OBJ_POTIONS: + desc += "*(q)uaff"; + break; + default: + desc += "*Use it"; + } + + desc += EOL "[R-Click] Info"; + desc += EOL "[Shift-L-Click] *(d)rop"; + } + } + update_tip_text(desc.c_str()); + itemlist_flag = mode; + TileMoveInvCursor(cx); + olditem = cx; + } + else + update_tip_text(""); + + return 0; + } + + if (mouse_mode == MOUSE_MODE_TARGET || + mouse_mode == MOUSE_MODE_TARGET_DIR) + { + if (mode == REGION_DNGN || mode == REGION_TDNGN) + { + oldcx = cx; + oldcy = cy; + oldmode = mode; + + gui_set_mouse_view_pos(true, cx+1, cy+1); + + return CK_MOUSE_MOVE; + } + } + + gui_set_mouse_view_pos(false, -1, -1); + + if (mode==REGION_TDNGN || mode==REGION_DNGN) + { + oldcx = cx; + oldcy = cy; + oldmode = mode; + + if(mode==REGION_DNGN) + tile_place_cursor(cx, cy, true); + + if(mode==REGION_TDNGN) + { + gotoxy(cx+2, cy+1, GOTO_DNGN); + } + + int gx = view2gridX(cx) + 1; + int gy = view2gridY(cy) + 1; + tip_grid(gx, gy); + + return 0; + } + + if (mode == REGION_MAP && mouse_mode == MOUSE_MODE_COMMAND) + { + if (oldmode != REGION_MAP) + { + update_tip_text("[L-Click] Travel / [R-Click] View"); + } + else + { + tip_grid(cx - 1, cy - 1, false, 1); + } + + oldmode = mode; + oldcx = cx; + oldcy = cy; + + return 0; + } + + if (mode == REGION_MSG && mouse_mode == MOUSE_MODE_COMMAND) + { + if (oldmode != REGION_MSG) + update_tip_text("[L-Click] Browse message history"); + oldmode = mode; + oldcx = cx; + oldcy = cy; + return 0; + } + +#if 0 + if (mode == REGION_STAT && mouse_mode == MOUSE_MODE_COMMAND) + { + oldcx = cx; + oldcy = cy; + oldmode = mode; + + int i = 0; + while( Tips[i].tiptext != NULL) + { + if (cx >= Tips[i].sx && cx <= Tips[i].ex && + cy >= Tips[i].sy && cy <= Tips[i].ey) + break; + i++; + } + if (Tips[i].tiptext == NULL) i = -1; + + if (i == old_tip_idx) return 0; + + if (old_tip_idx != -1) + hilite_tip_text(old_tip_idx, false); + + old_tip_idx = i; + if (i != -1) + { + hilite_tip_text(i, true); + update_tip_text((char *)Tips[i].tiptext); + } + else + update_tip_text(""); + return 0; + } +#endif + return 0; +} +static int handle_mouse_button(int mx, int my, int button, + bool shift, bool ctrl) +{ + int dir; + const int dx[9]={-1,0,1, -1,0,1, -1,0,1}; + const int dy[9]={1,1,1,0,0,0,-1,-1,-1}; + + const int cmd_n[9]={'b', 'j', 'n', 'h', '.', 'l', 'y', 'k', 'u'}; + const int cmd_s[9]={'B', 'J', 'N', 'H', '5', 'L', 'Y', 'K', 'U'}; + + const int cmd_c[9]={ + CONTROL('B'), CONTROL('J'), CONTROL('N'), CONTROL('H'), + 'X', CONTROL('L'), CONTROL('Y'), CONTROL('K'), CONTROL('U'), + }; + const int cmd_dir[9]={'1','2','3','4','5','6','7','8','9'}; + + int trig = CK_MOUSE_B1; + if (button == 2) trig = CK_MOUSE_B2; + if (button == 3) trig = CK_MOUSE_B3; + if (button == 4) trig = CK_MOUSE_B4; + if (button == 5) trig = CK_MOUSE_B5; + if (shift) trig |= 512; + if (ctrl) trig |= 1024; + + switch(mouse_mode) + { + case MOUSE_MODE_NORMAL: + return trig; + break; + case MOUSE_MODE_MORE: + return '\r'; + break; + } + + int cx,cy; + int mode; + static int oldcx = -1; + static int oldcy = -1; + + static bool enable_wheel = true; + static int old_button = 0; + static int old_hp = 0; + + mode = convert_cursor_pos(mx, my, &cx, &cy); + + // prevent accidental wheel slip and subsequent char death + if (mouse_mode==MOUSE_MODE_COMMAND && (button == 4 || button == 5) + && button == old_button && oldcx == cx && oldcy == cy) + { + if(!enable_wheel) return 0; + if (you.hp < old_hp) + { + mpr("Wheel move aborted (rotate opposite to resume)"); + enable_wheel = false; + return 0; + } + } + old_hp = you.hp; + enable_wheel = true; + old_button = button; + oldcx = cx; + oldcy = cy; + + if (toggle_telescope) + { + // quit telescope mode + TileDrawDungeon(NULL); + toggle_telescope = false; + } + + // item clicked + if (mode == REGION_INV1 || mode == REGION_INV2) + { + int ix = TileInvIdx(cx); + + if (ix != -1) + { + if (button == 2) + { + // describe item + if (itemlist_iflag[cx] & TILEI_FLAG_FLOOR) + gui_set_mouse_inv(-ix, INV_VIEW); + else + gui_set_mouse_inv(ix, INV_VIEW); + TileMoveInvCursor(-1); + return CK_MOUSE_B2ITEM; + } + else if(button == 1) + { + // Floor item + if (itemlist_iflag[cx] & TILEI_FLAG_FLOOR) + { + // try pick up one item + if (button != 1) return 0; + gui_set_mouse_inv(ix, INV_PICKUP); + return CK_MOUSE_B1ITEM; + } + // use item + if (shift) + gui_set_mouse_inv(ix, INV_DROP); + else + gui_set_mouse_inv(ix, INV_USE); + return CK_MOUSE_B1ITEM; + } + } + return trig; + } + + if (mode == REGION_MSG && mouse_mode == MOUSE_MODE_COMMAND) + { + return CONTROL('P'); + } + +#if 0 + if (mode == REGION_STAT && mouse_mode == MOUSE_MODE_COMMAND) + { + int i = 0; + while( Tips[i].tiptext != NULL) + { + if (cx >= Tips[i].sx && cx <= Tips[i].ex && + cy >= Tips[i].sy && cy <= Tips[i].ey) + break; + i++; + } + + if (Tips[i].tipfilename) + { + char fname[256]; + snprintf(fname, 250, "tips_e/%s.txt", Tips[i].tipfilename); + ViewTextFile(fname); + redraw_screen(); + return CK_MOUSE_DONE; + } + return 0; + } +#endif + + if((mouse_mode==MOUSE_MODE_COMMAND || mouse_mode == MOUSE_MODE_MACRO) && + (mode == REGION_DNGN || mode == REGION_TDNGN)) + { + if (button == 2) + { + // describe yourself (char info) + if (cx == DCX && cy == DCY) return '%'; + + // trigger + if (mouse_mode == MOUSE_MODE_MACRO) + return trig; + + // Right Click: try to describe grid + // otherwise return trigger key + if (!in_los_bounds(cx+1,cy+1)) + return CK_MOUSE_B2; + const coord_def ep = view2show(coord_def(cx, cy)); + if (env.show(ep) == 0) + return trig; + + int mid = mgrd[cx][cy]; + if (mid == NON_MONSTER || !player_monster_visible( &menv[mid] )) + { + return trig; + } + + describe_monsters( menv[ mid ] ); + redraw_screen(); + mesclr( true ); + return CK_MOUSE_DONE; + } + + // button = 1 or 4, 5 + // first, check if 3x3 grid around @ is clicked. + // if so, return equivalent numpad key + int adir = -1; + for(dir=0;dir<9;dir++) + { + if( DCX+dx[dir] == cx && DCY+dy[dir]==cy) + { + adir = dir; + break; + } + } + + if (adir != -1) + { + if (shift) + return cmd_s[adir]; + else if (ctrl) + return cmd_c[adir]; + else return cmd_n[dir]; + } + if (button != 1) return trig; + + // otherwise travel to that grid + const coord_def gc = view2grid(coord_def(cx+1, cy+1)); + if (!map_bounds(gc)) return 0; + + // Activate travel + start_travel(gc.x, gc.y); + return CK_MOUSE_DONE; + } + + if(mouse_mode==MOUSE_MODE_COMMAND && mode == REGION_MAP) + { + // begin telescope mode + if (button == 2) + { + toggle_telescope = true; + StoreDungeonView(NULL); + TileDrawFarDungeon(cx-1,cy-1); + return 0; + } + + if (button != 1) return trig; + + // L-click: try to travel to the grid + const coord_def gc(cx-1, cy-1); + if (!map_bounds(gc)) return 0; + + // Activate travel + start_travel(gc.x, gc.y); + return CK_MOUSE_DONE; + } + + // target selection + if((mouse_mode==MOUSE_MODE_TARGET || mouse_mode==MOUSE_MODE_TARGET_DIR) + && button == 1 && (mode == REGION_DNGN || mode == REGION_TDNGN)) + { + gui_set_mouse_view_pos(true, cx+1, cy+1); + return CK_MOUSE_CLICK; + } + + gui_set_mouse_view_pos(false, 0, 0); + + if(mouse_mode==MOUSE_MODE_TARGET_DIR && button == 1 && + (mode == REGION_DNGN || mode == REGION_TDNGN)) + { + if (cx < DCX-1 || cy < DCY-1 || cx > DCX+1 || cy > DCY+1) return 0; + for(dir=0;dir<9;dir++) + { + if( DCX+dx[dir] == cx && DCY+dy[dir]==cy) + { + return cmd_dir[dir]; + } + } + return 0; + } + + return trig; +} + +static int handle_mouse_unbutton(int mx, int my, int button) +{ + if (toggle_telescope) + { + TileDrawDungeon(NULL); + } + + toggle_telescope = false; + return 0; +} + +int getch_ck() +{ + int etype = 0; + int x1,y1,x2,y2; + int key; + bool sh, ct; + int k; + + while(1) + { + k = 0; + GetNextEvent(&etype, &key, &sh, &ct, &x1, &y1, &x2, &y2); + switch(etype) + { + case EV_BUTTON: + k = handle_mouse_button(x1, y1, key, sh, ct); + break; + + case EV_MOVE: + k = handle_mouse_motion(x1, y1, false); + break; + + case EV_UNBUTTON: + k = handle_mouse_unbutton(x1, y1, key); + break; + + case EV_KEYIN: + k = key; + break; + + default: + break; + } // switch + + if (k != 0) break; + }/*while*/ + + return k; +} + +int getch() +{ + static int ck_tr[] = + { + 'k', 'j', 'h', 'l', '.', 'y', 'b', '.', 'u', 'n', + 'K', 'J', 'H', 'L', '5', 'Y', 'B', '5', 'U', 'N', + 11, 10, 8, 12, '0', 25, 2, 'C', 21, 14 + }; + + int keyin = getch_ck(); + if (keyin >= CK_UP && keyin <= CK_CTRL_PGDN) + return ck_tr[ keyin - CK_UP ]; + if (keyin == CK_DELETE) + return '.'; + return keyin; +} + +int m_getch() +{ + return getch(); +} + +void set_mouse_enabled(bool enabled) +{ + crawl_state.mouse_enabled = enabled; +} + +void mouse_set_mode(int mode) +{ + mouse_mode = mode; + // init cursor etc + handle_mouse_motion(0, 0, true); +} + +int mouse_get_mode() +{ + return mouse_mode; +} + +void gui_init_view_params(coord_def &termsz, coord_def &viewsz, + coord_def &msgp, coord_def &msgsz, coord_def &hudp, coord_def &hudsz) +{ + // TODO enne - set these other params too? + msgsz.x = msg_x; + msgsz.y = msg_y; +} + +void lock_region(int r) +{ + if (r >= 0 && r < NUM_REGIONS) + region_lock[r] = true; +} + +void unlock_region(int r) +{ + if (r >= 0 && r < NUM_REGIONS) + region_lock[r] = false; +} + +/* + * Wrapper + */ + +void clrscr() +{ + win_main->clear(); + TextRegionClass::cursor_region = NULL; + + // clear Text regions + if (!region_lock[REGION_CRT]) + region_crt->clear(); + if (region_msg && !region_lock[REGION_MSG]) + region_msg->clear(); + if (region_stat && !region_lock[REGION_STAT]) + region_stat->clear(); + if (region_dngn && !region_lock[REGION_TDNGN]) + region_dngn->clear(); + if (region_tip && !region_lock[REGION_TIP]) + region_tip->clear(); + + // Hack: Do not erase the backbuffer. Instead just hide it. + if (region_map) + { + if(region_lock[REGION_MAP]) + region_map->redraw(); + else + region_map->flag = false; + } + if (region_item) + { + if (region_lock[REGION_INV1]) + region_item->redraw(); + else + region_item->flag = false; + } + if (region_item2) + { + + if (region_lock[REGION_INV2]) + region_item2->redraw(); + else + { + TileClearInv(REGION_INV2); + region_item2->flag = false; + } + } + + gotoxy(1, 1); +} + +void putch(unsigned char chr) +{ + // object's method + TextRegionClass::text_mode->putch(chr); +} + +void putwch(unsigned chr) +{ + // No unicode support. + putch(static_cast(chr)); +} + +void writeWChar(unsigned char *ch) +{ + // object's method + TextRegionClass::text_mode->writeWChar(ch); +} + +void clear_to_end_of_line() +{ + // object's method + TextRegionClass::text_mode->clear_to_end_of_line(); +} + +void clear_to_end_of_screen() +{ + // object's method + TextRegionClass::text_mode->clear_to_end_of_screen(); +} + +void get_input_line_gui(char *const buff, int len) +{ + int y, x; + int k = 0; + int prev = 0; + int done = 0; + int kin; + TextRegionClass *r = TextRegionClass::text_mode; + + static char last[128]; + static int lastk = 0; + + if(!r->flag)return; + + /* Locate the cursor */ + x = wherex(); + y = wherey(); + + /* Paranoia -- check len */ + if (len < 1) len = 1; + + /* Restrict the length */ + if (x + len > r->mx) len = r->mx - x; + if (len > 40) len = 40; + + /* Paranoia -- Clip the default entry */ + buff[len] = '\0'; + buff[0] = '\0'; + + r->gotoxy(x, y); + putch('_'); + + /* Process input */ + while (!done) + { + /* Get a key */ + kin = getch_ck(); + + /* Analyze the key */ + switch (kin) + { + case 0x1B: + k = 0; + done = 1; + break; + + case '\n': + case '\r': + k = strlen(buff); + done = 1; + lastk = k; + strncpy(last, buff, k); + break; + + case CK_UP: // history + if (lastk != 0) + { + k = lastk; + strncpy(buff, last, k); + } + break; + + case 0x7F: + case '\010': + k = prev; + break; + + // Escape conversion. (for ^H, etc) + case CONTROL('V'): + kin = getch(); + // fallthrough + + default: + { + if (k < len && + ( + isprint(kin) + || (kin >= CONTROL('A') && kin <= CONTROL('Z')) + || (kin >= 0x80 && kin <=0xff) + ) + ) + buff[k++] = kin; + break; + } + + } + /* Terminate */ + buff[k] = '\0'; + + /* Update the entry */ + r->gotoxy(x, y); + int i; + + //addstr(buff); + for(i=0;i=0x80) + { + if (buff[i+1]==0) break; + writeWChar((unsigned char *)&buff[i]); + i++; + } + else + if (c >= CONTROL('A') && c<= CONTROL('Z')) + { + putch('^'); + putch(c + 'A' - 1); + } + else + putch(c); + } + r->addstr((char *)"_ "); + r->gotoxy(x+k, y); + }/* while */ +} + +void cprintf(const char *format,...) +{ + char buffer[2048]; // One full screen if no control seq... + va_list argp; + va_start(argp, format); + vsprintf(buffer, format, argp); + va_end(argp); + // object's method + TextRegionClass::text_mode->addstr(buffer); + TextRegionClass::text_mode->make_active(); +} + +void textcolor(int color) +{ + TextRegionClass::textcolor(color); +} + +void textbackground(int bg) +{ + TextRegionClass::textbackground(bg); +} + +void gotoxy(int x, int y, int region) +{ + if (region == GOTO_LAST) + { + // nothing + } + else if (region == GOTO_CRT) + TextRegionClass::text_mode = region_crt; + else if (region == GOTO_MSG) + TextRegionClass::text_mode = region_msg; + else if (region == GOTO_STAT) + TextRegionClass::text_mode = region_stat; + + TextRegionClass::text_mode->flag = true; + TextRegionClass::gotoxy(x, y); +} + +void _setcursortype(int curstype) +{ + TextRegionClass::_setcursortype(curstype); +} + +void enable_smart_cursor(bool cursor) +{ + gui_smart_cursor = cursor; +} + +bool is_smart_cursor_enabled() +{ + return (gui_smart_cursor); +} + +void set_cursor_enabled(bool enabled) +{ + if (gui_smart_cursor) return; + if (enabled) TextRegionClass::_setcursortype(1); + else TextRegionClass::_setcursortype(0); +} + +bool is_cursor_enabled() +{ + if (TextRegionClass::cursor_flag) return true; + return false; +} + +int wherex() +{ + return TextRegionClass::wherex(); +} + +int wherey() +{ + return TextRegionClass::wherey(); +} + +int get_number_of_lines() +{ +#ifdef USE_X11 + // Lie about the number of lines so that we can reserve the + // bottom one for tooltips... + return region_crt->my - 1; +#else + return region_crt->my; +#endif +} + +int get_number_of_cols() +{ + return std::min(region_crt->mx, region_msg->mx); +} + +void message_out(int which_line, int colour, const char *s, int firstcol, + bool newline) +{ + if (!firstcol) + firstcol = Options.delay_message_clear ? 2 : 1; + + gotoxy(firstcol, which_line + 1, GOTO_MSG); + textcolor(colour); + + cprintf("%s", s); + + if (newline && which_line == crawl_view.msgsz.y - 1) + region_msg->scroll(); +} + +void clear_message_window() +{ + region_msg->clear(); +} + +void put_colour_ch(int colour, unsigned ch) +{ + textcolor(colour); + putwch(ch); +} + +void puttext(int sx, int sy, int ex, int ey, unsigned char *buf, bool mono, + int where) +{ + TextRegionClass *r = (where == 1) ?region_crt:region_dngn; + + if (where==1 && UseDosChar) r=region_xmap; + + int xx, yy; + unsigned char *ptr = buf; + //gotoxy(1, 1, GOTO_CRT); + for(yy= sy-1; yy<= ey-1; yy++) + { + unsigned char *c = &(r->cbuf[yy*(r->mx)+sx-1]); + unsigned char *a = &(r->abuf[yy*(r->mx)+sx-1]); + for(xx= sx-1; xx<= ex-1; xx++) + { + *c = *ptr; + if (*c==0) *c=32; +#if 0 //deb + if (*c==177) *c=2; + if (*c==176) *c=2; + if (*c==249) *c=31; +#endif + ptr++; + + if (mono) + { + *a = WHITE; + } + else + { + *a = *ptr; + ptr++; + } + c++; + a++; + } + } + r->make_active(); + r->redraw(sx-1, sy-1, ex-1, ey-1); +} + +void ViewTextFile(const char *name) +{ + FILE *fp = fopen(name, "r"); + int max = get_number_of_lines(); + + // Hack +#define MAXTEXTLINES 100 + +#define DELIMITER_END "-------------------------------------------------------------------------------" +#define DELIMITER_MORE "...(more)... " + unsigned char buf[80*MAXTEXTLINES], buf2[84]; + int nlines = 0; + int cline = 0; + int i; + + if (!fp) + { + mpr("Couldn't open file."); + return; + } + + for (i=0; i<80*MAXTEXTLINES; i++) buf[i] = ' '; + + while(nlines= nlines) + cprintf(DELIMITER_END); + else + cprintf(DELIMITER_MORE); + + gotoxy(14, max); + cprintf("[j/k/+/-/SPACE/b: scroll q/ESC/RETURN: exit]"); + mouse_set_mode(MOUSE_MODE_MORE); + int key = getch(); + mouse_set_mode(MOUSE_MODE_NORMAL); + if (key == 'q' || key == ESCAPE || key =='\r') break; + if (key == '-' || key == 'b') cline -= max-2; + if (key == 'k') cline --; + if (key == '+' || key == ' ') cline += max-2; + if (key == 'j') cline ++; + if (key == CK_MOUSE_B4) cline--; + if (key == CK_MOUSE_B5) cline++; + + if (cline + max-2 > nlines) cline = nlines-max + 2; + if (cline < 0) cline = 0; + } +} + +void window(int x1, int y1, int x2, int y2) +{ +} diff --git a/crawl-ref/source/libgui.h b/crawl-ref/source/libgui.h new file mode 100644 index 0000000000..6e42ae0bae --- /dev/null +++ b/crawl-ref/source/libgui.h @@ -0,0 +1,164 @@ +#ifndef LIBGUI_H +#define LIBGUI_H +#ifdef USE_TILE + +#ifdef USE_X11 + #include + #include +#elif defined(WINDOWS) + #include + // windows.h defines 'near' as an empty string for compatibility. + // This breaks the use of that as a variable name. Urgh. + #ifdef near + #undef near + #endif + #include +#endif + +#include "defines.h" + +typedef unsigned int screen_buffer_t; + +void libgui_init(); +void libgui_shutdown(); + +void edit_prefs(); +/* *********************************************************************** + Minimap related + * called from: misc view spells2 + * *********************************************************************** */ +void GmapInit(bool upd_tile); +void GmapDisplay(int linex, int liney); +void GmapUpdate(int x, int y, int what, bool upd_tile = true); + +//dungeon display size +extern int tile_dngn_x; +extern int tile_dngn_y; + +void set_mouse_enabled(bool enabled); + +// mouse ops +// set mouse op mode +void mouse_set_mode(int mode); +// get mouse mode +int mouse_get_mode(); + +class mouse_control +{ +public: + mouse_control(int mode) + { + oldmode = mouse_get_mode(); + mouse_set_mode(mode); + } + + ~mouse_control() + { + mouse_set_mode(oldmode); + } +private: + int oldmode; +}; + +class coord_def; + +void gui_init_view_params(coord_def &termsz, coord_def &viewsz, + coord_def &msgp, coord_def &msgsz, coord_def &hudp, coord_def &hudsz); + +// If mouse on dungeon map, returns true and sets gc. +// Otherwise, it just returns false. +bool gui_get_mouse_grid_pos(coord_def &gc); + +enum InvAction +{ + INV_DROP, + INV_USE, + INV_PICKUP, + INV_VIEW, + INV_SELECT, + INV_NUMACTIONS +}; + +void gui_set_mouse_inv(int idx, InvAction act); +void gui_get_mouse_inv(int &idx, InvAction &act); + +void tile_place_cursor(int x, int y, bool display); + +void lock_region(int r); +void unlock_region(int r); + +enum ScreenRegion +{ + REGION_NONE, + REGION_CRT, + REGION_STAT, + REGION_MSG, + REGION_MAP, + REGION_DNGN, + REGION_TDNGN, + REGION_INV1, + REGION_INV2, + REGION_XMAP, + REGION_TIP, + NUM_REGIONS +}; + +/* text display */ +void clrscr(void); +void textcolor(int color); +void gotoxy(int x, int y, int region = GOTO_CRT); +void message_out(int mline, int colour, const char *str, int firstcol = 0, + bool newline = true); +void clear_message_window(); +int wherex(); +int wherey(); +void cprintf(const char *format,...); +void clear_to_end_of_line(void); +void clear_to_end_of_screen(void); +int get_number_of_lines(void); +int get_number_of_cols(void); +void get_input_line_gui(char *const buff, int len); +void _setcursortype(int curstype); +void textbackground(int bg); +void textcolor(int col); +void putch(unsigned char chr); +void putwch(unsigned chr); +void put_colour_ch(int colour, unsigned ch); +void writeWChar(unsigned char *ch); + +void puttext(int x, int y, int lx, int ly, unsigned char *buf, + bool mono = false, int where = 0); +void ViewTextFile(const char *name); + +#define textattr(x) textcolor(x) +void set_cursor_enabled(bool enabled); +bool is_cursor_enabled(); +void enable_smart_cursor(bool); +bool is_smart_cursor_enabled(); + +#ifdef USE_X11 +char *strlwr(char *str); // non-unix +int itoa(int value, char *strptr, int radix); // non-unix +int stricmp(const char *str1, const char *str2); // non-unix +#endif + +void delay(unsigned long time); +int kbhit(void); +void window(int x1, int y1, int x2, int y2); +void update_screen(void); +int getch(); +int getch_ck(); + +// types of events +#define EV_KEYIN 1 +#define EV_MOVE 2 +#define EV_BUTTON 3 +#define EV_UNBUTTON 4 + +#define _NORMALCURSOR 1 +#define _NOCURSOR 0 + +#define textcolor_cake(col) textcolor((col)<<4 | (col)) + +#endif // USE_TILE +#endif // LIBGUI_H diff --git a/crawl-ref/source/libunix.cc b/crawl-ref/source/libunix.cc index ba28a4039c..a2f1cc2fbc 100644 --- a/crawl-ref/source/libunix.cc +++ b/crawl-ref/source/libunix.cc @@ -855,7 +855,7 @@ void textbackground(int col) } -int gotoxy(int x, int y) +int gotoxy_sys(int x, int y) { return (move(y - 1, x - 1)); } diff --git a/crawl-ref/source/libunix.h b/crawl-ref/source/libunix.h index b1c5bbb81d..1f834af44f 100644 --- a/crawl-ref/source/libunix.h +++ b/crawl-ref/source/libunix.h @@ -1,6 +1,8 @@ #ifndef LIBUNIX_H #define LIBUNIX_H +#ifndef USE_TILE + // Some replacement routines missing in gcc #ifndef O_BINARY @@ -25,7 +27,7 @@ int get_number_of_cols(); int getch_ck(void); int clrscr(void); int cprintf(const char *format,...); -int gotoxy(int x, int y); +int gotoxy_sys(int x, int y); void fakecursorxy(int x, int y); int itoa(int value, char *strptr, int radix); int kbhit(void); @@ -74,3 +76,4 @@ extern "C" #endif +#endif diff --git a/crawl-ref/source/libutil.cc b/crawl-ref/source/libutil.cc index 8b5bb7bbac..7c6a412303 100644 --- a/crawl-ref/source/libutil.cc +++ b/crawl-ref/source/libutil.cc @@ -13,6 +13,7 @@ #include "AppHdr.h" #include "defines.h" +#include "direct.h" #include "initfile.h" #include "libutil.h" #include "externs.h" @@ -24,7 +25,7 @@ #include #include -#ifdef WIN32CONSOLE +#if defined(WIN32CONSOLE) || defined(WIN32TILES) #include #ifdef WINMM_PLAY_SOUNDS @@ -567,6 +568,24 @@ int snprintf( char *str, size_t size, const char *format, ... ) #endif +#ifndef USE_TILE +void gotoxy(int x, int y, int region) +{ + switch(region) + { + case GOTO_STAT: + gotoxy_sys(x + crawl_view.hudp.x - 1, y + crawl_view.hudp.y - 1); + break; + case GOTO_MSG: + gotoxy_sys(x + crawl_view.msgp.x - 1, y + crawl_view.msgp.y - 1); + break; + case GOTO_CRT: + default: + gotoxy_sys(x, y); + break; + } +} +#endif /////////////////////////////////////////////////////////////////////// // Pattern matching diff --git a/crawl-ref/source/libutil.h b/crawl-ref/source/libutil.h index f0f4c1a4ce..db63e6ff6c 100644 --- a/crawl-ref/source/libutil.h +++ b/crawl-ref/source/libutil.h @@ -150,6 +150,10 @@ void usleep( unsigned long time ); int snprintf( char *str, size_t size, const char *format, ... ); #endif +#ifndef USE_TILE +void gotoxy(int x, int y, int region = GOTO_CRT); +#endif + template class unwind_var { diff --git a/crawl-ref/source/libw32c.cc b/crawl-ref/source/libw32c.cc index 8749f70469..786d50f17d 100644 --- a/crawl-ref/source/libw32c.cc +++ b/crawl-ref/source/libw32c.cc @@ -501,7 +501,7 @@ void clrscr(void) gotoxy(1,1); } -void gotoxy(int x, int y) +void gotoxy_sys(int x, int y) { // always flush on goto bFlush(); diff --git a/crawl-ref/source/libw32c.h b/crawl-ref/source/libw32c.h index 46146a920b..a0a79eced0 100644 --- a/crawl-ref/source/libw32c.h +++ b/crawl-ref/source/libw32c.h @@ -25,7 +25,7 @@ bool is_cursor_enabled(); void clrscr(void); void clear_to_end_of_line(); -void gotoxy(int x, int y); +void gotoxy_sys(int x, int y); void textcolor(int c); void textattr(int c); void cprintf( const char *format, ... ); diff --git a/crawl-ref/source/libwt.cc b/crawl-ref/source/libwt.cc new file mode 100644 index 0000000000..e3e2ec3b46 --- /dev/null +++ b/crawl-ref/source/libwt.cc @@ -0,0 +1,540 @@ +// Windows wb_[ t@C: +#include +#include +#include +#include + +// GDT_NONE in commctrl.h conflicts with enum.h +#ifdef GDT_NONE +#undef GDT_NONE +#endif + +#include +#include +#include +#include +#include + +#include "AppHdr.h" +#include "cio.h" +#include "externs.h" +#include "files.h" +#include "guic.h" +#include "itemprop.h" +#include "state.h" +#include "tiles.h" + +// acr.cc +extern int old_main(int argc, char *argv[]); + +extern WinClass *win_main; +extern TileRegionClass *region_tile; +extern img_type TileImg; +extern BYTE pix_transparent; + +typedef struct ev_data +{ + int type; + int key; + int x1, y1; + bool sh, ct; +}ev_data; + +#define EV_MAX 1024 +struct ev_data ev_cue[EV_MAX]; + +static int ev_head = 0; +static int ev_tail = 0; +void ev_push(struct ev_data *e); +static bool skip_key = false; + +// Tip text +static TOOLINFO tiTip; +static HWND hTool; +static HWND pWin; + +#ifdef USE_TILE +#define PAL_STD 0 //standard palette +#define PAL_BER 1 //berserk palette +#define PAL_SHA 2 //shadow palette +static int palette = PAL_STD; +LPBYTE lpPalettes[3] ; +#endif + +#define DF_TOOLTIP_WIDTH 300 + +ATOM MyRegisterClass( HINSTANCE hInstance ); +BOOL InitInstance( HINSTANCE, int ); +LRESULT CALLBACK WndProc( HWND, UINT, WPARAM, LPARAM ); + +bool libgui_init_sys(); +void libgui_shutdown_sys(); +void update_tip_text(const char *tip); + +void GetNextEvent(int *etype, int *key, bool *shift, bool *ctrl, + int *x1, int *y1, int *x2, int *y2); +void TileInitWin(); +void delay(unsigned long ms); +int kbhit(); + +/***************************/ +#ifdef USE_TILE +void TileInitWin() +{ + int i; + + //Fɓւ + TileImg->pDib->bmiColors[pix_transparent].rgbRed = 0; + TileImg->pDib->bmiColors[pix_transparent].rgbGreen = 0; + TileImg->pDib->bmiColors[pix_transparent].rgbBlue = 0; + + RegionClass::set_std_palette(&TileImg->pDib->bmiColors[0]); + + //obNobt@ppbg̍쐬 + WORD chcol; //OCXP[vZp + lpPalettes[0] = (LPBYTE) (&TileImg->pDib->bmiColors[0]); + lpPalettes[1] = (LPBYTE)GlobalAlloc(GPTR, 256 * sizeof(RGBQUAD) ); //o[T[Npbgׂ̃m + lpPalettes[2] = (LPBYTE)GlobalAlloc(GPTR, 256 * sizeof(RGBQUAD) ); //VhEpbgׂ̃m + for (i = 0; i < 256; i++) + { + //o[T[Nppbg + chcol = (TileImg->pDib->bmiColors[i].rgbRed * 30 + + TileImg->pDib->bmiColors[i].rgbGreen * 59 + + TileImg->pDib->bmiColors[i].rgbBlue * 11)/100; + LPBYTE ptr = lpPalettes[1] + i * sizeof(RGBQUAD); + ptr[2] = (BYTE)chcol; + ptr[0] = (BYTE)( (chcol +1)/6 ); + ptr[1] = (BYTE)( (chcol +1)/6 ); + + ptr = lpPalettes[2] + i * sizeof(RGBQUAD); + //VhEppbg + ptr[2] = ptr[0] = ptr[1] = (BYTE)chcol; + } +} +#endif + +void update_tip_text(const char *tip) +{ +#define MAXTIP 512 + static char oldtip[MAXTIP+1]; + if (strncmp(oldtip, tip, MAXTIP)==0) return; + strncpy(oldtip, tip, MAXTIP); + tiTip.lpszText = (char *)tip; + SendMessage(hTool, TTM_UPDATETIPTEXT, 0, (LPARAM)&tiTip); +} + +bool libgui_init_sys( ) +{ + return true; +} + +void libgui_shutdown_sys() +{ +#ifdef USE_TILE + GlobalFree(lpPalettes[1]); //o[T[Nppbg + GlobalFree(lpPalettes[2]); //VhEppbg +#endif + DestroyWindow( pWin ); +} + +void GetNextEvent(int *etype, int *key, bool *sh, bool *ct, + int *x1, int *y1, int *x2, int *y2) +{ + MSG msg; + + while( GetMessage(&msg, NULL, 0, 0) ) + { + TranslateMessage( &msg ); + DispatchMessage( &msg ); + if(ev_tail != ev_head) break; + } + struct ev_data *e = &ev_cue[ev_head]; + ev_head++; + if(ev_head == EV_MAX) + ev_head = 0; + + *etype = e->type; + *key = e->key; + *sh = e->sh; + *ct = e->ct; + *x1 = e->x1; + *y1 = e->y1; +} + +void ev_push(struct ev_data *e) +{ + ev_cue[ev_tail] = *e; + ev_tail++; + if(ev_tail == EV_MAX) + ev_tail = 0; +} + +//FAR PASCAL +int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, + LPSTR lpCmdLine, int nCmdShow ) +{ + MSG msg; + + MyRegisterClass( hInstance ); + + GuicInit(hInstance, nCmdShow); + + // after handing the controll to the main code, + // libgui_init , libgui_init_sys will be called + old_main(0, NULL); + + return msg.wParam; +} + + +ATOM MyRegisterClass( HINSTANCE hInstance ) +{ + WNDCLASSEX wcex; + + wcex.cbSize = sizeof(WNDCLASSEX); + + wcex.style = CS_HREDRAW | CS_VREDRAW; + wcex.lpfnWndProc = (WNDPROC)WndProc; + wcex.cbClsExtra = 0; + wcex.cbWndExtra = 0; + wcex.hInstance = hInstance; + wcex.hIcon = LoadIcon(hInstance, TEXT("CRAWL_ICON")); + wcex.hCursor = LoadCursor(NULL, IDC_ARROW); + wcex.hbrBackground = (HBRUSH)GetStockObject(BLACK_BRUSH); + wcex.lpszMenuName = "CRAWL"; + wcex.lpszClassName = "CrawlList"; + wcex.hIconSm = NULL;//LoadIcon(wcex.hInstance, (LPCTSTR)IDI_SMALL); + + return RegisterClassEx( &wcex ); +} + +LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) +{ + int wmId, wmEvent; + PAINTSTRUCT ps; + HDC hdc; + + struct ev_data ev; + static int clix = 0; + static int cliy = 0; + + // For keypad + const unsigned char ck_table[9]= + { + CK_END, CK_DOWN, CK_PGDN, + CK_LEFT, CK_INSERT, CK_RIGHT, + CK_HOME, CK_UP, CK_PGUP + }; + + switch( message ) + { + case WM_CREATE: + { + pWin = hWnd; + + // TOOLTIP eLXg̐ݒ + // Example taken from + // http://black.sakura.ne.jp/~third/system/winapi/common10.html + InitCommonControls(); + hTool = CreateWindowEx( 0 , TOOLTIPS_CLASS , + NULL , TTS_ALWAYSTIP , + CW_USEDEFAULT , CW_USEDEFAULT , + CW_USEDEFAULT , CW_USEDEFAULT , + hWnd , NULL , ((LPCREATESTRUCT)(lParam))->hInstance , + NULL + ); + GetClientRect(hWnd , &tiTip.rect); + + tiTip.cbSize = sizeof (TOOLINFO); + tiTip.uFlags = TTF_SUBCLASS; + tiTip.hwnd = hWnd; + tiTip.lpszText = (char *) + "This text will tell you" EOL + " what you are pointing"; + SendMessage(hTool, TTM_ADDTOOL , 0 , (LPARAM)&tiTip); + // Allow line wrap + SendMessage(hTool, TTM_SETMAXTIPWIDTH, 0, DF_TOOLTIP_WIDTH); + return 0; + } + + case WM_RBUTTONDOWN: + case WM_LBUTTONDOWN: + case WM_MBUTTONDOWN: + { + ev.type = EV_BUTTON; + ev.x1 = LOWORD(lParam); + ev.y1 = HIWORD(lParam); + ev.key = 1; + ev.sh = ((GetKeyState(VK_SHIFT) & 0x80)!=0)? true:false; + ev.ct = ((GetKeyState(VK_CONTROL) & 0x80)!=0)? true:false; + if (message == WM_RBUTTONDOWN) ev.key = 2; + if (message == WM_MBUTTONDOWN) ev.key = 3; + ev_push(&ev); + return 0; + } + + case WM_RBUTTONUP: + //case WM_LBUTTONDOWN: + { + ev.type = EV_UNBUTTON; + ev.x1 = LOWORD(lParam); + ev.y1 = HIWORD(lParam); + ev.key = 1; + if (message == WM_RBUTTONUP) ev.key = 2; + if (message == WM_MBUTTONUP) ev.key = 3; + ev_push(&ev); + return 0; + } + + case WM_MOUSEWHEEL: + { + int z = (short)HIWORD(wParam); + ev.x1 = LOWORD(lParam) - clix; + ev.y1 = HIWORD(lParam) - cliy; + ev.type = EV_BUTTON; + ev.sh = ((GetKeyState(VK_SHIFT) & 0x80)!=0)? true:false; + ev.ct = ((GetKeyState(VK_CONTROL) & 0x80)!=0)? true:false; + ev.key = (z>0)? 4:5; + ev_push(&ev); + return 0; + } + + case WM_MOUSEMOVE: + { + ev.type = EV_MOVE; + ev.x1 = LOWORD(lParam); + ev.y1 = HIWORD(lParam); + ev_push(&ev); + return 0; + } + + case WM_KEYDOWN: + { + int ch=(int)wParam; + int result = 0; + int dir = 0; + bool fs = ((GetKeyState(VK_SHIFT) & 0x80)!=0)? true:false; + bool fc = ((GetKeyState(VK_CONTROL)& 0x80)!=0)? true:false; + bool fa = ((GetKeyState(VK_MENU) & 0x80)!=0)? true:false; + + if (ch >= VK_NUMPAD1 && ch <= VK_NUMPAD9) + { + skip_key = true; + dir = ch - VK_NUMPAD0; + } + else + if ((VK_PRIOR <= ch && ch <=VK_DOWN) || (ch == VK_CLEAR) ) + { + switch(ch) + { + case VK_LEFT: dir = 4; break; + case VK_RIGHT: dir = 6; break; + case VK_UP: dir = 8; break; + case VK_DOWN: dir = 2; break; + case VK_HOME: dir = 7; break; + case VK_PRIOR: dir = 9; break; + case VK_NEXT: dir = 3; break; + case VK_END: dir = 1; break; + case VK_CLEAR: dir = 5; break; + } + } + + if (dir != 0) + { + ch = ck_table[dir-1]; + if (fc) + ch += CK_CTRL_UP - CK_UP; + if (fs) + ch += CK_SHIFT_UP - CK_UP; + + if (fa) ch |= 2048; + ev.key = ch; + ev.type = EV_KEYIN; + ev_push(&ev); + return 0; + } // dir!=0 + + else + if ( ch >= VK_PAUSE + && !(ch >= VK_CAPITAL && ch <= VK_SPACE) + && ch !=VK_PROCESSKEY + && ch != VK_NUMLOCK + && !(ch >=VK_LSHIFT && ch<= VK_RMENU) + && !(ch >= 0x30 && ch<= 0x39) + && !(ch >= 0x41 && ch<= 0x5a) + && !(ch >= 0xa6 && ch<= 0xe4) + ) result = 300+ch; + + if (result) + { + if (fs) result |= 512; + if (fc) result |= 1024; + if (fa) result |= 2048; + ev.key = result; + ev.type = EV_KEYIN; + ev_push(&ev); + } + + return 0; + } + + case WM_CHAR: + { + if (skip_key) + { + skip_key = false; + return 0; + } + ev.key = (int)wParam; + ev.type = EV_KEYIN; + ev_push(&ev); + return 0; + } + + case WM_PAINT: + { + hdc = BeginPaint(hWnd, &ps); + /* + int x1 = ps.rcPaint.left; + int x2 = ps.rcPaint.right; + int y1 = ps.rcPaint.top; + int y2 = ps.rcPaint.bottom; + + int dx = xwin.dx; + int dy = xwin.dy; + */ + win_main->redraw(); + EndPaint(hWnd, &ps); + //ValidateRect(hWnd, NULL); + return 0; + } + + case WM_MOVE: + { + clix = LOWORD(lParam); + cliy = HIWORD(lParam); + return 0; + } + + case WM_COMMAND: + { + wmId = LOWORD(wParam); + wmEvent = HIWORD(wParam); + switch( wmId ) + { + default: + return DefWindowProc( hWnd, message, wParam, lParam ); + } + return 0; + } + case WM_CLOSE: + if ( (mouse_get_mode() == MOUSE_MODE_COMMAND) + ||(!crawl_state.need_save) ) + { + if (crawl_state.need_save) + { + save_game(true); + } + libgui_shutdown(); + } + break; + case WM_DESTROY: + { + PostQuitMessage( 0 ); + exit(0); + break; + } + default: + return DefWindowProc( hWnd, message, wParam, lParam ); + } + return 0; +} + +#ifdef USE_TILE +void TileDrawDungeonAux(){ + dib_pack *pBuf = region_tile->backbuf; + + int new_palette = PAL_STD; + if (you.duration[DUR_BERSERKER]) new_palette = PAL_BER; + if (you.special_wield == SPWLD_SHADOW) new_palette = PAL_SHA; + + if (new_palette != palette) + { + palette = new_palette; + SetDIBColorTable(pBuf->hDC, 0, 256, (RGBQUAD *)lpPalettes[palette]); + } +} +#endif + +bool windows_change_font(char *font_name, int *font_size, bool dos) +{ + CHOOSEFONT cf; + + memset(&cf, 0, sizeof(cf)); + cf.lStructSize = sizeof(cf); + cf.iPointSize = *font_size; + cf.nSizeMin = 8; + cf.nSizeMax = 24; + cf.Flags = CF_SCREENFONTS | CF_FIXEDPITCHONLY | CF_NOVERTFONTS + | CF_INITTOLOGFONTSTRUCT | CF_LIMITSIZE | CF_FORCEFONTEXIST; + + LOGFONT lf; + strcpy(lf.lfFaceName, font_name); + lf.lfHeight = 16; + lf.lfWidth = 0; + lf.lfEscapement = 0; + lf.lfOrientation = lf.lfEscapement; + lf.lfWeight = FW_NORMAL; + lf.lfItalic = FALSE; + lf.lfUnderline = FALSE; + lf.lfStrikeOut = FALSE; + lf.lfOutPrecision = OUT_DEFAULT_PRECIS; + lf.lfClipPrecision = CLIP_DEFAULT_PRECIS; + lf.lfQuality = DEFAULT_QUALITY; + lf.lfPitchAndFamily= FF_MODERN|FIXED_PITCH; + lf.lfCharSet = (dos)? OEM_CHARSET:ANSI_CHARSET; + cf.lpLogFont = &lf; + + if (ChooseFont(&cf)) + { + *font_size = (cf.iPointSize / 10); + strcpy(font_name, lf.lfFaceName); + return true; + } + return false; +} + +void windows_get_winpos(int *x, int *y) +{ + WINDOWPLACEMENT wndpl; + + // set length + wndpl.length = sizeof( WINDOWPLACEMENT ); + + if( GetWindowPlacement( win_main->hWnd, &wndpl ) != 0 ) + { + *x = wndpl.rcNormalPosition.top; + *y = wndpl.rcNormalPosition.left; + } +} + +void delay(unsigned long ms) +{ + Sleep((DWORD)ms); +} + +int kbhit() +{ + MSG msg; + + if (PeekMessage(&msg, NULL, WM_CHAR, WM_CHAR, PM_NOREMOVE) + || PeekMessage(&msg, NULL, WM_KEYDOWN, WM_KEYDOWN, PM_NOREMOVE) + /* || PeekMessage(&msg, NULL, WM_MOUSEMOVE, WM_MOUSEMOVE, PM_NOREMOVE)*/ ) + return 1; + else + return 0; +} + +void update_screen() +{ +} diff --git a/crawl-ref/source/libx11.cc b/crawl-ref/source/libx11.cc new file mode 100644 index 0000000000..cf291db862 --- /dev/null +++ b/crawl-ref/source/libx11.cc @@ -0,0 +1,478 @@ +#include "AppHdr.h" +#include +#include +#include + +#ifdef USE_X11 //Sys dep +#include +#include +#include +#include +#include +#include +#include +#endif + +#include "cio.h" +#include "enum.h" +#include "externs.h" +#include "guic.h" +#include "libutil.h" + +/* + * Tile related stuff + */ +#ifdef USE_TILE + +#include "tiles.h" + +static Display *display=NULL; +static int screen; + +static int x11_keypress(XKeyEvent *xev); +static void x11_check_exposure(XEvent *xev); + +extern WinClass *win_main; + +void GetNextEvent(int *etype, int *key, bool *shift, bool *ctrl, + int *x1, int *y1, int *x2, int *y2) +{ + XEvent xev; + + while(1) + { + XNextEvent(display, &xev); + + if(xev.type==KeyPress) + { + *etype = EV_KEYIN; + *key = x11_keypress(&(xev.xkey)); + break; + } + else if(xev.type==Expose) + { + x11_check_exposure(&xev); + } + else if(xev.type == ConfigureNotify) + { + win_main->ox = xev.xconfigure.x; + win_main->oy = xev.xconfigure.y; + break; + } + else if(xev.type==ButtonPress) + { + *etype = EV_BUTTON; + int button = xev.xbutton.button; + *shift = (xev.xkey.state & ShiftMask) ? true : false; + *ctrl = (xev.xkey.state & ControlMask) ? true : false; + *x1 = xev.xbutton.x; + *y1 = xev.xbutton.y; + + if (button == 3) button = 2; + else if (button==2) button=3; + *key = button; + break; + } + else if(xev.type==MotionNotify || xev.type==EnterNotify) + { + *etype = EV_MOVE; + *x1 = xev.xbutton.x; + *y1 = xev.xbutton.y; + break; + } + else if (xev.type==LeaveNotify) + { + *etype = EV_MOVE; + *x1 = -100; + *y1 = -100; + break; + } + else if(xev.type==ButtonRelease) + { + *etype = EV_UNBUTTON; + int button = xev.xbutton.button; + if (button == 3) button = 2; + else if (button==2) button=3; + + *x1 = xev.xbutton.x; + *y1 = xev.xbutton.y; + *key = button; + break; + } + }/*while*/ +} + +char *my_getenv(const char *envname, const char *def) +{ + const char *result = getenv(envname); + if (!result) result = def; + return (char *)result; +} + +int my_getenv_int(const char *envname, int def) +{ + const char *rstr = getenv(envname); + if (!rstr) return def; + return atoi(rstr); +} + +#if 0 +void libgui_load_prefs(struct pref_data *pref, int nprefs) +{ + int i; + strcpy(font_name, my_getenv("CRAWL_X11_FONT", + "-alias-fixed-bold-r-normal--16-*")); + strcpy(font_name, my_getenv("CRAWL_X11_FONT", "9x15")); + *crt_x = my_getenv_int("CRAWL_X11_CRTX",80); + *crt_y = my_getenv_int("CRAWL_X11_CRTY",25); + *msg_x = my_getenv_int("CRAWL_X11_MSGX",80); + *msg_y = my_getenv_int("CRAWL_X11_MSGY",8); + *map_x = my_getenv_int("CRAWL_X11_MAPX",3); + *map_y = my_getenv_int("CRAWL_X11_MAPY",3); + *dngn_x = my_getenv_int("CRAWL_X11_DNGNX",17); + *dngn_y = my_getenv_int("CRAWL_X11_DNGNY",17); +} + +void libgui_save_prefs() +{ +} +#endif + +extern WinClass *win_main; +extern TextRegionClass *region_tip; +void update_tip_text(const char *tip) +{ + static char newtip[512]; + static char oldtip[512]; + char tbuf[35]; + + strncpy(newtip, tip, 500); + char* pc = strchr(newtip, '\n'); + if (pc) + *pc = 0; + + if (strncmp(oldtip, newtip, 500)==0) + return; + strncpy(oldtip, newtip, 500); + + strncpy(tbuf,tip,34); + tbuf[34]=0; + + if (win_main->active_layer == 0) + { + // avoid overruns... + if ((int)strlen(newtip) > region_tip->mx) + { + // try to remove inscriptions + char *ins = strchr(newtip, '{'); + if (ins && ins[-1] == ' ') ins--; + if (ins && (ins - newtip <= region_tip->mx)) + { + *ins = 0; + } + else + { + // try to remove state, e.g. "(worn)" + char *state = strchr(newtip, '('); + if (state && state[-1] == ' ') state--; + if (state && (state - newtip <= region_tip->mx)) + { + *state = 0; + } + else + { + // if nothing else... + newtip[region_tip->mx] = 0; + newtip[region_tip->mx-1] = '.'; + newtip[region_tip->mx-2] = '.'; + } + } + } + + region_tip->clear(); + region_tip->gotoxy(1,1); + region_tip->addstr(newtip); + region_tip->make_active(); + } + else + { + textattr( WHITE ); + gotoxy(1, get_number_of_lines() + 1); + cprintf("%s", oldtip); + clear_to_end_of_line(); + } +} + +void TileDrawDungeonAux() +{ +} + +#endif /* USE_TILE */ + +/* X11 */ +void x11_check_exposure(XEvent *xev){ + int sx, sy, ex, ey; + + sx = xev->xexpose.x; + ex = xev->xexpose.x + (xev->xexpose.width)-1; + sy = xev->xexpose.y; + ey = xev->xexpose.y + (xev->xexpose.height)-1; + + if (xev->xany.window != win_main->win) return; + + win_main->redraw(sx,sy,ex,ey); +} + +/* X11 */ +// This routine is taken from Angband main-x11.c +int x11_keypress(XKeyEvent *xev) +{ + +#define IsSpecialKey(keysym) \ + ((unsigned)(keysym) >= 0xFF00) + + const unsigned int ck_table[9]= + { + CK_END, CK_DOWN, CK_PGDN, + CK_LEFT, CK_INSERT, CK_RIGHT, + CK_HOME, CK_UP, CK_PGUP + }; + + int dir, base; + + int n; + bool mc, ms, ma; + unsigned int ks1; + + XKeyEvent *ev = (XKeyEvent*)(xev); + KeySym ks; + char buf[256]; + + n = XLookupString(ev, buf, 125, &ks, NULL); + buf[n] = '\0'; + + if (IsModifierKey(ks)) return 0; + + /* Extract "modifier flags" */ + mc = (ev->state & ControlMask) ? true : false; + ms = (ev->state & ShiftMask) ? true : false; + ma = (ev->state & Mod1Mask) ? true : false; + + /* Normal keys */ + if (n && !IsSpecialKey(ks)) + { + buf[n] = 0; + + //Hack Ctrl+[0-9] etc. + if (mc && ((ks>='0' && ks<='9') || buf[0]>=' ')) + { + return 1024|ks; + } + + if (!ma) + { + return buf[0]; + } + + /* Alt + ? */ + return 2048|buf[0]; + } + + /* Hack -- convert into an unsigned int */ + ks1 = (uint)(ks); + + /* Handle a few standard keys (bypass modifiers) XXX XXX XXX */ + base = dir = 0; + switch (ks1) + { + case XK_Escape: + base = 0x1b; + break; + case XK_Return: + base = '\r'; + break; + case XK_Tab: + base = '\t'; + break; + case XK_Delete: + case XK_BackSpace: + base = '\010'; + break; + + // for menus + case XK_Down: + return CK_DOWN; + case XK_Up: + return CK_UP; + case XK_Left: + return CK_LEFT; + case XK_Right: + return CK_RIGHT; + + /* + * Keypad + */ + + case XK_KP_1: + case XK_KP_End: + dir = 1; + break; + + case XK_KP_2: + case XK_KP_Down: + dir = 2; + break; + + case XK_KP_3: + case XK_KP_Page_Down: + dir = 3; + break; + + case XK_KP_6: + case XK_KP_Right: + dir = 6; + break; + + case XK_KP_9: + case XK_KP_Page_Up: + dir = 9; + break; + + case XK_KP_8: + case XK_KP_Up: + dir = 8; + break; + + case XK_KP_7: + case XK_KP_Home: + dir = 7; + break; + + case XK_KP_4: + case XK_KP_Left: + dir = 4; + break; + + case XK_KP_5: + dir = 5; + break; + }/* switch */ + + //Handle keypad first + if (dir != 0) + { + int result = ck_table[dir-1]; + + if (ms) result += CK_SHIFT_UP - CK_UP; + if (mc) result += CK_CTRL_UP - CK_UP; + return result; + } + + if (base != 0) + { + if (ms) base |= 1024; + if (mc) base |= 2048; + if (ma) base |= 4096; + return base; + } + //Hack Special key + if (ks1 >=0xff00) + { + base = 512 + ks1 - 0xff00; + if (ms) base |= 1024; + if (mc) base |= 2048; + if (ma) base |= 4096; + return base; + } + + return 0; +} + +void libgui_init_sys() +{ + GuicInit(&display, &screen); +} + +void libgui_shutdown_sys() +{ + GuicDeinit(); +} + +void update_screen() +{ + XFlush(display); +} + +int kbhit() +{ + XEvent xev; + + if (XCheckMaskEvent(display, + KeyPressMask | ButtonPressMask, &xev)) + { + XPutBackEvent(display, &xev); + return 1; + } + return 0; +} + +void delay( unsigned long time ) +{ + usleep( time * 1000 ); +} + +/* Convert value to string */ +int itoa(int value, char *strptr, int radix) +{ + unsigned int bitmask = 32768; + int ctr = 0; + int startflag = 0; + + if (radix == 10) + { + sprintf(strptr, "%i", value); + } + if (radix == 2) /* int to "binary string" */ + { + while (bitmask) + { + if (value & bitmask) + { + startflag = 1; + sprintf(strptr + ctr, "1"); + } + else + { + if (startflag) + sprintf(strptr + ctr, "0"); + } + + bitmask = bitmask >> 1; + if (startflag) + ctr++; + } + + if (!startflag) /* Special case if value == 0 */ + sprintf((strptr + ctr++), "0"); + + strptr[ctr] = (char) NULL; + } + return (0); /* Me? Fail? Nah. */ +} + + +// Convert string to lowercase. +char *strlwr(char *str) +{ + unsigned int i; + + for (i = 0; i < strlen(str); i++) + str[i] = tolower(str[i]); + + return (str); +} + +int stricmp( const char *str1, const char *str2 ) +{ + return (strcmp(str1, str2)); +} diff --git a/crawl-ref/source/macro.cc b/crawl-ref/source/macro.cc index a87e86172d..e069e630dd 100644 --- a/crawl-ref/source/macro.cc +++ b/crawl-ref/source/macro.cc @@ -794,7 +794,11 @@ void macro_add_query( void ) "buggy") : "", (keymap ? "keymap" : "macro") ); - keyseq key = getch_mul(); + keyseq key; +#ifdef USE_TILE + mouse_control mc(MOUSE_MODE_MACRO); +#endif + key = getch_mul(); cprintf( "%s" EOL, (vtostr( key )).c_str() ); // echo key to screen diff --git a/crawl-ref/source/makefile.x11 b/crawl-ref/source/makefile.x11 new file mode 100644 index 0000000000..4eebd58053 --- /dev/null +++ b/crawl-ref/source/makefile.x11 @@ -0,0 +1,365 @@ +# -*- Makefile -*- for Dungeon Crawl (unix) + +# +# Modified for Crawl Reference by $Author: dshaligram $ on $Date: 2007-06-24T16:27:58.475101Z $ +# + +GAME = crawl + +# this file contains a list of the libraries. +# it will make a variable called OBJECTS that contains all the libraries +include makefile.obj + +OBJECTS += libgui.o tile1.o tile2.o libx11.o guic.o guic-x11.o + +CXX = g++ +DELETE = rm -f +COPY = cp +OS_TYPE = UNIX +EXTRA_INCLUDES = -DUSE_X11 -DUSE_TILE + +# Change this to y if you want to use Unicode glyphs in the map, and you have +# libncursesw available. +UNICODE_GLYPHS = n + +# If you have lex and yacc, set DOYACC to y (lowercase y). +DOYACC := y + +# Permissions to set on the game executable. +MCHMOD := 2755 + +# Permissions to set on the save directory. +MCHMOD_SAVEDIR := 775 + +# The user:group to install the game as. +INSTALL_UGRP := games:games + +INSTALLDIR := /usr/games/crawl + +# If you're installing Crawl for multiple users, you *must* set this to a +# valid path before building Crawl. This is not necessary if you are building +# Crawl for a single user. + +# SAVEDIR := /usr/games/crawl/saves/ +# DATADIR := /usr/games/crawl/data/ + +LEX := flex +YACC := bison -y + +ifeq ($(UNICODE_GLYPHS),y) +# Include path for (n)curses with Unicode support. +INCLUDES = -I/usr/include/ncursesw + +# Your ncurses library may include Unicode support, and you may not have a +# separate libncursesw; in that case, change this line accordingly. +LIBCURS = ncursesw +EXTRA_FLAGS += -DUNICODE_GLYPHS + +# The standard ncurses library also supports Unicode on Mac OS/Darwin. +ifeq ($(shell uname),Darwin) +LIBCURS = ncurses +endif + +else +# Include path for curses or ncurses (non-Unicode). +INCLUDES = -I/usr/include/ncurses +LIBCURS = ncurses +endif + +ifeq ($(LUASRC),) +LUASRC := util/lua/src +endif + +LUALIB = lua +LUALIBA = l$(LUALIB).a +EXTRA_DEPENDS += $(LUASRC)$(LUALIBA) + +DBH_FILE := /usr/include/db.h +NDBM_FILE := /usr/include/ndbm.h + +HAVE_DBH := $(shell [ -f $(DBH_FILE) ] && echo y) +HAVE_NDBM := $(shell [ -f $(NDBM_FILE) ] && echo y) + +ifeq ($(HAVE_DBH),y) +ifneq ($(shell grep dbm_open $(DBH_FILE)),) +SELDBM := -DDB_DBH +LIBDBM := -ldb +endif +endif + +ifeq ($(HAVE_NDBM),y) +SELDBM ?= -DDB_NDBM +ifeq ($(SELDBM),-DDB_NDBM) +LIBDBM := -ldbm +endif +endif + +SQLSRC := util/sqlite +SQLLIB := sqlite3 +SQLLIBA := lib$(SQLLIB).a +FSQLLIBA := $(SQLSRC)/$(SQLLIBA) + +ifeq ($(LIBDBM),) +LIBDBM := -L$(SQLSRC) -lsqlite3 +EXTRA_INCLUDES += -I$(SQLSRC) +EXTRA_DEPENDS += $(FSQLLIBA) +endif + +LIB = -l$(LIBCURS) -L$(LUASRC) -l$(LUALIB) $(LIBDBM) -L/usr/X11R6/lib -lX11 -lpng + + +INCLUDES := $(INCLUDES) -Iutil -I. -I$(LUASRC) $(EXTRA_INCLUDES) + +CFWARN := -Wall -Wwrite-strings \ + -Wshadow -pedantic + +CFOTHERS := -fsigned-char -D$(OS_TYPE) $(EXTRA_FLAGS) + +ifneq ($(SAVEDIR),) +CFOTHERS += '-DSAVE_DIR_PATH="$(SAVEDIR)"' +endif + +ifneq ($(DATADIR),) +CFOTHERS += '-DDATA_DIR_PATH="$(DATADIR)"' +endif + +CFOTHERS += $(SELDBM) + +CFLAGS := $(INCLUDES) $(CFWARN) $(CFOTHERS) +YCFLAGS := $(INCLUDES) $(CFOTHERS) + +UTIL = util/ + +YTABC := levcomp.tab.c +YTABH := levcomp.tab.h + +RLTILES = rltiles/ + +TILEHEADERS = \ +tiledef.h \ +tiledef-p.h \ +tiledef-w2d.h \ +tilecount-w2d.h \ +tilep-cmt.h + +TILEFILES = \ + tile.png \ + player.png \ + wall2d.png +DESTTILEFILES = $(TILEFILES:%=dat/tiles/%) + +EXTRA_DEPENDS += $(TILEHEADERS) $(DESTTILEFILES) + +OBJECTS := $(UTIL)levcomp.tab.o $(UTIL)levcomp.lex.o $(OBJECTS) + +ifeq ($(LEX),) +DOYACC := +endif + +ifeq ($(YACC),) +DOYACC := +endif + +GAME_DEPENDS := $(EXTRA_DEPENDS) $(OBJECTS) +SRC_PKG_BASE := stone_soup +SRC_VERSION := $(shell egrep 'VER_NUM *".*"' version.h | \ + egrep -o '[0-9]\.[0-9](\.[0-9])?') +PKG_SRC_DIR := $(SRC_PKG_BASE)-$(SRC_VERSION)-src +SRC_PKG_TAR := $(PKG_SRC_DIR).tbz2 +SRC_PKG_ZIP := $(PKG_SRC_DIR).zip + +PKG_TIDY_LIST := $(UTIL)*.o $(LEVCOMP) *.o \ + $(UTIL)*.tab.cc $(UTIL)*.tab.h $(UTIL)*.lex.cc *.ixx +PKG_EXCLUDES := $(PWD)/misc/src-pkg-excludes.lst + +########################################################################## + +all: $(GAME) + +########################################################################## +# Dependencies + +DEPENDENCY_MKF := makefile.dep + +depend: $(OBJECTS:.o=.cc) + rm -f $(DEPENDENCY_MKF) + @for i in $^; do \ + echo "Updating dependencies for $$i"; \ + $(CXX) -MM $(CFLAGS) $$i >>$(DEPENDENCY_MKF) 2>/dev/null; \ + done + +-include $(DEPENDENCY_MKF) + +########################################################################## +# The level compiler +# + +ifeq ($(DOYACC),y) + +prebuildyacc: $(UTIL)levcomp.tab.cc $(UTIL)levcomp.tab.h $(UTIL)levcomp.lex.cc + cp $^ prebuilt/ + +$(UTIL)levcomp.tab.cc: $(UTIL)levcomp.ypp + cd $(UTIL) && $(YACC) -d -b levcomp levcomp.ypp \ + && mv $(YTABC) levcomp.tab.cc || false + +$(UTIL)levcomp.lex.cc: $(UTIL)levcomp.lpp + cd $(UTIL) && $(LEX) -olevcomp.lex.cc levcomp.lpp + +else + +# Pull the level-compiler stuff up from prebuilt/ + +$(UTIL)levcomp.tab.cc: prebuilt/levcomp.tab.cc + cp prebuilt/*.h $(UTIL) + cp $< $@ + + +$(UTIL)levcomp.lex.cc: prebuilt/levcomp.lex.cc + cp $< $@ + +endif + +########################################################################## +# RLTiles +# + +ORIGTILEHEADERS = $(TILEHEADERS:%=$(RLTILES)%) +ORIGTILEFILES = $(TILEFILES:%=$(RLTILES)%) + +$(ORIGTILEHEADERS): makerltiles + +makerltiles: + cd $(RLTILES) && make -f makefile.unix all && cd .. + +$(TILEHEADERS): $(ORIGTILEHEADERS) + cp $(RLTILES)$@ . + +$(ORIGTILEFILES): makerltiles + +dat/tiles/%.png: rltiles/%.png + mkdir -p dat/tiles + $(COPY) $< $@ + +clean-rltiles: + cd $(RLTILES) && make -f makefile.unix distclean && cd .. + $(DELETE) $(TILEHEADERS) + +########################################################################## + + +########################################################################## +# The actual build targets +# + +install: $(GAME) + [ -d $(INSTALLDIR) ] || mkdir -p $(INSTALLDIR) + $(COPY) $(GAME) $(INSTALLDIR) + chown $(INSTALL_UGRP) $(INSTALLDIR)/$(GAME) + chmod ${MCHMOD} ${INSTALLDIR}/$(GAME) +ifeq ($(DATADIR),) + $(error DATADIR not set! Set DATADIR and run make clean install again) +endif + mkdir -p $(DATADIR)/dat/clua + cp dat/*.des $(DATADIR)/dat + cp dat/*.txt $(DATADIR)/dat + cp dat/clua/*.lua $(DATADIR)/dat/clua + cp -r lua $(DATADIR)/dat + mkdir -p $(DATADIR)/docs + cp ../docs/*.txt $(DATADIR)/docs + mkdir -p $(DATADIR)/dat/tiles + cp dat/tiles/*.png $(DATADIR)/dat/tiles + chown -R $(INSTALL_UGRP) $(DATADIR) +ifneq ($(SAVEDIR),) + mkdir -p $(SAVEDIR) + chown $(INSTALL_UGRP) $(SAVEDIR) + chmod $(MCHMOD_SAVEDIR) $(SAVEDIR) +endif + ln -s $(INSTALLDIR)/$(GAME) /usr/local/bin/ + +clean: + $(DELETE) *.o + $(DELETE) $(UTIL)*.o + $(DELETE) $(LEVCOMP) + $(DELETE) $(UTIL)*.tab.cc $(UTIL)*.tab.c $(UTIL)*.tab.h $(UTIL)*.lex.cc + $(DELETE) *.ixx + +clean-lua: + cd $(LUASRC) && $(MAKE) clean + +clean-sql: + cd $(SQLSRC) && $(MAKE) clean + +distclean: clean clean-lua clean-sql clean-rltiles + $(DELETE) bones.* + $(DELETE) morgue.txt + $(DELETE) scores + $(DELETE) $(GAME) + $(DELETE) *.sav + $(DELETE) core + $(DELETE) *.0* + $(DELETE) *.lab + $(DELETE) $(DEPENDENCY_MKF) + +$(GAME): $(GAME_DEPENDS) + ${CXX} ${LDFLAGS} $(CFLAGS) $(OBJECTS) -o $(GAME) $(LIB) + +debug: $(GAME_DEPENDS) + ${CXX} ${LDFLAGS} $(CFLAGS) $(OBJECTS) -o $(GAME) $(LIB) + +profile: $(GAME_DEPENDS) + ${CXX} -g -p ${LDFLAGS} $(CFLAGS) $(OBJECTS) -o $(GAME) $(LIB) + +.cc.o: + ${CXX} ${CFLAGS} -c $< + +# [ds] Note we don't use the standard CFLAGS here; that's intentional, most +# flex/bison combos I've tried don't produce code that passes the warnings +# test. +$(UTIL)%.o: $(UTIL)%.cc + $(CXX) $(YCFLAGS) -o $@ -c $< + +############################################################################# +# Build Lua + +$(LUASRC)$(LUALIBA): + echo Building Lua... + cd $(LUASRC) && $(MAKE) crawl_unix + +############################################################################# +# Build SQLite + +$(FSQLLIBA): + echo Building SQLite + cd $(SQLSRC) && $(MAKE) + +############################################################################# +# Packaging a source tarball for release +# + +# To package, you *must* have lex and yacc to generate the intermediates. +ifeq ($(DOYACC),y) +package-source: distclean prebuildyacc pkgtidy depend removeold vlink \ + pkgtarbz2 pkgzip + +pkgtidy: + $(DELETE) $(PKG_TIDY_LIST) + +removeold: + if [ -f ../../$(SRC_PKG_TAR) ]; then $(DELETE) ../../$(SRC_PKG_TAR); fi + if [ -f ../../$(SRC_PKG_ZIP) ]; then $(DELETE) ../../$(SRC_PKG_ZIP); fi + +# [ds] Existing directory names could produce a bad package! +vlink: + cd .. && WHERE=$$PWD && cd .. && \ + ( [ -e $(PKG_SRC_DIR) ] || ln -sf $$WHERE $(PKG_SRC_DIR) ) + +pkgtarbz2: + cd ../.. && tar -ch --bzip2 -f $(SRC_PKG_TAR) \ + -X $(PKG_EXCLUDES) $(PKG_SRC_DIR) + +pkgzip: + cd ../.. && zip -rq $(SRC_PKG_ZIP) $(PKG_SRC_DIR) \ + -x@$(PKG_EXCLUDES) + +endif diff --git a/crawl-ref/source/makefile_tiles.mgw b/crawl-ref/source/makefile_tiles.mgw new file mode 100644 index 0000000000..67c517a81d --- /dev/null +++ b/crawl-ref/source/makefile_tiles.mgw @@ -0,0 +1,242 @@ +# -*- Makefile -*- for Dungeon Crawl (Win32, MinGW) + +# makefile.obj includes a list of object files needed to build Crawl. +include makefile.obj + +ifeq ($(DEBUG_CRAWL),) +OPATH := rel +else +OPATH := dbg +endif + +# need .exe so make will find the right file +APPNAME = $(OPATH)\crawl.exe +CXX = g++ +DELETE = del +COPY = copy +OS_TYPE = WIN32TILES + +INSTALLDIR := $(OPATH) + +# If you don't have flex or bison, set DOYACC to N or empty. +DOYACC := n + +LEX := flex +YACC := bison -y + +ifeq ($(LUASRC),) +LUASRC := util\lua\src +endif + +LUALIB = lua +LUALIBA = lib$(LUALIB).a + +SQLSRC := util\sqlite +SQLLIB := sqlite3 +SQLIBA := lib$(SQLLIB).a +FSQLLIBA := $(SQLLIB)\$(SQLIBA) + +LIB = -static -lwinmm -mwindows -lcomctl32 -L$(LUASRC) -l$(LUALIB) -L$(SQLSRC) -l$(SQLLIB) +INCLUDES := -Iutil -I. -I$(LUASRC) -I$(SQLSRC) + +CFWARN := -Wall -Wwrite-strings \ + -Werror \ + -pedantic +# -Wshadow + +CFOTHERS := -fsigned-char \ + -fstrict-aliasing \ + -pedantic \ + -D$(OS_TYPE) $(EXTRA_FLAGS) \ + -DWINMM_PLAY_SOUNDS -DCLUA_BINDINGS \ + -DUSE_TILE -DWINVER=0x0400 -D_WIN32_IE=0x0400 +# -DREGEX_PCRE + +CFLAGS := $(INCLUDES) $(CFWARN) $(CFOTHERS) +YCFLAGS := $(INCLUDES) $(CFOTHERS) + +OBJECTS := $(OBJECTS) libgui.o tile1.o tile2.o libwt.o guic.o guic-win.o + +LDFLAGS = + +UTIL = util/ + +YTABC := levcomp.tab.c +YTABH := levcomp.tab.h + +RLTILES = rltiles + +TILEHEADERS = \ +tiledef.h \ +tiledef-p.h \ +tiledef-w2d.h \ +tilecount-w2d.h \ +tilep-cmt.h + +TILEFILES = \ +tile.bmp \ +player.bmp \ +wall2d.bmp +DESTTILEFILES = $(TILEFILES:%=dat\tiles\\%) + +ifeq ($(LEX),) +DOYACC := +endif + +ifeq ($(YACC),) +DOYACC := +endif + +# Do the levcomp stuff first because that's the most likely to fail. +OBJECTS := levcomp.tab.o levcomp.lex.o \ + $(OBJECTS) + +OBJECTS := $(foreach file,$(OBJECTS),$(OPATH)/$(file)) + +GAME_DEPENDS := prepare $(LUASRC)\$(LUALIBA) $(FSQLLIBA) $(TILEHEADERS) $(DESTTILEFILES) $(OBJECTS) + +########################################################################## + +all: $(APPNAME) + +prepare: + if not exist $(OPATH) mkdir $(OPATH) + +DEPENDENCY_MKF := makefile.dep +-include $(DEPENDENCY_MKF) + +########################################################################## +# The level compiler +# +ifeq ($(DOYACC),y) + +# [ds] A plague on the broken copy command on Windoze. +prebuildyacc: $(UTIL)levcomp.lex.cc $(UTIL)levcomp.tab.cc $(UTIL)levcomp.tab.h + $(subst /,\,for %%f in ($^) do $(COPY) %%f prebuilt) + +$(UTIL)levcomp.tab.cc: $(UTIL)levcomp.ypp + $(subst /,\, cd $(UTIL)) && $(YACC) -d -b levcomp levcomp.ypp + $(subst /,\, cd $(UTIL)) && move $(YTABC) levcomp.tab.cc + +$(UTIL)levcomp.lex.cc: $(UTIL)levcomp.lpp + $(subst /,\, cd $(UTIL) && $(LEX) -olevcomp.lex.cc levcomp.lpp) + +else + +$(UTIL)levcomp.tab.cc: prebuilt/levcomp.tab.cc + $(subst /,\,$(COPY) prebuilt/*.h $(UTIL)) + $(subst /,\,$(COPY) $< $@) + +$(UTIL)levcomp.lex.cc: prebuilt/levcomp.lex.cc + $(subst /,\,$(COPY) $< $@) + +endif + +########################################################################## +# RLTiles +# + +ORIGTILEHEADERS = $(TILEHEADERS:%=$(RLTILES)\\%) +ORIGTILEFILES = $(TILEFILES:%=$(RLTILES)\\%) + +$(ORIGTILEHEADERS): makerltiles + +makerltiles: + pushd $(RLTILES) && $(MAKE) -f makefile.mgw all && popd + +$(TILEHEADERS): $(ORIGTILEHEADERS) + copy /y $(RLTILES)\$@ . + +$(ORIGTILEFILES): makerltiles + +dat\tiles\\%.bmp: rltiles\\%.bmp + mkdir dat\tiles 2>nul || echo "" >nul + $(COPY) $< $@ + +clean-rltiles: + pushd $(RLTILES) && $(MAKE) -f makefile.mgw distclean && popd + $(DELETE) $(TILEHEADERS) + +########################################################################## + + +########################################################################## + +install: $(APPNAME) +ifneq ($(OPATH),$(INSTALLDIR)) + $(COPY) $(APPNAME) ${INSTALLDIR} +endif + mkdir $(INSTALLDIR)\dat 2>nul || echo "" >nul + mkdir $(INSTALLDIR)\dat\clua 2>null || echo "">nul + copy /y dat\*.des $(INSTALLDIR)\dat + copy /y dat\*.txt $(INSTALLDIR)\dat + copy /y dat\clua\*.lua $(INSTALLDIR)\dat\clua + copy /y ..\init.txt $(INSTALLDIR) + mkdir $(INSTALLDIR)\dat\tiles 2>nul || echo "" > nul + copy /y dat\tiles\*.bmp $(INSTALLDIR)\dat\tiles + +clean: + $(DELETE) $(OPATH)\*.o + $(subst /,\,$(DELETE) $(UTIL)*.o) + $(subst /,\,$(DELETE) $(UTIL)*.exe) + $(subst /,\,$(DELETE) $(UTIL)*.lex.cc) + $(subst /,\,$(DELETE) $(UTIL)*.tab.cc) + $(subst /,\,$(DELETE) $(UTIL)*.tab.h) + $(subst /,\,$(DELETE) $(UTIL)*.tab.c) + $(subst /,\,$(DELETE) *.ixx) + +clean-lua: + cd $(LUASRC) && $(MAKE) clean_win + +clean-sql: + cd $(SQLSRC) && $(MAKE) "RM_F=del /f" clean + +distclean: clean clean-lua clean-sql clean-rltiles + $(DELETE) $(OPATH)\*.o + $(DELETE) *.o + $(DELETE) bones.* + $(DELETE) $(OPATH)\bones.* + $(DELETE) morgue.txt + $(DELETE) $(OPATH)\morgue.txt + $(DELETE) scores + $(DELETE) $(OPATH)\scores + $(DELETE) crawl.exe + $(DELETE) $(subst /,\,$(APPNAME)) + $(DELETE) *.sav + $(DELETE) $(OPATH)\*.sav + $(DELETE) core + $(DELETE) $(OPATH)\core + $(DELETE) *.0* + $(DELETE) $(OPATH)\*.0* + $(DELETE) *.lab + $(DELETE) $(OPATH)\*.lab + +$(APPNAME): $(GAME_DEPENDS) + ${CXX} ${LDFLAGS} $(CFLAGS) $(OBJECTS) -o $(APPNAME) $(LIB) + strip $(APPNAME) + +debug: $(GAME_DEPENDS) + ${CXX} ${LDFLAGS} $(CFLAGS) $(OBJECTS) -o $(APPNAME) $(LIB) + +profile: $(GAME_DEPENDS) + ${CXX} -g -p ${LDFLAGS} $(CFLAGS) $(OBJECTS) -o $(APPNAME) $(LIB) + +$(OPATH)/%.o: %.cc + ${CXX} ${CFLAGS} -o $@ -c $< + +$(OPATH)/%.o: $(UTIL)%.cc + $(CXX) $(YCFLAGS) -o $@ -c $< + +############################################################################# +# Build Lua + +$(LUASRC)\$(LUALIBA): + @echo Building Lua... + @cd $(LUASRC) && $(MAKE) crawl_mingw + +############################################################################# +# Build SQLite + +$(FSQLLIBA): + @echo Building SQLite + cd $(SQLSRC) && $(MAKE) diff --git a/crawl-ref/source/menu.cc b/crawl-ref/source/menu.cc index a486b9cea9..48aa0100bc 100644 --- a/crawl-ref/source/menu.cc +++ b/crawl-ref/source/menu.cc @@ -12,6 +12,7 @@ #include "macro.h" #include "message.h" #include "player.h" +#include "tiles.h" #include "tutorial.h" #include "view.h" #include "initfile.h" @@ -128,8 +129,11 @@ void Menu::do_menu() alive = true; while (alive) { +#ifdef USE_TILE + TileRedrawInv(REGION_INV2); +#endif int keyin = getchm(c_getch); - + if (!process_key( keyin )) return; } @@ -522,6 +526,20 @@ void Menu::select_index( int index, int qty ) } } +int Menu::get_entry_index( const MenuEntry *e ) const +{ + int index = 0; + for (unsigned int i = first_entry; i < items.size(); i++) + { + if (items[i] == e) + return index; + if (items[i]->quantity != 0) + index++; + } + + return -1; +} + void Menu::draw_menu() { clrscr(); @@ -542,6 +560,10 @@ void Menu::draw_menu() gotoxy( 1, y_offset + pagesize - count_linebreaks(more) ); more.display(); } + +#ifdef USE_TILE + TileRedrawInv(REGION_INV2); +#endif } void Menu::update_title() @@ -871,7 +893,7 @@ int slider_menu::item_colour(int index, const MenuEntry *me) const int colour = Menu::item_colour(index, me); if (index == selected && selected != -1) { -#if defined(WIN32CONSOLE) || defined(DOS) +#if defined(WIN32CONSOLE) || defined(DOS) || defined (USE_TILE) colour = dos_brand(colour, CHATTR_REVERSE); #else colour |= COLFLAG_REVERSE; @@ -1475,9 +1497,15 @@ bool formatted_scroller::process_key( int keyin ) case CK_ESCAPE: return false; case ' ': case '+': case '=': case CK_PGDN: case '>': case '\'': +#ifdef USE_TILE + case CK_MOUSE_B5: +#endif repaint = page_down(); break; case '-': case CK_PGUP: case '<': case ';': +#ifdef USE_TILE + case CK_MOUSE_B4: +#endif repaint = page_up(); break; case CK_UP: diff --git a/crawl-ref/source/menu.h b/crawl-ref/source/menu.h index 014932cd77..86bdc4f246 100644 --- a/crawl-ref/source/menu.h +++ b/crawl-ref/source/menu.h @@ -46,6 +46,7 @@ struct menu_letter }; struct item_def; +class Menu; int menu_colour(const std::string &itemtext, const std::string &prefix = "", @@ -218,6 +219,9 @@ public: size_t item_count() const { return items.size(); } + // Get entry index, skipping quantity 0 entries. Returns -1 if not found. + int get_entry_index( const MenuEntry *e ) const; + public: typedef std::string (*selitem_tfn)( const std::vector *sel ); typedef void (*drawitem_tfn)(int index, const MenuEntry *me); diff --git a/crawl-ref/source/message.cc b/crawl-ref/source/message.cc index 72dcc74086..1f36b305db 100644 --- a/crawl-ref/source/message.cc +++ b/crawl-ref/source/message.cc @@ -758,6 +758,10 @@ void more(void) message_out(crawl_view.msgsz.y - 1, LIGHTGREY, "--more--", 2, false); +#ifdef USE_TILE + mouse_control mc(MOUSE_MODE_MORE); +#endif + do keypress = getch(); while (keypress != ' ' && keypress != '\r' && keypress != '\n'); @@ -808,7 +812,7 @@ std::string get_last_messages(int mcount) void replay_messages(void) { int win_start_line = 0; - unsigned char keyin; + int keyin; bool full_buffer = true; int num_msgs = NUM_STORED_MESSAGES; @@ -844,7 +848,7 @@ void replay_messages(void) { clrscr(); - gotoxy(1, 1); + gotoxy(1, 1, GOTO_CRT); for (int i = 0; i < num_lines - 2; i++) { @@ -880,7 +884,7 @@ void replay_messages(void) break; case FSOP_TEXT: textcolor( colour ); - gotoxy(curcol, wherey()); + gotoxy(curcol, wherey(), GOTO_CRT); cprintf(fs.ops[j].text.c_str()); curcol += multibyte_strlen(fs.ops[j].text); break; @@ -923,7 +927,7 @@ void replay_messages(void) cprintf( "<< Lines %d-%d of %d (Up: k<-8, Down: j>+2) >>", rel_start, rel_end, num_msgs ); - keyin = get_ch(); + keyin = getch(); if ((full_buffer && NUM_STORED_MESSAGES > num_lines - 2) || (!full_buffer && Next_Message > num_lines - 2)) @@ -931,6 +935,11 @@ void replay_messages(void) int new_line; int end_mark; +#ifdef USE_TILE + if (keyin == CK_MOUSE_B4) keyin = '8'; + if (keyin == CK_MOUSE_B5) keyin = '2'; +#endif + if (keyin == 'k' || keyin == '8' || keyin == '-' || keyin == '<') { new_line = win_start_line - (num_lines - 2); diff --git a/crawl-ref/source/misc.cc b/crawl-ref/source/misc.cc index 4ae926d439..9d55eeda9d 100644 --- a/crawl-ref/source/misc.cc +++ b/crawl-ref/source/misc.cc @@ -71,6 +71,7 @@ #include "stash.h" #include "state.h" #include "stuff.h" +#include "tiles.h" #include "terrain.h" #include "transfor.h" #include "traps.h" @@ -1193,6 +1194,16 @@ void down_stairs( int old_level, dungeon_feature_type force_stair, && !level_type_exits_down(old_level_type)) you.your_level--; + +#ifdef USE_TILE + // init micromap + GmapInit(false); // do not erase tile backup data + TileLoadWall(false); + tile_clear_buf(); + if (newlevel) + tile_init_flavor(); +#endif // USE_TILE + switch (you.level_type) { case LEVEL_ABYSS: @@ -1329,7 +1340,7 @@ void new_level(void) { textcolor(LIGHTGREY); - gotoxy(crawl_view.hudp.x + 6, 12); + gotoxy(7, 12, GOTO_STAT); #if DEBUG_DIAGNOSTICS cprintf( "(%d) ", you.your_level + 1 ); diff --git a/crawl-ref/source/mutation.cc b/crawl-ref/source/mutation.cc index a970cb99e9..767eea665d 100644 --- a/crawl-ref/source/mutation.cc +++ b/crawl-ref/source/mutation.cc @@ -27,7 +27,7 @@ #include #endif -#ifdef UNIX +#if defined(UNIX) && !defined(USE_TILE) #include "libunix.h" #endif diff --git a/crawl-ref/source/newgame.cc b/crawl-ref/source/newgame.cc index d5cb61f633..3da0bd96f6 100644 --- a/crawl-ref/source/newgame.cc +++ b/crawl-ref/source/newgame.cc @@ -2268,6 +2268,11 @@ static void enter_player_name(bool blankOK) if (!read_player_name(name, kNameLen, existing_chars, char_menu)) end(0); +#ifdef USE_TILE + clrscr(); + gotoxy(1, 1); +#endif + // Laboriously trim the damn thing. std::string read_name = name; trim_string(read_name); @@ -2280,7 +2285,7 @@ static void enter_player_name(bool blankOK) static bool validate_player_name(bool verbose) { -#if defined(DOS) || defined(WIN32CONSOLE) +#if defined(DOS) || defined(WIN32CONSOLE) || defined(WIN32TILES) // quick check for CON -- blows up real good under DOS/Windows if (stricmp(you.your_name, "con") == 0 || stricmp(you.your_name, "nul") == 0 diff --git a/crawl-ref/source/output.cc b/crawl-ref/source/output.cc index 2d3ce26638..234ec87019 100644 --- a/crawl-ref/source/output.cc +++ b/crawl-ref/source/output.cc @@ -40,6 +40,8 @@ #include "stuff.h" #include "transfor.h" +#include "tiles.h" + static int bad_ench_colour( int lvl, int orange, int red ) { if (lvl > red) @@ -71,7 +73,7 @@ void update_message_status() { textcolor(LIGHTBLUE); - gotoxy(crawl_view.hudp.x + 35, 2); + gotoxy(36, 2, GOTO_STAT); if (SysEnv.have_messages) cprintf("(msg)"); else @@ -94,19 +96,54 @@ void update_turn_count() // FIXME: Create some kind of layout manager class so we can // templatise the heads-up display layout and stop hardcoding // these coords. - gotoxy(crawl_view.hudp.x + 21, 10); + gotoxy(22, 10, GOTO_STAT); textcolor(LIGHTGREY); // Show the turn count starting from 1. You can still quit on turn 0. cprintf("%ld", you.num_turns); } +#ifdef USE_TILE +void draw_hp_bar(int hp, int maxhp) +{ +#define HPBAR_OX 20 +#define HPBAR_OY 3 +#define HPBAR_WIDTH (40-HPBAR_OX) + + static int oldhp = 0; + static int oldhx = 0; + int cx; + int hx = HPBAR_WIDTH * hp / maxhp; + + gotoxy(HPBAR_OX, HPBAR_OY, GOTO_STAT); + + for (cx=0;cxhp && oldhx>hx && cx=hx) + textcolor(BLACK + RED*16); + + putch(' '); + } + + textcolor(LIGHTGREY); + oldhp=hp; + oldhx=hx; +} +#endif + void print_stats(void) { textcolor(LIGHTGREY); - const int xcol = crawl_view.hudp.x; - +#ifdef USE_TILE + if (you.redraw_armour_class || you.wield_change) + TilePlayerRefresh(); +#endif + // Displayed evasion is now tied to dex. if (you.redraw_dexterity) you.redraw_evasion = true; @@ -130,7 +167,7 @@ void print_stats(void) } } - gotoxy(xcol + 4, 3); + gotoxy(5, 3, GOTO_STAT); cprintf( "%d", you.hp ); @@ -142,6 +179,10 @@ void print_stats(void) clear_to_end_of_line(); you.redraw_hit_points = 0; + +#ifdef USE_TILE + draw_hp_bar(you.hp, you.hp_max); +#endif } if (you.redraw_magic_points) @@ -160,7 +201,7 @@ void print_stats(void) break; } } - gotoxy(xcol + 7, 4); + gotoxy(8, 4, GOTO_STAT); cprintf( "%d", you.magic_points); @@ -181,7 +222,7 @@ void print_stats(void) if (you.max_strength > 72) you.max_strength = 72; - gotoxy(xcol + 5, 7); + gotoxy(6, 7, GOTO_STAT); if (you.duration[DUR_MIGHT]) textcolor(LIGHTBLUE); // no end of effect warning @@ -211,7 +252,7 @@ void print_stats(void) if (you.max_intel > 72) you.max_intel = 72; - gotoxy(xcol + 5, 8); + gotoxy(6, 8, GOTO_STAT); if (you.intel < you.max_intel) textcolor(YELLOW); @@ -237,7 +278,7 @@ void print_stats(void) if (you.max_dex > 72) you.max_dex = 72; - gotoxy(xcol + 5, 9); + gotoxy(6, 9, GOTO_STAT); if (you.dex < you.max_dex) textcolor(YELLOW); @@ -255,7 +296,7 @@ void print_stats(void) if (you.redraw_armour_class) { - gotoxy(xcol + 4, 5); + gotoxy(5, 5, GOTO_STAT); if (you.duration[DUR_STONEMAIL]) dur_colour( BLUE, (you.duration[DUR_STONEMAIL] <= 6) ); @@ -265,7 +306,7 @@ void print_stats(void) cprintf( "%d ", player_AC() ); textcolor( LIGHTGREY ); - gotoxy(xcol + 10, 5); + gotoxy(11, 5, GOTO_STAT); if (you.duration[DUR_CONDENSATION_SHIELD]) //jmf: added 24mar2000 textcolor( LIGHTBLUE ); // no end of effect warning @@ -278,7 +319,7 @@ void print_stats(void) if (you.redraw_evasion) { - gotoxy(xcol + 4, 6); + gotoxy(5, 6, GOTO_STAT); if (you.duration[DUR_FORESCRY]) textcolor(LIGHTBLUE); // no end of effect warning @@ -291,14 +332,14 @@ void print_stats(void) if (you.redraw_gold) { - gotoxy(xcol + 6, 10); + gotoxy(7, 10, GOTO_STAT); cprintf( "%-8d", you.gold ); you.redraw_gold = 0; } if (you.redraw_experience) { - gotoxy(xcol + 12, 11); + gotoxy(13, 11, GOTO_STAT); #if DEBUG_DIAGNOSTICS cprintf( "%d/%lu (%d/%d)", @@ -315,9 +356,9 @@ void print_stats(void) if (you.wield_change) { - gotoxy(xcol, 13); + gotoxy(1, 13, GOTO_STAT); clear_to_end_of_line(); - gotoxy(xcol, 13); + gotoxy(1, 13, GOTO_STAT); if (you.weapon()) { @@ -359,9 +400,9 @@ void print_stats(void) if (you.redraw_status_flags & REDRAW_LINE_1_MASK) { - gotoxy(xcol, 14); + gotoxy(1, 14, GOTO_STAT); clear_to_end_of_line(); - gotoxy(xcol, 14); + gotoxy(1, 14, GOTO_STAT); switch (you.burden_state) { @@ -430,9 +471,9 @@ void print_stats(void) if (you.redraw_status_flags & REDRAW_LINE_2_MASK) { - gotoxy(xcol, 15); + gotoxy(1, 15, GOTO_STAT); clear_to_end_of_line(); - gotoxy(xcol, 15); + gotoxy(1, 15, GOTO_STAT); // Max length of this line = 8 * 5 - 1 = 39 if (you.duration[DUR_PRAYER]) @@ -527,9 +568,9 @@ void print_stats(void) if (you.redraw_status_flags & REDRAW_LINE_3_MASK) { - gotoxy(xcol, 16); + gotoxy(1, 16, GOTO_STAT); clear_to_end_of_line(); - gotoxy(xcol, 16); + gotoxy(1, 16, GOTO_STAT); // Max length of this line = 7 * 5 + 3 - 1 = 37 // Note the usage of bad_ench_colour() correspond to levels that @@ -615,7 +656,7 @@ void print_stats(void) #if DEBUG_DIAGNOSTICS // debug mode GPS - gotoxy(xcol, 17); + gotoxy(1, 17, GOTO_STAT); cprintf( "Position (%2d,%2d)", you.x_pos, you.y_pos ); #endif diff --git a/crawl-ref/source/player.cc b/crawl-ref/source/player.cc index 6b0ba6ef97..f2f69df1dc 100644 --- a/crawl-ref/source/player.cc +++ b/crawl-ref/source/player.cc @@ -70,6 +70,7 @@ #include "travel.h" #include "tutorial.h" #include "view.h" +#include "tiles.h" #include "xom.h" std::string pronoun_you(description_level_type desc) @@ -256,6 +257,17 @@ bool move_player_to_grid( int x, int y, bool stepped, bool allow_shift, // move the player to location you.moveto(x, y); +#ifdef USE_TILE + // We could check for this above, but we need to do this post-move + // to force the merfolk tile to be out of water. + if ((!grid_is_water(new_grid) && grid_is_water(old_grid) || + grid_is_water(new_grid) && !grid_is_water(old_grid)) + && you.species == SP_MERFOLK) + { + TilePlayerRefresh(); + } +#endif + viewwindow( true, false ); // Other Effects: @@ -2626,6 +2638,10 @@ void forget_map(unsigned char chance_forgotten, bool force) } } } +#ifdef USE_TILE + GmapInit(false); + tile_clear_buf(); +#endif } // end forget_map() void gain_exp( unsigned int exp_gained, unsigned int* actual_gain, @@ -2979,6 +2995,9 @@ void level_change(bool skip_ability_increase) case SP_BASE_DRACONIAN: if (you.experience_level == 7) { +#ifdef USE_TILE + TilePlayerRefresh(); +#endif switch (you.species) { case SP_RED_DRACONIAN: @@ -3746,7 +3765,7 @@ void redraw_skill(const std::string &your_name, const std::string &class_name) title = trimmed_name + ", " + class_name; } - gotoxy(crawl_view.hudp.x, 1); + gotoxy(1, 1, GOTO_STAT); textcolor( LIGHTGREY ); cprintf( "%-41s", title.c_str() ); diff --git a/crawl-ref/source/randart.cc b/crawl-ref/source/randart.cc index ec20c82896..c01c0a6a9c 100644 --- a/crawl-ref/source/randart.cc +++ b/crawl-ref/source/randart.cc @@ -1859,6 +1859,11 @@ static unrandart_entry *seekunrandart( const item_def &item ) return &unranddata[idx]; } +int find_unrandart_index(int item_number) +{ + return find_unrandart_index(mitm[item_number]); +} + int find_okay_unrandart(unsigned char aclass, unsigned char atype) { int ret = -1; diff --git a/crawl-ref/source/randart.h b/crawl-ref/source/randart.h index 726b94396a..795ee11099 100644 --- a/crawl-ref/source/randart.h +++ b/crawl-ref/source/randart.h @@ -113,5 +113,6 @@ void set_unrandart_exist(int whun, bool is_exist); * called from: items * *********************************************************************** */ int find_unrandart_index(const item_def& artefact); +int find_unrandart_index(const item_def &item); #endif diff --git a/crawl-ref/source/rltiles/blank.bmp b/crawl-ref/source/rltiles/blank.bmp new file mode 100644 index 0000000000..ff49258a5d Binary files /dev/null and b/crawl-ref/source/rltiles/blank.bmp differ diff --git a/crawl-ref/source/rltiles/bmp2png/README b/crawl-ref/source/rltiles/bmp2png/README new file mode 100644 index 0000000000..b4ace21f2d --- /dev/null +++ b/crawl-ref/source/rltiles/bmp2png/README @@ -0,0 +1,69 @@ +bmp2png / png2bmp version 1.62 - Sep 04, 2005 +--------------------------------------------- + +bmp2png/png2bmp is a pair of simple command-line utilities that convert +between Windows BMP format and PNG (Portable Network Graphics). + +This software is freeware. + + +Using them +---------- + +The basic command line is: + + bmp2png [-options] list of bmp files ... + png2bmp [-options] list of png files ... + +The input files are not modified; the output data is written to files +which have the same names except for extension. bmp2png always uses +".png" for the output file name's extension; png2bmp uses ".bmp". + +To list the options, simply type "bmp2png" or "png2bmp" with no +arguments. + + +Copyright notice, and license +----------------------------- + +bmp2png --- conversion from (Windows or OS/2 style) BMP to PNG +png2bmp --- conversion from PNG to (Windows style) BMP + +Copyright (C) 1999-2005 MIYASAKA Masaru + +Permission to use, copy, modify, and distribute this software and +its documentation for any purpose and without fee is hereby granted, +provided that the above copyright notice appear in all copies and +that both that copyright notice and this permission notice appear +in supporting documentation. This software is provided "as is" +without express or implied warranty. + + +The latest version +------------------ + +To get the latest version of bmp2png/png2bmp, please visit the +bmp2png/png2bmp home page: + + http://hp.vector.co.jp/authors/VA010446/b2p-home/ + + +Major changes +------------- + +version 1.60 [August 25, 2004] + bmp2png now can read all types of BMP file, including + 16/32 bits/pixel BMP, bitfield BMP, and RLE-encoded BMP. + Added -P option to bmp2png, which allows to make one particular + color fully transparent. + +version 1.61 [September 4, 2004] + (executable) Fixed a file-corruption bug which was introduced + in libpng 1.2.6. + (source code) Added support for emx complier (not tested). + +version 1.62 [September 4, 2005] + Added alpha channel support. (Added -A, -B and -R options.) + + +[end] diff --git a/crawl-ref/source/rltiles/bmp2png/bmp2png.c b/crawl-ref/source/rltiles/bmp2png/bmp2png.c new file mode 100644 index 0000000000..245013e7c8 --- /dev/null +++ b/crawl-ref/source/rltiles/bmp2png/bmp2png.c @@ -0,0 +1,1078 @@ +/* +** bmp2png --- conversion from (Windows or OS/2 style) BMP to PNG +** +** Copyright (C) 1999-2005 MIYASAKA Masaru +** +** For conditions of distribution and use, +** see copyright notice in common.h. +*/ + +#include "common.h" +#include "bmphed.h" + +#define BMP2PNG_VERSION "1.62 (Sep 4, 2005)" +#define BMP2PNG_COPYRIGHT "Copyright (C) 1999-2005 MIYASAKA Masaru" + +char outnam[FILENAME_MAX]; +char outdir[FILENAME_MAX]; +int deletesrc = 0; +int copytime = 0; +int complevel = 6; +int interlace = 0; +int filters = 0; +int alpha_bmp = 0; + +#define B2P_TRANSPARENT_NONE 0 +#define B2P_TRANSPARENT_RGB 1 +#define B2P_TRANSPARENT_PALETTE 2 + +int trans_type = B2P_TRANSPARENT_NONE; +png_color_16 trans_values; + +#if defined(WIN32) || defined(MSDOS) +const char errlogfile[] = ".\\B2PERROR.LOG"; +#else +const char errlogfile[] = "./b2perror.log"; +#endif + + /* error messages */ +#ifdef JAPANESE /* ---------- */ +const char wrn_invalidtrans[] = + "WARNING: Fw̌`܂(܂) - '%s'\n"; +const char wrn_notranscolor[] = + "WARNING: w肳ꂽFɈvF܂ - %s\n" + "WARNING: -> -P IvV ł̓Fw͖܂\n"; +const char wrn_transtruecolor[] = + "WARNING: 摜̓tJ[`ł - %s\n" + "WARNING: -> -P IvV ł̓Fw͖܂\n"; +const char wrn_imagehasalpha[] = + "WARNING: At@`lt̉摜ł - %s\n" + "WARNING: -> -P IvV ł̓Fw͖܂\n"; +const char wrn_alphaallzero[] = + "WARNING: SԖڂ̃`l̓At@`lł͂Ȃ悤ł(ׂĂO) - %s\n" + "WARNING: -> SԖڂ̃`l(At@`l)͔j܂\n"; +const char wrn_mkdirfail[] = + "WARNING: o͐fBNg܂ - %s\n" + "WARNING: -> -%c IvV ł̏o͐w͖܂\n"; +const char err_ropenfail[] = "SKIPPED: Yt@C܂ - %s\n"; +const char err_wopenfail[] = "SKIPPED: o̓t@C쐬ł܂ - %s\n"; +const char err_outofmemory[] = "SKIPPED: Ɨpmۂł܂ - %s\n"; + /* -- */ +const char err_readeof[] = "SKIPPED: t@CrŐ؂Ă܂ - %s\n"; +const char err_readerr[] = "SKIPPED: ǂݍ݃G[܂ - %s\n"; +const char err_not_a_bmp[] = "SKIPPED: BMP t@Cł͂܂ - %s\n"; +const char err_invalid_hed[] = + "SKIPPED: BMP t@C̃wb_TCYł - %s\n"; +const char err_width_zero[] = "SKIPPED: 摜̕O(܂͕)ł - %s\n"; +const char err_height_zero[] = "SKIPPED: 摜̍O(܂͕)ł - %s\n"; +const char err_compression[] = "SKIPPED: sȈk^Cvł - %s\n"; +const char err_invalid_bpp[] = "SKIPPED: 摜̐Fł - %s\n"; +const char err_no_palette[] = "SKIPPED: pbgĂ܂ - %s\n"; +#else /* ------------------- */ +const char wrn_invalidtrans[] = + "WARNING: Invalid transparent color specifier - '%s'. ignored.\n"; +const char wrn_notranscolor[] = + "WARNING: Specified transparent color is not present in palette - %s\n" + "WARNING: -> Transparent color specified by '-P' will be ignored.\n"; +const char wrn_transtruecolor[] = + "WARNING: Image is truecolor format - %s\n" + "WARNING: -> Transparent color specified by '-P' will be ignored.\n"; +const char wrn_imagehasalpha[] = + "WARNING: Image has an alpha channel - %s\n" + "WARNING: -> Transparent color specified by '-P' will be ignored.\n"; +const char wrn_alphaallzero[] = + "WARNING: The 4th channel doesn't seem to be an alpha channel (all zero) - %s\n" + "WARNING: -> The 4th channel (alpha channel) will be discarded.\n"; +const char wrn_mkdirfail[] = + "WARNING: Cannot create a directory - %s\n" + "WARNING: -> Output directory specified by '-%c' will be ignored.\n"; +const char err_ropenfail[] = "SKIPPED: No such file or directory - %s\n"; +const char err_wopenfail[] = "SKIPPED: Cannot create - %s\n"; +const char err_outofmemory[] = "SKIPPED: Out of memory - %s\n"; + /* -- */ +const char err_readeof[] = "SKIPPED: Premature end of BMP file - %s\n"; +const char err_readerr[] = "SKIPPED: Read operation failed - %s\n"; +const char err_not_a_bmp[] = "SKIPPED: Not a BMP file - %s\n"; +const char err_invalid_hed[] = "SKIPPED: Invalid header size in BMP file - %s\n"; +const char err_width_zero[] = "SKIPPED: Invalid image width - %s\n"; +const char err_height_zero[] = "SKIPPED: Invalid image height - %s\n"; +const char err_compression[] = "SKIPPED: Unknown compression type - %s\n"; +const char err_invalid_bpp[] = "SKIPPED: Invalid bit depth in BMP file - %s\n"; +const char err_no_palette[] = "SKIPPED: Palette is missing - %s\n"; +#endif /* ------------------- */ + +static int transparent_color(png_color_16p, const char *); +static int png_filters(const char *); +static BOOL read_bmp(char *, IMAGE *); +static BOOL is_4th_alpha(IMAGE *); +static const char *read_rgb_bits(IMAGE *, FILE *); +static const char *read_bitfield_bits(IMAGE *, FILE *, DWORD *, UINT); +static const char *decompress_rle_bits(IMAGE *, FILE *); +static unsigned long mgetdwl(void *); +static unsigned int mgetwl(void *); +static BOOL write_png(char *, IMAGE *); +static void usage_exit(char *, int); + + + +/* +** C +*/ +int main(int argc, char *argv[]) +{ + char outf[FILENAME_MAX]; + IMAGE image; + int opt; + char *arg; + char *p, c; + int r_stdin, w_stdout; + int failure = 0, success = 0; + +#ifdef __LCC__ /* lcc-win32 */ + char **envp; + void _GetMainArgs(int *, char ***, char ***, int); + _GetMainArgs(&argc, &argv, &envp, 1); +#endif +#ifdef __EMX__ + _wildcard(&argc, &argv); +#endif + envargv(&argc, &argv, "B2P"); + + r_stdin = !isatty(fileno(stdin)); + w_stdout = !isatty(fileno(stdout)); + + while (parsearg(&opt, &arg, argc, argv, "DdOoFfPp")) { + if (isdigit(opt)) { /* Zlib Compression Level (0-9) */ + complevel = opt - '0'; + continue; + } + switch (toupper(opt)) { + case 'I': interlace ^= 1; break; + case 'E': deletesrc ^= 1; break; + case 'T': copytime ^= 1; break; + case 'Q': quietmode ^= 1; break; + case 'L': errorlog ^= 1; break; + + case 'X': + r_stdin = 0; + w_stdout = 0; + break; + + case 'A': + alpha_bmp ^= 1; + break; + + case 'B': + alpha_bmp ^= 1; + break; + + case 'R': + /* '-R' option of png2bmp (ignored on bmp2png) */ + break; + + case 'F': /* filter types to be used in libpng */ + filters = png_filters(arg); + break; + + case 'P': /* transparent color */ + trans_type = transparent_color(&trans_values, arg); + break; + + case 'D': /* output directory */ + if (*arg == '-') arg = NULL; + if (arg == NULL) { + outdir[0] = '\0'; + } else { + strcpy(outdir, arg); + addslash(outdir); + if (makedir(outdir) != 0) { + xxprintf(wrn_mkdirfail, outdir, 'D'); + outdir[0] = '\0'; + } + } + break; + + case 'O': /* output filename */ + if (arg == NULL) { + outnam[0] = '\0'; + } else { + strcpy(outnam, arg); + p = basname(outnam); + c = *p; *p = '\0'; + if (makedir(outnam) != 0) { + xxprintf(wrn_mkdirfail, outnam, 'O'); + outnam[0] = '\0'; + } else { + *p = c; + } + } + break; + + case 0x00: /* input file spec */ + if (outnam[0] != '\0') { + strcpy(outf, outnam); + outnam[0] = '\0'; + } else if (w_stdout) { + if (!read_bmp(arg, &image)) return 1; + if (!write_png(NULL, &image)) return 1; + if (deletesrc) remove(arg); + return 0; + } else { + if (outdir[0] != '\0') { + strcat(strcpy(outf, outdir), basname(arg)); + } else { + strcpy(outf, arg); + } +#ifdef WIN32_LFN + strcpy(suffix(outf), is_dos_filename(outf) ? ".PNG" : ".png"); +#else + strcpy(suffix(outf), ".png"); +#endif + } + /* ---------------------- */ + if (!read_bmp(arg, &image)) { + failure++; + break; + } + renbak(outf); + if (!write_png(outf, &image)) { + failure++; + break; + } + /* ---------------------- */ + if (copytime) cpyftime(arg, outf); + if (deletesrc) remove(arg); + /* ---------------------- */ + success++; + break; + + default: + ; /* Ignore unknown option */ + } + } + if (failure == 0 && success == 0) { + if (!r_stdin) usage_exit(argv[0], 255); + if (!read_bmp(NULL, &image)) return 1; + if (outnam[0] != '\0') { + renbak(outnam); + return !write_png(outnam, &image); + } else if (w_stdout) { + return !write_png(NULL, &image); + } else { + strcat(strcpy(outf, outdir), "___stdin.png"); + renbak(outf); + return !write_png(outf, &image); + } + } + + return (failure > 255) ? 255 : failure; +} + + +#define elemsof(a) (sizeof(a) / sizeof((a)[0])) + +/* +** PNG ̃tB^ʎwǂ +*/ +static int png_filters(const char *arg) +{ + static const struct { char name[8]; int flag; } filter[] = { + { "NONE", PNG_FILTER_NONE }, { "SUB" , PNG_FILTER_SUB }, + { "UP" , PNG_FILTER_UP }, { "AVERAGE", PNG_FILTER_AVG }, + { "AVG" , PNG_FILTER_AVG }, { "PAETH" , PNG_FILTER_PAETH }, + { "ALL" , PNG_ALL_FILTERS }, + { "AUTO", 0 }, { "DEFAULT", 0 } + }; + char c, buf[64]; + int i, flags = 0; + + if (arg == NULL) return 0; /* auto/default */ + + do { + i = 0; + while (c = *(arg++), c != ',' && c != '\0') + if (i < sizeof(buf) - 1) buf[i++] = toupper(c); + buf[i] = '\0'; + + for (i = 0; i < elemsof(filter); i++) { + if (strcmp(buf, filter[i].name) == 0) { + if (filter[i].flag == 0) flags = 0; /* auto/default */ + else flags |= filter[i].flag; + } + } + } while (c != '\0'); + + return flags; +} + + +/* +** Fwǂ +*/ +static int transparent_color(png_color_16p trans_values, const char *arg) +{ + char c, buf[32]; + int i, n; + + if (arg == NULL) return B2P_TRANSPARENT_NONE; + + for (i = 0; (c = arg[i]) != '\0' && i < sizeof(buf)-1; i++) + buf[i] = toupper(c); + buf[i] = '\0'; + + if (strcmp(buf, "NONE") == 0) { + return B2P_TRANSPARENT_NONE; + } + if (buf[0] == '#') { + n = sscanf(buf, "#%2hx%2hx%2hx", &trans_values->red, + &trans_values->green, &trans_values->blue); + if (n == 3 && i >= 7) { + return B2P_TRANSPARENT_RGB; + } + } else { + n = sscanf(buf, "%hu,%hu,%hu", &trans_values->red, + &trans_values->green, &trans_values->blue); + if (n == 3 && trans_values->red <= 255 && + trans_values->green <= 255 && trans_values->blue <= 255) { + return B2P_TRANSPARENT_RGB; + } + if (n == 1 && trans_values->red <= 255) { + trans_values->index = (png_byte)trans_values->red; + return B2P_TRANSPARENT_PALETTE; + } + } + + xxprintf(wrn_invalidtrans, arg); + + return B2P_TRANSPARENT_NONE; +} + + +/* ----------------------------------------------------------------------- +** BMP t@C̓ǂݍ +*/ + +#define ERROR_ABORT(s) do { errmsg = (s); goto error_abort; } while (0) + +/* +** .bmp t@C̓ǂݍ +*/ +static BOOL read_bmp(char *fn, IMAGE *img) +{ + BYTE bfh[FILEHED_SIZE + BMPV5HED_SIZE]; + BYTE *const bih = bfh + FILEHED_SIZE; + BYTE rgbq[RGBQUAD_SIZE]; + DWORD offbits, bihsize, skip; + DWORD compression, color_mask[4]; + UINT palette_size, true_pixdepth; + BOOL alpha_check; + PALETTE *pal; + const char *errmsg; + FILE *fp; + int i; + + imgbuf_init(img); + + if (fn == NULL) { /* read from stdin */ + fn = " (stdin)"; + fp = binary_stdio(fileno(stdin)); + } else { + fp = fopen(fn, "rb"); + } + if (fp == NULL) ERROR_ABORT(err_ropenfail); + + set_status("Reading %.80s", basname(fn)); + + /* ------------------------------------------------------ */ + + for (i = 0; ; i++) { /* skip macbinary header */ + if (fread(bfh, (FILEHED_SIZE + BIHSIZE_SIZE), 1, fp) != 1) + ERROR_ABORT(ferror(fp) ? err_readerr : err_readeof); + if (mgetwl(bfh + BFH_WTYPE) == BMP_SIGNATURE) break; + if (i != 0) ERROR_ABORT(err_not_a_bmp); + if (fread(bfh, (128 - FILEHED_SIZE - BIHSIZE_SIZE), 1, fp) != 1) + ERROR_ABORT(ferror(fp) ? err_readerr : err_readeof); + } + offbits = mgetdwl(bfh + BFH_DOFFBITS); + bihsize = mgetdwl(bfh + BFH_DBIHSIZE); + skip = offbits - bihsize - FILEHED_SIZE; + if (bihsize < COREHED_SIZE || bihsize > BMPV5HED_SIZE || + offbits < (bihsize + FILEHED_SIZE)) ERROR_ABORT(err_invalid_hed); + + if (fread((bih + BIHSIZE_SIZE), (bihsize - BIHSIZE_SIZE), 1, fp) != 1) + ERROR_ABORT(ferror(fp) ? err_readerr : err_readeof); + + if (bihsize >= INFOHED_SIZE) { /* Windows-style BMP */ + img->width = mgetdwl(bih + BIH_LWIDTH); + img->height = mgetdwl(bih + BIH_LHEIGHT); + img->pixdepth = mgetwl(bih + BIH_WBITCOUNT); + img->topdown = FALSE; + compression = mgetdwl(bih + BIH_DCOMPRESSION); + palette_size = RGBQUAD_SIZE; + if (img->height < 0) { + img->height = -img->height; + img->topdown = TRUE; /* top-down BMP */ + } + } else { /* OS/2-style BMP */ + img->width = mgetwl(bih + BCH_WWIDTH); + img->height = mgetwl(bih + BCH_WHEIGHT); + img->pixdepth = mgetwl(bih + BCH_WBITCOUNT); + img->topdown = FALSE; + compression = BI_RGB; + palette_size = RGBTRIPLE_SIZE; + } + img->alpha = FALSE; + alpha_check = FALSE; + true_pixdepth = img->pixdepth; + + if (img->width <= 0) ERROR_ABORT(err_width_zero); + if (img->height <= 0) ERROR_ABORT(err_height_zero); + + switch (compression) { + case BI_RGB: + if (img->pixdepth != 1 && img->pixdepth != 4 && + img->pixdepth != 8 && img->pixdepth != 16 && + img->pixdepth != 24 && img->pixdepth != 32) + ERROR_ABORT(err_invalid_bpp); + + if (img->pixdepth == 32 && alpha_bmp) + alpha_check = TRUE; + + if (img->pixdepth == 16) { + color_mask[3] = 0x0000; /* alpha */ + color_mask[2] = 0x7C00; /* red */ + color_mask[1] = 0x03E0; /* green */ + color_mask[0] = 0x001F; /* blue */ + compression = BI_BITFIELDS; + } + break; + + case BI_BITFIELDS: + if (img->pixdepth != 16 && img->pixdepth != 32) + ERROR_ABORT(err_invalid_bpp); + + if (bihsize < INFOHED_SIZE + 12) { + if (skip < (INFOHED_SIZE + 12 - bihsize)) + ERROR_ABORT(err_invalid_hed); + if (fread((bih + bihsize), (INFOHED_SIZE + 12 - bihsize), 1, fp) + != 1) ERROR_ABORT(ferror(fp) ? err_readerr : err_readeof); + skip -= (INFOHED_SIZE + 12 - bihsize); + } + color_mask[3] = 0x00000000; /* alpha */ + color_mask[2] = mgetdwl(bih + B4H_DREDMASK); /* red */ + color_mask[1] = mgetdwl(bih + B4H_DGREENMASK); /* green */ + color_mask[0] = mgetdwl(bih + B4H_DBLUEMASK); /* blue */ + + if (img->pixdepth == 32 && alpha_bmp && + bihsize >= INFOHED_SIZE + 16) { + color_mask[3] = mgetdwl(bih + B4H_DALPHAMASK); /* alpha */ + if (color_mask[3] != 0x00000000) + img->alpha = TRUE; + } + + if (img->pixdepth == 32 && color_mask[0] == 0x000000FF && + color_mask[1] == 0x0000FF00 && color_mask[2] == 0x00FF0000 && + (color_mask[3] == 0xFF000000 || color_mask[3] == 0x00000000)) { + compression = BI_RGB; + } + break; + + case BI_RLE8: + if (img->pixdepth != 8) + ERROR_ABORT(err_invalid_bpp); + break; + + case BI_RLE4: + if (img->pixdepth != 4) + ERROR_ABORT(err_invalid_bpp); + break; + + default: + ERROR_ABORT(err_compression); + } + + if (img->pixdepth == 16) img->pixdepth = 24; + + if (img->pixdepth <= 8) { + if (skip >= palette_size << img->pixdepth) { + img->palnum = 1 << img->pixdepth; + skip -= palette_size << img->pixdepth; + } else { + img->palnum = skip / palette_size; + skip = skip % palette_size; + } + if (img->palnum == 0) + ERROR_ABORT(err_no_palette); + } else { + img->palnum = 0; + } + if (!imgbuf_alloc(img)) ERROR_ABORT(err_outofmemory); + + /* ------------------------------------------------------ */ + + for (pal = img->palette, i = img->palnum; i > 0; pal++, i--) { + if (fread(rgbq, palette_size, 1, fp) != 1) + ERROR_ABORT(ferror(fp) ? err_readerr : err_readeof); + pal->red = rgbq[RGBQ_RED]; + pal->green = rgbq[RGBQ_GREEN]; + pal->blue = rgbq[RGBQ_BLUE]; + } + for ( ; skip > 0; skip--) { + if (fgetc(fp) == EOF) + ERROR_ABORT(ferror(fp) ? err_readerr : err_readeof); + } + + /* ------------------------------------------------------ */ + + img->sigbit.red = img->sigbit.green = img->sigbit.blue = 8; + img->sigbit.gray = img->sigbit.alpha = 8; + + switch (compression) { + case BI_RGB: + errmsg = read_rgb_bits(img, fp); + break; + case BI_BITFIELDS: + errmsg = read_bitfield_bits(img, fp, color_mask, true_pixdepth); + break; + case BI_RLE8: + case BI_RLE4: + errmsg = decompress_rle_bits(img, fp); + break; + default: + errmsg = err_compression; + } + if (errmsg != NULL) ERROR_ABORT(errmsg); + + if (alpha_check) { + img->alpha = is_4th_alpha(img); + if (!img->alpha) + xxprintf(wrn_alphaallzero, fn); + } + + /* ------------------------------------------------------ */ + + set_status("Read OK %.80s", basname(fn)); + + if (fp != stdin) fclose(fp); + + return TRUE; + +error_abort: /* error */ + xxprintf(errmsg, fn); + if (fp != stdin && fp != NULL) fclose(fp); + imgbuf_free(img); + + return FALSE; +} + + +/* +** S̃`lAt@`lǂׂ +*/ +static BOOL is_4th_alpha(IMAGE *img) +{ + LONG w, h; + BYTE *p; + + if (img->pixdepth == 32) { /* failsafe */ + for (h = img->height, p = img->bmpbits + 3; --h >= 0; ) + for (w = img->width; --w >= 0; p += 4) + if (*p != 0) return TRUE; + } + + return FALSE; +} + + +/* +** BI_RGB (k) `̉摜f[^ǂ +*/ +static const char *read_rgb_bits(IMAGE *img, FILE *fp) +{ +#if 1 + DWORD rd = 16*1024*1024; + DWORD num = img->imgbytes; + BYTE *ptr = img->bmpbits; + + while (num > 0) { + if (rd > num) rd = num; + + if (fread(ptr, rd, 1, fp) != 1) + return ferror(fp) ? err_readerr : err_readeof; + + ptr += rd; num -= rd; + } +#else + if (fread(img->bmpbits, img->imgbytes, 1, fp) != 1) + return ferror(fp) ? err_readerr : err_readeof; +#endif + return NULL; +} + + +/* +** BI_BITFIELDS `̉摜f[^ǂ +*/ +static const char *read_bitfield_bits(IMAGE *img, FILE *fp, DWORD *color_mask, + UINT true_pixdepth) +{ + int color_shift[4]; + int color_sigbits[4]; + BYTE color_tbl[4][1<<7]; + DWORD true_rowbytes; + BYTE *row, *p, *q; + LONG w, h; + DWORD v, u; + int i, j, k; + + for (i = 0; i < 4; i++) { + v = color_mask[i]; + if (v == 0) { + color_shift[i] = 0; + color_sigbits[i] = 8; + } else { + for (j = 0; (v & 1) == 0; v >>= 1, j++) ; + for (k = 0; (v) != 0; v >>= 1, k++) ; + color_shift[i] = j; + color_sigbits[i] = k; + } + if (color_sigbits[i] <= 7) { + k = (1 << color_sigbits[i]) - 1; + for (j = 0; j <= k; j++) + color_tbl[i][j] = (0xFF * j + k/2) / k; + } + } + + if (color_sigbits[3] < 8) img->sigbit.alpha = color_sigbits[3]; + if (color_sigbits[2] < 8) img->sigbit.red = color_sigbits[2]; + if (color_sigbits[1] < 8) img->sigbit.green = color_sigbits[1]; + if (color_sigbits[0] < 8) img->sigbit.blue = color_sigbits[0]; + + true_rowbytes = ((DWORD)img->width * (true_pixdepth/8) + 3) & (~3UL); + + for (h = img->height, row = img->bmpbits; --h >= 0; + row += img->rowbytes) { + if (fread(row, true_rowbytes, 1, fp) != 1) + return ferror(fp) ? err_readerr : err_readeof; + + switch (true_pixdepth) { + case 16: + for (w = img->width, p = row + (w-1)*2, q = row + (w-1)*3; + --w >= 0; p -= 2, q -= 3) { + v = ((UINT)p[0]) + ((UINT)p[1] << 8); + for (i = 0; i < 3; i++) { + u = (v & color_mask[i]) >> color_shift[i]; + if (color_sigbits[i] <= 7) + u = color_tbl[i][u]; + else if (color_sigbits[i] >= 9) + u >>= (color_sigbits[i] - 8); + q[i] = (BYTE) u; + } + } + break; + + case 32: + for (w = img->width, p = row; --w >= 0; p += 4) { + v = ((DWORD)p[0] ) + ((DWORD)p[1] << 8) + + ((DWORD)p[2] << 16) + ((DWORD)p[3] << 24); + for (i = 0; i < 4; i++) { + u = (v & color_mask[i]) >> color_shift[i]; + if (color_sigbits[i] <= 7) + u = color_tbl[i][u]; + else if (color_sigbits[i] >= 9) + u >>= (color_sigbits[i] - 8); + p[i] = (BYTE) u; + } + } + break; + } + } + + return NULL; +} + + +/* +** BI_RLE8/BI_RLE4 `̉摜f[^ǂ +*/ +static const char *decompress_rle_bits(IMAGE *img, FILE *fp) +{ + BYTE buf[1024]; /* 258 or above */ + BYTE *bfptr = buf; + UINT bfcnt = 0; + UINT rd, reclen; + BYTE *row = img->bmpbits; + LONG x = 0, y = 0; + BYTE *p, c; + int n; + + memset(img->bmpbits, 0, img->imgbytes); + + for (;;) { + while (bfcnt < (reclen = 2) || + (bfptr[0] == 0 && + ((bfptr[1] == 2 && bfcnt < (reclen += 2)) || + (bfptr[1] >= 3 && + bfcnt < (reclen += (bfptr[1] * img->pixdepth + 15) / 16 * 2) + )))) { + if (bfptr != buf && bfcnt != 0) memmove(buf, bfptr, bfcnt); + if ((rd = fread(buf+bfcnt, 1, sizeof(buf)-bfcnt, fp)) == 0) { + if (x >= img->width) { /*x = 0;*/ y += 1; } + if (y >= img->height) return NULL; /* missing EoB marker */ + else return ferror(fp) ? err_readerr : err_readeof; + } + bfptr = buf; + bfcnt += rd; + } + if (y >= img->height) { + /* We simply discard the remaining records */ + if (bfptr[0] == 0 && bfptr[1] == 1) break; /* EoB marker */ + bfptr += reclen; + bfcnt -= reclen; + continue; + } + if (bfptr[0] != 0) { /* Encoded-mode record */ + n = bfptr[0]; c = bfptr[1]; + switch (img->pixdepth) { + case 8: /* BI_RLE8 */ + while (n > 0 && x < img->width) { + row[x] = c; + n--; x++; + } + break; + case 4: /* BI_RLE4 */ + if (x % 2 != 0 && x < img->width) { + c = (c >> 4) | (c << 4); + row[x/2] = (row[x/2] & 0xF0) | (c & 0x0F); + n--; x++; + } + while (n > 0 && x < img->width) { + row[x/2] = c; + n-=2; x+=2; + } + if (n < 0) x--; + break; + } + } else if (bfptr[1] >= 3) { /* Absolute-mode record */ + n = bfptr[1]; p = bfptr + 2; + switch (img->pixdepth) { + case 8: /* BI_RLE8 */ + while (n > 0 && x < img->width) { + row[x] = *p; + n--; x++; p++; + } + break; + case 4: /* BI_RLE4 */ + if (x % 2 != 0) { + if (x < img->width) { + row[x/2] = (row[x/2] & 0xF0) | (*p >> 4); + n--; x++; + } + while (n > 0 && x < img->width) { + row[x/2] = (p[0] << 4) | (p[1] >> 4); + n-=2; x+=2; p++; + } + if (n < 0) x--; + } else { + while (n > 0 && x < img->width) { + row[x/2] = *p; + n-=2; x+=2; p++; + } + if (n < 0) x--; + } + break; + } + } else if (bfptr[1] == 2) { /* Delta record */ + x += bfptr[2]; y += bfptr[3]; + row += bfptr[3] * img->rowbytes; + } else if (bfptr[1] == 0) { /* End of line marker */ + x = 0; y += 1; + row += img->rowbytes; + } else /*if (bfptr[1] == 1)*/ { /* End of bitmap marker */ + break; + } + bfptr += reclen; + bfcnt -= reclen; + } + + return NULL; +} + + +/* +** little-endien ` 4oCgǂ +*/ +static unsigned long mgetdwl(void *ptr) +{ + unsigned char *p = ptr; + + return ((unsigned long)p[0] ) + ((unsigned long)p[1] << 8) + + ((unsigned long)p[2] << 16) + ((unsigned long)p[3] << 24); +} + + +/* +** little-endien ` 2oCgǂ +*/ +static unsigned int mgetwl(void *ptr) +{ + unsigned char *p = ptr; + + return ((unsigned int)p[0]) + ((unsigned int)p[1] << 8); +} + + +/* ----------------------------------------------------------------------- +** PNG t@C̏ +*/ + +/* +** .png t@C̏ +*/ +static BOOL write_png(char *fn, IMAGE *img) +{ + png_structp png_ptr; + png_infop info_ptr; + int bit_depth; + int color_type; + int interlace_type; + png_byte trans[256]; + unsigned i; + const char *errmsg; + FILE *fp; + + if (fn == NULL) { + fn = " (stdout)"; + fp = binary_stdio(fileno(stdout)); + } else { + fp = fopen(fn, "wb"); + } + if (fp == NULL) ERROR_ABORT(err_wopenfail); + + set_status("Writing %.80s", basname(fn)); + + /* ------------------------------------------------------ */ + + png_ptr = png_create_write_struct(PNG_LIBPNG_VER_STRING, fn, + png_my_error, png_my_warning); + if (png_ptr == NULL) { + ERROR_ABORT(err_outofmemory); + } + info_ptr = png_create_info_struct(png_ptr); + if (info_ptr == NULL) { + png_destroy_write_struct(&png_ptr, NULL); + ERROR_ABORT(err_outofmemory); + } + if (setjmp(png_jmpbuf(png_ptr))) { + /* If we get here, we had a problem reading the file */ + png_destroy_write_struct(&png_ptr, &info_ptr); + ERROR_ABORT(NULL); + } + png_init_io(png_ptr, fp); + png_set_compression_level(png_ptr, complevel); + if (filters != 0) + png_set_filter(png_ptr, PNG_FILTER_TYPE_BASE, filters); + + /* ------------------------------------------------------ */ + + if (img->pixdepth == 24 || img->pixdepth == 32) { + bit_depth = 8; + color_type = (img->pixdepth == 32 && img->alpha) ? + PNG_COLOR_TYPE_RGB_ALPHA : PNG_COLOR_TYPE_RGB; + png_set_compression_mem_level(png_ptr, MAX_MEM_LEVEL); + } else { + bit_depth = img->pixdepth; + color_type = PNG_COLOR_TYPE_PALETTE; + png_set_PLTE(png_ptr, info_ptr, img->palette, img->palnum); + } + interlace_type = (interlace) ? PNG_INTERLACE_ADAM7 : PNG_INTERLACE_NONE; + + png_set_IHDR(png_ptr, info_ptr, img->width, img->height, bit_depth, + color_type, interlace_type, PNG_COMPRESSION_TYPE_DEFAULT, + PNG_FILTER_TYPE_DEFAULT); + + if (img->sigbit.red != 8 || img->sigbit.green != 8 || img->sigbit.blue != 8 + || (color_type == PNG_COLOR_TYPE_RGB_ALPHA && img->sigbit.alpha != 8)) + png_set_sBIT(png_ptr, info_ptr, &img->sigbit); + + switch (trans_type) { + case B2P_TRANSPARENT_RGB: + switch (color_type) { + case PNG_COLOR_TYPE_PALETTE: + for (i = 0; i < img->palnum; i++) { + if (img->palette[i].red == trans_values.red && + img->palette[i].green == trans_values.green && + img->palette[i].blue == trans_values.blue) { + trans[i++] = 0x00; + break; + } + trans[i] = 0xFF; + } + if (trans[i-1] == 0x00) { + png_set_tRNS(png_ptr, info_ptr, trans, i, NULL); + } else { + xxprintf(wrn_notranscolor, fn); + } + break; + case PNG_COLOR_TYPE_RGB: + png_set_tRNS(png_ptr, info_ptr, NULL, 0, &trans_values); + break; + case PNG_COLOR_TYPE_RGB_ALPHA: + xxprintf(wrn_imagehasalpha, fn); + break; + } + break; + case B2P_TRANSPARENT_PALETTE: + switch (color_type) { + case PNG_COLOR_TYPE_PALETTE: + if (trans_values.index < img->palnum) { + for (i = 0; i < trans_values.index; i++) trans[i] = 0xFF; + trans[i++] = 0x00; + png_set_tRNS(png_ptr, info_ptr, trans, i, NULL); + } else { + xxprintf(wrn_notranscolor, fn); + } + break; + case PNG_COLOR_TYPE_RGB: + xxprintf(wrn_transtruecolor, fn); + break; + case PNG_COLOR_TYPE_RGB_ALPHA: + xxprintf(wrn_imagehasalpha, fn); + break; + } + break; + } + + png_write_info(png_ptr, info_ptr); + + /* ------------------------------------------------------ */ + + if (img->pixdepth == 32 && !img->alpha) + png_set_filler(png_ptr, 0, PNG_FILLER_AFTER); + + if (img->pixdepth == 24 || img->pixdepth == 32) + png_set_bgr(png_ptr); + + /* ------------------------------------------------------ */ + + png_set_write_status_fn(png_ptr, row_callback); + init_progress_meter(png_ptr, img->width, img->height); + + png_write_image(png_ptr, img->rowptr); + + png_write_end(png_ptr, info_ptr); + png_destroy_write_struct(&png_ptr, &info_ptr); + + /* ------------------------------------------------------ */ + + set_status("OK %.80s", basname(fn)); + feed_line(); + + fflush(fp); + if (fp != stdout) fclose(fp); + imgbuf_free(img); + + return TRUE; + +error_abort: /* error */ + if (errmsg != NULL) xxprintf(errmsg, fn); + if (fp != stdout && fp != NULL) fclose(fp); + imgbuf_free(img); + + return FALSE; +} + + +/* ----------------------------------------------------------------------- +** wvXN[̕\ +*/ + +/* +** gp@\ +*/ +static void usage_exit(char *argv0, int status) +{ + static const char str_usage[] = +#ifdef JAPANESE /* -------------------------- */ +#ifdef SJIS_ESCAPE +#define SJ_ESC(esc,raw) esc +#else +#define SJ_ESC(esc,raw) raw +#endif + "bmp2png, BMP -> PNG Ro[^ - version " BMP2PNG_VERSION "\n" + " " BMP2PNG_COPYRIGHT "\n" + " Compiled with libpng " PNG_LIBPNG_VER_STRING " and zlib " ZLIB_VERSION ".\n" + "\n" + "g : %s [-XCb`] ̓t@C ...\n" + " : ... | %s [-XCb`] | ...\n" + "\n" + "̓t@Cɂ̓ChJ[hg܂ (* ?)\n" + "o̓t@C͓̓t@C̊gq .png ɕςOɂȂ܂\n" + "\n" + "XCb`IvV (ł) :\n" + " -0..-9 kx (ftHg -6)\n" + " -I C^[[X` PNG t@C쐬\n" + " -P color w肵F𓧖Fɂ\n" + " color: #RRGGBB(html16i) / RR,GG,BB(10iRGB) / NN(pbgԍ)\n" + " -F type[,...] PNG ̈kɎgtB^E^Cvw肷\n" + " type: none,sub,up,average(avg),paeth,all,auto(default)\n" + " -A, -B At@`lۑ\n" + " -O name o̓t@Cw肷\n" + " -D dir t@Co͂fBNgw肷\n" + " -E ϊꍇɂ͓̓t@C폜\n" + " -T ̓t@C̃^CX^vo̓t@Cɐݒ肷\n" + " -Q , ؂" SJ_ESC("\\","\") "Ȃ\n" + " -L ̃G[Ot@C(%s)ɋL^\n" + " -X Ẃ^Wo͂ϊ𖳌ɂ\n"; +#else /* ----------------------------------- */ + "bmp2png, a BMP-to-PNG converter - version " BMP2PNG_VERSION "\n" + " " BMP2PNG_COPYRIGHT "\n" + " Compiled with libpng " PNG_LIBPNG_VER_STRING " and zlib " ZLIB_VERSION ".\n" + "\n" + "Usage: %s [-switches] inputfile(s) ...\n" + " or: ... | %s [-switches] | ...\n" + "\n" + "List of input files may use wildcards (* and ?)\n" + "Output filename is same as input filename, but extension .png\n" + "\n" + "Switches (case-insensitive) :\n" + " -0..-9 Compression level (default: -6)\n" + " -I Create interlaced PNG files\n" + " -P color Mark the specified color as transparent\n" + " color: #RRGGBB(html hex) / RR,GG,BB(decimal) / NN(palette index)\n" + " -F type[,...] Specify filter type(s) used to create PNG files\n" + " type: none,sub,up,average(avg),paeth,all,auto(default)\n" + " -A, -B Preserve alpha channel\n" + " -O name Specify name for output file\n" + " -D dir Output files into dir\n" + " -E Delete input files after successful conversion\n" + " -T Set the timestamp of input file on output file\n" + " -Q Quiet mode\n" + " -L Log errors to %s file\n" + " -X Disable conversion through standard input/output\n"; +#endif /* ----------------------------------- */ +#if defined(WIN32) || defined(MSDOS) + char exename[FILENAME_MAX]; + char *p; + + argv0 = strcpy(exename, basname(argv0)); + for (p = argv0; *p != '\0'; p++) *p = tolower(*p); +#endif + xxprintf(str_usage, argv0, argv0, errlogfile); + + exit(status); +} + + +/* ----------------------------------------------------------------------- +*/ + +#if (PNG_LIBPNG_VER >= 10007) +/* +** dummy - see png_reset_zstream() in png.c +*/ +int inflateReset(z_streamp z) +{ + return Z_OK; +} +#endif diff --git a/crawl-ref/source/rltiles/bmp2png/bmp2png.dsp b/crawl-ref/source/rltiles/bmp2png/bmp2png.dsp new file mode 100644 index 0000000000..e38022696e --- /dev/null +++ b/crawl-ref/source/rltiles/bmp2png/bmp2png.dsp @@ -0,0 +1,112 @@ +# Microsoft Developer Studio Project File - Name="bmp2png" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** ҏWȂł ** + +# TARGTYPE "Win32 (x86) Console Application" 0x0103 + +CFG=bmp2png - Win32 Release +!MESSAGE ͗LҲ̧قł͂܂B ۼުĂނ邽߂ɂ NMAKE gpĂB +!MESSAGE [Ҳ̧ق̴߰] ނgpĎsĂ +!MESSAGE +!MESSAGE NMAKE /f "bmp2png.mak". +!MESSAGE +!MESSAGE NMAKE ̎sɍ\wł܂ +!MESSAGE ײݏϸۂ̐ݒ`܂B: +!MESSAGE +!MESSAGE NMAKE /f "bmp2png.mak" CFG="bmp2png - Win32 Release" +!MESSAGE +!MESSAGE I”\ Ӱ: +!MESSAGE +!MESSAGE "bmp2png - Win32 Release" ("Win32 (x86) Console Application" p) +!MESSAGE "bmp2png - Win32 Debug" ("Win32 (x86) Console Application" p) +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +CPP=cl.exe +RSC=rc.exe + +!IF "$(CFG)" == "bmp2png - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "Release" +# PROP Intermediate_Dir "Release" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /W3 /GX /O2 /D "PNG_USER_CONFIG" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c +# ADD CPP /nologo /MD /W3 /O2 /I "..\libpng" /I "..\zlib" /D "NDEBUG" /D "PNG_USER_CONFIG" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /YX /FD /GF /c +# ADD BASE RSC /l 0x411 /d "NDEBUG" +# ADD RSC /l 0x411 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 +# ADD LINK32 setargv.obj libpng.lib zlib.lib /nologo /subsystem:console /map /machine:I386 /libpath:"..\libpng\release" /libpath:"..\zlib\release" /opt:nowin98 +# SUBTRACT LINK32 /pdb:none + +!ELSEIF "$(CFG)" == "bmp2png - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "Debug" +# PROP Intermediate_Dir "Debug" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "PNG_USER_CONFIG" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c +# ADD CPP /nologo /MDd /W3 /Gm /ZI /Od /I "..\libpng" /I "..\zlib" /D "_DEBUG" /D "PNG_USER_CONFIG" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /Fr /YX /FD /GZ /c +# ADD BASE RSC /l 0x411 /d "_DEBUG" +# ADD RSC /l 0x411 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept +# ADD LINK32 setargv.obj libpng.lib zlib.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"..\libpng\debug" /libpath:"..\zlib\debug" +# SUBTRACT LINK32 /map + +!ENDIF + +# Begin Target + +# Name "bmp2png - Win32 Release" +# Name "bmp2png - Win32 Debug" +# Begin Group "Source Files" + +# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" +# Begin Source File + +SOURCE=.\bmp2png.c +# End Source File +# Begin Source File + +SOURCE=.\common.c +# End Source File +# End Group +# Begin Group "Header Files" + +# PROP Default_Filter "h;hpp;hxx;hm;inl" +# Begin Source File + +SOURCE=.\bmphed.h +# End Source File +# Begin Source File + +SOURCE=.\common.h +# End Source File +# End Group +# End Target +# End Project diff --git a/crawl-ref/source/rltiles/bmp2png/bmphed.h b/crawl-ref/source/rltiles/bmp2png/bmphed.h new file mode 100644 index 0000000000..4799b5e4d3 --- /dev/null +++ b/crawl-ref/source/rltiles/bmp2png/bmphed.h @@ -0,0 +1,84 @@ +/* +** bmphed.h - .bmp file header macros +** +** Public domain by MIYASAKA Masaru (July 13, 2004) +*/ + +#ifndef BMPHED_H +#define BMPHED_H + + /* BMP file signature */ +#define BMP_SIGNATURE 0x4D42 +#define BMP_SIG_BYTES 2 + + /* BITMAPFILEHEADER */ +#define BFH_WTYPE 0 /* WORD bfType; */ +#define BFH_DSIZE 2 /* DWORD bfSize; */ +#define BFH_WRESERVED1 6 /* WORD bfReserved1; */ +#define BFH_WRESERVED2 8 /* WORD bfReserved2; */ +#define BFH_DOFFBITS 10 /* DWORD bfOffBits; */ +#define BFH_DBIHSIZE 14 /* DWORD biSize; */ +#define FILEHED_SIZE 14 /* sizeof(BITMAPFILEHEADER) */ +#define BIHSIZE_SIZE 4 /* sizeof(biSize) */ + + /* BITMAPINFOHEADER, BITMAPV4HEADER, BITMAPV5HEADER */ +#define BIH_DSIZE 0 /* DWORD biSize; */ +#define BIH_LWIDTH 4 /* LONG biWidth; */ +#define BIH_LHEIGHT 8 /* LONG biHeight; */ +#define BIH_WPLANES 12 /* WORD biPlanes; */ +#define BIH_WBITCOUNT 14 /* WORD biBitCount; */ +#define BIH_DCOMPRESSION 16 /* DWORD biCompression; */ +#define BIH_DSIZEIMAGE 20 /* DWORD biSizeImage; */ +#define BIH_LXPELSPERMETER 24 /* LONG biXPelsPerMeter; */ +#define BIH_LYPELSPERMETER 28 /* LONG biYPelsPerMeter; */ +#define BIH_DCLRUSED 32 /* DWORD biClrUsed; */ +#define BIH_DCLRIMPORANT 36 /* DWORD biClrImportant; */ +#define B4H_DREDMASK 40 /* DWORD bV4RedMask; */ +#define B4H_DGREENMASK 44 /* DWORD bV4GreenMask; */ +#define B4H_DBLUEMASK 48 /* DWORD bV4BlueMask; */ +#define B4H_DALPHAMASK 52 /* DWORD bV4AlphaMask; */ +#define B4H_DCSTYPE 56 /* DWORD bV4CSType; */ +#define B4H_XENDPOINTS 60 /* CIEXYZTRIPLE bV4Endpoints; */ +#define B4H_DGAMMARED 96 /* DWORD bV4GammaRed; */ +#define B4H_DGAMMAGREEN 100 /* DWORD bV4GammaGreen; */ +#define B4H_DGAMMABLUE 104 /* DWORD bV4GammaBlue; */ +#define B5H_DINTENT 108 /* DWORD bV5Intent; */ +#define B5H_DPROFILEDATA 112 /* DWORD bV5ProfileData; */ +#define B5H_DPROFILESIZE 116 /* DWORD bV5ProfileSize; */ +#define B5H_DRESERVED 120 /* DWORD bV5Reserved; */ +#define INFOHED_SIZE 40 /* sizeof(BITMAPINFOHEADER) */ +#define BMPV4HED_SIZE 108 /* sizeof(BITMAPV4HEADER) */ +#define BMPV5HED_SIZE 124 /* sizeof(BITMAPV5HEADER) */ + + /* BITMAPCOREHEADER */ +#define BCH_DSIZE 0 /* DWORD bcSize; */ +#define BCH_WWIDTH 4 /* WORD bcWidth; */ +#define BCH_WHEIGHT 6 /* WORD bcHeight; */ +#define BCH_WPLANES 8 /* WORD bcPlanes; */ +#define BCH_WBITCOUNT 10 /* WORD bcBitCount; */ +#define COREHED_SIZE 12 /* sizeof(BITMAPCOREHEADER) */ + + /* RGBQUAD */ +#define RGBQ_BLUE 0 /* BYTE rgbBlue; */ +#define RGBQ_GREEN 1 /* BYTE rgbGreen; */ +#define RGBQ_RED 2 /* BYTE rgbRed; */ +#define RGBQ_RESERVED 3 /* BYTE rgbReserved; */ +#define RGBQUAD_SIZE 4 /* sizeof(RGBQUAD) */ + + /* RGBTRIPLE */ +#define RGBT_BLUE 0 /* BYTE rgbtBlue; */ +#define RGBT_GREEN 1 /* BYTE rgbtGreen; */ +#define RGBT_RED 2 /* BYTE rgbtRed; */ +#define RGBTRIPLE_SIZE 3 /* sizeof(RGBTRIPLE) */ + + /* Constants for the biCompression field */ +#ifndef BI_RGB +#define BI_RGB 0L /* Uncompressed */ +#define BI_RLE8 1L /* RLE (8 bits/pixel) */ +#define BI_RLE4 2L /* RLE (4 bits/pixel) */ +#define BI_BITFIELDS 3L /* Bitfield */ +#define BI_JPEG 4L /* JPEG Extension */ +#define BI_PNG 5L /* PNG Extension */ +#endif + +#endif /* BMPHED_H */ diff --git a/crawl-ref/source/rltiles/bmp2png/common.c b/crawl-ref/source/rltiles/bmp2png/common.c new file mode 100644 index 0000000000..2d6042ae85 --- /dev/null +++ b/crawl-ref/source/rltiles/bmp2png/common.c @@ -0,0 +1,748 @@ +/* +** bmp2png --- conversion from (Windows or OS/2 style) BMP to PNG +** png2bmp --- conversion from PNG to (Windows style) BMP +** +** Copyright (C) 1999-2005 MIYASAKA Masaru +** +** For conditions of distribution and use, +** see copyright notice in common.h. +*/ + +#include "common.h" + +#if defined(__DJGPP__) /* DJGPP V.2 */ +#include +int _crt0_startup_flags = _CRT0_FLAG_DISALLOW_RESPONSE_FILES; +unsigned short _djstat_flags = /* for stat() */ + _STAT_INODE | _STAT_EXEC_EXT | _STAT_EXEC_MAGIC | _STAT_DIRSIZE | + _STAT_ROOT_TIME; +#endif + +#if defined(__BORLANDC__) /* Borland C++ */ +#include +typedef void _RTLENTRY (* _RTLENTRY _argv_expand_fnc)(char *, _PFN_ADDARG); +typedef void _RTLENTRY (* _RTLENTRY _wargv_expand_fnc)(wchar_t *, _PFN_ADDARG); +_argv_expand_fnc _argv_expand_ptr = _expand_wild; /* expand wild cards */ +_wargv_expand_fnc _wargv_expand_ptr = _wexpand_wild; +#endif + + +/* ----------------------------------------------------------------------- +** screen management +*/ + +#define LINE_LEN 79 +#define STATUS_LEN 22 +#define PROGBAR_MAX (LINE_LEN - STATUS_LEN - 1) + +static char status_msg[128]; +static int progbar_scale = 0; +static int progbar_len = 0; +static int progbar_pos = -1; + +int quietmode = 0; /* -Q option */ +int errorlog = 0; /* -L option */ + + +static void print_status(void) +{ + if (quietmode) return; + + fprintf(stderr, "\r%-*.*s ", STATUS_LEN, STATUS_LEN, status_msg); + fflush(stderr); + progbar_pos = 0; +} + +static void put_dots(int dotchar, int num) +{ + int i; + + if (num > PROGBAR_MAX) num = PROGBAR_MAX; + if (progbar_pos == -1) print_status(); + + for (i = progbar_pos; i < num; i++) + fputc(dotchar, stderr); + + if (progbar_pos < num) { + progbar_pos = num; + fflush(stderr); + } +} + +static void print_scale(void) +{ + if (progbar_pos != 0) print_status(); + put_dots('.', progbar_len); + print_status(); + progbar_scale = 1; +} + +static void init_progress_bar(int max) +{ + if (quietmode) return; + + progbar_len = max; + print_scale(); +} + +static void update_progress_bar(int num) +{ + if (quietmode) return; + + if (!progbar_scale) print_scale(); + put_dots('o', num); +} + +static void clear_line(void) +{ + if (quietmode) return; + + fprintf(stderr, "\r%*c\r", LINE_LEN, ' '); + progbar_scale = 0; + progbar_pos = -1; +} + +void xxprintf(const char *fmt, ...) +{ + va_list ap; + FILE *f; + + if (quietmode) return; + + va_start(ap, fmt); + + clear_line(); + vfprintf(stderr, fmt, ap); + fflush(stderr); + + if (errorlog && (f = fopen(errlogfile, "a")) != NULL) { + vfprintf(f, fmt, ap); + fclose(f); + } + + va_end(ap); +} + +void set_status(const char *fmt, ...) +{ + va_list ap; + + if (quietmode) return; + + va_start(ap, fmt); + vsprintf(status_msg, fmt, ap); + va_end(ap); + + print_status(); +} + +void feed_line(void) +{ + if (quietmode) return; + + fputc('\n', stderr); + fflush(stderr); + progbar_scale = 0; + progbar_pos = -1; +} + + +/* ----------------------------------------------------------------------- +** libpng progress meter +*/ + +/* + * ------------------------------------------------------------- + * + * PNG ̃C^[X` "Adam7" ̉摜p[^F + * + * pX Jn_ ʐϔ is + * pass width height origin area progress + * 0 1/8 1/8 (0,0) 1/64 1/64 ( 1.6%) + * 1 1/8 1/8 (4,0) 1/64 1/32 ( 3.1%) + * 2 1/4 1/8 (0,4) 1/32 1/16 ( 6.3%) + * 3 1/4 1/4 (2,0) 1/16 1/8 ( 12.5%) + * 4 1/2 1/4 (0,2) 1/8 1/4 ( 25.0%) + * 5 1/2 1/2 (1,0) 1/4 1/2 ( 50.0%) + * 6 1 1/2 (0,1) 1/2 1/1 (100.0%) + * + * Adam7 ̎̐is󋵎Zo@F + * + * (width / 8) * 1 ̃sNZO[vPubNƍlA + * ̃ubNʎZło͂Őis󋵂ZoB + * Ⴆ pass 0 ̎́Ả摜 1/8 Ȃ̂ŁA + * R[obN֐Ă΂(so͂)ƂɂPubN + * o͂ƂɂȂApass 4 ̎(lɍl)SubN + * o͂ƂɂȂB + * ̌vZ@ɂƁÃpX݂ȂȂ悤 + * ɒ[ɏ摜łȂ( maxcount_adam7() Q)A + * 摜Ŝ̑ubN (height * 8) ɓȂB + * + * ۂɂ̕Őis󋵂\Ă݂ƁAO(pass0-5) + * 㔼(pass6)is悤ɌB́A + * Adam7 ̓ƂăsNZcoɊԈĕ + * ĂAɉɊԈĂ pass0-5 (O) + * ł͉摜̍č\ɎԂĂ̂ƎvB + * + * ------------------------------------------------------------- + */ + +static png_uint_32 counter; +static png_uint_32 maxcount; +static int barlen; + + +static png_uint_32 + maxcount_adam7(png_uint_32 width, png_uint_32 height) +{ + png_uint_32 c = 0; + + if ( 1 ) c += ((height - 0 + 7) / 8) * 1; /* Pass 0 */ + if (width > 4) c += ((height - 0 + 7) / 8) * 1; /* Pass 1 */ + if ( 1 ) c += ((height - 4 + 7) / 8) * 2; /* Pass 2 */ + if (width > 2) c += ((height - 0 + 3) / 4) * 2; /* Pass 3 */ + if ( 1 ) c += ((height - 2 + 3) / 4) * 4; /* Pass 4 */ + if (width > 1) c += ((height - 0 + 1) / 2) * 4; /* Pass 5 */ + if ( 1 ) c += ((height - 1 + 1) / 2) * 8; /* Pass 6 */ + + return c; +} + + +/* +** initialize the progress meter +*/ +void init_progress_meter(png_structp png_ptr, png_uint_32 width, + png_uint_32 height) +{ + enum { W = 1024, H = 768 }; + + if (png_set_interlace_handling(png_ptr) == 7) { + maxcount = maxcount_adam7(width, height); /* interlaced image */ + } else { + maxcount = height; /* non-interlaced image */ + } + if (height > ((png_uint_32)W * H) / width) { + barlen = PROGBAR_MAX; + } else { + barlen = (PROGBAR_MAX * width * height + (W * H - 1)) / (W * H); + } + counter = 0; + init_progress_bar(barlen); +} + + +/* +** row callback function for progress meter +*/ +void row_callback(png_structp png_ptr, png_uint_32 row, int pass) +{ +/* static const png_byte step[] = { 1, 1, 2, 2, 4, 4, 8 }; */ + + if (row == 0) pass--; + /* + * libpng's bug ?? : In the case of interlaced image, + * this function is called with row=0 and pass=current_pass+1 + * when the row should be equal to height and the pass should + * be equal to current_pass. + */ + + counter += (1 << (pass >> 1)); /* step[pass]; */ + update_progress_bar(barlen * counter / maxcount); +} + + +/* ----------------------------------------------------------------------- +** libpng error handling +*/ + +/* +** fatal error handling function +*/ +void png_my_error(png_structp png_ptr, png_const_charp message) +{ + xxprintf("ERROR(libpng): %s - %s\n", message, + (char *)png_get_error_ptr(png_ptr)); + longjmp(png_jmpbuf(png_ptr), 1); +} + + +/* +** non-fatal error handling function +*/ +void png_my_warning(png_structp png_ptr, png_const_charp message) +{ + xxprintf("WARNING(libpng): %s - %s\n", message, + (char *)png_get_error_ptr(png_ptr)); +} + + +/* ----------------------------------------------------------------------- +** image buffer management +*/ + +/* +** allocate image buffer +*/ +BOOL imgbuf_alloc(IMAGE *img) +{ + BYTE *bp, **rp; + LONG n; + + if (img->palnum > 0) { + img->palette = malloc((size_t)img->palnum * sizeof(PALETTE)); + if (img->palette == NULL) { imgbuf_init(img); return FALSE; } + } else { + img->palette = NULL; + } + img->rowbytes = ((DWORD)img->width * img->pixdepth + 31) / 32 * 4; + img->imgbytes = img->rowbytes * img->height; + img->rowptr = malloc((size_t)img->height * sizeof(BYTE *)); + img->bmpbits = malloc((size_t)img->imgbytes); + + if (img->rowptr == NULL || img->bmpbits == NULL) { + imgbuf_free(img); imgbuf_init(img); return FALSE; + } + + n = img->height; + rp = img->rowptr; + bp = img->bmpbits; + + if (img->topdown) { + while (--n >= 0) { + *(rp++) = bp; + bp += img->rowbytes; + /* ((DWORD *)bp)[-1] = 0; */ + } + } else { /* bottom-up */ + bp += img->imgbytes; + while (--n >= 0) { + /* fill zeros to padding bytes (for write_bmp()) */ + ((DWORD *)bp)[-1] = 0; + bp -= img->rowbytes; + *(rp++) = bp; + } + } + + return TRUE; +} + + +/* +** free image buffer allocated by imgbuf_alloc() +*/ +void imgbuf_free(IMAGE *img) +{ + free(img->palette); + free(img->rowptr); + free(img->bmpbits); +} + + +/* +** init image buffer to empty +*/ +void imgbuf_init(IMAGE *img) +{ + img->palette = NULL; + img->rowptr = NULL; + img->bmpbits = NULL; +} + + +/* ----------------------------------------------------------------------- +** R}hC̏ +*/ + +#define isoption(p) (IsOptChar((p)[0]) && (p)[1]!='\0') + +/* +** R}hCǂ +*/ +int parsearg(int *opt, char **arg, int argc, char **argv, char *aopts) +{ + static int agi = 1; + static char *agp = NULL; + char *p; + int c, i; + + if (agp != NULL && *agp == '\0') { + agp = NULL; + agi++; + } + if (agi >= argc) return 0; /* end */ + + if (p = argv[agi], agp == NULL && !isoption(p)) { + /* non-option element */ + c = 0; + agi++; + } else { + if (agp == NULL) agp = p + 1; + if (c = (*agp & 0xFF), strchr(aopts, c) != NULL) { + /* option with an argument */ + if (p = agp + 1, *p != '\0') { + /*NULL*/; + } else if (i = agi + 1, p = argv[i], i < argc && !isoption(p)) { + agi = i; + } else { + p = NULL; + } + agp = NULL; + agi++; + } else { + /* option without an argument */ + p = NULL; + agp++; + } + } + *opt = c; + *arg = p; + + return 1; +} + + +/* +** ‹ϐŎw肳ĂIvV argc, argv ɕ +*/ +char **envargv(int *argcp, char ***argvp, const char *envn) +{ + int argc, nagc, envc, i; + char **argv, **nagv, *envs, *ep; + + ep = getenv(envn); + if (ep == NULL || ep[0] == '\0') return NULL; + + envs = malloc(strlen(ep) + 1); + if (envs == NULL) return NULL; + strcpy(envs, ep); + + envc = tokenize(envs, envs); + if (envc == 0) { free(envs); return NULL; } + + argc = *argcp; + argv = *argvp; + nagv = malloc((argc + envc + 1) * sizeof(char *)); + if (nagv == NULL) { free(envs); return NULL; } + + nagc = 1; + nagv[0] = argv[0]; + + for (i = 0; i < envc; i++) { + nagv[nagc++] = envs; + while (*(envs++) != '\0') ; + } + for (i = 1; i < argc; i++) { + nagv[nagc++] = argv[i]; + } + nagv[nagc] = NULL; + + *argcp = nagc; + *argvp = nagv; + + return argv; +} + + +/* +** 󔒕(Xy[X/^u/s)̏ŋ؂(NI[gt) +** ؂ꂽ̐Ԃ +*/ +int tokenize(char *buf, const char *str) +{ + enum { STR = 0x01, QUOTE = 0x02 }; + int flag = 0; + int num = 0; + char c; + int i; + + while ((c = *str++) != '\0') { + if (!(flag & QUOTE) && + (c == ' ' || c == '\t' || c == '\n' || c == '\r')) { + if (flag & STR) { + flag &= ~STR; + *buf++ = '\0'; + } + } else { + if (!(flag & STR)) { + flag |= STR; + num++; + } + switch (c) { + case '\\': + /* + * Escaping of `"' is the same as + * command-line parsing of MS-VC++. + * + * ex.) " -> quote + * \" -> " + * \\" -> \ + quote + * \\\" -> \ + " + * \\\\" -> \\ + quote + * \\\\\ -> \\\\\ + */ + for (i = 1; (c = *str) == '\\'; str++, i++) ; + if (c == '"') { + while ((i -= 2) >= 0) + *buf++ = '\\'; + if (i == -1) { + *buf++ = '"'; + str++; + } + } else { + while ((--i) >= 0) + *buf++ = '\\'; + } + break; + + case '"': + flag ^= QUOTE; + break; + + default: + *buf++ = c; + } + } + } + if (flag & STR) *buf = '\0'; + + return num; +} + + +/* ----------------------------------------------------------------------- +** t@CɊւGp +*/ + +/* +** Kw̃fBNgxɍ쐬 +*/ +int makedir(const char *path) +{ + char dir[FILENAME_MAX]; + struct stat sbuf; + char *p, c; + int r; + + delslash(strcpy(dir, path)); + if (stat(dir, &sbuf) == 0) { + if ((sbuf.st_mode & S_IFMT) == S_IFDIR) return 0; + /* errno = EEXIST; */ + return -1; + } + p = path_skiproot(dir); + do { + p = path_nextslash(p); + c = *p; *p = '\0'; + r = MKDIR(dir, 0777); + *p++ = c; + } while (c != '\0'); + + return r; +} + + +/* +** ̓t@CobNAbv(l[) +*/ +int renbak(const char *path) +{ + char bak[FILENAME_MAX]; + struct stat sbuf; + char *sfx; + int i; + + strcpy(bak, path); + if (stat(bak, &sbuf) != 0) return 0; + +#ifdef MSDOS + sfx = suffix(bak); +#else + sfx = bak + strlen(bak); +#endif + strcpy(sfx, ".bak"); + i = 0; + while (1) { + if (stat(bak, &sbuf) != 0 && rename(path, bak) == 0) return 0; + if (i >= 1000) break; + sprintf(sfx, ".%03d", i++); + } + return -1; +} + + +/* +** t@C̃^CX^vRs[ +*/ +int cpyftime(const char *srcf, const char *dstf) +{ + struct stat sbuf; + struct utimbuf ubuf; + + if (stat(srcf, &sbuf) != 0) return -1; + + ubuf.actime = sbuf.st_atime; + ubuf.modtime = sbuf.st_mtime; + + return utime(dstf, &ubuf); +} + + +/* +** oCi[h̕Wo̓Xg[擾 +*/ +FILE *binary_stdio(int fd) +{ + FILE *fp; + + if (fd != 0 && fd != 1) return NULL; + +#ifdef BINSTDIO_FDOPEN + fp = fdopen(fd, (fd==0)? "rb":"wb"); +#else +#ifdef BINSTDIO_SETMODE + setmode(fd, O_BINARY); +#endif + fp = (fd == 0) ? stdin : stdout; +#endif + return fp; +} + + +/* ----------------------------------------------------------------------- +** path functions +*/ + +/* +** Return a pointer that points the suffix of the PATH +** ex.) c:\dosuty\log\test.exe -> .exe +** ex.) c:\dosuty\log\test.tar.gz -> .gz +*/ +char *suffix(const char *path) +{ + char c, *p, *q, *r; + + for (r = q = p = basname(path); (c = *p) != '\0'; p++) + if (c == '.') q = p; + if (q == r) q = p; /* dotfile with no suffix */ + + return q; +} + + +/* +** Return a pointer that points the basename of the PATH +** ex.) c:\dos\format.exe -> format.exe +*/ +char *basname(const char *path) +{ + const char *p, *q; + + for (p = path_skiproot(path); + *(q = path_nextslash(p)) != '\0'; p = q + 1) ; + + return (char *)p; +} + + +/* +** Append a path-delimiter to the PATH. If the PATH is a string +** like "c:\", "\", "c:", "", do nothing. +** ex.) c:\dos -> c:\dos\ +*/ +char *addslash(char *path) +{ + char *p, *q; + + for (p = path_skiproot(path); + *(q = path_nextslash(p)) != '\0'; p = q + 1) ; + /* + * s = path_skiproot( path ); + * if( q==s && q==p ) - s is a mull string. + * if( q!=s && q==p ) - s is followed by a path delimiter. + * if( q!=s && q!=p ) - s is not followed by a path delimiter. + */ + if (q != p) { + *q++ = PATHDELIM; + *q = '\0'; + } + + return path; +} + + +/* +** Remove a path-delimiter at the end of the PATH. If the PATH is +** a string like "c:\", "\", "c:", "", append a dot. +** ex.) c:\dos\ -> c:\dos +** c:\ -> c:\. +*/ +char *delslash(char *path) +{ + char *p, *q, *s; + + for (p = s = path_skiproot(path); + *(q = path_nextslash(p)) != '\0'; p = q + 1) ; + /* + * if( q==s && q==p ) - s is a mull string. + * if( q!=s && q==p ) - s is followed by a path delimiter. + * if( q!=s && q!=p ) - s is not followed by a path delimiter. + */ + if (q == s) { + *q++ = '.'; + *q = '\0'; + } else if (q == p) { + *--q = '\0'; + } + + return path; +} + + +char *path_skiproot(const char *path) +{ +#ifdef DRIVESUFFIX + if (isalpha((unsigned char)path[0]) + && path[1] == DRIVESUFFIX) path += 2; +#endif + if (IsPathDelim(path[0])) path++; + return (char *)path; +} + + +char *path_nextslash(const char *path) +{ + char c; + + for (; (c = *path) != '\0'; path++) { + if (IsDBCSLead((unsigned char)c)) { + if (*(++path) == '\0') break; + continue; + } + if (IsPathDelim(c)) break; + } + return (char *)path; +} + +#ifdef WIN32_LFN + +/* +** return TRUE if the PATH is a dos-style filename. +*/ +int is_dos_filename(const char *path) +{ + unsigned char c; + char *b, *p; + + for (b = p = basname(path); (c = *p) != '\0' && c != '.'; p++) + if (islower(c)) return 0; + if ((p - b) == 0 || (p - b) > 8) return 0; + if (c == '.') { + for (b = ++p; (c = *p) != '\0'; p++) + if (islower(c) || c == '.') return 0; + if ((p - b) == 0 || (p - b) > 3) return 0; + } + return 1; +} + +#endif /* WIN32_LFN */ diff --git a/crawl-ref/source/rltiles/bmp2png/common.h b/crawl-ref/source/rltiles/bmp2png/common.h new file mode 100644 index 0000000000..ad5a341e92 --- /dev/null +++ b/crawl-ref/source/rltiles/bmp2png/common.h @@ -0,0 +1,196 @@ +/* +** bmp2png --- conversion from (Windows or OS/2 style) BMP to PNG +** png2bmp --- conversion from PNG to (Windows style) BMP +** +** Copyright (C) 1999-2005 MIYASAKA Masaru +** +** Permission to use, copy, modify, and distribute this software and +** its documentation for any purpose and without fee is hereby granted, +** provided that the above copyright notice appear in all copies and +** that both that copyright notice and this permission notice appear +** in supporting documentation. This software is provided "as is" +** without express or implied warranty. +** +** NOTE: Comments are partly written in Japanese. Sorry. +*/ + +#ifndef COMMON_H +#define COMMON_H + +#if defined(__RSXNT__) && defined(__CRTRSXNT__) +# include +#endif +#include +#include +#include +#include +#include + + /* for stat() */ +#include +#include + + /* for utime() */ +#if defined(_MSC_VER) || defined(__MINGW32__) || defined(__LCC__) +# include +# if defined(__LCC__) + int utime(const char *, struct _utimbuf *); +# endif +#else +# include +#endif + /* for isatty() */ +#if defined(_MSC_VER) || defined(__BORLANDC__) || defined(__MINGW32__) || \ + defined(__LCC__) +# include +#else +# include +#endif + /* for mkdir() */ +#if defined(_MSC_VER) || defined(__BORLANDC__) || defined(__MINGW32__) || \ + defined(__LCC__) +# include +# if defined(__MINGW32__) +# define MKDIR(d,m) _mkdir(d) +# else +# define MKDIR(d,m) mkdir(d) +# endif +#else +# if defined(__GO32__) && !defined(__DJGPP__) /* DJGPP v.1 */ +# include +# else +# include +# endif +# define MKDIR(d,m) mkdir(d,m) +#endif + +#if !defined(BINSTDIO_FDOPEN) && !defined(BINSTDIO_SETMODE) +# if defined(__CYGWIN__) || defined(__MINGW32__) || defined(__EMX__) || \ + defined(_MSC_VER) || defined(__BORLANDC__) || defined(__LCC__) || \ + defined(__DJGPP__) || defined(__GO32__) +# define BINSTDIO_SETMODE +# endif +# if 0 /* defined(__YOUR_COMPLIER_MACRO__) */ +# define BINSTDIO_FDOPEN +# endif +#endif + /* for setmode() */ +#ifdef BINSTDIO_SETMODE +# include +# include +#endif + +#include "png.h" + +#if (PNG_LIBPNG_VER < 10004) +# error libpng version 1.0.4 or later is required. +#endif + +#if (PNG_LIBPNG_VER == 10207) || (PNG_LIBPNG_VER == 10206) || \ + (PNG_LIBPNG_VER == 10017) || (PNG_LIBPNG_VER == 10016) +# error Libpng versions 1.2.7, 1.2.6, 1.0.17, and 1.0.16 +# error have a bug that will cause png2bmp to crash. +# error Update your libpng to latest version. +# error "http://www.libpng.org/pub/png/libpng.html" +#endif + +#if !defined(PNG_READ_tRNS_SUPPORTED) || !defined(PNG_WRITE_tRNS_SUPPORTED) +# error This software requires tRNS chunk support. +#endif + +#ifndef png_jmpbuf /* pngconf.h (libpng 1.0.6 or later) */ +# define png_jmpbuf(png_ptr) ((png_ptr)->jmpbuf) +#endif + +#if (defined(_WIN32) || defined(__WIN32__)) && !defined(WIN32) +# define WIN32 +#endif +#if defined(__MSDOS__) && !defined(MSDOS) +# define MSDOS +#endif +#if defined(__CYGWIN__) +# undef WIN32 +# undef MSDOS +#endif + +#if defined(WIN32) || defined(__DJGPP__) +# define WIN32_LFN /* Win32-style long filename */ +#endif + +#if defined(WIN32) || defined(MSDOS) +# define PATHDELIM '\\' +# define DRIVESUFFIX ':' +# define IsPathDelim(c) ((c)==PATHDELIM || (c)=='/') +# define IsOptChar(c) ((c)=='-' || (c)=='/') +# ifdef JAPANESE +# define IsDBCSLead(c) ((0x81<=(c) && (c)<=0x9F) || (0xE0<=(c) && (c)<=0xFC)) +# else +# define IsDBCSLead(c) (0) +# endif +#else /* UNIX */ +# define PATHDELIM '/' +# define IsPathDelim(c) ((c)==PATHDELIM) +# define IsOptChar(c) ((c)=='-') +# define IsDBCSLead(c) (0) +#endif + +typedef char CHAR; +typedef unsigned char BYTE; +typedef short SHORT; +typedef unsigned short WORD; +typedef int INT; +typedef unsigned int UINT; +typedef long LONG; +typedef unsigned long DWORD; +typedef enum { FALSE = 0, TRUE = 1 } BOOL; + +typedef png_color PALETTE; +typedef struct tagIMAGE { + LONG width; + LONG height; + UINT pixdepth; + UINT palnum; + BOOL topdown; + BOOL alpha; + /* ----------- */ + DWORD rowbytes; + DWORD imgbytes; + PALETTE *palette; + BYTE **rowptr; + BYTE *bmpbits; + /* ----------- */ + png_color_8 sigbit; +} IMAGE; + +extern int quietmode; +extern int errorlog; +extern const char errlogfile[]; + +void xxprintf(const char *, ...); +void set_status(const char *, ...); +void feed_line(void); +void init_progress_meter(png_structp, png_uint_32, png_uint_32); +void row_callback(png_structp, png_uint_32, int); +void png_my_error(png_structp, png_const_charp); +void png_my_warning(png_structp, png_const_charp); +BOOL imgbuf_alloc(IMAGE *); +void imgbuf_free(IMAGE *); +void imgbuf_init(IMAGE *); +int parsearg(int *, char **, int, char **, char *); +char **envargv(int *, char ***, const char *); +int tokenize(char *, const char *); +int makedir(const char *); +int renbak(const char *); +int cpyftime(const char *, const char *); +FILE *binary_stdio(int); +char *suffix(const char *); +char *basname(const char *); +char *addslash(char *); +char *delslash(char *); +char *path_skiproot(const char *); +char *path_nextslash(const char *); +#ifdef WIN32_LFN +int is_dos_filename(const char *); +#endif + +#endif /* COMMON_H */ diff --git a/crawl-ref/source/rltiles/bmp2png/makefile.bcc b/crawl-ref/source/rltiles/bmp2png/makefile.bcc new file mode 100644 index 0000000000..b90f278fb0 --- /dev/null +++ b/crawl-ref/source/rltiles/bmp2png/makefile.bcc @@ -0,0 +1,52 @@ +#-------------------------------- +# bmp2png.exe & png2bmp.exe +# makefile for Borland C++ 5.5 +#-------------------------------- + +!ifndef srcdir +srcdir = . +!endif +.path.c = $(srcdir) +.path.h = $(srcdir) + +ZINC = $(srcdir)/../zlib +PINC = $(srcdir)/../libpng +ZLIB = $(srcdir)/../zlib +PLIB = $(srcdir)/../libpng + +CC = bcc32 +LD = bcc32 +CFLAGS = $(MODEL) -q -d -O2 -OS -Oi -Oc -DPNG_USER_CONFIG -I$(PINC) \ + -I$(ZINC) $(COPT) +LDFLAGS = $(MODEL) -q -WC -L$(PLIB) -L$(ZLIB) $(LOPT) + +LIBS = libpng.lib zlib.lib noeh32.lib +B2POBJ = bmp2png.obj common.obj +P2BOBJ = png2bmp.obj common.obj + + +all : bmp2png.exe png2bmp.exe + +bmp2png.exe : $(B2POBJ) + $(LD) $(LDFLAGS) -e$@ $(B2POBJ) $(LIBS) + +png2bmp.exe : $(P2BOBJ) + $(LD) $(LDFLAGS) -e$@ $(P2BOBJ) $(LIBS) + +.c.obj : + $(CC) $(CFLAGS) -c $*.c + +.c.asm : + $(CC) $(CFLAGS) -S $*.c + +clean : mostlyclean + if exist *.exe del *.exe + +mostlyclean : + if exist *.obj del *.obj + if exist *.tds del *.tds + +bmp2png.obj : bmp2png.c common.h bmphed.h +png2bmp.obj : png2bmp.c common.h bmphed.h +common.obj : common.c common.h + diff --git a/crawl-ref/source/rltiles/bmp2png/makefile.dj2 b/crawl-ref/source/rltiles/bmp2png/makefile.dj2 new file mode 100644 index 0000000000..c8f6b8aabf --- /dev/null +++ b/crawl-ref/source/rltiles/bmp2png/makefile.dj2 @@ -0,0 +1,54 @@ +#----------------------------- +# bmp2png.exe & png2bmp.exe +# makefile for DJGPP V.2 +#----------------------------- + +srcdir = . +VPATH = $(srcdir) + +ZINC = $(srcdir)/../zlib +PINC = $(srcdir)/../libpng +ZLIB = $(srcdir)/../zlib +PLIB = $(srcdir)/../libpng + +CC = gcc +LD = gcc +CFLAGS = -O2 -Wall -mcpu=pentium -march=i386 -DPNG_USER_CONFIG \ + -I$(PINC) -I$(ZINC) $(COPT) +LDFLAGS = -s -L$(PLIB) -L$(ZLIB) $(LOPT) + +LIBS = -lpng -lz -lm +B2POBJ = bmp2png.o common.o +P2BOBJ = png2bmp.o common.o +B2PMAP = -Wl,-Map,bmp2png.map +P2BMAP = -Wl,-Map,png2bmp.map + + +all : bmp2png.exe png2bmp.exe + +bmp2png.exe : $(B2POBJ) + $(LD) $(LDFLAGS) $(B2PMAP) -o $@ $(B2POBJ) $(LIBS) + +png2bmp.exe : $(P2BOBJ) + $(LD) $(LDFLAGS) $(P2BMAP) -o $@ $(P2BOBJ) $(LIBS) + +%.o : %.c + $(CC) $(CFLAGS) -c $< + +%.s : %.c + $(CC) $(CFLAGS) -S -fverbose-asm $< + +%.lst : %.s + $(CC) -Wa,-a=$@ -c -o NUL $< + +clean : mostlyclean + if exist *.exe del *.exe + if exist *.map del *.map + +mostlyclean : + if exist *.o del *.o + +bmp2png.o : bmp2png.c common.h bmphed.h +png2bmp.o : png2bmp.c common.h bmphed.h +common.o : common.c common.h + diff --git a/crawl-ref/source/rltiles/bmp2png/makefile.lin b/crawl-ref/source/rltiles/bmp2png/makefile.lin new file mode 100644 index 0000000000..85136685f4 --- /dev/null +++ b/crawl-ref/source/rltiles/bmp2png/makefile.lin @@ -0,0 +1,48 @@ +#------------------------------------- +# bmp2png & png2bmp +# makefile for gcc/gmake +# Thanks to Gary Aviv for this file. +#------------------------------------- + +ifndef BINDIR +BINDIR = /usr/local/bin +endif + +CC = gcc +LD = gcc +ifndef INSTALL +INSTALL = install -s -m 755 +endif +ifndef CFLAGS +CFLAGS = -O2 -g -Wall +endif + +LIBS = -lpng -lz -lm +B2POBJ = bmp2png.o common.o +P2BOBJ = png2bmp.o common.o + + +all : bmp2png png2bmp + +bmp2png : $(B2POBJ) + $(LD) $(LDFLAGS) -o bmp2png $(B2POBJ) $(LIBS) + +png2bmp : $(P2BOBJ) + $(LD) $(LDFLAGS) -o png2bmp $(P2BOBJ) $(LIBS) + +%.o : %.c + $(CC) $(CFLAGS) -c -o $@ $< + +install : + $(INSTALL) bmp2png png2bmp $(BINDIR) + +uninstall : + rm -f $(BINDIR)/bmp2png $(BINDIR)/png2bmp + +clean : + rm -f $(B2POBJ) $(P2BOBJ) bmp2png png2bmp + +bmp2png.o : bmp2png.c common.h bmphed.h +png2bmp.o : png2bmp.c common.h bmphed.h +common.o : common.c common.h + diff --git a/crawl-ref/source/rltiles/bmp2png/png2bmp.c b/crawl-ref/source/rltiles/bmp2png/png2bmp.c new file mode 100644 index 0000000000..d08da6df23 --- /dev/null +++ b/crawl-ref/source/rltiles/bmp2png/png2bmp.c @@ -0,0 +1,647 @@ +/* +** png2bmp --- conversion from PNG to (Windows style) BMP +** +** Copyright (C) 1999-2005 MIYASAKA Masaru +** +** For conditions of distribution and use, +** see copyright notice in common.h. +*/ + +#include "common.h" +#include "bmphed.h" + +#define PNG2BMP_VERSION "1.62 (Sep 4, 2005)" +#define PNG2BMP_COPYRIGHT "Copyright (C) 1999-2005 MIYASAKA Masaru" + +char outnam[FILENAME_MAX]; +char outdir[FILENAME_MAX]; +int deletesrc = 0; +int copytime = 0; + +#define P2B_ALPHABMP_NONE 0 +#define P2B_ALPHABMP_ARGB 1 /* -a option; 32bit ARGB(RGB) BMP */ +#define P2B_ALPHABMP_BITFIELD 2 /* -b option; 32bit Bitfield BMP */ + +int alpha_format = P2B_ALPHABMP_NONE; +int expand_trans = 0; + +#if defined(WIN32) || defined(MSDOS) +const char errlogfile[] = ".\\P2BERROR.LOG"; +#else +const char errlogfile[] = "./p2berror.log"; +#endif + + /* error messages */ +#ifdef JAPANESE /* ---------- */ +const char wrn_mkdirfail[] = + "WARNING: o͐fBNg܂ - %s\n" + "WARNING: -> -%c IvV ł̏o͐w͖܂\n"; +const char err_ropenfail[] = "SKIPPED: Yt@C܂ - %s\n"; +const char err_wopenfail[] = "SKIPPED: o̓t@C쐬ł܂ - %s\n"; +const char err_outofmemory[] = "SKIPPED: Ɨpmۂł܂ - %s\n"; + /* -- */ +const char err_writeerr[] = "SKIPPED: ݃G[܂ - %s\n"; +const char err_not_a_png[] = "SKIPPED: PNG t@Cł͂܂ - %s\n"; +#else /* ------------------- */ +const char wrn_mkdirfail[] = + "WARNING: Cannot create a directory - %s\n" + "WARNING: -> Output directory specified by '-%c' will be ignored.\n"; +const char err_ropenfail[] = "SKIPPED: No such file or directory - %s\n"; +const char err_wopenfail[] = "SKIPPED: Cannot create - %s\n"; +const char err_outofmemory[] = "SKIPPED: Out of memory - %s\n"; + /* -- */ +const char err_writeerr[] = "SKIPPED: Write operation failed - %s\n"; +const char err_not_a_png[] = "SKIPPED: Not a PNG file - %s\n"; +#endif /* ------------------- */ + +static BOOL read_png(char *, IMAGE *); +static int skip_macbinary(png_structp); +static void to4bpp(png_structp, png_row_infop, png_bytep); +static BOOL write_bmp(char *, IMAGE *); +static const char *write_rgb_bits(IMAGE *, FILE *); +static void mputdwl(void *, unsigned long); +static void mputwl(void *, unsigned int); +static void usage_exit(char *, int); + + + +/* +** C +*/ +int main(int argc, char *argv[]) +{ + char outf[FILENAME_MAX]; + IMAGE image; + int opt; + char *arg; + char *p, c; + int r_stdin, w_stdout; + int failure = 0, success = 0; + +#ifdef __LCC__ /* lcc-win32 */ + char **envp; + void _GetMainArgs(int *, char ***, char ***, int); + _GetMainArgs(&argc, &argv, &envp, 1); +#endif +#ifdef __EMX__ + _wildcard(&argc, &argv); +#endif + envargv(&argc, &argv, "B2P"); + + r_stdin = !isatty(fileno(stdin)); + w_stdout = !isatty(fileno(stdout)); + + while (parsearg(&opt, &arg, argc, argv, "DdOoFfPp")) { + switch (toupper(opt)) { + case 'E': deletesrc ^= 1; break; + case 'T': copytime ^= 1; break; + case 'Q': quietmode ^= 1; break; + case 'L': errorlog ^= 1; break; + + case 'X': + r_stdin = 0; + w_stdout = 0; + break; + + case 'A': + alpha_format = (alpha_format == P2B_ALPHABMP_ARGB) ? + P2B_ALPHABMP_NONE : P2B_ALPHABMP_ARGB; + break; + + case 'B': + alpha_format = (alpha_format == P2B_ALPHABMP_BITFIELD) ? + P2B_ALPHABMP_NONE : P2B_ALPHABMP_BITFIELD; + break; + + case 'R': + expand_trans ^= 1; + break; + + case 'F': + /* '-F' option of bmp2png (ignored on png2bmp) */ + break; + + case 'P': + /* '-P' option of bmp2png (ignored on png2bmp) */ + break; + + case 'D': /* output directory */ + if (*arg == '-') arg = NULL; + if (arg == NULL) { + outdir[0] = '\0'; + } else { + strcpy(outdir, arg); + addslash(outdir); + if (makedir(outdir) != 0) { + xxprintf(wrn_mkdirfail, outdir, 'D'); + outdir[0] = '\0'; + } + } + break; + + case 'O': /* output filename */ + if (arg == NULL) { + outnam[0] = '\0'; + } else { + strcpy(outnam, arg); + p = basname(outnam); + c = *p; *p = '\0'; + if (makedir(outnam) != 0) { + xxprintf(wrn_mkdirfail, outnam, 'O'); + outnam[0] = '\0'; + } else { + *p = c; + } + } + break; + + case 0x00: /* input file spec */ + if (outnam[0] != '\0') { + strcpy(outf, outnam); + outnam[0] = '\0'; + } else if (w_stdout) { + if (!read_png(arg, &image)) return 1; + if (!write_bmp(NULL, &image)) return 1; + if (deletesrc) remove(arg); + return 0; + } else { + if (outdir[0] != '\0') { + strcat(strcpy(outf, outdir), basname(arg)); + } else { + strcpy(outf, arg); + } +#ifdef WIN32_LFN + strcpy(suffix(outf), is_dos_filename(outf) ? ".BMP" : ".bmp"); +#else + strcpy(suffix(outf), ".bmp"); +#endif + } + /* ---------------------- */ + if (!read_png(arg, &image)) { + failure++; + break; + } + renbak(outf); + if (!write_bmp(outf, &image)) { + failure++; + break; + } + /* ---------------------- */ + if (copytime) cpyftime(arg, outf); + if (deletesrc) remove(arg); + /* ---------------------- */ + success++; + break; + + default: + ; /* Ignore unknown option */ + } + } + if (failure == 0 && success == 0) { + if (!r_stdin) usage_exit(argv[0], 255); + if (!read_png(NULL, &image)) return 1; + if (outnam[0] != '\0') { + renbak(outnam); + return !write_bmp(outnam, &image); + } else if (w_stdout) { + return !write_bmp(NULL, &image); + } else { + strcat(strcpy(outf, outdir), "___stdin.bmp"); + renbak(outf); + return !write_bmp(outf, &image); + } + } + + return (failure > 255) ? 255 : failure; +} + + +/* ----------------------------------------------------------------------- +** PNG t@C̓ǂݍ +*/ + +#define ERROR_ABORT(s) do { errmsg = (s); goto error_abort; } while (0) + +/* +** .pngt@C̓ǂݍ +*/ +static BOOL read_png(char *fn, IMAGE *img) +{ + png_structp png_ptr; + png_infop info_ptr, end_info; + png_uint_32 width, height; + int bit_depth, color_type; + int xbit_depth, xcolor_type, xchannels; + const char *errmsg; + FILE *fp; + + imgbuf_init(img); + + if (fn == NULL) { + fn = " (stdin)"; + fp = binary_stdio(fileno(stdin)); + } else { + fp = fopen(fn, "rb"); + } + if (fp == NULL) ERROR_ABORT(err_ropenfail); + + set_status("Reading %.80s", basname(fn)); + + /* ------------------------------------------------------ */ + + png_ptr = png_create_read_struct(PNG_LIBPNG_VER_STRING, fn, + png_my_error, png_my_warning); + if (png_ptr == NULL) { + ERROR_ABORT(err_outofmemory); + } + info_ptr = png_create_info_struct(png_ptr); + end_info = png_create_info_struct(png_ptr); + if (info_ptr == NULL || end_info == NULL) { + png_destroy_read_struct(&png_ptr, &info_ptr, &end_info); + ERROR_ABORT(err_outofmemory); + } + if (setjmp(png_jmpbuf(png_ptr))) { + /* If we get here, we had a problem writing the file */ + png_destroy_read_struct(&png_ptr, &info_ptr, &end_info); + ERROR_ABORT(NULL); + } + png_init_io(png_ptr, fp); + png_set_sig_bytes(png_ptr, skip_macbinary(png_ptr)); + + /* ------------------------------------------------------ */ + + png_read_info(png_ptr, info_ptr); + + png_get_IHDR(png_ptr, info_ptr, &width, &height, &bit_depth, + &color_type, NULL, NULL, NULL); + + /* ------------------------------------------------------ */ + + if (color_type & PNG_COLOR_MASK_ALPHA) { + if (alpha_format == P2B_ALPHABMP_NONE) { + png_set_strip_alpha(png_ptr); + color_type &= ~PNG_COLOR_MASK_ALPHA; + } + } else if (png_get_valid(png_ptr, info_ptr, PNG_INFO_tRNS)) { + if (alpha_format != P2B_ALPHABMP_NONE && expand_trans) { + png_set_tRNS_to_alpha(png_ptr); + color_type |= PNG_COLOR_MASK_ALPHA; + color_type &= ~PNG_COLOR_MASK_PALETTE; + } + } + if (color_type == PNG_COLOR_TYPE_GRAY_ALPHA) { + png_set_gray_to_rgb(png_ptr); + } + if (color_type == PNG_COLOR_TYPE_RGB || + color_type == PNG_COLOR_TYPE_RGB_ALPHA) { + png_set_bgr(png_ptr); + } + if (!(color_type & PNG_COLOR_MASK_ALPHA) && bit_depth == 2) { + png_set_user_transform_info(png_ptr, NULL, 4, 1); + png_set_read_user_transform_fn(png_ptr, to4bpp); + } + if (bit_depth == 16) + png_set_strip_16(png_ptr); + + png_read_update_info(png_ptr, info_ptr); + + /* ------------------------------------------------------ */ + + png_get_IHDR(png_ptr, info_ptr, &width, &height, &xbit_depth, + &xcolor_type, NULL, NULL, NULL); + xchannels = png_get_channels(png_ptr, info_ptr); + + img->width = (LONG)width; + img->height = (LONG)height; + img->pixdepth = (UINT)xbit_depth * xchannels; + img->palnum = (img->pixdepth <= 8) ? (1 << img->pixdepth) : 0; + img->topdown = FALSE; + img->alpha = (xcolor_type & PNG_COLOR_MASK_ALPHA) ? TRUE : FALSE; + + if (!imgbuf_alloc(img)) { + png_destroy_read_struct(&png_ptr, &info_ptr, &end_info); + ERROR_ABORT(err_outofmemory); + } + + if (img->palnum > 0) { + if (xcolor_type == PNG_COLOR_TYPE_PALETTE) { + png_colorp palette; + int num_palette; + png_get_PLTE(png_ptr, info_ptr, &palette, &num_palette); + if (num_palette > (int)img->palnum) num_palette = img->palnum; + memset(img->palette, 0, img->palnum * sizeof(png_color)); + memcpy(img->palette, palette, num_palette * sizeof(png_color)); + } else { + int depth = (bit_depth == 16) ? 8 : bit_depth; + memset(img->palette, 0, img->palnum * sizeof(png_color)); + png_build_grayscale_palette(depth, img->palette); + } + } + + /* ------------------------------------------------------ */ + + png_set_read_status_fn(png_ptr, row_callback); + init_progress_meter(png_ptr, img->width, img->height); + + png_read_image(png_ptr, img->rowptr); + + png_read_end(png_ptr, end_info); + png_destroy_read_struct(&png_ptr, &info_ptr, &end_info); + + /* ------------------------------------------------------ */ + + set_status("Read OK %.80s", basname(fn)); + + if (fp != stdin) fclose(fp); + + return TRUE; + +error_abort: /* error */ + if (errmsg != NULL) xxprintf(errmsg, fn); + if (fp != stdin && fp != NULL) fclose(fp); + imgbuf_free(img); + + return FALSE; +} + + +/* +** t@C擪ɂ}bNoCiǂݒ΂ +*/ +static int skip_macbinary(png_structp png_ptr) +{ +#if 0 + void png_read_data(png_structp, png_bytep, png_size_t); + enum { PNG_BYTES_TO_CHECK = 8, MACBIN_SIZE = 128 }; /* ^ in pngrio.c */ + png_byte buf[MACBIN_SIZE]; + png_bytep sig; + + png_read_data(png_ptr, buf, PNG_BYTES_TO_CHECK); + if (png_sig_cmp(buf, 0, PNG_BYTES_TO_CHECK) == 0) + return PNG_BYTES_TO_CHECK; + + png_read_data(png_ptr, buf, MACBIN_SIZE); + sig = buf + MACBIN_SIZE - PNG_BYTES_TO_CHECK; + if (png_sig_cmp(sig, 0, PNG_BYTES_TO_CHECK) == 0) + return PNG_BYTES_TO_CHECK; + + xxprintf(err_not_a_png, (char *)png_get_error_ptr(png_ptr)); + longjmp(png_jmpbuf(png_ptr), 1); + +#endif + return 0; /* to quiet compiler warnings */ +} + + +/* +** 4F` -> 16F`ւ̕ϊ +*/ +static void to4bpp(png_structp png_ptr, png_row_infop row_info, png_bytep data) +{ + static const png_byte pix[] = { + 0x00, 0x01, 0x02, 0x03, 0x10, 0x11, 0x12, 0x13, + 0x20, 0x21, 0x22, 0x23, 0x30, 0x31, 0x32, 0x33, + }; + png_uint_32 rowb; + png_bytep p, q; + png_byte c; + + rowb = (row_info->width + 1) / 2; + q = data + rowb; + p = data + rowb / 2; + + if (rowb % 2 == 1) { + c = *p; + *(--q) = pix[c >> 4]; + } + while (p > data) { + c = *(--p); + *(--q) = pix[c & 0x0F]; + *(--q) = pix[c >> 4]; + } + row_info->bit_depth = 4; + row_info->pixel_depth = 4; + row_info->rowbytes = rowb; +} + + +/* ----------------------------------------------------------------------- +** BMP t@C̏ +*/ + +/* +** .bmp t@C̏ +*/ +static BOOL write_bmp(char *fn, IMAGE *img) +{ + BYTE bfh[FILEHED_SIZE + BMPV4HED_SIZE]; + BYTE *const bih = bfh + FILEHED_SIZE; + BYTE rgbq[RGBQUAD_SIZE]; + BOOL alpha_bitfield; + DWORD bihsize, offbits, filesize; + PALETTE *pal; + const char *errmsg; + FILE *fp; + UINT i; + + if (fn == NULL) { + fn = " (stdout)"; + fp = binary_stdio(fileno(stdout)); + } else { + fp = fopen(fn, "wb"); + } + if (fp == NULL) ERROR_ABORT(err_wopenfail); + + set_status("Writing %.80s", basname(fn)); + + /* ------------------------------------------------------ */ + + alpha_bitfield = (img->alpha && alpha_format == P2B_ALPHABMP_BITFIELD); + bihsize = (alpha_bitfield) ? BMPV4HED_SIZE : INFOHED_SIZE; + offbits = FILEHED_SIZE + bihsize + RGBQUAD_SIZE * img->palnum; + filesize = offbits + img->imgbytes; + + memset(bfh, 0, sizeof(bfh)); + + mputwl( bfh + BFH_WTYPE , BMP_SIGNATURE); + mputdwl(bfh + BFH_DSIZE , filesize); + mputdwl(bfh + BFH_DOFFBITS, offbits); + + mputdwl(bih + BIH_DSIZE , bihsize); + mputdwl(bih + BIH_LWIDTH , (DWORD)img->width); + mputdwl(bih + BIH_LHEIGHT , (DWORD)img->height); + mputwl( bih + BIH_WPLANES , 1); + mputwl( bih + BIH_WBITCOUNT , img->pixdepth); + mputdwl(bih + BIH_DSIZEIMAGE, img->imgbytes); + + if (alpha_bitfield) { + mputdwl(bih + BIH_DCOMPRESSION, BI_BITFIELDS); + mputdwl(bih + B4H_DALPHAMASK, 0xFF000000); + mputdwl(bih + B4H_DREDMASK , 0x00FF0000); + mputdwl(bih + B4H_DGREENMASK, 0x0000FF00); + mputdwl(bih + B4H_DBLUEMASK , 0x000000FF); + } + + if (fwrite(bfh, (FILEHED_SIZE + bihsize), 1, fp) != 1) + ERROR_ABORT(err_writeerr); + + /* ------------------------------------------------------ */ + + memset(rgbq, 0, sizeof(rgbq)); + + for (pal = img->palette, i = img->palnum; i > 0; i--, pal++) { + rgbq[RGBQ_RED] = pal->red; + rgbq[RGBQ_GREEN] = pal->green; + rgbq[RGBQ_BLUE] = pal->blue; + if (fwrite(rgbq, RGBQUAD_SIZE, 1, fp) != 1) + ERROR_ABORT(err_writeerr); + } + + /* ------------------------------------------------------ */ + + if ((errmsg = write_rgb_bits(img, fp)) != NULL) ERROR_ABORT(errmsg); + + /* ------------------------------------------------------ */ + + set_status("OK %.80s", basname(fn)); + feed_line(); + + fflush(fp); + if (fp != stdout) fclose(fp); + imgbuf_free(img); + + return TRUE; + +error_abort: /* error */ + xxprintf(errmsg, fn); + if (fp != stdout && fp != NULL) fclose(fp); + imgbuf_free(img); + + return FALSE; +} + + +/* +** BI_RGB (k) `̉摜f[^ +*/ +static const char *write_rgb_bits(IMAGE *img, FILE *fp) +{ +#if 1 + DWORD wr = 16*1024*1024; + DWORD num = img->imgbytes; + BYTE *ptr = img->bmpbits; + + while (num > 0) { + if (wr > num) wr = num; + + if (fwrite(ptr, wr, 1, fp) != 1) + return err_writeerr; + + ptr += wr; num -= wr; + } +#else + if (fwrite(img->bmpbits, img->imgbytes, 1, fp) != 1) + return err_writeerr; +#endif + return NULL; +} + + +/* +** little-endien ` 4oCg +*/ +static void mputdwl(void *ptr, unsigned long val) +{ + unsigned char *p = ptr; + + p[0] = (unsigned char)(val & 0xFF); + p[1] = (unsigned char)(val >> 8 & 0xFF); + p[2] = (unsigned char)(val >> 16 & 0xFF); + p[3] = (unsigned char)(val >> 24 & 0xFF); +} + + +/* +** little-endien ` 2oCg +*/ +static void mputwl(void *ptr, unsigned int val) +{ + unsigned char *p = ptr; + + p[0] = (unsigned char)(val & 0xFF); + p[1] = (unsigned char)(val >> 8 & 0xFF); +} + + +/* ----------------------------------------------------------------------- +** wvXN[̕\ +*/ + +/* +** gp@\ +*/ +static void usage_exit(char *argv0, int status) +{ + static const char str_usage[] = +#ifdef JAPANESE /* -------------------------- */ +#ifdef SJIS_ESCAPE +#define SJ_ESC(esc,raw) esc +#else +#define SJ_ESC(esc,raw) raw +#endif + "png2bmp, PNG -> BMP Ro[^ - version " PNG2BMP_VERSION "\n" + " " PNG2BMP_COPYRIGHT "\n" + " Compiled with libpng " PNG_LIBPNG_VER_STRING " and zlib " ZLIB_VERSION ".\n" + "\n" + "g : %s [-XCb`] ̓t@C ...\n" + " : ... | %s [-XCb`] | ...\n" + "\n" + "̓t@Cɂ̓ChJ[hg܂ (* ?)\n" + "o̓t@C͓̓t@C̊gq .bmp ɕςOɂȂ܂\n" + "\n" + "XCb`IvV (ł) :\n" + " -A At@`lۑ (32bit ARGB BMP `)\n" + " -B At@`lۑ (32bit Bitfield BMP `)\n" + " -R FAt@`lɕϊ (-A -B ƋɎg)\n" + " -O name o̓t@Cw肷\n" + " -D dir t@Co͂fBNgw肷\n" + " -E ϊꍇɂ͓̓t@C폜\n" + " -T ̓t@C̃^CX^vo̓t@Cɐݒ肷\n" + " -Q , ؂" SJ_ESC("\\","\") "Ȃ\n" + " -L ̃G[Ot@C(%s)ɋL^\n" + " -X Ẃ^Wo͂ϊ𖳌ɂ\n"; +#else /* ----------------------------------- */ + "png2bmp, a PNG-to-BMP converter - version " PNG2BMP_VERSION "\n" + " " PNG2BMP_COPYRIGHT "\n" + " Compiled with libpng " PNG_LIBPNG_VER_STRING " and zlib " ZLIB_VERSION ".\n" + "\n" + "Usage: %s [-switches] inputfile(s) ...\n" + " or: ... | %s [-switches] | ...\n" + "\n" + "List of input files may use wildcards (* and ?)\n" + "Output filename is same as input filename, but extension .bmp\n" + "\n" + "Switches (case-insensitive) :\n" + " -A Preserve alpha channel (save in 32bit ARGB BMP format)\n" + " -B Preserve alpha channel (save in 32bit Bitfield BMP format)\n" + " -R Convert transparent color to alpha channel (use with -A or -B)\n" + " -O name Specify name for output file\n" + " -D dir Output files into dir\n" + " -E Delete input files after successful conversion\n" + " -T Set the timestamp of input file on output file\n" + " -Q Quiet mode\n" + " -L Log errors to %s file\n" + " -X Disable conversion through standard input/output\n"; +#endif /* ----------------------------------- */ +#if defined(WIN32) || defined(MSDOS) + char exename[FILENAME_MAX]; + char *p; + + argv0 = strcpy(exename, basname(argv0)); + for (p = argv0; *p != '\0'; p++) *p = tolower(*p); +#endif + fprintf(stdout, str_usage, argv0, argv0, errlogfile); + + exit(status); +} + diff --git a/crawl-ref/source/rltiles/bmp2png/png2bmp.dsp b/crawl-ref/source/rltiles/bmp2png/png2bmp.dsp new file mode 100644 index 0000000000..9012f86579 --- /dev/null +++ b/crawl-ref/source/rltiles/bmp2png/png2bmp.dsp @@ -0,0 +1,111 @@ +# Microsoft Developer Studio Project File - Name="png2bmp" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** ҏWȂł ** + +# TARGTYPE "Win32 (x86) Console Application" 0x0103 + +CFG=png2bmp - Win32 Debug +!MESSAGE ͗LҲ̧قł͂܂B ۼުĂނ邽߂ɂ NMAKE gpĂB +!MESSAGE [Ҳ̧ق̴߰] ނgpĎsĂ +!MESSAGE +!MESSAGE NMAKE /f "png2bmp.mak". +!MESSAGE +!MESSAGE NMAKE ̎sɍ\wł܂ +!MESSAGE ײݏϸۂ̐ݒ`܂B: +!MESSAGE +!MESSAGE NMAKE /f "png2bmp.mak" CFG="png2bmp - Win32 Debug" +!MESSAGE +!MESSAGE I”\ Ӱ: +!MESSAGE +!MESSAGE "png2bmp - Win32 Release" ("Win32 (x86) Console Application" p) +!MESSAGE "png2bmp - Win32 Debug" ("Win32 (x86) Console Application" p) +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +CPP=cl.exe +RSC=rc.exe + +!IF "$(CFG)" == "png2bmp - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "Release" +# PROP Intermediate_Dir "Release" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /W3 /GX /O2 /D "PNG_USER_CONFIG" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c +# ADD CPP /nologo /MD /W3 /O2 /I "..\libpng" /I "..\zlib" /D "NDEBUG" /D "PNG_USER_CONFIG" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /YX /FD /GF /c +# ADD BASE RSC /l 0x411 /d "NDEBUG" +# ADD RSC /l 0x411 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 +# ADD LINK32 setargv.obj libpng.lib zlib.lib /nologo /subsystem:console /map /machine:I386 /libpath:"..\libpng\release" /libpath:"..\zlib\release" /opt:nowin98 +# SUBTRACT LINK32 /pdb:none + +!ELSEIF "$(CFG)" == "png2bmp - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "Debug" +# PROP Intermediate_Dir "Debug" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "PNG_USER_CONFIG" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c +# ADD CPP /nologo /MDd /W3 /Gm /ZI /Od /I "..\libpng" /I "..\zlib" /D "_DEBUG" /D "PNG_USER_CONFIG" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /Fr /YX /FD /GZ /c +# ADD BASE RSC /l 0x411 /d "_DEBUG" +# ADD RSC /l 0x411 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept +# ADD LINK32 setargv.obj libpng.lib zlib.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"..\libpng\debug" /libpath:"..\zlib\debug" + +!ENDIF + +# Begin Target + +# Name "png2bmp - Win32 Release" +# Name "png2bmp - Win32 Debug" +# Begin Group "Source Files" + +# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" +# Begin Source File + +SOURCE=.\common.c +# End Source File +# Begin Source File + +SOURCE=.\png2bmp.c +# End Source File +# End Group +# Begin Group "Header Files" + +# PROP Default_Filter "h;hpp;hxx;hm;inl" +# Begin Source File + +SOURCE=.\bmphed.h +# End Source File +# Begin Source File + +SOURCE=.\common.h +# End Source File +# End Group +# End Target +# End Project diff --git a/crawl-ref/source/rltiles/dc-2d.txt b/crawl-ref/source/rltiles/dc-2d.txt new file mode 100644 index 0000000000..3b0e06c2e7 --- /dev/null +++ b/crawl-ref/source/rltiles/dc-2d.txt @@ -0,0 +1,32 @@ +%tiledef tiledef.h +%width 30 +%back none +#%htmlfile tile.htm +#%tilelist tile.txt +#%htmlbody +%name tile + +## Dungeon features +%include dc-dngn.txt + +## Set black rim +## Items +%include dc-item.txt +## Monsters +%include dc-mon.txt +## Clear black rim +%rim 0 + +## Corpse +%back dc/blood +%corpse 1 +%include dc-co.txt +%back none +%corpse 0 + +####PLAYER +####include dc-jobs.txt + +#### Effects, etc. +%include dc-misc.txt + diff --git a/crawl-ref/source/rltiles/dc-co.txt b/crawl-ref/source/rltiles/dc-co.txt new file mode 100644 index 0000000000..ab1fbe20ff --- /dev/null +++ b/crawl-ref/source/rltiles/dc-co.txt @@ -0,0 +1,256 @@ +### dungeon crawl monster corpses + +%sdir dc-mon + +%corpse 1 +%subst large_mimic +%back dc-misc/blood_red +glowing_shapeshifter CORPSE_GLOWING_SHAPESHIFTER /* @ */ +hell_knight CORPSE_HELL_KNIGHT /* @ */ +human CORPSE_HUMAN /* @ */ +necromancer CORPSE_NECROMANCER /* @ */ +shapeshifter CORPSE_SHAPESHIFTER /* @ */ +wizard CORPSE_WIZARD /* @ */ + +%back dc-misc/blood_green +boring_beetle CORPSE_BORING_BEETLE /* B */ +boulder_beetle CORPSE_BOULDER_BEETLE /* B */ +giant_beetle CORPSE_GIANT_BEETLE /* B */ + +%back dc-misc/blood_red +cyclops CORPSE_CYCLOPS /* C */ +fire_giant CORPSE_FIRE_GIANT /* C */ +frost_giant CORPSE_FROST_GIANT /* C */ +hill_giant CORPSE_HILL_GIANT /* C */ +stone_giant CORPSE_STONE_GIANT /* C */ +titan CORPSE_TITAN /* C */ + +dragon CORPSE_DRAGON /* D */ +golden_dragon CORPSE_GOLDEN_DRAGON /* D */ +hydra5 CORPSE_HYDRA /* D */ +ice_dragon CORPSE_ICE_DRAGON /* D */ +shadow_dragon CORPSE_SHADOW_DRAGON /* D */ +storm_dragon CORPSE_STORM_DRAGON /* D */ +swamp_dragon CORPSE_SWAMP_DRAGON /* D */ +wyvern CORPSE_WYVERN /* D */ + +blink_frog CORPSE_BLINK_FROG /* F */ +giant_brown_frog CORPSE_GIANT_BROWN_FROG /* F */ +giant_frog CORPSE_GIANT_FROG /* F */ +spiny_frog CORPSE_SPINY_FROG /* F */ + +eye_of_draining CORPSE_EYE_OF_DRAINING /* G */ +giant_eyeball CORPSE_GIANT_EYEBALL /* G */ +giant_orange_brain CORPSE_GIANT_ORANGE_BRAIN /* G */ +great_orb_of_eyes CORPSE_GREAT_ORB_OF_EYES /* G */ + +griffon CORPSE_GRIFFON /* H */ +hippogriff CORPSE_HIPPOGRIFF /* H */ + +giant_amoeba CORPSE_GIANT_AMOEBA /* J */ + +%back dc-misc/blood_green +kobold CORPSE_KOBOLD /* K */ + +%back dc-misc/blood_red +greater_naga0 CORPSE_GREATER_NAGA /* N */ +guardian_naga CORPSE_GUARDIAN_NAGA /* N */ +naga0 CORPSE_NAGA /* N */ +###naga_mage CORPSE_NAGA_MAGE /* N */ +###naga_warrior CORPSE_NAGA_WARRIOR /* N */ + +ogre CORPSE_OGRE /* O */ +two_headed_ogre CORPSE_TWO_HEADED_OGRE /* O */ + +%back dc-misc/blood_green +queen_ant CORPSE_QUEEN_ANT /* Q */ +queen_bee CORPSE_QUEEN_BEE /* Q */ + +%back dc-misc/blood_red +black_snake CORPSE_BLACK_SNAKE /* S */ +brown_snake CORPSE_BROWN_SNAKE /* S */ +grey_snake CORPSE_GREY_SNAKE /* S */ +small_snake CORPSE_SMALL_SNAKE /* S */ +snake CORPSE_SNAKE /* S */ +yellow_snake CORPSE_YELLOW_SNAKE /* S */ + +deep_troll CORPSE_DEEP_TROLL /* T */ +iron_troll CORPSE_IRON_TROLL /* T */ +rock_troll CORPSE_ROCK_TROLL /* T */ +troll CORPSE_TROLL /* T */ + +bear CORPSE_BEAR /* U */ +black_bear CORPSE_BLACK_BEAR /* U */ +grizzly_bear CORPSE_GRIZZLY_BEAR /* U */ +polar_bear CORPSE_POLAR_BEAR /* U */ + +death_yak CORPSE_DEATH_YAK /* Y */ +sheep CORPSE_SHEEP /* Y */ +yak CORPSE_YAK /* Y */ + +%back dc-misc/blood_green +giant_ant CORPSE_GIANT_ANT /* a */ +giant_cockroach CORPSE_GIANT_COCKROACH /* a */ +soldier_ant CORPSE_SOLDIER_ANT /* a */ + +butterfly CORPSE_BUTTERFLY /* b */ +%back dc-misc/blood_red +giant_bat CORPSE_GIANT_BAT /* b */ + +centaur CORPSE_CENTAUR /* c */ +###centaur_warrior CORPSE_CENTAUR_WARRIOR /* c */ +yaktaur CORPSE_YAKTAUR /* c */ +###yaktaur_captain CORPSE_YAKTAUR_CAPTAIN /* c */ + +firedrake CORPSE_FIREDRAKE /* d */ +lindwurm CORPSE_LINDWURM /* d */ +mottled_dragon CORPSE_MOTTLED_DRAGON /* d */ +steam_dragon CORPSE_STEAM_DRAGON /* d */ +swamp_drake CORPSE_SWAMP_DRAKE /* d */ +death_drake CORPSE_DEATH_DRAKE /* d */ + +##deep_elf_annihilator CORPSE_DEEP_ELF_ANNIHILATOR /* e */ +##deep_elf_conjurer CORPSE_DEEP_ELF_CONJURER /* e */ +##deep_elf_death_mage CORPSE_DEEP_ELF_DEATH_MAGE /* e */ +##deep_elf_demonologist CORPSE_DEEP_ELF_DEMONOLOGIST /* e */ +##deep_elf_fighter CORPSE_DEEP_ELF_FIGHTER /* e */ +##deep_elf_high_priest CORPSE_DEEP_ELF_HIGH_PRIEST /* e */ +##deep_elf_knight CORPSE_DEEP_ELF_KNIGHT /* e */ +##deep_elf_mage CORPSE_DEEP_ELF_MAGE /* e */ +##deep_elf_priest CORPSE_DEEP_ELF_PRIEST /* e */ +##deep_elf_soldier CORPSE_DEEP_ELF_SOLDIER /* e */ +##deep_elf_sorcerer CORPSE_DEEP_ELF_SORCERER /* e */ +##deep_elf_summoner CORPSE_DEEP_ELF_SUMMONER /* e */ +elf CORPSE_ELF /* e */ + +gnoll0 CORPSE_GNOLL /* g */ +goblin0 CORPSE_GOBLIN /* g */ +hobgoblin0 CORPSE_HOBGOBLIN /* g */ + +hog CORPSE_HOG /* h */ +hound CORPSE_HOUND /* h */ +warg CORPSE_WARG /* h */ +war_dog CORPSE_WAR_DOG /* h */ +wolf CORPSE_WOLF /* h */ + +jackal CORPSE_JACKAL /* j */ + +%back dc-misc/blood_green +bumblebee CORPSE_BUMBLEBEE /* k */ +killer_bee CORPSE_KILLER_BEE /* k */ + +%back dc-misc/blood_red +giant_gecko CORPSE_GIANT_GECKO /* l */ +giant_iguana CORPSE_GIANT_IGUANA /* l */ +giant_lizard CORPSE_GIANT_LIZARD /* l */ +giant_newt CORPSE_GIANT_NEWT /* l */ +gila_monster CORPSE_GILA_MONSTER /* l */ +komodo_dragon CORPSE_KOMODO_DRAGON /* l */ + +%back dc-misc/blood_green +elephant_slug CORPSE_ELEPHANT_SLUG /* m */ +giant_slug CORPSE_GIANT_SLUG /* m */ +giant_snail CORPSE_GIANT_SNAIL /* m */ +manticore CORPSE_MANTICORE /* m */ +%back dc-misc/blood_red +minotaur CORPSE_MINOTAUR /* m */ + +%back dc-misc/blood_green +ghoul CORPSE_GHOUL /* n */ +necrophage CORPSE_NECROPHAGE /* n */ + +%back dc-misc/blood_red +orc0 CORPSE_ORC /* o */ +###orc_high_priest CORPSE_ORC_HIGH_PRIEST /* o */ +###orc_priest CORPSE_ORC_PRIEST /* o */ +###orc_sorcerer CORPSE_ORC_SORCERER /* o */ +###orc_warlord CORPSE_ORC_WARLORD /* o */ + +green_rat CORPSE_GREEN_RAT /* r */ +grey_rat CORPSE_GREY_RAT /* r */ +orange_rat CORPSE_ORANGE_RAT /* r */ +quokka CORPSE_QUOKKA /* r */ +rat CORPSE_RAT /* r */ + +%back dc-misc/blood_green +giant_centipede CORPSE_GIANT_CENTIPEDE /* s */ +giant_mite CORPSE_GIANT_MITE /* s */ +redback CORPSE_REDBACK /* s */ +scorpion CORPSE_SCORPION /* s */ +wolf_spider CORPSE_WOLF_SPIDER /* s */ + +ugly_thing CORPSE_UGLY_THING /* u */ +very_ugly_thing CORPSE_VERY_UGLY_THING /* u */ + +killer_bee_larva CORPSE_ANT_LARVA /* w */ +brain_worm CORPSE_BRAIN_WORM /* w */ +killer_bee_larva CORPSE_KILLER_BEE_LARVA /* w */ +spiny_worm CORPSE_SPINY_WORM /* w */ +worm CORPSE_WORM /* w */ + +giant_blowfly CORPSE_GIANT_BLOWFLY /* y */ +giant_mosquito CORPSE_GIANT_MOSQUITO /* y */ +red_wasp CORPSE_RED_WASP /* y */ +yellow_wasp CORPSE_YELLOW_WASP /* y */ + +%sdir player +%start +%compose drcwing/drcwing_black +%compose base/draconian_black_m +%compose drchead/drchead_black +%finish CORPSE_DRACONIAN_BLACK + +%start +%compose drcwing/drcwing_brown +%compose base/draconian_f +%compose drchead/drchead_brown +%finish CORPSE_DRACONIAN_BROWN + +%start +%compose drcwing/drcwing_green +%compose base/draconian_green_m +%compose drchead/drchead_green +%finish CORPSE_DRACONIAN_GREEN + +%start +%compose drcwing/drcwing_grey +%compose base/draconian_gray_f +%compose drchead/drchead_grey +%finish CORPSE_DRACONIAN_GREY + +%start +%compose drcwing/drcwing_mottled +%compose base/draconian_mottled_m +%compose drchead/drchead_mottled +%finish CORPSE_DRACONIAN_MOTTLED + +%start +%compose drcwing/drcwing_pale +%compose base/draconian_pale_f +%compose drchead/drchead_pale +%finish CORPSE_DRACONIAN_PALE + +%start +%compose drcwing/drcwing_purple +%compose base/draconian_purple_m +%compose drchead/drchead_purple +%finish CORPSE_DRACONIAN_PURPLE + +%start +%compose drcwing/drcwing_red +%compose base/draconian_red_f +%compose drchead/drchead_red +%finish CORPSE_DRACONIAN_RED + +%start +%compose drcwing/drcwing_white +%compose base/draconian_white_m +%compose drchead/drchead_white +%finish CORPSE_DRACONIAN_WHITE + +%start +%compose drcwing/drcwing_yellow +%compose base/draconian_gold_f +%compose drchead/drchead_yellow +%finish CORPSE_DRACONIAN_YELLOW + diff --git a/crawl-ref/source/rltiles/dc-dngn.txt b/crawl-ref/source/rltiles/dc-dngn.txt new file mode 100644 index 0000000000..de5529bc5e --- /dev/null +++ b/crawl-ref/source/rltiles/dc-dngn.txt @@ -0,0 +1,161 @@ +%sdir dc-dngn + +blank BLANK +dngn_unseen DNGN_UNSEEN + +floor/pebble_gray0 DNGN_FLOOR +floor/pebble_gray1 +floor/pebble_gray2 +floor/pebble_gray3 +floor/pebble_gray3 +floor/pebble_gray3 +floor/pebble_gray3 +floor/pebble_gray3 DNGN_FLOOR_SPECIAL +wall/brick_brown0 DNGN_ROCK_WALL_OFS +wall/brick_brown1 +wall/brick_brown2 +wall/brick_brown3 +wall/brick_brown3 +wall/brick_brown3 +wall/brick_brown3 +wall/brick_brown3 +wall/brick_brown3 +wall/brick_brown3 +wall/brick_brown3 +wall/brick_brown3 + +floor/lava0 DNGN_LAVA +floor/lava1 +floor/lava2 +floor/lava3 +dngn_deep_water DNGN_DEEP_WATER +dngn_deep_water +dngn_deep_water +dngn_deep_water +dngn_shallow_water DNGN_SHALLOW_WATER +dngn_shallow_water +dngn_shallow_water +dngn_shallow_water + +wall/stone2_gray0 DNGN_STONE_WALL +wall/stone2_gray1 +wall/stone2_gray2 +wall/stone2_gray3 +dngn_metal_wall DNGN_METAL_WALL +dngn_green_crystal_wall DNGN_GREEN_CRYSTAL_WALL +dngn_wax_wall DNGN_WAX_WALL + +#dngn_rock_wall_00 DNGN_ROCK_WALL_OFS +#dngn_rock_wall_01 IGNORE_COMMENT +#dngn_rock_wall_02 IGNORE_COMMENT +#dngn_rock_wall_03 IGNORE_COMMENT +#dngn_rock_wall_04 IGNORE_COMMENT +#dngn_rock_wall_05 IGNORE_COMMENT +#dngn_rock_wall_06 IGNORE_COMMENT +#dngn_rock_wall_07 IGNORE_COMMENT +#dngn_rock_wall_08 IGNORE_COMMENT +#dngn_rock_wall_09 IGNORE_COMMENT +#dngn_rock_wall_10 IGNORE_COMMENT +#dngn_rock_wall_11 IGNORE_COMMENT +#dngn_rock_wall_12 IGNORE_COMMENT +#dngn_rock_wall_13 IGNORE_COMMENT +#dngn_rock_wall_14 IGNORE_COMMENT +#dngn_rock_wall_15 IGNORE_COMMENT +#dngn_stone_wall DNGN_STONE_WALL + +dngn_closed_door DNGN_CLOSED_DOOR +dngn_open_door DNGN_OPEN_DOOR +###dc/wal8 DNGN_SECRET_DOOR +dngn_orcish_idol DNGN_ORCISH_IDOL +dngn_silver_statue DNGN_SILVER_STATUE +dngn_granite_statue DNGN_GRANITE_STATUE +dngn_orange_crystal_statue DNGN_ORANGE_CRYSTAL_STATUE +dngn_ice_statue DNGN_ICE_STATUE + +###dc/wal1 DNGN_PERMAROCK_WALL +###dc/wal1 DNGN_LAST_SOLID_TILE + +dngn_enter_hell DNGN_ENTER_HELL +dngn_branch_stairs DNGN_BRANCH_STAIRS +dngn_trap_mechanical DNGN_TRAP_MECHANICAL +dngn_trap_magical DNGN_TRAP_MAGICAL +dngn_trap_iii DNGN_TRAP_III +###847 DNGN_UNDISCOVERED_TRAP +stone_stairs_down DNGN_STONE_STAIRS_DOWN +#nh-dngn/staircase_down DNGN_STONE_STAIRS_DOWN_II +#nh-dngn/staircase_down DNGN_STONE_STAIRS_DOWN_III +rock_stairs_down DNGN_ROCK_STAIRS_DOWN +stone_stairs_up DNGN_STONE_STAIRS_UP +#nh-dngn/staircase_up DNGN_STONE_STAIRS_UP_II +#nh-dngn/staircase_up DNGN_STONE_STAIRS_UP_III +rock_stairs_up DNGN_ROCK_STAIRS_UP + +dngn_enter_shop DNGN_ENTER_SHOP +dngn_enter_labyrinth DNGN_ENTER_LABYRINTH +dngn_enter_dis DNGN_ENTER_DIS +dngn_enter_gehenna DNGN_ENTER_GEHENNA +dngn_enter_cocytus DNGN_ENTER_COCYTUS +dngn_enter_tartarus DNGN_ENTER_TARTARUS + +dngn_enter_abyss DNGN_ENTER_ABYSS +dngn_exit DNGN_EXIT_ABYSS + +dngn_stone_arch DNGN_STONE_ARCH +dngn_enter_pandemonium DNGN_ENTER_PANDEMONIUM +dngn_exit DNGN_EXIT_PANDEMONIUM +dngn_transit_pandemonium DNGN_TRANSIT_PANDEMONIUM +####846 DNGN_BUILDER_SPECIAL_WALL +####846 DNGN_BUILDER_SPECIAL_FLOOR +dngn_enter DNGN_ENTER +#851 DNGN_ENTER_ORCISH_MINES +#851 DNGN_ENTER_HIVE +#851 DNGN_ENTER_LAIR +#851 DNGN_ENTER_SLIME_PITS +#851 DNGN_ENTER_VAULTS +#851 DNGN_ENTER_CRYPT +#851 DNGN_ENTER_HALL_OF_BLADES +#851 DNGN_ENTER_ZOT +#851 DNGN_ENTER_TEMPLE +#851 DNGN_ENTER_SNAKE_PIT +#851 DNGN_ENTER_ELVEN_HALLS +#851 DNGN_ENTER_TOMB +#851 DNGN_ENTER_SWAMP +dngn_return DNGN_RETURN +#850 DNGN_RETURN_FROM_ORCISH_MINES +#850 DNGN_RETURN_FROM_HIVE +#850 DNGN_RETURN_FROM_LAIR +#850 DNGN_RETURN_FROM_SLIME_PITS +#850 DNGN_RETURN_FROM_VAULTS +#850 DNGN_RETURN_FROM_CRYPT +#850 DNGN_RETURN_FROM_HALL_OF_BLADES +#850 DNGN_RETURN_FROM_ZOT +#850 DNGN_RETURN_FROM_TEMPLE +#850 DNGN_RETURN_FROM_SNAKE_PIT +#850 DNGN_RETURN_FROM_ELVEN_HALLS +#850 DNGN_RETURN_FROM_TOMB +#850 DNGN_RETURN_FROM_SWAMP +dngn_altar_zin DNGN_ALTAR_ZIN +dngn_altar_shining_one DNGN_ALTAR_SHINING_ONE +dngn_altar_kikubaaqudgha DNGN_ALTAR_KIKUBAAQUDGHA +dngn_altar_yredelemnul DNGN_ALTAR_YREDELEMNUL +dngn_altar_xom DNGN_ALTAR_XOM +dngn_altar_vehumet DNGN_ALTAR_VEHUMET +dngn_altar_okawaru DNGN_ALTAR_OKAWARU +dngn_altar_makhleb DNGN_ALTAR_MAKHLEB +dngn_altar_sif_muna DNGN_ALTAR_SIF_MUNA +dngn_altar_trog DNGN_ALTAR_TROG +dngn_altar_nemelex_xobeh DNGN_ALTAR_NEMELEX_XOBEH +dngn_altar_elyvilon DNGN_ALTAR_ELYVILON +dngn_altar_lugonu DNGN_ALTAR_LUGONU +dngn_altar_beogh DNGN_ALTAR_BEOGH +dngn_blue_fountain DNGN_BLUE_FOUNTAIN +dngn_dry_fountain DNGN_DRY_FOUNTAIN +dngn_sparkling_fountain DNGN_SPARKLING_FOUNTAIN +#858 DNGN_DRY_FOUNTAIN_II +#858 DNGN_DRY_FOUNTAIN_III +#858 DNGN_DRY_FOUNTAIN_IV +#858 DNGN_DRY_FOUNTAIN_V +#858 DNGN_DRY_FOUNTAIN_VI +#858 DNGN_DRY_FOUNTAIN_VII +#858 DNGN_DRY_FOUNTAIN_VIII +#858 DNGN_PERMADRY_FOUNTAIN diff --git a/crawl-ref/source/rltiles/dc-dngn/dngn_altar.bmp b/crawl-ref/source/rltiles/dc-dngn/dngn_altar.bmp new file mode 100644 index 0000000000..983ca5d2db Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/dngn_altar.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/dngn_altar_beogh.bmp b/crawl-ref/source/rltiles/dc-dngn/dngn_altar_beogh.bmp new file mode 100644 index 0000000000..75a0a83030 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/dngn_altar_beogh.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/dngn_altar_elyvilon.bmp b/crawl-ref/source/rltiles/dc-dngn/dngn_altar_elyvilon.bmp new file mode 100644 index 0000000000..9b19583893 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/dngn_altar_elyvilon.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/dngn_altar_kikubaaqudgha.bmp b/crawl-ref/source/rltiles/dc-dngn/dngn_altar_kikubaaqudgha.bmp new file mode 100644 index 0000000000..438202cc1e Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/dngn_altar_kikubaaqudgha.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/dngn_altar_lugonu.bmp b/crawl-ref/source/rltiles/dc-dngn/dngn_altar_lugonu.bmp new file mode 100644 index 0000000000..a82fb5be1b Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/dngn_altar_lugonu.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/dngn_altar_makhleb.bmp b/crawl-ref/source/rltiles/dc-dngn/dngn_altar_makhleb.bmp new file mode 100644 index 0000000000..083cd5d396 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/dngn_altar_makhleb.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/dngn_altar_nemelex_xobeh.bmp b/crawl-ref/source/rltiles/dc-dngn/dngn_altar_nemelex_xobeh.bmp new file mode 100644 index 0000000000..2508553b03 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/dngn_altar_nemelex_xobeh.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/dngn_altar_okawaru.bmp b/crawl-ref/source/rltiles/dc-dngn/dngn_altar_okawaru.bmp new file mode 100644 index 0000000000..c94b90a168 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/dngn_altar_okawaru.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/dngn_altar_shining_one.bmp b/crawl-ref/source/rltiles/dc-dngn/dngn_altar_shining_one.bmp new file mode 100644 index 0000000000..b6de1141f1 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/dngn_altar_shining_one.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/dngn_altar_sif_muna.bmp b/crawl-ref/source/rltiles/dc-dngn/dngn_altar_sif_muna.bmp new file mode 100644 index 0000000000..0803554fa2 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/dngn_altar_sif_muna.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/dngn_altar_trog.bmp b/crawl-ref/source/rltiles/dc-dngn/dngn_altar_trog.bmp new file mode 100644 index 0000000000..b0f04c2a1f Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/dngn_altar_trog.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/dngn_altar_vehumet.bmp b/crawl-ref/source/rltiles/dc-dngn/dngn_altar_vehumet.bmp new file mode 100644 index 0000000000..e8fa3a686a Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/dngn_altar_vehumet.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/dngn_altar_xom.bmp b/crawl-ref/source/rltiles/dc-dngn/dngn_altar_xom.bmp new file mode 100644 index 0000000000..307fef9d2d Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/dngn_altar_xom.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/dngn_altar_yredelemnul.bmp b/crawl-ref/source/rltiles/dc-dngn/dngn_altar_yredelemnul.bmp new file mode 100644 index 0000000000..179ed71b66 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/dngn_altar_yredelemnul.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/dngn_altar_zin.bmp b/crawl-ref/source/rltiles/dc-dngn/dngn_altar_zin.bmp new file mode 100644 index 0000000000..016ab9ef00 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/dngn_altar_zin.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/dngn_blue_fountain.bmp b/crawl-ref/source/rltiles/dc-dngn/dngn_blue_fountain.bmp new file mode 100644 index 0000000000..427b959f82 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/dngn_blue_fountain.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/dngn_branch_stairs.bmp b/crawl-ref/source/rltiles/dc-dngn/dngn_branch_stairs.bmp new file mode 100644 index 0000000000..31b4750c25 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/dngn_branch_stairs.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/dngn_closed_door.bmp b/crawl-ref/source/rltiles/dc-dngn/dngn_closed_door.bmp new file mode 100644 index 0000000000..84e41753c0 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/dngn_closed_door.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/dngn_deep_water.bmp b/crawl-ref/source/rltiles/dc-dngn/dngn_deep_water.bmp new file mode 100644 index 0000000000..10cbb34f10 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/dngn_deep_water.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/dngn_dry_fountain.bmp b/crawl-ref/source/rltiles/dc-dngn/dngn_dry_fountain.bmp new file mode 100644 index 0000000000..92e86dc8d0 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/dngn_dry_fountain.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/dngn_enter.bmp b/crawl-ref/source/rltiles/dc-dngn/dngn_enter.bmp new file mode 100644 index 0000000000..857b3e77f0 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/dngn_enter.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/dngn_enter_abyss.bmp b/crawl-ref/source/rltiles/dc-dngn/dngn_enter_abyss.bmp new file mode 100644 index 0000000000..a08889585e Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/dngn_enter_abyss.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/dngn_enter_cocytus.bmp b/crawl-ref/source/rltiles/dc-dngn/dngn_enter_cocytus.bmp new file mode 100644 index 0000000000..903148c791 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/dngn_enter_cocytus.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/dngn_enter_dis.bmp b/crawl-ref/source/rltiles/dc-dngn/dngn_enter_dis.bmp new file mode 100644 index 0000000000..d6ad591017 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/dngn_enter_dis.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/dngn_enter_gehenna.bmp b/crawl-ref/source/rltiles/dc-dngn/dngn_enter_gehenna.bmp new file mode 100644 index 0000000000..48217f61d1 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/dngn_enter_gehenna.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/dngn_enter_hell.bmp b/crawl-ref/source/rltiles/dc-dngn/dngn_enter_hell.bmp new file mode 100644 index 0000000000..d452436475 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/dngn_enter_hell.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/dngn_enter_labyrinth.bmp b/crawl-ref/source/rltiles/dc-dngn/dngn_enter_labyrinth.bmp new file mode 100644 index 0000000000..79053cd4bf Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/dngn_enter_labyrinth.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/dngn_enter_pandemonium.bmp b/crawl-ref/source/rltiles/dc-dngn/dngn_enter_pandemonium.bmp new file mode 100644 index 0000000000..d6e3fa0e45 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/dngn_enter_pandemonium.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/dngn_enter_shop.bmp b/crawl-ref/source/rltiles/dc-dngn/dngn_enter_shop.bmp new file mode 100644 index 0000000000..13d8f7110a Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/dngn_enter_shop.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/dngn_enter_tartarus.bmp b/crawl-ref/source/rltiles/dc-dngn/dngn_enter_tartarus.bmp new file mode 100644 index 0000000000..4a4313dd0c Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/dngn_enter_tartarus.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/dngn_entrance.bmp b/crawl-ref/source/rltiles/dc-dngn/dngn_entrance.bmp new file mode 100644 index 0000000000..03e3ad8bbc Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/dngn_entrance.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/dngn_exit.bmp b/crawl-ref/source/rltiles/dc-dngn/dngn_exit.bmp new file mode 100644 index 0000000000..2f7bba30a5 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/dngn_exit.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/dngn_floor.bmp b/crawl-ref/source/rltiles/dc-dngn/dngn_floor.bmp new file mode 100644 index 0000000000..7e94f91adc Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/dngn_floor.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/dngn_granite_statue.bmp b/crawl-ref/source/rltiles/dc-dngn/dngn_granite_statue.bmp new file mode 100644 index 0000000000..e0deaec667 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/dngn_granite_statue.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/dngn_green_crystal_wall.bmp b/crawl-ref/source/rltiles/dc-dngn/dngn_green_crystal_wall.bmp new file mode 100644 index 0000000000..bebde58cb7 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/dngn_green_crystal_wall.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/dngn_ice_statue.bmp b/crawl-ref/source/rltiles/dc-dngn/dngn_ice_statue.bmp new file mode 100644 index 0000000000..9d66adefef Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/dngn_ice_statue.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/dngn_lava.bmp b/crawl-ref/source/rltiles/dc-dngn/dngn_lava.bmp new file mode 100644 index 0000000000..ad0dd0a727 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/dngn_lava.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/dngn_metal_wall.bmp b/crawl-ref/source/rltiles/dc-dngn/dngn_metal_wall.bmp new file mode 100644 index 0000000000..15d05e369f Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/dngn_metal_wall.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/dngn_open_door.bmp b/crawl-ref/source/rltiles/dc-dngn/dngn_open_door.bmp new file mode 100644 index 0000000000..8a06937a0d Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/dngn_open_door.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/dngn_orange_crystal_statue.bmp b/crawl-ref/source/rltiles/dc-dngn/dngn_orange_crystal_statue.bmp new file mode 100644 index 0000000000..769a80c78f Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/dngn_orange_crystal_statue.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/dngn_orcish_idol.bmp b/crawl-ref/source/rltiles/dc-dngn/dngn_orcish_idol.bmp new file mode 100644 index 0000000000..2c53d2817d Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/dngn_orcish_idol.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/dngn_return.bmp b/crawl-ref/source/rltiles/dc-dngn/dngn_return.bmp new file mode 100644 index 0000000000..e427840d7d Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/dngn_return.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/dngn_rock_stairs_down.bmp b/crawl-ref/source/rltiles/dc-dngn/dngn_rock_stairs_down.bmp new file mode 100644 index 0000000000..5a0870e2f7 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/dngn_rock_stairs_down.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/dngn_rock_stairs_up.bmp b/crawl-ref/source/rltiles/dc-dngn/dngn_rock_stairs_up.bmp new file mode 100644 index 0000000000..9aa377babb Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/dngn_rock_stairs_up.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/dngn_rock_wall_00.bmp b/crawl-ref/source/rltiles/dc-dngn/dngn_rock_wall_00.bmp new file mode 100644 index 0000000000..e5aa20100d Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/dngn_rock_wall_00.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/dngn_rock_wall_01.bmp b/crawl-ref/source/rltiles/dc-dngn/dngn_rock_wall_01.bmp new file mode 100644 index 0000000000..9e742f11c6 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/dngn_rock_wall_01.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/dngn_rock_wall_02.bmp b/crawl-ref/source/rltiles/dc-dngn/dngn_rock_wall_02.bmp new file mode 100644 index 0000000000..3c82c5f1c3 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/dngn_rock_wall_02.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/dngn_rock_wall_03.bmp b/crawl-ref/source/rltiles/dc-dngn/dngn_rock_wall_03.bmp new file mode 100644 index 0000000000..16b7193824 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/dngn_rock_wall_03.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/dngn_rock_wall_04.bmp b/crawl-ref/source/rltiles/dc-dngn/dngn_rock_wall_04.bmp new file mode 100644 index 0000000000..2b8d3e6f0e Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/dngn_rock_wall_04.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/dngn_rock_wall_05.bmp b/crawl-ref/source/rltiles/dc-dngn/dngn_rock_wall_05.bmp new file mode 100644 index 0000000000..a8199a0259 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/dngn_rock_wall_05.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/dngn_rock_wall_06.bmp b/crawl-ref/source/rltiles/dc-dngn/dngn_rock_wall_06.bmp new file mode 100644 index 0000000000..6f3ce1d010 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/dngn_rock_wall_06.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/dngn_rock_wall_07.bmp b/crawl-ref/source/rltiles/dc-dngn/dngn_rock_wall_07.bmp new file mode 100644 index 0000000000..cf3de687df Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/dngn_rock_wall_07.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/dngn_rock_wall_08.bmp b/crawl-ref/source/rltiles/dc-dngn/dngn_rock_wall_08.bmp new file mode 100644 index 0000000000..a340189f4a Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/dngn_rock_wall_08.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/dngn_rock_wall_09.bmp b/crawl-ref/source/rltiles/dc-dngn/dngn_rock_wall_09.bmp new file mode 100644 index 0000000000..cdd747071c Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/dngn_rock_wall_09.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/dngn_rock_wall_10.bmp b/crawl-ref/source/rltiles/dc-dngn/dngn_rock_wall_10.bmp new file mode 100644 index 0000000000..f0a1951ff5 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/dngn_rock_wall_10.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/dngn_rock_wall_11.bmp b/crawl-ref/source/rltiles/dc-dngn/dngn_rock_wall_11.bmp new file mode 100644 index 0000000000..4283733402 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/dngn_rock_wall_11.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/dngn_rock_wall_12.bmp b/crawl-ref/source/rltiles/dc-dngn/dngn_rock_wall_12.bmp new file mode 100644 index 0000000000..e7d5949fdd Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/dngn_rock_wall_12.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/dngn_rock_wall_13.bmp b/crawl-ref/source/rltiles/dc-dngn/dngn_rock_wall_13.bmp new file mode 100644 index 0000000000..354647f4c1 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/dngn_rock_wall_13.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/dngn_rock_wall_14.bmp b/crawl-ref/source/rltiles/dc-dngn/dngn_rock_wall_14.bmp new file mode 100644 index 0000000000..54f3c7623e Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/dngn_rock_wall_14.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/dngn_rock_wall_15.bmp b/crawl-ref/source/rltiles/dc-dngn/dngn_rock_wall_15.bmp new file mode 100644 index 0000000000..6db4d03f72 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/dngn_rock_wall_15.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/dngn_shallow_water.bmp b/crawl-ref/source/rltiles/dc-dngn/dngn_shallow_water.bmp new file mode 100644 index 0000000000..1af58b2261 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/dngn_shallow_water.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/dngn_silver_statue.bmp b/crawl-ref/source/rltiles/dc-dngn/dngn_silver_statue.bmp new file mode 100644 index 0000000000..c18f22a2e8 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/dngn_silver_statue.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/dngn_sparkling_fountain.bmp b/crawl-ref/source/rltiles/dc-dngn/dngn_sparkling_fountain.bmp new file mode 100644 index 0000000000..deacf3e3be Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/dngn_sparkling_fountain.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/dngn_stone_arch.bmp b/crawl-ref/source/rltiles/dc-dngn/dngn_stone_arch.bmp new file mode 100644 index 0000000000..bb7dc72268 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/dngn_stone_arch.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/dngn_stone_wall.bmp b/crawl-ref/source/rltiles/dc-dngn/dngn_stone_wall.bmp new file mode 100644 index 0000000000..c6e24d7561 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/dngn_stone_wall.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/dngn_transit_pandemonium.bmp b/crawl-ref/source/rltiles/dc-dngn/dngn_transit_pandemonium.bmp new file mode 100644 index 0000000000..4eca365e71 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/dngn_transit_pandemonium.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/dngn_trap_iii.bmp b/crawl-ref/source/rltiles/dc-dngn/dngn_trap_iii.bmp new file mode 100644 index 0000000000..a32668841a Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/dngn_trap_iii.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/dngn_trap_magical.bmp b/crawl-ref/source/rltiles/dc-dngn/dngn_trap_magical.bmp new file mode 100644 index 0000000000..6afd70f5ea Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/dngn_trap_magical.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/dngn_trap_mechanical.bmp b/crawl-ref/source/rltiles/dc-dngn/dngn_trap_mechanical.bmp new file mode 100644 index 0000000000..9cd689daaa Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/dngn_trap_mechanical.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/dngn_unseen.bmp b/crawl-ref/source/rltiles/dc-dngn/dngn_unseen.bmp new file mode 100644 index 0000000000..187325f234 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/dngn_unseen.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/dngn_wax_wall.bmp b/crawl-ref/source/rltiles/dc-dngn/dngn_wax_wall.bmp new file mode 100644 index 0000000000..28ff4511b5 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/dngn_wax_wall.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/floor/bog_green0.bmp b/crawl-ref/source/rltiles/dc-dngn/floor/bog_green0.bmp new file mode 100644 index 0000000000..427e861462 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/floor/bog_green0.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/floor/bog_green1.bmp b/crawl-ref/source/rltiles/dc-dngn/floor/bog_green1.bmp new file mode 100644 index 0000000000..102e48125a Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/floor/bog_green1.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/floor/bog_green2.bmp b/crawl-ref/source/rltiles/dc-dngn/floor/bog_green2.bmp new file mode 100644 index 0000000000..781d43e9f9 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/floor/bog_green2.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/floor/bog_green3.bmp b/crawl-ref/source/rltiles/dc-dngn/floor/bog_green3.bmp new file mode 100644 index 0000000000..2e8f00eb5f Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/floor/bog_green3.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/floor/brick_gray0.bmp b/crawl-ref/source/rltiles/dc-dngn/floor/brick_gray0.bmp new file mode 100644 index 0000000000..7489a2d5df Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/floor/brick_gray0.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/floor/brick_gray1.bmp b/crawl-ref/source/rltiles/dc-dngn/floor/brick_gray1.bmp new file mode 100644 index 0000000000..38ed87f146 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/floor/brick_gray1.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/floor/brick_gray2.bmp b/crawl-ref/source/rltiles/dc-dngn/floor/brick_gray2.bmp new file mode 100644 index 0000000000..2b8d92458e Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/floor/brick_gray2.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/floor/brick_gray3.bmp b/crawl-ref/source/rltiles/dc-dngn/floor/brick_gray3.bmp new file mode 100644 index 0000000000..fe5aa4a8a0 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/floor/brick_gray3.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/floor/dirt0.bmp b/crawl-ref/source/rltiles/dc-dngn/floor/dirt0.bmp new file mode 100644 index 0000000000..dce2f44c3d Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/floor/dirt0.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/floor/dirt1.bmp b/crawl-ref/source/rltiles/dc-dngn/floor/dirt1.bmp new file mode 100644 index 0000000000..ace6d52b97 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/floor/dirt1.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/floor/dirt2.bmp b/crawl-ref/source/rltiles/dc-dngn/floor/dirt2.bmp new file mode 100644 index 0000000000..12e63af95e Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/floor/dirt2.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/floor/dirt_e.bmp b/crawl-ref/source/rltiles/dc-dngn/floor/dirt_e.bmp new file mode 100644 index 0000000000..633001a6e5 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/floor/dirt_e.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/floor/dirt_full.bmp b/crawl-ref/source/rltiles/dc-dngn/floor/dirt_full.bmp new file mode 100644 index 0000000000..a343d5b3c1 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/floor/dirt_full.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/floor/dirt_n.bmp b/crawl-ref/source/rltiles/dc-dngn/floor/dirt_n.bmp new file mode 100644 index 0000000000..b6fdf3a168 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/floor/dirt_n.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/floor/dirt_ne.bmp b/crawl-ref/source/rltiles/dc-dngn/floor/dirt_ne.bmp new file mode 100644 index 0000000000..bc43af8829 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/floor/dirt_ne.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/floor/dirt_nw.bmp b/crawl-ref/source/rltiles/dc-dngn/floor/dirt_nw.bmp new file mode 100644 index 0000000000..b2ff3684cd Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/floor/dirt_nw.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/floor/dirt_s.bmp b/crawl-ref/source/rltiles/dc-dngn/floor/dirt_s.bmp new file mode 100644 index 0000000000..2b1d106687 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/floor/dirt_s.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/floor/dirt_se.bmp b/crawl-ref/source/rltiles/dc-dngn/floor/dirt_se.bmp new file mode 100644 index 0000000000..a8e2cced2d Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/floor/dirt_se.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/floor/dirt_sw.bmp b/crawl-ref/source/rltiles/dc-dngn/floor/dirt_sw.bmp new file mode 100644 index 0000000000..1ccda8db3e Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/floor/dirt_sw.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/floor/dirt_w.bmp b/crawl-ref/source/rltiles/dc-dngn/floor/dirt_w.bmp new file mode 100644 index 0000000000..4e8082e8cc Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/floor/dirt_w.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/floor/grass0.bmp b/crawl-ref/source/rltiles/dc-dngn/floor/grass0.bmp new file mode 100644 index 0000000000..d74160d511 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/floor/grass0.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/floor/grass1.bmp b/crawl-ref/source/rltiles/dc-dngn/floor/grass1.bmp new file mode 100644 index 0000000000..71452c4521 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/floor/grass1.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/floor/grass2.bmp b/crawl-ref/source/rltiles/dc-dngn/floor/grass2.bmp new file mode 100644 index 0000000000..06c110607a Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/floor/grass2.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/floor/grass_e.bmp b/crawl-ref/source/rltiles/dc-dngn/floor/grass_e.bmp new file mode 100644 index 0000000000..af82fccdec Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/floor/grass_e.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/floor/grass_full.bmp b/crawl-ref/source/rltiles/dc-dngn/floor/grass_full.bmp new file mode 100644 index 0000000000..e2599d282d Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/floor/grass_full.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/floor/grass_n.bmp b/crawl-ref/source/rltiles/dc-dngn/floor/grass_n.bmp new file mode 100644 index 0000000000..86449a93ba Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/floor/grass_n.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/floor/grass_ne.bmp b/crawl-ref/source/rltiles/dc-dngn/floor/grass_ne.bmp new file mode 100644 index 0000000000..6d4b91f3a9 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/floor/grass_ne.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/floor/grass_nw.bmp b/crawl-ref/source/rltiles/dc-dngn/floor/grass_nw.bmp new file mode 100644 index 0000000000..ce7c08ee2c Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/floor/grass_nw.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/floor/grass_s.bmp b/crawl-ref/source/rltiles/dc-dngn/floor/grass_s.bmp new file mode 100644 index 0000000000..7fb3bc4178 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/floor/grass_s.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/floor/grass_se.bmp b/crawl-ref/source/rltiles/dc-dngn/floor/grass_se.bmp new file mode 100644 index 0000000000..622b5b4fff Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/floor/grass_se.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/floor/grass_sw.bmp b/crawl-ref/source/rltiles/dc-dngn/floor/grass_sw.bmp new file mode 100644 index 0000000000..da164c61af Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/floor/grass_sw.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/floor/grass_w.bmp b/crawl-ref/source/rltiles/dc-dngn/floor/grass_w.bmp new file mode 100644 index 0000000000..96d2589da2 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/floor/grass_w.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/floor/hive0.bmp b/crawl-ref/source/rltiles/dc-dngn/floor/hive0.bmp new file mode 100644 index 0000000000..2470e64e98 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/floor/hive0.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/floor/hive1.bmp b/crawl-ref/source/rltiles/dc-dngn/floor/hive1.bmp new file mode 100644 index 0000000000..52610448e4 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/floor/hive1.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/floor/hive2.bmp b/crawl-ref/source/rltiles/dc-dngn/floor/hive2.bmp new file mode 100644 index 0000000000..50ca301a16 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/floor/hive2.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/floor/hive3.bmp b/crawl-ref/source/rltiles/dc-dngn/floor/hive3.bmp new file mode 100644 index 0000000000..ec00dd5647 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/floor/hive3.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/floor/ice0.bmp b/crawl-ref/source/rltiles/dc-dngn/floor/ice0.bmp new file mode 100644 index 0000000000..ee3618f2cd Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/floor/ice0.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/floor/ice1.bmp b/crawl-ref/source/rltiles/dc-dngn/floor/ice1.bmp new file mode 100644 index 0000000000..6783636b2c Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/floor/ice1.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/floor/ice2.bmp b/crawl-ref/source/rltiles/dc-dngn/floor/ice2.bmp new file mode 100644 index 0000000000..0055679b0a Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/floor/ice2.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/floor/ice3.bmp b/crawl-ref/source/rltiles/dc-dngn/floor/ice3.bmp new file mode 100644 index 0000000000..9aa7fd6f6e Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/floor/ice3.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/floor/lair0.bmp b/crawl-ref/source/rltiles/dc-dngn/floor/lair0.bmp new file mode 100644 index 0000000000..56f39a8f77 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/floor/lair0.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/floor/lair1.bmp b/crawl-ref/source/rltiles/dc-dngn/floor/lair1.bmp new file mode 100644 index 0000000000..680b25a0df Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/floor/lair1.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/floor/lair2.bmp b/crawl-ref/source/rltiles/dc-dngn/floor/lair2.bmp new file mode 100644 index 0000000000..c2eec181f8 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/floor/lair2.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/floor/lair3.bmp b/crawl-ref/source/rltiles/dc-dngn/floor/lair3.bmp new file mode 100644 index 0000000000..189a716a6b Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/floor/lair3.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/floor/lava0.bmp b/crawl-ref/source/rltiles/dc-dngn/floor/lava0.bmp new file mode 100644 index 0000000000..756fcc99e7 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/floor/lava0.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/floor/lava1.bmp b/crawl-ref/source/rltiles/dc-dngn/floor/lava1.bmp new file mode 100644 index 0000000000..09554107d5 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/floor/lava1.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/floor/lava2.bmp b/crawl-ref/source/rltiles/dc-dngn/floor/lava2.bmp new file mode 100644 index 0000000000..3476e59d6f Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/floor/lava2.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/floor/lava3.bmp b/crawl-ref/source/rltiles/dc-dngn/floor/lava3.bmp new file mode 100644 index 0000000000..b8107ca697 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/floor/lava3.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/floor/mesh0.bmp b/crawl-ref/source/rltiles/dc-dngn/floor/mesh0.bmp new file mode 100644 index 0000000000..4f6428f827 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/floor/mesh0.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/floor/mesh1.bmp b/crawl-ref/source/rltiles/dc-dngn/floor/mesh1.bmp new file mode 100644 index 0000000000..75ed04eeaf Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/floor/mesh1.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/floor/mesh2.bmp b/crawl-ref/source/rltiles/dc-dngn/floor/mesh2.bmp new file mode 100644 index 0000000000..5bffc4fe45 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/floor/mesh2.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/floor/mesh3.bmp b/crawl-ref/source/rltiles/dc-dngn/floor/mesh3.bmp new file mode 100644 index 0000000000..67868234d2 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/floor/mesh3.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/floor/pebble_gray0.bmp b/crawl-ref/source/rltiles/dc-dngn/floor/pebble_gray0.bmp new file mode 100644 index 0000000000..885ce960d6 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/floor/pebble_gray0.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/floor/pebble_gray1.bmp b/crawl-ref/source/rltiles/dc-dngn/floor/pebble_gray1.bmp new file mode 100644 index 0000000000..89c9badf98 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/floor/pebble_gray1.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/floor/pebble_gray2.bmp b/crawl-ref/source/rltiles/dc-dngn/floor/pebble_gray2.bmp new file mode 100644 index 0000000000..6a12c1372d Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/floor/pebble_gray2.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/floor/pebble_gray3.bmp b/crawl-ref/source/rltiles/dc-dngn/floor/pebble_gray3.bmp new file mode 100644 index 0000000000..51ae0c5523 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/floor/pebble_gray3.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/floor/pebble_gray4.bmp b/crawl-ref/source/rltiles/dc-dngn/floor/pebble_gray4.bmp new file mode 100644 index 0000000000..e09d2d92fb Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/floor/pebble_gray4.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/floor/pedestal_e.bmp b/crawl-ref/source/rltiles/dc-dngn/floor/pedestal_e.bmp new file mode 100644 index 0000000000..25272710bc Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/floor/pedestal_e.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/floor/pedestal_full.bmp b/crawl-ref/source/rltiles/dc-dngn/floor/pedestal_full.bmp new file mode 100644 index 0000000000..e260fa08e0 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/floor/pedestal_full.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/floor/pedestal_n.bmp b/crawl-ref/source/rltiles/dc-dngn/floor/pedestal_n.bmp new file mode 100644 index 0000000000..484380d71e Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/floor/pedestal_n.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/floor/pedestal_ne.bmp b/crawl-ref/source/rltiles/dc-dngn/floor/pedestal_ne.bmp new file mode 100644 index 0000000000..6dbde654e9 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/floor/pedestal_ne.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/floor/pedestal_nw.bmp b/crawl-ref/source/rltiles/dc-dngn/floor/pedestal_nw.bmp new file mode 100644 index 0000000000..46e17c26fe Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/floor/pedestal_nw.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/floor/pedestal_s.bmp b/crawl-ref/source/rltiles/dc-dngn/floor/pedestal_s.bmp new file mode 100644 index 0000000000..1363b0cc9a Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/floor/pedestal_s.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/floor/pedestal_se.bmp b/crawl-ref/source/rltiles/dc-dngn/floor/pedestal_se.bmp new file mode 100644 index 0000000000..4538d006bb Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/floor/pedestal_se.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/floor/pedestal_sw.bmp b/crawl-ref/source/rltiles/dc-dngn/floor/pedestal_sw.bmp new file mode 100644 index 0000000000..3ae1e41b5e Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/floor/pedestal_sw.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/floor/pedestal_w.bmp b/crawl-ref/source/rltiles/dc-dngn/floor/pedestal_w.bmp new file mode 100644 index 0000000000..969be54370 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/floor/pedestal_w.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/floor/rect_gray0.bmp b/crawl-ref/source/rltiles/dc-dngn/floor/rect_gray0.bmp new file mode 100644 index 0000000000..00e1f71c6c Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/floor/rect_gray0.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/floor/rect_gray1.bmp b/crawl-ref/source/rltiles/dc-dngn/floor/rect_gray1.bmp new file mode 100644 index 0000000000..4e8b5e4b2c Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/floor/rect_gray1.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/floor/rect_gray2.bmp b/crawl-ref/source/rltiles/dc-dngn/floor/rect_gray2.bmp new file mode 100644 index 0000000000..941e974070 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/floor/rect_gray2.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/floor/rect_gray3.bmp b/crawl-ref/source/rltiles/dc-dngn/floor/rect_gray3.bmp new file mode 100644 index 0000000000..1ac988dbf0 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/floor/rect_gray3.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/floor/rough_brown0.bmp b/crawl-ref/source/rltiles/dc-dngn/floor/rough_brown0.bmp new file mode 100644 index 0000000000..2470e64e98 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/floor/rough_brown0.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/floor/rough_brown1.bmp b/crawl-ref/source/rltiles/dc-dngn/floor/rough_brown1.bmp new file mode 100644 index 0000000000..4b0eede7bb Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/floor/rough_brown1.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/floor/rough_brown2.bmp b/crawl-ref/source/rltiles/dc-dngn/floor/rough_brown2.bmp new file mode 100644 index 0000000000..319b6a5c16 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/floor/rough_brown2.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/floor/rough_brown3.bmp b/crawl-ref/source/rltiles/dc-dngn/floor/rough_brown3.bmp new file mode 100644 index 0000000000..48ca9b4222 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/floor/rough_brown3.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/floor/rough_red0.bmp b/crawl-ref/source/rltiles/dc-dngn/floor/rough_red0.bmp new file mode 100644 index 0000000000..4f57c4dc13 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/floor/rough_red0.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/floor/rough_red1.bmp b/crawl-ref/source/rltiles/dc-dngn/floor/rough_red1.bmp new file mode 100644 index 0000000000..97e4dddfe9 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/floor/rough_red1.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/floor/rough_red2.bmp b/crawl-ref/source/rltiles/dc-dngn/floor/rough_red2.bmp new file mode 100644 index 0000000000..ed83cb6944 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/floor/rough_red2.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/floor/rough_red3.bmp b/crawl-ref/source/rltiles/dc-dngn/floor/rough_red3.bmp new file mode 100644 index 0000000000..fb07621aa6 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/floor/rough_red3.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/floor/snake0.bmp b/crawl-ref/source/rltiles/dc-dngn/floor/snake0.bmp new file mode 100644 index 0000000000..7522e55217 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/floor/snake0.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/floor/snake1.bmp b/crawl-ref/source/rltiles/dc-dngn/floor/snake1.bmp new file mode 100644 index 0000000000..6103695e9d Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/floor/snake1.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/floor/snake2.bmp b/crawl-ref/source/rltiles/dc-dngn/floor/snake2.bmp new file mode 100644 index 0000000000..df32d3cbc4 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/floor/snake2.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/floor/snake3.bmp b/crawl-ref/source/rltiles/dc-dngn/floor/snake3.bmp new file mode 100644 index 0000000000..c72300d9e4 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/floor/snake3.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/floor/swamp0.bmp b/crawl-ref/source/rltiles/dc-dngn/floor/swamp0.bmp new file mode 100644 index 0000000000..0c9a64039e Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/floor/swamp0.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/floor/swamp1.bmp b/crawl-ref/source/rltiles/dc-dngn/floor/swamp1.bmp new file mode 100644 index 0000000000..3f35fcb6ca Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/floor/swamp1.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/floor/swamp2.bmp b/crawl-ref/source/rltiles/dc-dngn/floor/swamp2.bmp new file mode 100644 index 0000000000..9775385915 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/floor/swamp2.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/floor/swamp3.bmp b/crawl-ref/source/rltiles/dc-dngn/floor/swamp3.bmp new file mode 100644 index 0000000000..c4f375d694 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/floor/swamp3.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/floor/tomb0.bmp b/crawl-ref/source/rltiles/dc-dngn/floor/tomb0.bmp new file mode 100644 index 0000000000..c94a258451 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/floor/tomb0.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/floor/tomb1.bmp b/crawl-ref/source/rltiles/dc-dngn/floor/tomb1.bmp new file mode 100644 index 0000000000..fe04737e4d Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/floor/tomb1.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/floor/tomb2.bmp b/crawl-ref/source/rltiles/dc-dngn/floor/tomb2.bmp new file mode 100644 index 0000000000..6d1724c8a8 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/floor/tomb2.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/floor/tomb3.bmp b/crawl-ref/source/rltiles/dc-dngn/floor/tomb3.bmp new file mode 100644 index 0000000000..ee0b9029a7 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/floor/tomb3.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/rock_stairs_down.bmp b/crawl-ref/source/rltiles/dc-dngn/rock_stairs_down.bmp new file mode 100644 index 0000000000..54412bd7aa Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/rock_stairs_down.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/rock_stairs_up.bmp b/crawl-ref/source/rltiles/dc-dngn/rock_stairs_up.bmp new file mode 100644 index 0000000000..eb6766215b Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/rock_stairs_up.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/stone_stairs_down.bmp b/crawl-ref/source/rltiles/dc-dngn/stone_stairs_down.bmp new file mode 100644 index 0000000000..b18a233689 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/stone_stairs_down.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/stone_stairs_up.bmp b/crawl-ref/source/rltiles/dc-dngn/stone_stairs_up.bmp new file mode 100644 index 0000000000..95e090934b Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/stone_stairs_up.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/wall/brick_brown0.bmp b/crawl-ref/source/rltiles/dc-dngn/wall/brick_brown0.bmp new file mode 100644 index 0000000000..00dc1a1629 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/wall/brick_brown0.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/wall/brick_brown1.bmp b/crawl-ref/source/rltiles/dc-dngn/wall/brick_brown1.bmp new file mode 100644 index 0000000000..adcc69f8f3 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/wall/brick_brown1.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/wall/brick_brown2.bmp b/crawl-ref/source/rltiles/dc-dngn/wall/brick_brown2.bmp new file mode 100644 index 0000000000..122c6df979 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/wall/brick_brown2.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/wall/brick_brown3.bmp b/crawl-ref/source/rltiles/dc-dngn/wall/brick_brown3.bmp new file mode 100644 index 0000000000..6fa1154e8f Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/wall/brick_brown3.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/wall/brick_gray0.bmp b/crawl-ref/source/rltiles/dc-dngn/wall/brick_gray0.bmp new file mode 100644 index 0000000000..7489a2d5df Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/wall/brick_gray0.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/wall/brick_gray1.bmp b/crawl-ref/source/rltiles/dc-dngn/wall/brick_gray1.bmp new file mode 100644 index 0000000000..38ed87f146 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/wall/brick_gray1.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/wall/brick_gray2.bmp b/crawl-ref/source/rltiles/dc-dngn/wall/brick_gray2.bmp new file mode 100644 index 0000000000..2b8d92458e Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/wall/brick_gray2.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/wall/brick_gray3.bmp b/crawl-ref/source/rltiles/dc-dngn/wall/brick_gray3.bmp new file mode 100644 index 0000000000..fe5aa4a8a0 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/wall/brick_gray3.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/wall/hive0.bmp b/crawl-ref/source/rltiles/dc-dngn/wall/hive0.bmp new file mode 100644 index 0000000000..484ee2b0c3 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/wall/hive0.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/wall/hive1.bmp b/crawl-ref/source/rltiles/dc-dngn/wall/hive1.bmp new file mode 100644 index 0000000000..1bf44e4a95 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/wall/hive1.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/wall/hive2.bmp b/crawl-ref/source/rltiles/dc-dngn/wall/hive2.bmp new file mode 100644 index 0000000000..970fe192a9 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/wall/hive2.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/wall/hive3.bmp b/crawl-ref/source/rltiles/dc-dngn/wall/hive3.bmp new file mode 100644 index 0000000000..45dba8371f Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/wall/hive3.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/wall/ice0.bmp b/crawl-ref/source/rltiles/dc-dngn/wall/ice0.bmp new file mode 100644 index 0000000000..6be1e638d1 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/wall/ice0.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/wall/ice1.bmp b/crawl-ref/source/rltiles/dc-dngn/wall/ice1.bmp new file mode 100644 index 0000000000..c3415b917a Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/wall/ice1.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/wall/ice2.bmp b/crawl-ref/source/rltiles/dc-dngn/wall/ice2.bmp new file mode 100644 index 0000000000..8970bef945 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/wall/ice2.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/wall/ice3.bmp b/crawl-ref/source/rltiles/dc-dngn/wall/ice3.bmp new file mode 100644 index 0000000000..9641cdaac3 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/wall/ice3.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/wall/lair0.bmp b/crawl-ref/source/rltiles/dc-dngn/wall/lair0.bmp new file mode 100644 index 0000000000..7ae0d4f2ab Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/wall/lair0.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/wall/lair1.bmp b/crawl-ref/source/rltiles/dc-dngn/wall/lair1.bmp new file mode 100644 index 0000000000..95a6a187b7 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/wall/lair1.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/wall/lair2.bmp b/crawl-ref/source/rltiles/dc-dngn/wall/lair2.bmp new file mode 100644 index 0000000000..4dbb0e5e8a Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/wall/lair2.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/wall/lair3.bmp b/crawl-ref/source/rltiles/dc-dngn/wall/lair3.bmp new file mode 100644 index 0000000000..0a16f15ca4 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/wall/lair3.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/wall/marble_green0.bmp b/crawl-ref/source/rltiles/dc-dngn/wall/marble_green0.bmp new file mode 100644 index 0000000000..c22bcc8ca6 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/wall/marble_green0.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/wall/marble_green1.bmp b/crawl-ref/source/rltiles/dc-dngn/wall/marble_green1.bmp new file mode 100644 index 0000000000..cd515b8783 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/wall/marble_green1.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/wall/marble_green2.bmp b/crawl-ref/source/rltiles/dc-dngn/wall/marble_green2.bmp new file mode 100644 index 0000000000..ec71e258f6 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/wall/marble_green2.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/wall/marble_green3.bmp b/crawl-ref/source/rltiles/dc-dngn/wall/marble_green3.bmp new file mode 100644 index 0000000000..54fdcc4870 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/wall/marble_green3.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/wall/pebble_red0.bmp b/crawl-ref/source/rltiles/dc-dngn/wall/pebble_red0.bmp new file mode 100644 index 0000000000..a9dcda334b Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/wall/pebble_red0.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/wall/pebble_red1.bmp b/crawl-ref/source/rltiles/dc-dngn/wall/pebble_red1.bmp new file mode 100644 index 0000000000..3b33c937a7 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/wall/pebble_red1.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/wall/pebble_red2.bmp b/crawl-ref/source/rltiles/dc-dngn/wall/pebble_red2.bmp new file mode 100644 index 0000000000..87b0c7fed5 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/wall/pebble_red2.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/wall/pebble_red3.bmp b/crawl-ref/source/rltiles/dc-dngn/wall/pebble_red3.bmp new file mode 100644 index 0000000000..743cc6b519 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/wall/pebble_red3.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/wall/relief0.bmp b/crawl-ref/source/rltiles/dc-dngn/wall/relief0.bmp new file mode 100644 index 0000000000..4b11b2eab5 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/wall/relief0.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/wall/relief1.bmp b/crawl-ref/source/rltiles/dc-dngn/wall/relief1.bmp new file mode 100644 index 0000000000..d9291eb39e Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/wall/relief1.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/wall/relief2.bmp b/crawl-ref/source/rltiles/dc-dngn/wall/relief2.bmp new file mode 100644 index 0000000000..168f45ae07 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/wall/relief2.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/wall/relief3.bmp b/crawl-ref/source/rltiles/dc-dngn/wall/relief3.bmp new file mode 100644 index 0000000000..31cb8440ca Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/wall/relief3.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/wall/slime0.bmp b/crawl-ref/source/rltiles/dc-dngn/wall/slime0.bmp new file mode 100644 index 0000000000..e09c8b291b Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/wall/slime0.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/wall/slime1.bmp b/crawl-ref/source/rltiles/dc-dngn/wall/slime1.bmp new file mode 100644 index 0000000000..e95a3ce92d Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/wall/slime1.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/wall/slime2.bmp b/crawl-ref/source/rltiles/dc-dngn/wall/slime2.bmp new file mode 100644 index 0000000000..011db3ec69 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/wall/slime2.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/wall/slime3.bmp b/crawl-ref/source/rltiles/dc-dngn/wall/slime3.bmp new file mode 100644 index 0000000000..14c76c0487 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/wall/slime3.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/wall/snake0.bmp b/crawl-ref/source/rltiles/dc-dngn/wall/snake0.bmp new file mode 100644 index 0000000000..183947a178 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/wall/snake0.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/wall/snake1.bmp b/crawl-ref/source/rltiles/dc-dngn/wall/snake1.bmp new file mode 100644 index 0000000000..d89a343861 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/wall/snake1.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/wall/snake2.bmp b/crawl-ref/source/rltiles/dc-dngn/wall/snake2.bmp new file mode 100644 index 0000000000..417739c181 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/wall/snake2.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/wall/snake3.bmp b/crawl-ref/source/rltiles/dc-dngn/wall/snake3.bmp new file mode 100644 index 0000000000..5c9dc95573 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/wall/snake3.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/wall/stone2_gray0.bmp b/crawl-ref/source/rltiles/dc-dngn/wall/stone2_gray0.bmp new file mode 100644 index 0000000000..3051f26d84 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/wall/stone2_gray0.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/wall/stone2_gray1.bmp b/crawl-ref/source/rltiles/dc-dngn/wall/stone2_gray1.bmp new file mode 100644 index 0000000000..ac834f5190 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/wall/stone2_gray1.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/wall/stone2_gray2.bmp b/crawl-ref/source/rltiles/dc-dngn/wall/stone2_gray2.bmp new file mode 100644 index 0000000000..3da48fe45b Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/wall/stone2_gray2.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/wall/stone2_gray3.bmp b/crawl-ref/source/rltiles/dc-dngn/wall/stone2_gray3.bmp new file mode 100644 index 0000000000..86c52b2285 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/wall/stone2_gray3.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/wall/stone_gray0.bmp b/crawl-ref/source/rltiles/dc-dngn/wall/stone_gray0.bmp new file mode 100644 index 0000000000..cc44cf7fbc Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/wall/stone_gray0.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/wall/stone_gray1.bmp b/crawl-ref/source/rltiles/dc-dngn/wall/stone_gray1.bmp new file mode 100644 index 0000000000..32e018dfb7 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/wall/stone_gray1.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/wall/stone_gray2.bmp b/crawl-ref/source/rltiles/dc-dngn/wall/stone_gray2.bmp new file mode 100644 index 0000000000..dd32e1f990 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/wall/stone_gray2.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/wall/stone_gray3.bmp b/crawl-ref/source/rltiles/dc-dngn/wall/stone_gray3.bmp new file mode 100644 index 0000000000..1468f494c9 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/wall/stone_gray3.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/wall/tomb0.bmp b/crawl-ref/source/rltiles/dc-dngn/wall/tomb0.bmp new file mode 100644 index 0000000000..a76efc5573 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/wall/tomb0.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/wall/tomb1.bmp b/crawl-ref/source/rltiles/dc-dngn/wall/tomb1.bmp new file mode 100644 index 0000000000..477482c892 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/wall/tomb1.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/wall/tomb2.bmp b/crawl-ref/source/rltiles/dc-dngn/wall/tomb2.bmp new file mode 100644 index 0000000000..dc41854ec1 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/wall/tomb2.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/wall/tomb3.bmp b/crawl-ref/source/rltiles/dc-dngn/wall/tomb3.bmp new file mode 100644 index 0000000000..7b5f48683f Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/wall/tomb3.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/wall/undead0.bmp b/crawl-ref/source/rltiles/dc-dngn/wall/undead0.bmp new file mode 100644 index 0000000000..85e232f198 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/wall/undead0.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/wall/undead1.bmp b/crawl-ref/source/rltiles/dc-dngn/wall/undead1.bmp new file mode 100644 index 0000000000..88d7fb0687 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/wall/undead1.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/wall/undead2.bmp b/crawl-ref/source/rltiles/dc-dngn/wall/undead2.bmp new file mode 100644 index 0000000000..027becc54b Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/wall/undead2.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/wall/undead3.bmp b/crawl-ref/source/rltiles/dc-dngn/wall/undead3.bmp new file mode 100644 index 0000000000..5d0fa7d46b Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/wall/undead3.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/wall/vault0.bmp b/crawl-ref/source/rltiles/dc-dngn/wall/vault0.bmp new file mode 100644 index 0000000000..54d5220af0 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/wall/vault0.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/wall/vault1.bmp b/crawl-ref/source/rltiles/dc-dngn/wall/vault1.bmp new file mode 100644 index 0000000000..0dd3026cba Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/wall/vault1.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/wall/vault2.bmp b/crawl-ref/source/rltiles/dc-dngn/wall/vault2.bmp new file mode 100644 index 0000000000..3954c78f71 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/wall/vault2.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/wall/vault3.bmp b/crawl-ref/source/rltiles/dc-dngn/wall/vault3.bmp new file mode 100644 index 0000000000..488061e949 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/wall/vault3.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/wall/zot_blue0.bmp b/crawl-ref/source/rltiles/dc-dngn/wall/zot_blue0.bmp new file mode 100644 index 0000000000..cc2aaa2d39 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/wall/zot_blue0.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/wall/zot_blue1.bmp b/crawl-ref/source/rltiles/dc-dngn/wall/zot_blue1.bmp new file mode 100644 index 0000000000..117d349afc Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/wall/zot_blue1.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/wall/zot_blue2.bmp b/crawl-ref/source/rltiles/dc-dngn/wall/zot_blue2.bmp new file mode 100644 index 0000000000..34184e4601 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/wall/zot_blue2.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/wall/zot_blue3.bmp b/crawl-ref/source/rltiles/dc-dngn/wall/zot_blue3.bmp new file mode 100644 index 0000000000..2e56779415 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/wall/zot_blue3.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/wall/zot_cyan0.bmp b/crawl-ref/source/rltiles/dc-dngn/wall/zot_cyan0.bmp new file mode 100644 index 0000000000..6be1e638d1 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/wall/zot_cyan0.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/wall/zot_cyan1.bmp b/crawl-ref/source/rltiles/dc-dngn/wall/zot_cyan1.bmp new file mode 100644 index 0000000000..c3415b917a Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/wall/zot_cyan1.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/wall/zot_cyan2.bmp b/crawl-ref/source/rltiles/dc-dngn/wall/zot_cyan2.bmp new file mode 100644 index 0000000000..8970bef945 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/wall/zot_cyan2.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/wall/zot_cyan3.bmp b/crawl-ref/source/rltiles/dc-dngn/wall/zot_cyan3.bmp new file mode 100644 index 0000000000..9641cdaac3 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/wall/zot_cyan3.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/wall/zot_gray0.bmp b/crawl-ref/source/rltiles/dc-dngn/wall/zot_gray0.bmp new file mode 100644 index 0000000000..c4811357c5 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/wall/zot_gray0.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/wall/zot_gray1.bmp b/crawl-ref/source/rltiles/dc-dngn/wall/zot_gray1.bmp new file mode 100644 index 0000000000..aeed87939a Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/wall/zot_gray1.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/wall/zot_gray2.bmp b/crawl-ref/source/rltiles/dc-dngn/wall/zot_gray2.bmp new file mode 100644 index 0000000000..2d2c7c7189 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/wall/zot_gray2.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/wall/zot_gray3.bmp b/crawl-ref/source/rltiles/dc-dngn/wall/zot_gray3.bmp new file mode 100644 index 0000000000..39590760a3 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/wall/zot_gray3.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/wall/zot_green0.bmp b/crawl-ref/source/rltiles/dc-dngn/wall/zot_green0.bmp new file mode 100644 index 0000000000..c22bcc8ca6 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/wall/zot_green0.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/wall/zot_green1.bmp b/crawl-ref/source/rltiles/dc-dngn/wall/zot_green1.bmp new file mode 100644 index 0000000000..cd515b8783 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/wall/zot_green1.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/wall/zot_green2.bmp b/crawl-ref/source/rltiles/dc-dngn/wall/zot_green2.bmp new file mode 100644 index 0000000000..ec71e258f6 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/wall/zot_green2.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/wall/zot_green3.bmp b/crawl-ref/source/rltiles/dc-dngn/wall/zot_green3.bmp new file mode 100644 index 0000000000..54fdcc4870 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/wall/zot_green3.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/wall/zot_magenta0.bmp b/crawl-ref/source/rltiles/dc-dngn/wall/zot_magenta0.bmp new file mode 100644 index 0000000000..da9f0679a9 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/wall/zot_magenta0.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/wall/zot_magenta1.bmp b/crawl-ref/source/rltiles/dc-dngn/wall/zot_magenta1.bmp new file mode 100644 index 0000000000..51c28de961 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/wall/zot_magenta1.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/wall/zot_magenta2.bmp b/crawl-ref/source/rltiles/dc-dngn/wall/zot_magenta2.bmp new file mode 100644 index 0000000000..45a14bde34 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/wall/zot_magenta2.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/wall/zot_magenta3.bmp b/crawl-ref/source/rltiles/dc-dngn/wall/zot_magenta3.bmp new file mode 100644 index 0000000000..aa40b3d9ae Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/wall/zot_magenta3.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/wall/zot_red0.bmp b/crawl-ref/source/rltiles/dc-dngn/wall/zot_red0.bmp new file mode 100644 index 0000000000..60cd11d5a4 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/wall/zot_red0.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/wall/zot_red1.bmp b/crawl-ref/source/rltiles/dc-dngn/wall/zot_red1.bmp new file mode 100644 index 0000000000..8af1cd7e5d Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/wall/zot_red1.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/wall/zot_red2.bmp b/crawl-ref/source/rltiles/dc-dngn/wall/zot_red2.bmp new file mode 100644 index 0000000000..03cb1f6dde Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/wall/zot_red2.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/wall/zot_red3.bmp b/crawl-ref/source/rltiles/dc-dngn/wall/zot_red3.bmp new file mode 100644 index 0000000000..c8f4561f9a Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/wall/zot_red3.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/wall/zot_yellow0.bmp b/crawl-ref/source/rltiles/dc-dngn/wall/zot_yellow0.bmp new file mode 100644 index 0000000000..39b6622646 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/wall/zot_yellow0.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/wall/zot_yellow1.bmp b/crawl-ref/source/rltiles/dc-dngn/wall/zot_yellow1.bmp new file mode 100644 index 0000000000..9ab3c52324 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/wall/zot_yellow1.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/wall/zot_yellow2.bmp b/crawl-ref/source/rltiles/dc-dngn/wall/zot_yellow2.bmp new file mode 100644 index 0000000000..e517ce5ce4 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/wall/zot_yellow2.bmp differ diff --git a/crawl-ref/source/rltiles/dc-dngn/wall/zot_yellow3.bmp b/crawl-ref/source/rltiles/dc-dngn/wall/zot_yellow3.bmp new file mode 100644 index 0000000000..839a6eb275 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/wall/zot_yellow3.bmp differ diff --git a/crawl-ref/source/rltiles/dc-item.txt b/crawl-ref/source/rltiles/dc-item.txt new file mode 100644 index 0000000000..f4d45ea915 --- /dev/null +++ b/crawl-ref/source/rltiles/dc-item.txt @@ -0,0 +1,598 @@ +#####OBJ_WEAPONS +#####ARTIFACTS +%sdir item/weapon +spwpn_singing_sword SPWPN_SINGING_SWORD /* This blessed weapon loves nothing more than to sing to its owner, whether they want it to or not. +spwpn_wrath_of_trog SPWPN_WRATH_OF_TROG /* This was the favourite weapon of the old god Trog, before he lost it one day. It induces a bloodthirsty berserker rage in anyone who uses it to strike another. +spwpn_scythe_of_curses SPWPN_SCYTHE_OF_CURSES /* This weapon carries a terrible and highly irritating curse. +spwpn_mace_of_variability SPWPN_MACE_OF_VARIABILITY /* It is rather unreliable. +spwpn_glaive_of_prune SPWPN_GLAIVE_OF_PRUNE /* It is the creation of a mad god, and carries a curse which transforms anyone possessing it into a prune. Fortunately, the curse works very slowly, and one can use it briefly with no consequences worse than slightly purple skin and a few wrinkles. +spwpn_sceptre_of_torment SPWPN_SCEPTRE_OF_TORMENT /* This truly accursed weapon is an instrument of Hell. +spwpn_sword_of_zonguldrok SPWPN_SWORD_OF_ZONGULDROK /* This dreadful weapon is used at the user's peril. +spwpn_sword_of_cerebov SPWPN_SWORD_OF_CEREBOV /* Eerie flames cover its twisted blade. +spwpn_staff_of_dispater SPWPN_STAFF_OF_DISPATER /* This legendary item can unleash the fury of Hell. +spwpn_sceptre_of_asmodeus SPWPN_SCEPTRE_OF_ASMODEUS /* It carries some of the powers of the arch-fiend Asmodeus. +spwpn_sword_of_power SPWPN_SWORD_OF_POWER /* It rewards the powerful with power and the meek with weakness. +spwpn_knife_of_accuracy SPWPN_KNIFE_OF_ACCURACY /* It is almost unerringly accurate. +spwpn_staff_of_olgreb SPWPN_STAFF_OF_OLGREB /* It was the magical weapon wielded by the mighty wizard Olgreb before he met his fate somewhere within these dungeons. It grants its wielder resistance to the effects of poison and increases their ability to use venomous magic, and carries magical powers which can be evoked. +spwpn_vampires_tooth SPWPN_VAMPIRES_TOOTH /* It is lethally vampiric. +quarterstaff SPWPN_STAFF_OF_WUCAD_MU /* Its power varies in proportion to its wielder's intelligence. Using it can be a bit risky. + +##### Unrandom artifacts +%include dc-urand.txt + +#####NORMAL +%sdir item/weapon +%rim 1 +##Blunt +club WPN_CLUB/* D5H4S12 A heavy piece of wood. +mace WPN_MACE/* D8H3S14 A long handle with a heavy lump on one end. +mace2 WPN_MACE2 +mace_large WPN_GREAT_MACE/* D16H-3S18 A large and heavy mace. +mace_large2 WPN_GREAT_MACE2 +flail WPN_FLAIL +flail2 WPN_FLAIL2 +spiked_flail WPN_SPIKED_FLAIL +spiked_flail2 WPN_SPIKED_FLAIL2 +great_flail WPN_GREAT_FLAIL +great_flail2 WPN_GREAT_FLAIL2 +morningstar WPN_MORNINGSTAR +morningstar2 WPN_MORNINGSTAR2 +eveningstar WPN_EVENINGSTAR +eveningstar2 WPN_EVENINGSTAR2 +hammer WPN_HAMMER +hammer2 WPN_HAMMER2 +ancus WPN_ANCUS/* D9H1S14 A large and vicious toothed club. +bullwhip WPN_WHIP/* D3H1S14 A whip. +demon_whip WPN_DEMON_WHIP/* D10H1S14 A terrible weapon, woven in the depths of the inferno. +giant_club WPN_GIANT_CLUB/* D15H-5S16 A giant lump of wood, shaped for an ogre's hands. +giant_spiked_club WPN_GIANT_SPIKED_CLUB/* D18H-6S17 A giant lump of wood with sharp spikes at one end. + +##Edged +knife WPN_KNIFE/* D2H0S11 A simple survival knife. Designed more for utility than combat, it looks quite capable of butchering a corpse. + +dagger WPN_DAGGER/* D3H6S11 A long knife or a very short sword, which can be held or thrown. +orcish_dagger WPN_DAGGER_ORC +elven_dagger WPN_DAGGER_ELF + +short_sword WPN_SHORT_SWORD/* D6H5S12 A sword with a short, slashing blade. +short_sword2 WPN_SHORT_SWORD_1 +orcish_short_sword WPN_SHORT_SWORD_ORC +elven_short_sword WPN_SHORT_SWORD_ELF + +long_sword2 WPN_LONG_SWORD/* D10H3S14 A sword with a long, slashing blade. +%rim 0 +long_sword3 WPN_LONG_SWORD_1 +%rim 1 +orcish_long_sword WPN_LONG_SWORD_ORC + +greatsword WPN_GREAT_SWORD/* D16H-1S17 A sword with a very long, heavy blade and a long handle. +greatsword2 WPN_GREAT_SWORD_1 +orcish_great_sword WPN_GREAT_SWORD_ORC + +falchion WPN_FALCHION/* D8H2S13 A sword with a broad slashing blade. +scimitar WPN_SCIMITAR/* D11H1S14 A long sword with a curved blade. +scimitar2 WPN_SCIMITAR2 + +silver_saber WPN_SABRE/* D7H4S12 A sword with a medium length slashing blade. +sabre2 WPN_SABRE_1 + +quickblade WPN_QUICK_BLADE/* D5H6S7 A small and magically quick sword. + +#tsurugi WPN_KATANA +katana2 WPN_KATANA/* D13H4S13 A very rare and extremely effective imported weapon, featuring a long single-edged blade. +katana3 WPN_KATANA_1 + +double_sword WPN_DOUBLE_SWORD/* D15H3S16 A magical weapon with two razor-sharp blades. +triple_sword WPN_TRIPLE_SWORD/* D19H-1S19 A magical weapon with three great razor-sharp blades. +demon_blade WPN_DEMON_BLADE/* D13H2S15 A terrible weapon, forged in the fires of Hell. + +##Axe +hand_axe WPN_HAND_AXE/* D7H2S13 An small axe designed for either hand combat or throwing. +war_axe WPN_WAR_AXE/* D11H0S16 An axe intended for hand to hand combat. +battle_axe2 WPN_BROAD_AXE/* D14H1S17 An axe with a large blade. +broad_axe2 +battle_axe WPN_BATTLEAXE/* D17H-2S18 A large axe with a double-headed blade. +battle_axe3 WPN_BATTLEAXE_1 +executioner_axe WPN_EXECUTIONERS_AXE /* D20H-4S20 A huge axe. +executioner_axe2 WPN_EXECUTIONERS_AXE_1 + +##Ranged +blowgun WPN_BLOWGUN /* D1H0S10 A long, light tube, open at both ends. Doing very little damage, its main use is to fire poisoned needles from afar. It makes very little noise. +blowgun2 WPN_BLOWGUN1 +sling WPN_SLING /* D1H-1S11 A piece of cloth and leather for launching stones, which do a small amount of damage on impact. +bow WPN_BOW /* D2H-3S11 A curved piece of wood and string, for shooting arrows. It does good damage in combat, and a skilled user can use it to great effect. +bow2 WPN_BOW1 +crossbow WPN_CROSSBOW /* D2H-1S15 A piece of machinery used for firing bolts, which takes some time to load and fire. It does very good damage in combat. +crossbow2 WPN_CROSSBOW1 +hand_crossbow WPN_HAND_CROSSBOW /* D1H-1S15 A small crossbow, for firing darts. +hand_crossbow2 WPN_HAND_CROSSBOW1 + +##Pole +quarterstaff WPN_QUARTERSTAFF /* D7H6S12 A sturdy wooden pole. + +elven_spear WPN_SPEAR /* D5H3S13 A long stick with a pointy blade on one end, to be held or thrown. +spear2 WPN_SPEAR2 +trident WPN_TRIDENT /* D9H-2S17 A hafted weapon with three points at one end. +trident2 WPN_TRIDENT2 +halberd WPN_HALBERD /* D13H-3S19 A long pole with a spiked axe head on one end. +halberd2 WPN_HALBERD2 +scythe WPN_SCYTHE /* D14H-4S22 A farm implement, usually unsuited to combat. +scythe2 WPN_SCYTHE2 +glaive WPN_GLAIVE /* D15H-3S18 A pole with a large, heavy blade on one end. +glaive2 WPN_GLAIVE2 +orcish_glaive WPN_GLAIVE_ORC + +demon_trident WPN_DEMON_TRIDENT /* D15H-2S17 A terrible weapon, molded by fire and brimstone. + +# SS new weapons +%rim 0 +blessed_blade WPN_BLESSED_BLADE +%rim 1 +longbow WPN_LONGBOW +lajatang WPN_LAJATANG +lochaber_axe WPN_LOCHABER_AXE + +######OBJ_MISSILES +item/gem/stone MI_STONE /* D2H4 A stone. +effect/stone0 MI_STONE0 +sling_bullet MI_SLING_BULLET +effect/sling_bullet0 MI_SLING_BULLET0 +ya MI_ARROW /* D2H6 An arrow. +effect/arrow0 MI_ARROW0 +effect/arrow1 MI_ARROW1 +effect/arrow2 MI_ARROW2 +effect/arrow3 MI_ARROW3 +effect/arrow4 MI_ARROW4 +effect/arrow5 MI_ARROW5 +effect/arrow6 MI_ARROW6 +effect/arrow7 MI_ARROW7 + +crossbow_bolt MI_BOLT /* D2H8 A crossbow bolt. +effect/bolt0 MI_BOLT0 +effect/bolt1 MI_BOLT1 +effect/bolt2 MI_BOLT2 +effect/bolt3 MI_BOLT3 +effect/bolt4 MI_BOLT4 +effect/bolt5 MI_BOLT5 +effect/bolt6 MI_BOLT6 +effect/bolt7 MI_BOLT7 + +dart MI_DART /* D2H4 A small throwing weapon. +dart-p MI_DART_P +effect/dart0 MI_DART0 +effect/dart1 MI_DART1 +effect/dart2 MI_DART2 +effect/dart3 MI_DART3 +effect/dart4 MI_DART4 +effect/dart5 MI_DART5 +effect/dart6 MI_DART6 +effect/dart7 MI_DART7 + +needle MI_NEEDLE /* D0H1 A needle. +needle-p MI_NEEDLE_P +effect/needle0 MI_NEEDLE0 +effect/needle1 MI_NEEDLE1 +effect/needle2 MI_NEEDLE2 +effect/needle3 MI_NEEDLE3 +effect/needle4 MI_NEEDLE4 +effect/needle5 MI_NEEDLE5 +effect/needle6 MI_NEEDLE6 +effect/needle7 MI_NEEDLE7 + +javelin MI_JAVELIN +effect/javelin0 MI_JAVELIN0 +effect/javelin1 MI_JAVELIN1 +effect/javelin2 MI_JAVELIN2 +effect/javelin3 MI_JAVELIN3 +effect/javelin4 MI_JAVELIN4 +effect/javelin5 MI_JAVELIN5 +effect/javelin6 MI_JAVELIN6 +effect/javelin7 MI_JAVELIN7 + +throwing_net MI_THROWING_NET +effect/throwing_net0 MI_THROWING_NET0 +effect/throwing_net1 MI_THROWING_NET1 +effect/throwing_net2 MI_THROWING_NET2 +effect/throwing_net3 MI_THROWING_NET3 +effect/throwing_net4 MI_THROWING_NET4 +effect/throwing_net5 MI_THROWING_NET5 +effect/throwing_net6 MI_THROWING_NET6 +effect/throwing_net7 MI_THROWING_NET7 +effect/net_trap TRAP_NET + +item/gem/rock MI_LARGE_ROCK /* D20H10 A rock, used by giants as a missile. +effect/rock0 MI_LARGE_ROCK0 +######OBJ_ARMOUR +%sdir item/armor +robe ARM_ROBE /* A1E0 A cloth robe. +robe2 ARM_ROBE_1 +robe3 ARM_ROBE_2 + +leather_armor2 ARM_LEATHER_ARMOUR /* A2E-1 A suit made of hardened leather. +breast_plate2 ARM_LEATHER_ARMOUR_1 +leather_armor4 ARM_LEATHER_ARMOUR_2 +orcish_leather_armor ARM_LEATHER_ARMOUR_ORC +elven_leather_armor ARM_LEATHER_ARMOUR_ELF + +ring_mail ARM_RING_MAIL /* A4E-2 A leather suit covered in little rings. +ring_mail2 ARM_RING_MAIL_1 +orcish_ringmail ARM_RING_MAIL_ORC +elven_ringmail ARM_RING_MAIL_ELF +dwarven_ringmail ARM_RING_MAIL_DWA + +scale_mail ARM_SCALE_MAIL /* A5E-2 A leather suit covered in little metal plates. +scale_mail2 ARM_SCALE_MAIL_2 +elven_scalemail ARM_SCALE_MAIL_ELF + +chain_mail1 ARM_CHAIN_MAIL /* A6E-3 A suit made of interlocking metal rings. +chain_mail2 ARM_CHAIN_MAIL_1 +chain_mail3 ARM_CHAIN_MAIL_ELF +orcish_chain_mail ARM_CHAIN_MAIL_ORC + +splint_mail ARM_SPLINT_MAIL /* A8E-5 A suit made of splints of metal. +banded_mail ARM_BANDED_MAIL /* A7E-4 A suit made of bands of metal. + +plate_mail2 ARM_PLATE_MAIL /* A9E-5 A suit of mail and large plates of metal. +orcish_platemail ARM_PLATE_MAIL_ORC + +crystal_plate_mail ARM_CRYSTAL_PLATE_MAIL /* A16E-8 + +animal_skin ARM_ANIMAL_SKIN /* A1E0 The skins of several animals. +animal_skin2 ARM_ANIMAL_SKIN_1 + +troll_hide ARM_TROLL_HIDE /* A1E-1 The stiff and knobbly hide of a troll. I suppose you could wear it if you really wanted to. +troll_leather_armour ARM_TROLL_LEATHER_ARMOUR /* A3E-1 A magical armour, made from the stiff and knobbly skin of a common troll. It magically regenerates its wearer's flesh at a fairly slow rate (unless already a troll). +green_dragon_scales ARM_DRAGON_HIDE /* A2E-2 The scaly skin of a dragon. I suppose you could wear it if you really wanted to. +green_dragon_scale_mail ARM_DRAGON_ARMOUR /* A8E-2 A magical armour, made from the scales of a fire-breathing dragon. It provides great protection from the effects of fire, but renders its wearer more susceptible to the effects of cold. +ice_dragon_hide ARM_ICE_DRAGON_HIDE /* A2E-2 The scaly skin of a dragon. I suppose you could wear it if you really wanted to. +ice_dragon_armour ARM_ICE_DRAGON_ARMOUR /* A9E-2 A magical armour, made from the scales of a cold-breathing dragon. It provides great protection from the effects of cold, but renders its wearer more susceptible to the effects of fire and heat. +silver_dragon_scales ARM_STEAM_DRAGON_HIDE /* A0E0 The soft and supple scaley skin of a steam dragon. I suppose you could wear it if you really wanted to. +silver_dragon_scale_mail ARM_STEAM_DRAGON_ARMOUR /* A3E0 A magical armour, made from the scales of a steam-breathing dragon. Although unlike the armour made from the scales of some larger dragons it does not provide its wearer with much in the way of special magical protection, it is extremely light and as supple as cloth. +mottled_dragon_hide ARM_MOTTLED_DRAGON_HIDE /* A1E-1 The weirdly-patterned scaley skin of a mottled dragon. I suppose you could wear it if you really wanted to. +mpttled_dragon_armour ARM_MOTTLED_DRAGON_ARMOUR /* A5E-1 A magical armour made from the scales of a mottled dragon. Although unlike the armour made from the scales of some larger dragons it does not provide its wearer with much in the way of special magical protection, it is as light and relatively uncumbersome as leather armour. +blue_dragon_scales ARM_STORM_DRAGON_HIDE /* A2E-5 The hide of a storm dragon, covered in extremely hard blue scales. I suppose you could wear it if you really wanted to. +blue_dragon_scale_mail ARM_STORM_DRAGON_ARMOUR /* A10E-5 A magical armour made from the scales of a lightning-breathing dragon. It is heavier than most dragon scale armours, but gives its wearer great resistance to electrical discharges. +gold_dragon_hide ARM_GOLD_DRAGON_HIDE /* A2E-10 The extremely tough and heavy skin of a golden dragon, covered in shimmering golden scales. I suppose you could wear it if you really wanted to. +gold_dragon_armour ARM_GOLD_DRAGON_ARMOUR /* A13E-10 A magical armour made from the golden scales of a golden dragon. It is extremely heavy and cumbersome, but confers resistances to fire, cold, and poison on its wearer. +swamp_dragon_hide ARM_SWAMP_DRAGON_HIDE /* A1E-2 The slimy skin of a swamp-dwelling dragon. I suppose you could wear it if you really wanted to. +swamp_dragon_armour ARM_SWAMP_DRAGON_ARMOUR /* A7E-2 A magical armour made from the scales of a swamp dragon. It confers resistance to poison on its wearer. + +naga_barding ARM_NAGA_BARDING +centaur_barding ARM_CENTAUR_BARDING + +elven_shield ARM_SHIELD /* A0E0 A piece of metal, to be strapped on one's arm. It is cumbersome to wear, and slightly slows the rate at which you may attack. +shield_kite2 ARM_SHIELD_1 +shield_round2 ARM_SHIELD_2 + +#dwarvish_roundshield ARM_BUCKLER +small_shield ARM_BUCKLER /* A small shield. +small_shield2 ARM_BUCKLER_1 + +large_shield ARM_LARGE_SHIELD /* Like a normal shield, only larger. It is very cumbersome to wear, and slows the rate at which you may attack. +shield_large2 ARM_LARGE_SHIELD_1 +shield_kite3 ARM_LARGE_SHIELD_2 + +leather_cloak ARM_CLOAK /* A1E0 A cloth cloak. +cloak2 ARM_CLOAK_1 +cloak3 ARM_CLOAK_2 +cloak4 ARM_CLOAK_3 + +#####ARM_HELMET +elven_leather_helm THELM_CAP /* A cloth or leather cap. +wizard_hat THELM_WIZARD_HAT /* A conical cloth hat. +wizard_hat2 THELM_WIZARD_HAT_1 + +visored_helmet THELM_HELM /* A1E0 A piece of metal headgear. +etched_helmet THELM_HELM_1 +helm3 THELM_HELM_2 +helm_visor1 THELM_HELM_3 + +###### GLOVES +glove1 ARM_GLOVES /* A1E0 A pair of gloves. +glove3 ARM_GLOVES_1 +glove5 ARM_GLOVES_2 +gauntlet2 ARM_GLOVES_3 + +###### BOOTS +boots_brown1 ARM_BOOTS /* A1E0 A pair of sturdy boots. +jackboots ARM_BOOTS_1 +boots_stripe1 ARM_BOOTS_2 +boots_green2 ARM_BOOTS_3 + +###########OBJ_WANDS +%sdir item/wand +gem_iron WAND_OFFSET /*iron*/ +gem_brass +gem_bone +gem_wood +gem_copper +gem_gold +gem_silver +gem_bronze +gem_ivory +gem_glass +gem_lead +gem_plastic + +%sdir item/wand +%back i-label + +i-flame WAND_FLAME +i-frost WAND_FROST +i-slowing WAND_SLOWING +i-hasting WAND_HASTING +i-magic_darts WAND_MAGIC_DARTS +i-healing WAND_HEALING +i-paralysis WAND_PARALYSIS +i-fire WAND_FIRE +i-cold WAND_COLD +i-confusion WAND_CONFUSION +i-invisibility WAND_INVISIBILITY +i-digging WAND_DIGGING +i-fireball WAND_FIREBALL +i-teleportation WAND_TELEPORTATION +i-lightning WAND_LIGHTNING +i-polymorph_other WAND_POLYMORPH_OTHER +i-enslavement WAND_ENSLAVEMENT +i-draining WAND_DRAINING +i-random_effects WAND_RANDOM_EFFECTS +i-disintegration WAND_DISINTEGRATION + +%back none +#################OBJ_FOOD +%sdir item/food +tripe_ration FOOD_MEAT_RATION +bread_ration FOOD_BREAD_RATION +pear FOOD_PEAR +apple FOOD_APPLE +choko FOOD_CHOKO +honeycomb FOOD_HONEYCOMB +lump_of_royal_jelly FOOD_ROYAL_JELLY +snozzcumber FOOD_SNOZZCUMBER +pizza FOOD_PIZZA +apricot FOOD_APRICOT +orange FOOD_ORANGE +banana FOOD_BANANA +strawberry FOOD_STRAWBERRY +rambutan FOOD_RAMBUTAN +lemon FOOD_LEMON +grape FOOD_GRAPE +sultana FOOD_SULTANA +lychee FOOD_LYCHEE +beef_jerky FOOD_BEEF_JERKY +cheese FOOD_CHEESE +sausage FOOD_SAUSAGE +corpse FOOD_CHUNK +corpse_rotten FOOD_CHUNK_ROTTEN +bone FOOD_BONE +#################OBJ_UNKNOWN_I +##################OBJ_SCROLLS +%sdir item/scroll +kernod_wel SCROLL + +%back kernod_wel +%sdir item/scroll +i-identify SCR_IDENTIFY +i-teleportation SCR_TELEPORTATION +i-fear SCR_FEAR +i-noise SCR_NOISE +i-remove_curse SCR_REMOVE_CURSE +i-detect_curse SCR_DETECT_CURSE +i-summoning SCR_SUMMONING +i-enchant-weapon1 SCR_ENCHANT_WEAPON_I +i-enchant_armour SCR_ENCHANT_ARMOUR +i-torment SCR_TORMENT +i-random_uselessness SCR_RANDOM_USELESSNESS +i-curse_weapon SCR_CURSE_WEAPON +i-curse_armour SCR_CURSE_ARMOUR +i-immolation SCR_IMMOLATION +i-blinking SCR_BLINKING +item/scroll/blank_paper SCR_PAPER +i-magic_mapping SCR_MAGIC_MAPPING +i-foregetfulness SCR_FORGETFULNESS +i-acquirement SCR_ACQUIREMENT +i-enchant-weapon2 SCR_ENCHANT_WEAPON_II +i-vorpalize-weapon SCR_VORPALISE_WEAPON +i-recharging SCR_RECHARGING +i-enchant-weapon3 SCR_ENCHANT_WEAPON_III +%back none + +##################OBJ_JEWELLERY +############ring +%sdir item/ring +wooden RING_NORMAL_OFFSET /*wood*/ +silver +gold +iron +steel +bronze +brass +copper +granite +ivory +clay +tiger_eye +jade +glass +###########random +agate RING_RANDOM_OFFSET +clay +diamond +emerald +gold_green +gold_red +opal +pearl +coral +gold_blue +plain_red +plain_yellow +plain_black +bronze +moonstone + +###amulets +%sdir item/amulet +crystal_white AMU_NORMAL_OFFSET /*zirconium*/ +stone3_blue +face1_gold +stone3_green +stone2_red +eye_magenta +face2 +penta_orange +celtic_red +cameo_blue +bone_gray +cylinder_gray +ring_green +ring_cyan +###random +crystal_green AMU_RANDOM_OFFSET +cameo_orange +celtic_blue +eye_cyan +penta_green +ring_red +stone1_cyan +stone1_pink +stone2_green +stone3_magenta +celtic_yellow +stone1_green +stone2_blue +crystal_red +eye_green + +####################OBJ_POTIONS +%sdir item/potion +clear POTION_OFFSET /*clear*/ +brilliant_blue +black +silver +cyan +magenta +orange +dark +ruby +yellow +emerald +brown +pink +white + +%sdir item/potion +%back i-label +%rim 0 +i-heal POT_HEALING +i-heal-wounds POT_HEAL_WOUNDS +i-speed POT_SPEED +i-might POT_MIGHT +i-gain-strength POT_GAIN_STRENGTH +i-gain-dexterity POT_GAIN_DEXTERITY +i-gain-intelligence POT_GAIN_INTELLIGENCE +i-levitation POT_LEVITATION +i-poison POT_POISON +i-slowing POT_SLOWING +i-paralysis POT_PARALYSIS +i-confusion POT_CONFUSION +i-invisibility POT_INVISIBILITY +i-porridge POT_PORRIDGE +i-degeneration POT_DEGENERATION +i-decay POT_DECAY +i-water POT_WATER +i-experience POT_EXPERIENCE +i-magic POT_MAGIC +i-restore-abilities POT_RESTORE_ABILITIES +i-strong-poison POT_STRONG_POISON +i-berserk-rage POT_BERSERK_RAGE +i-cure-mutation POT_CURE_MUTATION +i-mutation POT_MUTATION +i-blood POT_BLOOD +i-resistance POT_RESISTANCE +%back none +%rim 1 + +####################OBJ_UNKNOWN_II +#####################OBJ_BOOKS +###0paperback / hardback 16 +%sdir item/book +book_of_the_dead BOOK_PAPER_OFFSET +dark_blue +dark_green +cyan +red +purple +tan +light_gray +dark_gray +light_blue +light_green +turquoise +pink +magenta +yellow +white +##########leather 8 +parchment BOOK_LEATHER_OFFSET +leather +tan +plaid +light_brown +light_brown +dark_brown +dark_brown +###########3metal 8 +bronze BOOK_METAL_OFFSET +copper +silver +gold +glittering +metal_blue +metal_cyan +metal_green +############4papi 1 +cloth BOOK_PAPYRUS +#####################OBJ_STAVES +%sdir item/wand +staff00 STAFF_OFFSET /*curved*/ +staff01 +staff02 +staff03 +staff04 +staff05 +staff06 +staff07 +staff08 +staff09 + +#OBJ_ORBS +%sdir item/misc +misc_orb ORB + +#OBJ_MISCELLANY +misc_bottle MISC_BOTTLED_EFREET +misc_crystal MISC_CRYSTAL_BALL_OF_SEEING +misc_fan MISC_AIR_ELEMENTAL_FAN +misc_lamp MISC_LAMP_OF_FIRE +misc_stone MISC_STONE_OF_EARTH_ELEMENTALS +misc_lantern MISC_LANTERN_OF_SHADOWS +misc_horn MISC_HORN_OF_GERYON +misc_box MISC_BOX_OF_BEASTS +misc_deck MISC_DECK_OF_WONDERS +misc_deck MISC_DECK_OF_SUMMONINGS +misc_crystal MISC_CRYSTAL_BALL_OF_ENERGY +misc_box MISC_EMPTY_EBONY_CASKET +misc_crystal MISC_CRYSTAL_BALL_OF_FIXATION +misc_disc MISC_DISC_OF_STORMS +misc_rune MISC_RUNE_OF_ZOT +misc_deck MISC_DECK_OF_TRICKS +misc_deck MISC_DECK_OF_POWER +misc_altar MISC_PORTABLE_ALTAR_OF_NEMELEX + +#OBJ_CORPSES + +#OBJ_GOLD +%sdir item/gem +gold_piece GOLD +#OBJ_GEMSTONES diff --git a/crawl-ref/source/rltiles/dc-misc.txt b/crawl-ref/source/rltiles/dc-misc.txt new file mode 100644 index 0000000000..e68d99eec0 --- /dev/null +++ b/crawl-ref/source/rltiles/dc-misc.txt @@ -0,0 +1,167 @@ +%sdir effect +#### Magic Bolts +%back none +bolt01 SYM_BOLT_OFS +bolt02 +bolt03 +bolt04 +bolt05 +bolt06 +bolt07 +bolt08 +#########CLOUDS +cloud_fire0 CLOUD_FIRE_0 +cloud_fire1 CLOUD_FIRE_1 +cloud_fire2 CLOUD_FIRE_2 +cloud_cold0 CLOUD_COLD_0 +cloud_cold1 CLOUD_COLD_1 +cloud_cold2 CLOUD_COLD_2 +cloud_poison0 CLOUD_POISON_0 +cloud_poison1 CLOUD_POISON_1 +cloud_poison2 CLOUD_POISON_2 +cloud_black_smoke CLOUD_BLACK_SMOKE +cloud_blue_smoke CLOUD_BLUE_SMOKE +cloud_grey_smoke CLOUD_GREY_SMOKE +cloud_miasma CLOUD_MIASMA +cloud_purp_smoke CLOUD_PURP_SMOKE + +#########MAP +%sdir dc-misc +%corpse 0 +%back none +%mesh 0 +unseen_weapon UNSEEN_WEAPON +unseen_monster UNSEEN_MONSTER +unseen_armour UNSEEN_ARMOUR +unseen_item UNSEEN_ITEM +%corpse 1 +%back dc-misc/blood_red +unseen_monster UNSEEN_CORPSE +%corpse 0 +%back none +dc-dngn/dngn_altar UNSEEN_ALTAR +dc-dngn/dngn_entrance UNSEEN_ENTRANCE + +%back none +#mask_deep_water MASK_DEEP_WATER +#mask_shallow_water MASK_SHALLOW_WATER +#mask_lava MASK_LAVA +sink_mask SINK_MASK +cursor CURSOR +cursor_red CURSOR2 +cursor_green CURSOR3 +heart HEART +may_stab_brand MAY_STAB_BRAND +stab_brand STAB_BRAND +unseen PLAYER +%mesh 1 +blank MESH +%mesh 0 +magicmap MAGIC_MAP_MESH +ray RAY_MESH +txt1 TEXT_PARTS_J +txt2 TEXT_DOLLS_J +txt3 TEXT_PARTS_E +txt4 TEXT_DOLLS_E +something_under SOMETHING_UNDER +error ERROR + +char20 CHAR00 +char28 +char30 +char38 +char40 +char48 +char50 +char58 +char60 +char68 +char70 +char78 + +slot ITEM_SLOT +slot_eq ITEM_SLOT_EQUIP +slot_cursed ITEM_SLOT_CURSED +slot_eq_cursed ITEM_SLOT_EQUIP_CURSED + +%back unseen +dc-misc/unseen_monster MCACHE_START +dc-misc/unseen_monster +dc-misc/unseen_monster +dc-misc/unseen_monster +dc-misc/unseen_monster +dc-misc/unseen_monster +dc-misc/unseen_monster +dc-misc/unseen_monster +dc-misc/unseen_monster +dc-misc/unseen_monster +dc-misc/unseen_monster +dc-misc/unseen_monster +dc-misc/unseen_monster +dc-misc/unseen_monster +dc-misc/unseen_monster +dc-misc/unseen_monster +dc-misc/unseen_monster +dc-misc/unseen_monster +dc-misc/unseen_monster +dc-misc/unseen_monster +dc-misc/unseen_monster +dc-misc/unseen_monster +dc-misc/unseen_monster +dc-misc/unseen_monster +dc-misc/unseen_monster +dc-misc/unseen_monster +dc-misc/unseen_monster +dc-misc/unseen_monster +dc-misc/unseen_monster +dc-misc/unseen_monster +dc-misc/unseen_monster +dc-misc/unseen_monster +dc-misc/unseen_monster +dc-misc/unseen_monster +dc-misc/unseen_monster +dc-misc/unseen_monster +dc-misc/unseen_monster +dc-misc/unseen_monster +dc-misc/unseen_monster +dc-misc/unseen_monster +dc-misc/unseen_monster +dc-misc/unseen_monster +dc-misc/unseen_monster +dc-misc/unseen_monster +dc-misc/unseen_monster +dc-misc/unseen_monster +dc-misc/unseen_monster +dc-misc/unseen_monster +dc-misc/unseen_monster +dc-misc/unseen_monster +dc-misc/unseen_monster +dc-misc/unseen_monster +dc-misc/unseen_monster +dc-misc/unseen_monster +dc-misc/unseen_monster +dc-misc/unseen_monster +dc-misc/unseen_monster +dc-misc/unseen_monster +dc-misc/unseen_monster +dc-misc/unseen_monster +dc-misc/unseen_monster +dc-misc/unseen_monster +dc-misc/unseen_monster +dc-misc/unseen_monster +dc-misc/unseen_monster +dc-misc/unseen_monster +dc-misc/unseen_monster +dc-misc/unseen_monster +dc-misc/unseen_monster +dc-misc/unseen_monster +dc-misc/unseen_monster +dc-misc/unseen_monster +dc-misc/unseen_monster +dc-misc/unseen_monster +dc-misc/unseen_monster +dc-misc/unseen_monster +dc-misc/unseen_monster +dc-misc/unseen_monster +dc-misc/unseen_monster +dc-misc/unseen_monster MCACHE_END diff --git a/crawl-ref/source/rltiles/dc-misc/blood_blue.bmp b/crawl-ref/source/rltiles/dc-misc/blood_blue.bmp new file mode 100644 index 0000000000..e4fb954c7e Binary files /dev/null and b/crawl-ref/source/rltiles/dc-misc/blood_blue.bmp differ diff --git a/crawl-ref/source/rltiles/dc-misc/blood_green.bmp b/crawl-ref/source/rltiles/dc-misc/blood_green.bmp new file mode 100644 index 0000000000..3882a58e40 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-misc/blood_green.bmp differ diff --git a/crawl-ref/source/rltiles/dc-misc/blood_magenta.bmp b/crawl-ref/source/rltiles/dc-misc/blood_magenta.bmp new file mode 100644 index 0000000000..22aef338a8 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-misc/blood_magenta.bmp differ diff --git a/crawl-ref/source/rltiles/dc-misc/blood_red.bmp b/crawl-ref/source/rltiles/dc-misc/blood_red.bmp new file mode 100644 index 0000000000..b595a853be Binary files /dev/null and b/crawl-ref/source/rltiles/dc-misc/blood_red.bmp differ diff --git a/crawl-ref/source/rltiles/dc-misc/char20.bmp b/crawl-ref/source/rltiles/dc-misc/char20.bmp new file mode 100644 index 0000000000..5e9765e0b7 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-misc/char20.bmp differ diff --git a/crawl-ref/source/rltiles/dc-misc/char28.bmp b/crawl-ref/source/rltiles/dc-misc/char28.bmp new file mode 100644 index 0000000000..40613a2caa Binary files /dev/null and b/crawl-ref/source/rltiles/dc-misc/char28.bmp differ diff --git a/crawl-ref/source/rltiles/dc-misc/char30.bmp b/crawl-ref/source/rltiles/dc-misc/char30.bmp new file mode 100644 index 0000000000..e3ef9ea9d5 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-misc/char30.bmp differ diff --git a/crawl-ref/source/rltiles/dc-misc/char38.bmp b/crawl-ref/source/rltiles/dc-misc/char38.bmp new file mode 100644 index 0000000000..54ec8bfb09 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-misc/char38.bmp differ diff --git a/crawl-ref/source/rltiles/dc-misc/char40.bmp b/crawl-ref/source/rltiles/dc-misc/char40.bmp new file mode 100644 index 0000000000..55ae38ef33 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-misc/char40.bmp differ diff --git a/crawl-ref/source/rltiles/dc-misc/char48.bmp b/crawl-ref/source/rltiles/dc-misc/char48.bmp new file mode 100644 index 0000000000..8f7e869b34 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-misc/char48.bmp differ diff --git a/crawl-ref/source/rltiles/dc-misc/char50.bmp b/crawl-ref/source/rltiles/dc-misc/char50.bmp new file mode 100644 index 0000000000..f3d13e0bd6 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-misc/char50.bmp differ diff --git a/crawl-ref/source/rltiles/dc-misc/char58.bmp b/crawl-ref/source/rltiles/dc-misc/char58.bmp new file mode 100644 index 0000000000..3893356538 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-misc/char58.bmp differ diff --git a/crawl-ref/source/rltiles/dc-misc/char60.bmp b/crawl-ref/source/rltiles/dc-misc/char60.bmp new file mode 100644 index 0000000000..b169a9fff3 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-misc/char60.bmp differ diff --git a/crawl-ref/source/rltiles/dc-misc/char68.bmp b/crawl-ref/source/rltiles/dc-misc/char68.bmp new file mode 100644 index 0000000000..b6c8ec7e6b Binary files /dev/null and b/crawl-ref/source/rltiles/dc-misc/char68.bmp differ diff --git a/crawl-ref/source/rltiles/dc-misc/char70.bmp b/crawl-ref/source/rltiles/dc-misc/char70.bmp new file mode 100644 index 0000000000..587f1b5a92 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-misc/char70.bmp differ diff --git a/crawl-ref/source/rltiles/dc-misc/char78.bmp b/crawl-ref/source/rltiles/dc-misc/char78.bmp new file mode 100644 index 0000000000..e1774948f8 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-misc/char78.bmp differ diff --git a/crawl-ref/source/rltiles/dc-misc/cursor.bmp b/crawl-ref/source/rltiles/dc-misc/cursor.bmp new file mode 100644 index 0000000000..e851e459aa Binary files /dev/null and b/crawl-ref/source/rltiles/dc-misc/cursor.bmp differ diff --git a/crawl-ref/source/rltiles/dc-misc/cursor_green.bmp b/crawl-ref/source/rltiles/dc-misc/cursor_green.bmp new file mode 100644 index 0000000000..e7f8288ed2 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-misc/cursor_green.bmp differ diff --git a/crawl-ref/source/rltiles/dc-misc/cursor_red.bmp b/crawl-ref/source/rltiles/dc-misc/cursor_red.bmp new file mode 100644 index 0000000000..052550ae1d Binary files /dev/null and b/crawl-ref/source/rltiles/dc-misc/cursor_red.bmp differ diff --git a/crawl-ref/source/rltiles/dc-misc/error.bmp b/crawl-ref/source/rltiles/dc-misc/error.bmp new file mode 100644 index 0000000000..01b75a80bb Binary files /dev/null and b/crawl-ref/source/rltiles/dc-misc/error.bmp differ diff --git a/crawl-ref/source/rltiles/dc-misc/heart.bmp b/crawl-ref/source/rltiles/dc-misc/heart.bmp new file mode 100644 index 0000000000..4efc69da69 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-misc/heart.bmp differ diff --git a/crawl-ref/source/rltiles/dc-misc/magicmap.bmp b/crawl-ref/source/rltiles/dc-misc/magicmap.bmp new file mode 100644 index 0000000000..48c97de742 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-misc/magicmap.bmp differ diff --git a/crawl-ref/source/rltiles/dc-misc/mask_deep_water.bmp b/crawl-ref/source/rltiles/dc-misc/mask_deep_water.bmp new file mode 100644 index 0000000000..b194f3a1f8 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-misc/mask_deep_water.bmp differ diff --git a/crawl-ref/source/rltiles/dc-misc/mask_lava.bmp b/crawl-ref/source/rltiles/dc-misc/mask_lava.bmp new file mode 100644 index 0000000000..0fd553b16f Binary files /dev/null and b/crawl-ref/source/rltiles/dc-misc/mask_lava.bmp differ diff --git a/crawl-ref/source/rltiles/dc-misc/mask_shallow_water.bmp b/crawl-ref/source/rltiles/dc-misc/mask_shallow_water.bmp new file mode 100644 index 0000000000..c7edf388cd Binary files /dev/null and b/crawl-ref/source/rltiles/dc-misc/mask_shallow_water.bmp differ diff --git a/crawl-ref/source/rltiles/dc-misc/may_stab_brand.bmp b/crawl-ref/source/rltiles/dc-misc/may_stab_brand.bmp new file mode 100644 index 0000000000..ad52fdaa1d Binary files /dev/null and b/crawl-ref/source/rltiles/dc-misc/may_stab_brand.bmp differ diff --git a/crawl-ref/source/rltiles/dc-misc/ray.bmp b/crawl-ref/source/rltiles/dc-misc/ray.bmp new file mode 100644 index 0000000000..daaaad422a Binary files /dev/null and b/crawl-ref/source/rltiles/dc-misc/ray.bmp differ diff --git a/crawl-ref/source/rltiles/dc-misc/sink_mask.bmp b/crawl-ref/source/rltiles/dc-misc/sink_mask.bmp new file mode 100644 index 0000000000..7b0e75b3b0 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-misc/sink_mask.bmp differ diff --git a/crawl-ref/source/rltiles/dc-misc/slot.bmp b/crawl-ref/source/rltiles/dc-misc/slot.bmp new file mode 100644 index 0000000000..10654a5160 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-misc/slot.bmp differ diff --git a/crawl-ref/source/rltiles/dc-misc/slot_cursed.bmp b/crawl-ref/source/rltiles/dc-misc/slot_cursed.bmp new file mode 100644 index 0000000000..dfec90bf89 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-misc/slot_cursed.bmp differ diff --git a/crawl-ref/source/rltiles/dc-misc/slot_eq.bmp b/crawl-ref/source/rltiles/dc-misc/slot_eq.bmp new file mode 100644 index 0000000000..5f4c8ac4b6 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-misc/slot_eq.bmp differ diff --git a/crawl-ref/source/rltiles/dc-misc/slot_eq_cursed.bmp b/crawl-ref/source/rltiles/dc-misc/slot_eq_cursed.bmp new file mode 100644 index 0000000000..6eef705e91 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-misc/slot_eq_cursed.bmp differ diff --git a/crawl-ref/source/rltiles/dc-misc/something_under.bmp b/crawl-ref/source/rltiles/dc-misc/something_under.bmp new file mode 100644 index 0000000000..2359372591 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-misc/something_under.bmp differ diff --git a/crawl-ref/source/rltiles/dc-misc/stab_brand.bmp b/crawl-ref/source/rltiles/dc-misc/stab_brand.bmp new file mode 100644 index 0000000000..bf6e57c038 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-misc/stab_brand.bmp differ diff --git a/crawl-ref/source/rltiles/dc-misc/txt1.bmp b/crawl-ref/source/rltiles/dc-misc/txt1.bmp new file mode 100644 index 0000000000..17e2572cfd Binary files /dev/null and b/crawl-ref/source/rltiles/dc-misc/txt1.bmp differ diff --git a/crawl-ref/source/rltiles/dc-misc/txt2.bmp b/crawl-ref/source/rltiles/dc-misc/txt2.bmp new file mode 100644 index 0000000000..2b59dfead0 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-misc/txt2.bmp differ diff --git a/crawl-ref/source/rltiles/dc-misc/txt3.bmp b/crawl-ref/source/rltiles/dc-misc/txt3.bmp new file mode 100644 index 0000000000..120e269580 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-misc/txt3.bmp differ diff --git a/crawl-ref/source/rltiles/dc-misc/txt4.bmp b/crawl-ref/source/rltiles/dc-misc/txt4.bmp new file mode 100644 index 0000000000..5c6295c76f Binary files /dev/null and b/crawl-ref/source/rltiles/dc-misc/txt4.bmp differ diff --git a/crawl-ref/source/rltiles/dc-misc/unseen.bmp b/crawl-ref/source/rltiles/dc-misc/unseen.bmp new file mode 100644 index 0000000000..187325f234 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-misc/unseen.bmp differ diff --git a/crawl-ref/source/rltiles/dc-misc/unseen_armour.bmp b/crawl-ref/source/rltiles/dc-misc/unseen_armour.bmp new file mode 100644 index 0000000000..941f13df9b Binary files /dev/null and b/crawl-ref/source/rltiles/dc-misc/unseen_armour.bmp differ diff --git a/crawl-ref/source/rltiles/dc-misc/unseen_item.bmp b/crawl-ref/source/rltiles/dc-misc/unseen_item.bmp new file mode 100644 index 0000000000..516383e616 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-misc/unseen_item.bmp differ diff --git a/crawl-ref/source/rltiles/dc-misc/unseen_monster.bmp b/crawl-ref/source/rltiles/dc-misc/unseen_monster.bmp new file mode 100644 index 0000000000..6fdc2cbe09 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-misc/unseen_monster.bmp differ diff --git a/crawl-ref/source/rltiles/dc-misc/unseen_weapon.bmp b/crawl-ref/source/rltiles/dc-misc/unseen_weapon.bmp new file mode 100644 index 0000000000..a9149c9169 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-misc/unseen_weapon.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon.txt b/crawl-ref/source/rltiles/dc-mon.txt new file mode 100644 index 0000000000..e5d8a41e25 --- /dev/null +++ b/crawl-ref/source/rltiles/dc-mon.txt @@ -0,0 +1,494 @@ +%subst large_mimic +%sdir dc-mon +%rim 0 +shadow MONS_SHADOW /*' '*/ +%rim 1 +earth_elemental MONS_EARTH_ELEMENTAL /*'#'*/ +fire_elemental MONS_FIRE_ELEMENTAL /*'#'*/ +%rim 0 +vapour MONS_VAPOUR /*'#'*/ +%rim 1 +#item/gem/gold_piece MONS_GOLD_MIMIC /*(YELLOW) An apparently harmless pile of gold coins hides a nasty venomous shapechanging predator. +death_cob MONS_DEATH_COB /*'%'*/ + +## Arch demons +asmodeus MONS_ASMODEUS /*'&'*/ +cerebov MONS_CEREBOV /*'&'*/ +dispater MONS_DISPATER /*'&'*/ +ereshkigal MONS_ERESHKIGAL /*'&'*/ +geryon MONS_GERYON /*'&'*/ +gloorx_vloq MONS_GLOORX_VLOQ /*'&'*/ +lom_lobon MONS_LOM_LOBON /*'&'*/ +mnoleg MONS_MNOLEG /*'&'*/ +pandemonium_demon MONS_PANDEMONIUM_DEMON /*'&'*/ +#item/weapon/halberd MONS_DANCING_WEAPON /*'('(BLACK) A weapon dancing in the air. +#weapon_mimic MONS_WEAPON_MIMIC /*')'(BLACK) An apparently abandoned weapon, actually a vicious little beast in disguise. +ball_lightning MONS_BALL_LIGHTNING /*'*'*/ +%rim 0 +orb_of_fire MONS_ORB_OF_FIRE /*'*'*/ +%rim 1 + +## Demons 1-5 +balrug MONS_BALRUG /*'1'*/ +blue_death MONS_BLUE_DEATH /*'1'*/ +cacodemon MONS_CACODEMON /*'1'*/ +executioner MONS_EXECUTIONER /*'1'*/ +fiend MONS_FIEND /*'1'*/ +green_death MONS_GREEN_DEATH /*'1'*/ +ice_fiend MONS_ICE_FIEND /*'1'*/ +pit_fiend MONS_PIT_FIEND /*'1'*/ +shadow_fiend MONS_SHADOW_FIEND /*'1'*/ +ice_devil MONS_ICE_DEVIL /*'2'*/ +lorocyproca MONS_LOROCYPROCA /*'2'*/ +reaper MONS_REAPER /*'2'*/ +soul_eater MONS_SOUL_EATER /*'2'*/ +sun_demon MONS_SUN_DEMON /*'2'*/ +blue_devil MONS_BLUE_DEVIL /*'3'*/ +demonic_crawler MONS_DEMONIC_CRAWLER /*'3'*/ +hellion MONS_HELLION /*'3'*/ +hellwing MONS_HELLWING /*'3'*/ +iron_devil MONS_IRON_DEVIL /*'3'*/ +neqoxec MONS_NEQOXEC /*'3'*/ +orange_demon MONS_ORANGE_DEMON /*'3'*/ +shadow_demon MONS_SHADOW_DEMON /*'3'*/ +tormentor MONS_TORMENTOR /*'3'*/ +ynoxinul MONS_YNOXINUL /*'3'*/ +beast MONS_BEAST /*'4'*/ +hairy_devil MONS_HAIRY_DEVIL /*'4'*/ +red_devil MONS_RED_DEVIL /*'4'*/ +rotting_devil MONS_ROTTING_DEVIL /*'4'*/ +smoke_demon MONS_SMOKE_DEMON /*'4'*/ +imp MONS_IMP /*'5'*/ +lemure MONS_LEMURE /*'5'*/ +manes MONS_MANES /*'5'*/ +midge MONS_MIDGE /*'5'*/ +shadow_imp MONS_SHADOW_IMP /*'5'*/ +ufetubus MONS_UFETUBUS /*'5'*/ +white_imp MONS_WHITE_IMP /*'5'*/ + +## Golems +clay_golem MONS_CLAY_GOLEM /*'8'*/ +crystal_golem MONS_CRYSTAL_GOLEM /*'8'*/ +%rim 0 +electric_golem MONS_ELECTRIC_GOLEM /*'8'*/ +%rim 1 +iron_golem MONS_IRON_GOLEM /*'8'*/ +stone_golem MONS_STONE_GOLEM /*'8'*/ +toenail_golem MONS_TOENAIL_GOLEM /*'8'*/ +wood_golem MONS_WOOD_GOLEM /*'8'*/ + +## Aquatics +big_fish MONS_BIG_FISH /*';'*/ +electrical_eel MONS_ELECTRICAL_EEL /*';'*/ +giant_goldfish MONS_GIANT_GOLDFISH /*';'*/ +lava_fish MONS_LAVA_FISH /*';'*/ +#scroll_mimic MONS_SCROLL_MIMIC /*'?'(LIGHTGREY) An ancient parchment covered in arcane runes. Did it just twitch? + +## Humans +%subst asc/ch40 +shapeshifter MONS_SHAPESHIFTER /*'@'*/ +glowing_shapeshifter MONS_GLOWING_SHAPESHIFTER /*'@'*/ +killer_klown MONS_KILLER_KLOWN /*'@'*/ +vault_guard0 MONS_VAULT_GUARD /*'@'*/ +hell_knight MONS_HELL_KNIGHT /*'@'*/ +necromancer MONS_NECROMANCER /*'@'*/ +wizard MONS_WIZARD /*'@'*/ +human MONS_HUMAN /*'@'*/ + +## Unique human NO_SPELLS first +terence0 MONS_TERENCE /*'@'*/ +edmund0 MONS_EDMUND /*'@'*/ +donald MONS_DONALD /*'@'*/ +joseph0 MONS_JOSEPH /*'@'*/ +norbert MONS_NORBERT /*'@'*/ +agnes MONS_AGNES /*'@'*/ +maud0 MONS_MAUD /*'@'*/ + +adolf MONS_ADOLF /*'@'*/ +duane0 MONS_DUANE /*'@'*/ +frances0 MONS_FRANCES /*'@'*/ +harold0 MONS_HAROLD /*'@'*/ +jozef0 MONS_JOZEF /*'@'*/ +norris2 MONS_NORRIS /*'@'*/ +rupert0 MONS_RUPERT /*'@'*/ +sigmund MONS_SIGMUND /*'@'*/ +wayne0 MONS_WAYNE /*'@'*/ + +josephine MONS_JOSEPHINE /*'@'*/ +erica MONS_ERICA /*'@'*/ +francis MONS_FRANCIS /*'@'*/ +jessica MONS_JESSICA /*'@'*/ +louise MONS_LOUISE /*'@'*/ +margery MONS_MARGERY /*'@'*/ +michael MONS_MICHAEL /*'@'*/ +psyche MONS_PSYCHE /*'@'*/ +frederick MONS_FREDERICK + +##Angels +angel MONS_ANGEL /*'A'*/ +daeva MONS_DAEVA /*'A'*/ +####nh-mon0/m/large_mimic MONS_SHUGGOTH /*'A'(LIGHTGREEN) A vile creature with an elongated head, spiked tail and wicked six-fingered claws. Its awesome strength is matched by its umbrage at being transported to this backwater dimension. + +## Beetles +%subst asc/ch42 +boring_beetle MONS_BORING_BEETLE /*'B'*/ +boulder_beetle MONS_BOULDER_BEETLE /*'B'*/ +giant_beetle MONS_GIANT_BEETLE /*'B'*/ +program_bug MONS_PROGRAM_BUG /*'B'*/ + +## Giants +antaeus MONS_ANTAEUS /*'C'*/ +cyclops MONS_CYCLOPS /*'C'*/ +ettin MONS_ETTIN /*'C'*/ +fire_giant MONS_FIRE_GIANT /*'C'*/ +frost_giant MONS_FROST_GIANT /*'C'*/ +hill_giant MONS_HILL_GIANT /*'C'*/ +stone_giant MONS_STONE_GIANT /*'C'*/ +titan MONS_TITAN /*'C'*/ +polyphemus MONS_POLYPHEMUS + +## Dragons +%subst asc/ch44 +dragon MONS_DRAGON /*'D'*/ +golden_dragon MONS_GOLDEN_DRAGON /*'D'*/ +hydra1 MONS_HYDRA /*'D'*/ +hydra2 MONS_HYDRA2 +hydra3 MONS_HYDRA3 +hydra4 MONS_HYDRA4 +hydra5 MONS_HYDRA5 +hydra5 MONS_HYDRA6 +hydra5 MONS_HYDRA7 +ice_dragon MONS_ICE_DRAGON /*'D'*/ +iron_dragon MONS_IRON_DRAGON /*'D'*/ +quicksilver_dragon MONS_QUICKSILVER_DRAGON /*'D'*/ +serpent_of_hell MONS_SERPENT_OF_HELL /*'D'*/ +shadow_dragon MONS_SHADOW_DRAGON /*'D'*/ +skeletal_dragon MONS_SKELETAL_DRAGON /*'D'*/ +storm_dragon MONS_STORM_DRAGON /*'D'*/ +swamp_dragon MONS_SWAMP_DRAGON /*'D'*/ +tiamat MONS_TIAMAT +wyvern MONS_WYVERN /*'D'*/ +xtahua MONS_XTAHUA /*'D'*/ + +## Efreet only +efreet MONS_EFREET /*'E'*/ + +## Frogs +%subst asc/ch46 +%rim 0 +blink_frog MONS_BLINK_FROG /*'F'*/ +%rim 1 +giant_brown_frog MONS_GIANT_BROWN_FROG /*'F'*/ +giant_frog MONS_GIANT_FROG /*'F'*/ +spiny_frog MONS_SPINY_FROG /*'F'*/ + +## Eyes +%subst asc/ch47 +eye_of_devastation MONS_EYE_OF_DEVASTATION /*'G'*/ +eye_of_draining MONS_EYE_OF_DRAINING /*'G'*/ +giant_eyeball MONS_GIANT_EYEBALL /*'G'*/ +giant_orange_brain MONS_GIANT_ORANGE_BRAIN /*'G'*/ +giant_spore MONS_GIANT_SPORE /*'G'*/ +great_orb_of_eyes MONS_GREAT_ORB_OF_EYES /*'G'*/ +shining_eye MONS_SHINING_EYE /*'G'*/ + +## Hybrids +%subst asc/ch48 +griffon MONS_GRIFFON /*'H'*/ +hippogriff MONS_HIPPOGRIFF /*'H'*/ +sphinx MONS_SPHINX /*'H'*/ + +## Ice beast only +ice_beast MONS_ICE_BEAST /*'I'*/ + +## Jellies +%subst asc/ch4a +acid_blob MONS_ACID_BLOB /*'J'*/ +azure_jelly MONS_AZURE_JELLY /*'J'*/ +brown_ooze MONS_BROWN_OOZE /*'J'*/ +death_ooze MONS_DEATH_OOZE /*'J'*/ +giant_amoeba MONS_GIANT_AMOEBA /*'J'*/ +jelly MONS_JELLY /*'J'*/ +jellyfish MONS_JELLYFISH /*'J'*/ +ooze MONS_OOZE /*'J'*/ +pulsating_lump MONS_PULSATING_LUMP /*'J'*/ +royal_jelly MONS_ROYAL_JELLY /*'J'*/ +slime_creature MONS_SLIME_CREATURE /*'J'*/ + +## Kobolds +%subst asc/ch4b +big_kobold MONS_BIG_KOBOLD /*'K'*/ +kobold MONS_KOBOLD /*'K'*/ +kobold_demonologist MONS_KOBOLD_DEMONOLOGIST /*'K'*/ + +## Liches +%subst asc/ch4c +ancient_lich MONS_ANCIENT_LICH /*'L'*/ +boris MONS_BORIS /*'L'*/ +lich MONS_LICH /*'L'*/ + +## Mummies +%subst asc/ch4d +greater_mummy MONS_GREATER_MUMMY /*'M'*/ +guardian_mummy MONS_GUARDIAN_MUMMY /*'M'*/ +mummy MONS_MUMMY /*'M'*/ +mummy_priest MONS_MUMMY_PRIEST /*'M'*/ + +## Nagas +%subst asc/ch4e +naga0 MONS_NAGA /*'N'*/ +greater_naga0 MONS_GREATER_NAGA /*'N'*/ +naga_warrior0 MONS_NAGA_WARRIOR /*'N'*/ +guardian_naga MONS_GUARDIAN_NAGA /*'N'*/ +naga_mage MONS_NAGA_MAGE /*'N'*/ + +%subst asc/ch4f +erolcha MONS_EROLCHA /*'O'*/ +ogre MONS_OGRE /*'O'*/ +ogre_mage MONS_OGRE_MAGE /*'O'*/ +two_headed_ogre MONS_TWO_HEADED_OGRE /*'O'*/ + +%subst asc/ch50 +oklob_plant MONS_OKLOB_PLANT /*'P'*/ +plant MONS_PLANT /*'P'*/ + +%subst asc/ch51 +queen_ant MONS_QUEEN_ANT /*'Q'*/ +queen_bee MONS_QUEEN_BEE /*'Q'*/ + +%subst asc/ch52 +rakshasa MONS_RAKSHASA /*'R'*/ +rakshasa_fake MONS_RAKSHASA_FAKE /*'R'*/ + +%subst asc/ch53 +black_snake MONS_BLACK_SNAKE /*'S'*/ +brown_snake MONS_BROWN_SNAKE /*'S'*/ +grey_snake MONS_GREY_SNAKE /*'S'*/ +lava_snake MONS_LAVA_SNAKE /*'S'*/ +salamander MONS_SALAMANDER /*'S'*/ +small_snake MONS_SMALL_SNAKE /*'S'*/ +snake MONS_SNAKE /*'S'*/ +yellow_snake MONS_YELLOW_SNAKE /*'S'*/ + +%subst asc/ch54 +deep_troll MONS_DEEP_TROLL /*'T'*/ +iron_troll MONS_IRON_TROLL /*'T'*/ +rock_troll MONS_ROCK_TROLL /*'T'*/ +snorg MONS_SNORG /*'T'*/ +troll MONS_TROLL /*'T'*/ + +%subst asc/ch55 +bear MONS_BEAR /*'U'*/ +black_bear MONS_BLACK_BEAR /*'U'*/ +grizzly_bear MONS_GRIZZLY_BEAR /*'U'*/ +polar_bear MONS_POLAR_BEAR /*'U'*/ + +%subst asc/ch56 +vampire MONS_VAMPIRE /*'V'*/ +vampire_knight MONS_VAMPIRE_KNIGHT /*'V'*/ +vampire_mage MONS_VAMPIRE_MAGE /*'V'*/ + +%subst asc/ch57 +freezing_wraith MONS_FREEZING_WRAITH /*'W'*/ +shadow_wraith MONS_SHADOW_WRAITH /*'W'*/ +spectral_thing MONS_SPECTRAL_THING /*'W'*/ +spectral_warrior MONS_SPECTRAL_WARRIOR /*'W'*/ +wight MONS_WIGHT /*'W'*/ +wraith MONS_WRAITH /*'W'*/ + +%subst asc/ch58 +abomination_large MONS_ABOMINATION_LARGE /*'X'*/ +abomination_large1 +abomination_large2 +abomination_large3 +abomination_large4 +abomination_large5 +abomination_large6 +orb_guardian MONS_ORB_GUARDIAN /*'X'*/ +tentacled_monstrosity MONS_TENTACLED_MONSTROSITY /*'X'*/ + +%subst asc/ch59 +death_yak MONS_DEATH_YAK /*'Y'*/ +sheep MONS_SHEEP /*'Y'*/ +yak MONS_YAK /*'Y'*/ + +%subst asc/ch5a +simulacrum_large MONS_SIMULACRUM_LARGE /*'Z'*/ +skeleton_large MONS_SKELETON_LARGE /*'Z'*/ +zombie_large MONS_ZOMBIE_LARGE /*'Z'*/ +#armour_mimic MONS_ARMOUR_MIMIC /*'['(BLACK) An apparently abandoned suit of finely-made armour, actually a vicious little beast in disguise. + +%subst asc/ch61 +giant_ant MONS_GIANT_ANT /*'a'*/ +giant_cockroach MONS_GIANT_COCKROACH /*'a'*/ +soldier_ant MONS_SOLDIER_ANT /*'a'*/ + +%subst asc/ch62 +butterfly MONS_BUTTERFLY /*'b'*/ +butterfly1 +butterfly2 +butterfly3 +butterfly4 +butterfly5 +butterfly6 +giant_bat MONS_GIANT_BAT /*'b'*/ + +%subst asc/ch63 +centaur MONS_CENTAUR /*'c'*/ +centaur_warrior MONS_CENTAUR_WARRIOR /*'c'*/ +yaktaur MONS_YAKTAUR /*'c'*/ +yaktaur_captain MONS_YAKTAUR_CAPTAIN /*'c'*/ + +%subst asc/ch64 +firedrake MONS_FIREDRAKE /*'d'*/ +lindwurm MONS_LINDWURM /*'d'*/ +mottled_dragon MONS_MOTTLED_DRAGON /*'d'*/ +steam_dragon MONS_STEAM_DRAGON /*'d'*/ +swamp_drake MONS_SWAMP_DRAKE /*'d'*/ +death_drake MONS_DEATH_DRAKE /*'d'*/ + +%subst asc/ch65 +elf MONS_ELF /*'e'*/ +deep_elf_fighter0 MONS_DEEP_ELF_FIGHTER /*'e'*/ +deep_elf_soldier0 MONS_DEEP_ELF_SOLDIER /*'e'*/ +deep_elf_knight0 MONS_DEEP_ELF_KNIGHT /*'e'*/ +deep_elf_mage MONS_DEEP_ELF_MAGE /*'e'*/ +deep_elf_sorcerer MONS_DEEP_ELF_SORCERER /*'e'*/ +deep_elf_conjurer MONS_DEEP_ELF_CONJURER /*'e'*/ +deep_elf_death_mage MONS_DEEP_ELF_DEATH_MAGE /*'e'*/ +deep_elf_demonologist MONS_DEEP_ELF_DEMONOLOGIST /*'e'*/ +deep_elf_summoner MONS_DEEP_ELF_SUMMONER /*'e'*/ +deep_elf_annihilator MONS_DEEP_ELF_ANNIHILATOR /*'e'*/ +deep_elf_priest MONS_DEEP_ELF_PRIEST /*'e'*/ +deep_elf_high_priest MONS_DEEP_ELF_HIGH_PRIEST /*'e'*/ +deep_elf_blademaster MONS_DEEP_ELF_BLADEMASTER +deep_elf_master_archer MONS_DEEP_ELF_MASTER_ARCHER + +%subst asc/ch66 +fungus MONS_FUNGUS /*'f'*/ +wandering_mushroom MONS_WANDERING_MUSHROOM /*'f'*/ + +%subst asc/ch67 +goblin0 MONS_GOBLIN /*'g'*/ +hobgoblin0 MONS_HOBGOBLIN /*'g'*/ +gnoll0 MONS_GNOLL /*'g'*/ +ijyb0 MONS_IJYB /*'g'*/ +boggart MONS_BOGGART /*'g'*/ +gargoyle MONS_GARGOYLE /*'g'*/ +metal_gargoyle MONS_METAL_GARGOYLE /*'g'*/ +molten_gargoyle MONS_MOLTEN_GARGOYLE /*'g'*/ + +%subst asc/ch68 +hell_hog MONS_HELL_HOG /*'h'*/ +hell_hound MONS_HELL_HOUND /*'h'*/ +hog MONS_HOG /*'h'*/ +hound MONS_HOUND /*'h'*/ +warg MONS_WARG /*'h'*/ +war_dog MONS_WAR_DOG /*'h'*/ +wolf MONS_WOLF /*'h'*/ + +%subst asc/ch6a +jackal MONS_JACKAL /*'j'*/ + +%subst asc/ch6b +bumblebee MONS_BUMBLEBEE /*'k'*/ +killer_bee MONS_KILLER_BEE /*'k'*/ + +%subst asc/ch6c +giant_gecko MONS_GIANT_GECKO /*'l'*/ +giant_iguana MONS_GIANT_IGUANA /*'l'*/ +giant_lizard MONS_GIANT_LIZARD /*'l'*/ +giant_newt MONS_GIANT_NEWT /*'l'*/ +gila_monster MONS_GILA_MONSTER /*'l'*/ +komodo_dragon MONS_KOMODO_DRAGON /*'l'*/ + +%subst asc/ch6d +elephant_slug MONS_ELEPHANT_SLUG /*'m'*/ +giant_slug MONS_GIANT_SLUG /*'m'*/ +giant_snail MONS_GIANT_SNAIL /*'m'*/ +manticore MONS_MANTICORE /*'m'*/ +minotaur MONS_MINOTAUR /*'m'*/ + +%subst asc/ch6e +ghoul MONS_GHOUL /*'n'*/ +necrophage MONS_NECROPHAGE /*'n'*/ +rotting_hulk MONS_ROTTING_HULK /*'n'*/ + +%subst asc/ch6f +orc0 MONS_ORC /*'o'*/ +orc_warrior0 MONS_ORC_WARRIOR /*'o'*/ +orc_knight0 MONS_ORC_KNIGHT /*'o'*/ +orc_warlord0 MONS_ORC_WARLORD /*'o'*/ +blork_the_orc0 MONS_BLORK_THE_ORC /*'o'*/ +urug0 MONS_URUG /*'o'*/ +orc_priest MONS_ORC_PRIEST /*'o'*/ +orc_high_priest MONS_ORC_HIGH_PRIEST /*'o'*/ +orc_sorcerer MONS_ORC_SORCERER /*'o'*/ +orc_wizard MONS_ORC_WIZARD /*'o'*/ + +%subst asc/ch70 +flayed_ghost MONS_FLAYED_GHOST /*'p'*/ +hungry_ghost MONS_HUNGRY_GHOST /*'p'*/ +%rim 0 +insubstantial_wisp MONS_INSUBSTANTIAL_WISP /*'p'*/ +phantom MONS_PHANTOM /*'p'*/ +ghost MONS_PLAYER_GHOST /*'p'*/ +%rim 1 + +quasit MONS_QUASIT /*'q'*/ + +%subst asc/ch72 +green_rat MONS_GREEN_RAT /*'r'*/ +grey_rat MONS_GREY_RAT /*'r'*/ +orange_rat MONS_ORANGE_RAT /*'r'*/ +quokka MONS_QUOKKA /*'r'*/ +rat MONS_RAT /*'r'*/ + +%subst asc/ch73 +giant_centipede MONS_GIANT_CENTIPEDE /*'s'*/ +giant_mite MONS_GIANT_MITE /*'s'*/ +redback MONS_REDBACK /*'s'*/ +scorpion MONS_SCORPION /*'s'*/ +wolf_spider MONS_WOLF_SPIDER /*'s'*/ + +%subst asc/ch75 +ugly_thing MONS_UGLY_THING /*'u'*/ +very_ugly_thing MONS_VERY_UGLY_THING /*'u'*/ + +%subst asc/ch76 +air_elemental MONS_AIR_ELEMENTAL /*'v'*/ +fire_vortex MONS_FIRE_VORTEX /*'v'*/ +spatial_vortex MONS_SPATIAL_VORTEX /*'v'*/ + +%subst asc/ch77 +killer_bee_larva MONS_ANT_LARVA /*'w'*/ +brain_worm MONS_BRAIN_WORM /*'w'*/ +killer_bee_larva MONS_KILLER_BEE_LARVA /*'w'*/ +lava_worm MONS_LAVA_WORM /*'w'*/ +spiny_worm MONS_SPINY_WORM /*'w'*/ +swamp_worm MONS_SWAMP_WORM /*'w'*/ +worm MONS_WORM /*'w'*/ + +%subst asc/ch78 +abomination_small MONS_ABOMINATION_SMALL /*'x'*/ +unseen_horror MONS_UNSEEN_HORROR /*'x'*/ + +%subst asc/ch79 +giant_blowfly MONS_GIANT_BLOWFLY /*'y'*/ +giant_mosquito MONS_GIANT_MOSQUITO /*'y'*/ +moth_of_wrath MONS_MOTH_OF_WRATH /*'y'*/ +red_wasp MONS_RED_WASP /*'y'*/ +yellow_wasp MONS_YELLOW_WASP /*'y'*/ + +%subst asc/ch7a +curse_skull MONS_CURSE_SKULL /*'z'*/ +curse_toe MONS_CURSE_TOE /*'z'*/ +flying_skull MONS_FLYING_SKULL /*'z'*/ +simulacrum_small MONS_SIMULACRUM_SMALL /*'z'*/ +skeletal_warrior0 MONS_SKELETAL_WARRIOR /*'z'*/ +skeleton_small MONS_SKELETON_SMALL /*'z'*/ +zombie_small MONS_ZOMBIE_SMALL /*'z'*/ +murray MONS_MURRAY + +water_elemental MONS_WATER_ELEMENTAL /*'{'*/ +####nh-mon0/m/large_mimic MONS_MOLLUSC_LORD diff --git a/crawl-ref/source/rltiles/dc-mon/abomination_large.bmp b/crawl-ref/source/rltiles/dc-mon/abomination_large.bmp new file mode 100644 index 0000000000..d7cb68e063 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/abomination_large.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/abomination_large1.bmp b/crawl-ref/source/rltiles/dc-mon/abomination_large1.bmp new file mode 100644 index 0000000000..3c7f565422 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/abomination_large1.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/abomination_large2.bmp b/crawl-ref/source/rltiles/dc-mon/abomination_large2.bmp new file mode 100644 index 0000000000..25883e3661 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/abomination_large2.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/abomination_large3.bmp b/crawl-ref/source/rltiles/dc-mon/abomination_large3.bmp new file mode 100644 index 0000000000..0e728d267f Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/abomination_large3.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/abomination_large4.bmp b/crawl-ref/source/rltiles/dc-mon/abomination_large4.bmp new file mode 100644 index 0000000000..2880b0cdba Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/abomination_large4.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/abomination_large5.bmp b/crawl-ref/source/rltiles/dc-mon/abomination_large5.bmp new file mode 100644 index 0000000000..a63d555aa5 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/abomination_large5.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/abomination_large6.bmp b/crawl-ref/source/rltiles/dc-mon/abomination_large6.bmp new file mode 100644 index 0000000000..da07a7559c Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/abomination_large6.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/abomination_small.bmp b/crawl-ref/source/rltiles/dc-mon/abomination_small.bmp new file mode 100644 index 0000000000..549d139e92 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/abomination_small.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/acid_blob.bmp b/crawl-ref/source/rltiles/dc-mon/acid_blob.bmp new file mode 100644 index 0000000000..6695b637f5 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/acid_blob.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/adolf.bmp b/crawl-ref/source/rltiles/dc-mon/adolf.bmp new file mode 100644 index 0000000000..eb3112e46f Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/adolf.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/agnes.bmp b/crawl-ref/source/rltiles/dc-mon/agnes.bmp new file mode 100644 index 0000000000..6747323d68 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/agnes.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/air_elemental.bmp b/crawl-ref/source/rltiles/dc-mon/air_elemental.bmp new file mode 100644 index 0000000000..59af21aa0f Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/air_elemental.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/ancient_lich.bmp b/crawl-ref/source/rltiles/dc-mon/ancient_lich.bmp new file mode 100644 index 0000000000..aac8f6bcd4 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/ancient_lich.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/angel.bmp b/crawl-ref/source/rltiles/dc-mon/angel.bmp new file mode 100644 index 0000000000..1c0453de85 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/angel.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/antaeus.bmp b/crawl-ref/source/rltiles/dc-mon/antaeus.bmp new file mode 100644 index 0000000000..6b8833d322 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/antaeus.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/asmodeus.bmp b/crawl-ref/source/rltiles/dc-mon/asmodeus.bmp new file mode 100644 index 0000000000..c7130d52f0 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/asmodeus.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/azure_jelly.bmp b/crawl-ref/source/rltiles/dc-mon/azure_jelly.bmp new file mode 100644 index 0000000000..463805a30c Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/azure_jelly.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/ball_lightning.bmp b/crawl-ref/source/rltiles/dc-mon/ball_lightning.bmp new file mode 100644 index 0000000000..70bd18934d Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/ball_lightning.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/balrug.bmp b/crawl-ref/source/rltiles/dc-mon/balrug.bmp new file mode 100644 index 0000000000..cb88b95142 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/balrug.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/bear.bmp b/crawl-ref/source/rltiles/dc-mon/bear.bmp new file mode 100644 index 0000000000..ccd20b0a93 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/bear.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/beast.bmp b/crawl-ref/source/rltiles/dc-mon/beast.bmp new file mode 100644 index 0000000000..6db120c352 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/beast.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/big_fish.bmp b/crawl-ref/source/rltiles/dc-mon/big_fish.bmp new file mode 100644 index 0000000000..96575bc9da Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/big_fish.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/big_kobold.bmp b/crawl-ref/source/rltiles/dc-mon/big_kobold.bmp new file mode 100644 index 0000000000..286bdfb768 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/big_kobold.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/black_bear.bmp b/crawl-ref/source/rltiles/dc-mon/black_bear.bmp new file mode 100644 index 0000000000..90588f719d Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/black_bear.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/black_snake.bmp b/crawl-ref/source/rltiles/dc-mon/black_snake.bmp new file mode 100644 index 0000000000..b21d17d7ea Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/black_snake.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/blink_frog.bmp b/crawl-ref/source/rltiles/dc-mon/blink_frog.bmp new file mode 100644 index 0000000000..bbf88c5eeb Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/blink_frog.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/blork_the_orc0.bmp b/crawl-ref/source/rltiles/dc-mon/blork_the_orc0.bmp new file mode 100644 index 0000000000..0cd7bc70b1 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/blork_the_orc0.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/blue_death.bmp b/crawl-ref/source/rltiles/dc-mon/blue_death.bmp new file mode 100644 index 0000000000..d3485be982 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/blue_death.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/blue_devil.bmp b/crawl-ref/source/rltiles/dc-mon/blue_devil.bmp new file mode 100644 index 0000000000..a85b5188a0 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/blue_devil.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/boggart.bmp b/crawl-ref/source/rltiles/dc-mon/boggart.bmp new file mode 100644 index 0000000000..2aa363aead Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/boggart.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/boring_beetle.bmp b/crawl-ref/source/rltiles/dc-mon/boring_beetle.bmp new file mode 100644 index 0000000000..ad6a7cda8a Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/boring_beetle.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/boris.bmp b/crawl-ref/source/rltiles/dc-mon/boris.bmp new file mode 100644 index 0000000000..d19c690dbb Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/boris.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/boulder_beetle.bmp b/crawl-ref/source/rltiles/dc-mon/boulder_beetle.bmp new file mode 100644 index 0000000000..1a92426f25 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/boulder_beetle.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/brain_worm.bmp b/crawl-ref/source/rltiles/dc-mon/brain_worm.bmp new file mode 100644 index 0000000000..541551ad43 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/brain_worm.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/brown_ooze.bmp b/crawl-ref/source/rltiles/dc-mon/brown_ooze.bmp new file mode 100644 index 0000000000..c9858c9072 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/brown_ooze.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/brown_snake.bmp b/crawl-ref/source/rltiles/dc-mon/brown_snake.bmp new file mode 100644 index 0000000000..e767cbed0f Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/brown_snake.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/bumblebee.bmp b/crawl-ref/source/rltiles/dc-mon/bumblebee.bmp new file mode 100644 index 0000000000..46fa876c20 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/bumblebee.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/butterfly.bmp b/crawl-ref/source/rltiles/dc-mon/butterfly.bmp new file mode 100644 index 0000000000..b1252aff7a Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/butterfly.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/butterfly1.bmp b/crawl-ref/source/rltiles/dc-mon/butterfly1.bmp new file mode 100644 index 0000000000..24ed7491a1 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/butterfly1.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/butterfly2.bmp b/crawl-ref/source/rltiles/dc-mon/butterfly2.bmp new file mode 100644 index 0000000000..5fd1f80186 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/butterfly2.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/butterfly3.bmp b/crawl-ref/source/rltiles/dc-mon/butterfly3.bmp new file mode 100644 index 0000000000..a5f6e811ad Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/butterfly3.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/butterfly4.bmp b/crawl-ref/source/rltiles/dc-mon/butterfly4.bmp new file mode 100644 index 0000000000..d69347d8bb Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/butterfly4.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/butterfly5.bmp b/crawl-ref/source/rltiles/dc-mon/butterfly5.bmp new file mode 100644 index 0000000000..cbc68e1518 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/butterfly5.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/butterfly6.bmp b/crawl-ref/source/rltiles/dc-mon/butterfly6.bmp new file mode 100644 index 0000000000..b458b3bc33 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/butterfly6.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/cacodemon.bmp b/crawl-ref/source/rltiles/dc-mon/cacodemon.bmp new file mode 100644 index 0000000000..13b481206a Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/cacodemon.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/centaur.bmp b/crawl-ref/source/rltiles/dc-mon/centaur.bmp new file mode 100644 index 0000000000..ed3d8272d4 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/centaur.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/centaur_warrior.bmp b/crawl-ref/source/rltiles/dc-mon/centaur_warrior.bmp new file mode 100644 index 0000000000..ebd5b7b1b0 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/centaur_warrior.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/cerebov.bmp b/crawl-ref/source/rltiles/dc-mon/cerebov.bmp new file mode 100644 index 0000000000..bea3d85a78 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/cerebov.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/clay_golem.bmp b/crawl-ref/source/rltiles/dc-mon/clay_golem.bmp new file mode 100644 index 0000000000..73f43e91b0 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/clay_golem.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/crystal_golem.bmp b/crawl-ref/source/rltiles/dc-mon/crystal_golem.bmp new file mode 100644 index 0000000000..d9e8e99596 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/crystal_golem.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/curse_skull.bmp b/crawl-ref/source/rltiles/dc-mon/curse_skull.bmp new file mode 100644 index 0000000000..6752e62028 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/curse_skull.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/curse_toe.bmp b/crawl-ref/source/rltiles/dc-mon/curse_toe.bmp new file mode 100644 index 0000000000..af1c125292 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/curse_toe.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/cyclops.bmp b/crawl-ref/source/rltiles/dc-mon/cyclops.bmp new file mode 100644 index 0000000000..c1fece18ef Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/cyclops.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/daeva.bmp b/crawl-ref/source/rltiles/dc-mon/daeva.bmp new file mode 100644 index 0000000000..e4b1bc6efd Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/daeva.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/death_cob.bmp b/crawl-ref/source/rltiles/dc-mon/death_cob.bmp new file mode 100644 index 0000000000..1c70aa0907 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/death_cob.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/death_drake.bmp b/crawl-ref/source/rltiles/dc-mon/death_drake.bmp new file mode 100644 index 0000000000..8975576428 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/death_drake.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/death_ooze.bmp b/crawl-ref/source/rltiles/dc-mon/death_ooze.bmp new file mode 100644 index 0000000000..b649200621 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/death_ooze.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/death_yak.bmp b/crawl-ref/source/rltiles/dc-mon/death_yak.bmp new file mode 100644 index 0000000000..cbc0f78910 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/death_yak.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/deep_elf_annihilator.bmp b/crawl-ref/source/rltiles/dc-mon/deep_elf_annihilator.bmp new file mode 100644 index 0000000000..cf21e1a453 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/deep_elf_annihilator.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/deep_elf_blademaster.bmp b/crawl-ref/source/rltiles/dc-mon/deep_elf_blademaster.bmp new file mode 100644 index 0000000000..32647f44fe Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/deep_elf_blademaster.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/deep_elf_conjurer.bmp b/crawl-ref/source/rltiles/dc-mon/deep_elf_conjurer.bmp new file mode 100644 index 0000000000..045a35aab1 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/deep_elf_conjurer.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/deep_elf_death_mage.bmp b/crawl-ref/source/rltiles/dc-mon/deep_elf_death_mage.bmp new file mode 100644 index 0000000000..16e95786ef Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/deep_elf_death_mage.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/deep_elf_demonologist.bmp b/crawl-ref/source/rltiles/dc-mon/deep_elf_demonologist.bmp new file mode 100644 index 0000000000..db6e41f7a5 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/deep_elf_demonologist.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/deep_elf_fighter0.bmp b/crawl-ref/source/rltiles/dc-mon/deep_elf_fighter0.bmp new file mode 100644 index 0000000000..0e9f910e97 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/deep_elf_fighter0.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/deep_elf_high_priest.bmp b/crawl-ref/source/rltiles/dc-mon/deep_elf_high_priest.bmp new file mode 100644 index 0000000000..85430fc984 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/deep_elf_high_priest.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/deep_elf_knight0.bmp b/crawl-ref/source/rltiles/dc-mon/deep_elf_knight0.bmp new file mode 100644 index 0000000000..858bb25da3 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/deep_elf_knight0.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/deep_elf_mage.bmp b/crawl-ref/source/rltiles/dc-mon/deep_elf_mage.bmp new file mode 100644 index 0000000000..4b1dcb7d38 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/deep_elf_mage.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/deep_elf_master_archer.bmp b/crawl-ref/source/rltiles/dc-mon/deep_elf_master_archer.bmp new file mode 100644 index 0000000000..b7b2b4e6c2 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/deep_elf_master_archer.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/deep_elf_priest.bmp b/crawl-ref/source/rltiles/dc-mon/deep_elf_priest.bmp new file mode 100644 index 0000000000..82b0b2346d Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/deep_elf_priest.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/deep_elf_soldier0.bmp b/crawl-ref/source/rltiles/dc-mon/deep_elf_soldier0.bmp new file mode 100644 index 0000000000..ece1f3264c Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/deep_elf_soldier0.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/deep_elf_sorcerer.bmp b/crawl-ref/source/rltiles/dc-mon/deep_elf_sorcerer.bmp new file mode 100644 index 0000000000..5b78b8b2d4 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/deep_elf_sorcerer.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/deep_elf_summoner.bmp b/crawl-ref/source/rltiles/dc-mon/deep_elf_summoner.bmp new file mode 100644 index 0000000000..381e15e458 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/deep_elf_summoner.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/deep_troll.bmp b/crawl-ref/source/rltiles/dc-mon/deep_troll.bmp new file mode 100644 index 0000000000..a0b5c60d65 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/deep_troll.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/demonic_crawler.bmp b/crawl-ref/source/rltiles/dc-mon/demonic_crawler.bmp new file mode 100644 index 0000000000..468ba5d0ac Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/demonic_crawler.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/dispater.bmp b/crawl-ref/source/rltiles/dc-mon/dispater.bmp new file mode 100644 index 0000000000..1a0a253c7e Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/dispater.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/donald.bmp b/crawl-ref/source/rltiles/dc-mon/donald.bmp new file mode 100644 index 0000000000..0d1c2b0025 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/donald.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/dragon.bmp b/crawl-ref/source/rltiles/dc-mon/dragon.bmp new file mode 100644 index 0000000000..0ce40ca49f Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/dragon.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/duane0.bmp b/crawl-ref/source/rltiles/dc-mon/duane0.bmp new file mode 100644 index 0000000000..16940dea10 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/duane0.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/earth_elemental.bmp b/crawl-ref/source/rltiles/dc-mon/earth_elemental.bmp new file mode 100644 index 0000000000..e14c1a9b88 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/earth_elemental.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/edmund0.bmp b/crawl-ref/source/rltiles/dc-mon/edmund0.bmp new file mode 100644 index 0000000000..9f839d1fb5 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/edmund0.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/efreet.bmp b/crawl-ref/source/rltiles/dc-mon/efreet.bmp new file mode 100644 index 0000000000..c69e7eb706 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/efreet.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/electric_golem.bmp b/crawl-ref/source/rltiles/dc-mon/electric_golem.bmp new file mode 100644 index 0000000000..e910674cb4 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/electric_golem.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/electrical_eel.bmp b/crawl-ref/source/rltiles/dc-mon/electrical_eel.bmp new file mode 100644 index 0000000000..46868bed7f Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/electrical_eel.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/elephant_slug.bmp b/crawl-ref/source/rltiles/dc-mon/elephant_slug.bmp new file mode 100644 index 0000000000..d186f5c90b Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/elephant_slug.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/elf.bmp b/crawl-ref/source/rltiles/dc-mon/elf.bmp new file mode 100644 index 0000000000..4863f0f0f9 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/elf.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/ereshkigal.bmp b/crawl-ref/source/rltiles/dc-mon/ereshkigal.bmp new file mode 100644 index 0000000000..816b75b815 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/ereshkigal.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/erica.bmp b/crawl-ref/source/rltiles/dc-mon/erica.bmp new file mode 100644 index 0000000000..e662100573 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/erica.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/erolcha.bmp b/crawl-ref/source/rltiles/dc-mon/erolcha.bmp new file mode 100644 index 0000000000..3f7c02ea96 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/erolcha.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/ettin.bmp b/crawl-ref/source/rltiles/dc-mon/ettin.bmp new file mode 100644 index 0000000000..41a5336f69 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/ettin.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/executioner.bmp b/crawl-ref/source/rltiles/dc-mon/executioner.bmp new file mode 100644 index 0000000000..bb83e1e8a2 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/executioner.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/eye_of_devastation.bmp b/crawl-ref/source/rltiles/dc-mon/eye_of_devastation.bmp new file mode 100644 index 0000000000..cb9d2563da Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/eye_of_devastation.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/eye_of_draining.bmp b/crawl-ref/source/rltiles/dc-mon/eye_of_draining.bmp new file mode 100644 index 0000000000..3dcecd20ff Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/eye_of_draining.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/fiend.bmp b/crawl-ref/source/rltiles/dc-mon/fiend.bmp new file mode 100644 index 0000000000..e225f2d9ae Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/fiend.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/fire_elemental.bmp b/crawl-ref/source/rltiles/dc-mon/fire_elemental.bmp new file mode 100644 index 0000000000..c41cfae4ca Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/fire_elemental.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/fire_giant.bmp b/crawl-ref/source/rltiles/dc-mon/fire_giant.bmp new file mode 100644 index 0000000000..712ff6fb31 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/fire_giant.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/fire_vortex.bmp b/crawl-ref/source/rltiles/dc-mon/fire_vortex.bmp new file mode 100644 index 0000000000..524b4cf693 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/fire_vortex.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/firedrake.bmp b/crawl-ref/source/rltiles/dc-mon/firedrake.bmp new file mode 100644 index 0000000000..f6c42fb7c5 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/firedrake.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/flayed_ghost.bmp b/crawl-ref/source/rltiles/dc-mon/flayed_ghost.bmp new file mode 100644 index 0000000000..fd37de1e60 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/flayed_ghost.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/flying_skull.bmp b/crawl-ref/source/rltiles/dc-mon/flying_skull.bmp new file mode 100644 index 0000000000..58a9e27127 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/flying_skull.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/frances0.bmp b/crawl-ref/source/rltiles/dc-mon/frances0.bmp new file mode 100644 index 0000000000..59153d02c6 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/frances0.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/francis.bmp b/crawl-ref/source/rltiles/dc-mon/francis.bmp new file mode 100644 index 0000000000..f2a6062c4b Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/francis.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/frederick.bmp b/crawl-ref/source/rltiles/dc-mon/frederick.bmp new file mode 100644 index 0000000000..1b98c6ef48 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/frederick.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/freezing_wraith.bmp b/crawl-ref/source/rltiles/dc-mon/freezing_wraith.bmp new file mode 100644 index 0000000000..5b7b879368 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/freezing_wraith.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/frost_giant.bmp b/crawl-ref/source/rltiles/dc-mon/frost_giant.bmp new file mode 100644 index 0000000000..582939620f Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/frost_giant.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/fungus.bmp b/crawl-ref/source/rltiles/dc-mon/fungus.bmp new file mode 100644 index 0000000000..38d2cab62c Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/fungus.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/gargoyle.bmp b/crawl-ref/source/rltiles/dc-mon/gargoyle.bmp new file mode 100644 index 0000000000..d0b9ddca3b Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/gargoyle.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/geryon.bmp b/crawl-ref/source/rltiles/dc-mon/geryon.bmp new file mode 100644 index 0000000000..8760f68ed1 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/geryon.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/ghost.bmp b/crawl-ref/source/rltiles/dc-mon/ghost.bmp new file mode 100644 index 0000000000..e44022c9c8 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/ghost.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/ghoul.bmp b/crawl-ref/source/rltiles/dc-mon/ghoul.bmp new file mode 100644 index 0000000000..0296eeb7d5 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/ghoul.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/giant_amoeba.bmp b/crawl-ref/source/rltiles/dc-mon/giant_amoeba.bmp new file mode 100644 index 0000000000..1958f5d647 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/giant_amoeba.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/giant_ant.bmp b/crawl-ref/source/rltiles/dc-mon/giant_ant.bmp new file mode 100644 index 0000000000..ae045dc5a7 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/giant_ant.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/giant_bat.bmp b/crawl-ref/source/rltiles/dc-mon/giant_bat.bmp new file mode 100644 index 0000000000..2e9c8b6d24 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/giant_bat.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/giant_beetle.bmp b/crawl-ref/source/rltiles/dc-mon/giant_beetle.bmp new file mode 100644 index 0000000000..04af5aee34 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/giant_beetle.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/giant_blowfly.bmp b/crawl-ref/source/rltiles/dc-mon/giant_blowfly.bmp new file mode 100644 index 0000000000..3aa9d41be5 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/giant_blowfly.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/giant_brown_frog.bmp b/crawl-ref/source/rltiles/dc-mon/giant_brown_frog.bmp new file mode 100644 index 0000000000..c0cbe97d0c Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/giant_brown_frog.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/giant_centipede.bmp b/crawl-ref/source/rltiles/dc-mon/giant_centipede.bmp new file mode 100644 index 0000000000..5ad7ed82b6 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/giant_centipede.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/giant_cockroach.bmp b/crawl-ref/source/rltiles/dc-mon/giant_cockroach.bmp new file mode 100644 index 0000000000..5980b2a233 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/giant_cockroach.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/giant_eyeball.bmp b/crawl-ref/source/rltiles/dc-mon/giant_eyeball.bmp new file mode 100644 index 0000000000..6cea257327 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/giant_eyeball.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/giant_frog.bmp b/crawl-ref/source/rltiles/dc-mon/giant_frog.bmp new file mode 100644 index 0000000000..b1444972db Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/giant_frog.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/giant_gecko.bmp b/crawl-ref/source/rltiles/dc-mon/giant_gecko.bmp new file mode 100644 index 0000000000..fbae33704c Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/giant_gecko.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/giant_goldfish.bmp b/crawl-ref/source/rltiles/dc-mon/giant_goldfish.bmp new file mode 100644 index 0000000000..2fb7c79300 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/giant_goldfish.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/giant_iguana.bmp b/crawl-ref/source/rltiles/dc-mon/giant_iguana.bmp new file mode 100644 index 0000000000..0e648517fb Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/giant_iguana.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/giant_lizard.bmp b/crawl-ref/source/rltiles/dc-mon/giant_lizard.bmp new file mode 100644 index 0000000000..9cf3e0737e Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/giant_lizard.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/giant_mite.bmp b/crawl-ref/source/rltiles/dc-mon/giant_mite.bmp new file mode 100644 index 0000000000..39feb5fe38 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/giant_mite.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/giant_mosquito.bmp b/crawl-ref/source/rltiles/dc-mon/giant_mosquito.bmp new file mode 100644 index 0000000000..4efb7f58fd Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/giant_mosquito.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/giant_newt.bmp b/crawl-ref/source/rltiles/dc-mon/giant_newt.bmp new file mode 100644 index 0000000000..68770d2127 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/giant_newt.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/giant_orange_brain.bmp b/crawl-ref/source/rltiles/dc-mon/giant_orange_brain.bmp new file mode 100644 index 0000000000..bf2fe2317c Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/giant_orange_brain.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/giant_slug.bmp b/crawl-ref/source/rltiles/dc-mon/giant_slug.bmp new file mode 100644 index 0000000000..75a167df86 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/giant_slug.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/giant_snail.bmp b/crawl-ref/source/rltiles/dc-mon/giant_snail.bmp new file mode 100644 index 0000000000..18a3d0b398 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/giant_snail.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/giant_spore.bmp b/crawl-ref/source/rltiles/dc-mon/giant_spore.bmp new file mode 100644 index 0000000000..998b0cbaa0 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/giant_spore.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/gila_monster.bmp b/crawl-ref/source/rltiles/dc-mon/gila_monster.bmp new file mode 100644 index 0000000000..11fd4b7e00 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/gila_monster.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/gloorx_vloq.bmp b/crawl-ref/source/rltiles/dc-mon/gloorx_vloq.bmp new file mode 100644 index 0000000000..b81991079a Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/gloorx_vloq.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/glowing_shapeshifter.bmp b/crawl-ref/source/rltiles/dc-mon/glowing_shapeshifter.bmp new file mode 100644 index 0000000000..fad8e18a0d Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/glowing_shapeshifter.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/gnoll0.bmp b/crawl-ref/source/rltiles/dc-mon/gnoll0.bmp new file mode 100644 index 0000000000..f323b2413c Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/gnoll0.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/goblin0.bmp b/crawl-ref/source/rltiles/dc-mon/goblin0.bmp new file mode 100644 index 0000000000..48e6afa071 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/goblin0.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/golden_dragon.bmp b/crawl-ref/source/rltiles/dc-mon/golden_dragon.bmp new file mode 100644 index 0000000000..59543306e1 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/golden_dragon.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/great_orb_of_eyes.bmp b/crawl-ref/source/rltiles/dc-mon/great_orb_of_eyes.bmp new file mode 100644 index 0000000000..160f3bb77e Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/great_orb_of_eyes.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/greater_mummy.bmp b/crawl-ref/source/rltiles/dc-mon/greater_mummy.bmp new file mode 100644 index 0000000000..acd7580efe Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/greater_mummy.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/greater_naga0.bmp b/crawl-ref/source/rltiles/dc-mon/greater_naga0.bmp new file mode 100644 index 0000000000..da206dd4ed Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/greater_naga0.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/green_death.bmp b/crawl-ref/source/rltiles/dc-mon/green_death.bmp new file mode 100644 index 0000000000..d0946edaa2 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/green_death.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/green_rat.bmp b/crawl-ref/source/rltiles/dc-mon/green_rat.bmp new file mode 100644 index 0000000000..660253ce71 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/green_rat.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/grey_rat.bmp b/crawl-ref/source/rltiles/dc-mon/grey_rat.bmp new file mode 100644 index 0000000000..bf76049d32 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/grey_rat.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/grey_snake.bmp b/crawl-ref/source/rltiles/dc-mon/grey_snake.bmp new file mode 100644 index 0000000000..6c2eda226b Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/grey_snake.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/griffon.bmp b/crawl-ref/source/rltiles/dc-mon/griffon.bmp new file mode 100644 index 0000000000..78e0d7a118 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/griffon.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/grizzly_bear.bmp b/crawl-ref/source/rltiles/dc-mon/grizzly_bear.bmp new file mode 100644 index 0000000000..a5e3b0de6b Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/grizzly_bear.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/guardian_mummy.bmp b/crawl-ref/source/rltiles/dc-mon/guardian_mummy.bmp new file mode 100644 index 0000000000..b7baed536b Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/guardian_mummy.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/guardian_naga.bmp b/crawl-ref/source/rltiles/dc-mon/guardian_naga.bmp new file mode 100644 index 0000000000..20bc6b5e73 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/guardian_naga.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/hairy_devil.bmp b/crawl-ref/source/rltiles/dc-mon/hairy_devil.bmp new file mode 100644 index 0000000000..a3191fd97c Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/hairy_devil.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/harold0.bmp b/crawl-ref/source/rltiles/dc-mon/harold0.bmp new file mode 100644 index 0000000000..78fa252d4c Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/harold0.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/hell_hog.bmp b/crawl-ref/source/rltiles/dc-mon/hell_hog.bmp new file mode 100644 index 0000000000..30b5e4f573 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/hell_hog.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/hell_hound.bmp b/crawl-ref/source/rltiles/dc-mon/hell_hound.bmp new file mode 100644 index 0000000000..79db71ca5e Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/hell_hound.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/hell_knight.bmp b/crawl-ref/source/rltiles/dc-mon/hell_knight.bmp new file mode 100644 index 0000000000..870bb32443 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/hell_knight.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/hellion.bmp b/crawl-ref/source/rltiles/dc-mon/hellion.bmp new file mode 100644 index 0000000000..712919b059 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/hellion.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/hellwing.bmp b/crawl-ref/source/rltiles/dc-mon/hellwing.bmp new file mode 100644 index 0000000000..f2cae52b7a Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/hellwing.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/hill_giant.bmp b/crawl-ref/source/rltiles/dc-mon/hill_giant.bmp new file mode 100644 index 0000000000..1e6b7d2fcf Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/hill_giant.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/hippogriff.bmp b/crawl-ref/source/rltiles/dc-mon/hippogriff.bmp new file mode 100644 index 0000000000..408ef291d0 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/hippogriff.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/hobgoblin0.bmp b/crawl-ref/source/rltiles/dc-mon/hobgoblin0.bmp new file mode 100644 index 0000000000..de1b31be44 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/hobgoblin0.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/hog.bmp b/crawl-ref/source/rltiles/dc-mon/hog.bmp new file mode 100644 index 0000000000..7fc0b4a4c5 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/hog.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/hound.bmp b/crawl-ref/source/rltiles/dc-mon/hound.bmp new file mode 100644 index 0000000000..0f70c8ab65 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/hound.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/human.bmp b/crawl-ref/source/rltiles/dc-mon/human.bmp new file mode 100644 index 0000000000..6c1bf565e4 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/human.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/hungry_ghost.bmp b/crawl-ref/source/rltiles/dc-mon/hungry_ghost.bmp new file mode 100644 index 0000000000..6ee769033c Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/hungry_ghost.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/hydra1.bmp b/crawl-ref/source/rltiles/dc-mon/hydra1.bmp new file mode 100644 index 0000000000..ee5418af60 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/hydra1.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/hydra2.bmp b/crawl-ref/source/rltiles/dc-mon/hydra2.bmp new file mode 100644 index 0000000000..40589e817c Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/hydra2.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/hydra3.bmp b/crawl-ref/source/rltiles/dc-mon/hydra3.bmp new file mode 100644 index 0000000000..c77b1b62e9 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/hydra3.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/hydra4.bmp b/crawl-ref/source/rltiles/dc-mon/hydra4.bmp new file mode 100644 index 0000000000..58cb6128d1 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/hydra4.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/hydra5.bmp b/crawl-ref/source/rltiles/dc-mon/hydra5.bmp new file mode 100644 index 0000000000..cda6e1f00b Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/hydra5.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/ice_beast.bmp b/crawl-ref/source/rltiles/dc-mon/ice_beast.bmp new file mode 100644 index 0000000000..7eca84b08d Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/ice_beast.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/ice_devil.bmp b/crawl-ref/source/rltiles/dc-mon/ice_devil.bmp new file mode 100644 index 0000000000..5ec6496298 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/ice_devil.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/ice_dragon.bmp b/crawl-ref/source/rltiles/dc-mon/ice_dragon.bmp new file mode 100644 index 0000000000..7d3561ebcb Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/ice_dragon.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/ice_fiend.bmp b/crawl-ref/source/rltiles/dc-mon/ice_fiend.bmp new file mode 100644 index 0000000000..8f7720bad3 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/ice_fiend.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/ijyb0.bmp b/crawl-ref/source/rltiles/dc-mon/ijyb0.bmp new file mode 100644 index 0000000000..d7bec517b1 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/ijyb0.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/imp.bmp b/crawl-ref/source/rltiles/dc-mon/imp.bmp new file mode 100644 index 0000000000..43b22bd27e Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/imp.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/insubstantial_wisp.bmp b/crawl-ref/source/rltiles/dc-mon/insubstantial_wisp.bmp new file mode 100644 index 0000000000..48a5bb5632 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/insubstantial_wisp.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/iron_devil.bmp b/crawl-ref/source/rltiles/dc-mon/iron_devil.bmp new file mode 100644 index 0000000000..c8ab53b201 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/iron_devil.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/iron_dragon.bmp b/crawl-ref/source/rltiles/dc-mon/iron_dragon.bmp new file mode 100644 index 0000000000..7d7a359dc4 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/iron_dragon.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/iron_golem.bmp b/crawl-ref/source/rltiles/dc-mon/iron_golem.bmp new file mode 100644 index 0000000000..cf16aab309 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/iron_golem.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/iron_troll.bmp b/crawl-ref/source/rltiles/dc-mon/iron_troll.bmp new file mode 100644 index 0000000000..2a3ed78686 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/iron_troll.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/jackal.bmp b/crawl-ref/source/rltiles/dc-mon/jackal.bmp new file mode 100644 index 0000000000..1d33af2b3c Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/jackal.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/jelly.bmp b/crawl-ref/source/rltiles/dc-mon/jelly.bmp new file mode 100644 index 0000000000..667408dc64 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/jelly.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/jellyfish.bmp b/crawl-ref/source/rltiles/dc-mon/jellyfish.bmp new file mode 100644 index 0000000000..6587b5cf87 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/jellyfish.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/jessica.bmp b/crawl-ref/source/rltiles/dc-mon/jessica.bmp new file mode 100644 index 0000000000..718335c331 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/jessica.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/joseph0.bmp b/crawl-ref/source/rltiles/dc-mon/joseph0.bmp new file mode 100644 index 0000000000..ae78072b68 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/joseph0.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/josephine.bmp b/crawl-ref/source/rltiles/dc-mon/josephine.bmp new file mode 100644 index 0000000000..0a8a0fa1fa Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/josephine.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/jozef0.bmp b/crawl-ref/source/rltiles/dc-mon/jozef0.bmp new file mode 100644 index 0000000000..39078c494a Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/jozef0.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/killer_bee.bmp b/crawl-ref/source/rltiles/dc-mon/killer_bee.bmp new file mode 100644 index 0000000000..87a3d23d31 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/killer_bee.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/killer_bee_larva.bmp b/crawl-ref/source/rltiles/dc-mon/killer_bee_larva.bmp new file mode 100644 index 0000000000..8f3739185e Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/killer_bee_larva.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/killer_klown.bmp b/crawl-ref/source/rltiles/dc-mon/killer_klown.bmp new file mode 100644 index 0000000000..ca3e48899a Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/killer_klown.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/kobold.bmp b/crawl-ref/source/rltiles/dc-mon/kobold.bmp new file mode 100644 index 0000000000..b7ecdeda01 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/kobold.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/kobold_demonologist.bmp b/crawl-ref/source/rltiles/dc-mon/kobold_demonologist.bmp new file mode 100644 index 0000000000..35fc23c3c8 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/kobold_demonologist.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/komodo_dragon.bmp b/crawl-ref/source/rltiles/dc-mon/komodo_dragon.bmp new file mode 100644 index 0000000000..4221350120 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/komodo_dragon.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/large_mimic.bmp b/crawl-ref/source/rltiles/dc-mon/large_mimic.bmp new file mode 100644 index 0000000000..de566d0b67 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/large_mimic.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/lava_fish.bmp b/crawl-ref/source/rltiles/dc-mon/lava_fish.bmp new file mode 100644 index 0000000000..99a0dfec7e Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/lava_fish.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/lava_snake.bmp b/crawl-ref/source/rltiles/dc-mon/lava_snake.bmp new file mode 100644 index 0000000000..f96c37ec5b Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/lava_snake.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/lava_worm.bmp b/crawl-ref/source/rltiles/dc-mon/lava_worm.bmp new file mode 100644 index 0000000000..4eb1785ebf Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/lava_worm.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/lemure.bmp b/crawl-ref/source/rltiles/dc-mon/lemure.bmp new file mode 100644 index 0000000000..6b7a5705cf Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/lemure.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/lich.bmp b/crawl-ref/source/rltiles/dc-mon/lich.bmp new file mode 100644 index 0000000000..08313bffd3 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/lich.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/lindwurm.bmp b/crawl-ref/source/rltiles/dc-mon/lindwurm.bmp new file mode 100644 index 0000000000..240e787338 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/lindwurm.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/lom_lobon.bmp b/crawl-ref/source/rltiles/dc-mon/lom_lobon.bmp new file mode 100644 index 0000000000..2cae75074a Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/lom_lobon.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/lorocyproca.bmp b/crawl-ref/source/rltiles/dc-mon/lorocyproca.bmp new file mode 100644 index 0000000000..a8fbe049e9 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/lorocyproca.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/louise.bmp b/crawl-ref/source/rltiles/dc-mon/louise.bmp new file mode 100644 index 0000000000..e897fe3bbb Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/louise.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/manes.bmp b/crawl-ref/source/rltiles/dc-mon/manes.bmp new file mode 100644 index 0000000000..a0fd6b756f Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/manes.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/manticore.bmp b/crawl-ref/source/rltiles/dc-mon/manticore.bmp new file mode 100644 index 0000000000..6ac6e5016c Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/manticore.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/margery.bmp b/crawl-ref/source/rltiles/dc-mon/margery.bmp new file mode 100644 index 0000000000..39f58aee91 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/margery.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/maud0.bmp b/crawl-ref/source/rltiles/dc-mon/maud0.bmp new file mode 100644 index 0000000000..bcea670bfd Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/maud0.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/metal_gargoyle.bmp b/crawl-ref/source/rltiles/dc-mon/metal_gargoyle.bmp new file mode 100644 index 0000000000..a272c67a54 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/metal_gargoyle.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/michael.bmp b/crawl-ref/source/rltiles/dc-mon/michael.bmp new file mode 100644 index 0000000000..f9f13f05d7 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/michael.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/midge.bmp b/crawl-ref/source/rltiles/dc-mon/midge.bmp new file mode 100644 index 0000000000..819d40fa0e Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/midge.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/minotaur.bmp b/crawl-ref/source/rltiles/dc-mon/minotaur.bmp new file mode 100644 index 0000000000..9d5f477b1c Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/minotaur.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/mnoleg.bmp b/crawl-ref/source/rltiles/dc-mon/mnoleg.bmp new file mode 100644 index 0000000000..03b0bac0d6 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/mnoleg.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/molten_gargoyle.bmp b/crawl-ref/source/rltiles/dc-mon/molten_gargoyle.bmp new file mode 100644 index 0000000000..879a3d24a6 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/molten_gargoyle.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/moth_of_wrath.bmp b/crawl-ref/source/rltiles/dc-mon/moth_of_wrath.bmp new file mode 100644 index 0000000000..00987b5088 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/moth_of_wrath.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/mottled_dragon.bmp b/crawl-ref/source/rltiles/dc-mon/mottled_dragon.bmp new file mode 100644 index 0000000000..8461220314 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/mottled_dragon.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/mummy.bmp b/crawl-ref/source/rltiles/dc-mon/mummy.bmp new file mode 100644 index 0000000000..401d73aacd Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/mummy.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/mummy_priest.bmp b/crawl-ref/source/rltiles/dc-mon/mummy_priest.bmp new file mode 100644 index 0000000000..c4a6da37c7 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/mummy_priest.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/murray.bmp b/crawl-ref/source/rltiles/dc-mon/murray.bmp new file mode 100644 index 0000000000..d3d484393c Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/murray.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/naga0.bmp b/crawl-ref/source/rltiles/dc-mon/naga0.bmp new file mode 100644 index 0000000000..87f2c308ea Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/naga0.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/naga_mage.bmp b/crawl-ref/source/rltiles/dc-mon/naga_mage.bmp new file mode 100644 index 0000000000..37da349a72 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/naga_mage.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/naga_warrior0.bmp b/crawl-ref/source/rltiles/dc-mon/naga_warrior0.bmp new file mode 100644 index 0000000000..f0f962600d Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/naga_warrior0.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/necromancer.bmp b/crawl-ref/source/rltiles/dc-mon/necromancer.bmp new file mode 100644 index 0000000000..32fddfba85 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/necromancer.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/necrophage.bmp b/crawl-ref/source/rltiles/dc-mon/necrophage.bmp new file mode 100644 index 0000000000..a59e96701b Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/necrophage.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/neqoxec.bmp b/crawl-ref/source/rltiles/dc-mon/neqoxec.bmp new file mode 100644 index 0000000000..209cc2c3f6 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/neqoxec.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/norbert.bmp b/crawl-ref/source/rltiles/dc-mon/norbert.bmp new file mode 100644 index 0000000000..a043db992e Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/norbert.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/norris2.bmp b/crawl-ref/source/rltiles/dc-mon/norris2.bmp new file mode 100644 index 0000000000..62cd29ba9e Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/norris2.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/ogre.bmp b/crawl-ref/source/rltiles/dc-mon/ogre.bmp new file mode 100644 index 0000000000..ad071f31bc Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/ogre.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/ogre_mage.bmp b/crawl-ref/source/rltiles/dc-mon/ogre_mage.bmp new file mode 100644 index 0000000000..a212bead18 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/ogre_mage.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/oklob_plant.bmp b/crawl-ref/source/rltiles/dc-mon/oklob_plant.bmp new file mode 100644 index 0000000000..7787d47922 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/oklob_plant.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/ooze.bmp b/crawl-ref/source/rltiles/dc-mon/ooze.bmp new file mode 100644 index 0000000000..25369f9c76 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/ooze.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/orange_demon.bmp b/crawl-ref/source/rltiles/dc-mon/orange_demon.bmp new file mode 100644 index 0000000000..a26fd691b2 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/orange_demon.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/orange_rat.bmp b/crawl-ref/source/rltiles/dc-mon/orange_rat.bmp new file mode 100644 index 0000000000..081ae3a286 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/orange_rat.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/orb_guardian.bmp b/crawl-ref/source/rltiles/dc-mon/orb_guardian.bmp new file mode 100644 index 0000000000..c87ad8f09e Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/orb_guardian.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/orb_of_fire.bmp b/crawl-ref/source/rltiles/dc-mon/orb_of_fire.bmp new file mode 100644 index 0000000000..790f2b615f Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/orb_of_fire.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/orc0.bmp b/crawl-ref/source/rltiles/dc-mon/orc0.bmp new file mode 100644 index 0000000000..23ed110cb8 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/orc0.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/orc_high_priest.bmp b/crawl-ref/source/rltiles/dc-mon/orc_high_priest.bmp new file mode 100644 index 0000000000..74ce68d622 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/orc_high_priest.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/orc_knight0.bmp b/crawl-ref/source/rltiles/dc-mon/orc_knight0.bmp new file mode 100644 index 0000000000..9febf6f779 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/orc_knight0.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/orc_priest.bmp b/crawl-ref/source/rltiles/dc-mon/orc_priest.bmp new file mode 100644 index 0000000000..08f833f87e Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/orc_priest.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/orc_sorcerer.bmp b/crawl-ref/source/rltiles/dc-mon/orc_sorcerer.bmp new file mode 100644 index 0000000000..87e26ceda7 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/orc_sorcerer.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/orc_warlord0.bmp b/crawl-ref/source/rltiles/dc-mon/orc_warlord0.bmp new file mode 100644 index 0000000000..890435c827 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/orc_warlord0.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/orc_warrior0.bmp b/crawl-ref/source/rltiles/dc-mon/orc_warrior0.bmp new file mode 100644 index 0000000000..ad34c39476 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/orc_warrior0.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/orc_wizard.bmp b/crawl-ref/source/rltiles/dc-mon/orc_wizard.bmp new file mode 100644 index 0000000000..3ad198bb41 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/orc_wizard.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/pandemonium_demon.bmp b/crawl-ref/source/rltiles/dc-mon/pandemonium_demon.bmp new file mode 100644 index 0000000000..d0c367e182 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/pandemonium_demon.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/phantom.bmp b/crawl-ref/source/rltiles/dc-mon/phantom.bmp new file mode 100644 index 0000000000..256844546a Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/phantom.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/pit_fiend.bmp b/crawl-ref/source/rltiles/dc-mon/pit_fiend.bmp new file mode 100644 index 0000000000..9d751c499a Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/pit_fiend.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/plant.bmp b/crawl-ref/source/rltiles/dc-mon/plant.bmp new file mode 100644 index 0000000000..008cbef306 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/plant.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/polar_bear.bmp b/crawl-ref/source/rltiles/dc-mon/polar_bear.bmp new file mode 100644 index 0000000000..a0d6cceb57 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/polar_bear.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/polyphemus.bmp b/crawl-ref/source/rltiles/dc-mon/polyphemus.bmp new file mode 100644 index 0000000000..e8a29e790d Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/polyphemus.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/program_bug.bmp b/crawl-ref/source/rltiles/dc-mon/program_bug.bmp new file mode 100644 index 0000000000..a90be31711 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/program_bug.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/psyche.bmp b/crawl-ref/source/rltiles/dc-mon/psyche.bmp new file mode 100644 index 0000000000..07bcb8502c Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/psyche.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/pulsating_lump.bmp b/crawl-ref/source/rltiles/dc-mon/pulsating_lump.bmp new file mode 100644 index 0000000000..39d0a5db95 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/pulsating_lump.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/quasit.bmp b/crawl-ref/source/rltiles/dc-mon/quasit.bmp new file mode 100644 index 0000000000..3ffe8bb0d6 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/quasit.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/queen_ant.bmp b/crawl-ref/source/rltiles/dc-mon/queen_ant.bmp new file mode 100644 index 0000000000..4a00199649 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/queen_ant.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/queen_bee.bmp b/crawl-ref/source/rltiles/dc-mon/queen_bee.bmp new file mode 100644 index 0000000000..68f2a9dde7 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/queen_bee.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/quicksilver_dragon.bmp b/crawl-ref/source/rltiles/dc-mon/quicksilver_dragon.bmp new file mode 100644 index 0000000000..e740abcfad Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/quicksilver_dragon.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/quokka.bmp b/crawl-ref/source/rltiles/dc-mon/quokka.bmp new file mode 100644 index 0000000000..36b727f11f Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/quokka.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/rakshasa.bmp b/crawl-ref/source/rltiles/dc-mon/rakshasa.bmp new file mode 100644 index 0000000000..3b18db1d95 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/rakshasa.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/rakshasa_fake.bmp b/crawl-ref/source/rltiles/dc-mon/rakshasa_fake.bmp new file mode 100644 index 0000000000..3b18db1d95 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/rakshasa_fake.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/rat.bmp b/crawl-ref/source/rltiles/dc-mon/rat.bmp new file mode 100644 index 0000000000..9ad4de70a7 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/rat.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/reaper.bmp b/crawl-ref/source/rltiles/dc-mon/reaper.bmp new file mode 100644 index 0000000000..7353a3b074 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/reaper.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/red_devil.bmp b/crawl-ref/source/rltiles/dc-mon/red_devil.bmp new file mode 100644 index 0000000000..7766da96b1 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/red_devil.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/red_wasp.bmp b/crawl-ref/source/rltiles/dc-mon/red_wasp.bmp new file mode 100644 index 0000000000..0f043661be Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/red_wasp.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/redback.bmp b/crawl-ref/source/rltiles/dc-mon/redback.bmp new file mode 100644 index 0000000000..0c68819349 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/redback.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/rock_troll.bmp b/crawl-ref/source/rltiles/dc-mon/rock_troll.bmp new file mode 100644 index 0000000000..27adf6e141 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/rock_troll.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/rotting_devil.bmp b/crawl-ref/source/rltiles/dc-mon/rotting_devil.bmp new file mode 100644 index 0000000000..60de9daf25 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/rotting_devil.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/rotting_hulk.bmp b/crawl-ref/source/rltiles/dc-mon/rotting_hulk.bmp new file mode 100644 index 0000000000..17eedc2d42 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/rotting_hulk.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/royal_jelly.bmp b/crawl-ref/source/rltiles/dc-mon/royal_jelly.bmp new file mode 100644 index 0000000000..9c0512d1d4 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/royal_jelly.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/rupert0.bmp b/crawl-ref/source/rltiles/dc-mon/rupert0.bmp new file mode 100644 index 0000000000..7e0a543aa8 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/rupert0.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/salamander.bmp b/crawl-ref/source/rltiles/dc-mon/salamander.bmp new file mode 100644 index 0000000000..d00996a384 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/salamander.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/scorpion.bmp b/crawl-ref/source/rltiles/dc-mon/scorpion.bmp new file mode 100644 index 0000000000..420255aa15 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/scorpion.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/serpent_of_hell.bmp b/crawl-ref/source/rltiles/dc-mon/serpent_of_hell.bmp new file mode 100644 index 0000000000..e2e2d595ba Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/serpent_of_hell.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/shadow.bmp b/crawl-ref/source/rltiles/dc-mon/shadow.bmp new file mode 100644 index 0000000000..bfcfe2f29d Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/shadow.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/shadow_demon.bmp b/crawl-ref/source/rltiles/dc-mon/shadow_demon.bmp new file mode 100644 index 0000000000..dec3ddc17f Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/shadow_demon.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/shadow_dragon.bmp b/crawl-ref/source/rltiles/dc-mon/shadow_dragon.bmp new file mode 100644 index 0000000000..964b62d6dc Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/shadow_dragon.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/shadow_fiend.bmp b/crawl-ref/source/rltiles/dc-mon/shadow_fiend.bmp new file mode 100644 index 0000000000..8179a695f7 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/shadow_fiend.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/shadow_imp.bmp b/crawl-ref/source/rltiles/dc-mon/shadow_imp.bmp new file mode 100644 index 0000000000..18bc7b3b87 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/shadow_imp.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/shadow_wraith.bmp b/crawl-ref/source/rltiles/dc-mon/shadow_wraith.bmp new file mode 100644 index 0000000000..531e3222d7 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/shadow_wraith.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/shapeshifter.bmp b/crawl-ref/source/rltiles/dc-mon/shapeshifter.bmp new file mode 100644 index 0000000000..fb1831fe6c Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/shapeshifter.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/sheep.bmp b/crawl-ref/source/rltiles/dc-mon/sheep.bmp new file mode 100644 index 0000000000..bea41c0acd Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/sheep.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/shining_eye.bmp b/crawl-ref/source/rltiles/dc-mon/shining_eye.bmp new file mode 100644 index 0000000000..8e16e18116 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/shining_eye.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/sigmund.bmp b/crawl-ref/source/rltiles/dc-mon/sigmund.bmp new file mode 100644 index 0000000000..736e231a62 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/sigmund.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/simulacrum_large.bmp b/crawl-ref/source/rltiles/dc-mon/simulacrum_large.bmp new file mode 100644 index 0000000000..468e325d13 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/simulacrum_large.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/simulacrum_small.bmp b/crawl-ref/source/rltiles/dc-mon/simulacrum_small.bmp new file mode 100644 index 0000000000..d4aea08fcf Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/simulacrum_small.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/skeletal_dragon.bmp b/crawl-ref/source/rltiles/dc-mon/skeletal_dragon.bmp new file mode 100644 index 0000000000..026a292d66 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/skeletal_dragon.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/skeletal_warrior0.bmp b/crawl-ref/source/rltiles/dc-mon/skeletal_warrior0.bmp new file mode 100644 index 0000000000..6bb68ff39c Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/skeletal_warrior0.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/skeleton_large.bmp b/crawl-ref/source/rltiles/dc-mon/skeleton_large.bmp new file mode 100644 index 0000000000..f1321a578e Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/skeleton_large.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/skeleton_small.bmp b/crawl-ref/source/rltiles/dc-mon/skeleton_small.bmp new file mode 100644 index 0000000000..f1321a578e Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/skeleton_small.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/slime_creature.bmp b/crawl-ref/source/rltiles/dc-mon/slime_creature.bmp new file mode 100644 index 0000000000..18800a838f Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/slime_creature.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/small_snake.bmp b/crawl-ref/source/rltiles/dc-mon/small_snake.bmp new file mode 100644 index 0000000000..02caab2dac Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/small_snake.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/smoke_demon.bmp b/crawl-ref/source/rltiles/dc-mon/smoke_demon.bmp new file mode 100644 index 0000000000..691c35b7b4 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/smoke_demon.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/snake.bmp b/crawl-ref/source/rltiles/dc-mon/snake.bmp new file mode 100644 index 0000000000..fd4046b2e7 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/snake.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/snorg.bmp b/crawl-ref/source/rltiles/dc-mon/snorg.bmp new file mode 100644 index 0000000000..af2ec92755 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/snorg.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/soldier_ant.bmp b/crawl-ref/source/rltiles/dc-mon/soldier_ant.bmp new file mode 100644 index 0000000000..0dbb6e0b53 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/soldier_ant.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/soul_eater.bmp b/crawl-ref/source/rltiles/dc-mon/soul_eater.bmp new file mode 100644 index 0000000000..b07283581b Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/soul_eater.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/spatial_vortex.bmp b/crawl-ref/source/rltiles/dc-mon/spatial_vortex.bmp new file mode 100644 index 0000000000..62a8985fb9 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/spatial_vortex.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/spectral_thing.bmp b/crawl-ref/source/rltiles/dc-mon/spectral_thing.bmp new file mode 100644 index 0000000000..ac00b1a3c6 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/spectral_thing.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/spectral_warrior.bmp b/crawl-ref/source/rltiles/dc-mon/spectral_warrior.bmp new file mode 100644 index 0000000000..c9774a3d1b Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/spectral_warrior.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/sphinx.bmp b/crawl-ref/source/rltiles/dc-mon/sphinx.bmp new file mode 100644 index 0000000000..142aa3d897 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/sphinx.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/spiny_frog.bmp b/crawl-ref/source/rltiles/dc-mon/spiny_frog.bmp new file mode 100644 index 0000000000..851a73f845 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/spiny_frog.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/spiny_worm.bmp b/crawl-ref/source/rltiles/dc-mon/spiny_worm.bmp new file mode 100644 index 0000000000..3a13b2e075 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/spiny_worm.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/steam_dragon.bmp b/crawl-ref/source/rltiles/dc-mon/steam_dragon.bmp new file mode 100644 index 0000000000..a1f04195e8 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/steam_dragon.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/stone_giant.bmp b/crawl-ref/source/rltiles/dc-mon/stone_giant.bmp new file mode 100644 index 0000000000..1288d0e8e2 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/stone_giant.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/stone_golem.bmp b/crawl-ref/source/rltiles/dc-mon/stone_golem.bmp new file mode 100644 index 0000000000..40312877f6 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/stone_golem.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/storm_dragon.bmp b/crawl-ref/source/rltiles/dc-mon/storm_dragon.bmp new file mode 100644 index 0000000000..3ab507b16c Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/storm_dragon.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/sun_demon.bmp b/crawl-ref/source/rltiles/dc-mon/sun_demon.bmp new file mode 100644 index 0000000000..d49c7d5c85 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/sun_demon.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/swamp_dragon.bmp b/crawl-ref/source/rltiles/dc-mon/swamp_dragon.bmp new file mode 100644 index 0000000000..11afdfdf2f Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/swamp_dragon.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/swamp_drake.bmp b/crawl-ref/source/rltiles/dc-mon/swamp_drake.bmp new file mode 100644 index 0000000000..b72c53652b Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/swamp_drake.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/swamp_worm.bmp b/crawl-ref/source/rltiles/dc-mon/swamp_worm.bmp new file mode 100644 index 0000000000..df7c22f79b Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/swamp_worm.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/tentacled_monstrosity.bmp b/crawl-ref/source/rltiles/dc-mon/tentacled_monstrosity.bmp new file mode 100644 index 0000000000..bbfb47d646 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/tentacled_monstrosity.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/terence0.bmp b/crawl-ref/source/rltiles/dc-mon/terence0.bmp new file mode 100644 index 0000000000..7bbb0ee3bf Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/terence0.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/tiamat.bmp b/crawl-ref/source/rltiles/dc-mon/tiamat.bmp new file mode 100644 index 0000000000..dff6eb6710 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/tiamat.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/titan.bmp b/crawl-ref/source/rltiles/dc-mon/titan.bmp new file mode 100644 index 0000000000..53f927a745 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/titan.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/toenail_golem.bmp b/crawl-ref/source/rltiles/dc-mon/toenail_golem.bmp new file mode 100644 index 0000000000..9a1b77e9ff Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/toenail_golem.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/tormentor.bmp b/crawl-ref/source/rltiles/dc-mon/tormentor.bmp new file mode 100644 index 0000000000..6be712a334 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/tormentor.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/troll.bmp b/crawl-ref/source/rltiles/dc-mon/troll.bmp new file mode 100644 index 0000000000..4e860c843d Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/troll.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/two_headed_ogre.bmp b/crawl-ref/source/rltiles/dc-mon/two_headed_ogre.bmp new file mode 100644 index 0000000000..f83da0fccb Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/two_headed_ogre.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/ufetubus.bmp b/crawl-ref/source/rltiles/dc-mon/ufetubus.bmp new file mode 100644 index 0000000000..62d89fa182 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/ufetubus.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/ugly_thing.bmp b/crawl-ref/source/rltiles/dc-mon/ugly_thing.bmp new file mode 100644 index 0000000000..77edd813c5 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/ugly_thing.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/unseen_horror.bmp b/crawl-ref/source/rltiles/dc-mon/unseen_horror.bmp new file mode 100644 index 0000000000..5ac1fcb6d2 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/unseen_horror.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/urug0.bmp b/crawl-ref/source/rltiles/dc-mon/urug0.bmp new file mode 100644 index 0000000000..ca5289590a Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/urug0.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/vampire.bmp b/crawl-ref/source/rltiles/dc-mon/vampire.bmp new file mode 100644 index 0000000000..a4e5431e6f Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/vampire.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/vampire_knight.bmp b/crawl-ref/source/rltiles/dc-mon/vampire_knight.bmp new file mode 100644 index 0000000000..c04f6a9f31 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/vampire_knight.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/vampire_mage.bmp b/crawl-ref/source/rltiles/dc-mon/vampire_mage.bmp new file mode 100644 index 0000000000..476c9ecd39 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/vampire_mage.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/vapour.bmp b/crawl-ref/source/rltiles/dc-mon/vapour.bmp new file mode 100644 index 0000000000..d5dd8e20f1 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/vapour.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/vault_guard0.bmp b/crawl-ref/source/rltiles/dc-mon/vault_guard0.bmp new file mode 100644 index 0000000000..f00bbaf938 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/vault_guard0.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/very_ugly_thing.bmp b/crawl-ref/source/rltiles/dc-mon/very_ugly_thing.bmp new file mode 100644 index 0000000000..a674a23589 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/very_ugly_thing.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/wandering_mushroom.bmp b/crawl-ref/source/rltiles/dc-mon/wandering_mushroom.bmp new file mode 100644 index 0000000000..c03d21051d Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/wandering_mushroom.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/war_dog.bmp b/crawl-ref/source/rltiles/dc-mon/war_dog.bmp new file mode 100644 index 0000000000..81060bbe7f Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/war_dog.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/warg.bmp b/crawl-ref/source/rltiles/dc-mon/warg.bmp new file mode 100644 index 0000000000..cfb91fb0ea Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/warg.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/water_elemental.bmp b/crawl-ref/source/rltiles/dc-mon/water_elemental.bmp new file mode 100644 index 0000000000..bd27462abb Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/water_elemental.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/wayne0.bmp b/crawl-ref/source/rltiles/dc-mon/wayne0.bmp new file mode 100644 index 0000000000..6eee94387d Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/wayne0.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/white_imp.bmp b/crawl-ref/source/rltiles/dc-mon/white_imp.bmp new file mode 100644 index 0000000000..261fbb450b Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/white_imp.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/wight.bmp b/crawl-ref/source/rltiles/dc-mon/wight.bmp new file mode 100644 index 0000000000..b0db9f61bf Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/wight.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/wizard.bmp b/crawl-ref/source/rltiles/dc-mon/wizard.bmp new file mode 100644 index 0000000000..771a909056 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/wizard.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/wolf.bmp b/crawl-ref/source/rltiles/dc-mon/wolf.bmp new file mode 100644 index 0000000000..4812282e27 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/wolf.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/wolf_spider.bmp b/crawl-ref/source/rltiles/dc-mon/wolf_spider.bmp new file mode 100644 index 0000000000..4455f2f730 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/wolf_spider.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/wood_golem.bmp b/crawl-ref/source/rltiles/dc-mon/wood_golem.bmp new file mode 100644 index 0000000000..ba4d86154b Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/wood_golem.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/worm.bmp b/crawl-ref/source/rltiles/dc-mon/worm.bmp new file mode 100644 index 0000000000..73e021e1d5 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/worm.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/wraith.bmp b/crawl-ref/source/rltiles/dc-mon/wraith.bmp new file mode 100644 index 0000000000..f219507eeb Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/wraith.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/wyvern.bmp b/crawl-ref/source/rltiles/dc-mon/wyvern.bmp new file mode 100644 index 0000000000..8960a35bd3 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/wyvern.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/xtahua.bmp b/crawl-ref/source/rltiles/dc-mon/xtahua.bmp new file mode 100644 index 0000000000..b856e03a7e Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/xtahua.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/yak.bmp b/crawl-ref/source/rltiles/dc-mon/yak.bmp new file mode 100644 index 0000000000..9031e0ca10 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/yak.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/yaktaur.bmp b/crawl-ref/source/rltiles/dc-mon/yaktaur.bmp new file mode 100644 index 0000000000..bab35520db Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/yaktaur.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/yaktaur_captain.bmp b/crawl-ref/source/rltiles/dc-mon/yaktaur_captain.bmp new file mode 100644 index 0000000000..5cc690800a Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/yaktaur_captain.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/yellow_snake.bmp b/crawl-ref/source/rltiles/dc-mon/yellow_snake.bmp new file mode 100644 index 0000000000..b9eb8937e0 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/yellow_snake.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/yellow_wasp.bmp b/crawl-ref/source/rltiles/dc-mon/yellow_wasp.bmp new file mode 100644 index 0000000000..c33d359a1e Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/yellow_wasp.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/ynoxinul.bmp b/crawl-ref/source/rltiles/dc-mon/ynoxinul.bmp new file mode 100644 index 0000000000..4cbad27303 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/ynoxinul.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/zombie_large.bmp b/crawl-ref/source/rltiles/dc-mon/zombie_large.bmp new file mode 100644 index 0000000000..405c01303e Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/zombie_large.bmp differ diff --git a/crawl-ref/source/rltiles/dc-mon/zombie_small.bmp b/crawl-ref/source/rltiles/dc-mon/zombie_small.bmp new file mode 100644 index 0000000000..3bd60fc8b6 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-mon/zombie_small.bmp differ diff --git a/crawl-ref/source/rltiles/dc-pl.txt b/crawl-ref/source/rltiles/dc-pl.txt new file mode 100644 index 0000000000..29a8841e6d --- /dev/null +++ b/crawl-ref/source/rltiles/dc-pl.txt @@ -0,0 +1,853 @@ +%width 20 +%back none +%name player + +%rim 1 + +###BASE +%parts_ctg BASE +%parts_wx 32 +%parts_wy 32 +%parts_ox 0 +%parts_oy 0 +%sdir player/base +human_f HUMAN +human_m +elf_f ELF +elf_m +deep_elf_f DEEP_ELF +deep_elf_m +dwarf_f DWARF +dwarf_m +halfling_f HALFLING +halfling_m +orc_f ORC +orc_m +kobold_f KOBOLD +kobold_m +mummy_f MUMMY +mummy_m +naga_f NAGA +naga_m +gnome_f GNOME +gnome_m +ogre_f OGRE +ogre_m +troll_f TROLL +troll_m +ogre_mage_f OGRE_MAGE +ogre_mage_m +draconian_f DRACONIAN +draconian_m +draconian_black_f DRACONIAN_BLACK +draconian_black_m +draconian_gold_f DRACONIAN_GOLD +draconian_gold_m +draconian_gray_f DRACONIAN_GRAY +draconian_gray_m +draconian_green_f DRACONIAN_GREEN +draconian_green_m +draconian_mottled_f DRACONIAN_MOTTLED +draconian_mottled_m +draconian_pale_f DRACONIAN_PALE +draconian_pale_m +draconian_purple_f DRACONIAN_PURPLE +draconian_purple_m +draconian_red_f DRACONIAN_RED +draconian_red_m +draconian_white_f DRACONIAN_WHITE +draconian_white_m + +centaur_f CENTAUR +centaur_m +demigod_f DEMIGOD +demigod_m +spriggan_f SPRIGGAN +spriggan_m +minotaur_f MINOTAUR +minotaur_m +demonspawn_f DEMONSPAWN +demonspawn_m +ghoul_f GHOUL +ghoul_m +kenku_f KENKU +kenku_m +merfolk_f MERFOLK +merfolk_m +merfolk_water_f MERFOLK_WATER +merfolk_water_m +vampire_f VAMPIRE +vampire_m +%end + +###SHADOW +%parts_ctg SHADOW +%parts_wx 32 +%parts_wy 32 +%parts_ox 0 +%parts_oy 0 +%rim 0 +shadow +%rim 1 +%sdir player/barding +naga_barding NAGA_BARDING +centaur_barding CENTAUR_BARDING +%end + +###Cloak +%parts_ctg CLOAK +%parts_wx 32 +%parts_wy 32 +%parts_ox 0 +%parts_oy 0 +%sdir player/cloak +red RED +blue BLUE +magenta MAGENTA +yellow YELLOW +black BLACK +gray GRAY +brown LBROWN +green GREEN +cyan CYAN +white WHITE +%end + +###Boots +%parts_ctg BOOTS +%parts_wx 16 +%parts_wy 16 +%parts_ox 8 +%parts_oy 16 +%sdir player/boot + +short_red SHORT_RED +short_purple SHORT_PURPLE +short_brown SHORT_BROWN +short_brown2 SHORT_BROWN2 +pj PJ +middle_brown MIDDLE_BROWN +middle_gray MIDDLE_GRAY +middle_ybrown MIDDLE_YBROWN +middle_brown2 MIDDLE_BROWN2 +middle_brown3 MIDDLE_BROWN3 +middle_gold MIDDLE_GOLD +middle_green MIDDLE_GREEN +middle_purple MIDDLE_PURPLE +long_red LONG_RED +long_white LONG_WHITE +blue_gold BLUE_GOLD +mesh_red MESH_RED +mesh_black MESH_BLACK +mesh_white MESH_WHITE +mesh_blue MESH_BLUE +hooves HOOVES +%end + +### Body armour +%parts_ctg LEG +%parts_wx 16 +%parts_wy 16 +%parts_ox 8 +%parts_oy 16 +%sdir player/leg + +bikini_red BIKINI_RED +loincloth_red LOINCLOTH_RED +belt_redbrown BELT_REDBROWN +belt_gray BELT_GRAY +pants_orange PANTS_ORANGE +pants_short_gray PANTS_SHORT_GRAY +garter +pj PJ + +pants_black PANTS_BLACK +pants_blue PANTS_BLUE +pants_darkgreen PANTS_DARKGREEN +pants_brown PANTS_BROWN +pants_short_darkbrown PANTS_SHORT_DARKBROWN +pants_short_brown PANTS_SHORT_BROWN +pants_short_brown3 PANTS_SHORT_BROWN3 +trouser_green +pants_l_white +long_red +chunli +pants_red + +leg_armor00 METAL_RED +leg_armor01 METAL_SILVER +leg_armor03 METAL_GRAY +leg_armor05 METAL_GREEN +leg_armor04 LEGCHAIN_GRAY +leg_armor02 LEGCHAIN_SILVER + +skirt_blue SKIRT_OFS +skirt_green SKIRT_GREEN +skirt_white SKIRT_WHITE +skirt_red +skirt_white2 + +metal_gray LOWARM1 +metal_green LOWARM2 +pants16 LOWARM3 +%end + +### Leg armour +%parts_ctg BODY +%parts_wx 16 +%parts_wy 32 +%parts_ox 8 +%parts_oy 0 +%sdir player/body + +robe_blue ROBE_BLUE +robe_black ROBE_BLACK +robe_white ROBE_WHITE +robe_red ROBE_RED +robe_purple ROBE_MAGENTA +robe_green ROBE_GREEN +robe_yellow ROBE_YELLOW +robe_brown ROBE_BROWN +robe_cyan ROBE_CYAN +robe_rainbow ROBE_RAINBOW +gandalf_g GANDALF_G +saruman SARUMAN +robe_black_hood ROBE_BLACK_HOOD +monk_blue MONK_BLUE +monk_black MONK_BLACK +dress_green DRESS_GREEN +robe_black_gold ROBE_BLACK_GOLD +robe_white2 ROBE_WHITE2 +robe_red2 ROBE_RED2 +robe_white_red ROBE_WHITE_RED +robe_white_green ROBE_WHITE_GREEN +robe_blue_white ROBE_BLUE_WHITE +robe_red_gold ROBE_RED_GOLD +robe_black_red ROBE_BLACK_RED +robe_blue_green ROBE_BLUE_GREEN +robe_red3 ROBE_RED3 +robe_brown2 ROBE_BROWN2 +robe_green_gold ROBE_GREEN_GOLD +robe_brown3 ROBE_BROWN3 +robe_gray2 ROBE_GRAY2 +dress_white DRESS_WHITE +arwen ARWEN +skirt_onep_grey SKIRT_ONEP_GREY +bloody BLOODY +leather_short LEATHER_SHORT +china_red2 CHINA_RED2 + +animal_skin ANIMAL_SKIN +zhor ZHOR +neck NECK +belt1 BELT1 +belt2 BELT2 +susp_black SUSP_BLACK +shoulder_pad SHOULDER_PAD +mesh_black MESH_BLACK +mesh_red MESH_RED +leather_jacket LEATHER_JACKET +shirt_white1 SHIRT_WHITE1 +shirt_white2 SHIRT_WHITE2 +shirt_white3 SHIRT_WHITE3 +shirt_blue SHIRT_BLUE +bikini_red BIKINI_RED +shirt_hawaii SHIRT_HAWAII +china_red CHINA_RED +leather_red LEATHER_RED +chunli CHUNLI +shirt_white_yellow SHIRT_WHITE_YELLOW +shirt_check SHIRT_CHECK +jessica JESSICA + +slit_black SLIT_BLACK +leather_armour LEATHER_ARMOUR +leather_green LEATHER_GREEN +shirt_black SHIRT_BLACK +shirt_black_and_cloth SHIRT_BLACK_AND_CLOTH +shirt_black3 SHIRT_BLACK3 +leather2 LEATHER2 +coat_red COAT_RED +coat_black COAT_BLACK + +leather_armour2 LEATHER_ARMOUR2 +leather_armour3 LEATHER_ARMOUR3 +shirt_vest SHIRT_VEST +karate KARATE +karate2 KARATE2 +leather_heavy LEATHER_HEAVY +troll_hide TROLL_HIDE +green_chain GREEN_CHAIN +metal_blue METAL_BLUE +green_susp GREEN_SUSP +jacket2 JACKET2 +jacket3 JACKET3 +leather_stud LEATHER_STUD +jacket_stud JACKET_STUD +chainmail CHAINMAIL2 +half_plate HALF_PLATE +half_plate2 HALF_PLATE2 +half_plate3 HALF_PLATE3 +breast_black BREAST_BLACK +vest_red VEST_RED +vest_red2 VEST_RED2 +bplate_green BPLATE_GREEN +bplate_metal1 BPLATE_METAL1 +banded BANDED2 +banded2 SPLINT +armor_blue_gold +ringmail RINGMAIL +chainmail3 CHAINMAIL +plate_and_cloth PLATE_AND_CLOTH +plate_and_cloth2 PLATE_AND_CLOTH2 +scalemail SCALEMAIL2 +scalemail2 SCALEMAIL +leather_metal BANDED +plate PLATE2 +plate2 PLATE +plate_black PLATE_BLACK +crystal_plate CRYSTAL_PLATE +armor_mummy ARMOR_MUMMY + +##cloth_u_sail SAILOR +dragonsc_green DRAGONSC_GREEN +dragonsc_white DRAGONSC_WHITE +dragonsc_magenta DRAGONSC_MAGENTA +dragonsc_cyan DRAGONSC_CYAN +dragonsc_brown DRAGONSC_BROWN +dragonsc_blue DRAGONSC_BLUE +dragonsc_gold DRAGONSC_GOLD +dragonarm_green DRAGONARM_GREEN +dragonarm_white DRAGONARM_WHITE +dragonarm_magenta DRAGONARM_MAGENTA +dragonarm_cyan DRAGONARM_CYAN +dragonarm_brown DRAGONARM_BROWN +dragonarm_blue DRAGONARM_BLUE +dragonarm_gold DRAGONARM_GOLD + +aragorn ARAGORN +aragorn2 ARAGORN2 +boromir BOROMIR +frodo FRODO +gimli GIMLI +legolas LEGOLAS +merry MERRY +pipin PIPIN +gil-galad +isildur +pj PJ +sam SAM +vanhel1 + +edison EDISON +lears_chain_mail LEARS_CHAIN_MAIL +robe_of_night ROBE_OF_NIGHT +%end + + +### Arms +%parts_ctg ARM +%parts_wx 32 +%parts_wy 16 +%parts_ox 0 +%parts_oy 8 +%sdir player/arm +glove_red GLOVE_RED +glove_gray GLOVE_GRAY +glove_white GLOVE_WHITE +glove_blue GLOVE_BLUE +glove_black GLOVE_BLACK +glove_orange GLOVE_ORANGE +glove_brown GLOVE_BROWN +glove_black2 GLOVE_BLACK2 +glove_grayfist GLOVE_GRAYFIST +glove_purple GLOVE_PURPLE +glove_wrist_purple GLOVE_WRIST_PURPLE +glove_chunli GLOVE_CHUNLI +gauntlet_blue GAUNTLET_BLUE +glove_gold GLOVE_GOLD +glove_short_yellow GLOVE_SHORT_YELLOW +glove_short_red GLOVE_SHORT_RED +glove_short_white GLOVE_SHORT_WHITE +glove_short_green GLOVE_SHORT_GREEN +glove_short_blue GLOVE_SHORT_BLUE +glove_short_gray GLOVE_SHORT_GRAY +claws CLAWS +%end + +# Hand 1 +%parts_ctg HAND1 +%parts_wx 16 +%parts_wy 32 +%parts_ox 0 +%parts_oy 0 +%sdir player/hand1 + +# blades +dagger DAGGER +dagger_slant DAGGER_SLANT +short_sword SHORT_SWORD +short_sword_slant SHORT_SWORD_SLANT +short_sword2 SHORT_SWORD2 +sword_thief SWORD_THIEF +long_sword LONG_SWORD +long_sword_slant LONG_SWORD_SLANT +blessed_blade BLESSED_BLADE +great_sword GREAT_SWORD +great_sword_slant GREAT_SWORD_SLANT +katana KATANA +katana_slant KATANA_SLANT +scimitar SCIMITAR +falchion FALCHION +double_sword DOUBLE_SWORD +triple_sword TRIPLE_SWORD +sword2 SWORD2 +sword_tri SWORD_TRI +broadsword BROADSWORD +black_sword BLACK_SWORD +sword_black SWORD_BLACK +sword_twist SWORD_TWIST +knife KNIFE +sword_seven SWORD_SEVEN +heavy_sword HEAVY_SWORD +sabre SABRE +sword3 SWORD3 +sword_breaker SWORD_BREAKER +sword_jag SWORD_JAG +###Artifacts +bloodbane BLOODBANE +chilly_death CHILLY_DEATH +doom_knight DOOM_KNIGHT +flaming_death FLAMING_DEATH +leech LEECH +morg MORG +plutonium_sword PLUTONIUM_SWORD +jihad JIHAD +singing_sword SINGING_SWORD +zonguldrok ZONGULDROK + +## blunt +club CLUB +club_slant CLUB_SLANT +club2 CLUB2 +club3 CLUB3 +stick STICK +giant_club GIANT_CLUB +giant_club_slant GIANT_CLUB_SLANT +giant_club_spike GIANT_CLUB_SPIKE +giant_club_spike_slant GIANT_CLUB_SPIKE_SLANT +whip WHIP +sceptre SCEPTRE +mace MACE2 +mace3 MACE +mace2 GREAT_MACE +mace_ruby MACE_RUBY +morningstar MORNINGSTAR2 +morningstar2 MORNINGSTAR +eveningstar EVENINGSTAR +large_mace LARGE_MACE +black_whip BLACK_WHIP +hammer3 HAMMER +hammer HAMMER1 +hammer2 HAMMER2 +frail_stick FRAIL_STICK +frail_ball FRAIL +frail_spike SPIKED_FRAIL +frail_stick_slant GREAT_FRAIL +frail_ball2 FRAIL_BALL2 +frail_balls FRAIL_BALLS +frail_ball3 FRAIL_BALL3 +frail_ball4 FRAIL_BALL4 +nunchaku NUNCHAKU +mace_of_variability MACE_OF_VARIABILITY + +## polearms +spear1 SPEAR +spear2 SPEAR2 +spear3 SPEAR3 +spear4 SPEAR4 +spear5 SPEAR5 +hook HOOK +halberd HALBERD +pick_axe PICK_AXE +trident TRIDENT +trident_demon DEMON_TRIDENT +trident_elec TRIDENT_ELEC +trident2 TRIDENT2 +trident3 TRIDENT3 +lance LANCE +lance2 LANCE2 +scythe SCYTHE +scythe_slant SCYTHE_SLANT +pike PIKE +quarterstaff1 QUARTERSTAFF1 +quarterstaff2 QUARTERSTAFF2 +quarterstaff3 QUARTERSTAFF3 +quarterstaff4 QUARTERSTAFF4 +sickle SICKLE +glaive GLAIVE +glaive2 GLAIVE2 +glaive3 GLAIVE3 +d_glaive D_GLAIVE +pole_forked POLE_FORKED +fork2 FORK2 +glaive_of_prune GLAIVE_OF_PRUNE +voodoo VOODOO +finisher FINISHER + +## staves +staff_skull STAFF_SKULL + +staff_mage STAFF_MAGE +staff_mage2 STAFF_MAGE2 +great_staff GREAT_STAFF +staff_evil STAFF_EVIL +staff_ring_blue STAFF_RING_BLUE +staff_mummy STAFF_MUMMY +staff_fork STAFF_FORK +staff_ruby STAFF_RUBY +staff_large STAFF_LARGE +elemental_staff ELEMENTAL_STAFF +asmodeus ASMODEUS +dispater DISPATER +olgreb OLGREB + +## axes +axe_small AXE_SMALL +hand_axe HAND_AXE +war_axe WAR_AXE +great_axe BROAD_AXE +axe BATTLEAXE +axe_executioner EXECUTIONERS_AXE +axe_double AXE_DOUBLE +axe_blood AXE_BLOOD +axe_short AXE_SHORT +axe_trog AXE_TROG +arga ARGA + +## launchers +sling SLING +bow BOW +bow2 BOW2 +bow3 BOW3 +great_bow GREAT_BOW +bow_blue BOW_BLUE +crossbow CROSSBOW +crossbow2 CROSSBOW2 +crossbow3 CROSSBOW3 +crossbow4 CROSSBOW4 +blowgun BLOWGUN +punk PUNK +sniper SNIPER +crossbow_fire FIERY_DEVIL +krishna KRISHNA + +##missiles +dirt DIRT + +## misc +bone_lantern BONE_LANTERN +fan FAN +bottle BOTTLE +box BOX +crystal CRYSTAL +deck DECK +disc DISC +horn HORN +lantern LANTERN +orb ORB +stone STONE + +fire_red FIRE_RED +fire_blue FIRE_BLUE +skull SKULL +head HEAD +fire_green FIRE_GREEN +fire_cyan FIRE_CYAN +fire_white FIRE_WHITE +light_blue LIGHT_BLUE +light_red LIGHT_RED +light_yellow LIGHT_YELLOW +spark SPARK +fire_dark FIRE_DARK +fire_white2 FIRE_WHITE2 + +## lotr +aragorn ARAGORN +arwen ARWEN +boromir BOROMIR +frodo FRODO +gandalf GANDALF +gimli GIMLI +legolas LEGOLAS +saruman SARUMAN + +bladehands BLADEHAND +%end + +### Hand 2 +%parts_ctg HAND2 +%parts_wx 16 +%parts_wy 32 +%parts_ox 16 +%parts_oy 0 +%sdir player/hand2 + +shield_round_small SHIELD_ROUND_SMALL +shield_round_small2 SHIELD_ROUND_SMALL2 +bullseye BULLSEYE + +shield_middle_round SHIELD_MIDDLE_ROUND +shield_skull SHIELD_SKULL +shield_round_white SHIELD_ROUND_WHITE +boromir BOROMIR +shield_round1 SHIELD_ROUND1 +shield_round2 SHIELD_ROUND2 +shield_round3 SHIELD_ROUND3 +shield_round4 SHIELD_ROUND4 +shield_round5 SHIELD_ROUND5 +shield_round6 SHIELD_ROUND6 +shield_round7 SHIELD_ROUND7 + +shield_knight_blue SHIELD_KNIGHT_BLUE +shield_knight_gray SHIELD_KNIGHT_GRAY +shield_knight_rw SHIELD_KNIGHT_RW +shield_middle_unicorn SHIELD_MIDDLE_UNICORN +shield_kite1 SHIELD_KITE1 +shield_kite2 SHIELD_KITE2 +shield_kite3 SHIELD_KITE3 +shield_kite4 SHIELD_KITE4 + +shield_long_red SHIELD_LONG_RED +shield_middle_gray SHIELD_MIDDLE_GRAY +shield_diamond_yellow SHIELD_DIAMOND_YELLOW +shield_middle_brown SHIELD_MIDDLE_BROWN +shield_middle_black SHIELD_MIDDLE_BLACK +shield_middle_cyan SHIELD_MIDDLE_CYAN +shield_middle_ethn SHIELD_MIDDLE_ETHN +shield_long_cross SHIELD_LONG_CROSS +shield_shaman SHIELD_SHAMAN +shield_of_resistance SHIELD_OF_RESISTANCE +gil-galad + +book_black BOOK_BLACK +book_blue BOOK_BLUE +book_red BOOK_RED +book_magenta BOOK_MAGENTA +book_green BOOK_GREEN +book_cyan BOOK_CYAN +book_yellow BOOK_YELLOW +book_white BOOK_WHITE +book_sky BOOK_SKY +book_blue_dim BOOK_BLUE_DIM +book_cyan_dim BOOK_CYAN_DIM +book_green_dim BOOK_GREEN_DIM +book_magenta_dim BOOK_MAGENTA_DIM +book_red_dim BOOK_RED_DIM +book_yellow_dim BOOK_YELLOW_DIM + +fire_green FIRE_GREEN +fire_cyan FIRE_CYAN +fire_white FIRE_WHITE +light_blue LIGHT_BLUE +light_red LIGHT_RED +light_yellow LIGHT_YELLOW +spark SPARK +fire_dark FIRE_DARK +fire_white2 FIRE_WHITE2 +lantern LANTERN +torch TORCH +pj PJ +torsh2 TORCH2 + +bladehands BLADEHAND +dagger DAGGER +sabre SABRE +short_sword_slant SHORT_SWORD_SLANT +%end + +###Hair +%parts_ctg HAIR +%parts_wx 16 +%parts_wy 16 +%parts_ox 8 +%parts_oy 0 +%sdir player/hair +short_black SHORT_BLACK +short_red SHORT_RED +short_yellow SHORT_YELLOW +short_white SHORT_WHITE +long_black LONG_BLACK +long_red LONG_RED +long_yellow LONG_YELLOW +long_white LONG_WHITE +fem_black FEM_BLACK +fem_red FEM_RED +fem_yellow FEM_YELLOW +fem_white FEM_WHITE +elf_black ELF_BLACK +elf_red ELF_RED +elf_yellow ELF_YELLOW +elf_white ELF_WHITE +aragorn ARAGORN +arwen ARWEN +boromir BOROMIR +frodo FRODO +legolas LEGOLAS +merry MERRY +pj PJ +sam SAM +pigtail_red PIGTAIL_RED +brown1 BROWN1 +brown2 BROWN2 +%end + +###Beard +%parts_ctg BEARD +%parts_wx 16 +%parts_wy 16 +%parts_ox 8 +%parts_oy 0 +%sdir player/beard + +short_black SHORT_BLACK +short_red SHORT_RED +short_yellow SHORT_YELLOW +short_white SHORT_WHITE +long_black LONG_BLACK +long_red LONG_RED +long_yellow LONG_YELLOW +long_white LONG_WHITE +pj PJ +%end + +###Helms +%parts_ctg HELM +%parts_wx 16 +%parts_wy 16 +%parts_ox 8 +%parts_oy 0 +%sdir player/head + +cone_blue HAT_OFS +cone_red CORN_RED +straw STRAW +wizard_blue WIZARD_BLUE +cap_blue CAP_BLUE +bandana_ybrown BANDANA_YBROWN +hat_black HAT_BLACK +gandalf GANDALF +crown_gold +cap_black1 +clown1 +feather_green FEATHER_GREEN +feather_red FEATHER_RED +feather_blue FEATHER_BLUE +feather_yellow FEATHER_YELLOW +feather_white FEATHER_WHITE +band_white +band_red +band_yellow +band_blue +band_magenta +taiso_blue +taiso_magenta +taiso_yellow +taiso_red +taiso_white +dyrovepreva DYROVEPREVA +wizard_purple WIZARD_PURPLE +wizard_bluegreen WIZARD_BLUEGREEN +wizard_darkgreen WIZARD_DARKGREEN +wizard_brown WIZARD_BROWN +wizard_blackgold WIZARD_BLACKGOLD +wizard_blackred WIZARD_BLACKRED +wizard_red WIZARD_RED +wizard_white WIZARD_WHITE +turban_white TURBAN_WHITE +turban_brown TURBAN_BROWN +turban_purple TURBAN_PURPLE + +horns1 HORNS1 +horns2 HORNS2 +horns3 HORNS3 + +iron1 HELM_OFS +helm_red HELM_RED +horned HELM_HORNED +helm_gimli HELM_GIMLI +helm_green HELM_GREEN +cheek_red +iron_red IRON_RED +blue_horn_gold BLUE_HORN_GOLD +hood_white WHITE + +yellow_wing YELLOW_WING +brown_gold BROWN_GOLD +black_horn BLACK_HORN +full_gold FULL_GOLD +chain CHAIN + +black_horn2 FHELM_OFS +full_black FHELM_BLACK +horn_gray FHELM_HORN_GRAY +iron2 FHELM_GRAY +iron3 FHELM_GRAY2 +fhelm_gray3 FHELM_GRAY3 +fhelm_horn_yellow FHELM_HORN_YELLOW +fhelm_horn2 FHELM_HORN2 +horn_evil FHELM_EVIL +helm_plume FHELM_PLUME +mummy FHELM_MUMMY +isildur FHELM_ISILDUR +art_dragonhelm ART_DRAGONHELM + +healer FHELM_HEALER +hood_gray HOOD_GRAY +hood_red HOOD_RED +hood_green2 HOOD_GREEN2 +hood_cyan HOOD_CYAN +hood_orange HOOD_ORANGE +hood_red2 HOOD_RED2 +hood_black2 HOOD_BLACK2 +hood_white2 HOOD_WHITE2 +hood_ybrown HOOD_YBROWN +hood_green HOOD_GREEN +ninja_black MASK_NINJA_BLACK +%end + +%parts_ctg DRCWING +%parts_wx 32 +%parts_wy 16 +%parts_ox 0 +%parts_oy 0 +%sdir player/drcwing +drcwing_brown BROWN +drcwing_black BLACK +drcwing_yellow YELLOW +drcwing_grey GREY +drcwing_green GREEN +drcwing_mottled MOTTLED +drcwing_pale PALE +drcwing_purple PURPLE +drcwing_red RED +drcwing_white WHITE +%end + +%parts_ctg DRCHEAD +%parts_wx 16 +%parts_wy 16 +%parts_ox 8 +%parts_oy 0 +%sdir player/drchead +drchead_brown BROWN +drchead_black BLACK +drchead_yellow YELLOW +drchead_grey GREY +drchead_green GREEN +drchead_mottled MOTTLED +drchead_pale PALE +drchead_purple PURPLE +drchead_red RED +drchead_white WHITE +%end diff --git a/crawl-ref/source/rltiles/dc-urand.txt b/crawl-ref/source/rltiles/dc-urand.txt new file mode 100644 index 0000000000..c740c58e31 --- /dev/null +++ b/crawl-ref/source/rltiles/dc-urand.txt @@ -0,0 +1,54 @@ +%sdir item +weapon/urand_bloodbane URAND_BLOODBANE +weapon/urand_fkaming_death URAND_FLAMING_DEATH +weapon/urand_brilliance URAND_BRILLIANCE +weapon/urand_leech URAND_LEECH +weapon/urand_chilly_death URAND_CHILLY_DEATH +weapon/urand_morg URAND_MORG +weapon/urand_finisher URAND_FINISHER +weapon/urand_punk URAND_PUNK +weapon/urand_krishna URAND_KRISHNA +weapon/urand_skullcrusher URAND_SKULLCRUSHER +weapon/urand_guard URAND_GUARD +weapon/urand_jihad URAND_JIHAD +weapon/urand_fiery_devil URAND_FIERY_DEVIL +weapon/urand_doom_knight URAND_DOOM_KNIGHT +weapon/urand_eos URAND_EOS +weapon/urand_voo_doo URAND_VOO_DOO +weapon/urand_octopus_king URAND_OCTOPUS_KING +weapon/urand_arga URAND_ARGA +weapon/urand_elemental URAND_ELEMENTAL +weapon/urand_sniper URAND_SNIPER +weapon/urand_erchidel URAND_ERCHIDEL +weapon/urand_plutonium URAND_PLUTONIUM +weapon/urand_undeadhunter URAND_UNDERADHUNTER +weapon/urand_blowgun URAND_BLOWGUN +armor/urand_ignorance URAND_IGNORANCE +armor/urand_zin URAND_ZIN +armor/urand_augmentation URAND_AUGMENTATION +armor/urand_thief URAND_THIEF +armor/urand_bullseye URAND_BULLSEYE +armor/urand_dyrovepreva URAND_DYROVEPREVA +armor/urand_misfortune URAND_MISFORTUNE +armor/urand_flash URAND_FLASH +armor/urand_assassin URAND_ASSASSIN +armor/urand_lear URAND_LEAR +armor/urand_zhor URAND_ZHOR +armor/urand_salamander URAND_SALAMANDER +armor/urand_war URAND_WAR +armor/urand_resistance URAND_RESISTANCE +armor/urand_folly URAND_FOLLY +armor/urand_edison URAND_EDISON +armor/urand_dragonmask URAND_DRAGONMASK +armor/urand_night URAND_NIGHT +armor/urand_dragon_king URAND_DRAGON_KING +armor/urand_alchemist URAND_ALCHEMIST +armor/urand_fencer URAND_FENCER +ring/urand_shadows URAND_SHADOWS +ring/urand_shaolin URAND_SHAOLIN +ring/urand_robustness URAND_ROBUSTNESS +ring/urand_mage URAND_MAGE +amulet/urand_cekugob URAND_CEKUGOB +amulet/urand_four_winds URAND_FOUR_WINDS +amulet/urand_bloodlust URAND_BLOODLUST + diff --git a/crawl-ref/source/rltiles/dc-wall2d.txt b/crawl-ref/source/rltiles/dc-wall2d.txt new file mode 100644 index 0000000000..8bd4e80c55 --- /dev/null +++ b/crawl-ref/source/rltiles/dc-wall2d.txt @@ -0,0 +1,289 @@ +%enumprefix W2D_ +%tiledef tiledef-w2d.h +%tilecount tilecount-w2d.h +%width 16 +%back none +%name wall2d + +%sdir dc-dngn + +wall/brick_brown0 WALL_NORMAL +wall/brick_brown1 +wall/brick_brown2 +wall/brick_brown3 +floor/pebble_gray0 FLOOR_NORMAL +floor/pebble_gray1 +floor/pebble_gray2 +floor/pebble_gray3 +floor/pebble_gray4 + +wall/relief0 WALL_HALL +wall/relief1 +wall/relief2 +wall/relief3 +floor/mesh0 FLOOR_HALL +floor/mesh1 +floor/mesh2 +floor/mesh3 + +wall/hive0 WALL_HIVE +wall/hive1 +wall/hive2 +wall/hive3 +floor/hive0 FLOOR_HIVE +floor/hive1 +floor/hive2 +floor/hive3 + +wall/ice0 WALL_ICE +wall/ice1 +wall/ice2 +wall/ice3 +floor/ice0 FLOOR_ICE +floor/ice1 +floor/ice2 +floor/ice3 + +wall/lair0 WALL_LAIR +wall/lair1 +wall/lair2 +wall/lair3 +floor/lair0 FLOOR_LAIR +floor/lair1 +floor/lair2 +floor/lair3 + +## orcs don't have their own floor or walls yet... +wall/lair0 WALL_ORC +wall/lair1 +wall/lair2 +wall/lair3 +floor/hive0 FLOOR_ORC +floor/hive1 +floor/hive2 +floor/hive3 + +wall/slime0 WALL_SLIME +wall/slime1 +wall/slime2 +wall/slime3 +floor/bog_green0 FLOOR_SLIME +floor/bog_green1 +floor/bog_green2 +floor/bog_green3 + +wall/snake0 WALL_SNAKE +wall/snake1 +wall/snake2 +wall/snake3 +floor/snake0 FLOOR_SNAKE +floor/snake1 +floor/snake2 +floor/snake3 + +## swamp also doesn't have any unique walls... +wall/lair0 WALL_SWAMP +wall/lair1 +wall/lair2 +wall/lair3 +floor/swamp0 FLOOR_SWAMP +floor/swamp1 +floor/swamp2 +floor/swamp3 + +wall/tomb0 WALL_TOMB +wall/tomb1 +wall/tomb2 +wall/tomb3 +floor/tomb0 FLOOR_TOMB +floor/tomb1 +floor/tomb2 +floor/tomb3 + +wall/undead0 WALL_UNDEAD +wall/undead1 +wall/undead2 +wall/undead3 +floor/tomb0 FLOOR_UNDEAD +floor/tomb1 +floor/tomb2 +floor/tomb3 + +wall/vault0 WALL_VAULT +wall/vault1 +wall/vault2 +wall/vault3 +floor/rect_gray0 FLOOR_VAULT +floor/rect_gray1 +floor/rect_gray2 +floor/rect_gray3 + +wall/zot_blue0 WALL_ZOT_BLUE +wall/zot_blue1 +wall/zot_blue2 +wall/zot_blue3 +floor/tomb0 FLOOR_ZOT_BLUE +floor/tomb1 +floor/tomb2 +floor/tomb3 + +wall/zot_cyan0 WALL_ZOT_CYAN +wall/zot_cyan1 +wall/zot_cyan2 +wall/zot_cyan3 +floor/tomb0 FLOOR_ZOT_CYAN +floor/tomb1 +floor/tomb2 +floor/tomb3 + +wall/zot_gray0 WALL_ZOT_GRAY +wall/zot_gray1 +wall/zot_gray2 +wall/zot_gray3 +floor/tomb0 FLOOR_ZOT_GRAY +floor/tomb1 +floor/tomb2 +floor/tomb3 + +wall/zot_green0 WALL_ZOT_GREEN +wall/zot_green1 +wall/zot_green2 +wall/zot_green3 +floor/tomb0 FLOOR_ZOT_GREEN +floor/tomb1 +floor/tomb2 +floor/tomb3 + +wall/zot_magenta0 WALL_ZOT_MAGENTA +wall/zot_magenta1 +wall/zot_magenta2 +wall/zot_magenta3 +floor/tomb0 FLOOR_ZOT_MAGENTA +floor/tomb1 +floor/tomb2 +floor/tomb3 + +wall/zot_red0 WALL_ZOT_RED +wall/zot_red1 +wall/zot_red2 +wall/zot_red3 +floor/tomb0 FLOOR_ZOT_RED +floor/tomb1 +floor/tomb2 +floor/tomb3 + +wall/zot_yellow0 WALL_ZOT_YELLOW +wall/zot_yellow1 +wall/zot_yellow2 +wall/zot_yellow3 +floor/tomb0 FLOOR_ZOT_YELLOW +floor/tomb1 +floor/tomb2 +floor/tomb3 + +wall/brick_gray0 WALL_BAZAAR_GRAY +wall/brick_gray1 +wall/brick_gray2 +wall/brick_gray3 + +wall/stone_gray0 WALL_BAZAAR_STONE +wall/stone_gray1 +wall/stone_gray2 +wall/stone_gray3 + +floor/grass0 FLOOR_BAZAAR_GRASS +floor/grass1 +floor/grass2 + +floor/grass_n FLOOR_BAZAAR_GRASS1_SPECIAL +floor/grass_ne +floor/grass_e +floor/grass_se +floor/grass_s +floor/grass_sw +floor/grass_w +floor/grass_nw +floor/grass_full + +%start +%compose floor/grass0 +%compose floor/pedestal_n +%finish FLOOR_BAZAAR_GRASS2_SPECIAL +%start +%compose floor/grass1 +%compose floor/pedestal_ne +%finish +%start +%compose floor/grass2 +%compose floor/pedestal_e +%finish +%start +%compose floor/grass1 +%compose floor/pedestal_se +%finish +%start +%compose floor/grass0 +%compose floor/pedestal_s +%finish +%start +%compose floor/grass1 +%compose floor/pedestal_sw +%finish +%start +%compose floor/grass2 +%compose floor/pedestal_w +%finish +%start +%compose floor/grass0 +%compose floor/pedestal_nw +%finish +floor/pedestal_full + +%start +%compose floor/rect_gray0 +%compose floor/pedestal_n +%finish FLOOR_BAZAAR_VAULT_SPECIAL +%start +%compose floor/rect_gray1 +%compose floor/pedestal_ne +%finish +%start +%compose floor/rect_gray2 +%compose floor/pedestal_e +%finish +%start +%compose floor/rect_gray3 +%compose floor/pedestal_se +%finish +%start +%compose floor/rect_gray2 +%compose floor/pedestal_s +%finish +%start +%compose floor/rect_gray1 +%compose floor/pedestal_sw +%finish +%start +%compose floor/rect_gray0 +%compose floor/pedestal_w +%finish +%start +%compose floor/rect_gray3 +%compose floor/pedestal_nw +%finish +floor/pedestal_full + +floor/dirt0 FLOOR_BAZAAR_DIRT +floor/dirt1 +floor/dirt2 + +floor/dirt_n FLOOR_BAZAAR_DIRT_SPECIAL +floor/dirt_ne +floor/dirt_e +floor/dirt_se +floor/dirt_s +floor/dirt_sw +floor/dirt_w +floor/dirt_nw +floor/dirt_full + diff --git a/crawl-ref/source/rltiles/effect/acid_venom.bmp b/crawl-ref/source/rltiles/effect/acid_venom.bmp new file mode 100644 index 0000000000..c6e842bd4a Binary files /dev/null and b/crawl-ref/source/rltiles/effect/acid_venom.bmp differ diff --git a/crawl-ref/source/rltiles/effect/arrow0.bmp b/crawl-ref/source/rltiles/effect/arrow0.bmp new file mode 100644 index 0000000000..071ba37ff0 Binary files /dev/null and b/crawl-ref/source/rltiles/effect/arrow0.bmp differ diff --git a/crawl-ref/source/rltiles/effect/arrow1.bmp b/crawl-ref/source/rltiles/effect/arrow1.bmp new file mode 100644 index 0000000000..f2c1b620b6 Binary files /dev/null and b/crawl-ref/source/rltiles/effect/arrow1.bmp differ diff --git a/crawl-ref/source/rltiles/effect/arrow2.bmp b/crawl-ref/source/rltiles/effect/arrow2.bmp new file mode 100644 index 0000000000..16fc28effd Binary files /dev/null and b/crawl-ref/source/rltiles/effect/arrow2.bmp differ diff --git a/crawl-ref/source/rltiles/effect/arrow3.bmp b/crawl-ref/source/rltiles/effect/arrow3.bmp new file mode 100644 index 0000000000..98594ff143 Binary files /dev/null and b/crawl-ref/source/rltiles/effect/arrow3.bmp differ diff --git a/crawl-ref/source/rltiles/effect/arrow4.bmp b/crawl-ref/source/rltiles/effect/arrow4.bmp new file mode 100644 index 0000000000..f9f370de6e Binary files /dev/null and b/crawl-ref/source/rltiles/effect/arrow4.bmp differ diff --git a/crawl-ref/source/rltiles/effect/arrow5.bmp b/crawl-ref/source/rltiles/effect/arrow5.bmp new file mode 100644 index 0000000000..67df1f6f1f Binary files /dev/null and b/crawl-ref/source/rltiles/effect/arrow5.bmp differ diff --git a/crawl-ref/source/rltiles/effect/arrow6.bmp b/crawl-ref/source/rltiles/effect/arrow6.bmp new file mode 100644 index 0000000000..4566683dc3 Binary files /dev/null and b/crawl-ref/source/rltiles/effect/arrow6.bmp differ diff --git a/crawl-ref/source/rltiles/effect/arrow7.bmp b/crawl-ref/source/rltiles/effect/arrow7.bmp new file mode 100644 index 0000000000..4ba1a3df81 Binary files /dev/null and b/crawl-ref/source/rltiles/effect/arrow7.bmp differ diff --git a/crawl-ref/source/rltiles/effect/blinding_venom.bmp b/crawl-ref/source/rltiles/effect/blinding_venom.bmp new file mode 100644 index 0000000000..771cbf7cf4 Binary files /dev/null and b/crawl-ref/source/rltiles/effect/blinding_venom.bmp differ diff --git a/crawl-ref/source/rltiles/effect/bolt0.bmp b/crawl-ref/source/rltiles/effect/bolt0.bmp new file mode 100644 index 0000000000..e05d1f46ee Binary files /dev/null and b/crawl-ref/source/rltiles/effect/bolt0.bmp differ diff --git a/crawl-ref/source/rltiles/effect/bolt01.bmp b/crawl-ref/source/rltiles/effect/bolt01.bmp new file mode 100644 index 0000000000..55daf563d1 Binary files /dev/null and b/crawl-ref/source/rltiles/effect/bolt01.bmp differ diff --git a/crawl-ref/source/rltiles/effect/bolt02.bmp b/crawl-ref/source/rltiles/effect/bolt02.bmp new file mode 100644 index 0000000000..5513aee39f Binary files /dev/null and b/crawl-ref/source/rltiles/effect/bolt02.bmp differ diff --git a/crawl-ref/source/rltiles/effect/bolt03.bmp b/crawl-ref/source/rltiles/effect/bolt03.bmp new file mode 100644 index 0000000000..97d089c4ce Binary files /dev/null and b/crawl-ref/source/rltiles/effect/bolt03.bmp differ diff --git a/crawl-ref/source/rltiles/effect/bolt04.bmp b/crawl-ref/source/rltiles/effect/bolt04.bmp new file mode 100644 index 0000000000..2e097e0dd5 Binary files /dev/null and b/crawl-ref/source/rltiles/effect/bolt04.bmp differ diff --git a/crawl-ref/source/rltiles/effect/bolt05.bmp b/crawl-ref/source/rltiles/effect/bolt05.bmp new file mode 100644 index 0000000000..c929a3657e Binary files /dev/null and b/crawl-ref/source/rltiles/effect/bolt05.bmp differ diff --git a/crawl-ref/source/rltiles/effect/bolt06.bmp b/crawl-ref/source/rltiles/effect/bolt06.bmp new file mode 100644 index 0000000000..1b087b9ff9 Binary files /dev/null and b/crawl-ref/source/rltiles/effect/bolt06.bmp differ diff --git a/crawl-ref/source/rltiles/effect/bolt07.bmp b/crawl-ref/source/rltiles/effect/bolt07.bmp new file mode 100644 index 0000000000..9647045359 Binary files /dev/null and b/crawl-ref/source/rltiles/effect/bolt07.bmp differ diff --git a/crawl-ref/source/rltiles/effect/bolt08.bmp b/crawl-ref/source/rltiles/effect/bolt08.bmp new file mode 100644 index 0000000000..a897d2e7f8 Binary files /dev/null and b/crawl-ref/source/rltiles/effect/bolt08.bmp differ diff --git a/crawl-ref/source/rltiles/effect/bolt1.bmp b/crawl-ref/source/rltiles/effect/bolt1.bmp new file mode 100644 index 0000000000..c080c65bb5 Binary files /dev/null and b/crawl-ref/source/rltiles/effect/bolt1.bmp differ diff --git a/crawl-ref/source/rltiles/effect/bolt2.bmp b/crawl-ref/source/rltiles/effect/bolt2.bmp new file mode 100644 index 0000000000..905041f838 Binary files /dev/null and b/crawl-ref/source/rltiles/effect/bolt2.bmp differ diff --git a/crawl-ref/source/rltiles/effect/bolt3.bmp b/crawl-ref/source/rltiles/effect/bolt3.bmp new file mode 100644 index 0000000000..dc5789a21f Binary files /dev/null and b/crawl-ref/source/rltiles/effect/bolt3.bmp differ diff --git a/crawl-ref/source/rltiles/effect/bolt4.bmp b/crawl-ref/source/rltiles/effect/bolt4.bmp new file mode 100644 index 0000000000..ffc3976d29 Binary files /dev/null and b/crawl-ref/source/rltiles/effect/bolt4.bmp differ diff --git a/crawl-ref/source/rltiles/effect/bolt5.bmp b/crawl-ref/source/rltiles/effect/bolt5.bmp new file mode 100644 index 0000000000..cc13ce8043 Binary files /dev/null and b/crawl-ref/source/rltiles/effect/bolt5.bmp differ diff --git a/crawl-ref/source/rltiles/effect/bolt6.bmp b/crawl-ref/source/rltiles/effect/bolt6.bmp new file mode 100644 index 0000000000..d62eb71969 Binary files /dev/null and b/crawl-ref/source/rltiles/effect/bolt6.bmp differ diff --git a/crawl-ref/source/rltiles/effect/bolt7.bmp b/crawl-ref/source/rltiles/effect/bolt7.bmp new file mode 100644 index 0000000000..d2b8643758 Binary files /dev/null and b/crawl-ref/source/rltiles/effect/bolt7.bmp differ diff --git a/crawl-ref/source/rltiles/effect/boomerang1.bmp b/crawl-ref/source/rltiles/effect/boomerang1.bmp new file mode 100644 index 0000000000..c758e19efc Binary files /dev/null and b/crawl-ref/source/rltiles/effect/boomerang1.bmp differ diff --git a/crawl-ref/source/rltiles/effect/boomerang2.bmp b/crawl-ref/source/rltiles/effect/boomerang2.bmp new file mode 100644 index 0000000000..8c5909cd0f Binary files /dev/null and b/crawl-ref/source/rltiles/effect/boomerang2.bmp differ diff --git a/crawl-ref/source/rltiles/effect/cloud_black_smoke.bmp b/crawl-ref/source/rltiles/effect/cloud_black_smoke.bmp new file mode 100644 index 0000000000..5e6c6c46dd Binary files /dev/null and b/crawl-ref/source/rltiles/effect/cloud_black_smoke.bmp differ diff --git a/crawl-ref/source/rltiles/effect/cloud_blue_smoke.bmp b/crawl-ref/source/rltiles/effect/cloud_blue_smoke.bmp new file mode 100644 index 0000000000..3769a175c0 Binary files /dev/null and b/crawl-ref/source/rltiles/effect/cloud_blue_smoke.bmp differ diff --git a/crawl-ref/source/rltiles/effect/cloud_cold0.bmp b/crawl-ref/source/rltiles/effect/cloud_cold0.bmp new file mode 100644 index 0000000000..ba9330c446 Binary files /dev/null and b/crawl-ref/source/rltiles/effect/cloud_cold0.bmp differ diff --git a/crawl-ref/source/rltiles/effect/cloud_cold1.bmp b/crawl-ref/source/rltiles/effect/cloud_cold1.bmp new file mode 100644 index 0000000000..72cdfadeac Binary files /dev/null and b/crawl-ref/source/rltiles/effect/cloud_cold1.bmp differ diff --git a/crawl-ref/source/rltiles/effect/cloud_cold2.bmp b/crawl-ref/source/rltiles/effect/cloud_cold2.bmp new file mode 100644 index 0000000000..b8b51bff0e Binary files /dev/null and b/crawl-ref/source/rltiles/effect/cloud_cold2.bmp differ diff --git a/crawl-ref/source/rltiles/effect/cloud_fire0.bmp b/crawl-ref/source/rltiles/effect/cloud_fire0.bmp new file mode 100644 index 0000000000..94e723e806 Binary files /dev/null and b/crawl-ref/source/rltiles/effect/cloud_fire0.bmp differ diff --git a/crawl-ref/source/rltiles/effect/cloud_fire1.bmp b/crawl-ref/source/rltiles/effect/cloud_fire1.bmp new file mode 100644 index 0000000000..3e639680b5 Binary files /dev/null and b/crawl-ref/source/rltiles/effect/cloud_fire1.bmp differ diff --git a/crawl-ref/source/rltiles/effect/cloud_fire2.bmp b/crawl-ref/source/rltiles/effect/cloud_fire2.bmp new file mode 100644 index 0000000000..97e08a3a17 Binary files /dev/null and b/crawl-ref/source/rltiles/effect/cloud_fire2.bmp differ diff --git a/crawl-ref/source/rltiles/effect/cloud_grey_smoke.bmp b/crawl-ref/source/rltiles/effect/cloud_grey_smoke.bmp new file mode 100644 index 0000000000..33aa3c3daa Binary files /dev/null and b/crawl-ref/source/rltiles/effect/cloud_grey_smoke.bmp differ diff --git a/crawl-ref/source/rltiles/effect/cloud_miasma.bmp b/crawl-ref/source/rltiles/effect/cloud_miasma.bmp new file mode 100644 index 0000000000..5e6c6c46dd Binary files /dev/null and b/crawl-ref/source/rltiles/effect/cloud_miasma.bmp differ diff --git a/crawl-ref/source/rltiles/effect/cloud_poison0.bmp b/crawl-ref/source/rltiles/effect/cloud_poison0.bmp new file mode 100644 index 0000000000..63771dc104 Binary files /dev/null and b/crawl-ref/source/rltiles/effect/cloud_poison0.bmp differ diff --git a/crawl-ref/source/rltiles/effect/cloud_poison1.bmp b/crawl-ref/source/rltiles/effect/cloud_poison1.bmp new file mode 100644 index 0000000000..480e6de98c Binary files /dev/null and b/crawl-ref/source/rltiles/effect/cloud_poison1.bmp differ diff --git a/crawl-ref/source/rltiles/effect/cloud_poison2.bmp b/crawl-ref/source/rltiles/effect/cloud_poison2.bmp new file mode 100644 index 0000000000..59dbb691ee Binary files /dev/null and b/crawl-ref/source/rltiles/effect/cloud_poison2.bmp differ diff --git a/crawl-ref/source/rltiles/effect/cloud_purp_smoke.bmp b/crawl-ref/source/rltiles/effect/cloud_purp_smoke.bmp new file mode 100644 index 0000000000..32479fcfac Binary files /dev/null and b/crawl-ref/source/rltiles/effect/cloud_purp_smoke.bmp differ diff --git a/crawl-ref/source/rltiles/effect/dart0.bmp b/crawl-ref/source/rltiles/effect/dart0.bmp new file mode 100644 index 0000000000..1f0e1f1ea3 Binary files /dev/null and b/crawl-ref/source/rltiles/effect/dart0.bmp differ diff --git a/crawl-ref/source/rltiles/effect/dart1.bmp b/crawl-ref/source/rltiles/effect/dart1.bmp new file mode 100644 index 0000000000..47dc11c8bf Binary files /dev/null and b/crawl-ref/source/rltiles/effect/dart1.bmp differ diff --git a/crawl-ref/source/rltiles/effect/dart2.bmp b/crawl-ref/source/rltiles/effect/dart2.bmp new file mode 100644 index 0000000000..d941c43127 Binary files /dev/null and b/crawl-ref/source/rltiles/effect/dart2.bmp differ diff --git a/crawl-ref/source/rltiles/effect/dart3.bmp b/crawl-ref/source/rltiles/effect/dart3.bmp new file mode 100644 index 0000000000..2cd72c17b3 Binary files /dev/null and b/crawl-ref/source/rltiles/effect/dart3.bmp differ diff --git a/crawl-ref/source/rltiles/effect/dart4.bmp b/crawl-ref/source/rltiles/effect/dart4.bmp new file mode 100644 index 0000000000..2779ff2f3a Binary files /dev/null and b/crawl-ref/source/rltiles/effect/dart4.bmp differ diff --git a/crawl-ref/source/rltiles/effect/dart5.bmp b/crawl-ref/source/rltiles/effect/dart5.bmp new file mode 100644 index 0000000000..5d6969a653 Binary files /dev/null and b/crawl-ref/source/rltiles/effect/dart5.bmp differ diff --git a/crawl-ref/source/rltiles/effect/dart6.bmp b/crawl-ref/source/rltiles/effect/dart6.bmp new file mode 100644 index 0000000000..f54b7ccd5f Binary files /dev/null and b/crawl-ref/source/rltiles/effect/dart6.bmp differ diff --git a/crawl-ref/source/rltiles/effect/dart7.bmp b/crawl-ref/source/rltiles/effect/dart7.bmp new file mode 100644 index 0000000000..24e5c77f8f Binary files /dev/null and b/crawl-ref/source/rltiles/effect/dart7.bmp differ diff --git a/crawl-ref/source/rltiles/effect/engulf1.bmp b/crawl-ref/source/rltiles/effect/engulf1.bmp new file mode 100644 index 0000000000..39e52d3308 Binary files /dev/null and b/crawl-ref/source/rltiles/effect/engulf1.bmp differ diff --git a/crawl-ref/source/rltiles/effect/engulf2.bmp b/crawl-ref/source/rltiles/effect/engulf2.bmp new file mode 100644 index 0000000000..16dfda8e46 Binary files /dev/null and b/crawl-ref/source/rltiles/effect/engulf2.bmp differ diff --git a/crawl-ref/source/rltiles/effect/engulf3.bmp b/crawl-ref/source/rltiles/effect/engulf3.bmp new file mode 100644 index 0000000000..f2074b740c Binary files /dev/null and b/crawl-ref/source/rltiles/effect/engulf3.bmp differ diff --git a/crawl-ref/source/rltiles/effect/engulf4.bmp b/crawl-ref/source/rltiles/effect/engulf4.bmp new file mode 100644 index 0000000000..69708b8a8f Binary files /dev/null and b/crawl-ref/source/rltiles/effect/engulf4.bmp differ diff --git a/crawl-ref/source/rltiles/effect/engulf5.bmp b/crawl-ref/source/rltiles/effect/engulf5.bmp new file mode 100644 index 0000000000..c8fc180693 Binary files /dev/null and b/crawl-ref/source/rltiles/effect/engulf5.bmp differ diff --git a/crawl-ref/source/rltiles/effect/engulf6.bmp b/crawl-ref/source/rltiles/effect/engulf6.bmp new file mode 100644 index 0000000000..734431820c Binary files /dev/null and b/crawl-ref/source/rltiles/effect/engulf6.bmp differ diff --git a/crawl-ref/source/rltiles/effect/engulf7.bmp b/crawl-ref/source/rltiles/effect/engulf7.bmp new file mode 100644 index 0000000000..b7c7eeafa6 Binary files /dev/null and b/crawl-ref/source/rltiles/effect/engulf7.bmp differ diff --git a/crawl-ref/source/rltiles/effect/engulf8.bmp b/crawl-ref/source/rltiles/effect/engulf8.bmp new file mode 100644 index 0000000000..ddd394c63d Binary files /dev/null and b/crawl-ref/source/rltiles/effect/engulf8.bmp differ diff --git a/crawl-ref/source/rltiles/effect/explode_black0.bmp b/crawl-ref/source/rltiles/effect/explode_black0.bmp new file mode 100644 index 0000000000..3776d2e2b5 Binary files /dev/null and b/crawl-ref/source/rltiles/effect/explode_black0.bmp differ diff --git a/crawl-ref/source/rltiles/effect/explode_black1.bmp b/crawl-ref/source/rltiles/effect/explode_black1.bmp new file mode 100644 index 0000000000..f314c1efed Binary files /dev/null and b/crawl-ref/source/rltiles/effect/explode_black1.bmp differ diff --git a/crawl-ref/source/rltiles/effect/explode_black2.bmp b/crawl-ref/source/rltiles/effect/explode_black2.bmp new file mode 100644 index 0000000000..43b2be1344 Binary files /dev/null and b/crawl-ref/source/rltiles/effect/explode_black2.bmp differ diff --git a/crawl-ref/source/rltiles/effect/explode_black3.bmp b/crawl-ref/source/rltiles/effect/explode_black3.bmp new file mode 100644 index 0000000000..7a36a9cdac Binary files /dev/null and b/crawl-ref/source/rltiles/effect/explode_black3.bmp differ diff --git a/crawl-ref/source/rltiles/effect/explode_black4.bmp b/crawl-ref/source/rltiles/effect/explode_black4.bmp new file mode 100644 index 0000000000..41c9ab36fd Binary files /dev/null and b/crawl-ref/source/rltiles/effect/explode_black4.bmp differ diff --git a/crawl-ref/source/rltiles/effect/explode_black5.bmp b/crawl-ref/source/rltiles/effect/explode_black5.bmp new file mode 100644 index 0000000000..ada35eff8b Binary files /dev/null and b/crawl-ref/source/rltiles/effect/explode_black5.bmp differ diff --git a/crawl-ref/source/rltiles/effect/explode_black6.bmp b/crawl-ref/source/rltiles/effect/explode_black6.bmp new file mode 100644 index 0000000000..b133a78f6a Binary files /dev/null and b/crawl-ref/source/rltiles/effect/explode_black6.bmp differ diff --git a/crawl-ref/source/rltiles/effect/explode_black7.bmp b/crawl-ref/source/rltiles/effect/explode_black7.bmp new file mode 100644 index 0000000000..927bd9d8e6 Binary files /dev/null and b/crawl-ref/source/rltiles/effect/explode_black7.bmp differ diff --git a/crawl-ref/source/rltiles/effect/explode_black8.bmp b/crawl-ref/source/rltiles/effect/explode_black8.bmp new file mode 100644 index 0000000000..b2d745f0ac Binary files /dev/null and b/crawl-ref/source/rltiles/effect/explode_black8.bmp differ diff --git a/crawl-ref/source/rltiles/effect/explode_blue0.bmp b/crawl-ref/source/rltiles/effect/explode_blue0.bmp new file mode 100644 index 0000000000..c051072daf Binary files /dev/null and b/crawl-ref/source/rltiles/effect/explode_blue0.bmp differ diff --git a/crawl-ref/source/rltiles/effect/explode_blue1.bmp b/crawl-ref/source/rltiles/effect/explode_blue1.bmp new file mode 100644 index 0000000000..7c5cc857de Binary files /dev/null and b/crawl-ref/source/rltiles/effect/explode_blue1.bmp differ diff --git a/crawl-ref/source/rltiles/effect/explode_blue2.bmp b/crawl-ref/source/rltiles/effect/explode_blue2.bmp new file mode 100644 index 0000000000..17564f732f Binary files /dev/null and b/crawl-ref/source/rltiles/effect/explode_blue2.bmp differ diff --git a/crawl-ref/source/rltiles/effect/explode_blue3.bmp b/crawl-ref/source/rltiles/effect/explode_blue3.bmp new file mode 100644 index 0000000000..3834b5f96a Binary files /dev/null and b/crawl-ref/source/rltiles/effect/explode_blue3.bmp differ diff --git a/crawl-ref/source/rltiles/effect/explode_blue4.bmp b/crawl-ref/source/rltiles/effect/explode_blue4.bmp new file mode 100644 index 0000000000..f2271b9f0b Binary files /dev/null and b/crawl-ref/source/rltiles/effect/explode_blue4.bmp differ diff --git a/crawl-ref/source/rltiles/effect/explode_blue5.bmp b/crawl-ref/source/rltiles/effect/explode_blue5.bmp new file mode 100644 index 0000000000..d7a085ecaa Binary files /dev/null and b/crawl-ref/source/rltiles/effect/explode_blue5.bmp differ diff --git a/crawl-ref/source/rltiles/effect/explode_blue6.bmp b/crawl-ref/source/rltiles/effect/explode_blue6.bmp new file mode 100644 index 0000000000..8956ed226e Binary files /dev/null and b/crawl-ref/source/rltiles/effect/explode_blue6.bmp differ diff --git a/crawl-ref/source/rltiles/effect/explode_blue7.bmp b/crawl-ref/source/rltiles/effect/explode_blue7.bmp new file mode 100644 index 0000000000..8ace9d4ca1 Binary files /dev/null and b/crawl-ref/source/rltiles/effect/explode_blue7.bmp differ diff --git a/crawl-ref/source/rltiles/effect/explode_blue8.bmp b/crawl-ref/source/rltiles/effect/explode_blue8.bmp new file mode 100644 index 0000000000..172dd18c8a Binary files /dev/null and b/crawl-ref/source/rltiles/effect/explode_blue8.bmp differ diff --git a/crawl-ref/source/rltiles/effect/explode_brown0.bmp b/crawl-ref/source/rltiles/effect/explode_brown0.bmp new file mode 100644 index 0000000000..cbdc9645c6 Binary files /dev/null and b/crawl-ref/source/rltiles/effect/explode_brown0.bmp differ diff --git a/crawl-ref/source/rltiles/effect/explode_brown1.bmp b/crawl-ref/source/rltiles/effect/explode_brown1.bmp new file mode 100644 index 0000000000..b285525086 Binary files /dev/null and b/crawl-ref/source/rltiles/effect/explode_brown1.bmp differ diff --git a/crawl-ref/source/rltiles/effect/explode_brown2.bmp b/crawl-ref/source/rltiles/effect/explode_brown2.bmp new file mode 100644 index 0000000000..a2792d0255 Binary files /dev/null and b/crawl-ref/source/rltiles/effect/explode_brown2.bmp differ diff --git a/crawl-ref/source/rltiles/effect/explode_brown3.bmp b/crawl-ref/source/rltiles/effect/explode_brown3.bmp new file mode 100644 index 0000000000..a1814ae7d6 Binary files /dev/null and b/crawl-ref/source/rltiles/effect/explode_brown3.bmp differ diff --git a/crawl-ref/source/rltiles/effect/explode_brown4.bmp b/crawl-ref/source/rltiles/effect/explode_brown4.bmp new file mode 100644 index 0000000000..d8fa83906b Binary files /dev/null and b/crawl-ref/source/rltiles/effect/explode_brown4.bmp differ diff --git a/crawl-ref/source/rltiles/effect/explode_brown5.bmp b/crawl-ref/source/rltiles/effect/explode_brown5.bmp new file mode 100644 index 0000000000..63cca8152b Binary files /dev/null and b/crawl-ref/source/rltiles/effect/explode_brown5.bmp differ diff --git a/crawl-ref/source/rltiles/effect/explode_brown6.bmp b/crawl-ref/source/rltiles/effect/explode_brown6.bmp new file mode 100644 index 0000000000..d2c61bb035 Binary files /dev/null and b/crawl-ref/source/rltiles/effect/explode_brown6.bmp differ diff --git a/crawl-ref/source/rltiles/effect/explode_brown7.bmp b/crawl-ref/source/rltiles/effect/explode_brown7.bmp new file mode 100644 index 0000000000..9791eb56d0 Binary files /dev/null and b/crawl-ref/source/rltiles/effect/explode_brown7.bmp differ diff --git a/crawl-ref/source/rltiles/effect/explode_brown8.bmp b/crawl-ref/source/rltiles/effect/explode_brown8.bmp new file mode 100644 index 0000000000..df3f262d87 Binary files /dev/null and b/crawl-ref/source/rltiles/effect/explode_brown8.bmp differ diff --git a/crawl-ref/source/rltiles/effect/explode_darkblue0.bmp b/crawl-ref/source/rltiles/effect/explode_darkblue0.bmp new file mode 100644 index 0000000000..bed0ecd39f Binary files /dev/null and b/crawl-ref/source/rltiles/effect/explode_darkblue0.bmp differ diff --git a/crawl-ref/source/rltiles/effect/explode_darkblue1.bmp b/crawl-ref/source/rltiles/effect/explode_darkblue1.bmp new file mode 100644 index 0000000000..14ce8ccd9f Binary files /dev/null and b/crawl-ref/source/rltiles/effect/explode_darkblue1.bmp differ diff --git a/crawl-ref/source/rltiles/effect/explode_darkblue2.bmp b/crawl-ref/source/rltiles/effect/explode_darkblue2.bmp new file mode 100644 index 0000000000..e6d057b5ee Binary files /dev/null and b/crawl-ref/source/rltiles/effect/explode_darkblue2.bmp differ diff --git a/crawl-ref/source/rltiles/effect/explode_darkblue3.bmp b/crawl-ref/source/rltiles/effect/explode_darkblue3.bmp new file mode 100644 index 0000000000..6eeaaf9dbe Binary files /dev/null and b/crawl-ref/source/rltiles/effect/explode_darkblue3.bmp differ diff --git a/crawl-ref/source/rltiles/effect/explode_darkblue4.bmp b/crawl-ref/source/rltiles/effect/explode_darkblue4.bmp new file mode 100644 index 0000000000..3fd0b441a1 Binary files /dev/null and b/crawl-ref/source/rltiles/effect/explode_darkblue4.bmp differ diff --git a/crawl-ref/source/rltiles/effect/explode_darkblue5.bmp b/crawl-ref/source/rltiles/effect/explode_darkblue5.bmp new file mode 100644 index 0000000000..80646b95a3 Binary files /dev/null and b/crawl-ref/source/rltiles/effect/explode_darkblue5.bmp differ diff --git a/crawl-ref/source/rltiles/effect/explode_darkblue6.bmp b/crawl-ref/source/rltiles/effect/explode_darkblue6.bmp new file mode 100644 index 0000000000..023c55fb19 Binary files /dev/null and b/crawl-ref/source/rltiles/effect/explode_darkblue6.bmp differ diff --git a/crawl-ref/source/rltiles/effect/explode_darkblue7.bmp b/crawl-ref/source/rltiles/effect/explode_darkblue7.bmp new file mode 100644 index 0000000000..76bc18f485 Binary files /dev/null and b/crawl-ref/source/rltiles/effect/explode_darkblue7.bmp differ diff --git a/crawl-ref/source/rltiles/effect/explode_darkblue8.bmp b/crawl-ref/source/rltiles/effect/explode_darkblue8.bmp new file mode 100644 index 0000000000..bb373f8890 Binary files /dev/null and b/crawl-ref/source/rltiles/effect/explode_darkblue8.bmp differ diff --git a/crawl-ref/source/rltiles/effect/explode_green0.bmp b/crawl-ref/source/rltiles/effect/explode_green0.bmp new file mode 100644 index 0000000000..88fc2958e6 Binary files /dev/null and b/crawl-ref/source/rltiles/effect/explode_green0.bmp differ diff --git a/crawl-ref/source/rltiles/effect/explode_green1.bmp b/crawl-ref/source/rltiles/effect/explode_green1.bmp new file mode 100644 index 0000000000..b0f842c8c7 Binary files /dev/null and b/crawl-ref/source/rltiles/effect/explode_green1.bmp differ diff --git a/crawl-ref/source/rltiles/effect/explode_green2.bmp b/crawl-ref/source/rltiles/effect/explode_green2.bmp new file mode 100644 index 0000000000..259e1ec00c Binary files /dev/null and b/crawl-ref/source/rltiles/effect/explode_green2.bmp differ diff --git a/crawl-ref/source/rltiles/effect/explode_green3.bmp b/crawl-ref/source/rltiles/effect/explode_green3.bmp new file mode 100644 index 0000000000..99dcfabe9f Binary files /dev/null and b/crawl-ref/source/rltiles/effect/explode_green3.bmp differ diff --git a/crawl-ref/source/rltiles/effect/explode_green4.bmp b/crawl-ref/source/rltiles/effect/explode_green4.bmp new file mode 100644 index 0000000000..bda45219d0 Binary files /dev/null and b/crawl-ref/source/rltiles/effect/explode_green4.bmp differ diff --git a/crawl-ref/source/rltiles/effect/explode_green5.bmp b/crawl-ref/source/rltiles/effect/explode_green5.bmp new file mode 100644 index 0000000000..7e2c0d7ade Binary files /dev/null and b/crawl-ref/source/rltiles/effect/explode_green5.bmp differ diff --git a/crawl-ref/source/rltiles/effect/explode_green6.bmp b/crawl-ref/source/rltiles/effect/explode_green6.bmp new file mode 100644 index 0000000000..c891f11839 Binary files /dev/null and b/crawl-ref/source/rltiles/effect/explode_green6.bmp differ diff --git a/crawl-ref/source/rltiles/effect/explode_green7.bmp b/crawl-ref/source/rltiles/effect/explode_green7.bmp new file mode 100644 index 0000000000..8865528100 Binary files /dev/null and b/crawl-ref/source/rltiles/effect/explode_green7.bmp differ diff --git a/crawl-ref/source/rltiles/effect/explode_green8.bmp b/crawl-ref/source/rltiles/effect/explode_green8.bmp new file mode 100644 index 0000000000..8266fb8dba Binary files /dev/null and b/crawl-ref/source/rltiles/effect/explode_green8.bmp differ diff --git a/crawl-ref/source/rltiles/effect/explode_purple0.bmp b/crawl-ref/source/rltiles/effect/explode_purple0.bmp new file mode 100644 index 0000000000..61f9c4e1bb Binary files /dev/null and b/crawl-ref/source/rltiles/effect/explode_purple0.bmp differ diff --git a/crawl-ref/source/rltiles/effect/explode_purple1.bmp b/crawl-ref/source/rltiles/effect/explode_purple1.bmp new file mode 100644 index 0000000000..cebcf00cc6 Binary files /dev/null and b/crawl-ref/source/rltiles/effect/explode_purple1.bmp differ diff --git a/crawl-ref/source/rltiles/effect/explode_purple2.bmp b/crawl-ref/source/rltiles/effect/explode_purple2.bmp new file mode 100644 index 0000000000..bc752b4383 Binary files /dev/null and b/crawl-ref/source/rltiles/effect/explode_purple2.bmp differ diff --git a/crawl-ref/source/rltiles/effect/explode_purple3.bmp b/crawl-ref/source/rltiles/effect/explode_purple3.bmp new file mode 100644 index 0000000000..92e69c79c1 Binary files /dev/null and b/crawl-ref/source/rltiles/effect/explode_purple3.bmp differ diff --git a/crawl-ref/source/rltiles/effect/explode_purple4.bmp b/crawl-ref/source/rltiles/effect/explode_purple4.bmp new file mode 100644 index 0000000000..2d4738de9e Binary files /dev/null and b/crawl-ref/source/rltiles/effect/explode_purple4.bmp differ diff --git a/crawl-ref/source/rltiles/effect/explode_purple5.bmp b/crawl-ref/source/rltiles/effect/explode_purple5.bmp new file mode 100644 index 0000000000..dd38065607 Binary files /dev/null and b/crawl-ref/source/rltiles/effect/explode_purple5.bmp differ diff --git a/crawl-ref/source/rltiles/effect/explode_purple6.bmp b/crawl-ref/source/rltiles/effect/explode_purple6.bmp new file mode 100644 index 0000000000..34f1d7d98f Binary files /dev/null and b/crawl-ref/source/rltiles/effect/explode_purple6.bmp differ diff --git a/crawl-ref/source/rltiles/effect/explode_purple7.bmp b/crawl-ref/source/rltiles/effect/explode_purple7.bmp new file mode 100644 index 0000000000..93af35f6d3 Binary files /dev/null and b/crawl-ref/source/rltiles/effect/explode_purple7.bmp differ diff --git a/crawl-ref/source/rltiles/effect/explode_purple8.bmp b/crawl-ref/source/rltiles/effect/explode_purple8.bmp new file mode 100644 index 0000000000..118ee9f66d Binary files /dev/null and b/crawl-ref/source/rltiles/effect/explode_purple8.bmp differ diff --git a/crawl-ref/source/rltiles/effect/explode_red0.bmp b/crawl-ref/source/rltiles/effect/explode_red0.bmp new file mode 100644 index 0000000000..584d1fbef3 Binary files /dev/null and b/crawl-ref/source/rltiles/effect/explode_red0.bmp differ diff --git a/crawl-ref/source/rltiles/effect/explode_red1.bmp b/crawl-ref/source/rltiles/effect/explode_red1.bmp new file mode 100644 index 0000000000..a854e28dd1 Binary files /dev/null and b/crawl-ref/source/rltiles/effect/explode_red1.bmp differ diff --git a/crawl-ref/source/rltiles/effect/explode_red2.bmp b/crawl-ref/source/rltiles/effect/explode_red2.bmp new file mode 100644 index 0000000000..cabd6a5947 Binary files /dev/null and b/crawl-ref/source/rltiles/effect/explode_red2.bmp differ diff --git a/crawl-ref/source/rltiles/effect/explode_red3.bmp b/crawl-ref/source/rltiles/effect/explode_red3.bmp new file mode 100644 index 0000000000..abc27aa888 Binary files /dev/null and b/crawl-ref/source/rltiles/effect/explode_red3.bmp differ diff --git a/crawl-ref/source/rltiles/effect/explode_red4.bmp b/crawl-ref/source/rltiles/effect/explode_red4.bmp new file mode 100644 index 0000000000..99f239e8dc Binary files /dev/null and b/crawl-ref/source/rltiles/effect/explode_red4.bmp differ diff --git a/crawl-ref/source/rltiles/effect/explode_red5.bmp b/crawl-ref/source/rltiles/effect/explode_red5.bmp new file mode 100644 index 0000000000..907dfc2c61 Binary files /dev/null and b/crawl-ref/source/rltiles/effect/explode_red5.bmp differ diff --git a/crawl-ref/source/rltiles/effect/explode_red6.bmp b/crawl-ref/source/rltiles/effect/explode_red6.bmp new file mode 100644 index 0000000000..6a709f6d99 Binary files /dev/null and b/crawl-ref/source/rltiles/effect/explode_red6.bmp differ diff --git a/crawl-ref/source/rltiles/effect/explode_red7.bmp b/crawl-ref/source/rltiles/effect/explode_red7.bmp new file mode 100644 index 0000000000..1793706508 Binary files /dev/null and b/crawl-ref/source/rltiles/effect/explode_red7.bmp differ diff --git a/crawl-ref/source/rltiles/effect/explode_red8.bmp b/crawl-ref/source/rltiles/effect/explode_red8.bmp new file mode 100644 index 0000000000..b7759f18ea Binary files /dev/null and b/crawl-ref/source/rltiles/effect/explode_red8.bmp differ diff --git a/crawl-ref/source/rltiles/effect/javelin0.bmp b/crawl-ref/source/rltiles/effect/javelin0.bmp new file mode 100644 index 0000000000..bbbf48f062 Binary files /dev/null and b/crawl-ref/source/rltiles/effect/javelin0.bmp differ diff --git a/crawl-ref/source/rltiles/effect/javelin1.bmp b/crawl-ref/source/rltiles/effect/javelin1.bmp new file mode 100644 index 0000000000..f161cf2277 Binary files /dev/null and b/crawl-ref/source/rltiles/effect/javelin1.bmp differ diff --git a/crawl-ref/source/rltiles/effect/javelin2.bmp b/crawl-ref/source/rltiles/effect/javelin2.bmp new file mode 100644 index 0000000000..02ad7042b4 Binary files /dev/null and b/crawl-ref/source/rltiles/effect/javelin2.bmp differ diff --git a/crawl-ref/source/rltiles/effect/javelin3.bmp b/crawl-ref/source/rltiles/effect/javelin3.bmp new file mode 100644 index 0000000000..b7eeb615c2 Binary files /dev/null and b/crawl-ref/source/rltiles/effect/javelin3.bmp differ diff --git a/crawl-ref/source/rltiles/effect/javelin4.bmp b/crawl-ref/source/rltiles/effect/javelin4.bmp new file mode 100644 index 0000000000..50697f0025 Binary files /dev/null and b/crawl-ref/source/rltiles/effect/javelin4.bmp differ diff --git a/crawl-ref/source/rltiles/effect/javelin5.bmp b/crawl-ref/source/rltiles/effect/javelin5.bmp new file mode 100644 index 0000000000..a6eb7d234f Binary files /dev/null and b/crawl-ref/source/rltiles/effect/javelin5.bmp differ diff --git a/crawl-ref/source/rltiles/effect/javelin6.bmp b/crawl-ref/source/rltiles/effect/javelin6.bmp new file mode 100644 index 0000000000..e93fdcdec7 Binary files /dev/null and b/crawl-ref/source/rltiles/effect/javelin6.bmp differ diff --git a/crawl-ref/source/rltiles/effect/javelin7.bmp b/crawl-ref/source/rltiles/effect/javelin7.bmp new file mode 100644 index 0000000000..15afce957c Binary files /dev/null and b/crawl-ref/source/rltiles/effect/javelin7.bmp differ diff --git a/crawl-ref/source/rltiles/effect/needle0.bmp b/crawl-ref/source/rltiles/effect/needle0.bmp new file mode 100644 index 0000000000..ac569f0c2d Binary files /dev/null and b/crawl-ref/source/rltiles/effect/needle0.bmp differ diff --git a/crawl-ref/source/rltiles/effect/needle1.bmp b/crawl-ref/source/rltiles/effect/needle1.bmp new file mode 100644 index 0000000000..d38780407d Binary files /dev/null and b/crawl-ref/source/rltiles/effect/needle1.bmp differ diff --git a/crawl-ref/source/rltiles/effect/needle2.bmp b/crawl-ref/source/rltiles/effect/needle2.bmp new file mode 100644 index 0000000000..f35f6844d8 Binary files /dev/null and b/crawl-ref/source/rltiles/effect/needle2.bmp differ diff --git a/crawl-ref/source/rltiles/effect/needle3.bmp b/crawl-ref/source/rltiles/effect/needle3.bmp new file mode 100644 index 0000000000..2bb2a16d46 Binary files /dev/null and b/crawl-ref/source/rltiles/effect/needle3.bmp differ diff --git a/crawl-ref/source/rltiles/effect/needle4.bmp b/crawl-ref/source/rltiles/effect/needle4.bmp new file mode 100644 index 0000000000..bf971a12cb Binary files /dev/null and b/crawl-ref/source/rltiles/effect/needle4.bmp differ diff --git a/crawl-ref/source/rltiles/effect/needle5.bmp b/crawl-ref/source/rltiles/effect/needle5.bmp new file mode 100644 index 0000000000..aded53ccf4 Binary files /dev/null and b/crawl-ref/source/rltiles/effect/needle5.bmp differ diff --git a/crawl-ref/source/rltiles/effect/needle6.bmp b/crawl-ref/source/rltiles/effect/needle6.bmp new file mode 100644 index 0000000000..30c909f73e Binary files /dev/null and b/crawl-ref/source/rltiles/effect/needle6.bmp differ diff --git a/crawl-ref/source/rltiles/effect/needle7.bmp b/crawl-ref/source/rltiles/effect/needle7.bmp new file mode 100644 index 0000000000..2b305fbc1b Binary files /dev/null and b/crawl-ref/source/rltiles/effect/needle7.bmp differ diff --git a/crawl-ref/source/rltiles/effect/net_trap.bmp b/crawl-ref/source/rltiles/effect/net_trap.bmp new file mode 100644 index 0000000000..2db5ac6027 Binary files /dev/null and b/crawl-ref/source/rltiles/effect/net_trap.bmp differ diff --git a/crawl-ref/source/rltiles/effect/resist1.bmp b/crawl-ref/source/rltiles/effect/resist1.bmp new file mode 100644 index 0000000000..1c4c895406 Binary files /dev/null and b/crawl-ref/source/rltiles/effect/resist1.bmp differ diff --git a/crawl-ref/source/rltiles/effect/resist2.bmp b/crawl-ref/source/rltiles/effect/resist2.bmp new file mode 100644 index 0000000000..3fcc982cc7 Binary files /dev/null and b/crawl-ref/source/rltiles/effect/resist2.bmp differ diff --git a/crawl-ref/source/rltiles/effect/resist3.bmp b/crawl-ref/source/rltiles/effect/resist3.bmp new file mode 100644 index 0000000000..b95d2822b5 Binary files /dev/null and b/crawl-ref/source/rltiles/effect/resist3.bmp differ diff --git a/crawl-ref/source/rltiles/effect/resist4.bmp b/crawl-ref/source/rltiles/effect/resist4.bmp new file mode 100644 index 0000000000..bc4235cea0 Binary files /dev/null and b/crawl-ref/source/rltiles/effect/resist4.bmp differ diff --git a/crawl-ref/source/rltiles/effect/rock0.bmp b/crawl-ref/source/rltiles/effect/rock0.bmp new file mode 100644 index 0000000000..daf8d8e9dd Binary files /dev/null and b/crawl-ref/source/rltiles/effect/rock0.bmp differ diff --git a/crawl-ref/source/rltiles/effect/sling_bullet0.bmp b/crawl-ref/source/rltiles/effect/sling_bullet0.bmp new file mode 100644 index 0000000000..fbeaebedf5 Binary files /dev/null and b/crawl-ref/source/rltiles/effect/sling_bullet0.bmp differ diff --git a/crawl-ref/source/rltiles/effect/stone0.bmp b/crawl-ref/source/rltiles/effect/stone0.bmp new file mode 100644 index 0000000000..eead21d68a Binary files /dev/null and b/crawl-ref/source/rltiles/effect/stone0.bmp differ diff --git a/crawl-ref/source/rltiles/effect/throwing_net0.bmp b/crawl-ref/source/rltiles/effect/throwing_net0.bmp new file mode 100644 index 0000000000..5fa8803088 Binary files /dev/null and b/crawl-ref/source/rltiles/effect/throwing_net0.bmp differ diff --git a/crawl-ref/source/rltiles/effect/throwing_net1.bmp b/crawl-ref/source/rltiles/effect/throwing_net1.bmp new file mode 100644 index 0000000000..eda04c6139 Binary files /dev/null and b/crawl-ref/source/rltiles/effect/throwing_net1.bmp differ diff --git a/crawl-ref/source/rltiles/effect/throwing_net2.bmp b/crawl-ref/source/rltiles/effect/throwing_net2.bmp new file mode 100644 index 0000000000..9abe7ebd0e Binary files /dev/null and b/crawl-ref/source/rltiles/effect/throwing_net2.bmp differ diff --git a/crawl-ref/source/rltiles/effect/throwing_net3.bmp b/crawl-ref/source/rltiles/effect/throwing_net3.bmp new file mode 100644 index 0000000000..35157792bc Binary files /dev/null and b/crawl-ref/source/rltiles/effect/throwing_net3.bmp differ diff --git a/crawl-ref/source/rltiles/effect/throwing_net4.bmp b/crawl-ref/source/rltiles/effect/throwing_net4.bmp new file mode 100644 index 0000000000..c462a4f661 Binary files /dev/null and b/crawl-ref/source/rltiles/effect/throwing_net4.bmp differ diff --git a/crawl-ref/source/rltiles/effect/throwing_net5.bmp b/crawl-ref/source/rltiles/effect/throwing_net5.bmp new file mode 100644 index 0000000000..379748df25 Binary files /dev/null and b/crawl-ref/source/rltiles/effect/throwing_net5.bmp differ diff --git a/crawl-ref/source/rltiles/effect/throwing_net6.bmp b/crawl-ref/source/rltiles/effect/throwing_net6.bmp new file mode 100644 index 0000000000..e4bea3503a Binary files /dev/null and b/crawl-ref/source/rltiles/effect/throwing_net6.bmp differ diff --git a/crawl-ref/source/rltiles/effect/throwing_net7.bmp b/crawl-ref/source/rltiles/effect/throwing_net7.bmp new file mode 100644 index 0000000000..a6d0843961 Binary files /dev/null and b/crawl-ref/source/rltiles/effect/throwing_net7.bmp differ diff --git a/crawl-ref/source/rltiles/effect/zap_acid0.bmp b/crawl-ref/source/rltiles/effect/zap_acid0.bmp new file mode 100644 index 0000000000..2a294bf341 Binary files /dev/null and b/crawl-ref/source/rltiles/effect/zap_acid0.bmp differ diff --git a/crawl-ref/source/rltiles/effect/zap_acid1.bmp b/crawl-ref/source/rltiles/effect/zap_acid1.bmp new file mode 100644 index 0000000000..bb4f9f765c Binary files /dev/null and b/crawl-ref/source/rltiles/effect/zap_acid1.bmp differ diff --git a/crawl-ref/source/rltiles/effect/zap_acid2.bmp b/crawl-ref/source/rltiles/effect/zap_acid2.bmp new file mode 100644 index 0000000000..dad17b797a Binary files /dev/null and b/crawl-ref/source/rltiles/effect/zap_acid2.bmp differ diff --git a/crawl-ref/source/rltiles/effect/zap_acid3.bmp b/crawl-ref/source/rltiles/effect/zap_acid3.bmp new file mode 100644 index 0000000000..51761f10a9 Binary files /dev/null and b/crawl-ref/source/rltiles/effect/zap_acid3.bmp differ diff --git a/crawl-ref/source/rltiles/effect/zap_black0.bmp b/crawl-ref/source/rltiles/effect/zap_black0.bmp new file mode 100644 index 0000000000..44120a5811 Binary files /dev/null and b/crawl-ref/source/rltiles/effect/zap_black0.bmp differ diff --git a/crawl-ref/source/rltiles/effect/zap_black1.bmp b/crawl-ref/source/rltiles/effect/zap_black1.bmp new file mode 100644 index 0000000000..34375a9d46 Binary files /dev/null and b/crawl-ref/source/rltiles/effect/zap_black1.bmp differ diff --git a/crawl-ref/source/rltiles/effect/zap_black2.bmp b/crawl-ref/source/rltiles/effect/zap_black2.bmp new file mode 100644 index 0000000000..731e415d9b Binary files /dev/null and b/crawl-ref/source/rltiles/effect/zap_black2.bmp differ diff --git a/crawl-ref/source/rltiles/effect/zap_black3.bmp b/crawl-ref/source/rltiles/effect/zap_black3.bmp new file mode 100644 index 0000000000..05d18d24e0 Binary files /dev/null and b/crawl-ref/source/rltiles/effect/zap_black3.bmp differ diff --git a/crawl-ref/source/rltiles/effect/zap_dig.bmp b/crawl-ref/source/rltiles/effect/zap_dig.bmp new file mode 100644 index 0000000000..d24beb8592 Binary files /dev/null and b/crawl-ref/source/rltiles/effect/zap_dig.bmp differ diff --git a/crawl-ref/source/rltiles/effect/zap_elec0.bmp b/crawl-ref/source/rltiles/effect/zap_elec0.bmp new file mode 100644 index 0000000000..1f1efe1b28 Binary files /dev/null and b/crawl-ref/source/rltiles/effect/zap_elec0.bmp differ diff --git a/crawl-ref/source/rltiles/effect/zap_elec1.bmp b/crawl-ref/source/rltiles/effect/zap_elec1.bmp new file mode 100644 index 0000000000..28a2e5d197 Binary files /dev/null and b/crawl-ref/source/rltiles/effect/zap_elec1.bmp differ diff --git a/crawl-ref/source/rltiles/effect/zap_elec2.bmp b/crawl-ref/source/rltiles/effect/zap_elec2.bmp new file mode 100644 index 0000000000..aa8e06a1ad Binary files /dev/null and b/crawl-ref/source/rltiles/effect/zap_elec2.bmp differ diff --git a/crawl-ref/source/rltiles/effect/zap_elec3.bmp b/crawl-ref/source/rltiles/effect/zap_elec3.bmp new file mode 100644 index 0000000000..2f73a3980c Binary files /dev/null and b/crawl-ref/source/rltiles/effect/zap_elec3.bmp differ diff --git a/crawl-ref/source/rltiles/effect/zap_fire0.bmp b/crawl-ref/source/rltiles/effect/zap_fire0.bmp new file mode 100644 index 0000000000..a569867135 Binary files /dev/null and b/crawl-ref/source/rltiles/effect/zap_fire0.bmp differ diff --git a/crawl-ref/source/rltiles/effect/zap_fire1.bmp b/crawl-ref/source/rltiles/effect/zap_fire1.bmp new file mode 100644 index 0000000000..7b943b70b2 Binary files /dev/null and b/crawl-ref/source/rltiles/effect/zap_fire1.bmp differ diff --git a/crawl-ref/source/rltiles/effect/zap_fire2.bmp b/crawl-ref/source/rltiles/effect/zap_fire2.bmp new file mode 100644 index 0000000000..fde040d99d Binary files /dev/null and b/crawl-ref/source/rltiles/effect/zap_fire2.bmp differ diff --git a/crawl-ref/source/rltiles/effect/zap_fire3.bmp b/crawl-ref/source/rltiles/effect/zap_fire3.bmp new file mode 100644 index 0000000000..da12376d3e Binary files /dev/null and b/crawl-ref/source/rltiles/effect/zap_fire3.bmp differ diff --git a/crawl-ref/source/rltiles/effect/zap_flash.bmp b/crawl-ref/source/rltiles/effect/zap_flash.bmp new file mode 100644 index 0000000000..b39b1165e5 Binary files /dev/null and b/crawl-ref/source/rltiles/effect/zap_flash.bmp differ diff --git a/crawl-ref/source/rltiles/effect/zap_gas0.bmp b/crawl-ref/source/rltiles/effect/zap_gas0.bmp new file mode 100644 index 0000000000..4abf1200d1 Binary files /dev/null and b/crawl-ref/source/rltiles/effect/zap_gas0.bmp differ diff --git a/crawl-ref/source/rltiles/effect/zap_gas1.bmp b/crawl-ref/source/rltiles/effect/zap_gas1.bmp new file mode 100644 index 0000000000..961490686b Binary files /dev/null and b/crawl-ref/source/rltiles/effect/zap_gas1.bmp differ diff --git a/crawl-ref/source/rltiles/effect/zap_gas2.bmp b/crawl-ref/source/rltiles/effect/zap_gas2.bmp new file mode 100644 index 0000000000..522246923e Binary files /dev/null and b/crawl-ref/source/rltiles/effect/zap_gas2.bmp differ diff --git a/crawl-ref/source/rltiles/effect/zap_gas3.bmp b/crawl-ref/source/rltiles/effect/zap_gas3.bmp new file mode 100644 index 0000000000..7d52e02572 Binary files /dev/null and b/crawl-ref/source/rltiles/effect/zap_gas3.bmp differ diff --git a/crawl-ref/source/rltiles/effect/zap_ice0.bmp b/crawl-ref/source/rltiles/effect/zap_ice0.bmp new file mode 100644 index 0000000000..c7aca90496 Binary files /dev/null and b/crawl-ref/source/rltiles/effect/zap_ice0.bmp differ diff --git a/crawl-ref/source/rltiles/effect/zap_ice1.bmp b/crawl-ref/source/rltiles/effect/zap_ice1.bmp new file mode 100644 index 0000000000..36930372ab Binary files /dev/null and b/crawl-ref/source/rltiles/effect/zap_ice1.bmp differ diff --git a/crawl-ref/source/rltiles/effect/zap_ice2.bmp b/crawl-ref/source/rltiles/effect/zap_ice2.bmp new file mode 100644 index 0000000000..1e1b4e43b1 Binary files /dev/null and b/crawl-ref/source/rltiles/effect/zap_ice2.bmp differ diff --git a/crawl-ref/source/rltiles/effect/zap_ice3.bmp b/crawl-ref/source/rltiles/effect/zap_ice3.bmp new file mode 100644 index 0000000000..b3fa9df4e8 Binary files /dev/null and b/crawl-ref/source/rltiles/effect/zap_ice3.bmp differ diff --git a/crawl-ref/source/rltiles/effect/zap_magic0.bmp b/crawl-ref/source/rltiles/effect/zap_magic0.bmp new file mode 100644 index 0000000000..8545c0db12 Binary files /dev/null and b/crawl-ref/source/rltiles/effect/zap_magic0.bmp differ diff --git a/crawl-ref/source/rltiles/effect/zap_magic1.bmp b/crawl-ref/source/rltiles/effect/zap_magic1.bmp new file mode 100644 index 0000000000..8c31570f70 Binary files /dev/null and b/crawl-ref/source/rltiles/effect/zap_magic1.bmp differ diff --git a/crawl-ref/source/rltiles/effect/zap_magic2.bmp b/crawl-ref/source/rltiles/effect/zap_magic2.bmp new file mode 100644 index 0000000000..d6b2225396 Binary files /dev/null and b/crawl-ref/source/rltiles/effect/zap_magic2.bmp differ diff --git a/crawl-ref/source/rltiles/effect/zap_magic3.bmp b/crawl-ref/source/rltiles/effect/zap_magic3.bmp new file mode 100644 index 0000000000..b59f5ed682 Binary files /dev/null and b/crawl-ref/source/rltiles/effect/zap_magic3.bmp differ diff --git a/crawl-ref/source/rltiles/effect/zap_sleep0.bmp b/crawl-ref/source/rltiles/effect/zap_sleep0.bmp new file mode 100644 index 0000000000..96aa8f4934 Binary files /dev/null and b/crawl-ref/source/rltiles/effect/zap_sleep0.bmp differ diff --git a/crawl-ref/source/rltiles/effect/zap_sleep1.bmp b/crawl-ref/source/rltiles/effect/zap_sleep1.bmp new file mode 100644 index 0000000000..203b993dc6 Binary files /dev/null and b/crawl-ref/source/rltiles/effect/zap_sleep1.bmp differ diff --git a/crawl-ref/source/rltiles/effect/zap_sleep2.bmp b/crawl-ref/source/rltiles/effect/zap_sleep2.bmp new file mode 100644 index 0000000000..9938343ffc Binary files /dev/null and b/crawl-ref/source/rltiles/effect/zap_sleep2.bmp differ diff --git a/crawl-ref/source/rltiles/effect/zap_sleep3.bmp b/crawl-ref/source/rltiles/effect/zap_sleep3.bmp new file mode 100644 index 0000000000..84a1019d05 Binary files /dev/null and b/crawl-ref/source/rltiles/effect/zap_sleep3.bmp differ diff --git a/crawl-ref/source/rltiles/effect/zigzag1.bmp b/crawl-ref/source/rltiles/effect/zigzag1.bmp new file mode 100644 index 0000000000..6492b67e11 Binary files /dev/null and b/crawl-ref/source/rltiles/effect/zigzag1.bmp differ diff --git a/crawl-ref/source/rltiles/effect/zigzag2.bmp b/crawl-ref/source/rltiles/effect/zigzag2.bmp new file mode 100644 index 0000000000..6492b67e11 Binary files /dev/null and b/crawl-ref/source/rltiles/effect/zigzag2.bmp differ diff --git a/crawl-ref/source/rltiles/effect/zigzag3.bmp b/crawl-ref/source/rltiles/effect/zigzag3.bmp new file mode 100644 index 0000000000..1589761dc7 Binary files /dev/null and b/crawl-ref/source/rltiles/effect/zigzag3.bmp differ diff --git a/crawl-ref/source/rltiles/effect/zigzag4.bmp b/crawl-ref/source/rltiles/effect/zigzag4.bmp new file mode 100644 index 0000000000..f7ccfdf1ae Binary files /dev/null and b/crawl-ref/source/rltiles/effect/zigzag4.bmp differ diff --git a/crawl-ref/source/rltiles/item/amulet/amulet_of_yendor.bmp b/crawl-ref/source/rltiles/item/amulet/amulet_of_yendor.bmp new file mode 100644 index 0000000000..216aa1d19d Binary files /dev/null and b/crawl-ref/source/rltiles/item/amulet/amulet_of_yendor.bmp differ diff --git a/crawl-ref/source/rltiles/item/amulet/bone_gray.bmp b/crawl-ref/source/rltiles/item/amulet/bone_gray.bmp new file mode 100644 index 0000000000..28403b0bb7 Binary files /dev/null and b/crawl-ref/source/rltiles/item/amulet/bone_gray.bmp differ diff --git a/crawl-ref/source/rltiles/item/amulet/cameo_blue.bmp b/crawl-ref/source/rltiles/item/amulet/cameo_blue.bmp new file mode 100644 index 0000000000..85c85f4186 Binary files /dev/null and b/crawl-ref/source/rltiles/item/amulet/cameo_blue.bmp differ diff --git a/crawl-ref/source/rltiles/item/amulet/cameo_orange.bmp b/crawl-ref/source/rltiles/item/amulet/cameo_orange.bmp new file mode 100644 index 0000000000..cbded44ed1 Binary files /dev/null and b/crawl-ref/source/rltiles/item/amulet/cameo_orange.bmp differ diff --git a/crawl-ref/source/rltiles/item/amulet/celtic_blue.bmp b/crawl-ref/source/rltiles/item/amulet/celtic_blue.bmp new file mode 100644 index 0000000000..fec191b38c Binary files /dev/null and b/crawl-ref/source/rltiles/item/amulet/celtic_blue.bmp differ diff --git a/crawl-ref/source/rltiles/item/amulet/celtic_red.bmp b/crawl-ref/source/rltiles/item/amulet/celtic_red.bmp new file mode 100644 index 0000000000..4ae53e8562 Binary files /dev/null and b/crawl-ref/source/rltiles/item/amulet/celtic_red.bmp differ diff --git a/crawl-ref/source/rltiles/item/amulet/celtic_yellow.bmp b/crawl-ref/source/rltiles/item/amulet/celtic_yellow.bmp new file mode 100644 index 0000000000..f64db7f3db Binary files /dev/null and b/crawl-ref/source/rltiles/item/amulet/celtic_yellow.bmp differ diff --git a/crawl-ref/source/rltiles/item/amulet/circular.bmp b/crawl-ref/source/rltiles/item/amulet/circular.bmp new file mode 100644 index 0000000000..9aae0d67f0 Binary files /dev/null and b/crawl-ref/source/rltiles/item/amulet/circular.bmp differ diff --git a/crawl-ref/source/rltiles/item/amulet/concave.bmp b/crawl-ref/source/rltiles/item/amulet/concave.bmp new file mode 100644 index 0000000000..af97523a9d Binary files /dev/null and b/crawl-ref/source/rltiles/item/amulet/concave.bmp differ diff --git a/crawl-ref/source/rltiles/item/amulet/crystal_green.bmp b/crawl-ref/source/rltiles/item/amulet/crystal_green.bmp new file mode 100644 index 0000000000..bea9b2625d Binary files /dev/null and b/crawl-ref/source/rltiles/item/amulet/crystal_green.bmp differ diff --git a/crawl-ref/source/rltiles/item/amulet/crystal_red.bmp b/crawl-ref/source/rltiles/item/amulet/crystal_red.bmp new file mode 100644 index 0000000000..8dc28bd740 Binary files /dev/null and b/crawl-ref/source/rltiles/item/amulet/crystal_red.bmp differ diff --git a/crawl-ref/source/rltiles/item/amulet/crystal_white.bmp b/crawl-ref/source/rltiles/item/amulet/crystal_white.bmp new file mode 100644 index 0000000000..a17585532a Binary files /dev/null and b/crawl-ref/source/rltiles/item/amulet/crystal_white.bmp differ diff --git a/crawl-ref/source/rltiles/item/amulet/cylinder_gray.bmp b/crawl-ref/source/rltiles/item/amulet/cylinder_gray.bmp new file mode 100644 index 0000000000..9962c47589 Binary files /dev/null and b/crawl-ref/source/rltiles/item/amulet/cylinder_gray.bmp differ diff --git a/crawl-ref/source/rltiles/item/amulet/eye_cyan.bmp b/crawl-ref/source/rltiles/item/amulet/eye_cyan.bmp new file mode 100644 index 0000000000..3f946cd16f Binary files /dev/null and b/crawl-ref/source/rltiles/item/amulet/eye_cyan.bmp differ diff --git a/crawl-ref/source/rltiles/item/amulet/eye_green.bmp b/crawl-ref/source/rltiles/item/amulet/eye_green.bmp new file mode 100644 index 0000000000..973aa9620e Binary files /dev/null and b/crawl-ref/source/rltiles/item/amulet/eye_green.bmp differ diff --git a/crawl-ref/source/rltiles/item/amulet/eye_magenta.bmp b/crawl-ref/source/rltiles/item/amulet/eye_magenta.bmp new file mode 100644 index 0000000000..015822dd19 Binary files /dev/null and b/crawl-ref/source/rltiles/item/amulet/eye_magenta.bmp differ diff --git a/crawl-ref/source/rltiles/item/amulet/face1_gold.bmp b/crawl-ref/source/rltiles/item/amulet/face1_gold.bmp new file mode 100644 index 0000000000..5a34879611 Binary files /dev/null and b/crawl-ref/source/rltiles/item/amulet/face1_gold.bmp differ diff --git a/crawl-ref/source/rltiles/item/amulet/face2.bmp b/crawl-ref/source/rltiles/item/amulet/face2.bmp new file mode 100644 index 0000000000..810695e12b Binary files /dev/null and b/crawl-ref/source/rltiles/item/amulet/face2.bmp differ diff --git a/crawl-ref/source/rltiles/item/amulet/hexagonal.bmp b/crawl-ref/source/rltiles/item/amulet/hexagonal.bmp new file mode 100644 index 0000000000..f74134785b Binary files /dev/null and b/crawl-ref/source/rltiles/item/amulet/hexagonal.bmp differ diff --git a/crawl-ref/source/rltiles/item/amulet/octagonal.bmp b/crawl-ref/source/rltiles/item/amulet/octagonal.bmp new file mode 100644 index 0000000000..0066227319 Binary files /dev/null and b/crawl-ref/source/rltiles/item/amulet/octagonal.bmp differ diff --git a/crawl-ref/source/rltiles/item/amulet/oval.bmp b/crawl-ref/source/rltiles/item/amulet/oval.bmp new file mode 100644 index 0000000000..87c42b4d4d Binary files /dev/null and b/crawl-ref/source/rltiles/item/amulet/oval.bmp differ diff --git a/crawl-ref/source/rltiles/item/amulet/penta_green.bmp b/crawl-ref/source/rltiles/item/amulet/penta_green.bmp new file mode 100644 index 0000000000..10fff32d44 Binary files /dev/null and b/crawl-ref/source/rltiles/item/amulet/penta_green.bmp differ diff --git a/crawl-ref/source/rltiles/item/amulet/penta_orange.bmp b/crawl-ref/source/rltiles/item/amulet/penta_orange.bmp new file mode 100644 index 0000000000..2dbf26a653 Binary files /dev/null and b/crawl-ref/source/rltiles/item/amulet/penta_orange.bmp differ diff --git a/crawl-ref/source/rltiles/item/amulet/pyramidal.bmp b/crawl-ref/source/rltiles/item/amulet/pyramidal.bmp new file mode 100644 index 0000000000..757bf10ed3 Binary files /dev/null and b/crawl-ref/source/rltiles/item/amulet/pyramidal.bmp differ diff --git a/crawl-ref/source/rltiles/item/amulet/ring_cyan.bmp b/crawl-ref/source/rltiles/item/amulet/ring_cyan.bmp new file mode 100644 index 0000000000..cfc7b01b3b Binary files /dev/null and b/crawl-ref/source/rltiles/item/amulet/ring_cyan.bmp differ diff --git a/crawl-ref/source/rltiles/item/amulet/ring_green.bmp b/crawl-ref/source/rltiles/item/amulet/ring_green.bmp new file mode 100644 index 0000000000..60fef53b81 Binary files /dev/null and b/crawl-ref/source/rltiles/item/amulet/ring_green.bmp differ diff --git a/crawl-ref/source/rltiles/item/amulet/ring_red.bmp b/crawl-ref/source/rltiles/item/amulet/ring_red.bmp new file mode 100644 index 0000000000..acd7e70638 Binary files /dev/null and b/crawl-ref/source/rltiles/item/amulet/ring_red.bmp differ diff --git a/crawl-ref/source/rltiles/item/amulet/spherical.bmp b/crawl-ref/source/rltiles/item/amulet/spherical.bmp new file mode 100644 index 0000000000..48354d694f Binary files /dev/null and b/crawl-ref/source/rltiles/item/amulet/spherical.bmp differ diff --git a/crawl-ref/source/rltiles/item/amulet/square.bmp b/crawl-ref/source/rltiles/item/amulet/square.bmp new file mode 100644 index 0000000000..fa8752351c Binary files /dev/null and b/crawl-ref/source/rltiles/item/amulet/square.bmp differ diff --git a/crawl-ref/source/rltiles/item/amulet/stone1_cyan.bmp b/crawl-ref/source/rltiles/item/amulet/stone1_cyan.bmp new file mode 100644 index 0000000000..c6ecb65c6a Binary files /dev/null and b/crawl-ref/source/rltiles/item/amulet/stone1_cyan.bmp differ diff --git a/crawl-ref/source/rltiles/item/amulet/stone1_green.bmp b/crawl-ref/source/rltiles/item/amulet/stone1_green.bmp new file mode 100644 index 0000000000..2b21ca3849 Binary files /dev/null and b/crawl-ref/source/rltiles/item/amulet/stone1_green.bmp differ diff --git a/crawl-ref/source/rltiles/item/amulet/stone1_pink.bmp b/crawl-ref/source/rltiles/item/amulet/stone1_pink.bmp new file mode 100644 index 0000000000..38a8f891d4 Binary files /dev/null and b/crawl-ref/source/rltiles/item/amulet/stone1_pink.bmp differ diff --git a/crawl-ref/source/rltiles/item/amulet/stone2_blue.bmp b/crawl-ref/source/rltiles/item/amulet/stone2_blue.bmp new file mode 100644 index 0000000000..e5649080b6 Binary files /dev/null and b/crawl-ref/source/rltiles/item/amulet/stone2_blue.bmp differ diff --git a/crawl-ref/source/rltiles/item/amulet/stone2_green.bmp b/crawl-ref/source/rltiles/item/amulet/stone2_green.bmp new file mode 100644 index 0000000000..0b13ded7c2 Binary files /dev/null and b/crawl-ref/source/rltiles/item/amulet/stone2_green.bmp differ diff --git a/crawl-ref/source/rltiles/item/amulet/stone2_red.bmp b/crawl-ref/source/rltiles/item/amulet/stone2_red.bmp new file mode 100644 index 0000000000..0b51888aa5 Binary files /dev/null and b/crawl-ref/source/rltiles/item/amulet/stone2_red.bmp differ diff --git a/crawl-ref/source/rltiles/item/amulet/stone3_blue.bmp b/crawl-ref/source/rltiles/item/amulet/stone3_blue.bmp new file mode 100644 index 0000000000..dfcf330fe3 Binary files /dev/null and b/crawl-ref/source/rltiles/item/amulet/stone3_blue.bmp differ diff --git a/crawl-ref/source/rltiles/item/amulet/stone3_green.bmp b/crawl-ref/source/rltiles/item/amulet/stone3_green.bmp new file mode 100644 index 0000000000..d57bf51e9b Binary files /dev/null and b/crawl-ref/source/rltiles/item/amulet/stone3_green.bmp differ diff --git a/crawl-ref/source/rltiles/item/amulet/stone3_magenta.bmp b/crawl-ref/source/rltiles/item/amulet/stone3_magenta.bmp new file mode 100644 index 0000000000..1ee8f33411 Binary files /dev/null and b/crawl-ref/source/rltiles/item/amulet/stone3_magenta.bmp differ diff --git a/crawl-ref/source/rltiles/item/amulet/triangular.bmp b/crawl-ref/source/rltiles/item/amulet/triangular.bmp new file mode 100644 index 0000000000..4aeb4470e5 Binary files /dev/null and b/crawl-ref/source/rltiles/item/amulet/triangular.bmp differ diff --git a/crawl-ref/source/rltiles/item/amulet/urand_bloodlust.bmp b/crawl-ref/source/rltiles/item/amulet/urand_bloodlust.bmp new file mode 100644 index 0000000000..393bd064c0 Binary files /dev/null and b/crawl-ref/source/rltiles/item/amulet/urand_bloodlust.bmp differ diff --git a/crawl-ref/source/rltiles/item/amulet/urand_cekugob.bmp b/crawl-ref/source/rltiles/item/amulet/urand_cekugob.bmp new file mode 100644 index 0000000000..e73bab4ee0 Binary files /dev/null and b/crawl-ref/source/rltiles/item/amulet/urand_cekugob.bmp differ diff --git a/crawl-ref/source/rltiles/item/amulet/urand_four_winds.bmp b/crawl-ref/source/rltiles/item/amulet/urand_four_winds.bmp new file mode 100644 index 0000000000..e032136bce Binary files /dev/null and b/crawl-ref/source/rltiles/item/amulet/urand_four_winds.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/alchemy_smock.bmp b/crawl-ref/source/rltiles/item/armor/alchemy_smock.bmp new file mode 100644 index 0000000000..e5919edfb6 Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/alchemy_smock.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/animal_skin.bmp b/crawl-ref/source/rltiles/item/armor/animal_skin.bmp new file mode 100644 index 0000000000..e71c8c4dec Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/animal_skin.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/animal_skin2.bmp b/crawl-ref/source/rltiles/item/armor/animal_skin2.bmp new file mode 100644 index 0000000000..d11980736a Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/animal_skin2.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/banded_mail.bmp b/crawl-ref/source/rltiles/item/armor/banded_mail.bmp new file mode 100644 index 0000000000..625051d24d Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/banded_mail.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/black_dragon_scale_mail.bmp b/crawl-ref/source/rltiles/item/armor/black_dragon_scale_mail.bmp new file mode 100644 index 0000000000..1d5cd2b98f Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/black_dragon_scale_mail.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/black_dragon_scales.bmp b/crawl-ref/source/rltiles/item/armor/black_dragon_scales.bmp new file mode 100644 index 0000000000..76be31eae1 Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/black_dragon_scales.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/blue_dragon_scale_mail.bmp b/crawl-ref/source/rltiles/item/armor/blue_dragon_scale_mail.bmp new file mode 100644 index 0000000000..6147ecbf58 Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/blue_dragon_scale_mail.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/blue_dragon_scales.bmp b/crawl-ref/source/rltiles/item/armor/blue_dragon_scales.bmp new file mode 100644 index 0000000000..4a2b088303 Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/blue_dragon_scales.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/boots_blue1.bmp b/crawl-ref/source/rltiles/item/armor/boots_blue1.bmp new file mode 100644 index 0000000000..84007dab3a Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/boots_blue1.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/boots_brown1.bmp b/crawl-ref/source/rltiles/item/armor/boots_brown1.bmp new file mode 100644 index 0000000000..f093b96060 Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/boots_brown1.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/boots_brown2.bmp b/crawl-ref/source/rltiles/item/armor/boots_brown2.bmp new file mode 100644 index 0000000000..78931e7586 Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/boots_brown2.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/boots_green1.bmp b/crawl-ref/source/rltiles/item/armor/boots_green1.bmp new file mode 100644 index 0000000000..7309927fbc Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/boots_green1.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/boots_green2.bmp b/crawl-ref/source/rltiles/item/armor/boots_green2.bmp new file mode 100644 index 0000000000..7fea85b9c2 Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/boots_green2.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/boots_iron1.bmp b/crawl-ref/source/rltiles/item/armor/boots_iron1.bmp new file mode 100644 index 0000000000..726a5f7fea Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/boots_iron1.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/boots_iron2.bmp b/crawl-ref/source/rltiles/item/armor/boots_iron2.bmp new file mode 100644 index 0000000000..269ed605e3 Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/boots_iron2.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/boots_iron3.bmp b/crawl-ref/source/rltiles/item/armor/boots_iron3.bmp new file mode 100644 index 0000000000..dd333beb77 Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/boots_iron3.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/boots_stripe1.bmp b/crawl-ref/source/rltiles/item/armor/boots_stripe1.bmp new file mode 100644 index 0000000000..738c4c6109 Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/boots_stripe1.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/boots_yellow1.bmp b/crawl-ref/source/rltiles/item/armor/boots_yellow1.bmp new file mode 100644 index 0000000000..e77d5ddc10 Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/boots_yellow1.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/breast_plate1.bmp b/crawl-ref/source/rltiles/item/armor/breast_plate1.bmp new file mode 100644 index 0000000000..e546f70bf2 Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/breast_plate1.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/breast_plate2.bmp b/crawl-ref/source/rltiles/item/armor/breast_plate2.bmp new file mode 100644 index 0000000000..6fb7790c86 Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/breast_plate2.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/bronze_plate_mail.bmp b/crawl-ref/source/rltiles/item/armor/bronze_plate_mail.bmp new file mode 100644 index 0000000000..98a8219a5c Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/bronze_plate_mail.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/buckled_boots.bmp b/crawl-ref/source/rltiles/item/armor/buckled_boots.bmp new file mode 100644 index 0000000000..8d860c9c6d Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/buckled_boots.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/cap1.bmp b/crawl-ref/source/rltiles/item/armor/cap1.bmp new file mode 100644 index 0000000000..e236cb8ae2 Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/cap1.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/cap2.bmp b/crawl-ref/source/rltiles/item/armor/cap2.bmp new file mode 100644 index 0000000000..f211045d3f Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/cap2.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/cap3.bmp b/crawl-ref/source/rltiles/item/armor/cap3.bmp new file mode 100644 index 0000000000..d2fbee09dc Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/cap3.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/centaur_barding.bmp b/crawl-ref/source/rltiles/item/armor/centaur_barding.bmp new file mode 100644 index 0000000000..94f8579a0a Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/centaur_barding.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/chain_mail.bmp b/crawl-ref/source/rltiles/item/armor/chain_mail.bmp new file mode 100644 index 0000000000..65b6a9cbda Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/chain_mail.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/chain_mail1.bmp b/crawl-ref/source/rltiles/item/armor/chain_mail1.bmp new file mode 100644 index 0000000000..2e1ade6731 Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/chain_mail1.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/chain_mail2.bmp b/crawl-ref/source/rltiles/item/armor/chain_mail2.bmp new file mode 100644 index 0000000000..ffb52bf028 Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/chain_mail2.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/chain_mail3.bmp b/crawl-ref/source/rltiles/item/armor/chain_mail3.bmp new file mode 100644 index 0000000000..1356a58f45 Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/chain_mail3.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/cloak2.bmp b/crawl-ref/source/rltiles/item/armor/cloak2.bmp new file mode 100644 index 0000000000..7b3ddd3dcb Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/cloak2.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/cloak3.bmp b/crawl-ref/source/rltiles/item/armor/cloak3.bmp new file mode 100644 index 0000000000..79dfe5ac03 Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/cloak3.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/cloak4.bmp b/crawl-ref/source/rltiles/item/armor/cloak4.bmp new file mode 100644 index 0000000000..946cf64eda Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/cloak4.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/combat_boots.bmp b/crawl-ref/source/rltiles/item/armor/combat_boots.bmp new file mode 100644 index 0000000000..9a2ccc35b3 Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/combat_boots.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/cornuthaum.bmp b/crawl-ref/source/rltiles/item/armor/cornuthaum.bmp new file mode 100644 index 0000000000..29a1adb70e Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/cornuthaum.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/crested_helmet.bmp b/crawl-ref/source/rltiles/item/armor/crested_helmet.bmp new file mode 100644 index 0000000000..21ddeab105 Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/crested_helmet.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/crystal_plate_mail.bmp b/crawl-ref/source/rltiles/item/armor/crystal_plate_mail.bmp new file mode 100644 index 0000000000..9890f1f3c9 Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/crystal_plate_mail.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/dented_pot.bmp b/crawl-ref/source/rltiles/item/armor/dented_pot.bmp new file mode 100644 index 0000000000..d65035bddc Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/dented_pot.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/dunce_cap.bmp b/crawl-ref/source/rltiles/item/armor/dunce_cap.bmp new file mode 100644 index 0000000000..29a1adb70e Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/dunce_cap.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/dwarven_ringmail.bmp b/crawl-ref/source/rltiles/item/armor/dwarven_ringmail.bmp new file mode 100644 index 0000000000..672a7b7cb0 Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/dwarven_ringmail.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/dwarvish_cloak.bmp b/crawl-ref/source/rltiles/item/armor/dwarvish_cloak.bmp new file mode 100644 index 0000000000..1b96f658ee Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/dwarvish_cloak.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/dwarvish_iron_helm.bmp b/crawl-ref/source/rltiles/item/armor/dwarvish_iron_helm.bmp new file mode 100644 index 0000000000..4bfd413261 Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/dwarvish_iron_helm.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/dwarvish_mithril_coat.bmp b/crawl-ref/source/rltiles/item/armor/dwarvish_mithril_coat.bmp new file mode 100644 index 0000000000..f5fb214311 Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/dwarvish_mithril_coat.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/dwarvish_roundshield.bmp b/crawl-ref/source/rltiles/item/armor/dwarvish_roundshield.bmp new file mode 100644 index 0000000000..5a5a3d01b4 Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/dwarvish_roundshield.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/elven_cloak.bmp b/crawl-ref/source/rltiles/item/armor/elven_cloak.bmp new file mode 100644 index 0000000000..584fd9775c Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/elven_cloak.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/elven_leather_armor.bmp b/crawl-ref/source/rltiles/item/armor/elven_leather_armor.bmp new file mode 100644 index 0000000000..b4e94d5349 Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/elven_leather_armor.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/elven_leather_helm.bmp b/crawl-ref/source/rltiles/item/armor/elven_leather_helm.bmp new file mode 100644 index 0000000000..68f5bf9220 Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/elven_leather_helm.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/elven_mithril_coat.bmp b/crawl-ref/source/rltiles/item/armor/elven_mithril_coat.bmp new file mode 100644 index 0000000000..0bf6c84ac3 Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/elven_mithril_coat.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/elven_ringmail.bmp b/crawl-ref/source/rltiles/item/armor/elven_ringmail.bmp new file mode 100644 index 0000000000..03218d29ad Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/elven_ringmail.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/elven_scalemail.bmp b/crawl-ref/source/rltiles/item/armor/elven_scalemail.bmp new file mode 100644 index 0000000000..db38786b81 Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/elven_scalemail.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/elven_shield.bmp b/crawl-ref/source/rltiles/item/armor/elven_shield.bmp new file mode 100644 index 0000000000..59c19a8465 Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/elven_shield.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/etched_helmet.bmp b/crawl-ref/source/rltiles/item/armor/etched_helmet.bmp new file mode 100644 index 0000000000..46452f7718 Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/etched_helmet.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/fedora.bmp b/crawl-ref/source/rltiles/item/armor/fedora.bmp new file mode 100644 index 0000000000..25a775e857 Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/fedora.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/fencing_gloves.bmp b/crawl-ref/source/rltiles/item/armor/fencing_gloves.bmp new file mode 100644 index 0000000000..976c88601c Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/fencing_gloves.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/gauntlet1.bmp b/crawl-ref/source/rltiles/item/armor/gauntlet1.bmp new file mode 100644 index 0000000000..63f06ad6f7 Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/gauntlet1.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/gauntlet2.bmp b/crawl-ref/source/rltiles/item/armor/gauntlet2.bmp new file mode 100644 index 0000000000..b5a03dc798 Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/gauntlet2.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/glove1.bmp b/crawl-ref/source/rltiles/item/armor/glove1.bmp new file mode 100644 index 0000000000..3330fbe9a3 Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/glove1.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/glove2.bmp b/crawl-ref/source/rltiles/item/armor/glove2.bmp new file mode 100644 index 0000000000..90414e92b1 Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/glove2.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/glove3.bmp b/crawl-ref/source/rltiles/item/armor/glove3.bmp new file mode 100644 index 0000000000..9325b28c06 Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/glove3.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/glove4.bmp b/crawl-ref/source/rltiles/item/armor/glove4.bmp new file mode 100644 index 0000000000..30b181e589 Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/glove4.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/glove5.bmp b/crawl-ref/source/rltiles/item/armor/glove5.bmp new file mode 100644 index 0000000000..dc0e23ee51 Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/glove5.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/glove6.bmp b/crawl-ref/source/rltiles/item/armor/glove6.bmp new file mode 100644 index 0000000000..8f8d1b3889 Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/glove6.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/gold_dragon_armour.bmp b/crawl-ref/source/rltiles/item/armor/gold_dragon_armour.bmp new file mode 100644 index 0000000000..92ee59d577 Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/gold_dragon_armour.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/gold_dragon_hide.bmp b/crawl-ref/source/rltiles/item/armor/gold_dragon_hide.bmp new file mode 100644 index 0000000000..f90873fd67 Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/gold_dragon_hide.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/gray_dragon_scale_mail.bmp b/crawl-ref/source/rltiles/item/armor/gray_dragon_scale_mail.bmp new file mode 100644 index 0000000000..bc73175f4a Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/gray_dragon_scale_mail.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/gray_dragon_scales.bmp b/crawl-ref/source/rltiles/item/armor/gray_dragon_scales.bmp new file mode 100644 index 0000000000..548997446e Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/gray_dragon_scales.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/green_dragon_scale_mail.bmp b/crawl-ref/source/rltiles/item/armor/green_dragon_scale_mail.bmp new file mode 100644 index 0000000000..5acac08d1a Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/green_dragon_scale_mail.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/green_dragon_scales.bmp b/crawl-ref/source/rltiles/item/armor/green_dragon_scales.bmp new file mode 100644 index 0000000000..8d07c38bda Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/green_dragon_scales.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/hat1.bmp b/crawl-ref/source/rltiles/item/armor/hat1.bmp new file mode 100644 index 0000000000..c2f9a06a20 Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/hat1.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/hawaiian_shirt.bmp b/crawl-ref/source/rltiles/item/armor/hawaiian_shirt.bmp new file mode 100644 index 0000000000..25fd0d3d2e Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/hawaiian_shirt.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/helm2.bmp b/crawl-ref/source/rltiles/item/armor/helm2.bmp new file mode 100644 index 0000000000..0215df061f Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/helm2.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/helm3.bmp b/crawl-ref/source/rltiles/item/armor/helm3.bmp new file mode 100644 index 0000000000..e1a61b3b2a Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/helm3.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/helm_green.bmp b/crawl-ref/source/rltiles/item/armor/helm_green.bmp new file mode 100644 index 0000000000..137b765f3a Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/helm_green.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/helm_visor1.bmp b/crawl-ref/source/rltiles/item/armor/helm_visor1.bmp new file mode 100644 index 0000000000..46ca2b7cd7 Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/helm_visor1.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/hiking_boots.bmp b/crawl-ref/source/rltiles/item/armor/hiking_boots.bmp new file mode 100644 index 0000000000..82255d4fe1 Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/hiking_boots.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/ice_dragon_armour.bmp b/crawl-ref/source/rltiles/item/armor/ice_dragon_armour.bmp new file mode 100644 index 0000000000..2ec519220d Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/ice_dragon_armour.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/ice_dragon_hide.bmp b/crawl-ref/source/rltiles/item/armor/ice_dragon_hide.bmp new file mode 100644 index 0000000000..d4ebd91058 Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/ice_dragon_hide.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/iron_shoes.bmp b/crawl-ref/source/rltiles/item/armor/iron_shoes.bmp new file mode 100644 index 0000000000..dca5d2e296 Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/iron_shoes.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/jackboots.bmp b/crawl-ref/source/rltiles/item/armor/jackboots.bmp new file mode 100644 index 0000000000..b410eee34b Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/jackboots.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/jungle_boots.bmp b/crawl-ref/source/rltiles/item/armor/jungle_boots.bmp new file mode 100644 index 0000000000..509d4dd2d5 Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/jungle_boots.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/large_shield.bmp b/crawl-ref/source/rltiles/item/armor/large_shield.bmp new file mode 100644 index 0000000000..84b263796b Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/large_shield.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/leather_armor.bmp b/crawl-ref/source/rltiles/item/armor/leather_armor.bmp new file mode 100644 index 0000000000..50131c63e1 Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/leather_armor.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/leather_armor2.bmp b/crawl-ref/source/rltiles/item/armor/leather_armor2.bmp new file mode 100644 index 0000000000..05d61f7c13 Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/leather_armor2.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/leather_armor3.bmp b/crawl-ref/source/rltiles/item/armor/leather_armor3.bmp new file mode 100644 index 0000000000..9c4ded5edd Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/leather_armor3.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/leather_armor4.bmp b/crawl-ref/source/rltiles/item/armor/leather_armor4.bmp new file mode 100644 index 0000000000..81704640db Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/leather_armor4.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/leather_armour2.bmp b/crawl-ref/source/rltiles/item/armor/leather_armour2.bmp new file mode 100644 index 0000000000..29e6859664 Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/leather_armour2.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/leather_cloak.bmp b/crawl-ref/source/rltiles/item/armor/leather_cloak.bmp new file mode 100644 index 0000000000..3d4e804bb7 Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/leather_cloak.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/leather_jacket.bmp b/crawl-ref/source/rltiles/item/armor/leather_jacket.bmp new file mode 100644 index 0000000000..b9c4f00891 Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/leather_jacket.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/low_boots.bmp b/crawl-ref/source/rltiles/item/armor/low_boots.bmp new file mode 100644 index 0000000000..89caccbfbb Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/low_boots.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/mottled_dragon_hide.bmp b/crawl-ref/source/rltiles/item/armor/mottled_dragon_hide.bmp new file mode 100644 index 0000000000..34e941cd8c Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/mottled_dragon_hide.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/mpttled_dragon_armour.bmp b/crawl-ref/source/rltiles/item/armor/mpttled_dragon_armour.bmp new file mode 100644 index 0000000000..83b0385fb6 Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/mpttled_dragon_armour.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/mud_boots.bmp b/crawl-ref/source/rltiles/item/armor/mud_boots.bmp new file mode 100644 index 0000000000..2ab2f6c09d Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/mud_boots.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/mummy_wrapping.bmp b/crawl-ref/source/rltiles/item/armor/mummy_wrapping.bmp new file mode 100644 index 0000000000..4d2264d86a Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/mummy_wrapping.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/naga_barding.bmp b/crawl-ref/source/rltiles/item/armor/naga_barding.bmp new file mode 100644 index 0000000000..84c6a26032 Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/naga_barding.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/oilskin_cloak.bmp b/crawl-ref/source/rltiles/item/armor/oilskin_cloak.bmp new file mode 100644 index 0000000000..f80aa2e8d0 Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/oilskin_cloak.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/old_gloves.bmp b/crawl-ref/source/rltiles/item/armor/old_gloves.bmp new file mode 100644 index 0000000000..e13b54b1b9 Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/old_gloves.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/opera_cloak.bmp b/crawl-ref/source/rltiles/item/armor/opera_cloak.bmp new file mode 100644 index 0000000000..cb9344b264 Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/opera_cloak.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/orange_dragon_scale_mail.bmp b/crawl-ref/source/rltiles/item/armor/orange_dragon_scale_mail.bmp new file mode 100644 index 0000000000..97ed86b924 Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/orange_dragon_scale_mail.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/orange_dragon_scales.bmp b/crawl-ref/source/rltiles/item/armor/orange_dragon_scales.bmp new file mode 100644 index 0000000000..6bc89f3fad Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/orange_dragon_scales.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/orcish_chain_mail.bmp b/crawl-ref/source/rltiles/item/armor/orcish_chain_mail.bmp new file mode 100644 index 0000000000..4de0c46f0d Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/orcish_chain_mail.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/orcish_cloak.bmp b/crawl-ref/source/rltiles/item/armor/orcish_cloak.bmp new file mode 100644 index 0000000000..e3fb87b3fb Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/orcish_cloak.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/orcish_helm.bmp b/crawl-ref/source/rltiles/item/armor/orcish_helm.bmp new file mode 100644 index 0000000000..6ed9673773 Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/orcish_helm.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/orcish_leather_armor.bmp b/crawl-ref/source/rltiles/item/armor/orcish_leather_armor.bmp new file mode 100644 index 0000000000..53e1b9a281 Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/orcish_leather_armor.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/orcish_platemail.bmp b/crawl-ref/source/rltiles/item/armor/orcish_platemail.bmp new file mode 100644 index 0000000000..07389f4b84 Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/orcish_platemail.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/orcish_ring_mail.bmp b/crawl-ref/source/rltiles/item/armor/orcish_ring_mail.bmp new file mode 100644 index 0000000000..79ebcbd115 Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/orcish_ring_mail.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/orcish_ringmail.bmp b/crawl-ref/source/rltiles/item/armor/orcish_ringmail.bmp new file mode 100644 index 0000000000..a646525bd8 Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/orcish_ringmail.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/orcish_shield.bmp b/crawl-ref/source/rltiles/item/armor/orcish_shield.bmp new file mode 100644 index 0000000000..5fd3ae3fe6 Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/orcish_shield.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/ornamental_cope.bmp b/crawl-ref/source/rltiles/item/armor/ornamental_cope.bmp new file mode 100644 index 0000000000..d0f83e4fa5 Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/ornamental_cope.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/padded_gloves.bmp b/crawl-ref/source/rltiles/item/armor/padded_gloves.bmp new file mode 100644 index 0000000000..8253f3873f Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/padded_gloves.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/piece_of_cloth.bmp b/crawl-ref/source/rltiles/item/armor/piece_of_cloth.bmp new file mode 100644 index 0000000000..15b1547b2e Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/piece_of_cloth.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/plate_mail.bmp b/crawl-ref/source/rltiles/item/armor/plate_mail.bmp new file mode 100644 index 0000000000..c89aa22d70 Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/plate_mail.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/plate_mail2.bmp b/crawl-ref/source/rltiles/item/armor/plate_mail2.bmp new file mode 100644 index 0000000000..b399550709 Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/plate_mail2.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/plumed_helmet.bmp b/crawl-ref/source/rltiles/item/armor/plumed_helmet.bmp new file mode 100644 index 0000000000..f4738f187a Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/plumed_helmet.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/red_dragon_scale_mail.bmp b/crawl-ref/source/rltiles/item/armor/red_dragon_scale_mail.bmp new file mode 100644 index 0000000000..12c4b11aa2 Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/red_dragon_scale_mail.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/red_dragon_scales.bmp b/crawl-ref/source/rltiles/item/armor/red_dragon_scales.bmp new file mode 100644 index 0000000000..8848b78d67 Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/red_dragon_scales.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/riding_boots.bmp b/crawl-ref/source/rltiles/item/armor/riding_boots.bmp new file mode 100644 index 0000000000..2085fa6a6b Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/riding_boots.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/riding_gloves.bmp b/crawl-ref/source/rltiles/item/armor/riding_gloves.bmp new file mode 100644 index 0000000000..5fcc6ccf79 Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/riding_gloves.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/ring_mail.bmp b/crawl-ref/source/rltiles/item/armor/ring_mail.bmp new file mode 100644 index 0000000000..1f712d114c Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/ring_mail.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/ring_mail2.bmp b/crawl-ref/source/rltiles/item/armor/ring_mail2.bmp new file mode 100644 index 0000000000..fb89d40626 Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/ring_mail2.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/robe.bmp b/crawl-ref/source/rltiles/item/armor/robe.bmp new file mode 100644 index 0000000000..2ff5a723ca Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/robe.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/robe2.bmp b/crawl-ref/source/rltiles/item/armor/robe2.bmp new file mode 100644 index 0000000000..574f07a924 Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/robe2.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/robe3.bmp b/crawl-ref/source/rltiles/item/armor/robe3.bmp new file mode 100644 index 0000000000..2c4ba12020 Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/robe3.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/s_suit.bmp b/crawl-ref/source/rltiles/item/armor/s_suit.bmp new file mode 100644 index 0000000000..9c67095935 Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/s_suit.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/scale_mail.bmp b/crawl-ref/source/rltiles/item/armor/scale_mail.bmp new file mode 100644 index 0000000000..948c03bbf0 Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/scale_mail.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/scale_mail2.bmp b/crawl-ref/source/rltiles/item/armor/scale_mail2.bmp new file mode 100644 index 0000000000..849dd32522 Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/scale_mail2.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/shield2.bmp b/crawl-ref/source/rltiles/item/armor/shield2.bmp new file mode 100644 index 0000000000..a85e9212d1 Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/shield2.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/shield_gondor.bmp b/crawl-ref/source/rltiles/item/armor/shield_gondor.bmp new file mode 100644 index 0000000000..7b85ddc09d Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/shield_gondor.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/shield_kite2.bmp b/crawl-ref/source/rltiles/item/armor/shield_kite2.bmp new file mode 100644 index 0000000000..112ca952cf Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/shield_kite2.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/shield_kite3.bmp b/crawl-ref/source/rltiles/item/armor/shield_kite3.bmp new file mode 100644 index 0000000000..f9c9ed4894 Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/shield_kite3.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/shield_large2.bmp b/crawl-ref/source/rltiles/item/armor/shield_large2.bmp new file mode 100644 index 0000000000..7c39cb6b7b Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/shield_large2.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/shield_large3.bmp b/crawl-ref/source/rltiles/item/armor/shield_large3.bmp new file mode 100644 index 0000000000..ce8e6860b9 Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/shield_large3.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/shield_large4.bmp b/crawl-ref/source/rltiles/item/armor/shield_large4.bmp new file mode 100644 index 0000000000..702952c644 Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/shield_large4.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/shield_of_reflection.bmp b/crawl-ref/source/rltiles/item/armor/shield_of_reflection.bmp new file mode 100644 index 0000000000..adc66af9ed Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/shield_of_reflection.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/shield_rohan.bmp b/crawl-ref/source/rltiles/item/armor/shield_rohan.bmp new file mode 100644 index 0000000000..dc56cba695 Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/shield_rohan.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/shield_round2.bmp b/crawl-ref/source/rltiles/item/armor/shield_round2.bmp new file mode 100644 index 0000000000..23622af659 Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/shield_round2.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/shimmering_dragon_scale_mail.bmp b/crawl-ref/source/rltiles/item/armor/shimmering_dragon_scale_mail.bmp new file mode 100644 index 0000000000..8a096daf85 Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/shimmering_dragon_scale_mail.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/shimmering_dragon_scales.bmp b/crawl-ref/source/rltiles/item/armor/shimmering_dragon_scales.bmp new file mode 100644 index 0000000000..79bd19d5a4 Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/shimmering_dragon_scales.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/silver_dragon_scale_mail.bmp b/crawl-ref/source/rltiles/item/armor/silver_dragon_scale_mail.bmp new file mode 100644 index 0000000000..a776ec57b8 Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/silver_dragon_scale_mail.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/silver_dragon_scales.bmp b/crawl-ref/source/rltiles/item/armor/silver_dragon_scales.bmp new file mode 100644 index 0000000000..ff41774ccf Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/silver_dragon_scales.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/small_shield.bmp b/crawl-ref/source/rltiles/item/armor/small_shield.bmp new file mode 100644 index 0000000000..b726614be2 Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/small_shield.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/small_shield2.bmp b/crawl-ref/source/rltiles/item/armor/small_shield2.bmp new file mode 100644 index 0000000000..10c45400f4 Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/small_shield2.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/snow_boots.bmp b/crawl-ref/source/rltiles/item/armor/snow_boots.bmp new file mode 100644 index 0000000000..ccecd209c3 Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/snow_boots.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/splint_mail.bmp b/crawl-ref/source/rltiles/item/armor/splint_mail.bmp new file mode 100644 index 0000000000..1f8c3a1e1a Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/splint_mail.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/studded_leather_armor.bmp b/crawl-ref/source/rltiles/item/armor/studded_leather_armor.bmp new file mode 100644 index 0000000000..806666bde4 Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/studded_leather_armor.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/swamp_dragon_armour.bmp b/crawl-ref/source/rltiles/item/armor/swamp_dragon_armour.bmp new file mode 100644 index 0000000000..4ab9b6d81c Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/swamp_dragon_armour.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/swamp_dragon_hide.bmp b/crawl-ref/source/rltiles/item/armor/swamp_dragon_hide.bmp new file mode 100644 index 0000000000..9e9fecb5e4 Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/swamp_dragon_hide.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/t_shirt.bmp b/crawl-ref/source/rltiles/item/armor/t_shirt.bmp new file mode 100644 index 0000000000..67d4585227 Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/t_shirt.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/tattered_cape.bmp b/crawl-ref/source/rltiles/item/armor/tattered_cape.bmp new file mode 100644 index 0000000000..cb923ff2d4 Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/tattered_cape.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/troll_hide.bmp b/crawl-ref/source/rltiles/item/armor/troll_hide.bmp new file mode 100644 index 0000000000..c971cbdacf Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/troll_hide.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/troll_leather_armour.bmp b/crawl-ref/source/rltiles/item/armor/troll_leather_armour.bmp new file mode 100644 index 0000000000..296635413a Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/troll_leather_armour.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/urand_alchemist.bmp b/crawl-ref/source/rltiles/item/armor/urand_alchemist.bmp new file mode 100644 index 0000000000..9707631e80 Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/urand_alchemist.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/urand_assassin.bmp b/crawl-ref/source/rltiles/item/armor/urand_assassin.bmp new file mode 100644 index 0000000000..c2bf75e798 Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/urand_assassin.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/urand_augmentation.bmp b/crawl-ref/source/rltiles/item/armor/urand_augmentation.bmp new file mode 100644 index 0000000000..0a6403d99d Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/urand_augmentation.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/urand_bullseye.bmp b/crawl-ref/source/rltiles/item/armor/urand_bullseye.bmp new file mode 100644 index 0000000000..63afb41c02 Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/urand_bullseye.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/urand_dragon_king.bmp b/crawl-ref/source/rltiles/item/armor/urand_dragon_king.bmp new file mode 100644 index 0000000000..9cf4f7fb40 Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/urand_dragon_king.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/urand_dragonmask.bmp b/crawl-ref/source/rltiles/item/armor/urand_dragonmask.bmp new file mode 100644 index 0000000000..de64ff5f7a Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/urand_dragonmask.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/urand_dyrovepreva.bmp b/crawl-ref/source/rltiles/item/armor/urand_dyrovepreva.bmp new file mode 100644 index 0000000000..194add6f90 Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/urand_dyrovepreva.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/urand_edison.bmp b/crawl-ref/source/rltiles/item/armor/urand_edison.bmp new file mode 100644 index 0000000000..009794e305 Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/urand_edison.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/urand_fencer.bmp b/crawl-ref/source/rltiles/item/armor/urand_fencer.bmp new file mode 100644 index 0000000000..44aa9f6b1d Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/urand_fencer.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/urand_flash.bmp b/crawl-ref/source/rltiles/item/armor/urand_flash.bmp new file mode 100644 index 0000000000..348b49eeee Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/urand_flash.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/urand_folly.bmp b/crawl-ref/source/rltiles/item/armor/urand_folly.bmp new file mode 100644 index 0000000000..74325c3a5b Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/urand_folly.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/urand_ignorance.bmp b/crawl-ref/source/rltiles/item/armor/urand_ignorance.bmp new file mode 100644 index 0000000000..d1b0da504b Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/urand_ignorance.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/urand_lear.bmp b/crawl-ref/source/rltiles/item/armor/urand_lear.bmp new file mode 100644 index 0000000000..f445c6c83a Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/urand_lear.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/urand_misfortune.bmp b/crawl-ref/source/rltiles/item/armor/urand_misfortune.bmp new file mode 100644 index 0000000000..a4ea99ea90 Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/urand_misfortune.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/urand_night.bmp b/crawl-ref/source/rltiles/item/armor/urand_night.bmp new file mode 100644 index 0000000000..e77d13c83a Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/urand_night.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/urand_resistance.bmp b/crawl-ref/source/rltiles/item/armor/urand_resistance.bmp new file mode 100644 index 0000000000..1bad9fd7ef Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/urand_resistance.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/urand_salamander.bmp b/crawl-ref/source/rltiles/item/armor/urand_salamander.bmp new file mode 100644 index 0000000000..f7b523f4a7 Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/urand_salamander.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/urand_thief.bmp b/crawl-ref/source/rltiles/item/armor/urand_thief.bmp new file mode 100644 index 0000000000..9519d57776 Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/urand_thief.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/urand_war.bmp b/crawl-ref/source/rltiles/item/armor/urand_war.bmp new file mode 100644 index 0000000000..1c94668235 Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/urand_war.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/urand_zhor.bmp b/crawl-ref/source/rltiles/item/armor/urand_zhor.bmp new file mode 100644 index 0000000000..7610f04d30 Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/urand_zhor.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/urand_zin.bmp b/crawl-ref/source/rltiles/item/armor/urand_zin.bmp new file mode 100644 index 0000000000..e927202984 Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/urand_zin.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/uruk_hai_shield.bmp b/crawl-ref/source/rltiles/item/armor/uruk_hai_shield.bmp new file mode 100644 index 0000000000..c3236d7f2b Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/uruk_hai_shield.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/visored_helmet.bmp b/crawl-ref/source/rltiles/item/armor/visored_helmet.bmp new file mode 100644 index 0000000000..4b6a086298 Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/visored_helmet.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/white_dragon_scale_mail.bmp b/crawl-ref/source/rltiles/item/armor/white_dragon_scale_mail.bmp new file mode 100644 index 0000000000..842f821036 Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/white_dragon_scale_mail.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/white_dragon_scales.bmp b/crawl-ref/source/rltiles/item/armor/white_dragon_scales.bmp new file mode 100644 index 0000000000..a636864e7b Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/white_dragon_scales.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/wizard_hat.bmp b/crawl-ref/source/rltiles/item/armor/wizard_hat.bmp new file mode 100644 index 0000000000..401d4aa911 Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/wizard_hat.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/wizard_hat2.bmp b/crawl-ref/source/rltiles/item/armor/wizard_hat2.bmp new file mode 100644 index 0000000000..91663a15db Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/wizard_hat2.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/yellow_dragon_scale_mail.bmp b/crawl-ref/source/rltiles/item/armor/yellow_dragon_scale_mail.bmp new file mode 100644 index 0000000000..f50da88b0a Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/yellow_dragon_scale_mail.bmp differ diff --git a/crawl-ref/source/rltiles/item/armor/yellow_dragon_scales.bmp b/crawl-ref/source/rltiles/item/armor/yellow_dragon_scales.bmp new file mode 100644 index 0000000000..66c420438a Binary files /dev/null and b/crawl-ref/source/rltiles/item/armor/yellow_dragon_scales.bmp differ diff --git a/crawl-ref/source/rltiles/item/book/blank_paper.bmp b/crawl-ref/source/rltiles/item/book/blank_paper.bmp new file mode 100644 index 0000000000..8f238611e2 Binary files /dev/null and b/crawl-ref/source/rltiles/item/book/blank_paper.bmp differ diff --git a/crawl-ref/source/rltiles/item/book/book_of_the_dead.bmp b/crawl-ref/source/rltiles/item/book/book_of_the_dead.bmp new file mode 100644 index 0000000000..54c26004f9 Binary files /dev/null and b/crawl-ref/source/rltiles/item/book/book_of_the_dead.bmp differ diff --git a/crawl-ref/source/rltiles/item/book/bronze.bmp b/crawl-ref/source/rltiles/item/book/bronze.bmp new file mode 100644 index 0000000000..cac9eb344d Binary files /dev/null and b/crawl-ref/source/rltiles/item/book/bronze.bmp differ diff --git a/crawl-ref/source/rltiles/item/book/cloth.bmp b/crawl-ref/source/rltiles/item/book/cloth.bmp new file mode 100644 index 0000000000..f09552bc99 Binary files /dev/null and b/crawl-ref/source/rltiles/item/book/cloth.bmp differ diff --git a/crawl-ref/source/rltiles/item/book/copper.bmp b/crawl-ref/source/rltiles/item/book/copper.bmp new file mode 100644 index 0000000000..05e4dde195 Binary files /dev/null and b/crawl-ref/source/rltiles/item/book/copper.bmp differ diff --git a/crawl-ref/source/rltiles/item/book/cyan.bmp b/crawl-ref/source/rltiles/item/book/cyan.bmp new file mode 100644 index 0000000000..bbe3057dfc Binary files /dev/null and b/crawl-ref/source/rltiles/item/book/cyan.bmp differ diff --git a/crawl-ref/source/rltiles/item/book/dark_blue.bmp b/crawl-ref/source/rltiles/item/book/dark_blue.bmp new file mode 100644 index 0000000000..96cda910c4 Binary files /dev/null and b/crawl-ref/source/rltiles/item/book/dark_blue.bmp differ diff --git a/crawl-ref/source/rltiles/item/book/dark_brown.bmp b/crawl-ref/source/rltiles/item/book/dark_brown.bmp new file mode 100644 index 0000000000..a3482da7d0 Binary files /dev/null and b/crawl-ref/source/rltiles/item/book/dark_brown.bmp differ diff --git a/crawl-ref/source/rltiles/item/book/dark_gray.bmp b/crawl-ref/source/rltiles/item/book/dark_gray.bmp new file mode 100644 index 0000000000..cb46f30f6d Binary files /dev/null and b/crawl-ref/source/rltiles/item/book/dark_gray.bmp differ diff --git a/crawl-ref/source/rltiles/item/book/dark_green.bmp b/crawl-ref/source/rltiles/item/book/dark_green.bmp new file mode 100644 index 0000000000..dd1cdd347f Binary files /dev/null and b/crawl-ref/source/rltiles/item/book/dark_green.bmp differ diff --git a/crawl-ref/source/rltiles/item/book/dog_eared.bmp b/crawl-ref/source/rltiles/item/book/dog_eared.bmp new file mode 100644 index 0000000000..d5337eacdc Binary files /dev/null and b/crawl-ref/source/rltiles/item/book/dog_eared.bmp differ diff --git a/crawl-ref/source/rltiles/item/book/dull.bmp b/crawl-ref/source/rltiles/item/book/dull.bmp new file mode 100644 index 0000000000..20cd183cd9 Binary files /dev/null and b/crawl-ref/source/rltiles/item/book/dull.bmp differ diff --git a/crawl-ref/source/rltiles/item/book/dusty.bmp b/crawl-ref/source/rltiles/item/book/dusty.bmp new file mode 100644 index 0000000000..b308f89651 Binary files /dev/null and b/crawl-ref/source/rltiles/item/book/dusty.bmp differ diff --git a/crawl-ref/source/rltiles/item/book/glittering.bmp b/crawl-ref/source/rltiles/item/book/glittering.bmp new file mode 100644 index 0000000000..8dbe47f632 Binary files /dev/null and b/crawl-ref/source/rltiles/item/book/glittering.bmp differ diff --git a/crawl-ref/source/rltiles/item/book/gold.bmp b/crawl-ref/source/rltiles/item/book/gold.bmp new file mode 100644 index 0000000000..265f64d658 Binary files /dev/null and b/crawl-ref/source/rltiles/item/book/gold.bmp differ diff --git a/crawl-ref/source/rltiles/item/book/gray.bmp b/crawl-ref/source/rltiles/item/book/gray.bmp new file mode 100644 index 0000000000..28f3abf0b1 Binary files /dev/null and b/crawl-ref/source/rltiles/item/book/gray.bmp differ diff --git a/crawl-ref/source/rltiles/item/book/indigo.bmp b/crawl-ref/source/rltiles/item/book/indigo.bmp new file mode 100644 index 0000000000..657ce7e459 Binary files /dev/null and b/crawl-ref/source/rltiles/item/book/indigo.bmp differ diff --git a/crawl-ref/source/rltiles/item/book/leather.bmp b/crawl-ref/source/rltiles/item/book/leather.bmp new file mode 100644 index 0000000000..5aeeb4eb86 Binary files /dev/null and b/crawl-ref/source/rltiles/item/book/leather.bmp differ diff --git a/crawl-ref/source/rltiles/item/book/light_blue.bmp b/crawl-ref/source/rltiles/item/book/light_blue.bmp new file mode 100644 index 0000000000..b1f412c061 Binary files /dev/null and b/crawl-ref/source/rltiles/item/book/light_blue.bmp differ diff --git a/crawl-ref/source/rltiles/item/book/light_brown.bmp b/crawl-ref/source/rltiles/item/book/light_brown.bmp new file mode 100644 index 0000000000..a6b230356e Binary files /dev/null and b/crawl-ref/source/rltiles/item/book/light_brown.bmp differ diff --git a/crawl-ref/source/rltiles/item/book/light_gray.bmp b/crawl-ref/source/rltiles/item/book/light_gray.bmp new file mode 100644 index 0000000000..f2120aef47 Binary files /dev/null and b/crawl-ref/source/rltiles/item/book/light_gray.bmp differ diff --git a/crawl-ref/source/rltiles/item/book/light_green.bmp b/crawl-ref/source/rltiles/item/book/light_green.bmp new file mode 100644 index 0000000000..a2b6bd19ab Binary files /dev/null and b/crawl-ref/source/rltiles/item/book/light_green.bmp differ diff --git a/crawl-ref/source/rltiles/item/book/magenta.bmp b/crawl-ref/source/rltiles/item/book/magenta.bmp new file mode 100644 index 0000000000..044657810c Binary files /dev/null and b/crawl-ref/source/rltiles/item/book/magenta.bmp differ diff --git a/crawl-ref/source/rltiles/item/book/metal_blue.bmp b/crawl-ref/source/rltiles/item/book/metal_blue.bmp new file mode 100644 index 0000000000..fd8e3afbff Binary files /dev/null and b/crawl-ref/source/rltiles/item/book/metal_blue.bmp differ diff --git a/crawl-ref/source/rltiles/item/book/metal_cyan.bmp b/crawl-ref/source/rltiles/item/book/metal_cyan.bmp new file mode 100644 index 0000000000..7d9f2c9639 Binary files /dev/null and b/crawl-ref/source/rltiles/item/book/metal_cyan.bmp differ diff --git a/crawl-ref/source/rltiles/item/book/metal_green.bmp b/crawl-ref/source/rltiles/item/book/metal_green.bmp new file mode 100644 index 0000000000..d515269299 Binary files /dev/null and b/crawl-ref/source/rltiles/item/book/metal_green.bmp differ diff --git a/crawl-ref/source/rltiles/item/book/mottled.bmp b/crawl-ref/source/rltiles/item/book/mottled.bmp new file mode 100644 index 0000000000..32b39ed36a Binary files /dev/null and b/crawl-ref/source/rltiles/item/book/mottled.bmp differ diff --git a/crawl-ref/source/rltiles/item/book/orange.bmp b/crawl-ref/source/rltiles/item/book/orange.bmp new file mode 100644 index 0000000000..1f7e81e6c6 Binary files /dev/null and b/crawl-ref/source/rltiles/item/book/orange.bmp differ diff --git a/crawl-ref/source/rltiles/item/book/parchment.bmp b/crawl-ref/source/rltiles/item/book/parchment.bmp new file mode 100644 index 0000000000..786f7afa83 Binary files /dev/null and b/crawl-ref/source/rltiles/item/book/parchment.bmp differ diff --git a/crawl-ref/source/rltiles/item/book/pink.bmp b/crawl-ref/source/rltiles/item/book/pink.bmp new file mode 100644 index 0000000000..0f727bfdfe Binary files /dev/null and b/crawl-ref/source/rltiles/item/book/pink.bmp differ diff --git a/crawl-ref/source/rltiles/item/book/plaid.bmp b/crawl-ref/source/rltiles/item/book/plaid.bmp new file mode 100644 index 0000000000..1389b80e46 Binary files /dev/null and b/crawl-ref/source/rltiles/item/book/plaid.bmp differ diff --git a/crawl-ref/source/rltiles/item/book/purple.bmp b/crawl-ref/source/rltiles/item/book/purple.bmp new file mode 100644 index 0000000000..1d6ab6d7a7 Binary files /dev/null and b/crawl-ref/source/rltiles/item/book/purple.bmp differ diff --git a/crawl-ref/source/rltiles/item/book/ragged.bmp b/crawl-ref/source/rltiles/item/book/ragged.bmp new file mode 100644 index 0000000000..4165d94ebc Binary files /dev/null and b/crawl-ref/source/rltiles/item/book/ragged.bmp differ diff --git a/crawl-ref/source/rltiles/item/book/red.bmp b/crawl-ref/source/rltiles/item/book/red.bmp new file mode 100644 index 0000000000..78d2f630b4 Binary files /dev/null and b/crawl-ref/source/rltiles/item/book/red.bmp differ diff --git a/crawl-ref/source/rltiles/item/book/shining.bmp b/crawl-ref/source/rltiles/item/book/shining.bmp new file mode 100644 index 0000000000..89760bb44d Binary files /dev/null and b/crawl-ref/source/rltiles/item/book/shining.bmp differ diff --git a/crawl-ref/source/rltiles/item/book/silver.bmp b/crawl-ref/source/rltiles/item/book/silver.bmp new file mode 100644 index 0000000000..dc52c434f3 Binary files /dev/null and b/crawl-ref/source/rltiles/item/book/silver.bmp differ diff --git a/crawl-ref/source/rltiles/item/book/stained.bmp b/crawl-ref/source/rltiles/item/book/stained.bmp new file mode 100644 index 0000000000..00320c074e Binary files /dev/null and b/crawl-ref/source/rltiles/item/book/stained.bmp differ diff --git a/crawl-ref/source/rltiles/item/book/tan.bmp b/crawl-ref/source/rltiles/item/book/tan.bmp new file mode 100644 index 0000000000..528ca8d3da Binary files /dev/null and b/crawl-ref/source/rltiles/item/book/tan.bmp differ diff --git a/crawl-ref/source/rltiles/item/book/thick.bmp b/crawl-ref/source/rltiles/item/book/thick.bmp new file mode 100644 index 0000000000..d095611f3e Binary files /dev/null and b/crawl-ref/source/rltiles/item/book/thick.bmp differ diff --git a/crawl-ref/source/rltiles/item/book/thin.bmp b/crawl-ref/source/rltiles/item/book/thin.bmp new file mode 100644 index 0000000000..a13cc5d249 Binary files /dev/null and b/crawl-ref/source/rltiles/item/book/thin.bmp differ diff --git a/crawl-ref/source/rltiles/item/book/turquoise.bmp b/crawl-ref/source/rltiles/item/book/turquoise.bmp new file mode 100644 index 0000000000..c161a88cc6 Binary files /dev/null and b/crawl-ref/source/rltiles/item/book/turquoise.bmp differ diff --git a/crawl-ref/source/rltiles/item/book/vellum.bmp b/crawl-ref/source/rltiles/item/book/vellum.bmp new file mode 100644 index 0000000000..01d94acab4 Binary files /dev/null and b/crawl-ref/source/rltiles/item/book/vellum.bmp differ diff --git a/crawl-ref/source/rltiles/item/book/velvet.bmp b/crawl-ref/source/rltiles/item/book/velvet.bmp new file mode 100644 index 0000000000..d270223c13 Binary files /dev/null and b/crawl-ref/source/rltiles/item/book/velvet.bmp differ diff --git a/crawl-ref/source/rltiles/item/book/violet.bmp b/crawl-ref/source/rltiles/item/book/violet.bmp new file mode 100644 index 0000000000..fa919dcaf0 Binary files /dev/null and b/crawl-ref/source/rltiles/item/book/violet.bmp differ diff --git a/crawl-ref/source/rltiles/item/book/white.bmp b/crawl-ref/source/rltiles/item/book/white.bmp new file mode 100644 index 0000000000..37a9d5037b Binary files /dev/null and b/crawl-ref/source/rltiles/item/book/white.bmp differ diff --git a/crawl-ref/source/rltiles/item/book/wrinkled.bmp b/crawl-ref/source/rltiles/item/book/wrinkled.bmp new file mode 100644 index 0000000000..fdcaf383d3 Binary files /dev/null and b/crawl-ref/source/rltiles/item/book/wrinkled.bmp differ diff --git a/crawl-ref/source/rltiles/item/book/yellow.bmp b/crawl-ref/source/rltiles/item/book/yellow.bmp new file mode 100644 index 0000000000..24f85ce4fc Binary files /dev/null and b/crawl-ref/source/rltiles/item/book/yellow.bmp differ diff --git a/crawl-ref/source/rltiles/item/food/apple.bmp b/crawl-ref/source/rltiles/item/food/apple.bmp new file mode 100644 index 0000000000..3a2d70a78b Binary files /dev/null and b/crawl-ref/source/rltiles/item/food/apple.bmp differ diff --git a/crawl-ref/source/rltiles/item/food/apricot.bmp b/crawl-ref/source/rltiles/item/food/apricot.bmp new file mode 100644 index 0000000000..cade5025ed Binary files /dev/null and b/crawl-ref/source/rltiles/item/food/apricot.bmp differ diff --git a/crawl-ref/source/rltiles/item/food/banana.bmp b/crawl-ref/source/rltiles/item/food/banana.bmp new file mode 100644 index 0000000000..45b6ad4578 Binary files /dev/null and b/crawl-ref/source/rltiles/item/food/banana.bmp differ diff --git a/crawl-ref/source/rltiles/item/food/beef_jerky.bmp b/crawl-ref/source/rltiles/item/food/beef_jerky.bmp new file mode 100644 index 0000000000..ed0d005fba Binary files /dev/null and b/crawl-ref/source/rltiles/item/food/beef_jerky.bmp differ diff --git a/crawl-ref/source/rltiles/item/food/bone.bmp b/crawl-ref/source/rltiles/item/food/bone.bmp new file mode 100644 index 0000000000..7c99c1404a Binary files /dev/null and b/crawl-ref/source/rltiles/item/food/bone.bmp differ diff --git a/crawl-ref/source/rltiles/item/food/bread0.bmp b/crawl-ref/source/rltiles/item/food/bread0.bmp new file mode 100644 index 0000000000..43061a9e53 Binary files /dev/null and b/crawl-ref/source/rltiles/item/food/bread0.bmp differ diff --git a/crawl-ref/source/rltiles/item/food/bread_ration.bmp b/crawl-ref/source/rltiles/item/food/bread_ration.bmp new file mode 100644 index 0000000000..44b77e2978 Binary files /dev/null and b/crawl-ref/source/rltiles/item/food/bread_ration.bmp differ diff --git a/crawl-ref/source/rltiles/item/food/c_ration.bmp b/crawl-ref/source/rltiles/item/food/c_ration.bmp new file mode 100644 index 0000000000..116df9dc80 Binary files /dev/null and b/crawl-ref/source/rltiles/item/food/c_ration.bmp differ diff --git a/crawl-ref/source/rltiles/item/food/candy_bar.bmp b/crawl-ref/source/rltiles/item/food/candy_bar.bmp new file mode 100644 index 0000000000..620d7e2cdf Binary files /dev/null and b/crawl-ref/source/rltiles/item/food/candy_bar.bmp differ diff --git a/crawl-ref/source/rltiles/item/food/carrot.bmp b/crawl-ref/source/rltiles/item/food/carrot.bmp new file mode 100644 index 0000000000..1357338634 Binary files /dev/null and b/crawl-ref/source/rltiles/item/food/carrot.bmp differ diff --git a/crawl-ref/source/rltiles/item/food/cheese.bmp b/crawl-ref/source/rltiles/item/food/cheese.bmp new file mode 100644 index 0000000000..3913750b1d Binary files /dev/null and b/crawl-ref/source/rltiles/item/food/cheese.bmp differ diff --git a/crawl-ref/source/rltiles/item/food/chocorate.bmp b/crawl-ref/source/rltiles/item/food/chocorate.bmp new file mode 100644 index 0000000000..8189395be8 Binary files /dev/null and b/crawl-ref/source/rltiles/item/food/chocorate.bmp differ diff --git a/crawl-ref/source/rltiles/item/food/choko.bmp b/crawl-ref/source/rltiles/item/food/choko.bmp new file mode 100644 index 0000000000..793f31fc63 Binary files /dev/null and b/crawl-ref/source/rltiles/item/food/choko.bmp differ diff --git a/crawl-ref/source/rltiles/item/food/clove_of_garlic.bmp b/crawl-ref/source/rltiles/item/food/clove_of_garlic.bmp new file mode 100644 index 0000000000..a008a4a84d Binary files /dev/null and b/crawl-ref/source/rltiles/item/food/clove_of_garlic.bmp differ diff --git a/crawl-ref/source/rltiles/item/food/corpse.bmp b/crawl-ref/source/rltiles/item/food/corpse.bmp new file mode 100644 index 0000000000..a5133e438c Binary files /dev/null and b/crawl-ref/source/rltiles/item/food/corpse.bmp differ diff --git a/crawl-ref/source/rltiles/item/food/corpse_rotten.bmp b/crawl-ref/source/rltiles/item/food/corpse_rotten.bmp new file mode 100644 index 0000000000..d0764f9728 Binary files /dev/null and b/crawl-ref/source/rltiles/item/food/corpse_rotten.bmp differ diff --git a/crawl-ref/source/rltiles/item/food/cram_ration.bmp b/crawl-ref/source/rltiles/item/food/cram_ration.bmp new file mode 100644 index 0000000000..20d2d2d028 Binary files /dev/null and b/crawl-ref/source/rltiles/item/food/cram_ration.bmp differ diff --git a/crawl-ref/source/rltiles/item/food/cream_pie.bmp b/crawl-ref/source/rltiles/item/food/cream_pie.bmp new file mode 100644 index 0000000000..a288555ca8 Binary files /dev/null and b/crawl-ref/source/rltiles/item/food/cream_pie.bmp differ diff --git a/crawl-ref/source/rltiles/item/food/egg.bmp b/crawl-ref/source/rltiles/item/food/egg.bmp new file mode 100644 index 0000000000..4390c1a974 Binary files /dev/null and b/crawl-ref/source/rltiles/item/food/egg.bmp differ diff --git a/crawl-ref/source/rltiles/item/food/eucalyptus_leaf.bmp b/crawl-ref/source/rltiles/item/food/eucalyptus_leaf.bmp new file mode 100644 index 0000000000..b1c60db9f3 Binary files /dev/null and b/crawl-ref/source/rltiles/item/food/eucalyptus_leaf.bmp differ diff --git a/crawl-ref/source/rltiles/item/food/food_ration.bmp b/crawl-ref/source/rltiles/item/food/food_ration.bmp new file mode 100644 index 0000000000..3842312aee Binary files /dev/null and b/crawl-ref/source/rltiles/item/food/food_ration.bmp differ diff --git a/crawl-ref/source/rltiles/item/food/fortune_cookie.bmp b/crawl-ref/source/rltiles/item/food/fortune_cookie.bmp new file mode 100644 index 0000000000..718644cd96 Binary files /dev/null and b/crawl-ref/source/rltiles/item/food/fortune_cookie.bmp differ diff --git a/crawl-ref/source/rltiles/item/food/grape.bmp b/crawl-ref/source/rltiles/item/food/grape.bmp new file mode 100644 index 0000000000..c4a7d879f9 Binary files /dev/null and b/crawl-ref/source/rltiles/item/food/grape.bmp differ diff --git a/crawl-ref/source/rltiles/item/food/honeycomb.bmp b/crawl-ref/source/rltiles/item/food/honeycomb.bmp new file mode 100644 index 0000000000..8e5fc0acf4 Binary files /dev/null and b/crawl-ref/source/rltiles/item/food/honeycomb.bmp differ diff --git a/crawl-ref/source/rltiles/item/food/huge_chunk_of_meat.bmp b/crawl-ref/source/rltiles/item/food/huge_chunk_of_meat.bmp new file mode 100644 index 0000000000..6d6face0a3 Binary files /dev/null and b/crawl-ref/source/rltiles/item/food/huge_chunk_of_meat.bmp differ diff --git a/crawl-ref/source/rltiles/item/food/k_ration.bmp b/crawl-ref/source/rltiles/item/food/k_ration.bmp new file mode 100644 index 0000000000..cb3910e330 Binary files /dev/null and b/crawl-ref/source/rltiles/item/food/k_ration.bmp differ diff --git a/crawl-ref/source/rltiles/item/food/kelp_frond.bmp b/crawl-ref/source/rltiles/item/food/kelp_frond.bmp new file mode 100644 index 0000000000..c4091709c7 Binary files /dev/null and b/crawl-ref/source/rltiles/item/food/kelp_frond.bmp differ diff --git a/crawl-ref/source/rltiles/item/food/lembas_wafer.bmp b/crawl-ref/source/rltiles/item/food/lembas_wafer.bmp new file mode 100644 index 0000000000..b06c8a706c Binary files /dev/null and b/crawl-ref/source/rltiles/item/food/lembas_wafer.bmp differ diff --git a/crawl-ref/source/rltiles/item/food/lemon.bmp b/crawl-ref/source/rltiles/item/food/lemon.bmp new file mode 100644 index 0000000000..0bf787c7f9 Binary files /dev/null and b/crawl-ref/source/rltiles/item/food/lemon.bmp differ diff --git a/crawl-ref/source/rltiles/item/food/lump_of_royal_jelly.bmp b/crawl-ref/source/rltiles/item/food/lump_of_royal_jelly.bmp new file mode 100644 index 0000000000..3152900e12 Binary files /dev/null and b/crawl-ref/source/rltiles/item/food/lump_of_royal_jelly.bmp differ diff --git a/crawl-ref/source/rltiles/item/food/lychee.bmp b/crawl-ref/source/rltiles/item/food/lychee.bmp new file mode 100644 index 0000000000..a55393f2e4 Binary files /dev/null and b/crawl-ref/source/rltiles/item/food/lychee.bmp differ diff --git a/crawl-ref/source/rltiles/item/food/meat_ring.bmp b/crawl-ref/source/rltiles/item/food/meat_ring.bmp new file mode 100644 index 0000000000..1b1c5171ef Binary files /dev/null and b/crawl-ref/source/rltiles/item/food/meat_ring.bmp differ diff --git a/crawl-ref/source/rltiles/item/food/meat_stick.bmp b/crawl-ref/source/rltiles/item/food/meat_stick.bmp new file mode 100644 index 0000000000..8e086dfbaf Binary files /dev/null and b/crawl-ref/source/rltiles/item/food/meat_stick.bmp differ diff --git a/crawl-ref/source/rltiles/item/food/meatball.bmp b/crawl-ref/source/rltiles/item/food/meatball.bmp new file mode 100644 index 0000000000..74a9fcd621 Binary files /dev/null and b/crawl-ref/source/rltiles/item/food/meatball.bmp differ diff --git a/crawl-ref/source/rltiles/item/food/melon.bmp b/crawl-ref/source/rltiles/item/food/melon.bmp new file mode 100644 index 0000000000..5fd0cd303f Binary files /dev/null and b/crawl-ref/source/rltiles/item/food/melon.bmp differ diff --git a/crawl-ref/source/rltiles/item/food/orange.bmp b/crawl-ref/source/rltiles/item/food/orange.bmp new file mode 100644 index 0000000000..f8d1e5f2af Binary files /dev/null and b/crawl-ref/source/rltiles/item/food/orange.bmp differ diff --git a/crawl-ref/source/rltiles/item/food/pancake.bmp b/crawl-ref/source/rltiles/item/food/pancake.bmp new file mode 100644 index 0000000000..0be43865f5 Binary files /dev/null and b/crawl-ref/source/rltiles/item/food/pancake.bmp differ diff --git a/crawl-ref/source/rltiles/item/food/pear.bmp b/crawl-ref/source/rltiles/item/food/pear.bmp new file mode 100644 index 0000000000..b20ada431d Binary files /dev/null and b/crawl-ref/source/rltiles/item/food/pear.bmp differ diff --git a/crawl-ref/source/rltiles/item/food/pizza.bmp b/crawl-ref/source/rltiles/item/food/pizza.bmp new file mode 100644 index 0000000000..93da6d3b53 Binary files /dev/null and b/crawl-ref/source/rltiles/item/food/pizza.bmp differ diff --git a/crawl-ref/source/rltiles/item/food/rambutan.bmp b/crawl-ref/source/rltiles/item/food/rambutan.bmp new file mode 100644 index 0000000000..94b6d7911d Binary files /dev/null and b/crawl-ref/source/rltiles/item/food/rambutan.bmp differ diff --git a/crawl-ref/source/rltiles/item/food/sausage.bmp b/crawl-ref/source/rltiles/item/food/sausage.bmp new file mode 100644 index 0000000000..de22fb1942 Binary files /dev/null and b/crawl-ref/source/rltiles/item/food/sausage.bmp differ diff --git a/crawl-ref/source/rltiles/item/food/slime_mold.bmp b/crawl-ref/source/rltiles/item/food/slime_mold.bmp new file mode 100644 index 0000000000..ee4ebf2c9f Binary files /dev/null and b/crawl-ref/source/rltiles/item/food/slime_mold.bmp differ diff --git a/crawl-ref/source/rltiles/item/food/snozzcumber.bmp b/crawl-ref/source/rltiles/item/food/snozzcumber.bmp new file mode 100644 index 0000000000..ec892b4eed Binary files /dev/null and b/crawl-ref/source/rltiles/item/food/snozzcumber.bmp differ diff --git a/crawl-ref/source/rltiles/item/food/sprig_of_wolfsbane.bmp b/crawl-ref/source/rltiles/item/food/sprig_of_wolfsbane.bmp new file mode 100644 index 0000000000..89f12142f1 Binary files /dev/null and b/crawl-ref/source/rltiles/item/food/sprig_of_wolfsbane.bmp differ diff --git a/crawl-ref/source/rltiles/item/food/strawberry.bmp b/crawl-ref/source/rltiles/item/food/strawberry.bmp new file mode 100644 index 0000000000..8a95e438be Binary files /dev/null and b/crawl-ref/source/rltiles/item/food/strawberry.bmp differ diff --git a/crawl-ref/source/rltiles/item/food/sultana.bmp b/crawl-ref/source/rltiles/item/food/sultana.bmp new file mode 100644 index 0000000000..302707b995 Binary files /dev/null and b/crawl-ref/source/rltiles/item/food/sultana.bmp differ diff --git a/crawl-ref/source/rltiles/item/food/tin.bmp b/crawl-ref/source/rltiles/item/food/tin.bmp new file mode 100644 index 0000000000..04ad785e73 Binary files /dev/null and b/crawl-ref/source/rltiles/item/food/tin.bmp differ diff --git a/crawl-ref/source/rltiles/item/food/tripe_ration.bmp b/crawl-ref/source/rltiles/item/food/tripe_ration.bmp new file mode 100644 index 0000000000..74ebcb61cc Binary files /dev/null and b/crawl-ref/source/rltiles/item/food/tripe_ration.bmp differ diff --git a/crawl-ref/source/rltiles/item/gem/black.bmp b/crawl-ref/source/rltiles/item/gem/black.bmp new file mode 100644 index 0000000000..a9a8938e47 Binary files /dev/null and b/crawl-ref/source/rltiles/item/gem/black.bmp differ diff --git a/crawl-ref/source/rltiles/item/gem/blue.bmp b/crawl-ref/source/rltiles/item/gem/blue.bmp new file mode 100644 index 0000000000..a1a7d267ed Binary files /dev/null and b/crawl-ref/source/rltiles/item/gem/blue.bmp differ diff --git a/crawl-ref/source/rltiles/item/gem/boulder.bmp b/crawl-ref/source/rltiles/item/gem/boulder.bmp new file mode 100644 index 0000000000..fa9507ceeb Binary files /dev/null and b/crawl-ref/source/rltiles/item/gem/boulder.bmp differ diff --git a/crawl-ref/source/rltiles/item/gem/gold_piece.bmp b/crawl-ref/source/rltiles/item/gem/gold_piece.bmp new file mode 100644 index 0000000000..7fe0f664f0 Binary files /dev/null and b/crawl-ref/source/rltiles/item/gem/gold_piece.bmp differ diff --git a/crawl-ref/source/rltiles/item/gem/green.bmp b/crawl-ref/source/rltiles/item/gem/green.bmp new file mode 100644 index 0000000000..a3da7901bb Binary files /dev/null and b/crawl-ref/source/rltiles/item/gem/green.bmp differ diff --git a/crawl-ref/source/rltiles/item/gem/grey_stone.bmp b/crawl-ref/source/rltiles/item/gem/grey_stone.bmp new file mode 100644 index 0000000000..c9a52bcd01 Binary files /dev/null and b/crawl-ref/source/rltiles/item/gem/grey_stone.bmp differ diff --git a/crawl-ref/source/rltiles/item/gem/orange.bmp b/crawl-ref/source/rltiles/item/gem/orange.bmp new file mode 100644 index 0000000000..7e65a6de80 Binary files /dev/null and b/crawl-ref/source/rltiles/item/gem/orange.bmp differ diff --git a/crawl-ref/source/rltiles/item/gem/red.bmp b/crawl-ref/source/rltiles/item/gem/red.bmp new file mode 100644 index 0000000000..986b8458d4 Binary files /dev/null and b/crawl-ref/source/rltiles/item/gem/red.bmp differ diff --git a/crawl-ref/source/rltiles/item/gem/rock.bmp b/crawl-ref/source/rltiles/item/gem/rock.bmp new file mode 100644 index 0000000000..8484531e11 Binary files /dev/null and b/crawl-ref/source/rltiles/item/gem/rock.bmp differ diff --git a/crawl-ref/source/rltiles/item/gem/stone.bmp b/crawl-ref/source/rltiles/item/gem/stone.bmp new file mode 100644 index 0000000000..288bb9931b Binary files /dev/null and b/crawl-ref/source/rltiles/item/gem/stone.bmp differ diff --git a/crawl-ref/source/rltiles/item/gem/violet.bmp b/crawl-ref/source/rltiles/item/gem/violet.bmp new file mode 100644 index 0000000000..c3222fee85 Binary files /dev/null and b/crawl-ref/source/rltiles/item/gem/violet.bmp differ diff --git a/crawl-ref/source/rltiles/item/gem/white.bmp b/crawl-ref/source/rltiles/item/gem/white.bmp new file mode 100644 index 0000000000..dc18e711b1 Binary files /dev/null and b/crawl-ref/source/rltiles/item/gem/white.bmp differ diff --git a/crawl-ref/source/rltiles/item/gem/yellow.bmp b/crawl-ref/source/rltiles/item/gem/yellow.bmp new file mode 100644 index 0000000000..55490c3f1b Binary files /dev/null and b/crawl-ref/source/rltiles/item/gem/yellow.bmp differ diff --git a/crawl-ref/source/rltiles/item/gem/yellowish_brown.bmp b/crawl-ref/source/rltiles/item/gem/yellowish_brown.bmp new file mode 100644 index 0000000000..6371365215 Binary files /dev/null and b/crawl-ref/source/rltiles/item/gem/yellowish_brown.bmp differ diff --git a/crawl-ref/source/rltiles/item/misc/beartrap.bmp b/crawl-ref/source/rltiles/item/misc/beartrap.bmp new file mode 100644 index 0000000000..cf0ce1ff20 Binary files /dev/null and b/crawl-ref/source/rltiles/item/misc/beartrap.bmp differ diff --git a/crawl-ref/source/rltiles/item/misc/bell.bmp b/crawl-ref/source/rltiles/item/misc/bell.bmp new file mode 100644 index 0000000000..4c0c832502 Binary files /dev/null and b/crawl-ref/source/rltiles/item/misc/bell.bmp differ diff --git a/crawl-ref/source/rltiles/item/misc/bell_of_opening.bmp b/crawl-ref/source/rltiles/item/misc/bell_of_opening.bmp new file mode 100644 index 0000000000..a513b10686 Binary files /dev/null and b/crawl-ref/source/rltiles/item/misc/bell_of_opening.bmp differ diff --git a/crawl-ref/source/rltiles/item/misc/blindfold.bmp b/crawl-ref/source/rltiles/item/misc/blindfold.bmp new file mode 100644 index 0000000000..c4cbd18f32 Binary files /dev/null and b/crawl-ref/source/rltiles/item/misc/blindfold.bmp differ diff --git a/crawl-ref/source/rltiles/item/misc/brass_lantern.bmp b/crawl-ref/source/rltiles/item/misc/brass_lantern.bmp new file mode 100644 index 0000000000..0278fc3377 Binary files /dev/null and b/crawl-ref/source/rltiles/item/misc/brass_lantern.bmp differ diff --git a/crawl-ref/source/rltiles/item/misc/bugle.bmp b/crawl-ref/source/rltiles/item/misc/bugle.bmp new file mode 100644 index 0000000000..3467b82b58 Binary files /dev/null and b/crawl-ref/source/rltiles/item/misc/bugle.bmp differ diff --git a/crawl-ref/source/rltiles/item/misc/can_of_grease.bmp b/crawl-ref/source/rltiles/item/misc/can_of_grease.bmp new file mode 100644 index 0000000000..0011705476 Binary files /dev/null and b/crawl-ref/source/rltiles/item/misc/can_of_grease.bmp differ diff --git a/crawl-ref/source/rltiles/item/misc/candelabrum_of_invocation.bmp b/crawl-ref/source/rltiles/item/misc/candelabrum_of_invocation.bmp new file mode 100644 index 0000000000..e5a3654594 Binary files /dev/null and b/crawl-ref/source/rltiles/item/misc/candelabrum_of_invocation.bmp differ diff --git a/crawl-ref/source/rltiles/item/misc/chest.bmp b/crawl-ref/source/rltiles/item/misc/chest.bmp new file mode 100644 index 0000000000..245cd99e0d Binary files /dev/null and b/crawl-ref/source/rltiles/item/misc/chest.bmp differ diff --git a/crawl-ref/source/rltiles/item/misc/credit_card.bmp b/crawl-ref/source/rltiles/item/misc/credit_card.bmp new file mode 100644 index 0000000000..765df991c8 Binary files /dev/null and b/crawl-ref/source/rltiles/item/misc/credit_card.bmp differ diff --git a/crawl-ref/source/rltiles/item/misc/crystal_ball.bmp b/crawl-ref/source/rltiles/item/misc/crystal_ball.bmp new file mode 100644 index 0000000000..6a6829d18e Binary files /dev/null and b/crawl-ref/source/rltiles/item/misc/crystal_ball.bmp differ diff --git a/crawl-ref/source/rltiles/item/misc/drum.bmp b/crawl-ref/source/rltiles/item/misc/drum.bmp new file mode 100644 index 0000000000..7e18ff3b49 Binary files /dev/null and b/crawl-ref/source/rltiles/item/misc/drum.bmp differ diff --git a/crawl-ref/source/rltiles/item/misc/expensive_camera.bmp b/crawl-ref/source/rltiles/item/misc/expensive_camera.bmp new file mode 100644 index 0000000000..a9ec001854 Binary files /dev/null and b/crawl-ref/source/rltiles/item/misc/expensive_camera.bmp differ diff --git a/crawl-ref/source/rltiles/item/misc/figurine.bmp b/crawl-ref/source/rltiles/item/misc/figurine.bmp new file mode 100644 index 0000000000..a7000d766f Binary files /dev/null and b/crawl-ref/source/rltiles/item/misc/figurine.bmp differ diff --git a/crawl-ref/source/rltiles/item/misc/flute.bmp b/crawl-ref/source/rltiles/item/misc/flute.bmp new file mode 100644 index 0000000000..471c0a5ad6 Binary files /dev/null and b/crawl-ref/source/rltiles/item/misc/flute.bmp differ diff --git a/crawl-ref/source/rltiles/item/misc/grappling_hook.bmp b/crawl-ref/source/rltiles/item/misc/grappling_hook.bmp new file mode 100644 index 0000000000..7129fef8b2 Binary files /dev/null and b/crawl-ref/source/rltiles/item/misc/grappling_hook.bmp differ diff --git a/crawl-ref/source/rltiles/item/misc/harp.bmp b/crawl-ref/source/rltiles/item/misc/harp.bmp new file mode 100644 index 0000000000..89dadfcb7d Binary files /dev/null and b/crawl-ref/source/rltiles/item/misc/harp.bmp differ diff --git a/crawl-ref/source/rltiles/item/misc/heavy_iron_ball.bmp b/crawl-ref/source/rltiles/item/misc/heavy_iron_ball.bmp new file mode 100644 index 0000000000..7e311acb85 Binary files /dev/null and b/crawl-ref/source/rltiles/item/misc/heavy_iron_ball.bmp differ diff --git a/crawl-ref/source/rltiles/item/misc/horn.bmp b/crawl-ref/source/rltiles/item/misc/horn.bmp new file mode 100644 index 0000000000..b7e1980cf1 Binary files /dev/null and b/crawl-ref/source/rltiles/item/misc/horn.bmp differ diff --git a/crawl-ref/source/rltiles/item/misc/ice_box.bmp b/crawl-ref/source/rltiles/item/misc/ice_box.bmp new file mode 100644 index 0000000000..02b71b2685 Binary files /dev/null and b/crawl-ref/source/rltiles/item/misc/ice_box.bmp differ diff --git a/crawl-ref/source/rltiles/item/misc/iron_chain.bmp b/crawl-ref/source/rltiles/item/misc/iron_chain.bmp new file mode 100644 index 0000000000..91e6e91758 Binary files /dev/null and b/crawl-ref/source/rltiles/item/misc/iron_chain.bmp differ diff --git a/crawl-ref/source/rltiles/item/misc/lamp.bmp b/crawl-ref/source/rltiles/item/misc/lamp.bmp new file mode 100644 index 0000000000..b142b4042d Binary files /dev/null and b/crawl-ref/source/rltiles/item/misc/lamp.bmp differ diff --git a/crawl-ref/source/rltiles/item/misc/land_mine.bmp b/crawl-ref/source/rltiles/item/misc/land_mine.bmp new file mode 100644 index 0000000000..b803886052 Binary files /dev/null and b/crawl-ref/source/rltiles/item/misc/land_mine.bmp differ diff --git a/crawl-ref/source/rltiles/item/misc/large_box.bmp b/crawl-ref/source/rltiles/item/misc/large_box.bmp new file mode 100644 index 0000000000..df6b139a00 Binary files /dev/null and b/crawl-ref/source/rltiles/item/misc/large_box.bmp differ diff --git a/crawl-ref/source/rltiles/item/misc/leash.bmp b/crawl-ref/source/rltiles/item/misc/leash.bmp new file mode 100644 index 0000000000..be873483d8 Binary files /dev/null and b/crawl-ref/source/rltiles/item/misc/leash.bmp differ diff --git a/crawl-ref/source/rltiles/item/misc/lenses.bmp b/crawl-ref/source/rltiles/item/misc/lenses.bmp new file mode 100644 index 0000000000..9485f50428 Binary files /dev/null and b/crawl-ref/source/rltiles/item/misc/lenses.bmp differ diff --git a/crawl-ref/source/rltiles/item/misc/lock_pick.bmp b/crawl-ref/source/rltiles/item/misc/lock_pick.bmp new file mode 100644 index 0000000000..f3bff0df73 Binary files /dev/null and b/crawl-ref/source/rltiles/item/misc/lock_pick.bmp differ diff --git a/crawl-ref/source/rltiles/item/misc/magic_marker.bmp b/crawl-ref/source/rltiles/item/misc/magic_marker.bmp new file mode 100644 index 0000000000..ce14f09b0a Binary files /dev/null and b/crawl-ref/source/rltiles/item/misc/magic_marker.bmp differ diff --git a/crawl-ref/source/rltiles/item/misc/mirror.bmp b/crawl-ref/source/rltiles/item/misc/mirror.bmp new file mode 100644 index 0000000000..f1693445f5 Binary files /dev/null and b/crawl-ref/source/rltiles/item/misc/mirror.bmp differ diff --git a/crawl-ref/source/rltiles/item/misc/misc_altar.bmp b/crawl-ref/source/rltiles/item/misc/misc_altar.bmp new file mode 100644 index 0000000000..7eacc613b2 Binary files /dev/null and b/crawl-ref/source/rltiles/item/misc/misc_altar.bmp differ diff --git a/crawl-ref/source/rltiles/item/misc/misc_book.bmp b/crawl-ref/source/rltiles/item/misc/misc_book.bmp new file mode 100644 index 0000000000..c143a82067 Binary files /dev/null and b/crawl-ref/source/rltiles/item/misc/misc_book.bmp differ diff --git a/crawl-ref/source/rltiles/item/misc/misc_bottle.bmp b/crawl-ref/source/rltiles/item/misc/misc_bottle.bmp new file mode 100644 index 0000000000..4384619fda Binary files /dev/null and b/crawl-ref/source/rltiles/item/misc/misc_bottle.bmp differ diff --git a/crawl-ref/source/rltiles/item/misc/misc_box.bmp b/crawl-ref/source/rltiles/item/misc/misc_box.bmp new file mode 100644 index 0000000000..7254e3e7b4 Binary files /dev/null and b/crawl-ref/source/rltiles/item/misc/misc_box.bmp differ diff --git a/crawl-ref/source/rltiles/item/misc/misc_crystal.bmp b/crawl-ref/source/rltiles/item/misc/misc_crystal.bmp new file mode 100644 index 0000000000..80a3b18e28 Binary files /dev/null and b/crawl-ref/source/rltiles/item/misc/misc_crystal.bmp differ diff --git a/crawl-ref/source/rltiles/item/misc/misc_deck.bmp b/crawl-ref/source/rltiles/item/misc/misc_deck.bmp new file mode 100644 index 0000000000..ccc966cb2f Binary files /dev/null and b/crawl-ref/source/rltiles/item/misc/misc_deck.bmp differ diff --git a/crawl-ref/source/rltiles/item/misc/misc_disc.bmp b/crawl-ref/source/rltiles/item/misc/misc_disc.bmp new file mode 100644 index 0000000000..62a3d9a4e8 Binary files /dev/null and b/crawl-ref/source/rltiles/item/misc/misc_disc.bmp differ diff --git a/crawl-ref/source/rltiles/item/misc/misc_fan.bmp b/crawl-ref/source/rltiles/item/misc/misc_fan.bmp new file mode 100644 index 0000000000..eadaf97442 Binary files /dev/null and b/crawl-ref/source/rltiles/item/misc/misc_fan.bmp differ diff --git a/crawl-ref/source/rltiles/item/misc/misc_horn.bmp b/crawl-ref/source/rltiles/item/misc/misc_horn.bmp new file mode 100644 index 0000000000..c6a8c93060 Binary files /dev/null and b/crawl-ref/source/rltiles/item/misc/misc_horn.bmp differ diff --git a/crawl-ref/source/rltiles/item/misc/misc_lamp.bmp b/crawl-ref/source/rltiles/item/misc/misc_lamp.bmp new file mode 100644 index 0000000000..0278fc3377 Binary files /dev/null and b/crawl-ref/source/rltiles/item/misc/misc_lamp.bmp differ diff --git a/crawl-ref/source/rltiles/item/misc/misc_lantern.bmp b/crawl-ref/source/rltiles/item/misc/misc_lantern.bmp new file mode 100644 index 0000000000..087d6834ff Binary files /dev/null and b/crawl-ref/source/rltiles/item/misc/misc_lantern.bmp differ diff --git a/crawl-ref/source/rltiles/item/misc/misc_orb.bmp b/crawl-ref/source/rltiles/item/misc/misc_orb.bmp new file mode 100644 index 0000000000..0ecea2774c Binary files /dev/null and b/crawl-ref/source/rltiles/item/misc/misc_orb.bmp differ diff --git a/crawl-ref/source/rltiles/item/misc/misc_rune.bmp b/crawl-ref/source/rltiles/item/misc/misc_rune.bmp new file mode 100644 index 0000000000..9a0f0ab47b Binary files /dev/null and b/crawl-ref/source/rltiles/item/misc/misc_rune.bmp differ diff --git a/crawl-ref/source/rltiles/item/misc/misc_stone.bmp b/crawl-ref/source/rltiles/item/misc/misc_stone.bmp new file mode 100644 index 0000000000..c9a52bcd01 Binary files /dev/null and b/crawl-ref/source/rltiles/item/misc/misc_stone.bmp differ diff --git a/crawl-ref/source/rltiles/item/misc/pick_axe.bmp b/crawl-ref/source/rltiles/item/misc/pick_axe.bmp new file mode 100644 index 0000000000..69097a8bc2 Binary files /dev/null and b/crawl-ref/source/rltiles/item/misc/pick_axe.bmp differ diff --git a/crawl-ref/source/rltiles/item/misc/sack.bmp b/crawl-ref/source/rltiles/item/misc/sack.bmp new file mode 100644 index 0000000000..b451a514a4 Binary files /dev/null and b/crawl-ref/source/rltiles/item/misc/sack.bmp differ diff --git a/crawl-ref/source/rltiles/item/misc/saddle.bmp b/crawl-ref/source/rltiles/item/misc/saddle.bmp new file mode 100644 index 0000000000..bce2509866 Binary files /dev/null and b/crawl-ref/source/rltiles/item/misc/saddle.bmp differ diff --git a/crawl-ref/source/rltiles/item/misc/skeleton_key.bmp b/crawl-ref/source/rltiles/item/misc/skeleton_key.bmp new file mode 100644 index 0000000000..96a6368764 Binary files /dev/null and b/crawl-ref/source/rltiles/item/misc/skeleton_key.bmp differ diff --git a/crawl-ref/source/rltiles/item/misc/statue.bmp b/crawl-ref/source/rltiles/item/misc/statue.bmp new file mode 100644 index 0000000000..a7000d766f Binary files /dev/null and b/crawl-ref/source/rltiles/item/misc/statue.bmp differ diff --git a/crawl-ref/source/rltiles/item/misc/stethoscope.bmp b/crawl-ref/source/rltiles/item/misc/stethoscope.bmp new file mode 100644 index 0000000000..f15135d9d3 Binary files /dev/null and b/crawl-ref/source/rltiles/item/misc/stethoscope.bmp differ diff --git a/crawl-ref/source/rltiles/item/misc/tallow_candle.bmp b/crawl-ref/source/rltiles/item/misc/tallow_candle.bmp new file mode 100644 index 0000000000..ef89a9fbf1 Binary files /dev/null and b/crawl-ref/source/rltiles/item/misc/tallow_candle.bmp differ diff --git a/crawl-ref/source/rltiles/item/misc/tin_opener.bmp b/crawl-ref/source/rltiles/item/misc/tin_opener.bmp new file mode 100644 index 0000000000..c61d41993d Binary files /dev/null and b/crawl-ref/source/rltiles/item/misc/tin_opener.bmp differ diff --git a/crawl-ref/source/rltiles/item/misc/tinning_kit.bmp b/crawl-ref/source/rltiles/item/misc/tinning_kit.bmp new file mode 100644 index 0000000000..c36acd7bef Binary files /dev/null and b/crawl-ref/source/rltiles/item/misc/tinning_kit.bmp differ diff --git a/crawl-ref/source/rltiles/item/misc/towel.bmp b/crawl-ref/source/rltiles/item/misc/towel.bmp new file mode 100644 index 0000000000..6d4aee70e9 Binary files /dev/null and b/crawl-ref/source/rltiles/item/misc/towel.bmp differ diff --git a/crawl-ref/source/rltiles/item/misc/unicorn_horn.bmp b/crawl-ref/source/rltiles/item/misc/unicorn_horn.bmp new file mode 100644 index 0000000000..3a0ea24926 Binary files /dev/null and b/crawl-ref/source/rltiles/item/misc/unicorn_horn.bmp differ diff --git a/crawl-ref/source/rltiles/item/misc/wax_candle.bmp b/crawl-ref/source/rltiles/item/misc/wax_candle.bmp new file mode 100644 index 0000000000..ef89a9fbf1 Binary files /dev/null and b/crawl-ref/source/rltiles/item/misc/wax_candle.bmp differ diff --git a/crawl-ref/source/rltiles/item/misc/whistle.bmp b/crawl-ref/source/rltiles/item/misc/whistle.bmp new file mode 100644 index 0000000000..8fa49062ea Binary files /dev/null and b/crawl-ref/source/rltiles/item/misc/whistle.bmp differ diff --git a/crawl-ref/source/rltiles/item/potion/black.bmp b/crawl-ref/source/rltiles/item/potion/black.bmp new file mode 100644 index 0000000000..892d50fa23 Binary files /dev/null and b/crawl-ref/source/rltiles/item/potion/black.bmp differ diff --git a/crawl-ref/source/rltiles/item/potion/brilliant_blue.bmp b/crawl-ref/source/rltiles/item/potion/brilliant_blue.bmp new file mode 100644 index 0000000000..1a4e9084ce Binary files /dev/null and b/crawl-ref/source/rltiles/item/potion/brilliant_blue.bmp differ diff --git a/crawl-ref/source/rltiles/item/potion/brown.bmp b/crawl-ref/source/rltiles/item/potion/brown.bmp new file mode 100644 index 0000000000..667ae2f2f7 Binary files /dev/null and b/crawl-ref/source/rltiles/item/potion/brown.bmp differ diff --git a/crawl-ref/source/rltiles/item/potion/bubbly.bmp b/crawl-ref/source/rltiles/item/potion/bubbly.bmp new file mode 100644 index 0000000000..f2b97d2199 Binary files /dev/null and b/crawl-ref/source/rltiles/item/potion/bubbly.bmp differ diff --git a/crawl-ref/source/rltiles/item/potion/clear.bmp b/crawl-ref/source/rltiles/item/potion/clear.bmp new file mode 100644 index 0000000000..d8c9dea7e0 Binary files /dev/null and b/crawl-ref/source/rltiles/item/potion/clear.bmp differ diff --git a/crawl-ref/source/rltiles/item/potion/cloudy.bmp b/crawl-ref/source/rltiles/item/potion/cloudy.bmp new file mode 100644 index 0000000000..7e63532fc0 Binary files /dev/null and b/crawl-ref/source/rltiles/item/potion/cloudy.bmp differ diff --git a/crawl-ref/source/rltiles/item/potion/cyan.bmp b/crawl-ref/source/rltiles/item/potion/cyan.bmp new file mode 100644 index 0000000000..59a401b3d3 Binary files /dev/null and b/crawl-ref/source/rltiles/item/potion/cyan.bmp differ diff --git a/crawl-ref/source/rltiles/item/potion/dark.bmp b/crawl-ref/source/rltiles/item/potion/dark.bmp new file mode 100644 index 0000000000..bd9f6ca341 Binary files /dev/null and b/crawl-ref/source/rltiles/item/potion/dark.bmp differ diff --git a/crawl-ref/source/rltiles/item/potion/dark_green.bmp b/crawl-ref/source/rltiles/item/potion/dark_green.bmp new file mode 100644 index 0000000000..c03371dafc Binary files /dev/null and b/crawl-ref/source/rltiles/item/potion/dark_green.bmp differ diff --git a/crawl-ref/source/rltiles/item/potion/effervescent.bmp b/crawl-ref/source/rltiles/item/potion/effervescent.bmp new file mode 100644 index 0000000000..cd6f41e7e7 Binary files /dev/null and b/crawl-ref/source/rltiles/item/potion/effervescent.bmp differ diff --git a/crawl-ref/source/rltiles/item/potion/emerald.bmp b/crawl-ref/source/rltiles/item/potion/emerald.bmp new file mode 100644 index 0000000000..23104f156e Binary files /dev/null and b/crawl-ref/source/rltiles/item/potion/emerald.bmp differ diff --git a/crawl-ref/source/rltiles/item/potion/fizzy.bmp b/crawl-ref/source/rltiles/item/potion/fizzy.bmp new file mode 100644 index 0000000000..23871c107a Binary files /dev/null and b/crawl-ref/source/rltiles/item/potion/fizzy.bmp differ diff --git a/crawl-ref/source/rltiles/item/potion/golden.bmp b/crawl-ref/source/rltiles/item/potion/golden.bmp new file mode 100644 index 0000000000..551735e1dc Binary files /dev/null and b/crawl-ref/source/rltiles/item/potion/golden.bmp differ diff --git a/crawl-ref/source/rltiles/item/potion/i-berserk-rage.bmp b/crawl-ref/source/rltiles/item/potion/i-berserk-rage.bmp new file mode 100644 index 0000000000..111bced1c5 Binary files /dev/null and b/crawl-ref/source/rltiles/item/potion/i-berserk-rage.bmp differ diff --git a/crawl-ref/source/rltiles/item/potion/i-blood.bmp b/crawl-ref/source/rltiles/item/potion/i-blood.bmp new file mode 100644 index 0000000000..0f9db052e6 Binary files /dev/null and b/crawl-ref/source/rltiles/item/potion/i-blood.bmp differ diff --git a/crawl-ref/source/rltiles/item/potion/i-confusion.bmp b/crawl-ref/source/rltiles/item/potion/i-confusion.bmp new file mode 100644 index 0000000000..03b5fae648 Binary files /dev/null and b/crawl-ref/source/rltiles/item/potion/i-confusion.bmp differ diff --git a/crawl-ref/source/rltiles/item/potion/i-cure-mutation.bmp b/crawl-ref/source/rltiles/item/potion/i-cure-mutation.bmp new file mode 100644 index 0000000000..90c05b772b Binary files /dev/null and b/crawl-ref/source/rltiles/item/potion/i-cure-mutation.bmp differ diff --git a/crawl-ref/source/rltiles/item/potion/i-decay.bmp b/crawl-ref/source/rltiles/item/potion/i-decay.bmp new file mode 100644 index 0000000000..d65f4a8cfc Binary files /dev/null and b/crawl-ref/source/rltiles/item/potion/i-decay.bmp differ diff --git a/crawl-ref/source/rltiles/item/potion/i-degeneration.bmp b/crawl-ref/source/rltiles/item/potion/i-degeneration.bmp new file mode 100644 index 0000000000..12e8ddd76c Binary files /dev/null and b/crawl-ref/source/rltiles/item/potion/i-degeneration.bmp differ diff --git a/crawl-ref/source/rltiles/item/potion/i-experience.bmp b/crawl-ref/source/rltiles/item/potion/i-experience.bmp new file mode 100644 index 0000000000..29d73b83b7 Binary files /dev/null and b/crawl-ref/source/rltiles/item/potion/i-experience.bmp differ diff --git a/crawl-ref/source/rltiles/item/potion/i-gain-dexterity.bmp b/crawl-ref/source/rltiles/item/potion/i-gain-dexterity.bmp new file mode 100644 index 0000000000..2a81527c37 Binary files /dev/null and b/crawl-ref/source/rltiles/item/potion/i-gain-dexterity.bmp differ diff --git a/crawl-ref/source/rltiles/item/potion/i-gain-intelligence.bmp b/crawl-ref/source/rltiles/item/potion/i-gain-intelligence.bmp new file mode 100644 index 0000000000..c278ea4969 Binary files /dev/null and b/crawl-ref/source/rltiles/item/potion/i-gain-intelligence.bmp differ diff --git a/crawl-ref/source/rltiles/item/potion/i-gain-strength.bmp b/crawl-ref/source/rltiles/item/potion/i-gain-strength.bmp new file mode 100644 index 0000000000..f6ecf4b644 Binary files /dev/null and b/crawl-ref/source/rltiles/item/potion/i-gain-strength.bmp differ diff --git a/crawl-ref/source/rltiles/item/potion/i-heal-wounds.bmp b/crawl-ref/source/rltiles/item/potion/i-heal-wounds.bmp new file mode 100644 index 0000000000..f6fa59ef7a Binary files /dev/null and b/crawl-ref/source/rltiles/item/potion/i-heal-wounds.bmp differ diff --git a/crawl-ref/source/rltiles/item/potion/i-heal-wounds.bmp2 b/crawl-ref/source/rltiles/item/potion/i-heal-wounds.bmp2 new file mode 100755 index 0000000000..bddbcc4f74 Binary files /dev/null and b/crawl-ref/source/rltiles/item/potion/i-heal-wounds.bmp2 differ diff --git a/crawl-ref/source/rltiles/item/potion/i-heal.bmp b/crawl-ref/source/rltiles/item/potion/i-heal.bmp new file mode 100644 index 0000000000..bf1fab5809 Binary files /dev/null and b/crawl-ref/source/rltiles/item/potion/i-heal.bmp differ diff --git a/crawl-ref/source/rltiles/item/potion/i-invisibility.bmp b/crawl-ref/source/rltiles/item/potion/i-invisibility.bmp new file mode 100644 index 0000000000..a4ba50c467 Binary files /dev/null and b/crawl-ref/source/rltiles/item/potion/i-invisibility.bmp differ diff --git a/crawl-ref/source/rltiles/item/potion/i-label.bmp b/crawl-ref/source/rltiles/item/potion/i-label.bmp new file mode 100644 index 0000000000..6e959cc097 Binary files /dev/null and b/crawl-ref/source/rltiles/item/potion/i-label.bmp differ diff --git a/crawl-ref/source/rltiles/item/potion/i-label2.bmp b/crawl-ref/source/rltiles/item/potion/i-label2.bmp new file mode 100644 index 0000000000..3c934568ed Binary files /dev/null and b/crawl-ref/source/rltiles/item/potion/i-label2.bmp differ diff --git a/crawl-ref/source/rltiles/item/potion/i-levitation.bmp b/crawl-ref/source/rltiles/item/potion/i-levitation.bmp new file mode 100644 index 0000000000..b99c7a8b85 Binary files /dev/null and b/crawl-ref/source/rltiles/item/potion/i-levitation.bmp differ diff --git a/crawl-ref/source/rltiles/item/potion/i-levitation.bmp2 b/crawl-ref/source/rltiles/item/potion/i-levitation.bmp2 new file mode 100755 index 0000000000..6ea0fe7b06 Binary files /dev/null and b/crawl-ref/source/rltiles/item/potion/i-levitation.bmp2 differ diff --git a/crawl-ref/source/rltiles/item/potion/i-magic.bmp b/crawl-ref/source/rltiles/item/potion/i-magic.bmp new file mode 100644 index 0000000000..630eba4fcc Binary files /dev/null and b/crawl-ref/source/rltiles/item/potion/i-magic.bmp differ diff --git a/crawl-ref/source/rltiles/item/potion/i-might.bmp b/crawl-ref/source/rltiles/item/potion/i-might.bmp new file mode 100644 index 0000000000..ef721b6f7b Binary files /dev/null and b/crawl-ref/source/rltiles/item/potion/i-might.bmp differ diff --git a/crawl-ref/source/rltiles/item/potion/i-mutation.bmp b/crawl-ref/source/rltiles/item/potion/i-mutation.bmp new file mode 100644 index 0000000000..4522452a57 Binary files /dev/null and b/crawl-ref/source/rltiles/item/potion/i-mutation.bmp differ diff --git a/crawl-ref/source/rltiles/item/potion/i-paralysis.bmp b/crawl-ref/source/rltiles/item/potion/i-paralysis.bmp new file mode 100644 index 0000000000..436e810efb Binary files /dev/null and b/crawl-ref/source/rltiles/item/potion/i-paralysis.bmp differ diff --git a/crawl-ref/source/rltiles/item/potion/i-poison.bmp b/crawl-ref/source/rltiles/item/potion/i-poison.bmp new file mode 100644 index 0000000000..9b9e13845c Binary files /dev/null and b/crawl-ref/source/rltiles/item/potion/i-poison.bmp differ diff --git a/crawl-ref/source/rltiles/item/potion/i-porridge.bmp b/crawl-ref/source/rltiles/item/potion/i-porridge.bmp new file mode 100644 index 0000000000..721ece1336 Binary files /dev/null and b/crawl-ref/source/rltiles/item/potion/i-porridge.bmp differ diff --git a/crawl-ref/source/rltiles/item/potion/i-resistance.bmp b/crawl-ref/source/rltiles/item/potion/i-resistance.bmp new file mode 100644 index 0000000000..ed38e217d2 Binary files /dev/null and b/crawl-ref/source/rltiles/item/potion/i-resistance.bmp differ diff --git a/crawl-ref/source/rltiles/item/potion/i-restore-abilities.bmp b/crawl-ref/source/rltiles/item/potion/i-restore-abilities.bmp new file mode 100644 index 0000000000..14b42dfe13 Binary files /dev/null and b/crawl-ref/source/rltiles/item/potion/i-restore-abilities.bmp differ diff --git a/crawl-ref/source/rltiles/item/potion/i-slowing.bmp b/crawl-ref/source/rltiles/item/potion/i-slowing.bmp new file mode 100644 index 0000000000..d1cb9a537b Binary files /dev/null and b/crawl-ref/source/rltiles/item/potion/i-slowing.bmp differ diff --git a/crawl-ref/source/rltiles/item/potion/i-speed.bmp b/crawl-ref/source/rltiles/item/potion/i-speed.bmp new file mode 100644 index 0000000000..5610101e13 Binary files /dev/null and b/crawl-ref/source/rltiles/item/potion/i-speed.bmp differ diff --git a/crawl-ref/source/rltiles/item/potion/i-strong-poison.bmp b/crawl-ref/source/rltiles/item/potion/i-strong-poison.bmp new file mode 100644 index 0000000000..e3709513e9 Binary files /dev/null and b/crawl-ref/source/rltiles/item/potion/i-strong-poison.bmp differ diff --git a/crawl-ref/source/rltiles/item/potion/i-water.bmp b/crawl-ref/source/rltiles/item/potion/i-water.bmp new file mode 100644 index 0000000000..d2e41d9304 Binary files /dev/null and b/crawl-ref/source/rltiles/item/potion/i-water.bmp differ diff --git a/crawl-ref/source/rltiles/item/potion/magenta.bmp b/crawl-ref/source/rltiles/item/potion/magenta.bmp new file mode 100644 index 0000000000..ecb3f9dd5b Binary files /dev/null and b/crawl-ref/source/rltiles/item/potion/magenta.bmp differ diff --git a/crawl-ref/source/rltiles/item/potion/milky.bmp b/crawl-ref/source/rltiles/item/potion/milky.bmp new file mode 100644 index 0000000000..a79247eaf5 Binary files /dev/null and b/crawl-ref/source/rltiles/item/potion/milky.bmp differ diff --git a/crawl-ref/source/rltiles/item/potion/murky.bmp b/crawl-ref/source/rltiles/item/potion/murky.bmp new file mode 100644 index 0000000000..8acb6fca97 Binary files /dev/null and b/crawl-ref/source/rltiles/item/potion/murky.bmp differ diff --git a/crawl-ref/source/rltiles/item/potion/orange.bmp b/crawl-ref/source/rltiles/item/potion/orange.bmp new file mode 100644 index 0000000000..538dab58d4 Binary files /dev/null and b/crawl-ref/source/rltiles/item/potion/orange.bmp differ diff --git a/crawl-ref/source/rltiles/item/potion/pink.bmp b/crawl-ref/source/rltiles/item/potion/pink.bmp new file mode 100644 index 0000000000..f3ed9d404d Binary files /dev/null and b/crawl-ref/source/rltiles/item/potion/pink.bmp differ diff --git a/crawl-ref/source/rltiles/item/potion/puce.bmp b/crawl-ref/source/rltiles/item/potion/puce.bmp new file mode 100644 index 0000000000..61e09811f6 Binary files /dev/null and b/crawl-ref/source/rltiles/item/potion/puce.bmp differ diff --git a/crawl-ref/source/rltiles/item/potion/purple_red.bmp b/crawl-ref/source/rltiles/item/potion/purple_red.bmp new file mode 100644 index 0000000000..74b273fb8f Binary files /dev/null and b/crawl-ref/source/rltiles/item/potion/purple_red.bmp differ diff --git a/crawl-ref/source/rltiles/item/potion/ruby.bmp b/crawl-ref/source/rltiles/item/potion/ruby.bmp new file mode 100644 index 0000000000..c755b754f7 Binary files /dev/null and b/crawl-ref/source/rltiles/item/potion/ruby.bmp differ diff --git a/crawl-ref/source/rltiles/item/potion/silver.bmp b/crawl-ref/source/rltiles/item/potion/silver.bmp new file mode 100644 index 0000000000..b5f623e703 Binary files /dev/null and b/crawl-ref/source/rltiles/item/potion/silver.bmp differ diff --git a/crawl-ref/source/rltiles/item/potion/sky_blue.bmp b/crawl-ref/source/rltiles/item/potion/sky_blue.bmp new file mode 100644 index 0000000000..5e6d3362db Binary files /dev/null and b/crawl-ref/source/rltiles/item/potion/sky_blue.bmp differ diff --git a/crawl-ref/source/rltiles/item/potion/smoky.bmp b/crawl-ref/source/rltiles/item/potion/smoky.bmp new file mode 100644 index 0000000000..7c0a2513a1 Binary files /dev/null and b/crawl-ref/source/rltiles/item/potion/smoky.bmp differ diff --git a/crawl-ref/source/rltiles/item/potion/swirly.bmp b/crawl-ref/source/rltiles/item/potion/swirly.bmp new file mode 100644 index 0000000000..e5af9621c0 Binary files /dev/null and b/crawl-ref/source/rltiles/item/potion/swirly.bmp differ diff --git a/crawl-ref/source/rltiles/item/potion/white.bmp b/crawl-ref/source/rltiles/item/potion/white.bmp new file mode 100644 index 0000000000..00f6f7d76e Binary files /dev/null and b/crawl-ref/source/rltiles/item/potion/white.bmp differ diff --git a/crawl-ref/source/rltiles/item/potion/yellow.bmp b/crawl-ref/source/rltiles/item/potion/yellow.bmp new file mode 100644 index 0000000000..ea39c28e00 Binary files /dev/null and b/crawl-ref/source/rltiles/item/potion/yellow.bmp differ diff --git a/crawl-ref/source/rltiles/item/ring/agate.bmp b/crawl-ref/source/rltiles/item/ring/agate.bmp new file mode 100644 index 0000000000..71c5f7bfb7 Binary files /dev/null and b/crawl-ref/source/rltiles/item/ring/agate.bmp differ diff --git a/crawl-ref/source/rltiles/item/ring/black_onyx.bmp b/crawl-ref/source/rltiles/item/ring/black_onyx.bmp new file mode 100644 index 0000000000..38a40c57d9 Binary files /dev/null and b/crawl-ref/source/rltiles/item/ring/black_onyx.bmp differ diff --git a/crawl-ref/source/rltiles/item/ring/brass.bmp b/crawl-ref/source/rltiles/item/ring/brass.bmp new file mode 100644 index 0000000000..aea942da6f Binary files /dev/null and b/crawl-ref/source/rltiles/item/ring/brass.bmp differ diff --git a/crawl-ref/source/rltiles/item/ring/bronze.bmp b/crawl-ref/source/rltiles/item/ring/bronze.bmp new file mode 100644 index 0000000000..deda99c686 Binary files /dev/null and b/crawl-ref/source/rltiles/item/ring/bronze.bmp differ diff --git a/crawl-ref/source/rltiles/item/ring/clay.bmp b/crawl-ref/source/rltiles/item/ring/clay.bmp new file mode 100644 index 0000000000..9477606f66 Binary files /dev/null and b/crawl-ref/source/rltiles/item/ring/clay.bmp differ diff --git a/crawl-ref/source/rltiles/item/ring/copper.bmp b/crawl-ref/source/rltiles/item/ring/copper.bmp new file mode 100644 index 0000000000..6c15bcbe82 Binary files /dev/null and b/crawl-ref/source/rltiles/item/ring/copper.bmp differ diff --git a/crawl-ref/source/rltiles/item/ring/coral.bmp b/crawl-ref/source/rltiles/item/ring/coral.bmp new file mode 100644 index 0000000000..fe9d0fe308 Binary files /dev/null and b/crawl-ref/source/rltiles/item/ring/coral.bmp differ diff --git a/crawl-ref/source/rltiles/item/ring/diamond.bmp b/crawl-ref/source/rltiles/item/ring/diamond.bmp new file mode 100644 index 0000000000..cc521a3ddd Binary files /dev/null and b/crawl-ref/source/rltiles/item/ring/diamond.bmp differ diff --git a/crawl-ref/source/rltiles/item/ring/emerald.bmp b/crawl-ref/source/rltiles/item/ring/emerald.bmp new file mode 100644 index 0000000000..fcd11765b3 Binary files /dev/null and b/crawl-ref/source/rltiles/item/ring/emerald.bmp differ diff --git a/crawl-ref/source/rltiles/item/ring/engagement.bmp b/crawl-ref/source/rltiles/item/ring/engagement.bmp new file mode 100644 index 0000000000..594f5a7d59 Binary files /dev/null and b/crawl-ref/source/rltiles/item/ring/engagement.bmp differ diff --git a/crawl-ref/source/rltiles/item/ring/glass.bmp b/crawl-ref/source/rltiles/item/ring/glass.bmp new file mode 100644 index 0000000000..971040cf96 Binary files /dev/null and b/crawl-ref/source/rltiles/item/ring/glass.bmp differ diff --git a/crawl-ref/source/rltiles/item/ring/gold.bmp b/crawl-ref/source/rltiles/item/ring/gold.bmp new file mode 100644 index 0000000000..287a15d0d3 Binary files /dev/null and b/crawl-ref/source/rltiles/item/ring/gold.bmp differ diff --git a/crawl-ref/source/rltiles/item/ring/gold_blue.bmp b/crawl-ref/source/rltiles/item/ring/gold_blue.bmp new file mode 100644 index 0000000000..f6bcd6a373 Binary files /dev/null and b/crawl-ref/source/rltiles/item/ring/gold_blue.bmp differ diff --git a/crawl-ref/source/rltiles/item/ring/gold_cyan.bmp b/crawl-ref/source/rltiles/item/ring/gold_cyan.bmp new file mode 100644 index 0000000000..19ebec9c83 Binary files /dev/null and b/crawl-ref/source/rltiles/item/ring/gold_cyan.bmp differ diff --git a/crawl-ref/source/rltiles/item/ring/gold_green.bmp b/crawl-ref/source/rltiles/item/ring/gold_green.bmp new file mode 100644 index 0000000000..3c0e27a84c Binary files /dev/null and b/crawl-ref/source/rltiles/item/ring/gold_green.bmp differ diff --git a/crawl-ref/source/rltiles/item/ring/gold_magenta.bmp b/crawl-ref/source/rltiles/item/ring/gold_magenta.bmp new file mode 100644 index 0000000000..f8a0603ccd Binary files /dev/null and b/crawl-ref/source/rltiles/item/ring/gold_magenta.bmp differ diff --git a/crawl-ref/source/rltiles/item/ring/gold_red.bmp b/crawl-ref/source/rltiles/item/ring/gold_red.bmp new file mode 100644 index 0000000000..70aadd4eb3 Binary files /dev/null and b/crawl-ref/source/rltiles/item/ring/gold_red.bmp differ diff --git a/crawl-ref/source/rltiles/item/ring/gold_white.bmp b/crawl-ref/source/rltiles/item/ring/gold_white.bmp new file mode 100644 index 0000000000..b03554cb1c Binary files /dev/null and b/crawl-ref/source/rltiles/item/ring/gold_white.bmp differ diff --git a/crawl-ref/source/rltiles/item/ring/gold_yellow.bmp b/crawl-ref/source/rltiles/item/ring/gold_yellow.bmp new file mode 100644 index 0000000000..ed18275123 Binary files /dev/null and b/crawl-ref/source/rltiles/item/ring/gold_yellow.bmp differ diff --git a/crawl-ref/source/rltiles/item/ring/granite.bmp b/crawl-ref/source/rltiles/item/ring/granite.bmp new file mode 100644 index 0000000000..98932bc344 Binary files /dev/null and b/crawl-ref/source/rltiles/item/ring/granite.bmp differ diff --git a/crawl-ref/source/rltiles/item/ring/iron.bmp b/crawl-ref/source/rltiles/item/ring/iron.bmp new file mode 100644 index 0000000000..f2efd0a1bf Binary files /dev/null and b/crawl-ref/source/rltiles/item/ring/iron.bmp differ diff --git a/crawl-ref/source/rltiles/item/ring/ivory.bmp b/crawl-ref/source/rltiles/item/ring/ivory.bmp new file mode 100644 index 0000000000..17864fd518 Binary files /dev/null and b/crawl-ref/source/rltiles/item/ring/ivory.bmp differ diff --git a/crawl-ref/source/rltiles/item/ring/jade.bmp b/crawl-ref/source/rltiles/item/ring/jade.bmp new file mode 100644 index 0000000000..f09eb978c8 Binary files /dev/null and b/crawl-ref/source/rltiles/item/ring/jade.bmp differ diff --git a/crawl-ref/source/rltiles/item/ring/moonstone.bmp b/crawl-ref/source/rltiles/item/ring/moonstone.bmp new file mode 100644 index 0000000000..1aefdadd8c Binary files /dev/null and b/crawl-ref/source/rltiles/item/ring/moonstone.bmp differ diff --git a/crawl-ref/source/rltiles/item/ring/opal.bmp b/crawl-ref/source/rltiles/item/ring/opal.bmp new file mode 100644 index 0000000000..506e6786c1 Binary files /dev/null and b/crawl-ref/source/rltiles/item/ring/opal.bmp differ diff --git a/crawl-ref/source/rltiles/item/ring/pearl.bmp b/crawl-ref/source/rltiles/item/ring/pearl.bmp new file mode 100644 index 0000000000..3164b7875e Binary files /dev/null and b/crawl-ref/source/rltiles/item/ring/pearl.bmp differ diff --git a/crawl-ref/source/rltiles/item/ring/plain_black.bmp b/crawl-ref/source/rltiles/item/ring/plain_black.bmp new file mode 100644 index 0000000000..132db36396 Binary files /dev/null and b/crawl-ref/source/rltiles/item/ring/plain_black.bmp differ diff --git a/crawl-ref/source/rltiles/item/ring/plain_blue.bmp b/crawl-ref/source/rltiles/item/ring/plain_blue.bmp new file mode 100644 index 0000000000..368a174b4d Binary files /dev/null and b/crawl-ref/source/rltiles/item/ring/plain_blue.bmp differ diff --git a/crawl-ref/source/rltiles/item/ring/plain_cyan.bmp b/crawl-ref/source/rltiles/item/ring/plain_cyan.bmp new file mode 100644 index 0000000000..7b4432eabc Binary files /dev/null and b/crawl-ref/source/rltiles/item/ring/plain_cyan.bmp differ diff --git a/crawl-ref/source/rltiles/item/ring/plain_dark.bmp b/crawl-ref/source/rltiles/item/ring/plain_dark.bmp new file mode 100644 index 0000000000..710502d74f Binary files /dev/null and b/crawl-ref/source/rltiles/item/ring/plain_dark.bmp differ diff --git a/crawl-ref/source/rltiles/item/ring/plain_green.bmp b/crawl-ref/source/rltiles/item/ring/plain_green.bmp new file mode 100644 index 0000000000..717c93640b Binary files /dev/null and b/crawl-ref/source/rltiles/item/ring/plain_green.bmp differ diff --git a/crawl-ref/source/rltiles/item/ring/plain_magenta.bmp b/crawl-ref/source/rltiles/item/ring/plain_magenta.bmp new file mode 100644 index 0000000000..a55acfb129 Binary files /dev/null and b/crawl-ref/source/rltiles/item/ring/plain_magenta.bmp differ diff --git a/crawl-ref/source/rltiles/item/ring/plain_red.bmp b/crawl-ref/source/rltiles/item/ring/plain_red.bmp new file mode 100644 index 0000000000..37d349cc7d Binary files /dev/null and b/crawl-ref/source/rltiles/item/ring/plain_red.bmp differ diff --git a/crawl-ref/source/rltiles/item/ring/plain_yellow.bmp b/crawl-ref/source/rltiles/item/ring/plain_yellow.bmp new file mode 100644 index 0000000000..967d0b9fd9 Binary files /dev/null and b/crawl-ref/source/rltiles/item/ring/plain_yellow.bmp differ diff --git a/crawl-ref/source/rltiles/item/ring/ruby.bmp b/crawl-ref/source/rltiles/item/ring/ruby.bmp new file mode 100644 index 0000000000..0fefb8bc10 Binary files /dev/null and b/crawl-ref/source/rltiles/item/ring/ruby.bmp differ diff --git a/crawl-ref/source/rltiles/item/ring/sapphire.bmp b/crawl-ref/source/rltiles/item/ring/sapphire.bmp new file mode 100644 index 0000000000..f8158f259d Binary files /dev/null and b/crawl-ref/source/rltiles/item/ring/sapphire.bmp differ diff --git a/crawl-ref/source/rltiles/item/ring/shiny.bmp b/crawl-ref/source/rltiles/item/ring/shiny.bmp new file mode 100644 index 0000000000..28f058b4fb Binary files /dev/null and b/crawl-ref/source/rltiles/item/ring/shiny.bmp differ diff --git a/crawl-ref/source/rltiles/item/ring/silver.bmp b/crawl-ref/source/rltiles/item/ring/silver.bmp new file mode 100644 index 0000000000..8bc3c0e0e0 Binary files /dev/null and b/crawl-ref/source/rltiles/item/ring/silver.bmp differ diff --git a/crawl-ref/source/rltiles/item/ring/steel.bmp b/crawl-ref/source/rltiles/item/ring/steel.bmp new file mode 100644 index 0000000000..516e4b09b7 Binary files /dev/null and b/crawl-ref/source/rltiles/item/ring/steel.bmp differ diff --git a/crawl-ref/source/rltiles/item/ring/tiger_eye.bmp b/crawl-ref/source/rltiles/item/ring/tiger_eye.bmp new file mode 100644 index 0000000000..91666354e9 Binary files /dev/null and b/crawl-ref/source/rltiles/item/ring/tiger_eye.bmp differ diff --git a/crawl-ref/source/rltiles/item/ring/topaz.bmp b/crawl-ref/source/rltiles/item/ring/topaz.bmp new file mode 100644 index 0000000000..994d063c5f Binary files /dev/null and b/crawl-ref/source/rltiles/item/ring/topaz.bmp differ diff --git a/crawl-ref/source/rltiles/item/ring/twisted.bmp b/crawl-ref/source/rltiles/item/ring/twisted.bmp new file mode 100644 index 0000000000..88378ad271 Binary files /dev/null and b/crawl-ref/source/rltiles/item/ring/twisted.bmp differ diff --git a/crawl-ref/source/rltiles/item/ring/urand_mage.bmp b/crawl-ref/source/rltiles/item/ring/urand_mage.bmp new file mode 100644 index 0000000000..d64242114a Binary files /dev/null and b/crawl-ref/source/rltiles/item/ring/urand_mage.bmp differ diff --git a/crawl-ref/source/rltiles/item/ring/urand_robustness.bmp b/crawl-ref/source/rltiles/item/ring/urand_robustness.bmp new file mode 100644 index 0000000000..a1abbbbfec Binary files /dev/null and b/crawl-ref/source/rltiles/item/ring/urand_robustness.bmp differ diff --git a/crawl-ref/source/rltiles/item/ring/urand_shadows.bmp b/crawl-ref/source/rltiles/item/ring/urand_shadows.bmp new file mode 100644 index 0000000000..30e0d9adcc Binary files /dev/null and b/crawl-ref/source/rltiles/item/ring/urand_shadows.bmp differ diff --git a/crawl-ref/source/rltiles/item/ring/urand_shaolin.bmp b/crawl-ref/source/rltiles/item/ring/urand_shaolin.bmp new file mode 100644 index 0000000000..ef1dd9cf9c Binary files /dev/null and b/crawl-ref/source/rltiles/item/ring/urand_shaolin.bmp differ diff --git a/crawl-ref/source/rltiles/item/ring/wire.bmp b/crawl-ref/source/rltiles/item/ring/wire.bmp new file mode 100644 index 0000000000..fc9918ed93 Binary files /dev/null and b/crawl-ref/source/rltiles/item/ring/wire.bmp differ diff --git a/crawl-ref/source/rltiles/item/ring/wooden.bmp b/crawl-ref/source/rltiles/item/ring/wooden.bmp new file mode 100644 index 0000000000..d02308b2d8 Binary files /dev/null and b/crawl-ref/source/rltiles/item/ring/wooden.bmp differ diff --git a/crawl-ref/source/rltiles/item/scroll/andova_begarin.bmp b/crawl-ref/source/rltiles/item/scroll/andova_begarin.bmp new file mode 100644 index 0000000000..5f5b7c284d Binary files /dev/null and b/crawl-ref/source/rltiles/item/scroll/andova_begarin.bmp differ diff --git a/crawl-ref/source/rltiles/item/scroll/blank_paper.bmp b/crawl-ref/source/rltiles/item/scroll/blank_paper.bmp new file mode 100644 index 0000000000..de92ec87b3 Binary files /dev/null and b/crawl-ref/source/rltiles/item/scroll/blank_paper.bmp differ diff --git a/crawl-ref/source/rltiles/item/scroll/daiyen_fooels.bmp b/crawl-ref/source/rltiles/item/scroll/daiyen_fooels.bmp new file mode 100644 index 0000000000..5f5b7c284d Binary files /dev/null and b/crawl-ref/source/rltiles/item/scroll/daiyen_fooels.bmp differ diff --git a/crawl-ref/source/rltiles/item/scroll/duam_xnaht.bmp b/crawl-ref/source/rltiles/item/scroll/duam_xnaht.bmp new file mode 100644 index 0000000000..5f5b7c284d Binary files /dev/null and b/crawl-ref/source/rltiles/item/scroll/duam_xnaht.bmp differ diff --git a/crawl-ref/source/rltiles/item/scroll/elam_ebow.bmp b/crawl-ref/source/rltiles/item/scroll/elam_ebow.bmp new file mode 100644 index 0000000000..5f5b7c284d Binary files /dev/null and b/crawl-ref/source/rltiles/item/scroll/elam_ebow.bmp differ diff --git a/crawl-ref/source/rltiles/item/scroll/elbib_yloh.bmp b/crawl-ref/source/rltiles/item/scroll/elbib_yloh.bmp new file mode 100644 index 0000000000..5f5b7c284d Binary files /dev/null and b/crawl-ref/source/rltiles/item/scroll/elbib_yloh.bmp differ diff --git a/crawl-ref/source/rltiles/item/scroll/foobie_bletch.bmp b/crawl-ref/source/rltiles/item/scroll/foobie_bletch.bmp new file mode 100644 index 0000000000..5f5b7c284d Binary files /dev/null and b/crawl-ref/source/rltiles/item/scroll/foobie_bletch.bmp differ diff --git a/crawl-ref/source/rltiles/item/scroll/garven_deh.bmp b/crawl-ref/source/rltiles/item/scroll/garven_deh.bmp new file mode 100644 index 0000000000..5f5b7c284d Binary files /dev/null and b/crawl-ref/source/rltiles/item/scroll/garven_deh.bmp differ diff --git a/crawl-ref/source/rltiles/item/scroll/hackem_muche.bmp b/crawl-ref/source/rltiles/item/scroll/hackem_muche.bmp new file mode 100644 index 0000000000..5f5b7c284d Binary files /dev/null and b/crawl-ref/source/rltiles/item/scroll/hackem_muche.bmp differ diff --git a/crawl-ref/source/rltiles/item/scroll/i-acquirement.bmp b/crawl-ref/source/rltiles/item/scroll/i-acquirement.bmp new file mode 100644 index 0000000000..75790f58a9 Binary files /dev/null and b/crawl-ref/source/rltiles/item/scroll/i-acquirement.bmp differ diff --git a/crawl-ref/source/rltiles/item/scroll/i-blinking.bmp b/crawl-ref/source/rltiles/item/scroll/i-blinking.bmp new file mode 100644 index 0000000000..f24b4f94ab Binary files /dev/null and b/crawl-ref/source/rltiles/item/scroll/i-blinking.bmp differ diff --git a/crawl-ref/source/rltiles/item/scroll/i-curse_armour.bmp b/crawl-ref/source/rltiles/item/scroll/i-curse_armour.bmp new file mode 100644 index 0000000000..22c8e9c8c8 Binary files /dev/null and b/crawl-ref/source/rltiles/item/scroll/i-curse_armour.bmp differ diff --git a/crawl-ref/source/rltiles/item/scroll/i-curse_weapon.bmp b/crawl-ref/source/rltiles/item/scroll/i-curse_weapon.bmp new file mode 100644 index 0000000000..742e0b1480 Binary files /dev/null and b/crawl-ref/source/rltiles/item/scroll/i-curse_weapon.bmp differ diff --git a/crawl-ref/source/rltiles/item/scroll/i-detect_curse.bmp b/crawl-ref/source/rltiles/item/scroll/i-detect_curse.bmp new file mode 100644 index 0000000000..62226ab632 Binary files /dev/null and b/crawl-ref/source/rltiles/item/scroll/i-detect_curse.bmp differ diff --git a/crawl-ref/source/rltiles/item/scroll/i-enchant-weapon1.bmp b/crawl-ref/source/rltiles/item/scroll/i-enchant-weapon1.bmp new file mode 100644 index 0000000000..91bc6a8359 Binary files /dev/null and b/crawl-ref/source/rltiles/item/scroll/i-enchant-weapon1.bmp differ diff --git a/crawl-ref/source/rltiles/item/scroll/i-enchant-weapon2.bmp b/crawl-ref/source/rltiles/item/scroll/i-enchant-weapon2.bmp new file mode 100644 index 0000000000..b7ecc2767e Binary files /dev/null and b/crawl-ref/source/rltiles/item/scroll/i-enchant-weapon2.bmp differ diff --git a/crawl-ref/source/rltiles/item/scroll/i-enchant-weapon3.bmp b/crawl-ref/source/rltiles/item/scroll/i-enchant-weapon3.bmp new file mode 100644 index 0000000000..f89b839e57 Binary files /dev/null and b/crawl-ref/source/rltiles/item/scroll/i-enchant-weapon3.bmp differ diff --git a/crawl-ref/source/rltiles/item/scroll/i-enchant_armour.bmp b/crawl-ref/source/rltiles/item/scroll/i-enchant_armour.bmp new file mode 100644 index 0000000000..38c362c91a Binary files /dev/null and b/crawl-ref/source/rltiles/item/scroll/i-enchant_armour.bmp differ diff --git a/crawl-ref/source/rltiles/item/scroll/i-fear.bmp b/crawl-ref/source/rltiles/item/scroll/i-fear.bmp new file mode 100644 index 0000000000..75e5e07611 Binary files /dev/null and b/crawl-ref/source/rltiles/item/scroll/i-fear.bmp differ diff --git a/crawl-ref/source/rltiles/item/scroll/i-foregetfulness.bmp b/crawl-ref/source/rltiles/item/scroll/i-foregetfulness.bmp new file mode 100644 index 0000000000..83857c2161 Binary files /dev/null and b/crawl-ref/source/rltiles/item/scroll/i-foregetfulness.bmp differ diff --git a/crawl-ref/source/rltiles/item/scroll/i-identify.bmp b/crawl-ref/source/rltiles/item/scroll/i-identify.bmp new file mode 100644 index 0000000000..f8e3135e8d Binary files /dev/null and b/crawl-ref/source/rltiles/item/scroll/i-identify.bmp differ diff --git a/crawl-ref/source/rltiles/item/scroll/i-immolation.bmp b/crawl-ref/source/rltiles/item/scroll/i-immolation.bmp new file mode 100644 index 0000000000..07f942f584 Binary files /dev/null and b/crawl-ref/source/rltiles/item/scroll/i-immolation.bmp differ diff --git a/crawl-ref/source/rltiles/item/scroll/i-magic_mapping.bmp b/crawl-ref/source/rltiles/item/scroll/i-magic_mapping.bmp new file mode 100644 index 0000000000..0f9475d416 Binary files /dev/null and b/crawl-ref/source/rltiles/item/scroll/i-magic_mapping.bmp differ diff --git a/crawl-ref/source/rltiles/item/scroll/i-noise.bmp b/crawl-ref/source/rltiles/item/scroll/i-noise.bmp new file mode 100644 index 0000000000..591620bab4 Binary files /dev/null and b/crawl-ref/source/rltiles/item/scroll/i-noise.bmp differ diff --git a/crawl-ref/source/rltiles/item/scroll/i-random_uselessness.bmp b/crawl-ref/source/rltiles/item/scroll/i-random_uselessness.bmp new file mode 100644 index 0000000000..6f54abbf11 Binary files /dev/null and b/crawl-ref/source/rltiles/item/scroll/i-random_uselessness.bmp differ diff --git a/crawl-ref/source/rltiles/item/scroll/i-recharging.bmp b/crawl-ref/source/rltiles/item/scroll/i-recharging.bmp new file mode 100644 index 0000000000..1498df9e6b Binary files /dev/null and b/crawl-ref/source/rltiles/item/scroll/i-recharging.bmp differ diff --git a/crawl-ref/source/rltiles/item/scroll/i-remove_curse.bmp b/crawl-ref/source/rltiles/item/scroll/i-remove_curse.bmp new file mode 100644 index 0000000000..3160a97869 Binary files /dev/null and b/crawl-ref/source/rltiles/item/scroll/i-remove_curse.bmp differ diff --git a/crawl-ref/source/rltiles/item/scroll/i-summoning.bmp b/crawl-ref/source/rltiles/item/scroll/i-summoning.bmp new file mode 100644 index 0000000000..55787d74ae Binary files /dev/null and b/crawl-ref/source/rltiles/item/scroll/i-summoning.bmp differ diff --git a/crawl-ref/source/rltiles/item/scroll/i-teleportation.bmp b/crawl-ref/source/rltiles/item/scroll/i-teleportation.bmp new file mode 100644 index 0000000000..26f0bbcaad Binary files /dev/null and b/crawl-ref/source/rltiles/item/scroll/i-teleportation.bmp differ diff --git a/crawl-ref/source/rltiles/item/scroll/i-torment.bmp b/crawl-ref/source/rltiles/item/scroll/i-torment.bmp new file mode 100644 index 0000000000..a6333227a0 Binary files /dev/null and b/crawl-ref/source/rltiles/item/scroll/i-torment.bmp differ diff --git a/crawl-ref/source/rltiles/item/scroll/i-vorpalize-weapon.bmp b/crawl-ref/source/rltiles/item/scroll/i-vorpalize-weapon.bmp new file mode 100644 index 0000000000..00adf184a7 Binary files /dev/null and b/crawl-ref/source/rltiles/item/scroll/i-vorpalize-weapon.bmp differ diff --git a/crawl-ref/source/rltiles/item/scroll/juyed_awk_yacc.bmp b/crawl-ref/source/rltiles/item/scroll/juyed_awk_yacc.bmp new file mode 100644 index 0000000000..5f5b7c284d Binary files /dev/null and b/crawl-ref/source/rltiles/item/scroll/juyed_awk_yacc.bmp differ diff --git a/crawl-ref/source/rltiles/item/scroll/kernod_wel.bmp b/crawl-ref/source/rltiles/item/scroll/kernod_wel.bmp new file mode 100644 index 0000000000..5f5b7c284d Binary files /dev/null and b/crawl-ref/source/rltiles/item/scroll/kernod_wel.bmp differ diff --git a/crawl-ref/source/rltiles/item/scroll/kirje.bmp b/crawl-ref/source/rltiles/item/scroll/kirje.bmp new file mode 100644 index 0000000000..5f5b7c284d Binary files /dev/null and b/crawl-ref/source/rltiles/item/scroll/kirje.bmp differ diff --git a/crawl-ref/source/rltiles/item/scroll/lep_gex_ven_zea.bmp b/crawl-ref/source/rltiles/item/scroll/lep_gex_ven_zea.bmp new file mode 100644 index 0000000000..5f5b7c284d Binary files /dev/null and b/crawl-ref/source/rltiles/item/scroll/lep_gex_ven_zea.bmp differ diff --git a/crawl-ref/source/rltiles/item/scroll/mail.bmp b/crawl-ref/source/rltiles/item/scroll/mail.bmp new file mode 100644 index 0000000000..f4cd4c2c4c Binary files /dev/null and b/crawl-ref/source/rltiles/item/scroll/mail.bmp differ diff --git a/crawl-ref/source/rltiles/item/scroll/nr_9.bmp b/crawl-ref/source/rltiles/item/scroll/nr_9.bmp new file mode 100644 index 0000000000..5f5b7c284d Binary files /dev/null and b/crawl-ref/source/rltiles/item/scroll/nr_9.bmp differ diff --git a/crawl-ref/source/rltiles/item/scroll/pratyavayah.bmp b/crawl-ref/source/rltiles/item/scroll/pratyavayah.bmp new file mode 100644 index 0000000000..5f5b7c284d Binary files /dev/null and b/crawl-ref/source/rltiles/item/scroll/pratyavayah.bmp differ diff --git a/crawl-ref/source/rltiles/item/scroll/prirutsenie.bmp b/crawl-ref/source/rltiles/item/scroll/prirutsenie.bmp new file mode 100644 index 0000000000..5f5b7c284d Binary files /dev/null and b/crawl-ref/source/rltiles/item/scroll/prirutsenie.bmp differ diff --git a/crawl-ref/source/rltiles/item/scroll/read_me.bmp b/crawl-ref/source/rltiles/item/scroll/read_me.bmp new file mode 100644 index 0000000000..5f5b7c284d Binary files /dev/null and b/crawl-ref/source/rltiles/item/scroll/read_me.bmp differ diff --git a/crawl-ref/source/rltiles/item/scroll/temov.bmp b/crawl-ref/source/rltiles/item/scroll/temov.bmp new file mode 100644 index 0000000000..5f5b7c284d Binary files /dev/null and b/crawl-ref/source/rltiles/item/scroll/temov.bmp differ diff --git a/crawl-ref/source/rltiles/item/scroll/tharr.bmp b/crawl-ref/source/rltiles/item/scroll/tharr.bmp new file mode 100644 index 0000000000..5f5b7c284d Binary files /dev/null and b/crawl-ref/source/rltiles/item/scroll/tharr.bmp differ diff --git a/crawl-ref/source/rltiles/item/scroll/ve_forbryderne.bmp b/crawl-ref/source/rltiles/item/scroll/ve_forbryderne.bmp new file mode 100644 index 0000000000..5f5b7c284d Binary files /dev/null and b/crawl-ref/source/rltiles/item/scroll/ve_forbryderne.bmp differ diff --git a/crawl-ref/source/rltiles/item/scroll/velox_neb.bmp b/crawl-ref/source/rltiles/item/scroll/velox_neb.bmp new file mode 100644 index 0000000000..5f5b7c284d Binary files /dev/null and b/crawl-ref/source/rltiles/item/scroll/velox_neb.bmp differ diff --git a/crawl-ref/source/rltiles/item/scroll/venzar_borgavve.bmp b/crawl-ref/source/rltiles/item/scroll/venzar_borgavve.bmp new file mode 100644 index 0000000000..5f5b7c284d Binary files /dev/null and b/crawl-ref/source/rltiles/item/scroll/venzar_borgavve.bmp differ diff --git a/crawl-ref/source/rltiles/item/scroll/verr_yed_horre.bmp b/crawl-ref/source/rltiles/item/scroll/verr_yed_horre.bmp new file mode 100644 index 0000000000..5f5b7c284d Binary files /dev/null and b/crawl-ref/source/rltiles/item/scroll/verr_yed_horre.bmp differ diff --git a/crawl-ref/source/rltiles/item/scroll/xixaxa_xoxaxa_xuxaxa.bmp b/crawl-ref/source/rltiles/item/scroll/xixaxa_xoxaxa_xuxaxa.bmp new file mode 100644 index 0000000000..5f5b7c284d Binary files /dev/null and b/crawl-ref/source/rltiles/item/scroll/xixaxa_xoxaxa_xuxaxa.bmp differ diff --git a/crawl-ref/source/rltiles/item/scroll/yum_yum.bmp b/crawl-ref/source/rltiles/item/scroll/yum_yum.bmp new file mode 100644 index 0000000000..5f5b7c284d Binary files /dev/null and b/crawl-ref/source/rltiles/item/scroll/yum_yum.bmp differ diff --git a/crawl-ref/source/rltiles/item/scroll/zelgo_mer.bmp b/crawl-ref/source/rltiles/item/scroll/zelgo_mer.bmp new file mode 100644 index 0000000000..5f5b7c284d Binary files /dev/null and b/crawl-ref/source/rltiles/item/scroll/zelgo_mer.bmp differ diff --git a/crawl-ref/source/rltiles/item/wand/aluminum.bmp b/crawl-ref/source/rltiles/item/wand/aluminum.bmp new file mode 100644 index 0000000000..f0aac7f0f5 Binary files /dev/null and b/crawl-ref/source/rltiles/item/wand/aluminum.bmp differ diff --git a/crawl-ref/source/rltiles/item/wand/balsa.bmp b/crawl-ref/source/rltiles/item/wand/balsa.bmp new file mode 100644 index 0000000000..648c28e37b Binary files /dev/null and b/crawl-ref/source/rltiles/item/wand/balsa.bmp differ diff --git a/crawl-ref/source/rltiles/item/wand/brass.bmp b/crawl-ref/source/rltiles/item/wand/brass.bmp new file mode 100644 index 0000000000..25480464f4 Binary files /dev/null and b/crawl-ref/source/rltiles/item/wand/brass.bmp differ diff --git a/crawl-ref/source/rltiles/item/wand/copper.bmp b/crawl-ref/source/rltiles/item/wand/copper.bmp new file mode 100644 index 0000000000..4583d6f318 Binary files /dev/null and b/crawl-ref/source/rltiles/item/wand/copper.bmp differ diff --git a/crawl-ref/source/rltiles/item/wand/crystal.bmp b/crawl-ref/source/rltiles/item/wand/crystal.bmp new file mode 100644 index 0000000000..c2815286ca Binary files /dev/null and b/crawl-ref/source/rltiles/item/wand/crystal.bmp differ diff --git a/crawl-ref/source/rltiles/item/wand/curved.bmp b/crawl-ref/source/rltiles/item/wand/curved.bmp new file mode 100644 index 0000000000..0f5e3d48f8 Binary files /dev/null and b/crawl-ref/source/rltiles/item/wand/curved.bmp differ diff --git a/crawl-ref/source/rltiles/item/wand/ebony.bmp b/crawl-ref/source/rltiles/item/wand/ebony.bmp new file mode 100644 index 0000000000..bb7b409b22 Binary files /dev/null and b/crawl-ref/source/rltiles/item/wand/ebony.bmp differ diff --git a/crawl-ref/source/rltiles/item/wand/forked.bmp b/crawl-ref/source/rltiles/item/wand/forked.bmp new file mode 100644 index 0000000000..67fd8aa5f8 Binary files /dev/null and b/crawl-ref/source/rltiles/item/wand/forked.bmp differ diff --git a/crawl-ref/source/rltiles/item/wand/gem_bone.bmp b/crawl-ref/source/rltiles/item/wand/gem_bone.bmp new file mode 100644 index 0000000000..71f5a5ab20 Binary files /dev/null and b/crawl-ref/source/rltiles/item/wand/gem_bone.bmp differ diff --git a/crawl-ref/source/rltiles/item/wand/gem_brass.bmp b/crawl-ref/source/rltiles/item/wand/gem_brass.bmp new file mode 100644 index 0000000000..0acaf8fdf5 Binary files /dev/null and b/crawl-ref/source/rltiles/item/wand/gem_brass.bmp differ diff --git a/crawl-ref/source/rltiles/item/wand/gem_bronze.bmp b/crawl-ref/source/rltiles/item/wand/gem_bronze.bmp new file mode 100644 index 0000000000..76d178f946 Binary files /dev/null and b/crawl-ref/source/rltiles/item/wand/gem_bronze.bmp differ diff --git a/crawl-ref/source/rltiles/item/wand/gem_copper.bmp b/crawl-ref/source/rltiles/item/wand/gem_copper.bmp new file mode 100644 index 0000000000..f6083470ed Binary files /dev/null and b/crawl-ref/source/rltiles/item/wand/gem_copper.bmp differ diff --git a/crawl-ref/source/rltiles/item/wand/gem_glass.bmp b/crawl-ref/source/rltiles/item/wand/gem_glass.bmp new file mode 100644 index 0000000000..7a9e6f6468 Binary files /dev/null and b/crawl-ref/source/rltiles/item/wand/gem_glass.bmp differ diff --git a/crawl-ref/source/rltiles/item/wand/gem_gold.bmp b/crawl-ref/source/rltiles/item/wand/gem_gold.bmp new file mode 100644 index 0000000000..5d38cfed91 Binary files /dev/null and b/crawl-ref/source/rltiles/item/wand/gem_gold.bmp differ diff --git a/crawl-ref/source/rltiles/item/wand/gem_iron.bmp b/crawl-ref/source/rltiles/item/wand/gem_iron.bmp new file mode 100644 index 0000000000..c67d54fdd8 Binary files /dev/null and b/crawl-ref/source/rltiles/item/wand/gem_iron.bmp differ diff --git a/crawl-ref/source/rltiles/item/wand/gem_ivory.bmp b/crawl-ref/source/rltiles/item/wand/gem_ivory.bmp new file mode 100644 index 0000000000..1e15d4efac Binary files /dev/null and b/crawl-ref/source/rltiles/item/wand/gem_ivory.bmp differ diff --git a/crawl-ref/source/rltiles/item/wand/gem_lead.bmp b/crawl-ref/source/rltiles/item/wand/gem_lead.bmp new file mode 100644 index 0000000000..91aa07e704 Binary files /dev/null and b/crawl-ref/source/rltiles/item/wand/gem_lead.bmp differ diff --git a/crawl-ref/source/rltiles/item/wand/gem_plastic.bmp b/crawl-ref/source/rltiles/item/wand/gem_plastic.bmp new file mode 100644 index 0000000000..20bcd307e9 Binary files /dev/null and b/crawl-ref/source/rltiles/item/wand/gem_plastic.bmp differ diff --git a/crawl-ref/source/rltiles/item/wand/gem_silver.bmp b/crawl-ref/source/rltiles/item/wand/gem_silver.bmp new file mode 100644 index 0000000000..acc777d0b5 Binary files /dev/null and b/crawl-ref/source/rltiles/item/wand/gem_silver.bmp differ diff --git a/crawl-ref/source/rltiles/item/wand/gem_wood.bmp b/crawl-ref/source/rltiles/item/wand/gem_wood.bmp new file mode 100644 index 0000000000..fc3c7b49e0 Binary files /dev/null and b/crawl-ref/source/rltiles/item/wand/gem_wood.bmp differ diff --git a/crawl-ref/source/rltiles/item/wand/glass.bmp b/crawl-ref/source/rltiles/item/wand/glass.bmp new file mode 100644 index 0000000000..49fc396966 Binary files /dev/null and b/crawl-ref/source/rltiles/item/wand/glass.bmp differ diff --git a/crawl-ref/source/rltiles/item/wand/hexagonal.bmp b/crawl-ref/source/rltiles/item/wand/hexagonal.bmp new file mode 100644 index 0000000000..7e319130f0 Binary files /dev/null and b/crawl-ref/source/rltiles/item/wand/hexagonal.bmp differ diff --git a/crawl-ref/source/rltiles/item/wand/i-cold.bmp b/crawl-ref/source/rltiles/item/wand/i-cold.bmp new file mode 100644 index 0000000000..af1ccad412 Binary files /dev/null and b/crawl-ref/source/rltiles/item/wand/i-cold.bmp differ diff --git a/crawl-ref/source/rltiles/item/wand/i-confusion.bmp b/crawl-ref/source/rltiles/item/wand/i-confusion.bmp new file mode 100644 index 0000000000..03b5fae648 Binary files /dev/null and b/crawl-ref/source/rltiles/item/wand/i-confusion.bmp differ diff --git a/crawl-ref/source/rltiles/item/wand/i-digging.bmp b/crawl-ref/source/rltiles/item/wand/i-digging.bmp new file mode 100644 index 0000000000..b190713c86 Binary files /dev/null and b/crawl-ref/source/rltiles/item/wand/i-digging.bmp differ diff --git a/crawl-ref/source/rltiles/item/wand/i-disintegration.bmp b/crawl-ref/source/rltiles/item/wand/i-disintegration.bmp new file mode 100644 index 0000000000..f7b7a251c5 Binary files /dev/null and b/crawl-ref/source/rltiles/item/wand/i-disintegration.bmp differ diff --git a/crawl-ref/source/rltiles/item/wand/i-draining.bmp b/crawl-ref/source/rltiles/item/wand/i-draining.bmp new file mode 100644 index 0000000000..33d07da6de Binary files /dev/null and b/crawl-ref/source/rltiles/item/wand/i-draining.bmp differ diff --git a/crawl-ref/source/rltiles/item/wand/i-enslavement.bmp b/crawl-ref/source/rltiles/item/wand/i-enslavement.bmp new file mode 100644 index 0000000000..55787d74ae Binary files /dev/null and b/crawl-ref/source/rltiles/item/wand/i-enslavement.bmp differ diff --git a/crawl-ref/source/rltiles/item/wand/i-fire.bmp b/crawl-ref/source/rltiles/item/wand/i-fire.bmp new file mode 100644 index 0000000000..fb426af490 Binary files /dev/null and b/crawl-ref/source/rltiles/item/wand/i-fire.bmp differ diff --git a/crawl-ref/source/rltiles/item/wand/i-fireball.bmp b/crawl-ref/source/rltiles/item/wand/i-fireball.bmp new file mode 100644 index 0000000000..3e993461cb Binary files /dev/null and b/crawl-ref/source/rltiles/item/wand/i-fireball.bmp differ diff --git a/crawl-ref/source/rltiles/item/wand/i-flame.bmp b/crawl-ref/source/rltiles/item/wand/i-flame.bmp new file mode 100644 index 0000000000..48ebf95164 Binary files /dev/null and b/crawl-ref/source/rltiles/item/wand/i-flame.bmp differ diff --git a/crawl-ref/source/rltiles/item/wand/i-frost.bmp b/crawl-ref/source/rltiles/item/wand/i-frost.bmp new file mode 100644 index 0000000000..8c984cd74f Binary files /dev/null and b/crawl-ref/source/rltiles/item/wand/i-frost.bmp differ diff --git a/crawl-ref/source/rltiles/item/wand/i-hasting.bmp b/crawl-ref/source/rltiles/item/wand/i-hasting.bmp new file mode 100644 index 0000000000..5610101e13 Binary files /dev/null and b/crawl-ref/source/rltiles/item/wand/i-hasting.bmp differ diff --git a/crawl-ref/source/rltiles/item/wand/i-healing.bmp b/crawl-ref/source/rltiles/item/wand/i-healing.bmp new file mode 100644 index 0000000000..bf1fab5809 Binary files /dev/null and b/crawl-ref/source/rltiles/item/wand/i-healing.bmp differ diff --git a/crawl-ref/source/rltiles/item/wand/i-invisibility.bmp b/crawl-ref/source/rltiles/item/wand/i-invisibility.bmp new file mode 100644 index 0000000000..a4ba50c467 Binary files /dev/null and b/crawl-ref/source/rltiles/item/wand/i-invisibility.bmp differ diff --git a/crawl-ref/source/rltiles/item/wand/i-label.bmp b/crawl-ref/source/rltiles/item/wand/i-label.bmp new file mode 100644 index 0000000000..7a8be22445 Binary files /dev/null and b/crawl-ref/source/rltiles/item/wand/i-label.bmp differ diff --git a/crawl-ref/source/rltiles/item/wand/i-lightning.bmp b/crawl-ref/source/rltiles/item/wand/i-lightning.bmp new file mode 100644 index 0000000000..127a84b398 Binary files /dev/null and b/crawl-ref/source/rltiles/item/wand/i-lightning.bmp differ diff --git a/crawl-ref/source/rltiles/item/wand/i-magic_darts.bmp b/crawl-ref/source/rltiles/item/wand/i-magic_darts.bmp new file mode 100644 index 0000000000..182e9133e3 Binary files /dev/null and b/crawl-ref/source/rltiles/item/wand/i-magic_darts.bmp differ diff --git a/crawl-ref/source/rltiles/item/wand/i-paralysis.bmp b/crawl-ref/source/rltiles/item/wand/i-paralysis.bmp new file mode 100644 index 0000000000..436e810efb Binary files /dev/null and b/crawl-ref/source/rltiles/item/wand/i-paralysis.bmp differ diff --git a/crawl-ref/source/rltiles/item/wand/i-polymorph_other.bmp b/crawl-ref/source/rltiles/item/wand/i-polymorph_other.bmp new file mode 100644 index 0000000000..99e8e572a2 Binary files /dev/null and b/crawl-ref/source/rltiles/item/wand/i-polymorph_other.bmp differ diff --git a/crawl-ref/source/rltiles/item/wand/i-random_effects.bmp b/crawl-ref/source/rltiles/item/wand/i-random_effects.bmp new file mode 100644 index 0000000000..6f54abbf11 Binary files /dev/null and b/crawl-ref/source/rltiles/item/wand/i-random_effects.bmp differ diff --git a/crawl-ref/source/rltiles/item/wand/i-slowing.bmp b/crawl-ref/source/rltiles/item/wand/i-slowing.bmp new file mode 100644 index 0000000000..d1cb9a537b Binary files /dev/null and b/crawl-ref/source/rltiles/item/wand/i-slowing.bmp differ diff --git a/crawl-ref/source/rltiles/item/wand/i-teleportation.bmp b/crawl-ref/source/rltiles/item/wand/i-teleportation.bmp new file mode 100644 index 0000000000..fe92d812d7 Binary files /dev/null and b/crawl-ref/source/rltiles/item/wand/i-teleportation.bmp differ diff --git a/crawl-ref/source/rltiles/item/wand/iridium.bmp b/crawl-ref/source/rltiles/item/wand/iridium.bmp new file mode 100644 index 0000000000..1fe63b248f Binary files /dev/null and b/crawl-ref/source/rltiles/item/wand/iridium.bmp differ diff --git a/crawl-ref/source/rltiles/item/wand/iron.bmp b/crawl-ref/source/rltiles/item/wand/iron.bmp new file mode 100644 index 0000000000..a9b27f19bb Binary files /dev/null and b/crawl-ref/source/rltiles/item/wand/iron.bmp differ diff --git a/crawl-ref/source/rltiles/item/wand/jeweled.bmp b/crawl-ref/source/rltiles/item/wand/jeweled.bmp new file mode 100644 index 0000000000..a5690553cc Binary files /dev/null and b/crawl-ref/source/rltiles/item/wand/jeweled.bmp differ diff --git a/crawl-ref/source/rltiles/item/wand/long.bmp b/crawl-ref/source/rltiles/item/wand/long.bmp new file mode 100644 index 0000000000..31ddd65d65 Binary files /dev/null and b/crawl-ref/source/rltiles/item/wand/long.bmp differ diff --git a/crawl-ref/source/rltiles/item/wand/maple.bmp b/crawl-ref/source/rltiles/item/wand/maple.bmp new file mode 100644 index 0000000000..c501382720 Binary files /dev/null and b/crawl-ref/source/rltiles/item/wand/maple.bmp differ diff --git a/crawl-ref/source/rltiles/item/wand/marble.bmp b/crawl-ref/source/rltiles/item/wand/marble.bmp new file mode 100644 index 0000000000..9d83480bbd Binary files /dev/null and b/crawl-ref/source/rltiles/item/wand/marble.bmp differ diff --git a/crawl-ref/source/rltiles/item/wand/oak.bmp b/crawl-ref/source/rltiles/item/wand/oak.bmp new file mode 100644 index 0000000000..2b25264d8b Binary files /dev/null and b/crawl-ref/source/rltiles/item/wand/oak.bmp differ diff --git a/crawl-ref/source/rltiles/item/wand/pine.bmp b/crawl-ref/source/rltiles/item/wand/pine.bmp new file mode 100644 index 0000000000..e8891aca16 Binary files /dev/null and b/crawl-ref/source/rltiles/item/wand/pine.bmp differ diff --git a/crawl-ref/source/rltiles/item/wand/platinum.bmp b/crawl-ref/source/rltiles/item/wand/platinum.bmp new file mode 100644 index 0000000000..3e6cde849e Binary files /dev/null and b/crawl-ref/source/rltiles/item/wand/platinum.bmp differ diff --git a/crawl-ref/source/rltiles/item/wand/runed.bmp b/crawl-ref/source/rltiles/item/wand/runed.bmp new file mode 100644 index 0000000000..1fc2276b22 Binary files /dev/null and b/crawl-ref/source/rltiles/item/wand/runed.bmp differ diff --git a/crawl-ref/source/rltiles/item/wand/short.bmp b/crawl-ref/source/rltiles/item/wand/short.bmp new file mode 100644 index 0000000000..321717421d Binary files /dev/null and b/crawl-ref/source/rltiles/item/wand/short.bmp differ diff --git a/crawl-ref/source/rltiles/item/wand/silver.bmp b/crawl-ref/source/rltiles/item/wand/silver.bmp new file mode 100644 index 0000000000..8226c48f28 Binary files /dev/null and b/crawl-ref/source/rltiles/item/wand/silver.bmp differ diff --git a/crawl-ref/source/rltiles/item/wand/spiked.bmp b/crawl-ref/source/rltiles/item/wand/spiked.bmp new file mode 100644 index 0000000000..1e3308ce33 Binary files /dev/null and b/crawl-ref/source/rltiles/item/wand/spiked.bmp differ diff --git a/crawl-ref/source/rltiles/item/wand/staff00.bmp b/crawl-ref/source/rltiles/item/wand/staff00.bmp new file mode 100644 index 0000000000..2c30326f6c Binary files /dev/null and b/crawl-ref/source/rltiles/item/wand/staff00.bmp differ diff --git a/crawl-ref/source/rltiles/item/wand/staff01.bmp b/crawl-ref/source/rltiles/item/wand/staff01.bmp new file mode 100644 index 0000000000..9182cabba1 Binary files /dev/null and b/crawl-ref/source/rltiles/item/wand/staff01.bmp differ diff --git a/crawl-ref/source/rltiles/item/wand/staff02.bmp b/crawl-ref/source/rltiles/item/wand/staff02.bmp new file mode 100644 index 0000000000..c7dda61fb7 Binary files /dev/null and b/crawl-ref/source/rltiles/item/wand/staff02.bmp differ diff --git a/crawl-ref/source/rltiles/item/wand/staff03.bmp b/crawl-ref/source/rltiles/item/wand/staff03.bmp new file mode 100644 index 0000000000..fac426cbba Binary files /dev/null and b/crawl-ref/source/rltiles/item/wand/staff03.bmp differ diff --git a/crawl-ref/source/rltiles/item/wand/staff04.bmp b/crawl-ref/source/rltiles/item/wand/staff04.bmp new file mode 100644 index 0000000000..b27ebd7a5d Binary files /dev/null and b/crawl-ref/source/rltiles/item/wand/staff04.bmp differ diff --git a/crawl-ref/source/rltiles/item/wand/staff05.bmp b/crawl-ref/source/rltiles/item/wand/staff05.bmp new file mode 100644 index 0000000000..fd33330424 Binary files /dev/null and b/crawl-ref/source/rltiles/item/wand/staff05.bmp differ diff --git a/crawl-ref/source/rltiles/item/wand/staff06.bmp b/crawl-ref/source/rltiles/item/wand/staff06.bmp new file mode 100644 index 0000000000..4c560dfe75 Binary files /dev/null and b/crawl-ref/source/rltiles/item/wand/staff06.bmp differ diff --git a/crawl-ref/source/rltiles/item/wand/staff07.bmp b/crawl-ref/source/rltiles/item/wand/staff07.bmp new file mode 100644 index 0000000000..fb93320584 Binary files /dev/null and b/crawl-ref/source/rltiles/item/wand/staff07.bmp differ diff --git a/crawl-ref/source/rltiles/item/wand/staff08.bmp b/crawl-ref/source/rltiles/item/wand/staff08.bmp new file mode 100644 index 0000000000..0b83635351 Binary files /dev/null and b/crawl-ref/source/rltiles/item/wand/staff08.bmp differ diff --git a/crawl-ref/source/rltiles/item/wand/staff09.bmp b/crawl-ref/source/rltiles/item/wand/staff09.bmp new file mode 100644 index 0000000000..7fbe7c27dc Binary files /dev/null and b/crawl-ref/source/rltiles/item/wand/staff09.bmp differ diff --git a/crawl-ref/source/rltiles/item/wand/steel.bmp b/crawl-ref/source/rltiles/item/wand/steel.bmp new file mode 100644 index 0000000000..4e1550ae39 Binary files /dev/null and b/crawl-ref/source/rltiles/item/wand/steel.bmp differ diff --git a/crawl-ref/source/rltiles/item/wand/tin.bmp b/crawl-ref/source/rltiles/item/wand/tin.bmp new file mode 100644 index 0000000000..cde9644368 Binary files /dev/null and b/crawl-ref/source/rltiles/item/wand/tin.bmp differ diff --git a/crawl-ref/source/rltiles/item/wand/uranium.bmp b/crawl-ref/source/rltiles/item/wand/uranium.bmp new file mode 100644 index 0000000000..16b916c05a Binary files /dev/null and b/crawl-ref/source/rltiles/item/wand/uranium.bmp differ diff --git a/crawl-ref/source/rltiles/item/wand/zinc.bmp b/crawl-ref/source/rltiles/item/wand/zinc.bmp new file mode 100644 index 0000000000..25fd8d6178 Binary files /dev/null and b/crawl-ref/source/rltiles/item/wand/zinc.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/aklys.bmp b/crawl-ref/source/rltiles/item/weapon/aklys.bmp new file mode 100644 index 0000000000..f8eecd2cdc Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/aklys.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/ancient_sword.bmp b/crawl-ref/source/rltiles/item/weapon/ancient_sword.bmp new file mode 100644 index 0000000000..192751ba1d Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/ancient_sword.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/ancus.bmp b/crawl-ref/source/rltiles/item/weapon/ancus.bmp new file mode 100644 index 0000000000..977deba6d9 Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/ancus.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/arrow.bmp b/crawl-ref/source/rltiles/item/weapon/arrow.bmp new file mode 100644 index 0000000000..366f835505 Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/arrow.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/athame.bmp b/crawl-ref/source/rltiles/item/weapon/athame.bmp new file mode 100644 index 0000000000..69ad827678 Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/athame.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/axe.bmp b/crawl-ref/source/rltiles/item/weapon/axe.bmp new file mode 100644 index 0000000000..b83bf08335 Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/axe.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/bardiche.bmp b/crawl-ref/source/rltiles/item/weapon/bardiche.bmp new file mode 100644 index 0000000000..c95df5c992 Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/bardiche.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/battle_axe.bmp b/crawl-ref/source/rltiles/item/weapon/battle_axe.bmp new file mode 100644 index 0000000000..099b25a126 Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/battle_axe.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/battle_axe2.bmp b/crawl-ref/source/rltiles/item/weapon/battle_axe2.bmp new file mode 100644 index 0000000000..2d611fec27 Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/battle_axe2.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/battle_axe3.bmp b/crawl-ref/source/rltiles/item/weapon/battle_axe3.bmp new file mode 100644 index 0000000000..00ab94ec95 Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/battle_axe3.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/bec_de_corbin.bmp b/crawl-ref/source/rltiles/item/weapon/bec_de_corbin.bmp new file mode 100644 index 0000000000..aac4c691bf Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/bec_de_corbin.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/bill_guisarme.bmp b/crawl-ref/source/rltiles/item/weapon/bill_guisarme.bmp new file mode 100644 index 0000000000..503ac68c09 Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/bill_guisarme.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/blessed_blade.bmp b/crawl-ref/source/rltiles/item/weapon/blessed_blade.bmp new file mode 100644 index 0000000000..660022a5b1 Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/blessed_blade.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/blowgun.bmp b/crawl-ref/source/rltiles/item/weapon/blowgun.bmp new file mode 100644 index 0000000000..60c52f4182 Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/blowgun.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/blowgun2.bmp b/crawl-ref/source/rltiles/item/weapon/blowgun2.bmp new file mode 100644 index 0000000000..167f374fcc Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/blowgun2.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/boomerang.bmp b/crawl-ref/source/rltiles/item/weapon/boomerang.bmp new file mode 100644 index 0000000000..c758e19efc Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/boomerang.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/bow.bmp b/crawl-ref/source/rltiles/item/weapon/bow.bmp new file mode 100644 index 0000000000..046c53b177 Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/bow.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/bow2.bmp b/crawl-ref/source/rltiles/item/weapon/bow2.bmp new file mode 100644 index 0000000000..f85a373e32 Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/bow2.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/broad_axe2.bmp b/crawl-ref/source/rltiles/item/weapon/broad_axe2.bmp new file mode 100644 index 0000000000..5a451c3cfa Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/broad_axe2.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/broadsword.bmp b/crawl-ref/source/rltiles/item/weapon/broadsword.bmp new file mode 100644 index 0000000000..03e19827ac Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/broadsword.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/bullwhip.bmp b/crawl-ref/source/rltiles/item/weapon/bullwhip.bmp new file mode 100644 index 0000000000..397a92c676 Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/bullwhip.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/club.bmp b/crawl-ref/source/rltiles/item/weapon/club.bmp new file mode 100644 index 0000000000..bf19a2b729 Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/club.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/crossbow.bmp b/crawl-ref/source/rltiles/item/weapon/crossbow.bmp new file mode 100644 index 0000000000..29734cb3bc Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/crossbow.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/crossbow2.bmp b/crawl-ref/source/rltiles/item/weapon/crossbow2.bmp new file mode 100644 index 0000000000..584432236a Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/crossbow2.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/crossbow_bolt.bmp b/crawl-ref/source/rltiles/item/weapon/crossbow_bolt.bmp new file mode 100644 index 0000000000..5c9adb1a78 Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/crossbow_bolt.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/crysknife.bmp b/crawl-ref/source/rltiles/item/weapon/crysknife.bmp new file mode 100644 index 0000000000..9729908637 Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/crysknife.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/dagger.bmp b/crawl-ref/source/rltiles/item/weapon/dagger.bmp new file mode 100644 index 0000000000..578f4d5a04 Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/dagger.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/dart-p.bmp b/crawl-ref/source/rltiles/item/weapon/dart-p.bmp new file mode 100644 index 0000000000..06e885d8f9 Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/dart-p.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/dart.bmp b/crawl-ref/source/rltiles/item/weapon/dart.bmp new file mode 100644 index 0000000000..fe861697f2 Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/dart.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/demon_blade.bmp b/crawl-ref/source/rltiles/item/weapon/demon_blade.bmp new file mode 100644 index 0000000000..7d54cdd925 Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/demon_blade.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/demon_trident.bmp b/crawl-ref/source/rltiles/item/weapon/demon_trident.bmp new file mode 100644 index 0000000000..3801a155a2 Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/demon_trident.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/demon_whip.bmp b/crawl-ref/source/rltiles/item/weapon/demon_whip.bmp new file mode 100644 index 0000000000..76f2670289 Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/demon_whip.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/double_sword.bmp b/crawl-ref/source/rltiles/item/weapon/double_sword.bmp new file mode 100644 index 0000000000..3544beb313 Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/double_sword.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/dwarvish_mattock.bmp b/crawl-ref/source/rltiles/item/weapon/dwarvish_mattock.bmp new file mode 100644 index 0000000000..a77daf0931 Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/dwarvish_mattock.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/dwarvish_short_sword.bmp b/crawl-ref/source/rltiles/item/weapon/dwarvish_short_sword.bmp new file mode 100644 index 0000000000..377850a637 Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/dwarvish_short_sword.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/dwarvish_spear.bmp b/crawl-ref/source/rltiles/item/weapon/dwarvish_spear.bmp new file mode 100644 index 0000000000..ef3d8d0748 Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/dwarvish_spear.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/elven_arrow.bmp b/crawl-ref/source/rltiles/item/weapon/elven_arrow.bmp new file mode 100644 index 0000000000..aaec160a17 Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/elven_arrow.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/elven_bow.bmp b/crawl-ref/source/rltiles/item/weapon/elven_bow.bmp new file mode 100644 index 0000000000..557dd1d079 Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/elven_bow.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/elven_broadsword.bmp b/crawl-ref/source/rltiles/item/weapon/elven_broadsword.bmp new file mode 100644 index 0000000000..f52daa65fa Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/elven_broadsword.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/elven_dagger.bmp b/crawl-ref/source/rltiles/item/weapon/elven_dagger.bmp new file mode 100644 index 0000000000..a1a643c881 Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/elven_dagger.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/elven_short_sword.bmp b/crawl-ref/source/rltiles/item/weapon/elven_short_sword.bmp new file mode 100644 index 0000000000..3d7b4fa9e7 Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/elven_short_sword.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/elven_spear.bmp b/crawl-ref/source/rltiles/item/weapon/elven_spear.bmp new file mode 100644 index 0000000000..7118e7bc83 Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/elven_spear.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/eveningstar.bmp b/crawl-ref/source/rltiles/item/weapon/eveningstar.bmp new file mode 100644 index 0000000000..986a03afe7 Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/eveningstar.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/eveningstar2.bmp b/crawl-ref/source/rltiles/item/weapon/eveningstar2.bmp new file mode 100644 index 0000000000..c8e8e56218 Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/eveningstar2.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/executioner_axe.bmp b/crawl-ref/source/rltiles/item/weapon/executioner_axe.bmp new file mode 100644 index 0000000000..eea9d07b71 Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/executioner_axe.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/executioner_axe2.bmp b/crawl-ref/source/rltiles/item/weapon/executioner_axe2.bmp new file mode 100644 index 0000000000..a7c1091485 Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/executioner_axe2.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/falchion.bmp b/crawl-ref/source/rltiles/item/weapon/falchion.bmp new file mode 100644 index 0000000000..8ca48fb049 Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/falchion.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/fauchard.bmp b/crawl-ref/source/rltiles/item/weapon/fauchard.bmp new file mode 100644 index 0000000000..b6e84bd4ca Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/fauchard.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/flail.bmp b/crawl-ref/source/rltiles/item/weapon/flail.bmp new file mode 100644 index 0000000000..1dcf68fb7f Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/flail.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/flail2.bmp b/crawl-ref/source/rltiles/item/weapon/flail2.bmp new file mode 100644 index 0000000000..598f9be1c5 Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/flail2.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/flail_angmar.bmp b/crawl-ref/source/rltiles/item/weapon/flail_angmar.bmp new file mode 100644 index 0000000000..0854b5fd02 Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/flail_angmar.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/giant_club.bmp b/crawl-ref/source/rltiles/item/weapon/giant_club.bmp new file mode 100644 index 0000000000..a3d9810b1b Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/giant_club.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/giant_spiked_club.bmp b/crawl-ref/source/rltiles/item/weapon/giant_spiked_club.bmp new file mode 100644 index 0000000000..ddd9af16fb Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/giant_spiked_club.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/glaive.bmp b/crawl-ref/source/rltiles/item/weapon/glaive.bmp new file mode 100644 index 0000000000..613ebf167f Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/glaive.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/glaive2.bmp b/crawl-ref/source/rltiles/item/weapon/glaive2.bmp new file mode 100644 index 0000000000..3e249eaee0 Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/glaive2.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/great_flail.bmp b/crawl-ref/source/rltiles/item/weapon/great_flail.bmp new file mode 100644 index 0000000000..366e378906 Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/great_flail.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/great_flail2.bmp b/crawl-ref/source/rltiles/item/weapon/great_flail2.bmp new file mode 100644 index 0000000000..e272b64faa Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/great_flail2.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/greatsword.bmp b/crawl-ref/source/rltiles/item/weapon/greatsword.bmp new file mode 100644 index 0000000000..a9d0da2d90 Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/greatsword.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/greatsword2.bmp b/crawl-ref/source/rltiles/item/weapon/greatsword2.bmp new file mode 100644 index 0000000000..e765318a05 Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/greatsword2.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/guisarme.bmp b/crawl-ref/source/rltiles/item/weapon/guisarme.bmp new file mode 100644 index 0000000000..5634266da5 Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/guisarme.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/halberd.bmp b/crawl-ref/source/rltiles/item/weapon/halberd.bmp new file mode 100644 index 0000000000..06a83a4e6f Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/halberd.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/halberd2.bmp b/crawl-ref/source/rltiles/item/weapon/halberd2.bmp new file mode 100644 index 0000000000..c909c85075 Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/halberd2.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/hammer.bmp b/crawl-ref/source/rltiles/item/weapon/hammer.bmp new file mode 100644 index 0000000000..d0976883f5 Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/hammer.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/hammer2.bmp b/crawl-ref/source/rltiles/item/weapon/hammer2.bmp new file mode 100644 index 0000000000..7318390a97 Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/hammer2.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/hand_axe.bmp b/crawl-ref/source/rltiles/item/weapon/hand_axe.bmp new file mode 100644 index 0000000000..f7e109c27f Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/hand_axe.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/hand_crossbow.bmp b/crawl-ref/source/rltiles/item/weapon/hand_crossbow.bmp new file mode 100644 index 0000000000..c8d3200010 Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/hand_crossbow.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/hand_crossbow2.bmp b/crawl-ref/source/rltiles/item/weapon/hand_crossbow2.bmp new file mode 100644 index 0000000000..3f2ef3ff4d Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/hand_crossbow2.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/javelin.bmp b/crawl-ref/source/rltiles/item/weapon/javelin.bmp new file mode 100644 index 0000000000..712addc5fb Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/javelin.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/katana.bmp b/crawl-ref/source/rltiles/item/weapon/katana.bmp new file mode 100644 index 0000000000..692dab9ca3 Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/katana.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/katana2.bmp b/crawl-ref/source/rltiles/item/weapon/katana2.bmp new file mode 100644 index 0000000000..6e7c226941 Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/katana2.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/katana3.bmp b/crawl-ref/source/rltiles/item/weapon/katana3.bmp new file mode 100644 index 0000000000..0639a3b395 Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/katana3.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/knife.bmp b/crawl-ref/source/rltiles/item/weapon/knife.bmp new file mode 100644 index 0000000000..781c6129de Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/knife.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/lajatang.bmp b/crawl-ref/source/rltiles/item/weapon/lajatang.bmp new file mode 100644 index 0000000000..3a6e3cf93b Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/lajatang.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/lance.bmp b/crawl-ref/source/rltiles/item/weapon/lance.bmp new file mode 100644 index 0000000000..3b222d8c8a Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/lance.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/lochaber_axe.bmp b/crawl-ref/source/rltiles/item/weapon/lochaber_axe.bmp new file mode 100644 index 0000000000..81f1e33ffd Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/lochaber_axe.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/long_sword.bmp b/crawl-ref/source/rltiles/item/weapon/long_sword.bmp new file mode 100644 index 0000000000..3d350a7417 Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/long_sword.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/long_sword2.bmp b/crawl-ref/source/rltiles/item/weapon/long_sword2.bmp new file mode 100644 index 0000000000..264e280f00 Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/long_sword2.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/long_sword3.bmp b/crawl-ref/source/rltiles/item/weapon/long_sword3.bmp new file mode 100644 index 0000000000..bfcb44b72f Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/long_sword3.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/longbow.bmp b/crawl-ref/source/rltiles/item/weapon/longbow.bmp new file mode 100644 index 0000000000..aad879fa40 Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/longbow.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/lucern_hammer.bmp b/crawl-ref/source/rltiles/item/weapon/lucern_hammer.bmp new file mode 100644 index 0000000000..50250feb79 Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/lucern_hammer.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/mace.bmp b/crawl-ref/source/rltiles/item/weapon/mace.bmp new file mode 100644 index 0000000000..c381c75465 Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/mace.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/mace2.bmp b/crawl-ref/source/rltiles/item/weapon/mace2.bmp new file mode 100644 index 0000000000..194d4ec640 Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/mace2.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/mace3.bmp b/crawl-ref/source/rltiles/item/weapon/mace3.bmp new file mode 100644 index 0000000000..7ca0300e3f Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/mace3.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/mace_large.bmp b/crawl-ref/source/rltiles/item/weapon/mace_large.bmp new file mode 100644 index 0000000000..50f713dda0 Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/mace_large.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/mace_large2.bmp b/crawl-ref/source/rltiles/item/weapon/mace_large2.bmp new file mode 100644 index 0000000000..e360117df9 Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/mace_large2.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/morning_star.bmp b/crawl-ref/source/rltiles/item/weapon/morning_star.bmp new file mode 100644 index 0000000000..78db4a5700 Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/morning_star.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/morningstar.bmp b/crawl-ref/source/rltiles/item/weapon/morningstar.bmp new file mode 100644 index 0000000000..144d597e5e Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/morningstar.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/morningstar2.bmp b/crawl-ref/source/rltiles/item/weapon/morningstar2.bmp new file mode 100644 index 0000000000..fdf76375f8 Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/morningstar2.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/needle-p.bmp b/crawl-ref/source/rltiles/item/weapon/needle-p.bmp new file mode 100644 index 0000000000..5cc0b48a04 Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/needle-p.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/needle.bmp b/crawl-ref/source/rltiles/item/weapon/needle.bmp new file mode 100644 index 0000000000..f26726fcfa Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/needle.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/orcish_arrow.bmp b/crawl-ref/source/rltiles/item/weapon/orcish_arrow.bmp new file mode 100644 index 0000000000..2b65001b93 Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/orcish_arrow.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/orcish_bow.bmp b/crawl-ref/source/rltiles/item/weapon/orcish_bow.bmp new file mode 100644 index 0000000000..b773eaf1e2 Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/orcish_bow.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/orcish_dagger.bmp b/crawl-ref/source/rltiles/item/weapon/orcish_dagger.bmp new file mode 100644 index 0000000000..3be8f3511a Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/orcish_dagger.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/orcish_glaive.bmp b/crawl-ref/source/rltiles/item/weapon/orcish_glaive.bmp new file mode 100644 index 0000000000..ca5269fece Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/orcish_glaive.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/orcish_great_sword.bmp b/crawl-ref/source/rltiles/item/weapon/orcish_great_sword.bmp new file mode 100644 index 0000000000..aaacec015c Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/orcish_great_sword.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/orcish_long_sword.bmp b/crawl-ref/source/rltiles/item/weapon/orcish_long_sword.bmp new file mode 100644 index 0000000000..ce01e988f7 Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/orcish_long_sword.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/orcish_short_sword.bmp b/crawl-ref/source/rltiles/item/weapon/orcish_short_sword.bmp new file mode 100644 index 0000000000..c9516cc24b Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/orcish_short_sword.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/orcish_spear.bmp b/crawl-ref/source/rltiles/item/weapon/orcish_spear.bmp new file mode 100644 index 0000000000..d9e3773736 Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/orcish_spear.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/partisan.bmp b/crawl-ref/source/rltiles/item/weapon/partisan.bmp new file mode 100644 index 0000000000..6d45637825 Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/partisan.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/quarterstaff.bmp b/crawl-ref/source/rltiles/item/weapon/quarterstaff.bmp new file mode 100644 index 0000000000..bfe55f272d Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/quarterstaff.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/quickblade.bmp b/crawl-ref/source/rltiles/item/weapon/quickblade.bmp new file mode 100644 index 0000000000..38fe98c191 Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/quickblade.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/ranseur.bmp b/crawl-ref/source/rltiles/item/weapon/ranseur.bmp new file mode 100644 index 0000000000..1238088235 Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/ranseur.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/rubber_hose.bmp b/crawl-ref/source/rltiles/item/weapon/rubber_hose.bmp new file mode 100644 index 0000000000..bbc8d3eb95 Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/rubber_hose.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/runesword.bmp b/crawl-ref/source/rltiles/item/weapon/runesword.bmp new file mode 100644 index 0000000000..3e21f78f12 Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/runesword.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/sabre2.bmp b/crawl-ref/source/rltiles/item/weapon/sabre2.bmp new file mode 100644 index 0000000000..79cf4d7689 Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/sabre2.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/scalpel.bmp b/crawl-ref/source/rltiles/item/weapon/scalpel.bmp new file mode 100644 index 0000000000..d5d1f4dee8 Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/scalpel.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/scimitar.bmp b/crawl-ref/source/rltiles/item/weapon/scimitar.bmp new file mode 100644 index 0000000000..f373a19cff Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/scimitar.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/scimitar2.bmp b/crawl-ref/source/rltiles/item/weapon/scimitar2.bmp new file mode 100644 index 0000000000..62ecfcfc4d Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/scimitar2.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/scythe.bmp b/crawl-ref/source/rltiles/item/weapon/scythe.bmp new file mode 100644 index 0000000000..67eee3ce12 Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/scythe.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/scythe2.bmp b/crawl-ref/source/rltiles/item/weapon/scythe2.bmp new file mode 100644 index 0000000000..cd7987c297 Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/scythe2.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/short_sword.bmp b/crawl-ref/source/rltiles/item/weapon/short_sword.bmp new file mode 100644 index 0000000000..011a35be08 Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/short_sword.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/short_sword2.bmp b/crawl-ref/source/rltiles/item/weapon/short_sword2.bmp new file mode 100644 index 0000000000..8769fa37f2 Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/short_sword2.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/shuriken.bmp b/crawl-ref/source/rltiles/item/weapon/shuriken.bmp new file mode 100644 index 0000000000..15b536ad96 Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/shuriken.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/silver_arrow.bmp b/crawl-ref/source/rltiles/item/weapon/silver_arrow.bmp new file mode 100644 index 0000000000..0239f799b8 Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/silver_arrow.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/silver_dagger.bmp b/crawl-ref/source/rltiles/item/weapon/silver_dagger.bmp new file mode 100644 index 0000000000..9a8f68a7a9 Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/silver_dagger.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/silver_saber.bmp b/crawl-ref/source/rltiles/item/weapon/silver_saber.bmp new file mode 100644 index 0000000000..0d2f7797e9 Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/silver_saber.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/silver_spear.bmp b/crawl-ref/source/rltiles/item/weapon/silver_spear.bmp new file mode 100644 index 0000000000..7b6ec9cecc Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/silver_spear.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/sling.bmp b/crawl-ref/source/rltiles/item/weapon/sling.bmp new file mode 100644 index 0000000000..cec9f21ca5 Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/sling.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/sling_bullet.bmp b/crawl-ref/source/rltiles/item/weapon/sling_bullet.bmp new file mode 100644 index 0000000000..1d935f18ec Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/sling_bullet.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/spear.bmp b/crawl-ref/source/rltiles/item/weapon/spear.bmp new file mode 100644 index 0000000000..c79271142b Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/spear.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/spear2.bmp b/crawl-ref/source/rltiles/item/weapon/spear2.bmp new file mode 100644 index 0000000000..883f10fc97 Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/spear2.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/spetum.bmp b/crawl-ref/source/rltiles/item/weapon/spetum.bmp new file mode 100644 index 0000000000..c28565cb31 Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/spetum.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/spiked_flail.bmp b/crawl-ref/source/rltiles/item/weapon/spiked_flail.bmp new file mode 100644 index 0000000000..f12d506d0d Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/spiked_flail.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/spiked_flail2.bmp b/crawl-ref/source/rltiles/item/weapon/spiked_flail2.bmp new file mode 100644 index 0000000000..6a5d6de699 Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/spiked_flail2.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/spwpn_glaive_of_prune.bmp b/crawl-ref/source/rltiles/item/weapon/spwpn_glaive_of_prune.bmp new file mode 100644 index 0000000000..40282f92b7 Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/spwpn_glaive_of_prune.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/spwpn_knife_of_accuracy.bmp b/crawl-ref/source/rltiles/item/weapon/spwpn_knife_of_accuracy.bmp new file mode 100644 index 0000000000..8aee3d809f Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/spwpn_knife_of_accuracy.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/spwpn_mace_of_variability.bmp b/crawl-ref/source/rltiles/item/weapon/spwpn_mace_of_variability.bmp new file mode 100644 index 0000000000..7f984e8b1f Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/spwpn_mace_of_variability.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/spwpn_sceptre_of_asmodeus.bmp b/crawl-ref/source/rltiles/item/weapon/spwpn_sceptre_of_asmodeus.bmp new file mode 100644 index 0000000000..33664bb49b Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/spwpn_sceptre_of_asmodeus.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/spwpn_sceptre_of_asmodeus2.bmp b/crawl-ref/source/rltiles/item/weapon/spwpn_sceptre_of_asmodeus2.bmp new file mode 100644 index 0000000000..fd5d38625a Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/spwpn_sceptre_of_asmodeus2.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/spwpn_sceptre_of_torment.bmp b/crawl-ref/source/rltiles/item/weapon/spwpn_sceptre_of_torment.bmp new file mode 100644 index 0000000000..098f1fcf0c Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/spwpn_sceptre_of_torment.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/spwpn_sceptre_of_torment2.bmp b/crawl-ref/source/rltiles/item/weapon/spwpn_sceptre_of_torment2.bmp new file mode 100644 index 0000000000..5566d56606 Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/spwpn_sceptre_of_torment2.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/spwpn_scythe_of_curses.bmp b/crawl-ref/source/rltiles/item/weapon/spwpn_scythe_of_curses.bmp new file mode 100644 index 0000000000..5e192b63fc Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/spwpn_scythe_of_curses.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/spwpn_scythe_of_curses2.bmp b/crawl-ref/source/rltiles/item/weapon/spwpn_scythe_of_curses2.bmp new file mode 100644 index 0000000000..5a4db6fa68 Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/spwpn_scythe_of_curses2.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/spwpn_singing_sword.bmp b/crawl-ref/source/rltiles/item/weapon/spwpn_singing_sword.bmp new file mode 100644 index 0000000000..1bc3e87cce Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/spwpn_singing_sword.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/spwpn_singing_sword2.bmp b/crawl-ref/source/rltiles/item/weapon/spwpn_singing_sword2.bmp new file mode 100644 index 0000000000..19e703863a Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/spwpn_singing_sword2.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/spwpn_staff_of_dispater.bmp b/crawl-ref/source/rltiles/item/weapon/spwpn_staff_of_dispater.bmp new file mode 100644 index 0000000000..ccf8568b98 Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/spwpn_staff_of_dispater.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/spwpn_staff_of_dispater2.bmp b/crawl-ref/source/rltiles/item/weapon/spwpn_staff_of_dispater2.bmp new file mode 100644 index 0000000000..37332c3ce8 Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/spwpn_staff_of_dispater2.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/spwpn_staff_of_olgreb.bmp b/crawl-ref/source/rltiles/item/weapon/spwpn_staff_of_olgreb.bmp new file mode 100644 index 0000000000..da9886eb82 Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/spwpn_staff_of_olgreb.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/spwpn_sword_of_cerebov.bmp b/crawl-ref/source/rltiles/item/weapon/spwpn_sword_of_cerebov.bmp new file mode 100644 index 0000000000..6d30565d5d Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/spwpn_sword_of_cerebov.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/spwpn_sword_of_power.bmp b/crawl-ref/source/rltiles/item/weapon/spwpn_sword_of_power.bmp new file mode 100644 index 0000000000..a5b69644b0 Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/spwpn_sword_of_power.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/spwpn_sword_of_power2.bmp b/crawl-ref/source/rltiles/item/weapon/spwpn_sword_of_power2.bmp new file mode 100644 index 0000000000..a3275e7e7f Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/spwpn_sword_of_power2.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/spwpn_sword_of_zonguldrok.bmp b/crawl-ref/source/rltiles/item/weapon/spwpn_sword_of_zonguldrok.bmp new file mode 100644 index 0000000000..74d54924f5 Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/spwpn_sword_of_zonguldrok.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/spwpn_sword_of_zonguldrok2.bmp b/crawl-ref/source/rltiles/item/weapon/spwpn_sword_of_zonguldrok2.bmp new file mode 100644 index 0000000000..85686ab02f Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/spwpn_sword_of_zonguldrok2.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/spwpn_vampires_tooth.bmp b/crawl-ref/source/rltiles/item/weapon/spwpn_vampires_tooth.bmp new file mode 100644 index 0000000000..b0ad70533e Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/spwpn_vampires_tooth.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/spwpn_wrath_of_trog.bmp b/crawl-ref/source/rltiles/item/weapon/spwpn_wrath_of_trog.bmp new file mode 100644 index 0000000000..070402f6e6 Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/spwpn_wrath_of_trog.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/spwpn_wrath_of_trog2.bmp b/crawl-ref/source/rltiles/item/weapon/spwpn_wrath_of_trog2.bmp new file mode 100644 index 0000000000..cdc5dc429a Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/spwpn_wrath_of_trog2.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/stiletto.bmp b/crawl-ref/source/rltiles/item/weapon/stiletto.bmp new file mode 100644 index 0000000000..4c3195f9ba Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/stiletto.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/sword_orcish.bmp b/crawl-ref/source/rltiles/item/weapon/sword_orcish.bmp new file mode 100644 index 0000000000..e43235f13f Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/sword_orcish.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/throwing_net.bmp b/crawl-ref/source/rltiles/item/weapon/throwing_net.bmp new file mode 100644 index 0000000000..4f2ca6d51e Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/throwing_net.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/trident.bmp b/crawl-ref/source/rltiles/item/weapon/trident.bmp new file mode 100644 index 0000000000..b2ef334937 Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/trident.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/trident2.bmp b/crawl-ref/source/rltiles/item/weapon/trident2.bmp new file mode 100644 index 0000000000..6dc4ade0c1 Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/trident2.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/triple_sword.bmp b/crawl-ref/source/rltiles/item/weapon/triple_sword.bmp new file mode 100644 index 0000000000..6db0ea0858 Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/triple_sword.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/tsurugi.bmp b/crawl-ref/source/rltiles/item/weapon/tsurugi.bmp new file mode 100644 index 0000000000..e9fd58661f Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/tsurugi.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/two_handed_sword.bmp b/crawl-ref/source/rltiles/item/weapon/two_handed_sword.bmp new file mode 100644 index 0000000000..f590a5a3a3 Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/two_handed_sword.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/urand_arga.bmp b/crawl-ref/source/rltiles/item/weapon/urand_arga.bmp new file mode 100644 index 0000000000..7fa2c86bdf Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/urand_arga.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/urand_bloodbane.bmp b/crawl-ref/source/rltiles/item/weapon/urand_bloodbane.bmp new file mode 100644 index 0000000000..ba16decd66 Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/urand_bloodbane.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/urand_blowgun.bmp b/crawl-ref/source/rltiles/item/weapon/urand_blowgun.bmp new file mode 100644 index 0000000000..6fb2915c89 Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/urand_blowgun.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/urand_brilliance.bmp b/crawl-ref/source/rltiles/item/weapon/urand_brilliance.bmp new file mode 100644 index 0000000000..953f436ded Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/urand_brilliance.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/urand_chilly_death.bmp b/crawl-ref/source/rltiles/item/weapon/urand_chilly_death.bmp new file mode 100644 index 0000000000..eb529e68e0 Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/urand_chilly_death.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/urand_doom_knight.bmp b/crawl-ref/source/rltiles/item/weapon/urand_doom_knight.bmp new file mode 100644 index 0000000000..8f366d6f4b Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/urand_doom_knight.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/urand_elemental.bmp b/crawl-ref/source/rltiles/item/weapon/urand_elemental.bmp new file mode 100644 index 0000000000..0a5f28424b Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/urand_elemental.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/urand_eos.bmp b/crawl-ref/source/rltiles/item/weapon/urand_eos.bmp new file mode 100644 index 0000000000..ecc7342524 Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/urand_eos.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/urand_erchidel.bmp b/crawl-ref/source/rltiles/item/weapon/urand_erchidel.bmp new file mode 100644 index 0000000000..c7db4ce68b Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/urand_erchidel.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/urand_fiery_devil.bmp b/crawl-ref/source/rltiles/item/weapon/urand_fiery_devil.bmp new file mode 100644 index 0000000000..f479f2bd4f Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/urand_fiery_devil.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/urand_finisher.bmp b/crawl-ref/source/rltiles/item/weapon/urand_finisher.bmp new file mode 100644 index 0000000000..3b858fe26d Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/urand_finisher.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/urand_fkaming_death.bmp b/crawl-ref/source/rltiles/item/weapon/urand_fkaming_death.bmp new file mode 100644 index 0000000000..87d7330e83 Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/urand_fkaming_death.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/urand_guard.bmp b/crawl-ref/source/rltiles/item/weapon/urand_guard.bmp new file mode 100644 index 0000000000..a346e99a0c Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/urand_guard.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/urand_jihad.bmp b/crawl-ref/source/rltiles/item/weapon/urand_jihad.bmp new file mode 100644 index 0000000000..d5f60b2976 Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/urand_jihad.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/urand_krishna.bmp b/crawl-ref/source/rltiles/item/weapon/urand_krishna.bmp new file mode 100644 index 0000000000..d67e39f0f5 Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/urand_krishna.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/urand_leech.bmp b/crawl-ref/source/rltiles/item/weapon/urand_leech.bmp new file mode 100644 index 0000000000..af2b90ec13 Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/urand_leech.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/urand_morg.bmp b/crawl-ref/source/rltiles/item/weapon/urand_morg.bmp new file mode 100644 index 0000000000..b0552261d1 Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/urand_morg.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/urand_octopus_king.bmp b/crawl-ref/source/rltiles/item/weapon/urand_octopus_king.bmp new file mode 100644 index 0000000000..e539d81c24 Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/urand_octopus_king.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/urand_plutonium.bmp b/crawl-ref/source/rltiles/item/weapon/urand_plutonium.bmp new file mode 100644 index 0000000000..9ea1ead174 Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/urand_plutonium.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/urand_punk.bmp b/crawl-ref/source/rltiles/item/weapon/urand_punk.bmp new file mode 100644 index 0000000000..2fa0d4457d Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/urand_punk.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/urand_skullcrusher.bmp b/crawl-ref/source/rltiles/item/weapon/urand_skullcrusher.bmp new file mode 100644 index 0000000000..a6fdb3d5d4 Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/urand_skullcrusher.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/urand_sniper.bmp b/crawl-ref/source/rltiles/item/weapon/urand_sniper.bmp new file mode 100644 index 0000000000..5f20078ab1 Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/urand_sniper.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/urand_undeadhunter.bmp b/crawl-ref/source/rltiles/item/weapon/urand_undeadhunter.bmp new file mode 100644 index 0000000000..e080e2d3e7 Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/urand_undeadhunter.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/urand_voo_doo.bmp b/crawl-ref/source/rltiles/item/weapon/urand_voo_doo.bmp new file mode 100644 index 0000000000..5371400113 Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/urand_voo_doo.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/voulge.bmp b/crawl-ref/source/rltiles/item/weapon/voulge.bmp new file mode 100644 index 0000000000..cbfcc4b744 Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/voulge.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/war_axe.bmp b/crawl-ref/source/rltiles/item/weapon/war_axe.bmp new file mode 100644 index 0000000000..eabe99fda7 Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/war_axe.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/war_hammer.bmp b/crawl-ref/source/rltiles/item/weapon/war_hammer.bmp new file mode 100644 index 0000000000..1617483781 Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/war_hammer.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/worm_tooth.bmp b/crawl-ref/source/rltiles/item/weapon/worm_tooth.bmp new file mode 100644 index 0000000000..4a954b5ebc Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/worm_tooth.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/ya.bmp b/crawl-ref/source/rltiles/item/weapon/ya.bmp new file mode 100644 index 0000000000..6e907190e4 Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/ya.bmp differ diff --git a/crawl-ref/source/rltiles/item/weapon/yumi.bmp b/crawl-ref/source/rltiles/item/weapon/yumi.bmp new file mode 100644 index 0000000000..8703557dc1 Binary files /dev/null and b/crawl-ref/source/rltiles/item/weapon/yumi.bmp differ diff --git a/crawl-ref/source/rltiles/license.txt b/crawl-ref/source/rltiles/license.txt new file mode 100644 index 0000000000..7b9526fccf --- /dev/null +++ b/crawl-ref/source/rltiles/license.txt @@ -0,0 +1,17 @@ +Part of the graphic tiles used in this program are from the public +domain roguelike tileset "RLTiles". + +Some of the tiles have been modified by Enne Walker (enne.walker@gmail.com) + +You can find the original tileset at: +http://rltiles.sf.net + + + +Part of the source code used in this program is from the public +domain program "RLTiles". + +Some of the source code has been modified by Enne Walker (enne.walker@gmail.com) + +You can find the original source code at: +http://sourceforge.net/projects/rltiles/ diff --git a/crawl-ref/source/rltiles/makefile.mgw b/crawl-ref/source/rltiles/makefile.mgw new file mode 100644 index 0000000000..9d1c86be79 --- /dev/null +++ b/crawl-ref/source/rltiles/makefile.mgw @@ -0,0 +1,121 @@ +########################################################################## +# makefile.mgw +# +# This is a makefile to build all the rltiles files needed for Dungeon +# Crawl - Stone Soup. +# +# - Enne (enne.walker@gmail.com) +# + +SRC = tool +B2PSRC = bmp2png +B2P = bmp2png.exe +B2PTOOL = $(B2PSRC)\$(B2P) + +CC = mingw32-gcc +DELETE = del +MAKE = mingw32-make.exe + +OBJECTS = \ +$(SRC)\bm.o \ +$(SRC)\dcpl.o \ +$(SRC)\dctile.o + +TOOLS = \ +dcpl.exe \ +dctile.exe + +EXTRATOOLS = \ +dcreverse.exe + +HEADERS = \ +tiledef.h \ +tiledef-p.h \ +tilep-cmt.h \ +tiledef-w2d.h \ +tilecount-w2d.h \ +map.htm + +ALLTOOLS = $(TOOLS) $(EXTRATOOLS) + +TILEBMP = \ +tile.bmp \ +player.bmp \ +wall2d.bmp + +TILEPNG = $(TILEBMP:.bmp=.png) + +########################################################################## +# Top-level +# + +all: tools tiles + +tools: $(TOOLS) + +tiles: $(TILEBMP) + +########################################################################## +# Tools +# +# Note: dcreverse is not built by default. It does the opposite +# of dctile. It takes a bitmap with lots of tiles, specifies regions, +# and cuts them out into smaller pieces. It's useful only for when somebody +# updates the tiles directly and then doesn't give you the source files. +# + +depend: $(OBJECTS:.o=.c) + @for i in $^; do \ + $(CC) -c $$i + +dcpl.exe: $(SRC)\dcpl.o $(SRC)\bm.o + $(CC) $(SRC)\dcpl.o $(SRC)\bm.o -o dcpl + +dctile.exe: $(SRC)\dctile.o $(SRC)\bm.o + $(CC) $(SRC)\dctile.o $(SRC)\bm.o -o dctile + +dcreverse.exe: $(SRC)\dcreverse.o $(SRC)\bm.o + $(CC) $(SRC)\dcreverse.o $(SRC)\bm.o -o dcreverse + +########################################################################## +# Bitmaps +# + +# NOTE: the dependencies here aren't fantastic. In an ideal world, +# there would be another tool elf that could read an input text file +# and then output the .bmp and .txt dependencies for it. It's kind +# of a low priority though, as tiles will be rebuilt infrequently. + +tile.bmp: dc-2d.txt dctile.exe + ./dctile dc-2d.txt + +player.bmp: dc-pl.txt dcpl.exe + ./dcpl dc-pl.txt + +wall2d.bmp: dc-wall2d.txt dctile.exe + ./dctile dc-wall2d.txt + +########################################################################## +# PNG Conversion +# + +$(B2PTOOL): + pushd $(B2PSRC) && $(MAKE) -f makefile.mgw $(B2P) && popd + +%.png: %.bmp $(B2PTOOL) + $(DELETE) $@ + $(B2PTOOL) -Q $< + +########################################################################## +# Cleaning... +# + +clean: + $(DELETE) $(OBJECTS) + $(DELETE) $(ALLTOOLS) +#pushd $(B2PSRC) && $(MAKE) -f makefile.mgw clean && popd + +distclean: clean + $(DELETE) $(TILEBMP) + $(DELETE) $(TILEPNG) + $(DELETE) $(HEADERS) diff --git a/crawl-ref/source/rltiles/makefile.unix b/crawl-ref/source/rltiles/makefile.unix new file mode 100644 index 0000000000..663936f90a --- /dev/null +++ b/crawl-ref/source/rltiles/makefile.unix @@ -0,0 +1,121 @@ +########################################################################## +# makefile.unix +# +# This is a makefile to build all the rltiles files needed for Dungeon +# Crawl - Stone Soup. +# +# - Enne (enne.walker@gmail.com) +# + +SRC = tool/ +B2PSRC = bmp2png/ +B2P = bmp2png +B2PTOOL = $(B2PSRC)$(B2P) + +CC = cc +DELETE = rm -f + +OBJECTS = \ +$(SRC)bm.o \ +$(SRC)dcpl.o \ +$(SRC)dctile.o + +TOOLS = \ +dcpl \ +dctile + +EXTRATOOLS = \ +dcreverse + +HEADERS = \ +tiledef.h \ +tiledef-p.h \ +tilep-cmt.h \ +tiledef-w2d.h \ +tilecount-w2d.h \ +map.htm + +ALLTOOLS = $(TOOLS) $(EXTRATOOLS) + +TILEBMP = \ +tile.bmp \ +player.bmp \ +wall2d.bmp + +TILEPNG = $(TILEBMP:.bmp=.png) + +########################################################################## +# Top-level +# + +all: tools tiles + +tools: $(TOOLS) + +tiles: $(TILEBMP) $(TILEPNG) + +########################################################################## +# Tools +# +# Note: dcreverse is not built by default. It does the opposite +# of dctile. It takes a bitmap with lots of tiles, specifies regions, +# and cuts them out into smaller pieces. It's useful only for when somebody +# updates the tiles directly and then doesn't give you the source files. +# Not that I'm bitter. +# + +depend: $(OBJECTS:.o=.c) + @for i in $^; do \ + $(CC) -c $$i + +dcpl: $(SRC)dcpl.o $(SRC)bm.o + $(CC) $(SRC)dcpl.o $(SRC)bm.o -o dcpl + +dctile: $(SRC)dctile.o $(SRC)bm.o + $(CC) $(SRC)dctile.o $(SRC)bm.o -o dctile + +dcreverse: $(SRC)dcreverse.o $(SRC)bm.o + $(CC) $(SRC)dcreverse.o $(SRC)bm.o -o dcreverse + +########################################################################## +# Bitmaps +# + +# NOTE: the dependencies here aren't fantastic. In an ideal world, +# there would be another tool elf that could read an input text file +# and then output the .bmp and .txt dependencies for it. It's kind +# of a low priority though, as tiles will be rebuilt infrequently. + +tile.bmp: dc-2d.txt dctile + ./dctile dc-2d.txt + +player.bmp: dc-pl.txt dcpl + ./dcpl dc-pl.txt + +wall2d.bmp: dc-wall2d.txt dctile + ./dctile dc-wall2d.txt + +########################################################################## +# PNG Conversion +# + +$(B2PTOOL): + cd $(B2PSRC) && make -f makefile.lin $(B2P) && cd .. + +%.png: %.bmp $(B2PTOOL) + $(DELETE) $@ + $(B2PTOOL) -Q $< + +########################################################################## +# Cleaning... +# + +clean: + $(DELETE) $(OBJECTS) + $(DELETE) $(ALLTOOLS) + cd $(B2PSRC) && make -f makefile.lin clean && cd .. + +distclean: clean + $(DELETE) $(TILEBMP) + $(DELETE) $(TILEPNG) + $(DELETE) $(HEADERS) diff --git a/crawl-ref/source/rltiles/player/arm/claws.bmp b/crawl-ref/source/rltiles/player/arm/claws.bmp new file mode 100644 index 0000000000..dff3154de3 Binary files /dev/null and b/crawl-ref/source/rltiles/player/arm/claws.bmp differ diff --git a/crawl-ref/source/rltiles/player/arm/gauntlet_blue.bmp b/crawl-ref/source/rltiles/player/arm/gauntlet_blue.bmp new file mode 100644 index 0000000000..f428ae5194 Binary files /dev/null and b/crawl-ref/source/rltiles/player/arm/gauntlet_blue.bmp differ diff --git a/crawl-ref/source/rltiles/player/arm/glove_black.bmp b/crawl-ref/source/rltiles/player/arm/glove_black.bmp new file mode 100644 index 0000000000..33e391b18d Binary files /dev/null and b/crawl-ref/source/rltiles/player/arm/glove_black.bmp differ diff --git a/crawl-ref/source/rltiles/player/arm/glove_black2.bmp b/crawl-ref/source/rltiles/player/arm/glove_black2.bmp new file mode 100644 index 0000000000..5fc8674390 Binary files /dev/null and b/crawl-ref/source/rltiles/player/arm/glove_black2.bmp differ diff --git a/crawl-ref/source/rltiles/player/arm/glove_blue.bmp b/crawl-ref/source/rltiles/player/arm/glove_blue.bmp new file mode 100644 index 0000000000..a811d94c0a Binary files /dev/null and b/crawl-ref/source/rltiles/player/arm/glove_blue.bmp differ diff --git a/crawl-ref/source/rltiles/player/arm/glove_brown.bmp b/crawl-ref/source/rltiles/player/arm/glove_brown.bmp new file mode 100644 index 0000000000..9c3532c1cb Binary files /dev/null and b/crawl-ref/source/rltiles/player/arm/glove_brown.bmp differ diff --git a/crawl-ref/source/rltiles/player/arm/glove_chunli.bmp b/crawl-ref/source/rltiles/player/arm/glove_chunli.bmp new file mode 100644 index 0000000000..29c398bd66 Binary files /dev/null and b/crawl-ref/source/rltiles/player/arm/glove_chunli.bmp differ diff --git a/crawl-ref/source/rltiles/player/arm/glove_gold.bmp b/crawl-ref/source/rltiles/player/arm/glove_gold.bmp new file mode 100644 index 0000000000..570cb7819a Binary files /dev/null and b/crawl-ref/source/rltiles/player/arm/glove_gold.bmp differ diff --git a/crawl-ref/source/rltiles/player/arm/glove_gray.bmp b/crawl-ref/source/rltiles/player/arm/glove_gray.bmp new file mode 100644 index 0000000000..126065e21e Binary files /dev/null and b/crawl-ref/source/rltiles/player/arm/glove_gray.bmp differ diff --git a/crawl-ref/source/rltiles/player/arm/glove_grayfist.bmp b/crawl-ref/source/rltiles/player/arm/glove_grayfist.bmp new file mode 100644 index 0000000000..455a90bc0f Binary files /dev/null and b/crawl-ref/source/rltiles/player/arm/glove_grayfist.bmp differ diff --git a/crawl-ref/source/rltiles/player/arm/glove_orange.bmp b/crawl-ref/source/rltiles/player/arm/glove_orange.bmp new file mode 100644 index 0000000000..00e1a7e08a Binary files /dev/null and b/crawl-ref/source/rltiles/player/arm/glove_orange.bmp differ diff --git a/crawl-ref/source/rltiles/player/arm/glove_purple.bmp b/crawl-ref/source/rltiles/player/arm/glove_purple.bmp new file mode 100644 index 0000000000..e03906b31e Binary files /dev/null and b/crawl-ref/source/rltiles/player/arm/glove_purple.bmp differ diff --git a/crawl-ref/source/rltiles/player/arm/glove_red.bmp b/crawl-ref/source/rltiles/player/arm/glove_red.bmp new file mode 100644 index 0000000000..8e1c1fec60 Binary files /dev/null and b/crawl-ref/source/rltiles/player/arm/glove_red.bmp differ diff --git a/crawl-ref/source/rltiles/player/arm/glove_short_blue.bmp b/crawl-ref/source/rltiles/player/arm/glove_short_blue.bmp new file mode 100644 index 0000000000..e9899c36f6 Binary files /dev/null and b/crawl-ref/source/rltiles/player/arm/glove_short_blue.bmp differ diff --git a/crawl-ref/source/rltiles/player/arm/glove_short_gray.bmp b/crawl-ref/source/rltiles/player/arm/glove_short_gray.bmp new file mode 100644 index 0000000000..b52b495a84 Binary files /dev/null and b/crawl-ref/source/rltiles/player/arm/glove_short_gray.bmp differ diff --git a/crawl-ref/source/rltiles/player/arm/glove_short_green.bmp b/crawl-ref/source/rltiles/player/arm/glove_short_green.bmp new file mode 100644 index 0000000000..a5a9355484 Binary files /dev/null and b/crawl-ref/source/rltiles/player/arm/glove_short_green.bmp differ diff --git a/crawl-ref/source/rltiles/player/arm/glove_short_red.bmp b/crawl-ref/source/rltiles/player/arm/glove_short_red.bmp new file mode 100644 index 0000000000..49344827c7 Binary files /dev/null and b/crawl-ref/source/rltiles/player/arm/glove_short_red.bmp differ diff --git a/crawl-ref/source/rltiles/player/arm/glove_short_white.bmp b/crawl-ref/source/rltiles/player/arm/glove_short_white.bmp new file mode 100644 index 0000000000..41453a7cd1 Binary files /dev/null and b/crawl-ref/source/rltiles/player/arm/glove_short_white.bmp differ diff --git a/crawl-ref/source/rltiles/player/arm/glove_short_yellow.bmp b/crawl-ref/source/rltiles/player/arm/glove_short_yellow.bmp new file mode 100644 index 0000000000..bd0171952e Binary files /dev/null and b/crawl-ref/source/rltiles/player/arm/glove_short_yellow.bmp differ diff --git a/crawl-ref/source/rltiles/player/arm/glove_white.bmp b/crawl-ref/source/rltiles/player/arm/glove_white.bmp new file mode 100644 index 0000000000..83ea0f5380 Binary files /dev/null and b/crawl-ref/source/rltiles/player/arm/glove_white.bmp differ diff --git a/crawl-ref/source/rltiles/player/arm/glove_wrist_purple.bmp b/crawl-ref/source/rltiles/player/arm/glove_wrist_purple.bmp new file mode 100644 index 0000000000..904d54a395 Binary files /dev/null and b/crawl-ref/source/rltiles/player/arm/glove_wrist_purple.bmp differ diff --git a/crawl-ref/source/rltiles/player/barding/centaur_barding.bmp b/crawl-ref/source/rltiles/player/barding/centaur_barding.bmp new file mode 100644 index 0000000000..f927c126dc Binary files /dev/null and b/crawl-ref/source/rltiles/player/barding/centaur_barding.bmp differ diff --git a/crawl-ref/source/rltiles/player/barding/naga_barding.bmp b/crawl-ref/source/rltiles/player/barding/naga_barding.bmp new file mode 100644 index 0000000000..91329474c1 Binary files /dev/null and b/crawl-ref/source/rltiles/player/barding/naga_barding.bmp differ diff --git a/crawl-ref/source/rltiles/player/base/centaur_f.bmp b/crawl-ref/source/rltiles/player/base/centaur_f.bmp new file mode 100644 index 0000000000..b00fb4d885 Binary files /dev/null and b/crawl-ref/source/rltiles/player/base/centaur_f.bmp differ diff --git a/crawl-ref/source/rltiles/player/base/centaur_m.bmp b/crawl-ref/source/rltiles/player/base/centaur_m.bmp new file mode 100644 index 0000000000..619f558aa2 Binary files /dev/null and b/crawl-ref/source/rltiles/player/base/centaur_m.bmp differ diff --git a/crawl-ref/source/rltiles/player/base/deep_elf_f.bmp b/crawl-ref/source/rltiles/player/base/deep_elf_f.bmp new file mode 100644 index 0000000000..515a6a6281 Binary files /dev/null and b/crawl-ref/source/rltiles/player/base/deep_elf_f.bmp differ diff --git a/crawl-ref/source/rltiles/player/base/deep_elf_m.bmp b/crawl-ref/source/rltiles/player/base/deep_elf_m.bmp new file mode 100644 index 0000000000..c2155f4a6f Binary files /dev/null and b/crawl-ref/source/rltiles/player/base/deep_elf_m.bmp differ diff --git a/crawl-ref/source/rltiles/player/base/demigod_f.bmp b/crawl-ref/source/rltiles/player/base/demigod_f.bmp new file mode 100644 index 0000000000..db6902bd24 Binary files /dev/null and b/crawl-ref/source/rltiles/player/base/demigod_f.bmp differ diff --git a/crawl-ref/source/rltiles/player/base/demigod_m.bmp b/crawl-ref/source/rltiles/player/base/demigod_m.bmp new file mode 100644 index 0000000000..5860f49ea6 Binary files /dev/null and b/crawl-ref/source/rltiles/player/base/demigod_m.bmp differ diff --git a/crawl-ref/source/rltiles/player/base/demonspawn_f.bmp b/crawl-ref/source/rltiles/player/base/demonspawn_f.bmp new file mode 100644 index 0000000000..2339e334d1 Binary files /dev/null and b/crawl-ref/source/rltiles/player/base/demonspawn_f.bmp differ diff --git a/crawl-ref/source/rltiles/player/base/demonspawn_m.bmp b/crawl-ref/source/rltiles/player/base/demonspawn_m.bmp new file mode 100644 index 0000000000..dbf3e6a885 Binary files /dev/null and b/crawl-ref/source/rltiles/player/base/demonspawn_m.bmp differ diff --git a/crawl-ref/source/rltiles/player/base/draconian_black_f.bmp b/crawl-ref/source/rltiles/player/base/draconian_black_f.bmp new file mode 100644 index 0000000000..6e34a6c228 Binary files /dev/null and b/crawl-ref/source/rltiles/player/base/draconian_black_f.bmp differ diff --git a/crawl-ref/source/rltiles/player/base/draconian_black_m.bmp b/crawl-ref/source/rltiles/player/base/draconian_black_m.bmp new file mode 100644 index 0000000000..87079905bf Binary files /dev/null and b/crawl-ref/source/rltiles/player/base/draconian_black_m.bmp differ diff --git a/crawl-ref/source/rltiles/player/base/draconian_f.bmp b/crawl-ref/source/rltiles/player/base/draconian_f.bmp new file mode 100644 index 0000000000..f296ddaf49 Binary files /dev/null and b/crawl-ref/source/rltiles/player/base/draconian_f.bmp differ diff --git a/crawl-ref/source/rltiles/player/base/draconian_gold_f.bmp b/crawl-ref/source/rltiles/player/base/draconian_gold_f.bmp new file mode 100644 index 0000000000..bcb2c0aee5 Binary files /dev/null and b/crawl-ref/source/rltiles/player/base/draconian_gold_f.bmp differ diff --git a/crawl-ref/source/rltiles/player/base/draconian_gold_m.bmp b/crawl-ref/source/rltiles/player/base/draconian_gold_m.bmp new file mode 100644 index 0000000000..11d4555da9 Binary files /dev/null and b/crawl-ref/source/rltiles/player/base/draconian_gold_m.bmp differ diff --git a/crawl-ref/source/rltiles/player/base/draconian_gray_f.bmp b/crawl-ref/source/rltiles/player/base/draconian_gray_f.bmp new file mode 100644 index 0000000000..21ebbb964c Binary files /dev/null and b/crawl-ref/source/rltiles/player/base/draconian_gray_f.bmp differ diff --git a/crawl-ref/source/rltiles/player/base/draconian_gray_m.bmp b/crawl-ref/source/rltiles/player/base/draconian_gray_m.bmp new file mode 100644 index 0000000000..0421f965b7 Binary files /dev/null and b/crawl-ref/source/rltiles/player/base/draconian_gray_m.bmp differ diff --git a/crawl-ref/source/rltiles/player/base/draconian_green_f.bmp b/crawl-ref/source/rltiles/player/base/draconian_green_f.bmp new file mode 100644 index 0000000000..eea7045e1a Binary files /dev/null and b/crawl-ref/source/rltiles/player/base/draconian_green_f.bmp differ diff --git a/crawl-ref/source/rltiles/player/base/draconian_green_m.bmp b/crawl-ref/source/rltiles/player/base/draconian_green_m.bmp new file mode 100644 index 0000000000..ec51e417f0 Binary files /dev/null and b/crawl-ref/source/rltiles/player/base/draconian_green_m.bmp differ diff --git a/crawl-ref/source/rltiles/player/base/draconian_m.bmp b/crawl-ref/source/rltiles/player/base/draconian_m.bmp new file mode 100644 index 0000000000..bb30a48cfd Binary files /dev/null and b/crawl-ref/source/rltiles/player/base/draconian_m.bmp differ diff --git a/crawl-ref/source/rltiles/player/base/draconian_mottled_f.bmp b/crawl-ref/source/rltiles/player/base/draconian_mottled_f.bmp new file mode 100644 index 0000000000..fbb063d0cb Binary files /dev/null and b/crawl-ref/source/rltiles/player/base/draconian_mottled_f.bmp differ diff --git a/crawl-ref/source/rltiles/player/base/draconian_mottled_m.bmp b/crawl-ref/source/rltiles/player/base/draconian_mottled_m.bmp new file mode 100644 index 0000000000..443c2cc077 Binary files /dev/null and b/crawl-ref/source/rltiles/player/base/draconian_mottled_m.bmp differ diff --git a/crawl-ref/source/rltiles/player/base/draconian_pale_f.bmp b/crawl-ref/source/rltiles/player/base/draconian_pale_f.bmp new file mode 100644 index 0000000000..84e6b0be91 Binary files /dev/null and b/crawl-ref/source/rltiles/player/base/draconian_pale_f.bmp differ diff --git a/crawl-ref/source/rltiles/player/base/draconian_pale_m.bmp b/crawl-ref/source/rltiles/player/base/draconian_pale_m.bmp new file mode 100644 index 0000000000..988161ad98 Binary files /dev/null and b/crawl-ref/source/rltiles/player/base/draconian_pale_m.bmp differ diff --git a/crawl-ref/source/rltiles/player/base/draconian_purple_f.bmp b/crawl-ref/source/rltiles/player/base/draconian_purple_f.bmp new file mode 100644 index 0000000000..80074f1bbd Binary files /dev/null and b/crawl-ref/source/rltiles/player/base/draconian_purple_f.bmp differ diff --git a/crawl-ref/source/rltiles/player/base/draconian_purple_m.bmp b/crawl-ref/source/rltiles/player/base/draconian_purple_m.bmp new file mode 100644 index 0000000000..6a7b40fc85 Binary files /dev/null and b/crawl-ref/source/rltiles/player/base/draconian_purple_m.bmp differ diff --git a/crawl-ref/source/rltiles/player/base/draconian_red_f.bmp b/crawl-ref/source/rltiles/player/base/draconian_red_f.bmp new file mode 100644 index 0000000000..84f9ad2f85 Binary files /dev/null and b/crawl-ref/source/rltiles/player/base/draconian_red_f.bmp differ diff --git a/crawl-ref/source/rltiles/player/base/draconian_red_m.bmp b/crawl-ref/source/rltiles/player/base/draconian_red_m.bmp new file mode 100644 index 0000000000..fed9f61b47 Binary files /dev/null and b/crawl-ref/source/rltiles/player/base/draconian_red_m.bmp differ diff --git a/crawl-ref/source/rltiles/player/base/draconian_white_f.bmp b/crawl-ref/source/rltiles/player/base/draconian_white_f.bmp new file mode 100644 index 0000000000..65950c2c48 Binary files /dev/null and b/crawl-ref/source/rltiles/player/base/draconian_white_f.bmp differ diff --git a/crawl-ref/source/rltiles/player/base/draconian_white_m.bmp b/crawl-ref/source/rltiles/player/base/draconian_white_m.bmp new file mode 100644 index 0000000000..1ccda48abf Binary files /dev/null and b/crawl-ref/source/rltiles/player/base/draconian_white_m.bmp differ diff --git a/crawl-ref/source/rltiles/player/base/dwarf_f.bmp b/crawl-ref/source/rltiles/player/base/dwarf_f.bmp new file mode 100644 index 0000000000..3f93bd01d3 Binary files /dev/null and b/crawl-ref/source/rltiles/player/base/dwarf_f.bmp differ diff --git a/crawl-ref/source/rltiles/player/base/dwarf_m.bmp b/crawl-ref/source/rltiles/player/base/dwarf_m.bmp new file mode 100644 index 0000000000..7c45a0030a Binary files /dev/null and b/crawl-ref/source/rltiles/player/base/dwarf_m.bmp differ diff --git a/crawl-ref/source/rltiles/player/base/elf_f.bmp b/crawl-ref/source/rltiles/player/base/elf_f.bmp new file mode 100644 index 0000000000..484a859b54 Binary files /dev/null and b/crawl-ref/source/rltiles/player/base/elf_f.bmp differ diff --git a/crawl-ref/source/rltiles/player/base/elf_m.bmp b/crawl-ref/source/rltiles/player/base/elf_m.bmp new file mode 100644 index 0000000000..0a36da0956 Binary files /dev/null and b/crawl-ref/source/rltiles/player/base/elf_m.bmp differ diff --git a/crawl-ref/source/rltiles/player/base/ghoul_f.bmp b/crawl-ref/source/rltiles/player/base/ghoul_f.bmp new file mode 100644 index 0000000000..3200a62fea Binary files /dev/null and b/crawl-ref/source/rltiles/player/base/ghoul_f.bmp differ diff --git a/crawl-ref/source/rltiles/player/base/ghoul_m.bmp b/crawl-ref/source/rltiles/player/base/ghoul_m.bmp new file mode 100644 index 0000000000..04934f8376 Binary files /dev/null and b/crawl-ref/source/rltiles/player/base/ghoul_m.bmp differ diff --git a/crawl-ref/source/rltiles/player/base/gnome_f.bmp b/crawl-ref/source/rltiles/player/base/gnome_f.bmp new file mode 100644 index 0000000000..31893676d6 Binary files /dev/null and b/crawl-ref/source/rltiles/player/base/gnome_f.bmp differ diff --git a/crawl-ref/source/rltiles/player/base/gnome_m.bmp b/crawl-ref/source/rltiles/player/base/gnome_m.bmp new file mode 100644 index 0000000000..7d3f500432 Binary files /dev/null and b/crawl-ref/source/rltiles/player/base/gnome_m.bmp differ diff --git a/crawl-ref/source/rltiles/player/base/halfling_f.bmp b/crawl-ref/source/rltiles/player/base/halfling_f.bmp new file mode 100644 index 0000000000..b6de48671c Binary files /dev/null and b/crawl-ref/source/rltiles/player/base/halfling_f.bmp differ diff --git a/crawl-ref/source/rltiles/player/base/halfling_m.bmp b/crawl-ref/source/rltiles/player/base/halfling_m.bmp new file mode 100644 index 0000000000..23d6d99cde Binary files /dev/null and b/crawl-ref/source/rltiles/player/base/halfling_m.bmp differ diff --git a/crawl-ref/source/rltiles/player/base/human_f.bmp b/crawl-ref/source/rltiles/player/base/human_f.bmp new file mode 100644 index 0000000000..db6902bd24 Binary files /dev/null and b/crawl-ref/source/rltiles/player/base/human_f.bmp differ diff --git a/crawl-ref/source/rltiles/player/base/human_m.bmp b/crawl-ref/source/rltiles/player/base/human_m.bmp new file mode 100644 index 0000000000..b15cacfd2e Binary files /dev/null and b/crawl-ref/source/rltiles/player/base/human_m.bmp differ diff --git a/crawl-ref/source/rltiles/player/base/kenku_f.bmp b/crawl-ref/source/rltiles/player/base/kenku_f.bmp new file mode 100644 index 0000000000..d545e25d72 Binary files /dev/null and b/crawl-ref/source/rltiles/player/base/kenku_f.bmp differ diff --git a/crawl-ref/source/rltiles/player/base/kenku_m.bmp b/crawl-ref/source/rltiles/player/base/kenku_m.bmp new file mode 100644 index 0000000000..6c1821f07d Binary files /dev/null and b/crawl-ref/source/rltiles/player/base/kenku_m.bmp differ diff --git a/crawl-ref/source/rltiles/player/base/kobold_f.bmp b/crawl-ref/source/rltiles/player/base/kobold_f.bmp new file mode 100644 index 0000000000..669667c809 Binary files /dev/null and b/crawl-ref/source/rltiles/player/base/kobold_f.bmp differ diff --git a/crawl-ref/source/rltiles/player/base/kobold_m.bmp b/crawl-ref/source/rltiles/player/base/kobold_m.bmp new file mode 100644 index 0000000000..540af80301 Binary files /dev/null and b/crawl-ref/source/rltiles/player/base/kobold_m.bmp differ diff --git a/crawl-ref/source/rltiles/player/base/merfolk_f.bmp b/crawl-ref/source/rltiles/player/base/merfolk_f.bmp new file mode 100644 index 0000000000..365375dfd3 Binary files /dev/null and b/crawl-ref/source/rltiles/player/base/merfolk_f.bmp differ diff --git a/crawl-ref/source/rltiles/player/base/merfolk_fs.bmp b/crawl-ref/source/rltiles/player/base/merfolk_fs.bmp new file mode 100644 index 0000000000..ceb382faa9 Binary files /dev/null and b/crawl-ref/source/rltiles/player/base/merfolk_fs.bmp differ diff --git a/crawl-ref/source/rltiles/player/base/merfolk_m.bmp b/crawl-ref/source/rltiles/player/base/merfolk_m.bmp new file mode 100644 index 0000000000..ddf196aeef Binary files /dev/null and b/crawl-ref/source/rltiles/player/base/merfolk_m.bmp differ diff --git a/crawl-ref/source/rltiles/player/base/merfolk_ms.bmp b/crawl-ref/source/rltiles/player/base/merfolk_ms.bmp new file mode 100644 index 0000000000..ddf196aeef Binary files /dev/null and b/crawl-ref/source/rltiles/player/base/merfolk_ms.bmp differ diff --git a/crawl-ref/source/rltiles/player/base/merfolk_water_f.bmp b/crawl-ref/source/rltiles/player/base/merfolk_water_f.bmp new file mode 100644 index 0000000000..5785b9ddf8 Binary files /dev/null and b/crawl-ref/source/rltiles/player/base/merfolk_water_f.bmp differ diff --git a/crawl-ref/source/rltiles/player/base/merfolk_water_m.bmp b/crawl-ref/source/rltiles/player/base/merfolk_water_m.bmp new file mode 100644 index 0000000000..f74e058463 Binary files /dev/null and b/crawl-ref/source/rltiles/player/base/merfolk_water_m.bmp differ diff --git a/crawl-ref/source/rltiles/player/base/minotaur_f.bmp b/crawl-ref/source/rltiles/player/base/minotaur_f.bmp new file mode 100644 index 0000000000..99e75e02c0 Binary files /dev/null and b/crawl-ref/source/rltiles/player/base/minotaur_f.bmp differ diff --git a/crawl-ref/source/rltiles/player/base/minotaur_m.bmp b/crawl-ref/source/rltiles/player/base/minotaur_m.bmp new file mode 100644 index 0000000000..953d608bfe Binary files /dev/null and b/crawl-ref/source/rltiles/player/base/minotaur_m.bmp differ diff --git a/crawl-ref/source/rltiles/player/base/mummy_f.bmp b/crawl-ref/source/rltiles/player/base/mummy_f.bmp new file mode 100644 index 0000000000..6f05878d0f Binary files /dev/null and b/crawl-ref/source/rltiles/player/base/mummy_f.bmp differ diff --git a/crawl-ref/source/rltiles/player/base/mummy_m.bmp b/crawl-ref/source/rltiles/player/base/mummy_m.bmp new file mode 100644 index 0000000000..9ea0c813da Binary files /dev/null and b/crawl-ref/source/rltiles/player/base/mummy_m.bmp differ diff --git a/crawl-ref/source/rltiles/player/base/naga_f.bmp b/crawl-ref/source/rltiles/player/base/naga_f.bmp new file mode 100644 index 0000000000..c0c7636087 Binary files /dev/null and b/crawl-ref/source/rltiles/player/base/naga_f.bmp differ diff --git a/crawl-ref/source/rltiles/player/base/naga_m.bmp b/crawl-ref/source/rltiles/player/base/naga_m.bmp new file mode 100644 index 0000000000..13ad011b4d Binary files /dev/null and b/crawl-ref/source/rltiles/player/base/naga_m.bmp differ diff --git a/crawl-ref/source/rltiles/player/base/ogre_f.bmp b/crawl-ref/source/rltiles/player/base/ogre_f.bmp new file mode 100644 index 0000000000..7aef567a08 Binary files /dev/null and b/crawl-ref/source/rltiles/player/base/ogre_f.bmp differ diff --git a/crawl-ref/source/rltiles/player/base/ogre_m.bmp b/crawl-ref/source/rltiles/player/base/ogre_m.bmp new file mode 100644 index 0000000000..3a8f97b2a3 Binary files /dev/null and b/crawl-ref/source/rltiles/player/base/ogre_m.bmp differ diff --git a/crawl-ref/source/rltiles/player/base/ogre_mage_f.bmp b/crawl-ref/source/rltiles/player/base/ogre_mage_f.bmp new file mode 100644 index 0000000000..7aef567a08 Binary files /dev/null and b/crawl-ref/source/rltiles/player/base/ogre_mage_f.bmp differ diff --git a/crawl-ref/source/rltiles/player/base/ogre_mage_m.bmp b/crawl-ref/source/rltiles/player/base/ogre_mage_m.bmp new file mode 100644 index 0000000000..3a8f97b2a3 Binary files /dev/null and b/crawl-ref/source/rltiles/player/base/ogre_mage_m.bmp differ diff --git a/crawl-ref/source/rltiles/player/base/orc_f.bmp b/crawl-ref/source/rltiles/player/base/orc_f.bmp new file mode 100644 index 0000000000..335d9327b5 Binary files /dev/null and b/crawl-ref/source/rltiles/player/base/orc_f.bmp differ diff --git a/crawl-ref/source/rltiles/player/base/orc_m.bmp b/crawl-ref/source/rltiles/player/base/orc_m.bmp new file mode 100644 index 0000000000..2362262a34 Binary files /dev/null and b/crawl-ref/source/rltiles/player/base/orc_m.bmp differ diff --git a/crawl-ref/source/rltiles/player/base/shadow.bmp b/crawl-ref/source/rltiles/player/base/shadow.bmp new file mode 100644 index 0000000000..15fe3dd934 Binary files /dev/null and b/crawl-ref/source/rltiles/player/base/shadow.bmp differ diff --git a/crawl-ref/source/rltiles/player/base/spriggan_f.bmp b/crawl-ref/source/rltiles/player/base/spriggan_f.bmp new file mode 100644 index 0000000000..70548e15c0 Binary files /dev/null and b/crawl-ref/source/rltiles/player/base/spriggan_f.bmp differ diff --git a/crawl-ref/source/rltiles/player/base/spriggan_m.bmp b/crawl-ref/source/rltiles/player/base/spriggan_m.bmp new file mode 100644 index 0000000000..4ecae18464 Binary files /dev/null and b/crawl-ref/source/rltiles/player/base/spriggan_m.bmp differ diff --git a/crawl-ref/source/rltiles/player/base/troll_f.bmp b/crawl-ref/source/rltiles/player/base/troll_f.bmp new file mode 100644 index 0000000000..2cef95f0f0 Binary files /dev/null and b/crawl-ref/source/rltiles/player/base/troll_f.bmp differ diff --git a/crawl-ref/source/rltiles/player/base/troll_m.bmp b/crawl-ref/source/rltiles/player/base/troll_m.bmp new file mode 100644 index 0000000000..c3bc7f3a63 Binary files /dev/null and b/crawl-ref/source/rltiles/player/base/troll_m.bmp differ diff --git a/crawl-ref/source/rltiles/player/base/vampire_f.bmp b/crawl-ref/source/rltiles/player/base/vampire_f.bmp new file mode 100644 index 0000000000..db6902bd24 Binary files /dev/null and b/crawl-ref/source/rltiles/player/base/vampire_f.bmp differ diff --git a/crawl-ref/source/rltiles/player/base/vampire_m.bmp b/crawl-ref/source/rltiles/player/base/vampire_m.bmp new file mode 100644 index 0000000000..5860f49ea6 Binary files /dev/null and b/crawl-ref/source/rltiles/player/base/vampire_m.bmp differ diff --git a/crawl-ref/source/rltiles/player/beard/long_black.bmp b/crawl-ref/source/rltiles/player/beard/long_black.bmp new file mode 100644 index 0000000000..3181a958ef Binary files /dev/null and b/crawl-ref/source/rltiles/player/beard/long_black.bmp differ diff --git a/crawl-ref/source/rltiles/player/beard/long_red.bmp b/crawl-ref/source/rltiles/player/beard/long_red.bmp new file mode 100644 index 0000000000..e266f3dc42 Binary files /dev/null and b/crawl-ref/source/rltiles/player/beard/long_red.bmp differ diff --git a/crawl-ref/source/rltiles/player/beard/long_white.bmp b/crawl-ref/source/rltiles/player/beard/long_white.bmp new file mode 100644 index 0000000000..2d41a959cb Binary files /dev/null and b/crawl-ref/source/rltiles/player/beard/long_white.bmp differ diff --git a/crawl-ref/source/rltiles/player/beard/long_yellow.bmp b/crawl-ref/source/rltiles/player/beard/long_yellow.bmp new file mode 100644 index 0000000000..72560ce604 Binary files /dev/null and b/crawl-ref/source/rltiles/player/beard/long_yellow.bmp differ diff --git a/crawl-ref/source/rltiles/player/beard/pj.bmp b/crawl-ref/source/rltiles/player/beard/pj.bmp new file mode 100644 index 0000000000..540f98e4a6 Binary files /dev/null and b/crawl-ref/source/rltiles/player/beard/pj.bmp differ diff --git a/crawl-ref/source/rltiles/player/beard/short_black.bmp b/crawl-ref/source/rltiles/player/beard/short_black.bmp new file mode 100644 index 0000000000..7050a305d5 Binary files /dev/null and b/crawl-ref/source/rltiles/player/beard/short_black.bmp differ diff --git a/crawl-ref/source/rltiles/player/beard/short_red.bmp b/crawl-ref/source/rltiles/player/beard/short_red.bmp new file mode 100644 index 0000000000..1c42e27981 Binary files /dev/null and b/crawl-ref/source/rltiles/player/beard/short_red.bmp differ diff --git a/crawl-ref/source/rltiles/player/beard/short_white.bmp b/crawl-ref/source/rltiles/player/beard/short_white.bmp new file mode 100644 index 0000000000..6b0b9de8b5 Binary files /dev/null and b/crawl-ref/source/rltiles/player/beard/short_white.bmp differ diff --git a/crawl-ref/source/rltiles/player/beard/short_yellow.bmp b/crawl-ref/source/rltiles/player/beard/short_yellow.bmp new file mode 100644 index 0000000000..ba063bc264 Binary files /dev/null and b/crawl-ref/source/rltiles/player/beard/short_yellow.bmp differ diff --git a/crawl-ref/source/rltiles/player/body/animal_skin.bmp b/crawl-ref/source/rltiles/player/body/animal_skin.bmp new file mode 100644 index 0000000000..32b3d542f1 Binary files /dev/null and b/crawl-ref/source/rltiles/player/body/animal_skin.bmp differ diff --git a/crawl-ref/source/rltiles/player/body/aragorn.bmp b/crawl-ref/source/rltiles/player/body/aragorn.bmp new file mode 100644 index 0000000000..115d9be43c Binary files /dev/null and b/crawl-ref/source/rltiles/player/body/aragorn.bmp differ diff --git a/crawl-ref/source/rltiles/player/body/aragorn2.bmp b/crawl-ref/source/rltiles/player/body/aragorn2.bmp new file mode 100644 index 0000000000..d1f643e4eb Binary files /dev/null and b/crawl-ref/source/rltiles/player/body/aragorn2.bmp differ diff --git a/crawl-ref/source/rltiles/player/body/armor_blue_gold.bmp b/crawl-ref/source/rltiles/player/body/armor_blue_gold.bmp new file mode 100644 index 0000000000..9233abf560 Binary files /dev/null and b/crawl-ref/source/rltiles/player/body/armor_blue_gold.bmp differ diff --git a/crawl-ref/source/rltiles/player/body/armor_mummy.bmp b/crawl-ref/source/rltiles/player/body/armor_mummy.bmp new file mode 100644 index 0000000000..3f7c7a5db4 Binary files /dev/null and b/crawl-ref/source/rltiles/player/body/armor_mummy.bmp differ diff --git a/crawl-ref/source/rltiles/player/body/arwen.bmp b/crawl-ref/source/rltiles/player/body/arwen.bmp new file mode 100644 index 0000000000..2555b2f3c1 Binary files /dev/null and b/crawl-ref/source/rltiles/player/body/arwen.bmp differ diff --git a/crawl-ref/source/rltiles/player/body/banded.bmp b/crawl-ref/source/rltiles/player/body/banded.bmp new file mode 100644 index 0000000000..821be25c15 Binary files /dev/null and b/crawl-ref/source/rltiles/player/body/banded.bmp differ diff --git a/crawl-ref/source/rltiles/player/body/banded2.bmp b/crawl-ref/source/rltiles/player/body/banded2.bmp new file mode 100644 index 0000000000..1479980434 Binary files /dev/null and b/crawl-ref/source/rltiles/player/body/banded2.bmp differ diff --git a/crawl-ref/source/rltiles/player/body/belt1.bmp b/crawl-ref/source/rltiles/player/body/belt1.bmp new file mode 100644 index 0000000000..6351547433 Binary files /dev/null and b/crawl-ref/source/rltiles/player/body/belt1.bmp differ diff --git a/crawl-ref/source/rltiles/player/body/belt2.bmp b/crawl-ref/source/rltiles/player/body/belt2.bmp new file mode 100644 index 0000000000..e0f3661c5e Binary files /dev/null and b/crawl-ref/source/rltiles/player/body/belt2.bmp differ diff --git a/crawl-ref/source/rltiles/player/body/bikini_red.bmp b/crawl-ref/source/rltiles/player/body/bikini_red.bmp new file mode 100644 index 0000000000..84e9ab4be4 Binary files /dev/null and b/crawl-ref/source/rltiles/player/body/bikini_red.bmp differ diff --git a/crawl-ref/source/rltiles/player/body/bloody.bmp b/crawl-ref/source/rltiles/player/body/bloody.bmp new file mode 100644 index 0000000000..b78d575ee1 Binary files /dev/null and b/crawl-ref/source/rltiles/player/body/bloody.bmp differ diff --git a/crawl-ref/source/rltiles/player/body/boromir.bmp b/crawl-ref/source/rltiles/player/body/boromir.bmp new file mode 100644 index 0000000000..3101dec864 Binary files /dev/null and b/crawl-ref/source/rltiles/player/body/boromir.bmp differ diff --git a/crawl-ref/source/rltiles/player/body/bplate_green.bmp b/crawl-ref/source/rltiles/player/body/bplate_green.bmp new file mode 100644 index 0000000000..04e8a5d82b Binary files /dev/null and b/crawl-ref/source/rltiles/player/body/bplate_green.bmp differ diff --git a/crawl-ref/source/rltiles/player/body/bplate_metal1.bmp b/crawl-ref/source/rltiles/player/body/bplate_metal1.bmp new file mode 100644 index 0000000000..27077eb8db Binary files /dev/null and b/crawl-ref/source/rltiles/player/body/bplate_metal1.bmp differ diff --git a/crawl-ref/source/rltiles/player/body/breast_black.bmp b/crawl-ref/source/rltiles/player/body/breast_black.bmp new file mode 100644 index 0000000000..2a6be27fbb Binary files /dev/null and b/crawl-ref/source/rltiles/player/body/breast_black.bmp differ diff --git a/crawl-ref/source/rltiles/player/body/chainmail.bmp b/crawl-ref/source/rltiles/player/body/chainmail.bmp new file mode 100644 index 0000000000..6edf65962c Binary files /dev/null and b/crawl-ref/source/rltiles/player/body/chainmail.bmp differ diff --git a/crawl-ref/source/rltiles/player/body/chainmail2.bmp b/crawl-ref/source/rltiles/player/body/chainmail2.bmp new file mode 100644 index 0000000000..afde530e7a Binary files /dev/null and b/crawl-ref/source/rltiles/player/body/chainmail2.bmp differ diff --git a/crawl-ref/source/rltiles/player/body/chainmail3.bmp b/crawl-ref/source/rltiles/player/body/chainmail3.bmp new file mode 100644 index 0000000000..dbb5f2d9c8 Binary files /dev/null and b/crawl-ref/source/rltiles/player/body/chainmail3.bmp differ diff --git a/crawl-ref/source/rltiles/player/body/china_red.bmp b/crawl-ref/source/rltiles/player/body/china_red.bmp new file mode 100644 index 0000000000..316a64e539 Binary files /dev/null and b/crawl-ref/source/rltiles/player/body/china_red.bmp differ diff --git a/crawl-ref/source/rltiles/player/body/china_red2.bmp b/crawl-ref/source/rltiles/player/body/china_red2.bmp new file mode 100644 index 0000000000..05f513a947 Binary files /dev/null and b/crawl-ref/source/rltiles/player/body/china_red2.bmp differ diff --git a/crawl-ref/source/rltiles/player/body/chunli.bmp b/crawl-ref/source/rltiles/player/body/chunli.bmp new file mode 100644 index 0000000000..199ab0699d Binary files /dev/null and b/crawl-ref/source/rltiles/player/body/chunli.bmp differ diff --git a/crawl-ref/source/rltiles/player/body/coat_black.bmp b/crawl-ref/source/rltiles/player/body/coat_black.bmp new file mode 100644 index 0000000000..804e71d681 Binary files /dev/null and b/crawl-ref/source/rltiles/player/body/coat_black.bmp differ diff --git a/crawl-ref/source/rltiles/player/body/coat_red.bmp b/crawl-ref/source/rltiles/player/body/coat_red.bmp new file mode 100644 index 0000000000..231a068759 Binary files /dev/null and b/crawl-ref/source/rltiles/player/body/coat_red.bmp differ diff --git a/crawl-ref/source/rltiles/player/body/crystal_plate.bmp b/crawl-ref/source/rltiles/player/body/crystal_plate.bmp new file mode 100644 index 0000000000..2d0c43bfbc Binary files /dev/null and b/crawl-ref/source/rltiles/player/body/crystal_plate.bmp differ diff --git a/crawl-ref/source/rltiles/player/body/dragonarm_blue.bmp b/crawl-ref/source/rltiles/player/body/dragonarm_blue.bmp new file mode 100644 index 0000000000..a4619586bd Binary files /dev/null and b/crawl-ref/source/rltiles/player/body/dragonarm_blue.bmp differ diff --git a/crawl-ref/source/rltiles/player/body/dragonarm_brown.bmp b/crawl-ref/source/rltiles/player/body/dragonarm_brown.bmp new file mode 100644 index 0000000000..12d204c0e8 Binary files /dev/null and b/crawl-ref/source/rltiles/player/body/dragonarm_brown.bmp differ diff --git a/crawl-ref/source/rltiles/player/body/dragonarm_cyan.bmp b/crawl-ref/source/rltiles/player/body/dragonarm_cyan.bmp new file mode 100644 index 0000000000..2188a9c6ee Binary files /dev/null and b/crawl-ref/source/rltiles/player/body/dragonarm_cyan.bmp differ diff --git a/crawl-ref/source/rltiles/player/body/dragonarm_gold.bmp b/crawl-ref/source/rltiles/player/body/dragonarm_gold.bmp new file mode 100644 index 0000000000..6356a51cd5 Binary files /dev/null and b/crawl-ref/source/rltiles/player/body/dragonarm_gold.bmp differ diff --git a/crawl-ref/source/rltiles/player/body/dragonarm_green.bmp b/crawl-ref/source/rltiles/player/body/dragonarm_green.bmp new file mode 100644 index 0000000000..8b52ebc271 Binary files /dev/null and b/crawl-ref/source/rltiles/player/body/dragonarm_green.bmp differ diff --git a/crawl-ref/source/rltiles/player/body/dragonarm_magenta.bmp b/crawl-ref/source/rltiles/player/body/dragonarm_magenta.bmp new file mode 100644 index 0000000000..a9031cbe02 Binary files /dev/null and b/crawl-ref/source/rltiles/player/body/dragonarm_magenta.bmp differ diff --git a/crawl-ref/source/rltiles/player/body/dragonarm_white.bmp b/crawl-ref/source/rltiles/player/body/dragonarm_white.bmp new file mode 100644 index 0000000000..d708a393e9 Binary files /dev/null and b/crawl-ref/source/rltiles/player/body/dragonarm_white.bmp differ diff --git a/crawl-ref/source/rltiles/player/body/dragonsc_blue.bmp b/crawl-ref/source/rltiles/player/body/dragonsc_blue.bmp new file mode 100644 index 0000000000..fa89fdd643 Binary files /dev/null and b/crawl-ref/source/rltiles/player/body/dragonsc_blue.bmp differ diff --git a/crawl-ref/source/rltiles/player/body/dragonsc_brown.bmp b/crawl-ref/source/rltiles/player/body/dragonsc_brown.bmp new file mode 100644 index 0000000000..5f0d6a47c9 Binary files /dev/null and b/crawl-ref/source/rltiles/player/body/dragonsc_brown.bmp differ diff --git a/crawl-ref/source/rltiles/player/body/dragonsc_cyan.bmp b/crawl-ref/source/rltiles/player/body/dragonsc_cyan.bmp new file mode 100644 index 0000000000..7fddaf4c51 Binary files /dev/null and b/crawl-ref/source/rltiles/player/body/dragonsc_cyan.bmp differ diff --git a/crawl-ref/source/rltiles/player/body/dragonsc_gold.bmp b/crawl-ref/source/rltiles/player/body/dragonsc_gold.bmp new file mode 100644 index 0000000000..e0f9fa37b2 Binary files /dev/null and b/crawl-ref/source/rltiles/player/body/dragonsc_gold.bmp differ diff --git a/crawl-ref/source/rltiles/player/body/dragonsc_green.bmp b/crawl-ref/source/rltiles/player/body/dragonsc_green.bmp new file mode 100644 index 0000000000..6cd567b762 Binary files /dev/null and b/crawl-ref/source/rltiles/player/body/dragonsc_green.bmp differ diff --git a/crawl-ref/source/rltiles/player/body/dragonsc_magenta.bmp b/crawl-ref/source/rltiles/player/body/dragonsc_magenta.bmp new file mode 100644 index 0000000000..bc1584ccd7 Binary files /dev/null and b/crawl-ref/source/rltiles/player/body/dragonsc_magenta.bmp differ diff --git a/crawl-ref/source/rltiles/player/body/dragonsc_white.bmp b/crawl-ref/source/rltiles/player/body/dragonsc_white.bmp new file mode 100644 index 0000000000..ae1da92774 Binary files /dev/null and b/crawl-ref/source/rltiles/player/body/dragonsc_white.bmp differ diff --git a/crawl-ref/source/rltiles/player/body/dress_green.bmp b/crawl-ref/source/rltiles/player/body/dress_green.bmp new file mode 100644 index 0000000000..57bcf4a1b5 Binary files /dev/null and b/crawl-ref/source/rltiles/player/body/dress_green.bmp differ diff --git a/crawl-ref/source/rltiles/player/body/dress_white.bmp b/crawl-ref/source/rltiles/player/body/dress_white.bmp new file mode 100644 index 0000000000..af98fae165 Binary files /dev/null and b/crawl-ref/source/rltiles/player/body/dress_white.bmp differ diff --git a/crawl-ref/source/rltiles/player/body/edison.bmp b/crawl-ref/source/rltiles/player/body/edison.bmp new file mode 100644 index 0000000000..f17a4366a3 Binary files /dev/null and b/crawl-ref/source/rltiles/player/body/edison.bmp differ diff --git a/crawl-ref/source/rltiles/player/body/frodo.bmp b/crawl-ref/source/rltiles/player/body/frodo.bmp new file mode 100644 index 0000000000..09a5e825b8 Binary files /dev/null and b/crawl-ref/source/rltiles/player/body/frodo.bmp differ diff --git a/crawl-ref/source/rltiles/player/body/gandalf_g.bmp b/crawl-ref/source/rltiles/player/body/gandalf_g.bmp new file mode 100644 index 0000000000..a37df4c86b Binary files /dev/null and b/crawl-ref/source/rltiles/player/body/gandalf_g.bmp differ diff --git a/crawl-ref/source/rltiles/player/body/gil-galad.bmp b/crawl-ref/source/rltiles/player/body/gil-galad.bmp new file mode 100644 index 0000000000..422f5ad1ee Binary files /dev/null and b/crawl-ref/source/rltiles/player/body/gil-galad.bmp differ diff --git a/crawl-ref/source/rltiles/player/body/gimli.bmp b/crawl-ref/source/rltiles/player/body/gimli.bmp new file mode 100644 index 0000000000..efdf5b573c Binary files /dev/null and b/crawl-ref/source/rltiles/player/body/gimli.bmp differ diff --git a/crawl-ref/source/rltiles/player/body/green_chain.bmp b/crawl-ref/source/rltiles/player/body/green_chain.bmp new file mode 100644 index 0000000000..10d56a8a44 Binary files /dev/null and b/crawl-ref/source/rltiles/player/body/green_chain.bmp differ diff --git a/crawl-ref/source/rltiles/player/body/green_susp.bmp b/crawl-ref/source/rltiles/player/body/green_susp.bmp new file mode 100644 index 0000000000..8f990b1066 Binary files /dev/null and b/crawl-ref/source/rltiles/player/body/green_susp.bmp differ diff --git a/crawl-ref/source/rltiles/player/body/half_plate.bmp b/crawl-ref/source/rltiles/player/body/half_plate.bmp new file mode 100644 index 0000000000..ce642be4f1 Binary files /dev/null and b/crawl-ref/source/rltiles/player/body/half_plate.bmp differ diff --git a/crawl-ref/source/rltiles/player/body/half_plate2.bmp b/crawl-ref/source/rltiles/player/body/half_plate2.bmp new file mode 100644 index 0000000000..899339d099 Binary files /dev/null and b/crawl-ref/source/rltiles/player/body/half_plate2.bmp differ diff --git a/crawl-ref/source/rltiles/player/body/half_plate3.bmp b/crawl-ref/source/rltiles/player/body/half_plate3.bmp new file mode 100644 index 0000000000..8f89ec654d Binary files /dev/null and b/crawl-ref/source/rltiles/player/body/half_plate3.bmp differ diff --git a/crawl-ref/source/rltiles/player/body/isildur.bmp b/crawl-ref/source/rltiles/player/body/isildur.bmp new file mode 100644 index 0000000000..e7b7986721 Binary files /dev/null and b/crawl-ref/source/rltiles/player/body/isildur.bmp differ diff --git a/crawl-ref/source/rltiles/player/body/jacket2.bmp b/crawl-ref/source/rltiles/player/body/jacket2.bmp new file mode 100644 index 0000000000..52658fe335 Binary files /dev/null and b/crawl-ref/source/rltiles/player/body/jacket2.bmp differ diff --git a/crawl-ref/source/rltiles/player/body/jacket3.bmp b/crawl-ref/source/rltiles/player/body/jacket3.bmp new file mode 100644 index 0000000000..01354dac54 Binary files /dev/null and b/crawl-ref/source/rltiles/player/body/jacket3.bmp differ diff --git a/crawl-ref/source/rltiles/player/body/jacket_stud.bmp b/crawl-ref/source/rltiles/player/body/jacket_stud.bmp new file mode 100644 index 0000000000..4048c9e213 Binary files /dev/null and b/crawl-ref/source/rltiles/player/body/jacket_stud.bmp differ diff --git a/crawl-ref/source/rltiles/player/body/jessica.bmp b/crawl-ref/source/rltiles/player/body/jessica.bmp new file mode 100644 index 0000000000..0c0ba059fc Binary files /dev/null and b/crawl-ref/source/rltiles/player/body/jessica.bmp differ diff --git a/crawl-ref/source/rltiles/player/body/karate.bmp b/crawl-ref/source/rltiles/player/body/karate.bmp new file mode 100644 index 0000000000..b688117237 Binary files /dev/null and b/crawl-ref/source/rltiles/player/body/karate.bmp differ diff --git a/crawl-ref/source/rltiles/player/body/karate2.bmp b/crawl-ref/source/rltiles/player/body/karate2.bmp new file mode 100644 index 0000000000..bc5de8249e Binary files /dev/null and b/crawl-ref/source/rltiles/player/body/karate2.bmp differ diff --git a/crawl-ref/source/rltiles/player/body/lears_chain_mail.bmp b/crawl-ref/source/rltiles/player/body/lears_chain_mail.bmp new file mode 100644 index 0000000000..009b7c7e3e Binary files /dev/null and b/crawl-ref/source/rltiles/player/body/lears_chain_mail.bmp differ diff --git a/crawl-ref/source/rltiles/player/body/leather2.bmp b/crawl-ref/source/rltiles/player/body/leather2.bmp new file mode 100644 index 0000000000..bc19c22e7a Binary files /dev/null and b/crawl-ref/source/rltiles/player/body/leather2.bmp differ diff --git a/crawl-ref/source/rltiles/player/body/leather_armour.bmp b/crawl-ref/source/rltiles/player/body/leather_armour.bmp new file mode 100644 index 0000000000..fc6c1ec09b Binary files /dev/null and b/crawl-ref/source/rltiles/player/body/leather_armour.bmp differ diff --git a/crawl-ref/source/rltiles/player/body/leather_armour2.bmp b/crawl-ref/source/rltiles/player/body/leather_armour2.bmp new file mode 100644 index 0000000000..770a96031d Binary files /dev/null and b/crawl-ref/source/rltiles/player/body/leather_armour2.bmp differ diff --git a/crawl-ref/source/rltiles/player/body/leather_armour3.bmp b/crawl-ref/source/rltiles/player/body/leather_armour3.bmp new file mode 100644 index 0000000000..85547277cb Binary files /dev/null and b/crawl-ref/source/rltiles/player/body/leather_armour3.bmp differ diff --git a/crawl-ref/source/rltiles/player/body/leather_green.bmp b/crawl-ref/source/rltiles/player/body/leather_green.bmp new file mode 100644 index 0000000000..2c29bedb14 Binary files /dev/null and b/crawl-ref/source/rltiles/player/body/leather_green.bmp differ diff --git a/crawl-ref/source/rltiles/player/body/leather_heavy.bmp b/crawl-ref/source/rltiles/player/body/leather_heavy.bmp new file mode 100644 index 0000000000..7b598a2f7c Binary files /dev/null and b/crawl-ref/source/rltiles/player/body/leather_heavy.bmp differ diff --git a/crawl-ref/source/rltiles/player/body/leather_jacket.bmp b/crawl-ref/source/rltiles/player/body/leather_jacket.bmp new file mode 100644 index 0000000000..fb5067bc82 Binary files /dev/null and b/crawl-ref/source/rltiles/player/body/leather_jacket.bmp differ diff --git a/crawl-ref/source/rltiles/player/body/leather_metal.bmp b/crawl-ref/source/rltiles/player/body/leather_metal.bmp new file mode 100644 index 0000000000..ddc5774072 Binary files /dev/null and b/crawl-ref/source/rltiles/player/body/leather_metal.bmp differ diff --git a/crawl-ref/source/rltiles/player/body/leather_red.bmp b/crawl-ref/source/rltiles/player/body/leather_red.bmp new file mode 100644 index 0000000000..348899b7aa Binary files /dev/null and b/crawl-ref/source/rltiles/player/body/leather_red.bmp differ diff --git a/crawl-ref/source/rltiles/player/body/leather_short.bmp b/crawl-ref/source/rltiles/player/body/leather_short.bmp new file mode 100644 index 0000000000..626ea1cba1 Binary files /dev/null and b/crawl-ref/source/rltiles/player/body/leather_short.bmp differ diff --git a/crawl-ref/source/rltiles/player/body/leather_stud.bmp b/crawl-ref/source/rltiles/player/body/leather_stud.bmp new file mode 100644 index 0000000000..105a486482 Binary files /dev/null and b/crawl-ref/source/rltiles/player/body/leather_stud.bmp differ diff --git a/crawl-ref/source/rltiles/player/body/legolas.bmp b/crawl-ref/source/rltiles/player/body/legolas.bmp new file mode 100644 index 0000000000..1985312924 Binary files /dev/null and b/crawl-ref/source/rltiles/player/body/legolas.bmp differ diff --git a/crawl-ref/source/rltiles/player/body/merry.bmp b/crawl-ref/source/rltiles/player/body/merry.bmp new file mode 100644 index 0000000000..a227a90ea2 Binary files /dev/null and b/crawl-ref/source/rltiles/player/body/merry.bmp differ diff --git a/crawl-ref/source/rltiles/player/body/mesh_black.bmp b/crawl-ref/source/rltiles/player/body/mesh_black.bmp new file mode 100644 index 0000000000..6d0f8939b8 Binary files /dev/null and b/crawl-ref/source/rltiles/player/body/mesh_black.bmp differ diff --git a/crawl-ref/source/rltiles/player/body/mesh_red.bmp b/crawl-ref/source/rltiles/player/body/mesh_red.bmp new file mode 100644 index 0000000000..18013833f4 Binary files /dev/null and b/crawl-ref/source/rltiles/player/body/mesh_red.bmp differ diff --git a/crawl-ref/source/rltiles/player/body/metal_blue.bmp b/crawl-ref/source/rltiles/player/body/metal_blue.bmp new file mode 100644 index 0000000000..34965e45fb Binary files /dev/null and b/crawl-ref/source/rltiles/player/body/metal_blue.bmp differ diff --git a/crawl-ref/source/rltiles/player/body/monk_black.bmp b/crawl-ref/source/rltiles/player/body/monk_black.bmp new file mode 100644 index 0000000000..7f0306181c Binary files /dev/null and b/crawl-ref/source/rltiles/player/body/monk_black.bmp differ diff --git a/crawl-ref/source/rltiles/player/body/monk_blue.bmp b/crawl-ref/source/rltiles/player/body/monk_blue.bmp new file mode 100644 index 0000000000..12f9d9bb4d Binary files /dev/null and b/crawl-ref/source/rltiles/player/body/monk_blue.bmp differ diff --git a/crawl-ref/source/rltiles/player/body/neck.bmp b/crawl-ref/source/rltiles/player/body/neck.bmp new file mode 100644 index 0000000000..91b64c7785 Binary files /dev/null and b/crawl-ref/source/rltiles/player/body/neck.bmp differ diff --git a/crawl-ref/source/rltiles/player/body/pipin.bmp b/crawl-ref/source/rltiles/player/body/pipin.bmp new file mode 100644 index 0000000000..2b58fba757 Binary files /dev/null and b/crawl-ref/source/rltiles/player/body/pipin.bmp differ diff --git a/crawl-ref/source/rltiles/player/body/pj.bmp b/crawl-ref/source/rltiles/player/body/pj.bmp new file mode 100644 index 0000000000..6e3d931107 Binary files /dev/null and b/crawl-ref/source/rltiles/player/body/pj.bmp differ diff --git a/crawl-ref/source/rltiles/player/body/plate.bmp b/crawl-ref/source/rltiles/player/body/plate.bmp new file mode 100644 index 0000000000..6173c5d8ce Binary files /dev/null and b/crawl-ref/source/rltiles/player/body/plate.bmp differ diff --git a/crawl-ref/source/rltiles/player/body/plate2.bmp b/crawl-ref/source/rltiles/player/body/plate2.bmp new file mode 100644 index 0000000000..7369864cc9 Binary files /dev/null and b/crawl-ref/source/rltiles/player/body/plate2.bmp differ diff --git a/crawl-ref/source/rltiles/player/body/plate_and_cloth.bmp b/crawl-ref/source/rltiles/player/body/plate_and_cloth.bmp new file mode 100644 index 0000000000..a9df910198 Binary files /dev/null and b/crawl-ref/source/rltiles/player/body/plate_and_cloth.bmp differ diff --git a/crawl-ref/source/rltiles/player/body/plate_and_cloth2.bmp b/crawl-ref/source/rltiles/player/body/plate_and_cloth2.bmp new file mode 100644 index 0000000000..8bcec83515 Binary files /dev/null and b/crawl-ref/source/rltiles/player/body/plate_and_cloth2.bmp differ diff --git a/crawl-ref/source/rltiles/player/body/plate_black.bmp b/crawl-ref/source/rltiles/player/body/plate_black.bmp new file mode 100644 index 0000000000..16517e7f9a Binary files /dev/null and b/crawl-ref/source/rltiles/player/body/plate_black.bmp differ diff --git a/crawl-ref/source/rltiles/player/body/ringmail.bmp b/crawl-ref/source/rltiles/player/body/ringmail.bmp new file mode 100644 index 0000000000..15af5db783 Binary files /dev/null and b/crawl-ref/source/rltiles/player/body/ringmail.bmp differ diff --git a/crawl-ref/source/rltiles/player/body/robe_black.bmp b/crawl-ref/source/rltiles/player/body/robe_black.bmp new file mode 100644 index 0000000000..e963543db3 Binary files /dev/null and b/crawl-ref/source/rltiles/player/body/robe_black.bmp differ diff --git a/crawl-ref/source/rltiles/player/body/robe_black_gold.bmp b/crawl-ref/source/rltiles/player/body/robe_black_gold.bmp new file mode 100644 index 0000000000..1d12c90d46 Binary files /dev/null and b/crawl-ref/source/rltiles/player/body/robe_black_gold.bmp differ diff --git a/crawl-ref/source/rltiles/player/body/robe_black_hood.bmp b/crawl-ref/source/rltiles/player/body/robe_black_hood.bmp new file mode 100644 index 0000000000..387b2e0ed4 Binary files /dev/null and b/crawl-ref/source/rltiles/player/body/robe_black_hood.bmp differ diff --git a/crawl-ref/source/rltiles/player/body/robe_black_red.bmp b/crawl-ref/source/rltiles/player/body/robe_black_red.bmp new file mode 100644 index 0000000000..6290030879 Binary files /dev/null and b/crawl-ref/source/rltiles/player/body/robe_black_red.bmp differ diff --git a/crawl-ref/source/rltiles/player/body/robe_blue.bmp b/crawl-ref/source/rltiles/player/body/robe_blue.bmp new file mode 100644 index 0000000000..71f73d8a99 Binary files /dev/null and b/crawl-ref/source/rltiles/player/body/robe_blue.bmp differ diff --git a/crawl-ref/source/rltiles/player/body/robe_blue_green.bmp b/crawl-ref/source/rltiles/player/body/robe_blue_green.bmp new file mode 100644 index 0000000000..8881e5e7a8 Binary files /dev/null and b/crawl-ref/source/rltiles/player/body/robe_blue_green.bmp differ diff --git a/crawl-ref/source/rltiles/player/body/robe_blue_white.bmp b/crawl-ref/source/rltiles/player/body/robe_blue_white.bmp new file mode 100644 index 0000000000..efb26d8412 Binary files /dev/null and b/crawl-ref/source/rltiles/player/body/robe_blue_white.bmp differ diff --git a/crawl-ref/source/rltiles/player/body/robe_brown.bmp b/crawl-ref/source/rltiles/player/body/robe_brown.bmp new file mode 100644 index 0000000000..5f50e0f612 Binary files /dev/null and b/crawl-ref/source/rltiles/player/body/robe_brown.bmp differ diff --git a/crawl-ref/source/rltiles/player/body/robe_brown2.bmp b/crawl-ref/source/rltiles/player/body/robe_brown2.bmp new file mode 100644 index 0000000000..09f696ffa7 Binary files /dev/null and b/crawl-ref/source/rltiles/player/body/robe_brown2.bmp differ diff --git a/crawl-ref/source/rltiles/player/body/robe_brown3.bmp b/crawl-ref/source/rltiles/player/body/robe_brown3.bmp new file mode 100644 index 0000000000..059eea599a Binary files /dev/null and b/crawl-ref/source/rltiles/player/body/robe_brown3.bmp differ diff --git a/crawl-ref/source/rltiles/player/body/robe_cyan.bmp b/crawl-ref/source/rltiles/player/body/robe_cyan.bmp new file mode 100644 index 0000000000..3af1784e34 Binary files /dev/null and b/crawl-ref/source/rltiles/player/body/robe_cyan.bmp differ diff --git a/crawl-ref/source/rltiles/player/body/robe_gray2.bmp b/crawl-ref/source/rltiles/player/body/robe_gray2.bmp new file mode 100644 index 0000000000..2dd42af787 Binary files /dev/null and b/crawl-ref/source/rltiles/player/body/robe_gray2.bmp differ diff --git a/crawl-ref/source/rltiles/player/body/robe_green.bmp b/crawl-ref/source/rltiles/player/body/robe_green.bmp new file mode 100644 index 0000000000..89039b07cd Binary files /dev/null and b/crawl-ref/source/rltiles/player/body/robe_green.bmp differ diff --git a/crawl-ref/source/rltiles/player/body/robe_green_gold.bmp b/crawl-ref/source/rltiles/player/body/robe_green_gold.bmp new file mode 100644 index 0000000000..9ea774ded4 Binary files /dev/null and b/crawl-ref/source/rltiles/player/body/robe_green_gold.bmp differ diff --git a/crawl-ref/source/rltiles/player/body/robe_magenta.bmp b/crawl-ref/source/rltiles/player/body/robe_magenta.bmp new file mode 100644 index 0000000000..9a97255891 Binary files /dev/null and b/crawl-ref/source/rltiles/player/body/robe_magenta.bmp differ diff --git a/crawl-ref/source/rltiles/player/body/robe_of_night.bmp b/crawl-ref/source/rltiles/player/body/robe_of_night.bmp new file mode 100644 index 0000000000..794b4af308 Binary files /dev/null and b/crawl-ref/source/rltiles/player/body/robe_of_night.bmp differ diff --git a/crawl-ref/source/rltiles/player/body/robe_purple.bmp b/crawl-ref/source/rltiles/player/body/robe_purple.bmp new file mode 100644 index 0000000000..4fb85e5d82 Binary files /dev/null and b/crawl-ref/source/rltiles/player/body/robe_purple.bmp differ diff --git a/crawl-ref/source/rltiles/player/body/robe_rainbow.bmp b/crawl-ref/source/rltiles/player/body/robe_rainbow.bmp new file mode 100644 index 0000000000..a29d166558 Binary files /dev/null and b/crawl-ref/source/rltiles/player/body/robe_rainbow.bmp differ diff --git a/crawl-ref/source/rltiles/player/body/robe_red.bmp b/crawl-ref/source/rltiles/player/body/robe_red.bmp new file mode 100644 index 0000000000..937a89c28b Binary files /dev/null and b/crawl-ref/source/rltiles/player/body/robe_red.bmp differ diff --git a/crawl-ref/source/rltiles/player/body/robe_red2.bmp b/crawl-ref/source/rltiles/player/body/robe_red2.bmp new file mode 100644 index 0000000000..1700454aa6 Binary files /dev/null and b/crawl-ref/source/rltiles/player/body/robe_red2.bmp differ diff --git a/crawl-ref/source/rltiles/player/body/robe_red3.bmp b/crawl-ref/source/rltiles/player/body/robe_red3.bmp new file mode 100644 index 0000000000..f17f746d7a Binary files /dev/null and b/crawl-ref/source/rltiles/player/body/robe_red3.bmp differ diff --git a/crawl-ref/source/rltiles/player/body/robe_red_gold.bmp b/crawl-ref/source/rltiles/player/body/robe_red_gold.bmp new file mode 100644 index 0000000000..598d8064f4 Binary files /dev/null and b/crawl-ref/source/rltiles/player/body/robe_red_gold.bmp differ diff --git a/crawl-ref/source/rltiles/player/body/robe_white.bmp b/crawl-ref/source/rltiles/player/body/robe_white.bmp new file mode 100644 index 0000000000..d852a24ab8 Binary files /dev/null and b/crawl-ref/source/rltiles/player/body/robe_white.bmp differ diff --git a/crawl-ref/source/rltiles/player/body/robe_white2.bmp b/crawl-ref/source/rltiles/player/body/robe_white2.bmp new file mode 100644 index 0000000000..516e4180f4 Binary files /dev/null and b/crawl-ref/source/rltiles/player/body/robe_white2.bmp differ diff --git a/crawl-ref/source/rltiles/player/body/robe_white_green.bmp b/crawl-ref/source/rltiles/player/body/robe_white_green.bmp new file mode 100644 index 0000000000..0aff9835c5 Binary files /dev/null and b/crawl-ref/source/rltiles/player/body/robe_white_green.bmp differ diff --git a/crawl-ref/source/rltiles/player/body/robe_white_red.bmp b/crawl-ref/source/rltiles/player/body/robe_white_red.bmp new file mode 100644 index 0000000000..6964d92214 Binary files /dev/null and b/crawl-ref/source/rltiles/player/body/robe_white_red.bmp differ diff --git a/crawl-ref/source/rltiles/player/body/robe_yellow.bmp b/crawl-ref/source/rltiles/player/body/robe_yellow.bmp new file mode 100644 index 0000000000..1c9bf1a126 Binary files /dev/null and b/crawl-ref/source/rltiles/player/body/robe_yellow.bmp differ diff --git a/crawl-ref/source/rltiles/player/body/sailor.bmp b/crawl-ref/source/rltiles/player/body/sailor.bmp new file mode 100644 index 0000000000..a5cbc25498 Binary files /dev/null and b/crawl-ref/source/rltiles/player/body/sailor.bmp differ diff --git a/crawl-ref/source/rltiles/player/body/sam.bmp b/crawl-ref/source/rltiles/player/body/sam.bmp new file mode 100644 index 0000000000..d9f5a12777 Binary files /dev/null and b/crawl-ref/source/rltiles/player/body/sam.bmp differ diff --git a/crawl-ref/source/rltiles/player/body/saruman.bmp b/crawl-ref/source/rltiles/player/body/saruman.bmp new file mode 100644 index 0000000000..35d76f731d Binary files /dev/null and b/crawl-ref/source/rltiles/player/body/saruman.bmp differ diff --git a/crawl-ref/source/rltiles/player/body/scalemail.bmp b/crawl-ref/source/rltiles/player/body/scalemail.bmp new file mode 100644 index 0000000000..94ad900045 Binary files /dev/null and b/crawl-ref/source/rltiles/player/body/scalemail.bmp differ diff --git a/crawl-ref/source/rltiles/player/body/scalemail2.bmp b/crawl-ref/source/rltiles/player/body/scalemail2.bmp new file mode 100644 index 0000000000..c3fc82acfa Binary files /dev/null and b/crawl-ref/source/rltiles/player/body/scalemail2.bmp differ diff --git a/crawl-ref/source/rltiles/player/body/shirt_black.bmp b/crawl-ref/source/rltiles/player/body/shirt_black.bmp new file mode 100644 index 0000000000..edf5e3659e Binary files /dev/null and b/crawl-ref/source/rltiles/player/body/shirt_black.bmp differ diff --git a/crawl-ref/source/rltiles/player/body/shirt_black3.bmp b/crawl-ref/source/rltiles/player/body/shirt_black3.bmp new file mode 100644 index 0000000000..19d2efef53 Binary files /dev/null and b/crawl-ref/source/rltiles/player/body/shirt_black3.bmp differ diff --git a/crawl-ref/source/rltiles/player/body/shirt_black_and_cloth.bmp b/crawl-ref/source/rltiles/player/body/shirt_black_and_cloth.bmp new file mode 100644 index 0000000000..a418ff1783 Binary files /dev/null and b/crawl-ref/source/rltiles/player/body/shirt_black_and_cloth.bmp differ diff --git a/crawl-ref/source/rltiles/player/body/shirt_blue.bmp b/crawl-ref/source/rltiles/player/body/shirt_blue.bmp new file mode 100644 index 0000000000..06471e7887 Binary files /dev/null and b/crawl-ref/source/rltiles/player/body/shirt_blue.bmp differ diff --git a/crawl-ref/source/rltiles/player/body/shirt_check.bmp b/crawl-ref/source/rltiles/player/body/shirt_check.bmp new file mode 100644 index 0000000000..54b068690d Binary files /dev/null and b/crawl-ref/source/rltiles/player/body/shirt_check.bmp differ diff --git a/crawl-ref/source/rltiles/player/body/shirt_hawaii.bmp b/crawl-ref/source/rltiles/player/body/shirt_hawaii.bmp new file mode 100644 index 0000000000..d026115d59 Binary files /dev/null and b/crawl-ref/source/rltiles/player/body/shirt_hawaii.bmp differ diff --git a/crawl-ref/source/rltiles/player/body/shirt_vest.bmp b/crawl-ref/source/rltiles/player/body/shirt_vest.bmp new file mode 100644 index 0000000000..b9b0a467ff Binary files /dev/null and b/crawl-ref/source/rltiles/player/body/shirt_vest.bmp differ diff --git a/crawl-ref/source/rltiles/player/body/shirt_white1.bmp b/crawl-ref/source/rltiles/player/body/shirt_white1.bmp new file mode 100644 index 0000000000..a2553546de Binary files /dev/null and b/crawl-ref/source/rltiles/player/body/shirt_white1.bmp differ diff --git a/crawl-ref/source/rltiles/player/body/shirt_white2.bmp b/crawl-ref/source/rltiles/player/body/shirt_white2.bmp new file mode 100644 index 0000000000..291fe23808 Binary files /dev/null and b/crawl-ref/source/rltiles/player/body/shirt_white2.bmp differ diff --git a/crawl-ref/source/rltiles/player/body/shirt_white3.bmp b/crawl-ref/source/rltiles/player/body/shirt_white3.bmp new file mode 100644 index 0000000000..316349196d Binary files /dev/null and b/crawl-ref/source/rltiles/player/body/shirt_white3.bmp differ diff --git a/crawl-ref/source/rltiles/player/body/shirt_white_yellow.bmp b/crawl-ref/source/rltiles/player/body/shirt_white_yellow.bmp new file mode 100644 index 0000000000..8b0112a46f Binary files /dev/null and b/crawl-ref/source/rltiles/player/body/shirt_white_yellow.bmp differ diff --git a/crawl-ref/source/rltiles/player/body/shoulder_pad.bmp b/crawl-ref/source/rltiles/player/body/shoulder_pad.bmp new file mode 100644 index 0000000000..763e5bc419 Binary files /dev/null and b/crawl-ref/source/rltiles/player/body/shoulder_pad.bmp differ diff --git a/crawl-ref/source/rltiles/player/body/skirt_onep_grey.bmp b/crawl-ref/source/rltiles/player/body/skirt_onep_grey.bmp new file mode 100644 index 0000000000..c41d8f05f5 Binary files /dev/null and b/crawl-ref/source/rltiles/player/body/skirt_onep_grey.bmp differ diff --git a/crawl-ref/source/rltiles/player/body/slit_black.bmp b/crawl-ref/source/rltiles/player/body/slit_black.bmp new file mode 100644 index 0000000000..bea8c31e6d Binary files /dev/null and b/crawl-ref/source/rltiles/player/body/slit_black.bmp differ diff --git a/crawl-ref/source/rltiles/player/body/susp_black.bmp b/crawl-ref/source/rltiles/player/body/susp_black.bmp new file mode 100644 index 0000000000..717a9bc3b2 Binary files /dev/null and b/crawl-ref/source/rltiles/player/body/susp_black.bmp differ diff --git a/crawl-ref/source/rltiles/player/body/troll_hide.bmp b/crawl-ref/source/rltiles/player/body/troll_hide.bmp new file mode 100644 index 0000000000..d1f56155b1 Binary files /dev/null and b/crawl-ref/source/rltiles/player/body/troll_hide.bmp differ diff --git a/crawl-ref/source/rltiles/player/body/vanhel1.bmp b/crawl-ref/source/rltiles/player/body/vanhel1.bmp new file mode 100644 index 0000000000..0076e498fe Binary files /dev/null and b/crawl-ref/source/rltiles/player/body/vanhel1.bmp differ diff --git a/crawl-ref/source/rltiles/player/body/vest_red.bmp b/crawl-ref/source/rltiles/player/body/vest_red.bmp new file mode 100644 index 0000000000..6179a08776 Binary files /dev/null and b/crawl-ref/source/rltiles/player/body/vest_red.bmp differ diff --git a/crawl-ref/source/rltiles/player/body/vest_red2.bmp b/crawl-ref/source/rltiles/player/body/vest_red2.bmp new file mode 100644 index 0000000000..3a9d88eb65 Binary files /dev/null and b/crawl-ref/source/rltiles/player/body/vest_red2.bmp differ diff --git a/crawl-ref/source/rltiles/player/body/zhor.bmp b/crawl-ref/source/rltiles/player/body/zhor.bmp new file mode 100644 index 0000000000..5ae0830125 Binary files /dev/null and b/crawl-ref/source/rltiles/player/body/zhor.bmp differ diff --git a/crawl-ref/source/rltiles/player/boot/blue_gold.bmp b/crawl-ref/source/rltiles/player/boot/blue_gold.bmp new file mode 100644 index 0000000000..187f37f8bc Binary files /dev/null and b/crawl-ref/source/rltiles/player/boot/blue_gold.bmp differ diff --git a/crawl-ref/source/rltiles/player/boot/hooves.bmp b/crawl-ref/source/rltiles/player/boot/hooves.bmp new file mode 100644 index 0000000000..1d5ea209b9 Binary files /dev/null and b/crawl-ref/source/rltiles/player/boot/hooves.bmp differ diff --git a/crawl-ref/source/rltiles/player/boot/long_red.bmp b/crawl-ref/source/rltiles/player/boot/long_red.bmp new file mode 100644 index 0000000000..ede8b3a5b2 Binary files /dev/null and b/crawl-ref/source/rltiles/player/boot/long_red.bmp differ diff --git a/crawl-ref/source/rltiles/player/boot/long_white.bmp b/crawl-ref/source/rltiles/player/boot/long_white.bmp new file mode 100644 index 0000000000..f37f319fd4 Binary files /dev/null and b/crawl-ref/source/rltiles/player/boot/long_white.bmp differ diff --git a/crawl-ref/source/rltiles/player/boot/mesh_black.bmp b/crawl-ref/source/rltiles/player/boot/mesh_black.bmp new file mode 100644 index 0000000000..2375810d08 Binary files /dev/null and b/crawl-ref/source/rltiles/player/boot/mesh_black.bmp differ diff --git a/crawl-ref/source/rltiles/player/boot/mesh_blue.bmp b/crawl-ref/source/rltiles/player/boot/mesh_blue.bmp new file mode 100644 index 0000000000..2a3f5abc10 Binary files /dev/null and b/crawl-ref/source/rltiles/player/boot/mesh_blue.bmp differ diff --git a/crawl-ref/source/rltiles/player/boot/mesh_red.bmp b/crawl-ref/source/rltiles/player/boot/mesh_red.bmp new file mode 100644 index 0000000000..0bdadb62a0 Binary files /dev/null and b/crawl-ref/source/rltiles/player/boot/mesh_red.bmp differ diff --git a/crawl-ref/source/rltiles/player/boot/mesh_white.bmp b/crawl-ref/source/rltiles/player/boot/mesh_white.bmp new file mode 100644 index 0000000000..0248c610f5 Binary files /dev/null and b/crawl-ref/source/rltiles/player/boot/mesh_white.bmp differ diff --git a/crawl-ref/source/rltiles/player/boot/middle_brown.bmp b/crawl-ref/source/rltiles/player/boot/middle_brown.bmp new file mode 100644 index 0000000000..b3e9d30759 Binary files /dev/null and b/crawl-ref/source/rltiles/player/boot/middle_brown.bmp differ diff --git a/crawl-ref/source/rltiles/player/boot/middle_brown2.bmp b/crawl-ref/source/rltiles/player/boot/middle_brown2.bmp new file mode 100644 index 0000000000..abb7f6bffe Binary files /dev/null and b/crawl-ref/source/rltiles/player/boot/middle_brown2.bmp differ diff --git a/crawl-ref/source/rltiles/player/boot/middle_brown3.bmp b/crawl-ref/source/rltiles/player/boot/middle_brown3.bmp new file mode 100644 index 0000000000..c4c865e8e8 Binary files /dev/null and b/crawl-ref/source/rltiles/player/boot/middle_brown3.bmp differ diff --git a/crawl-ref/source/rltiles/player/boot/middle_gold.bmp b/crawl-ref/source/rltiles/player/boot/middle_gold.bmp new file mode 100644 index 0000000000..d7106489f7 Binary files /dev/null and b/crawl-ref/source/rltiles/player/boot/middle_gold.bmp differ diff --git a/crawl-ref/source/rltiles/player/boot/middle_gray.bmp b/crawl-ref/source/rltiles/player/boot/middle_gray.bmp new file mode 100644 index 0000000000..6ba47abd03 Binary files /dev/null and b/crawl-ref/source/rltiles/player/boot/middle_gray.bmp differ diff --git a/crawl-ref/source/rltiles/player/boot/middle_green.bmp b/crawl-ref/source/rltiles/player/boot/middle_green.bmp new file mode 100644 index 0000000000..0a320d44a4 Binary files /dev/null and b/crawl-ref/source/rltiles/player/boot/middle_green.bmp differ diff --git a/crawl-ref/source/rltiles/player/boot/middle_purple.bmp b/crawl-ref/source/rltiles/player/boot/middle_purple.bmp new file mode 100644 index 0000000000..05734ace63 Binary files /dev/null and b/crawl-ref/source/rltiles/player/boot/middle_purple.bmp differ diff --git a/crawl-ref/source/rltiles/player/boot/middle_ybrown.bmp b/crawl-ref/source/rltiles/player/boot/middle_ybrown.bmp new file mode 100644 index 0000000000..5e864c307d Binary files /dev/null and b/crawl-ref/source/rltiles/player/boot/middle_ybrown.bmp differ diff --git a/crawl-ref/source/rltiles/player/boot/pj.bmp b/crawl-ref/source/rltiles/player/boot/pj.bmp new file mode 100644 index 0000000000..981e34db13 Binary files /dev/null and b/crawl-ref/source/rltiles/player/boot/pj.bmp differ diff --git a/crawl-ref/source/rltiles/player/boot/short_brown.bmp b/crawl-ref/source/rltiles/player/boot/short_brown.bmp new file mode 100644 index 0000000000..f1307b398d Binary files /dev/null and b/crawl-ref/source/rltiles/player/boot/short_brown.bmp differ diff --git a/crawl-ref/source/rltiles/player/boot/short_brown2.bmp b/crawl-ref/source/rltiles/player/boot/short_brown2.bmp new file mode 100644 index 0000000000..29d23d12a8 Binary files /dev/null and b/crawl-ref/source/rltiles/player/boot/short_brown2.bmp differ diff --git a/crawl-ref/source/rltiles/player/boot/short_purple.bmp b/crawl-ref/source/rltiles/player/boot/short_purple.bmp new file mode 100644 index 0000000000..c7d1a0d5cd Binary files /dev/null and b/crawl-ref/source/rltiles/player/boot/short_purple.bmp differ diff --git a/crawl-ref/source/rltiles/player/boot/short_red.bmp b/crawl-ref/source/rltiles/player/boot/short_red.bmp new file mode 100644 index 0000000000..1f3fff1e34 Binary files /dev/null and b/crawl-ref/source/rltiles/player/boot/short_red.bmp differ diff --git a/crawl-ref/source/rltiles/player/cloak/black.bmp b/crawl-ref/source/rltiles/player/cloak/black.bmp new file mode 100644 index 0000000000..f4025f01fb Binary files /dev/null and b/crawl-ref/source/rltiles/player/cloak/black.bmp differ diff --git a/crawl-ref/source/rltiles/player/cloak/blue.bmp b/crawl-ref/source/rltiles/player/cloak/blue.bmp new file mode 100644 index 0000000000..43a94a6a7c Binary files /dev/null and b/crawl-ref/source/rltiles/player/cloak/blue.bmp differ diff --git a/crawl-ref/source/rltiles/player/cloak/brown.bmp b/crawl-ref/source/rltiles/player/cloak/brown.bmp new file mode 100644 index 0000000000..54bf504da0 Binary files /dev/null and b/crawl-ref/source/rltiles/player/cloak/brown.bmp differ diff --git a/crawl-ref/source/rltiles/player/cloak/cyan.bmp b/crawl-ref/source/rltiles/player/cloak/cyan.bmp new file mode 100644 index 0000000000..e0cc801af4 Binary files /dev/null and b/crawl-ref/source/rltiles/player/cloak/cyan.bmp differ diff --git a/crawl-ref/source/rltiles/player/cloak/gray.bmp b/crawl-ref/source/rltiles/player/cloak/gray.bmp new file mode 100644 index 0000000000..2bb296dc19 Binary files /dev/null and b/crawl-ref/source/rltiles/player/cloak/gray.bmp differ diff --git a/crawl-ref/source/rltiles/player/cloak/green.bmp b/crawl-ref/source/rltiles/player/cloak/green.bmp new file mode 100644 index 0000000000..e84c5a4b5a Binary files /dev/null and b/crawl-ref/source/rltiles/player/cloak/green.bmp differ diff --git a/crawl-ref/source/rltiles/player/cloak/magenta.bmp b/crawl-ref/source/rltiles/player/cloak/magenta.bmp new file mode 100644 index 0000000000..7f4a9c80e3 Binary files /dev/null and b/crawl-ref/source/rltiles/player/cloak/magenta.bmp differ diff --git a/crawl-ref/source/rltiles/player/cloak/red.bmp b/crawl-ref/source/rltiles/player/cloak/red.bmp new file mode 100644 index 0000000000..60992574ff Binary files /dev/null and b/crawl-ref/source/rltiles/player/cloak/red.bmp differ diff --git a/crawl-ref/source/rltiles/player/cloak/white.bmp b/crawl-ref/source/rltiles/player/cloak/white.bmp new file mode 100644 index 0000000000..728e3ca04b Binary files /dev/null and b/crawl-ref/source/rltiles/player/cloak/white.bmp differ diff --git a/crawl-ref/source/rltiles/player/cloak/yellow.bmp b/crawl-ref/source/rltiles/player/cloak/yellow.bmp new file mode 100644 index 0000000000..5921ac45d8 Binary files /dev/null and b/crawl-ref/source/rltiles/player/cloak/yellow.bmp differ diff --git a/crawl-ref/source/rltiles/player/drchead/drchead_black.bmp b/crawl-ref/source/rltiles/player/drchead/drchead_black.bmp new file mode 100644 index 0000000000..2d1cea7bcb Binary files /dev/null and b/crawl-ref/source/rltiles/player/drchead/drchead_black.bmp differ diff --git a/crawl-ref/source/rltiles/player/drchead/drchead_brown.bmp b/crawl-ref/source/rltiles/player/drchead/drchead_brown.bmp new file mode 100644 index 0000000000..142630bb53 Binary files /dev/null and b/crawl-ref/source/rltiles/player/drchead/drchead_brown.bmp differ diff --git a/crawl-ref/source/rltiles/player/drchead/drchead_green.bmp b/crawl-ref/source/rltiles/player/drchead/drchead_green.bmp new file mode 100644 index 0000000000..112b55cd5a Binary files /dev/null and b/crawl-ref/source/rltiles/player/drchead/drchead_green.bmp differ diff --git a/crawl-ref/source/rltiles/player/drchead/drchead_grey.bmp b/crawl-ref/source/rltiles/player/drchead/drchead_grey.bmp new file mode 100644 index 0000000000..e187d15dbc Binary files /dev/null and b/crawl-ref/source/rltiles/player/drchead/drchead_grey.bmp differ diff --git a/crawl-ref/source/rltiles/player/drchead/drchead_mottled.bmp b/crawl-ref/source/rltiles/player/drchead/drchead_mottled.bmp new file mode 100644 index 0000000000..d7fccc3a8d Binary files /dev/null and b/crawl-ref/source/rltiles/player/drchead/drchead_mottled.bmp differ diff --git a/crawl-ref/source/rltiles/player/drchead/drchead_pale.bmp b/crawl-ref/source/rltiles/player/drchead/drchead_pale.bmp new file mode 100644 index 0000000000..99e28a5a05 Binary files /dev/null and b/crawl-ref/source/rltiles/player/drchead/drchead_pale.bmp differ diff --git a/crawl-ref/source/rltiles/player/drchead/drchead_purple.bmp b/crawl-ref/source/rltiles/player/drchead/drchead_purple.bmp new file mode 100644 index 0000000000..42b9e1cd2d Binary files /dev/null and b/crawl-ref/source/rltiles/player/drchead/drchead_purple.bmp differ diff --git a/crawl-ref/source/rltiles/player/drchead/drchead_red.bmp b/crawl-ref/source/rltiles/player/drchead/drchead_red.bmp new file mode 100644 index 0000000000..c723c5b8a6 Binary files /dev/null and b/crawl-ref/source/rltiles/player/drchead/drchead_red.bmp differ diff --git a/crawl-ref/source/rltiles/player/drchead/drchead_white.bmp b/crawl-ref/source/rltiles/player/drchead/drchead_white.bmp new file mode 100644 index 0000000000..9118ba8ea5 Binary files /dev/null and b/crawl-ref/source/rltiles/player/drchead/drchead_white.bmp differ diff --git a/crawl-ref/source/rltiles/player/drchead/drchead_yellow.bmp b/crawl-ref/source/rltiles/player/drchead/drchead_yellow.bmp new file mode 100644 index 0000000000..1a0a3f3c42 Binary files /dev/null and b/crawl-ref/source/rltiles/player/drchead/drchead_yellow.bmp differ diff --git a/crawl-ref/source/rltiles/player/drcwing/drcwing_black.bmp b/crawl-ref/source/rltiles/player/drcwing/drcwing_black.bmp new file mode 100644 index 0000000000..752bb39060 Binary files /dev/null and b/crawl-ref/source/rltiles/player/drcwing/drcwing_black.bmp differ diff --git a/crawl-ref/source/rltiles/player/drcwing/drcwing_brown.bmp b/crawl-ref/source/rltiles/player/drcwing/drcwing_brown.bmp new file mode 100644 index 0000000000..b5e0c2e842 Binary files /dev/null and b/crawl-ref/source/rltiles/player/drcwing/drcwing_brown.bmp differ diff --git a/crawl-ref/source/rltiles/player/drcwing/drcwing_green.bmp b/crawl-ref/source/rltiles/player/drcwing/drcwing_green.bmp new file mode 100644 index 0000000000..1aea3d14e9 Binary files /dev/null and b/crawl-ref/source/rltiles/player/drcwing/drcwing_green.bmp differ diff --git a/crawl-ref/source/rltiles/player/drcwing/drcwing_grey.bmp b/crawl-ref/source/rltiles/player/drcwing/drcwing_grey.bmp new file mode 100644 index 0000000000..65b30ca75c Binary files /dev/null and b/crawl-ref/source/rltiles/player/drcwing/drcwing_grey.bmp differ diff --git a/crawl-ref/source/rltiles/player/drcwing/drcwing_mottled.bmp b/crawl-ref/source/rltiles/player/drcwing/drcwing_mottled.bmp new file mode 100644 index 0000000000..3d77fa47cd Binary files /dev/null and b/crawl-ref/source/rltiles/player/drcwing/drcwing_mottled.bmp differ diff --git a/crawl-ref/source/rltiles/player/drcwing/drcwing_pale.bmp b/crawl-ref/source/rltiles/player/drcwing/drcwing_pale.bmp new file mode 100644 index 0000000000..5be6b47be4 Binary files /dev/null and b/crawl-ref/source/rltiles/player/drcwing/drcwing_pale.bmp differ diff --git a/crawl-ref/source/rltiles/player/drcwing/drcwing_purple.bmp b/crawl-ref/source/rltiles/player/drcwing/drcwing_purple.bmp new file mode 100644 index 0000000000..088b0be481 Binary files /dev/null and b/crawl-ref/source/rltiles/player/drcwing/drcwing_purple.bmp differ diff --git a/crawl-ref/source/rltiles/player/drcwing/drcwing_red.bmp b/crawl-ref/source/rltiles/player/drcwing/drcwing_red.bmp new file mode 100644 index 0000000000..02b76d9ff3 Binary files /dev/null and b/crawl-ref/source/rltiles/player/drcwing/drcwing_red.bmp differ diff --git a/crawl-ref/source/rltiles/player/drcwing/drcwing_white.bmp b/crawl-ref/source/rltiles/player/drcwing/drcwing_white.bmp new file mode 100644 index 0000000000..6e0ec2c7ee Binary files /dev/null and b/crawl-ref/source/rltiles/player/drcwing/drcwing_white.bmp differ diff --git a/crawl-ref/source/rltiles/player/drcwing/drcwing_yellow.bmp b/crawl-ref/source/rltiles/player/drcwing/drcwing_yellow.bmp new file mode 100644 index 0000000000..a64af7eeb0 Binary files /dev/null and b/crawl-ref/source/rltiles/player/drcwing/drcwing_yellow.bmp differ diff --git a/crawl-ref/source/rltiles/player/hair/aragorn.bmp b/crawl-ref/source/rltiles/player/hair/aragorn.bmp new file mode 100644 index 0000000000..8857b864fc Binary files /dev/null and b/crawl-ref/source/rltiles/player/hair/aragorn.bmp differ diff --git a/crawl-ref/source/rltiles/player/hair/arwen.bmp b/crawl-ref/source/rltiles/player/hair/arwen.bmp new file mode 100644 index 0000000000..b423a3b264 Binary files /dev/null and b/crawl-ref/source/rltiles/player/hair/arwen.bmp differ diff --git a/crawl-ref/source/rltiles/player/hair/boromir.bmp b/crawl-ref/source/rltiles/player/hair/boromir.bmp new file mode 100644 index 0000000000..cb0591177b Binary files /dev/null and b/crawl-ref/source/rltiles/player/hair/boromir.bmp differ diff --git a/crawl-ref/source/rltiles/player/hair/brown1.bmp b/crawl-ref/source/rltiles/player/hair/brown1.bmp new file mode 100644 index 0000000000..774496f8ab Binary files /dev/null and b/crawl-ref/source/rltiles/player/hair/brown1.bmp differ diff --git a/crawl-ref/source/rltiles/player/hair/brown2.bmp b/crawl-ref/source/rltiles/player/hair/brown2.bmp new file mode 100644 index 0000000000..8a1fd18484 Binary files /dev/null and b/crawl-ref/source/rltiles/player/hair/brown2.bmp differ diff --git a/crawl-ref/source/rltiles/player/hair/elf_black.bmp b/crawl-ref/source/rltiles/player/hair/elf_black.bmp new file mode 100644 index 0000000000..a95893857e Binary files /dev/null and b/crawl-ref/source/rltiles/player/hair/elf_black.bmp differ diff --git a/crawl-ref/source/rltiles/player/hair/elf_red.bmp b/crawl-ref/source/rltiles/player/hair/elf_red.bmp new file mode 100644 index 0000000000..817cfa21c1 Binary files /dev/null and b/crawl-ref/source/rltiles/player/hair/elf_red.bmp differ diff --git a/crawl-ref/source/rltiles/player/hair/elf_white.bmp b/crawl-ref/source/rltiles/player/hair/elf_white.bmp new file mode 100644 index 0000000000..4ad40ab869 Binary files /dev/null and b/crawl-ref/source/rltiles/player/hair/elf_white.bmp differ diff --git a/crawl-ref/source/rltiles/player/hair/elf_yellow.bmp b/crawl-ref/source/rltiles/player/hair/elf_yellow.bmp new file mode 100644 index 0000000000..c576d06e84 Binary files /dev/null and b/crawl-ref/source/rltiles/player/hair/elf_yellow.bmp differ diff --git a/crawl-ref/source/rltiles/player/hair/fem_black.bmp b/crawl-ref/source/rltiles/player/hair/fem_black.bmp new file mode 100644 index 0000000000..d9b9d8d746 Binary files /dev/null and b/crawl-ref/source/rltiles/player/hair/fem_black.bmp differ diff --git a/crawl-ref/source/rltiles/player/hair/fem_red.bmp b/crawl-ref/source/rltiles/player/hair/fem_red.bmp new file mode 100644 index 0000000000..0df2c1c4b8 Binary files /dev/null and b/crawl-ref/source/rltiles/player/hair/fem_red.bmp differ diff --git a/crawl-ref/source/rltiles/player/hair/fem_white.bmp b/crawl-ref/source/rltiles/player/hair/fem_white.bmp new file mode 100644 index 0000000000..56d42f0e1f Binary files /dev/null and b/crawl-ref/source/rltiles/player/hair/fem_white.bmp differ diff --git a/crawl-ref/source/rltiles/player/hair/fem_yellow.bmp b/crawl-ref/source/rltiles/player/hair/fem_yellow.bmp new file mode 100644 index 0000000000..d511c52367 Binary files /dev/null and b/crawl-ref/source/rltiles/player/hair/fem_yellow.bmp differ diff --git a/crawl-ref/source/rltiles/player/hair/frodo.bmp b/crawl-ref/source/rltiles/player/hair/frodo.bmp new file mode 100644 index 0000000000..44f2fab628 Binary files /dev/null and b/crawl-ref/source/rltiles/player/hair/frodo.bmp differ diff --git a/crawl-ref/source/rltiles/player/hair/legolas.bmp b/crawl-ref/source/rltiles/player/hair/legolas.bmp new file mode 100644 index 0000000000..1ff4ef7d46 Binary files /dev/null and b/crawl-ref/source/rltiles/player/hair/legolas.bmp differ diff --git a/crawl-ref/source/rltiles/player/hair/long_black.bmp b/crawl-ref/source/rltiles/player/hair/long_black.bmp new file mode 100644 index 0000000000..76361c81a9 Binary files /dev/null and b/crawl-ref/source/rltiles/player/hair/long_black.bmp differ diff --git a/crawl-ref/source/rltiles/player/hair/long_red.bmp b/crawl-ref/source/rltiles/player/hair/long_red.bmp new file mode 100644 index 0000000000..82017079bb Binary files /dev/null and b/crawl-ref/source/rltiles/player/hair/long_red.bmp differ diff --git a/crawl-ref/source/rltiles/player/hair/long_white.bmp b/crawl-ref/source/rltiles/player/hair/long_white.bmp new file mode 100644 index 0000000000..ae710aef83 Binary files /dev/null and b/crawl-ref/source/rltiles/player/hair/long_white.bmp differ diff --git a/crawl-ref/source/rltiles/player/hair/long_yellow.bmp b/crawl-ref/source/rltiles/player/hair/long_yellow.bmp new file mode 100644 index 0000000000..6beb4f7418 Binary files /dev/null and b/crawl-ref/source/rltiles/player/hair/long_yellow.bmp differ diff --git a/crawl-ref/source/rltiles/player/hair/merry.bmp b/crawl-ref/source/rltiles/player/hair/merry.bmp new file mode 100644 index 0000000000..cbb7b10067 Binary files /dev/null and b/crawl-ref/source/rltiles/player/hair/merry.bmp differ diff --git a/crawl-ref/source/rltiles/player/hair/pigtail_red.bmp b/crawl-ref/source/rltiles/player/hair/pigtail_red.bmp new file mode 100644 index 0000000000..fd2d672090 Binary files /dev/null and b/crawl-ref/source/rltiles/player/hair/pigtail_red.bmp differ diff --git a/crawl-ref/source/rltiles/player/hair/pj.bmp b/crawl-ref/source/rltiles/player/hair/pj.bmp new file mode 100644 index 0000000000..32cfcdae94 Binary files /dev/null and b/crawl-ref/source/rltiles/player/hair/pj.bmp differ diff --git a/crawl-ref/source/rltiles/player/hair/sam.bmp b/crawl-ref/source/rltiles/player/hair/sam.bmp new file mode 100644 index 0000000000..86da884c39 Binary files /dev/null and b/crawl-ref/source/rltiles/player/hair/sam.bmp differ diff --git a/crawl-ref/source/rltiles/player/hair/short_black.bmp b/crawl-ref/source/rltiles/player/hair/short_black.bmp new file mode 100644 index 0000000000..ceb91de163 Binary files /dev/null and b/crawl-ref/source/rltiles/player/hair/short_black.bmp differ diff --git a/crawl-ref/source/rltiles/player/hair/short_red.bmp b/crawl-ref/source/rltiles/player/hair/short_red.bmp new file mode 100644 index 0000000000..17fe56098f Binary files /dev/null and b/crawl-ref/source/rltiles/player/hair/short_red.bmp differ diff --git a/crawl-ref/source/rltiles/player/hair/short_white.bmp b/crawl-ref/source/rltiles/player/hair/short_white.bmp new file mode 100644 index 0000000000..f71fb2e5a3 Binary files /dev/null and b/crawl-ref/source/rltiles/player/hair/short_white.bmp differ diff --git a/crawl-ref/source/rltiles/player/hair/short_yellow.bmp b/crawl-ref/source/rltiles/player/hair/short_yellow.bmp new file mode 100644 index 0000000000..69e2d07c83 Binary files /dev/null and b/crawl-ref/source/rltiles/player/hair/short_yellow.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/aragorn.bmp b/crawl-ref/source/rltiles/player/hand1/aragorn.bmp new file mode 100644 index 0000000000..31b760e6fd Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/aragorn.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/arga.bmp b/crawl-ref/source/rltiles/player/hand1/arga.bmp new file mode 100644 index 0000000000..8d22d740d4 Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/arga.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/arwen.bmp b/crawl-ref/source/rltiles/player/hand1/arwen.bmp new file mode 100644 index 0000000000..a0f331ccac Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/arwen.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/asmodeus.bmp b/crawl-ref/source/rltiles/player/hand1/asmodeus.bmp new file mode 100644 index 0000000000..cc14434850 Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/asmodeus.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/axe.bmp b/crawl-ref/source/rltiles/player/hand1/axe.bmp new file mode 100644 index 0000000000..1a6369b325 Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/axe.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/axe2.bmp b/crawl-ref/source/rltiles/player/hand1/axe2.bmp new file mode 100644 index 0000000000..6cbc70f771 Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/axe2.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/axe_blood.bmp b/crawl-ref/source/rltiles/player/hand1/axe_blood.bmp new file mode 100644 index 0000000000..8d8273d26d Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/axe_blood.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/axe_double.bmp b/crawl-ref/source/rltiles/player/hand1/axe_double.bmp new file mode 100644 index 0000000000..d2ec010f11 Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/axe_double.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/axe_executioner.bmp b/crawl-ref/source/rltiles/player/hand1/axe_executioner.bmp new file mode 100644 index 0000000000..e6e6abcc0b Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/axe_executioner.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/axe_short.bmp b/crawl-ref/source/rltiles/player/hand1/axe_short.bmp new file mode 100644 index 0000000000..847a14ba85 Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/axe_short.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/axe_small.bmp b/crawl-ref/source/rltiles/player/hand1/axe_small.bmp new file mode 100644 index 0000000000..36e5add571 Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/axe_small.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/axe_trog.bmp b/crawl-ref/source/rltiles/player/hand1/axe_trog.bmp new file mode 100644 index 0000000000..b77a97048a Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/axe_trog.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/black_sword.bmp b/crawl-ref/source/rltiles/player/hand1/black_sword.bmp new file mode 100644 index 0000000000..802ae4832d Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/black_sword.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/black_whip.bmp b/crawl-ref/source/rltiles/player/hand1/black_whip.bmp new file mode 100644 index 0000000000..8a711aff58 Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/black_whip.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/bladehands.bmp b/crawl-ref/source/rltiles/player/hand1/bladehands.bmp new file mode 100644 index 0000000000..4683aea8d0 Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/bladehands.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/blessed_blade.bmp b/crawl-ref/source/rltiles/player/hand1/blessed_blade.bmp new file mode 100644 index 0000000000..17d1d71e41 Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/blessed_blade.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/bloodbane.bmp b/crawl-ref/source/rltiles/player/hand1/bloodbane.bmp new file mode 100644 index 0000000000..aa6ecc2462 Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/bloodbane.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/blowgun.bmp b/crawl-ref/source/rltiles/player/hand1/blowgun.bmp new file mode 100644 index 0000000000..d993f51243 Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/blowgun.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/bone_lantern.bmp b/crawl-ref/source/rltiles/player/hand1/bone_lantern.bmp new file mode 100644 index 0000000000..106da0c8bf Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/bone_lantern.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/boromir.bmp b/crawl-ref/source/rltiles/player/hand1/boromir.bmp new file mode 100644 index 0000000000..a1d30e96eb Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/boromir.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/bottle.bmp b/crawl-ref/source/rltiles/player/hand1/bottle.bmp new file mode 100644 index 0000000000..e778a8dd22 Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/bottle.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/bow.bmp b/crawl-ref/source/rltiles/player/hand1/bow.bmp new file mode 100644 index 0000000000..3e08d9a41e Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/bow.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/bow2.bmp b/crawl-ref/source/rltiles/player/hand1/bow2.bmp new file mode 100644 index 0000000000..e7cb731fae Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/bow2.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/bow3.bmp b/crawl-ref/source/rltiles/player/hand1/bow3.bmp new file mode 100644 index 0000000000..ad9047838d Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/bow3.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/bow_blue.bmp b/crawl-ref/source/rltiles/player/hand1/bow_blue.bmp new file mode 100644 index 0000000000..689ae5e98b Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/bow_blue.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/box.bmp b/crawl-ref/source/rltiles/player/hand1/box.bmp new file mode 100644 index 0000000000..9b57423b63 Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/box.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/broadsword.bmp b/crawl-ref/source/rltiles/player/hand1/broadsword.bmp new file mode 100644 index 0000000000..7a43c9f9ee Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/broadsword.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/chilly_death.bmp b/crawl-ref/source/rltiles/player/hand1/chilly_death.bmp new file mode 100644 index 0000000000..a1de54ad69 Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/chilly_death.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/club.bmp b/crawl-ref/source/rltiles/player/hand1/club.bmp new file mode 100644 index 0000000000..f5f314bef9 Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/club.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/club2.bmp b/crawl-ref/source/rltiles/player/hand1/club2.bmp new file mode 100644 index 0000000000..d648cc770c Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/club2.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/club3.bmp b/crawl-ref/source/rltiles/player/hand1/club3.bmp new file mode 100644 index 0000000000..9f5f18d6e0 Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/club3.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/club_slant.bmp b/crawl-ref/source/rltiles/player/hand1/club_slant.bmp new file mode 100644 index 0000000000..f027117eae Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/club_slant.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/crossbow.bmp b/crawl-ref/source/rltiles/player/hand1/crossbow.bmp new file mode 100644 index 0000000000..baa9267591 Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/crossbow.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/crossbow2.bmp b/crawl-ref/source/rltiles/player/hand1/crossbow2.bmp new file mode 100644 index 0000000000..73b4ca86e1 Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/crossbow2.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/crossbow3.bmp b/crawl-ref/source/rltiles/player/hand1/crossbow3.bmp new file mode 100644 index 0000000000..391496ecc2 Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/crossbow3.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/crossbow4.bmp b/crawl-ref/source/rltiles/player/hand1/crossbow4.bmp new file mode 100644 index 0000000000..42c8297a3d Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/crossbow4.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/crossbow_fire.bmp b/crawl-ref/source/rltiles/player/hand1/crossbow_fire.bmp new file mode 100644 index 0000000000..e941fc7e43 Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/crossbow_fire.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/crystal.bmp b/crawl-ref/source/rltiles/player/hand1/crystal.bmp new file mode 100644 index 0000000000..332b2727ae Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/crystal.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/d_glaive.bmp b/crawl-ref/source/rltiles/player/hand1/d_glaive.bmp new file mode 100644 index 0000000000..70ada67598 Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/d_glaive.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/dagger.bmp b/crawl-ref/source/rltiles/player/hand1/dagger.bmp new file mode 100644 index 0000000000..2149bf051b Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/dagger.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/dagger_slant.bmp b/crawl-ref/source/rltiles/player/hand1/dagger_slant.bmp new file mode 100644 index 0000000000..8c8f053ccb Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/dagger_slant.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/deck.bmp b/crawl-ref/source/rltiles/player/hand1/deck.bmp new file mode 100644 index 0000000000..90eb3092e2 Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/deck.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/dirt.bmp b/crawl-ref/source/rltiles/player/hand1/dirt.bmp new file mode 100644 index 0000000000..ed06024ecd Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/dirt.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/disc.bmp b/crawl-ref/source/rltiles/player/hand1/disc.bmp new file mode 100644 index 0000000000..4896caa348 Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/disc.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/dispater.bmp b/crawl-ref/source/rltiles/player/hand1/dispater.bmp new file mode 100644 index 0000000000..3897d1c7fc Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/dispater.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/doom_knight.bmp b/crawl-ref/source/rltiles/player/hand1/doom_knight.bmp new file mode 100644 index 0000000000..3011ee19bb Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/doom_knight.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/double_sword.bmp b/crawl-ref/source/rltiles/player/hand1/double_sword.bmp new file mode 100644 index 0000000000..3b1288753d Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/double_sword.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/elemental_staff.bmp b/crawl-ref/source/rltiles/player/hand1/elemental_staff.bmp new file mode 100644 index 0000000000..7e514b0ac1 Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/elemental_staff.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/eveningstar.bmp b/crawl-ref/source/rltiles/player/hand1/eveningstar.bmp new file mode 100644 index 0000000000..fc54dd354c Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/eveningstar.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/falchion.bmp b/crawl-ref/source/rltiles/player/hand1/falchion.bmp new file mode 100644 index 0000000000..092aead106 Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/falchion.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/fan.bmp b/crawl-ref/source/rltiles/player/hand1/fan.bmp new file mode 100644 index 0000000000..faa985e75a Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/fan.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/finisher.bmp b/crawl-ref/source/rltiles/player/hand1/finisher.bmp new file mode 100644 index 0000000000..cd3b96060d Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/finisher.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/fire_blue.bmp b/crawl-ref/source/rltiles/player/hand1/fire_blue.bmp new file mode 100644 index 0000000000..fb748c5259 Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/fire_blue.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/fire_cyan.bmp b/crawl-ref/source/rltiles/player/hand1/fire_cyan.bmp new file mode 100644 index 0000000000..e2e99da270 Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/fire_cyan.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/fire_dark.bmp b/crawl-ref/source/rltiles/player/hand1/fire_dark.bmp new file mode 100644 index 0000000000..2f0b04dbce Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/fire_dark.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/fire_green.bmp b/crawl-ref/source/rltiles/player/hand1/fire_green.bmp new file mode 100644 index 0000000000..d4d622366e Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/fire_green.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/fire_red.bmp b/crawl-ref/source/rltiles/player/hand1/fire_red.bmp new file mode 100644 index 0000000000..0c1b40d3c1 Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/fire_red.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/fire_white.bmp b/crawl-ref/source/rltiles/player/hand1/fire_white.bmp new file mode 100644 index 0000000000..8d76b8cbff Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/fire_white.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/fire_white2.bmp b/crawl-ref/source/rltiles/player/hand1/fire_white2.bmp new file mode 100644 index 0000000000..3d4f7e10d4 Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/fire_white2.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/flaming_death.bmp b/crawl-ref/source/rltiles/player/hand1/flaming_death.bmp new file mode 100644 index 0000000000..832a437ac7 Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/flaming_death.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/fork2.bmp b/crawl-ref/source/rltiles/player/hand1/fork2.bmp new file mode 100644 index 0000000000..03d14bd540 Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/fork2.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/frail_ball.bmp b/crawl-ref/source/rltiles/player/hand1/frail_ball.bmp new file mode 100644 index 0000000000..eec4dc26d7 Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/frail_ball.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/frail_ball2.bmp b/crawl-ref/source/rltiles/player/hand1/frail_ball2.bmp new file mode 100644 index 0000000000..6e27d750c9 Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/frail_ball2.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/frail_ball3.bmp b/crawl-ref/source/rltiles/player/hand1/frail_ball3.bmp new file mode 100644 index 0000000000..4c5418e5a6 Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/frail_ball3.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/frail_ball4.bmp b/crawl-ref/source/rltiles/player/hand1/frail_ball4.bmp new file mode 100644 index 0000000000..d315221f84 Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/frail_ball4.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/frail_balls.bmp b/crawl-ref/source/rltiles/player/hand1/frail_balls.bmp new file mode 100644 index 0000000000..d5e1cd639c Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/frail_balls.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/frail_spike.bmp b/crawl-ref/source/rltiles/player/hand1/frail_spike.bmp new file mode 100644 index 0000000000..43e7b25de5 Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/frail_spike.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/frail_stick.bmp b/crawl-ref/source/rltiles/player/hand1/frail_stick.bmp new file mode 100644 index 0000000000..58e7a386ea Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/frail_stick.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/frail_stick_slant.bmp b/crawl-ref/source/rltiles/player/hand1/frail_stick_slant.bmp new file mode 100644 index 0000000000..7250ebbaf3 Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/frail_stick_slant.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/frodo.bmp b/crawl-ref/source/rltiles/player/hand1/frodo.bmp new file mode 100644 index 0000000000..fe892cf825 Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/frodo.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/gandalf.bmp b/crawl-ref/source/rltiles/player/hand1/gandalf.bmp new file mode 100644 index 0000000000..0db580552d Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/gandalf.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/giant_club.bmp b/crawl-ref/source/rltiles/player/hand1/giant_club.bmp new file mode 100644 index 0000000000..85d80d03e0 Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/giant_club.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/giant_club_slant.bmp b/crawl-ref/source/rltiles/player/hand1/giant_club_slant.bmp new file mode 100644 index 0000000000..f0f5c00dea Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/giant_club_slant.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/giant_club_spike.bmp b/crawl-ref/source/rltiles/player/hand1/giant_club_spike.bmp new file mode 100644 index 0000000000..c10497a739 Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/giant_club_spike.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/giant_club_spike_slant.bmp b/crawl-ref/source/rltiles/player/hand1/giant_club_spike_slant.bmp new file mode 100644 index 0000000000..7071e276b7 Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/giant_club_spike_slant.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/gimli.bmp b/crawl-ref/source/rltiles/player/hand1/gimli.bmp new file mode 100644 index 0000000000..c066a21cb1 Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/gimli.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/glaive.bmp b/crawl-ref/source/rltiles/player/hand1/glaive.bmp new file mode 100644 index 0000000000..54d95b46b4 Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/glaive.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/glaive2.bmp b/crawl-ref/source/rltiles/player/hand1/glaive2.bmp new file mode 100644 index 0000000000..ed6e9cd8ab Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/glaive2.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/glaive3.bmp b/crawl-ref/source/rltiles/player/hand1/glaive3.bmp new file mode 100644 index 0000000000..2a0e96d684 Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/glaive3.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/glaive_of_prune.bmp b/crawl-ref/source/rltiles/player/hand1/glaive_of_prune.bmp new file mode 100644 index 0000000000..657674944a Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/glaive_of_prune.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/great_axe.bmp b/crawl-ref/source/rltiles/player/hand1/great_axe.bmp new file mode 100644 index 0000000000..71d25ae925 Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/great_axe.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/great_bow.bmp b/crawl-ref/source/rltiles/player/hand1/great_bow.bmp new file mode 100644 index 0000000000..864032dfb3 Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/great_bow.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/great_staff.bmp b/crawl-ref/source/rltiles/player/hand1/great_staff.bmp new file mode 100644 index 0000000000..1b70ab8aff Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/great_staff.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/great_sword.bmp b/crawl-ref/source/rltiles/player/hand1/great_sword.bmp new file mode 100644 index 0000000000..f61b35b388 Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/great_sword.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/great_sword_slant.bmp b/crawl-ref/source/rltiles/player/hand1/great_sword_slant.bmp new file mode 100644 index 0000000000..10a487b199 Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/great_sword_slant.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/halberd.bmp b/crawl-ref/source/rltiles/player/hand1/halberd.bmp new file mode 100644 index 0000000000..ace15df44d Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/halberd.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/hammer.bmp b/crawl-ref/source/rltiles/player/hand1/hammer.bmp new file mode 100644 index 0000000000..b4970b961f Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/hammer.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/hammer2.bmp b/crawl-ref/source/rltiles/player/hand1/hammer2.bmp new file mode 100644 index 0000000000..5343561be0 Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/hammer2.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/hammer3.bmp b/crawl-ref/source/rltiles/player/hand1/hammer3.bmp new file mode 100644 index 0000000000..53a1823530 Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/hammer3.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/hand_axe.bmp b/crawl-ref/source/rltiles/player/hand1/hand_axe.bmp new file mode 100644 index 0000000000..caa736fe4a Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/hand_axe.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/head.bmp b/crawl-ref/source/rltiles/player/hand1/head.bmp new file mode 100644 index 0000000000..53a1d28007 Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/head.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/heavy_sword.bmp b/crawl-ref/source/rltiles/player/hand1/heavy_sword.bmp new file mode 100644 index 0000000000..41cb2326c5 Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/heavy_sword.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/hook.bmp b/crawl-ref/source/rltiles/player/hand1/hook.bmp new file mode 100644 index 0000000000..0640e5e245 Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/hook.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/horn.bmp b/crawl-ref/source/rltiles/player/hand1/horn.bmp new file mode 100644 index 0000000000..de347bf1f3 Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/horn.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/jihad.bmp b/crawl-ref/source/rltiles/player/hand1/jihad.bmp new file mode 100644 index 0000000000..5975701046 Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/jihad.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/katana.bmp b/crawl-ref/source/rltiles/player/hand1/katana.bmp new file mode 100644 index 0000000000..01d58f804c Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/katana.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/katana_slant.bmp b/crawl-ref/source/rltiles/player/hand1/katana_slant.bmp new file mode 100644 index 0000000000..550e95d5c1 Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/katana_slant.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/knife.bmp b/crawl-ref/source/rltiles/player/hand1/knife.bmp new file mode 100644 index 0000000000..6a45591815 Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/knife.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/krishna.bmp b/crawl-ref/source/rltiles/player/hand1/krishna.bmp new file mode 100644 index 0000000000..53a342f3b4 Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/krishna.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/lance.bmp b/crawl-ref/source/rltiles/player/hand1/lance.bmp new file mode 100644 index 0000000000..69f0c9cdd6 Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/lance.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/lance2.bmp b/crawl-ref/source/rltiles/player/hand1/lance2.bmp new file mode 100644 index 0000000000..bc145a9455 Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/lance2.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/lantern.bmp b/crawl-ref/source/rltiles/player/hand1/lantern.bmp new file mode 100644 index 0000000000..487375d0be Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/lantern.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/large_mace.bmp b/crawl-ref/source/rltiles/player/hand1/large_mace.bmp new file mode 100644 index 0000000000..b5a67e11be Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/large_mace.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/leech.bmp b/crawl-ref/source/rltiles/player/hand1/leech.bmp new file mode 100644 index 0000000000..1a6679261d Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/leech.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/legolas.bmp b/crawl-ref/source/rltiles/player/hand1/legolas.bmp new file mode 100644 index 0000000000..e2a8d6f60d Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/legolas.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/light_blue.bmp b/crawl-ref/source/rltiles/player/hand1/light_blue.bmp new file mode 100644 index 0000000000..50c7a09c25 Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/light_blue.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/light_red.bmp b/crawl-ref/source/rltiles/player/hand1/light_red.bmp new file mode 100644 index 0000000000..e1511ca6cc Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/light_red.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/light_yellow.bmp b/crawl-ref/source/rltiles/player/hand1/light_yellow.bmp new file mode 100644 index 0000000000..8b8dc9efca Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/light_yellow.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/long_sword.bmp b/crawl-ref/source/rltiles/player/hand1/long_sword.bmp new file mode 100644 index 0000000000..d60f6f77b9 Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/long_sword.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/long_sword_slant.bmp b/crawl-ref/source/rltiles/player/hand1/long_sword_slant.bmp new file mode 100644 index 0000000000..b7fee127f4 Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/long_sword_slant.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/mace.bmp b/crawl-ref/source/rltiles/player/hand1/mace.bmp new file mode 100644 index 0000000000..a45b2729af Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/mace.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/mace2.bmp b/crawl-ref/source/rltiles/player/hand1/mace2.bmp new file mode 100644 index 0000000000..1b41244300 Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/mace2.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/mace3.bmp b/crawl-ref/source/rltiles/player/hand1/mace3.bmp new file mode 100644 index 0000000000..2a330f89e2 Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/mace3.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/mace_of_variability.bmp b/crawl-ref/source/rltiles/player/hand1/mace_of_variability.bmp new file mode 100644 index 0000000000..025c9cbb18 Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/mace_of_variability.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/mace_ruby.bmp b/crawl-ref/source/rltiles/player/hand1/mace_ruby.bmp new file mode 100644 index 0000000000..764e3f7de4 Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/mace_ruby.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/morg.bmp b/crawl-ref/source/rltiles/player/hand1/morg.bmp new file mode 100644 index 0000000000..3ef6ed6ced Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/morg.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/morningstar.bmp b/crawl-ref/source/rltiles/player/hand1/morningstar.bmp new file mode 100644 index 0000000000..0358534049 Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/morningstar.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/morningstar2.bmp b/crawl-ref/source/rltiles/player/hand1/morningstar2.bmp new file mode 100644 index 0000000000..321a0163bc Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/morningstar2.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/nunchaku.bmp b/crawl-ref/source/rltiles/player/hand1/nunchaku.bmp new file mode 100644 index 0000000000..1350d9a84d Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/nunchaku.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/olgreb.bmp b/crawl-ref/source/rltiles/player/hand1/olgreb.bmp new file mode 100644 index 0000000000..603077c4e2 Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/olgreb.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/orb.bmp b/crawl-ref/source/rltiles/player/hand1/orb.bmp new file mode 100644 index 0000000000..7d0ac613b4 Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/orb.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/pick_axe.bmp b/crawl-ref/source/rltiles/player/hand1/pick_axe.bmp new file mode 100644 index 0000000000..35d040e71e Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/pick_axe.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/pike.bmp b/crawl-ref/source/rltiles/player/hand1/pike.bmp new file mode 100644 index 0000000000..adfd784922 Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/pike.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/plutonium_sword.bmp b/crawl-ref/source/rltiles/player/hand1/plutonium_sword.bmp new file mode 100644 index 0000000000..f18dc5e1de Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/plutonium_sword.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/pole_forked.bmp b/crawl-ref/source/rltiles/player/hand1/pole_forked.bmp new file mode 100644 index 0000000000..bb5a6519dd Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/pole_forked.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/punk.bmp b/crawl-ref/source/rltiles/player/hand1/punk.bmp new file mode 100644 index 0000000000..12f7c7b447 Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/punk.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/quarterstaff1.bmp b/crawl-ref/source/rltiles/player/hand1/quarterstaff1.bmp new file mode 100644 index 0000000000..0ad0e2bece Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/quarterstaff1.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/quarterstaff2.bmp b/crawl-ref/source/rltiles/player/hand1/quarterstaff2.bmp new file mode 100644 index 0000000000..ce52a299f1 Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/quarterstaff2.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/quarterstaff3.bmp b/crawl-ref/source/rltiles/player/hand1/quarterstaff3.bmp new file mode 100644 index 0000000000..3f846eaa83 Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/quarterstaff3.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/quarterstaff4.bmp b/crawl-ref/source/rltiles/player/hand1/quarterstaff4.bmp new file mode 100644 index 0000000000..2eeb4d0c10 Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/quarterstaff4.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/sabre.bmp b/crawl-ref/source/rltiles/player/hand1/sabre.bmp new file mode 100644 index 0000000000..5a36a73657 Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/sabre.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/saruman.bmp b/crawl-ref/source/rltiles/player/hand1/saruman.bmp new file mode 100644 index 0000000000..03290adff6 Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/saruman.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/sceptre.bmp b/crawl-ref/source/rltiles/player/hand1/sceptre.bmp new file mode 100644 index 0000000000..d9044d79c6 Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/sceptre.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/scimitar.bmp b/crawl-ref/source/rltiles/player/hand1/scimitar.bmp new file mode 100644 index 0000000000..d2f6f94c2c Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/scimitar.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/scimitar2.bmp b/crawl-ref/source/rltiles/player/hand1/scimitar2.bmp new file mode 100644 index 0000000000..5d7d90726e Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/scimitar2.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/scythe.bmp b/crawl-ref/source/rltiles/player/hand1/scythe.bmp new file mode 100644 index 0000000000..43fd0a1a16 Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/scythe.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/scythe_slant.bmp b/crawl-ref/source/rltiles/player/hand1/scythe_slant.bmp new file mode 100644 index 0000000000..ff36ee9d67 Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/scythe_slant.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/short_sword.bmp b/crawl-ref/source/rltiles/player/hand1/short_sword.bmp new file mode 100644 index 0000000000..c32e205dae Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/short_sword.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/short_sword2.bmp b/crawl-ref/source/rltiles/player/hand1/short_sword2.bmp new file mode 100644 index 0000000000..9ce219ffe5 Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/short_sword2.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/short_sword_slant.bmp b/crawl-ref/source/rltiles/player/hand1/short_sword_slant.bmp new file mode 100644 index 0000000000..fd23f919c3 Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/short_sword_slant.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/sickle.bmp b/crawl-ref/source/rltiles/player/hand1/sickle.bmp new file mode 100644 index 0000000000..4b076dca2f Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/sickle.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/singing_sword.bmp b/crawl-ref/source/rltiles/player/hand1/singing_sword.bmp new file mode 100644 index 0000000000..1f0a3b44ad Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/singing_sword.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/skull.bmp b/crawl-ref/source/rltiles/player/hand1/skull.bmp new file mode 100644 index 0000000000..8b5d2f71a4 Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/skull.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/sling.bmp b/crawl-ref/source/rltiles/player/hand1/sling.bmp new file mode 100644 index 0000000000..ea2d53b54d Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/sling.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/sniper.bmp b/crawl-ref/source/rltiles/player/hand1/sniper.bmp new file mode 100644 index 0000000000..4d6fbffc51 Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/sniper.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/spark.bmp b/crawl-ref/source/rltiles/player/hand1/spark.bmp new file mode 100644 index 0000000000..a75c9a06db Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/spark.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/spear1.bmp b/crawl-ref/source/rltiles/player/hand1/spear1.bmp new file mode 100644 index 0000000000..2b4144050d Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/spear1.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/spear2.bmp b/crawl-ref/source/rltiles/player/hand1/spear2.bmp new file mode 100644 index 0000000000..9ed238fbe5 Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/spear2.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/spear3.bmp b/crawl-ref/source/rltiles/player/hand1/spear3.bmp new file mode 100644 index 0000000000..786356e6dd Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/spear3.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/spear4.bmp b/crawl-ref/source/rltiles/player/hand1/spear4.bmp new file mode 100644 index 0000000000..3a92d25118 Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/spear4.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/spear5.bmp b/crawl-ref/source/rltiles/player/hand1/spear5.bmp new file mode 100644 index 0000000000..4fd742b758 Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/spear5.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/staff_evil.bmp b/crawl-ref/source/rltiles/player/hand1/staff_evil.bmp new file mode 100644 index 0000000000..f642ee51ac Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/staff_evil.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/staff_fork.bmp b/crawl-ref/source/rltiles/player/hand1/staff_fork.bmp new file mode 100644 index 0000000000..b8b5487a9a Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/staff_fork.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/staff_large.bmp b/crawl-ref/source/rltiles/player/hand1/staff_large.bmp new file mode 100644 index 0000000000..6e469821f4 Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/staff_large.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/staff_mage.bmp b/crawl-ref/source/rltiles/player/hand1/staff_mage.bmp new file mode 100644 index 0000000000..fd6c933118 Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/staff_mage.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/staff_mage2.bmp b/crawl-ref/source/rltiles/player/hand1/staff_mage2.bmp new file mode 100644 index 0000000000..a1b113b7a4 Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/staff_mage2.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/staff_mummy.bmp b/crawl-ref/source/rltiles/player/hand1/staff_mummy.bmp new file mode 100644 index 0000000000..85ecba66e0 Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/staff_mummy.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/staff_ring_blue.bmp b/crawl-ref/source/rltiles/player/hand1/staff_ring_blue.bmp new file mode 100644 index 0000000000..24b9cd87c3 Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/staff_ring_blue.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/staff_ruby.bmp b/crawl-ref/source/rltiles/player/hand1/staff_ruby.bmp new file mode 100644 index 0000000000..711c086481 Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/staff_ruby.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/staff_skull.bmp b/crawl-ref/source/rltiles/player/hand1/staff_skull.bmp new file mode 100644 index 0000000000..aea3be4257 Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/staff_skull.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/stick.bmp b/crawl-ref/source/rltiles/player/hand1/stick.bmp new file mode 100644 index 0000000000..c5dbe95441 Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/stick.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/stone.bmp b/crawl-ref/source/rltiles/player/hand1/stone.bmp new file mode 100644 index 0000000000..81776bca6f Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/stone.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/sword2.bmp b/crawl-ref/source/rltiles/player/hand1/sword2.bmp new file mode 100644 index 0000000000..f7d19eeb67 Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/sword2.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/sword3.bmp b/crawl-ref/source/rltiles/player/hand1/sword3.bmp new file mode 100644 index 0000000000..afcea45d3a Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/sword3.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/sword_black.bmp b/crawl-ref/source/rltiles/player/hand1/sword_black.bmp new file mode 100644 index 0000000000..409873804c Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/sword_black.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/sword_breaker.bmp b/crawl-ref/source/rltiles/player/hand1/sword_breaker.bmp new file mode 100644 index 0000000000..286d5cdfe1 Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/sword_breaker.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/sword_jag.bmp b/crawl-ref/source/rltiles/player/hand1/sword_jag.bmp new file mode 100644 index 0000000000..88a673a2bf Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/sword_jag.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/sword_seven.bmp b/crawl-ref/source/rltiles/player/hand1/sword_seven.bmp new file mode 100644 index 0000000000..edb2b4030d Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/sword_seven.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/sword_thief.bmp b/crawl-ref/source/rltiles/player/hand1/sword_thief.bmp new file mode 100644 index 0000000000..97bc67f604 Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/sword_thief.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/sword_tri.bmp b/crawl-ref/source/rltiles/player/hand1/sword_tri.bmp new file mode 100644 index 0000000000..282e05d8bc Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/sword_tri.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/sword_twist.bmp b/crawl-ref/source/rltiles/player/hand1/sword_twist.bmp new file mode 100644 index 0000000000..3c4d8fee2d Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/sword_twist.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/trident.bmp b/crawl-ref/source/rltiles/player/hand1/trident.bmp new file mode 100644 index 0000000000..a94c1a71d3 Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/trident.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/trident2.bmp b/crawl-ref/source/rltiles/player/hand1/trident2.bmp new file mode 100644 index 0000000000..e07c0d4eb8 Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/trident2.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/trident3.bmp b/crawl-ref/source/rltiles/player/hand1/trident3.bmp new file mode 100644 index 0000000000..191f796c8d Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/trident3.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/trident_demon.bmp b/crawl-ref/source/rltiles/player/hand1/trident_demon.bmp new file mode 100644 index 0000000000..f4f4561ddc Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/trident_demon.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/trident_elec.bmp b/crawl-ref/source/rltiles/player/hand1/trident_elec.bmp new file mode 100644 index 0000000000..4ada04dbc7 Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/trident_elec.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/triple_sword.bmp b/crawl-ref/source/rltiles/player/hand1/triple_sword.bmp new file mode 100644 index 0000000000..7d72e0617c Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/triple_sword.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/voodoo.bmp b/crawl-ref/source/rltiles/player/hand1/voodoo.bmp new file mode 100644 index 0000000000..55217efb4f Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/voodoo.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/war_axe.bmp b/crawl-ref/source/rltiles/player/hand1/war_axe.bmp new file mode 100644 index 0000000000..f03e22dde7 Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/war_axe.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/whip.bmp b/crawl-ref/source/rltiles/player/hand1/whip.bmp new file mode 100644 index 0000000000..f9d73e5867 Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/whip.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand1/zonguldrok.bmp b/crawl-ref/source/rltiles/player/hand1/zonguldrok.bmp new file mode 100644 index 0000000000..02daac3818 Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand1/zonguldrok.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand2/bladehands.bmp b/crawl-ref/source/rltiles/player/hand2/bladehands.bmp new file mode 100644 index 0000000000..4683aea8d0 Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand2/bladehands.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand2/book_black.bmp b/crawl-ref/source/rltiles/player/hand2/book_black.bmp new file mode 100644 index 0000000000..def201f60d Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand2/book_black.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand2/book_blue.bmp b/crawl-ref/source/rltiles/player/hand2/book_blue.bmp new file mode 100644 index 0000000000..78779b2be9 Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand2/book_blue.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand2/book_blue_dim.bmp b/crawl-ref/source/rltiles/player/hand2/book_blue_dim.bmp new file mode 100644 index 0000000000..88ae537e98 Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand2/book_blue_dim.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand2/book_cyan.bmp b/crawl-ref/source/rltiles/player/hand2/book_cyan.bmp new file mode 100644 index 0000000000..22c91c9653 Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand2/book_cyan.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand2/book_cyan_dim.bmp b/crawl-ref/source/rltiles/player/hand2/book_cyan_dim.bmp new file mode 100644 index 0000000000..fd0c7f8904 Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand2/book_cyan_dim.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand2/book_green.bmp b/crawl-ref/source/rltiles/player/hand2/book_green.bmp new file mode 100644 index 0000000000..a4b61274b1 Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand2/book_green.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand2/book_green_dim.bmp b/crawl-ref/source/rltiles/player/hand2/book_green_dim.bmp new file mode 100644 index 0000000000..cc94d667ee Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand2/book_green_dim.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand2/book_magenta.bmp b/crawl-ref/source/rltiles/player/hand2/book_magenta.bmp new file mode 100644 index 0000000000..b76230d0a7 Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand2/book_magenta.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand2/book_magenta_dim.bmp b/crawl-ref/source/rltiles/player/hand2/book_magenta_dim.bmp new file mode 100644 index 0000000000..95f8150ca9 Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand2/book_magenta_dim.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand2/book_red.bmp b/crawl-ref/source/rltiles/player/hand2/book_red.bmp new file mode 100644 index 0000000000..775827ae19 Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand2/book_red.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand2/book_red_dim.bmp b/crawl-ref/source/rltiles/player/hand2/book_red_dim.bmp new file mode 100644 index 0000000000..8640e74b3f Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand2/book_red_dim.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand2/book_sky.bmp b/crawl-ref/source/rltiles/player/hand2/book_sky.bmp new file mode 100644 index 0000000000..9b83907ad1 Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand2/book_sky.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand2/book_white.bmp b/crawl-ref/source/rltiles/player/hand2/book_white.bmp new file mode 100644 index 0000000000..ae6b5a443c Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand2/book_white.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand2/book_yellow.bmp b/crawl-ref/source/rltiles/player/hand2/book_yellow.bmp new file mode 100644 index 0000000000..08853b99d7 Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand2/book_yellow.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand2/book_yellow_dim.bmp b/crawl-ref/source/rltiles/player/hand2/book_yellow_dim.bmp new file mode 100644 index 0000000000..593d93bf1f Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand2/book_yellow_dim.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand2/boromir.bmp b/crawl-ref/source/rltiles/player/hand2/boromir.bmp new file mode 100644 index 0000000000..3cb9f11f6b Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand2/boromir.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand2/bullseye.bmp b/crawl-ref/source/rltiles/player/hand2/bullseye.bmp new file mode 100644 index 0000000000..2c53a8ff3b Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand2/bullseye.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand2/dagger.bmp b/crawl-ref/source/rltiles/player/hand2/dagger.bmp new file mode 100644 index 0000000000..2d93e47c75 Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand2/dagger.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand2/fire_cyan.bmp b/crawl-ref/source/rltiles/player/hand2/fire_cyan.bmp new file mode 100644 index 0000000000..5b2f5e843d Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand2/fire_cyan.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand2/fire_dark.bmp b/crawl-ref/source/rltiles/player/hand2/fire_dark.bmp new file mode 100644 index 0000000000..f180cbd411 Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand2/fire_dark.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand2/fire_green.bmp b/crawl-ref/source/rltiles/player/hand2/fire_green.bmp new file mode 100644 index 0000000000..e76227e148 Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand2/fire_green.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand2/fire_white.bmp b/crawl-ref/source/rltiles/player/hand2/fire_white.bmp new file mode 100644 index 0000000000..0148185656 Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand2/fire_white.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand2/fire_white2.bmp b/crawl-ref/source/rltiles/player/hand2/fire_white2.bmp new file mode 100644 index 0000000000..604e2032d7 Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand2/fire_white2.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand2/gil-galad.bmp b/crawl-ref/source/rltiles/player/hand2/gil-galad.bmp new file mode 100644 index 0000000000..3fae782f89 Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand2/gil-galad.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand2/lantern.bmp b/crawl-ref/source/rltiles/player/hand2/lantern.bmp new file mode 100644 index 0000000000..a1c60960f3 Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand2/lantern.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand2/light_blue.bmp b/crawl-ref/source/rltiles/player/hand2/light_blue.bmp new file mode 100644 index 0000000000..5715e2117f Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand2/light_blue.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand2/light_red.bmp b/crawl-ref/source/rltiles/player/hand2/light_red.bmp new file mode 100644 index 0000000000..a9cda3d974 Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand2/light_red.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand2/light_yellow.bmp b/crawl-ref/source/rltiles/player/hand2/light_yellow.bmp new file mode 100644 index 0000000000..dd23472240 Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand2/light_yellow.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand2/pj.bmp b/crawl-ref/source/rltiles/player/hand2/pj.bmp new file mode 100644 index 0000000000..7890818797 Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand2/pj.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand2/sabre.bmp b/crawl-ref/source/rltiles/player/hand2/sabre.bmp new file mode 100644 index 0000000000..7f8d00d5d1 Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand2/sabre.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand2/shield_diamond_yellow.bmp b/crawl-ref/source/rltiles/player/hand2/shield_diamond_yellow.bmp new file mode 100644 index 0000000000..6ef745161f Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand2/shield_diamond_yellow.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand2/shield_kite1.bmp b/crawl-ref/source/rltiles/player/hand2/shield_kite1.bmp new file mode 100644 index 0000000000..ce00bb2c7d Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand2/shield_kite1.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand2/shield_kite2.bmp b/crawl-ref/source/rltiles/player/hand2/shield_kite2.bmp new file mode 100644 index 0000000000..bcff57ab63 Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand2/shield_kite2.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand2/shield_kite3.bmp b/crawl-ref/source/rltiles/player/hand2/shield_kite3.bmp new file mode 100644 index 0000000000..3dc677a007 Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand2/shield_kite3.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand2/shield_kite4.bmp b/crawl-ref/source/rltiles/player/hand2/shield_kite4.bmp new file mode 100644 index 0000000000..2d518d32c3 Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand2/shield_kite4.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand2/shield_knight_blue.bmp b/crawl-ref/source/rltiles/player/hand2/shield_knight_blue.bmp new file mode 100644 index 0000000000..cb67554e2f Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand2/shield_knight_blue.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand2/shield_knight_gray.bmp b/crawl-ref/source/rltiles/player/hand2/shield_knight_gray.bmp new file mode 100644 index 0000000000..56ab96579b Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand2/shield_knight_gray.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand2/shield_knight_rw.bmp b/crawl-ref/source/rltiles/player/hand2/shield_knight_rw.bmp new file mode 100644 index 0000000000..0b82cd93ad Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand2/shield_knight_rw.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand2/shield_long_cross.bmp b/crawl-ref/source/rltiles/player/hand2/shield_long_cross.bmp new file mode 100644 index 0000000000..940090b137 Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand2/shield_long_cross.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand2/shield_long_red.bmp b/crawl-ref/source/rltiles/player/hand2/shield_long_red.bmp new file mode 100644 index 0000000000..e4bacb8ae0 Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand2/shield_long_red.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand2/shield_middle_black.bmp b/crawl-ref/source/rltiles/player/hand2/shield_middle_black.bmp new file mode 100644 index 0000000000..4766444dfd Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand2/shield_middle_black.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand2/shield_middle_brown.bmp b/crawl-ref/source/rltiles/player/hand2/shield_middle_brown.bmp new file mode 100644 index 0000000000..07c9fc5db8 Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand2/shield_middle_brown.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand2/shield_middle_cyan.bmp b/crawl-ref/source/rltiles/player/hand2/shield_middle_cyan.bmp new file mode 100644 index 0000000000..b85fbc4f13 Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand2/shield_middle_cyan.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand2/shield_middle_ethn.bmp b/crawl-ref/source/rltiles/player/hand2/shield_middle_ethn.bmp new file mode 100644 index 0000000000..dda3e484d7 Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand2/shield_middle_ethn.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand2/shield_middle_gray.bmp b/crawl-ref/source/rltiles/player/hand2/shield_middle_gray.bmp new file mode 100644 index 0000000000..457cf62a68 Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand2/shield_middle_gray.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand2/shield_middle_round.bmp b/crawl-ref/source/rltiles/player/hand2/shield_middle_round.bmp new file mode 100644 index 0000000000..12fd040b12 Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand2/shield_middle_round.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand2/shield_middle_unicorn.bmp b/crawl-ref/source/rltiles/player/hand2/shield_middle_unicorn.bmp new file mode 100644 index 0000000000..867c81043b Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand2/shield_middle_unicorn.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand2/shield_of_resistance.bmp b/crawl-ref/source/rltiles/player/hand2/shield_of_resistance.bmp new file mode 100644 index 0000000000..0415162bff Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand2/shield_of_resistance.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand2/shield_round1.bmp b/crawl-ref/source/rltiles/player/hand2/shield_round1.bmp new file mode 100644 index 0000000000..3cfcd70b63 Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand2/shield_round1.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand2/shield_round2.bmp b/crawl-ref/source/rltiles/player/hand2/shield_round2.bmp new file mode 100644 index 0000000000..6b95401b4b Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand2/shield_round2.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand2/shield_round3.bmp b/crawl-ref/source/rltiles/player/hand2/shield_round3.bmp new file mode 100644 index 0000000000..4762afaa3a Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand2/shield_round3.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand2/shield_round4.bmp b/crawl-ref/source/rltiles/player/hand2/shield_round4.bmp new file mode 100644 index 0000000000..b7ce2e8228 Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand2/shield_round4.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand2/shield_round5.bmp b/crawl-ref/source/rltiles/player/hand2/shield_round5.bmp new file mode 100644 index 0000000000..5c581141ac Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand2/shield_round5.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand2/shield_round6.bmp b/crawl-ref/source/rltiles/player/hand2/shield_round6.bmp new file mode 100644 index 0000000000..3664031249 Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand2/shield_round6.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand2/shield_round7.bmp b/crawl-ref/source/rltiles/player/hand2/shield_round7.bmp new file mode 100644 index 0000000000..e6d62e7909 Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand2/shield_round7.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand2/shield_round_small.bmp b/crawl-ref/source/rltiles/player/hand2/shield_round_small.bmp new file mode 100644 index 0000000000..3a0d9cb827 Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand2/shield_round_small.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand2/shield_round_small2.bmp b/crawl-ref/source/rltiles/player/hand2/shield_round_small2.bmp new file mode 100644 index 0000000000..224687dab6 Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand2/shield_round_small2.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand2/shield_round_white.bmp b/crawl-ref/source/rltiles/player/hand2/shield_round_white.bmp new file mode 100644 index 0000000000..807ae7ddd4 Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand2/shield_round_white.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand2/shield_shaman.bmp b/crawl-ref/source/rltiles/player/hand2/shield_shaman.bmp new file mode 100644 index 0000000000..22416b0c95 Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand2/shield_shaman.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand2/shield_skull.bmp b/crawl-ref/source/rltiles/player/hand2/shield_skull.bmp new file mode 100644 index 0000000000..832d796f7d Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand2/shield_skull.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand2/short_sword_slant.bmp b/crawl-ref/source/rltiles/player/hand2/short_sword_slant.bmp new file mode 100644 index 0000000000..e193ff99c5 Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand2/short_sword_slant.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand2/spark.bmp b/crawl-ref/source/rltiles/player/hand2/spark.bmp new file mode 100644 index 0000000000..9e0bb80b6f Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand2/spark.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand2/torch.bmp b/crawl-ref/source/rltiles/player/hand2/torch.bmp new file mode 100644 index 0000000000..71ffcdeb37 Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand2/torch.bmp differ diff --git a/crawl-ref/source/rltiles/player/hand2/torsh2.bmp b/crawl-ref/source/rltiles/player/hand2/torsh2.bmp new file mode 100644 index 0000000000..4062b02edf Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand2/torsh2.bmp differ diff --git a/crawl-ref/source/rltiles/player/head/art_dragonhelm.bmp b/crawl-ref/source/rltiles/player/head/art_dragonhelm.bmp new file mode 100644 index 0000000000..1317dcd456 Binary files /dev/null and b/crawl-ref/source/rltiles/player/head/art_dragonhelm.bmp differ diff --git a/crawl-ref/source/rltiles/player/head/band_blue.bmp b/crawl-ref/source/rltiles/player/head/band_blue.bmp new file mode 100644 index 0000000000..ce6089ba97 Binary files /dev/null and b/crawl-ref/source/rltiles/player/head/band_blue.bmp differ diff --git a/crawl-ref/source/rltiles/player/head/band_magenta.bmp b/crawl-ref/source/rltiles/player/head/band_magenta.bmp new file mode 100644 index 0000000000..037e1250c6 Binary files /dev/null and b/crawl-ref/source/rltiles/player/head/band_magenta.bmp differ diff --git a/crawl-ref/source/rltiles/player/head/band_red.bmp b/crawl-ref/source/rltiles/player/head/band_red.bmp new file mode 100644 index 0000000000..bf08de167c Binary files /dev/null and b/crawl-ref/source/rltiles/player/head/band_red.bmp differ diff --git a/crawl-ref/source/rltiles/player/head/band_white.bmp b/crawl-ref/source/rltiles/player/head/band_white.bmp new file mode 100644 index 0000000000..59c919e32f Binary files /dev/null and b/crawl-ref/source/rltiles/player/head/band_white.bmp differ diff --git a/crawl-ref/source/rltiles/player/head/band_yellow.bmp b/crawl-ref/source/rltiles/player/head/band_yellow.bmp new file mode 100644 index 0000000000..c76e112e56 Binary files /dev/null and b/crawl-ref/source/rltiles/player/head/band_yellow.bmp differ diff --git a/crawl-ref/source/rltiles/player/head/bandana_ybrown.bmp b/crawl-ref/source/rltiles/player/head/bandana_ybrown.bmp new file mode 100644 index 0000000000..c4f518cd92 Binary files /dev/null and b/crawl-ref/source/rltiles/player/head/bandana_ybrown.bmp differ diff --git a/crawl-ref/source/rltiles/player/head/black_horn.bmp b/crawl-ref/source/rltiles/player/head/black_horn.bmp new file mode 100644 index 0000000000..321f8f9925 Binary files /dev/null and b/crawl-ref/source/rltiles/player/head/black_horn.bmp differ diff --git a/crawl-ref/source/rltiles/player/head/black_horn2.bmp b/crawl-ref/source/rltiles/player/head/black_horn2.bmp new file mode 100644 index 0000000000..5f6f5517b7 Binary files /dev/null and b/crawl-ref/source/rltiles/player/head/black_horn2.bmp differ diff --git a/crawl-ref/source/rltiles/player/head/blue_horn_gold.bmp b/crawl-ref/source/rltiles/player/head/blue_horn_gold.bmp new file mode 100644 index 0000000000..c3521939b6 Binary files /dev/null and b/crawl-ref/source/rltiles/player/head/blue_horn_gold.bmp differ diff --git a/crawl-ref/source/rltiles/player/head/brown_gold.bmp b/crawl-ref/source/rltiles/player/head/brown_gold.bmp new file mode 100644 index 0000000000..73783e49b9 Binary files /dev/null and b/crawl-ref/source/rltiles/player/head/brown_gold.bmp differ diff --git a/crawl-ref/source/rltiles/player/head/cap_black1.bmp b/crawl-ref/source/rltiles/player/head/cap_black1.bmp new file mode 100644 index 0000000000..bd5948f3f4 Binary files /dev/null and b/crawl-ref/source/rltiles/player/head/cap_black1.bmp differ diff --git a/crawl-ref/source/rltiles/player/head/cap_blue.bmp b/crawl-ref/source/rltiles/player/head/cap_blue.bmp new file mode 100644 index 0000000000..662c2e1b11 Binary files /dev/null and b/crawl-ref/source/rltiles/player/head/cap_blue.bmp differ diff --git a/crawl-ref/source/rltiles/player/head/chain.bmp b/crawl-ref/source/rltiles/player/head/chain.bmp new file mode 100644 index 0000000000..4027b099a1 Binary files /dev/null and b/crawl-ref/source/rltiles/player/head/chain.bmp differ diff --git a/crawl-ref/source/rltiles/player/head/cheek_red.bmp b/crawl-ref/source/rltiles/player/head/cheek_red.bmp new file mode 100644 index 0000000000..88688d106e Binary files /dev/null and b/crawl-ref/source/rltiles/player/head/cheek_red.bmp differ diff --git a/crawl-ref/source/rltiles/player/head/clown1.bmp b/crawl-ref/source/rltiles/player/head/clown1.bmp new file mode 100644 index 0000000000..d816fde1f8 Binary files /dev/null and b/crawl-ref/source/rltiles/player/head/clown1.bmp differ diff --git a/crawl-ref/source/rltiles/player/head/cone_blue.bmp b/crawl-ref/source/rltiles/player/head/cone_blue.bmp new file mode 100644 index 0000000000..603f0f78c6 Binary files /dev/null and b/crawl-ref/source/rltiles/player/head/cone_blue.bmp differ diff --git a/crawl-ref/source/rltiles/player/head/cone_red.bmp b/crawl-ref/source/rltiles/player/head/cone_red.bmp new file mode 100644 index 0000000000..30eedae930 Binary files /dev/null and b/crawl-ref/source/rltiles/player/head/cone_red.bmp differ diff --git a/crawl-ref/source/rltiles/player/head/crown_gold.bmp b/crawl-ref/source/rltiles/player/head/crown_gold.bmp new file mode 100644 index 0000000000..85516a4f98 Binary files /dev/null and b/crawl-ref/source/rltiles/player/head/crown_gold.bmp differ diff --git a/crawl-ref/source/rltiles/player/head/dyrovepreva.bmp b/crawl-ref/source/rltiles/player/head/dyrovepreva.bmp new file mode 100644 index 0000000000..9c036c856a Binary files /dev/null and b/crawl-ref/source/rltiles/player/head/dyrovepreva.bmp differ diff --git a/crawl-ref/source/rltiles/player/head/feather_blue.bmp b/crawl-ref/source/rltiles/player/head/feather_blue.bmp new file mode 100644 index 0000000000..4c2d313c1d Binary files /dev/null and b/crawl-ref/source/rltiles/player/head/feather_blue.bmp differ diff --git a/crawl-ref/source/rltiles/player/head/feather_green.bmp b/crawl-ref/source/rltiles/player/head/feather_green.bmp new file mode 100644 index 0000000000..41b5793d7a Binary files /dev/null and b/crawl-ref/source/rltiles/player/head/feather_green.bmp differ diff --git a/crawl-ref/source/rltiles/player/head/feather_red.bmp b/crawl-ref/source/rltiles/player/head/feather_red.bmp new file mode 100644 index 0000000000..487383f925 Binary files /dev/null and b/crawl-ref/source/rltiles/player/head/feather_red.bmp differ diff --git a/crawl-ref/source/rltiles/player/head/feather_white.bmp b/crawl-ref/source/rltiles/player/head/feather_white.bmp new file mode 100644 index 0000000000..e5f22a91d8 Binary files /dev/null and b/crawl-ref/source/rltiles/player/head/feather_white.bmp differ diff --git a/crawl-ref/source/rltiles/player/head/feather_yellow.bmp b/crawl-ref/source/rltiles/player/head/feather_yellow.bmp new file mode 100644 index 0000000000..16538956c1 Binary files /dev/null and b/crawl-ref/source/rltiles/player/head/feather_yellow.bmp differ diff --git a/crawl-ref/source/rltiles/player/head/fhelm_gray3.bmp b/crawl-ref/source/rltiles/player/head/fhelm_gray3.bmp new file mode 100644 index 0000000000..bc317dc551 Binary files /dev/null and b/crawl-ref/source/rltiles/player/head/fhelm_gray3.bmp differ diff --git a/crawl-ref/source/rltiles/player/head/fhelm_horn2.bmp b/crawl-ref/source/rltiles/player/head/fhelm_horn2.bmp new file mode 100644 index 0000000000..93e582fa7e Binary files /dev/null and b/crawl-ref/source/rltiles/player/head/fhelm_horn2.bmp differ diff --git a/crawl-ref/source/rltiles/player/head/fhelm_horn_yellow.bmp b/crawl-ref/source/rltiles/player/head/fhelm_horn_yellow.bmp new file mode 100644 index 0000000000..0b409ae9d4 Binary files /dev/null and b/crawl-ref/source/rltiles/player/head/fhelm_horn_yellow.bmp differ diff --git a/crawl-ref/source/rltiles/player/head/full_black.bmp b/crawl-ref/source/rltiles/player/head/full_black.bmp new file mode 100644 index 0000000000..ac94134900 Binary files /dev/null and b/crawl-ref/source/rltiles/player/head/full_black.bmp differ diff --git a/crawl-ref/source/rltiles/player/head/full_gold.bmp b/crawl-ref/source/rltiles/player/head/full_gold.bmp new file mode 100644 index 0000000000..21becf0728 Binary files /dev/null and b/crawl-ref/source/rltiles/player/head/full_gold.bmp differ diff --git a/crawl-ref/source/rltiles/player/head/gandalf.bmp b/crawl-ref/source/rltiles/player/head/gandalf.bmp new file mode 100644 index 0000000000..14e25c8209 Binary files /dev/null and b/crawl-ref/source/rltiles/player/head/gandalf.bmp differ diff --git a/crawl-ref/source/rltiles/player/head/hat_black.bmp b/crawl-ref/source/rltiles/player/head/hat_black.bmp new file mode 100644 index 0000000000..f4afb2b794 Binary files /dev/null and b/crawl-ref/source/rltiles/player/head/hat_black.bmp differ diff --git a/crawl-ref/source/rltiles/player/head/healer.bmp b/crawl-ref/source/rltiles/player/head/healer.bmp new file mode 100644 index 0000000000..e572e851e3 Binary files /dev/null and b/crawl-ref/source/rltiles/player/head/healer.bmp differ diff --git a/crawl-ref/source/rltiles/player/head/helm_gimli.bmp b/crawl-ref/source/rltiles/player/head/helm_gimli.bmp new file mode 100644 index 0000000000..e41415082e Binary files /dev/null and b/crawl-ref/source/rltiles/player/head/helm_gimli.bmp differ diff --git a/crawl-ref/source/rltiles/player/head/helm_green.bmp b/crawl-ref/source/rltiles/player/head/helm_green.bmp new file mode 100644 index 0000000000..ccdd58eb75 Binary files /dev/null and b/crawl-ref/source/rltiles/player/head/helm_green.bmp differ diff --git a/crawl-ref/source/rltiles/player/head/helm_plume.bmp b/crawl-ref/source/rltiles/player/head/helm_plume.bmp new file mode 100644 index 0000000000..8b904b8048 Binary files /dev/null and b/crawl-ref/source/rltiles/player/head/helm_plume.bmp differ diff --git a/crawl-ref/source/rltiles/player/head/helm_red.bmp b/crawl-ref/source/rltiles/player/head/helm_red.bmp new file mode 100644 index 0000000000..a3e5f0cbd1 Binary files /dev/null and b/crawl-ref/source/rltiles/player/head/helm_red.bmp differ diff --git a/crawl-ref/source/rltiles/player/head/hood_black2.bmp b/crawl-ref/source/rltiles/player/head/hood_black2.bmp new file mode 100644 index 0000000000..e543acb49e Binary files /dev/null and b/crawl-ref/source/rltiles/player/head/hood_black2.bmp differ diff --git a/crawl-ref/source/rltiles/player/head/hood_cyan.bmp b/crawl-ref/source/rltiles/player/head/hood_cyan.bmp new file mode 100644 index 0000000000..3ea8dba202 Binary files /dev/null and b/crawl-ref/source/rltiles/player/head/hood_cyan.bmp differ diff --git a/crawl-ref/source/rltiles/player/head/hood_gray.bmp b/crawl-ref/source/rltiles/player/head/hood_gray.bmp new file mode 100644 index 0000000000..499c8f3753 Binary files /dev/null and b/crawl-ref/source/rltiles/player/head/hood_gray.bmp differ diff --git a/crawl-ref/source/rltiles/player/head/hood_green.bmp b/crawl-ref/source/rltiles/player/head/hood_green.bmp new file mode 100644 index 0000000000..718ac9e495 Binary files /dev/null and b/crawl-ref/source/rltiles/player/head/hood_green.bmp differ diff --git a/crawl-ref/source/rltiles/player/head/hood_green2.bmp b/crawl-ref/source/rltiles/player/head/hood_green2.bmp new file mode 100644 index 0000000000..3f01b3bd36 Binary files /dev/null and b/crawl-ref/source/rltiles/player/head/hood_green2.bmp differ diff --git a/crawl-ref/source/rltiles/player/head/hood_orange.bmp b/crawl-ref/source/rltiles/player/head/hood_orange.bmp new file mode 100644 index 0000000000..470775f53e Binary files /dev/null and b/crawl-ref/source/rltiles/player/head/hood_orange.bmp differ diff --git a/crawl-ref/source/rltiles/player/head/hood_red.bmp b/crawl-ref/source/rltiles/player/head/hood_red.bmp new file mode 100644 index 0000000000..2d41e30bf5 Binary files /dev/null and b/crawl-ref/source/rltiles/player/head/hood_red.bmp differ diff --git a/crawl-ref/source/rltiles/player/head/hood_red2.bmp b/crawl-ref/source/rltiles/player/head/hood_red2.bmp new file mode 100644 index 0000000000..eca039f680 Binary files /dev/null and b/crawl-ref/source/rltiles/player/head/hood_red2.bmp differ diff --git a/crawl-ref/source/rltiles/player/head/hood_white.bmp b/crawl-ref/source/rltiles/player/head/hood_white.bmp new file mode 100644 index 0000000000..1f5eee21d9 Binary files /dev/null and b/crawl-ref/source/rltiles/player/head/hood_white.bmp differ diff --git a/crawl-ref/source/rltiles/player/head/hood_white2.bmp b/crawl-ref/source/rltiles/player/head/hood_white2.bmp new file mode 100644 index 0000000000..d3c80db3d3 Binary files /dev/null and b/crawl-ref/source/rltiles/player/head/hood_white2.bmp differ diff --git a/crawl-ref/source/rltiles/player/head/hood_ybrown.bmp b/crawl-ref/source/rltiles/player/head/hood_ybrown.bmp new file mode 100644 index 0000000000..2f2691b2f8 Binary files /dev/null and b/crawl-ref/source/rltiles/player/head/hood_ybrown.bmp differ diff --git a/crawl-ref/source/rltiles/player/head/horn_evil.bmp b/crawl-ref/source/rltiles/player/head/horn_evil.bmp new file mode 100644 index 0000000000..74b09edbcd Binary files /dev/null and b/crawl-ref/source/rltiles/player/head/horn_evil.bmp differ diff --git a/crawl-ref/source/rltiles/player/head/horn_gray.bmp b/crawl-ref/source/rltiles/player/head/horn_gray.bmp new file mode 100644 index 0000000000..7e3be4ee94 Binary files /dev/null and b/crawl-ref/source/rltiles/player/head/horn_gray.bmp differ diff --git a/crawl-ref/source/rltiles/player/head/horned.bmp b/crawl-ref/source/rltiles/player/head/horned.bmp new file mode 100644 index 0000000000..63d765a75c Binary files /dev/null and b/crawl-ref/source/rltiles/player/head/horned.bmp differ diff --git a/crawl-ref/source/rltiles/player/head/horns1.bmp b/crawl-ref/source/rltiles/player/head/horns1.bmp new file mode 100644 index 0000000000..89ac098e90 Binary files /dev/null and b/crawl-ref/source/rltiles/player/head/horns1.bmp differ diff --git a/crawl-ref/source/rltiles/player/head/horns2.bmp b/crawl-ref/source/rltiles/player/head/horns2.bmp new file mode 100644 index 0000000000..182cf2d176 Binary files /dev/null and b/crawl-ref/source/rltiles/player/head/horns2.bmp differ diff --git a/crawl-ref/source/rltiles/player/head/horns3.bmp b/crawl-ref/source/rltiles/player/head/horns3.bmp new file mode 100644 index 0000000000..34bfcf52e0 Binary files /dev/null and b/crawl-ref/source/rltiles/player/head/horns3.bmp differ diff --git a/crawl-ref/source/rltiles/player/head/iron1.bmp b/crawl-ref/source/rltiles/player/head/iron1.bmp new file mode 100644 index 0000000000..a18ca11a33 Binary files /dev/null and b/crawl-ref/source/rltiles/player/head/iron1.bmp differ diff --git a/crawl-ref/source/rltiles/player/head/iron2.bmp b/crawl-ref/source/rltiles/player/head/iron2.bmp new file mode 100644 index 0000000000..d1de4df1f9 Binary files /dev/null and b/crawl-ref/source/rltiles/player/head/iron2.bmp differ diff --git a/crawl-ref/source/rltiles/player/head/iron3.bmp b/crawl-ref/source/rltiles/player/head/iron3.bmp new file mode 100644 index 0000000000..e1bb7b920f Binary files /dev/null and b/crawl-ref/source/rltiles/player/head/iron3.bmp differ diff --git a/crawl-ref/source/rltiles/player/head/iron_red.bmp b/crawl-ref/source/rltiles/player/head/iron_red.bmp new file mode 100644 index 0000000000..956b7d6995 Binary files /dev/null and b/crawl-ref/source/rltiles/player/head/iron_red.bmp differ diff --git a/crawl-ref/source/rltiles/player/head/isildur.bmp b/crawl-ref/source/rltiles/player/head/isildur.bmp new file mode 100644 index 0000000000..4a6a23ce97 Binary files /dev/null and b/crawl-ref/source/rltiles/player/head/isildur.bmp differ diff --git a/crawl-ref/source/rltiles/player/head/mummy.bmp b/crawl-ref/source/rltiles/player/head/mummy.bmp new file mode 100644 index 0000000000..002ed4d7a6 Binary files /dev/null and b/crawl-ref/source/rltiles/player/head/mummy.bmp differ diff --git a/crawl-ref/source/rltiles/player/head/ninja_black.bmp b/crawl-ref/source/rltiles/player/head/ninja_black.bmp new file mode 100644 index 0000000000..db64002b33 Binary files /dev/null and b/crawl-ref/source/rltiles/player/head/ninja_black.bmp differ diff --git a/crawl-ref/source/rltiles/player/head/straw.bmp b/crawl-ref/source/rltiles/player/head/straw.bmp new file mode 100644 index 0000000000..e09fb40bb2 Binary files /dev/null and b/crawl-ref/source/rltiles/player/head/straw.bmp differ diff --git a/crawl-ref/source/rltiles/player/head/taiso_blue.bmp b/crawl-ref/source/rltiles/player/head/taiso_blue.bmp new file mode 100644 index 0000000000..145d389c49 Binary files /dev/null and b/crawl-ref/source/rltiles/player/head/taiso_blue.bmp differ diff --git a/crawl-ref/source/rltiles/player/head/taiso_magenta.bmp b/crawl-ref/source/rltiles/player/head/taiso_magenta.bmp new file mode 100644 index 0000000000..9b608f89a2 Binary files /dev/null and b/crawl-ref/source/rltiles/player/head/taiso_magenta.bmp differ diff --git a/crawl-ref/source/rltiles/player/head/taiso_red.bmp b/crawl-ref/source/rltiles/player/head/taiso_red.bmp new file mode 100644 index 0000000000..ba0872c792 Binary files /dev/null and b/crawl-ref/source/rltiles/player/head/taiso_red.bmp differ diff --git a/crawl-ref/source/rltiles/player/head/taiso_white.bmp b/crawl-ref/source/rltiles/player/head/taiso_white.bmp new file mode 100644 index 0000000000..92121934ae Binary files /dev/null and b/crawl-ref/source/rltiles/player/head/taiso_white.bmp differ diff --git a/crawl-ref/source/rltiles/player/head/taiso_yellow.bmp b/crawl-ref/source/rltiles/player/head/taiso_yellow.bmp new file mode 100644 index 0000000000..b52c42b466 Binary files /dev/null and b/crawl-ref/source/rltiles/player/head/taiso_yellow.bmp differ diff --git a/crawl-ref/source/rltiles/player/head/turban_brown.bmp b/crawl-ref/source/rltiles/player/head/turban_brown.bmp new file mode 100644 index 0000000000..c32af182e5 Binary files /dev/null and b/crawl-ref/source/rltiles/player/head/turban_brown.bmp differ diff --git a/crawl-ref/source/rltiles/player/head/turban_purple.bmp b/crawl-ref/source/rltiles/player/head/turban_purple.bmp new file mode 100644 index 0000000000..4a29746d96 Binary files /dev/null and b/crawl-ref/source/rltiles/player/head/turban_purple.bmp differ diff --git a/crawl-ref/source/rltiles/player/head/turban_white.bmp b/crawl-ref/source/rltiles/player/head/turban_white.bmp new file mode 100644 index 0000000000..25827d950f Binary files /dev/null and b/crawl-ref/source/rltiles/player/head/turban_white.bmp differ diff --git a/crawl-ref/source/rltiles/player/head/wizard_blackgold.bmp b/crawl-ref/source/rltiles/player/head/wizard_blackgold.bmp new file mode 100644 index 0000000000..336998fb8f Binary files /dev/null and b/crawl-ref/source/rltiles/player/head/wizard_blackgold.bmp differ diff --git a/crawl-ref/source/rltiles/player/head/wizard_blackred.bmp b/crawl-ref/source/rltiles/player/head/wizard_blackred.bmp new file mode 100644 index 0000000000..556050018c Binary files /dev/null and b/crawl-ref/source/rltiles/player/head/wizard_blackred.bmp differ diff --git a/crawl-ref/source/rltiles/player/head/wizard_blue.bmp b/crawl-ref/source/rltiles/player/head/wizard_blue.bmp new file mode 100644 index 0000000000..dfb4aaad4d Binary files /dev/null and b/crawl-ref/source/rltiles/player/head/wizard_blue.bmp differ diff --git a/crawl-ref/source/rltiles/player/head/wizard_bluegreen.bmp b/crawl-ref/source/rltiles/player/head/wizard_bluegreen.bmp new file mode 100644 index 0000000000..1338eca41f Binary files /dev/null and b/crawl-ref/source/rltiles/player/head/wizard_bluegreen.bmp differ diff --git a/crawl-ref/source/rltiles/player/head/wizard_brown.bmp b/crawl-ref/source/rltiles/player/head/wizard_brown.bmp new file mode 100644 index 0000000000..4531d919f8 Binary files /dev/null and b/crawl-ref/source/rltiles/player/head/wizard_brown.bmp differ diff --git a/crawl-ref/source/rltiles/player/head/wizard_darkgreen.bmp b/crawl-ref/source/rltiles/player/head/wizard_darkgreen.bmp new file mode 100644 index 0000000000..227d3b3e98 Binary files /dev/null and b/crawl-ref/source/rltiles/player/head/wizard_darkgreen.bmp differ diff --git a/crawl-ref/source/rltiles/player/head/wizard_purple.bmp b/crawl-ref/source/rltiles/player/head/wizard_purple.bmp new file mode 100644 index 0000000000..b28e21d33f Binary files /dev/null and b/crawl-ref/source/rltiles/player/head/wizard_purple.bmp differ diff --git a/crawl-ref/source/rltiles/player/head/wizard_red.bmp b/crawl-ref/source/rltiles/player/head/wizard_red.bmp new file mode 100644 index 0000000000..348c1c59c4 Binary files /dev/null and b/crawl-ref/source/rltiles/player/head/wizard_red.bmp differ diff --git a/crawl-ref/source/rltiles/player/head/wizard_white.bmp b/crawl-ref/source/rltiles/player/head/wizard_white.bmp new file mode 100644 index 0000000000..1fa53302b0 Binary files /dev/null and b/crawl-ref/source/rltiles/player/head/wizard_white.bmp differ diff --git a/crawl-ref/source/rltiles/player/head/yellow_wing.bmp b/crawl-ref/source/rltiles/player/head/yellow_wing.bmp new file mode 100644 index 0000000000..d999abcba6 Binary files /dev/null and b/crawl-ref/source/rltiles/player/head/yellow_wing.bmp differ diff --git a/crawl-ref/source/rltiles/player/leg/belt_gray.bmp b/crawl-ref/source/rltiles/player/leg/belt_gray.bmp new file mode 100644 index 0000000000..043f933ae1 Binary files /dev/null and b/crawl-ref/source/rltiles/player/leg/belt_gray.bmp differ diff --git a/crawl-ref/source/rltiles/player/leg/belt_redbrown.bmp b/crawl-ref/source/rltiles/player/leg/belt_redbrown.bmp new file mode 100644 index 0000000000..2848307643 Binary files /dev/null and b/crawl-ref/source/rltiles/player/leg/belt_redbrown.bmp differ diff --git a/crawl-ref/source/rltiles/player/leg/bikini_red.bmp b/crawl-ref/source/rltiles/player/leg/bikini_red.bmp new file mode 100644 index 0000000000..d374d3e57a Binary files /dev/null and b/crawl-ref/source/rltiles/player/leg/bikini_red.bmp differ diff --git a/crawl-ref/source/rltiles/player/leg/chunli.bmp b/crawl-ref/source/rltiles/player/leg/chunli.bmp new file mode 100644 index 0000000000..289f235555 Binary files /dev/null and b/crawl-ref/source/rltiles/player/leg/chunli.bmp differ diff --git a/crawl-ref/source/rltiles/player/leg/garter.bmp b/crawl-ref/source/rltiles/player/leg/garter.bmp new file mode 100644 index 0000000000..cc49c0ea3e Binary files /dev/null and b/crawl-ref/source/rltiles/player/leg/garter.bmp differ diff --git a/crawl-ref/source/rltiles/player/leg/leg_armor00.bmp b/crawl-ref/source/rltiles/player/leg/leg_armor00.bmp new file mode 100644 index 0000000000..e2546da02e Binary files /dev/null and b/crawl-ref/source/rltiles/player/leg/leg_armor00.bmp differ diff --git a/crawl-ref/source/rltiles/player/leg/leg_armor01.bmp b/crawl-ref/source/rltiles/player/leg/leg_armor01.bmp new file mode 100644 index 0000000000..eecf12223e Binary files /dev/null and b/crawl-ref/source/rltiles/player/leg/leg_armor01.bmp differ diff --git a/crawl-ref/source/rltiles/player/leg/leg_armor02.bmp b/crawl-ref/source/rltiles/player/leg/leg_armor02.bmp new file mode 100644 index 0000000000..69271609bd Binary files /dev/null and b/crawl-ref/source/rltiles/player/leg/leg_armor02.bmp differ diff --git a/crawl-ref/source/rltiles/player/leg/leg_armor03.bmp b/crawl-ref/source/rltiles/player/leg/leg_armor03.bmp new file mode 100644 index 0000000000..4d92eaf305 Binary files /dev/null and b/crawl-ref/source/rltiles/player/leg/leg_armor03.bmp differ diff --git a/crawl-ref/source/rltiles/player/leg/leg_armor04.bmp b/crawl-ref/source/rltiles/player/leg/leg_armor04.bmp new file mode 100644 index 0000000000..3b379e6374 Binary files /dev/null and b/crawl-ref/source/rltiles/player/leg/leg_armor04.bmp differ diff --git a/crawl-ref/source/rltiles/player/leg/leg_armor05.bmp b/crawl-ref/source/rltiles/player/leg/leg_armor05.bmp new file mode 100644 index 0000000000..a633224d43 Binary files /dev/null and b/crawl-ref/source/rltiles/player/leg/leg_armor05.bmp differ diff --git a/crawl-ref/source/rltiles/player/leg/loincloth_red.bmp b/crawl-ref/source/rltiles/player/leg/loincloth_red.bmp new file mode 100644 index 0000000000..0190eab889 Binary files /dev/null and b/crawl-ref/source/rltiles/player/leg/loincloth_red.bmp differ diff --git a/crawl-ref/source/rltiles/player/leg/long_red.bmp b/crawl-ref/source/rltiles/player/leg/long_red.bmp new file mode 100644 index 0000000000..024af2cfee Binary files /dev/null and b/crawl-ref/source/rltiles/player/leg/long_red.bmp differ diff --git a/crawl-ref/source/rltiles/player/leg/metal_gray.bmp b/crawl-ref/source/rltiles/player/leg/metal_gray.bmp new file mode 100644 index 0000000000..5a9e945c8a Binary files /dev/null and b/crawl-ref/source/rltiles/player/leg/metal_gray.bmp differ diff --git a/crawl-ref/source/rltiles/player/leg/metal_green.bmp b/crawl-ref/source/rltiles/player/leg/metal_green.bmp new file mode 100644 index 0000000000..827ded5de2 Binary files /dev/null and b/crawl-ref/source/rltiles/player/leg/metal_green.bmp differ diff --git a/crawl-ref/source/rltiles/player/leg/pants16.bmp b/crawl-ref/source/rltiles/player/leg/pants16.bmp new file mode 100644 index 0000000000..d24d82dddc Binary files /dev/null and b/crawl-ref/source/rltiles/player/leg/pants16.bmp differ diff --git a/crawl-ref/source/rltiles/player/leg/pants_black.bmp b/crawl-ref/source/rltiles/player/leg/pants_black.bmp new file mode 100644 index 0000000000..31d59d4e4c Binary files /dev/null and b/crawl-ref/source/rltiles/player/leg/pants_black.bmp differ diff --git a/crawl-ref/source/rltiles/player/leg/pants_blue.bmp b/crawl-ref/source/rltiles/player/leg/pants_blue.bmp new file mode 100644 index 0000000000..cf8a0f90e0 Binary files /dev/null and b/crawl-ref/source/rltiles/player/leg/pants_blue.bmp differ diff --git a/crawl-ref/source/rltiles/player/leg/pants_brown.bmp b/crawl-ref/source/rltiles/player/leg/pants_brown.bmp new file mode 100644 index 0000000000..8ae395f68f Binary files /dev/null and b/crawl-ref/source/rltiles/player/leg/pants_brown.bmp differ diff --git a/crawl-ref/source/rltiles/player/leg/pants_darkgreen.bmp b/crawl-ref/source/rltiles/player/leg/pants_darkgreen.bmp new file mode 100644 index 0000000000..9437ef7539 Binary files /dev/null and b/crawl-ref/source/rltiles/player/leg/pants_darkgreen.bmp differ diff --git a/crawl-ref/source/rltiles/player/leg/pants_l_white.bmp b/crawl-ref/source/rltiles/player/leg/pants_l_white.bmp new file mode 100644 index 0000000000..b1da35bdd8 Binary files /dev/null and b/crawl-ref/source/rltiles/player/leg/pants_l_white.bmp differ diff --git a/crawl-ref/source/rltiles/player/leg/pants_orange.bmp b/crawl-ref/source/rltiles/player/leg/pants_orange.bmp new file mode 100644 index 0000000000..3957002c87 Binary files /dev/null and b/crawl-ref/source/rltiles/player/leg/pants_orange.bmp differ diff --git a/crawl-ref/source/rltiles/player/leg/pants_red.bmp b/crawl-ref/source/rltiles/player/leg/pants_red.bmp new file mode 100644 index 0000000000..8fdc8b71a4 Binary files /dev/null and b/crawl-ref/source/rltiles/player/leg/pants_red.bmp differ diff --git a/crawl-ref/source/rltiles/player/leg/pants_short_brown.bmp b/crawl-ref/source/rltiles/player/leg/pants_short_brown.bmp new file mode 100644 index 0000000000..bc680c2e92 Binary files /dev/null and b/crawl-ref/source/rltiles/player/leg/pants_short_brown.bmp differ diff --git a/crawl-ref/source/rltiles/player/leg/pants_short_brown3.bmp b/crawl-ref/source/rltiles/player/leg/pants_short_brown3.bmp new file mode 100644 index 0000000000..8ec3e71605 Binary files /dev/null and b/crawl-ref/source/rltiles/player/leg/pants_short_brown3.bmp differ diff --git a/crawl-ref/source/rltiles/player/leg/pants_short_darkbrown.bmp b/crawl-ref/source/rltiles/player/leg/pants_short_darkbrown.bmp new file mode 100644 index 0000000000..3879c1c957 Binary files /dev/null and b/crawl-ref/source/rltiles/player/leg/pants_short_darkbrown.bmp differ diff --git a/crawl-ref/source/rltiles/player/leg/pants_short_gray.bmp b/crawl-ref/source/rltiles/player/leg/pants_short_gray.bmp new file mode 100644 index 0000000000..94e23ca02d Binary files /dev/null and b/crawl-ref/source/rltiles/player/leg/pants_short_gray.bmp differ diff --git a/crawl-ref/source/rltiles/player/leg/pj.bmp b/crawl-ref/source/rltiles/player/leg/pj.bmp new file mode 100644 index 0000000000..80fdb7e4be Binary files /dev/null and b/crawl-ref/source/rltiles/player/leg/pj.bmp differ diff --git a/crawl-ref/source/rltiles/player/leg/skirt_blue.bmp b/crawl-ref/source/rltiles/player/leg/skirt_blue.bmp new file mode 100644 index 0000000000..0bcf2202aa Binary files /dev/null and b/crawl-ref/source/rltiles/player/leg/skirt_blue.bmp differ diff --git a/crawl-ref/source/rltiles/player/leg/skirt_green.bmp b/crawl-ref/source/rltiles/player/leg/skirt_green.bmp new file mode 100644 index 0000000000..2d8ed68a96 Binary files /dev/null and b/crawl-ref/source/rltiles/player/leg/skirt_green.bmp differ diff --git a/crawl-ref/source/rltiles/player/leg/skirt_red.bmp b/crawl-ref/source/rltiles/player/leg/skirt_red.bmp new file mode 100644 index 0000000000..6f1164ccaf Binary files /dev/null and b/crawl-ref/source/rltiles/player/leg/skirt_red.bmp differ diff --git a/crawl-ref/source/rltiles/player/leg/skirt_white.bmp b/crawl-ref/source/rltiles/player/leg/skirt_white.bmp new file mode 100644 index 0000000000..f17ce1145b Binary files /dev/null and b/crawl-ref/source/rltiles/player/leg/skirt_white.bmp differ diff --git a/crawl-ref/source/rltiles/player/leg/skirt_white2.bmp b/crawl-ref/source/rltiles/player/leg/skirt_white2.bmp new file mode 100644 index 0000000000..68320f9ec4 Binary files /dev/null and b/crawl-ref/source/rltiles/player/leg/skirt_white2.bmp differ diff --git a/crawl-ref/source/rltiles/player/leg/trouser_green.bmp b/crawl-ref/source/rltiles/player/leg/trouser_green.bmp new file mode 100644 index 0000000000..41e694c8c7 Binary files /dev/null and b/crawl-ref/source/rltiles/player/leg/trouser_green.bmp differ diff --git a/crawl-ref/source/rltiles/tool/bm.c b/crawl-ref/source/rltiles/tool/bm.c new file mode 100644 index 0000000000..cd208cecb2 --- /dev/null +++ b/crawl-ref/source/rltiles/tool/bm.c @@ -0,0 +1,558 @@ +#include +#include +#include +#include "palette.h" + +char cpath[1024]; +/*** PATH separator ***/ + +#if defined(_WIN32)|| defined(WINDOWS) +#define PATHSEP '\\' +#else +#define PATHSEP '/' +#endif + +void process_cpath(char *path){ + int i, pos; +#ifdef LINUX + cpath[0]=0; + return; +#endif + pos = 0; + cpath[0]=0; + printf("path=%s\n",path); + for(i=0;i>5)|(((b)>>5)<<3)|(((g)>>5)<<6) ) +int palr[256],palg[256],palb[256]; + +unsigned int rev16(unsigned char *x) +{ + int r=x[1]; + r = (r<<8)|x[0]; + return r; +} +unsigned int rev32(unsigned char *x) +{ + int r=x[3]; + r = (r<<8)|x[2]; + r = (r<<8)|x[1]; + r = (r<<8)|x[0]; + return r; +} + +/***** BMP read *****/ +int bmread(char *fn, int *x, int *y, unsigned char *buf3[3]) +{ +unsigned char bmHead[14]; +unsigned char bmInfo[40]; + +unsigned char pbuf[1024]; +int i,j,k; +int xx,yy,x0,y0; +FILE *fp; +unsigned char *b0; +int bits, ofbits; + +if(NULL==(fp=fopen(fn,"rb"))) +{ + //printf("no file %s:",fn); + return(1); +} + fread(&bmHead,1,14,fp); + fread(&bmInfo,1,40,fp); + +xx=rev32(&bmInfo[4]); +yy=rev32(&bmInfo[8]); +bits=rev16(&bmInfo[14]); + +//fprintf(stderr, "wx = %d wy = %d\n",xx,yy); + +if(!buf3[0])buf3[0]=malloc(xx*yy); +if(!buf3[1])buf3[1]=malloc(xx*yy); +if(!buf3[2])buf3[2]=malloc(xx*yy); + +ofbits = rev32(&bmHead[10]); + +if(bits==24){ +fseek(fp, ofbits, SEEK_SET); + +b0=malloc(xx*yy*3); +fread(b0,1,3*xx*yy,fp); +fclose(fp); +j=0; + for(y0=yy-1;y0>=0;y0--){ + for(x0=0;x0=0;y0--){ +for(x0=0;x0>4; +j++; + + +buf3[0][i]=pbuf[ k*4+2 ]; +buf3[1][i]=pbuf[ k*4+1 ]; +buf3[2][i]=pbuf[ k*4+0 ]; +}} +free(b0); +*x=xx;*y=yy; +return(0); + + } + + + +b0=malloc(xx*yy); +//k=buf[46]+buf[47]*256; +k=ofbits -54; +fread(pbuf,1,k,fp); +fread(b0,1,xx*yy,fp); +fclose(fp); + +j=0; +for(y0=yy-1;y0>=0;y0--){ +for(x0=0;x0> 0)&0xff) ,fp); +fputc( ((i>> 8)&0xff) ,fp); +fputc( ((i>>16)&0xff) ,fp); +fputc( ((i>>24)&0xff) ,fp); +} + +void put2(i,fp) int i;FILE *fp;{ +fputc( ((i>> 0)&0xff) ,fp); +fputc( ((i>> 8)&0xff) ,fp); } + +void bmwrite(char *fn, int x, int y, unsigned char *buf3[3]) +{ +FILE *fp; +int i,j,k,xx,yy; + +hashflag=1; +if(fn[0]==0) fp=stdout; else fp=fopen(fn,"wb"); +if (!fp) +{ + printf("Error opening %s.\n", fn); + exit(-1); +} +fputc('B',fp);fputc('M',fp); +put4(1024+54+x*y,fp); +put4(0,fp); +put4(0x436,fp); +put4(0x28,fp); +put4(x,fp); put4(y,fp); +put2(1,fp);put2(8,fp); +put4(0,fp);put4(x*y,fp);put4(0xb6d,fp);put4(0xb6d,fp); +put4(256,fp);put4(256,fp); +fwrite(pbuf,1,1024,fp); +for(yy=y-1;yy>=0;yy--){ +for(xx=0;xx=0;yy--){ +for(xx=0;xx255)udat[i]=255;} + +if(buf3[0][xx+yy*x]==0x47 && buf3[1][xx+yy*x]==0x6c && buf3[2][xx+yy*x]==0x6c) + do_ep=0; +if (flag!=NULL) +{ + if (flag[xx+yy*x]==0) do_ep=0; +} +if (do_ep == 0) +k=cidx( buf3[0][xx+yy*x],buf3[1][xx+yy*x],buf3[2][xx+yy*x]); +else +k=cidx( udat[0],udat[1],udat[2]); + +buf[xx+yy*x]=k; +//fprintf(stderr,"Y=%d xx=%d\n",yy,xx); + +putdat[0]=palr[k]; +putdat[1]=palg[k]; +putdat[2]=palb[k]; +for(i=0;i<3;i++) { + err[i]=(idat[i]-putdat[i]+8)/16; + //if(flag[xx+yy*x]!=1)err[i]=0; + err_c[i][xx+1+1] += err[i]*7; + err_n[i][xx-1+1] += err[i]*3; + err_n[i][xx+0+1] += err[i]*5; + err_n[i][xx+1+1] += err[i]; +}/**i**/ +}/**x**/ +}else{ +for(xx=x-1;xx>=0;xx--){ +int do_ep=1; +idat[0] = buf3[0][ xx+yy*x]; +idat[1] = buf3[1][ xx+yy*x]; +idat[2] = buf3[2][ xx+yy*x]; +for(i=0;i<3;i++) {idat[i] += err_c[i][xx+1]; +udat[i]=idat[i];if(udat[i]<0)udat[i]=0; +if(udat[i]>255)udat[i]=255;} + +if(buf3[0][xx+yy*x]==0x47 && buf3[1][xx+yy*x]==0x6c && buf3[2][xx+yy*x]==0x6c) + do_ep=0; +if (flag!=NULL) +{ + if (flag[xx+yy*x]==0) do_ep=0; +} +if (do_ep == 0) +k=cidx( buf3[0][xx+yy*x],buf3[1][xx+yy*x],buf3[2][xx+yy*x]); +else +k=cidx( udat[0],udat[1],udat[2]); + +buf[xx+yy*x]=(unsigned char)k; +putdat[0]=palr[k]; +putdat[1]=palg[k]; +putdat[2]=palb[k]; +for(i=0;i<3;i++) { + err[i]=(idat[i]-putdat[i]+8)/16; + //if(flag[xx+yy*x]!=1)err[i]=0; + + err_c[i][xx-1+1] += err[i]*7; + err_n[i][xx+1+1] += err[i]*3; + err_n[i][xx+0+1] += err[i]*5; + err_n[i][xx-1+1] += err[i]; +}/*i*/ +}/*x*/ + +}/*else*/ +}/*y*/ + +for(i=0;i<3;i++){ +free(err_c[i]); +free(err_n[i]);} + +if(fn[0]==0) fp=stdout; else fp=fopen(fn,"wb"); +fputc('B',fp);fputc('M',fp); +put4(1024+54+x*y,fp); +put4(0,fp); +put4(0x436,fp); +put4(0x28,fp); +put4(x,fp);put4(y,fp); +put2(1,fp);put2(8,fp); +put4(0,fp);put4(x*y,fp);put4(0xb6d,fp);put4(0xb6d,fp); +put4(256,fp);put4(256,fp); +fwrite(pbuf,1,1024,fp); +for(yy=y-1;yy>=0;yy--){ +for(xx=0;xx>16; + int g= (col>>8)&0xff; + int b= (col)&0xff; + + reg_rgb( ix,r,g,b); + palr[ix]=r; + palg[ix]=g; + palb[ix]=b; + i+=2; + } +} + +void stdpal(){ +int i; + + for(i=0;i<256;i++){ + palr[i]=pbuf[i*4+2]; + palg[i]=pbuf[i*4+1]; + palb[i]=pbuf[i*4+0]; + } + for(i=0;i +#include +#include + +extern int bmread(char *fn, int *x, int *y, unsigned char *buf3[3]); +extern void fixalloc(char *buf[3], int size); +extern void bmwrite(char *fn, int x, int y, unsigned char *buf3[3]); +extern void bmwrite24(char *fn, int x, int y, unsigned char *buf3[3]); +extern void bmwrite_dither(char *fn, int x, int y, unsigned char *buf3[3], + unsigned char *flag); +extern void stdpal(); +extern void myfget(char *ss, FILE *fp); +extern int getval(char *buf, char *tag, int *val); +extern int getname(char *buf, char *tag, char *name); +extern void process_cpath(char *path); +extern void newgold(); + + +/*** PATH to this program ***/ +extern char cpath[1024]; +#if defined(_WIN32)|| defined(WINDOWS) +#define PATHSEP '\\' +#else +#define PATHSEP '/' +#endif + diff --git a/crawl-ref/source/rltiles/tool/dcpl.c b/crawl-ref/source/rltiles/tool/dcpl.c new file mode 100644 index 0000000000..ef9b59fb31 --- /dev/null +++ b/crawl-ref/source/rltiles/tool/dcpl.c @@ -0,0 +1,581 @@ +#include "bm.h" + +/** Some global **/ +//Flags +int corpse, mesh, slant,rim; +// Files +FILE *mfp,*sfp; +//Strings +char outname[1024], subsname[200], sdir[200]; +char realname[1024]; + +/** Parts related **/ +int parts_n; +#define MAXPARTS 20 +int parts_nx[MAXPARTS], parts_ny[MAXPARTS]; +int parts_ox[MAXPARTS], parts_oy[MAXPARTS]; +int parts_start[MAXPARTS], parts_number[MAXPARTS]; + +char parts_names[MAXPARTS][64]; + +int parts_comment_ofs[MAXPARTS]; +int n_comments, pos_comment; +#define MAXTOTAL 1000 +int part_comment_ofs[MAXTOTAL]; +char comment[MAXTOTAL*60]; + +int part_x,part_y; +int part_n; +int part_nx,part_ny; +char part_name[32]; +int part_wx, part_wy, part_ox, part_oy; + +/*** BUFFER MEMORY ***/ +#define XX 30 +int xx0; +#define LX (XX) + + +/*** tmp buffer, floor , final output, final queue ***/ +unsigned char *tbuf[3],*fbuf[3],*dbuf[3], *obuf[3]; + +/*** normal floor*/ +#define WOADR(x,y,xx,yy) \ +((x)*32+xx+ xx0*32*((y)*32+yy)) + +#define ADR(x,y) ((x)+(y)*32) + +/*** output width/height in block ***/ +int bx,by; + +/****************************/ +/* Wrapper routines ********/ +/**************************/ +int load_pxxx(fnam) + char *fnam; +{ + int x,y; + + sprintf(realname,"%s%s%c%s.bmp",cpath,sdir,PATHSEP,fnam); + if(bmread(realname,&x,&y,tbuf)==0) return 0; + + sprintf(realname,"%s%s.bmp",cpath,fnam); + if(bmread(realname,&x,&y,tbuf)==0) return 0; + + if(subsname[0]) + { + sprintf(realname,"%s%s%c%s.bmp",cpath,sdir,PATHSEP,subsname); + if(bmread(realname,&x,&y,tbuf)==0) return 0; + + sprintf(realname,"%s%s.bmp",cpath,subsname); + if(bmread(realname,&x,&y,tbuf)==0) return 0; + } + + return 1; +} + + +void clr_buf() +{ +int xx,yy; + + for(xx=0;xx<32;xx++) + { + for(yy=0;yy<32;yy++) + { + dbuf[0][ ADR(xx,yy) ]=0x47; + dbuf[1][ ADR(xx,yy) ]=0x6c; + dbuf[2][ ADR(xx,yy) ]=0x6c; + } + } +} + +void cp_floor() +{ + int xx,yy,c; + for(xx=0;xx<32;xx++) + for(yy=0;yy<32;yy++) + for(c=0;c<3;c++) + dbuf[c][ ADR(xx,yy) ]=fbuf[c][ ADR(xx,yy)]; +} + +void cp_monst_32() +{ + int xx,yy,c,dd[3],ad; + char dflag[33][32]; + int xmin,xmax,ymin,ymax,ox,oy; + + if(corpse==1 ) + { + xmin=ymin=31; + xmax=ymax=0; + for(xx=0;xx<32;xx++){ + for(yy=0;yy<32;yy++){ + ad=ADR(xx,yy); + for(c=0;c<3;c++)dd[c]=tbuf[c][ad]; + if( (dd[0]==0x47)&&(dd[1]==0x6c)&& (dd[2]==0x6c))continue; + if( (dd[0]==0)&&(dd[1]==0)&& (dd[2]==0))continue; + if(xxxmax)xmax=xx; + if(yyymax)ymax=yy; + } + } + ox=(xmax+xmin)/2-16; + oy=(ymax+ymin)/2-16; + } + + /** copy loop **/ + for(xx=0;xx<32;xx++){ + for(yy=0;yy<32;yy++){ + dflag[xx][yy]=0; + ad=ADR(xx,yy); + + if(corpse==1) + { + int x1=xx+ox; + int y1=(yy+oy)*2-16; + int cy=18; + if(xx<4 || xx>=28)cy+=2;else + if(xx<12 || xx>=20) cy+=1; + + if(yy>=cy-1 && yy<=cy+0)continue; + x1 += (y1-16)/4; + if(y1>=cy){y1-=2;x1-=3;}else {y1 +=2;x1+=3;} + if(x1<0 || x1>=32 || y1<0 || y1>=32)continue; + ad=ADR(x1,y1); + } + + /*** normal***/ + for(c=0;c<3;c++){dd[c]=tbuf[c][ad];} + + if(mesh==2) + { + if( (dd[0]!=0x47)||(dd[1]!=0x6c)|| (dd[2]!=0x6c)) + { + if( ((xx+yy)&1) ==0)dd[0]=dd[1]=dd[2]=0; + } + } + if(mesh==1) + { + if((((xx/2)+(yy/2))&1) ==1)dd[0]=dd[1]=dd[2]=0; + } + + if( (dd[0]==0x47)&&(dd[1]==0x6c)&& (dd[2]==0x6c))continue; + if( (corpse==1) &&(dd[0]==0)&&(dd[1]==0)&& (dd[2]==0))continue; + + for(c=0;c<3;c++) {dbuf[c][ADR(xx,yy)]=dd[c];} + dflag[xx][yy]=1; + } + }/*XY*/ + +#if 1 + if(corpse==1) + { + for(xx=0;xx<32;xx++) + { + int cy=18; + if(xx<4 || xx>=28)cy+=2;else + if(xx<12 || xx>=20) cy+=1; + if(dflag[xx][cy-2]==1 && dflag[xx][cy+1]==1 ) + { + for(yy=cy-1;yy<=cy-0;yy++) + { + dbuf[0][ADR(xx,yy)]=32; + dbuf[1][ADR(xx,yy)]=0; + dbuf[2][ADR(xx,yy)]=0; + dflag[xx][yy]=1; + } + } + } + + /** shade**/ + for(xx=1;xx<32;xx++){ + for(yy=1;yy<32;yy++){ + if(dflag[xx][yy]==0 && dflag[xx-1][yy-1]==1) + { + dbuf[0][ADR(xx,yy)]=0; + dbuf[1][ADR(xx,yy)]=0; + dbuf[2][ADR(xx,yy)]=0; + } + } + } + + for(xx=3;xx<32;xx++){ + for(yy=3;yy<32;yy++){ + if(dflag[xx][yy]==0 && dflag[xx-1][yy-1]==0 + && dflag[xx-2][yy-2]==1 && dflag[xx-3][yy-3]==1) + { + dbuf[0][ADR(xx,yy)]=0; + dbuf[1][ADR(xx,yy)]=0; + dbuf[2][ADR(xx,yy)]=0; + } + } + } + + } +#endif +} + + +void bflush() +{ + int xx,yy,c; + for(xx=part_ox;xx=32) i++; + tmp[i]=0; + + if(getname(tmp,"back",st)) + { + /*** Set Background BMP (format "%back bmpname") ***/ + if(strncmp(st,"none",4)==0) + { + /** clear **/ + for(i=0;i<32*32;i++){fbuf[0][i]=0x47;fbuf[1][i]=fbuf[2][i]=0x6c;} + } + else + { + load_pxxx(st); + for(i=0;i<32*32;i++)for(j=0;j<3;j++)fbuf[j][i]=tbuf[j][i]; + } + continue; + } + + if (getname(tmp,"include",st)){ + char fn2[200]; + sprintf(fn2,"%s%s",cpath, st); + if(strcmp(fname,fn2)!=0) process_config(fn2); + continue; + } + + if (getval(tmp,"slant",&slant)) continue; + if (getval(tmp,"rim",&rim)) continue; + if (getval(tmp,"mesh",&mesh)) continue; + if (getval(tmp,"corpse",&corpse)) continue; + if (getname(tmp,"subst",subsname)) continue; + if (getname(tmp,"sdir",sdir)) continue; + if (getname(tmp,"name", outname)) continue; + if (getval(tmp,"width",&xx0)) continue; + /****/ + if (getname(tmp,"parts_ctg",part_name)) + { + if(part_n!=0) + flush_part(); + part_n=0; + strcpy(parts_names[parts_n],part_name); + parts_comment_ofs[parts_n] = n_comments; + parts_start[parts_n]=bx+by*xx0; + fprintf(sfp,"#define TILEP_PART_%s %d\n",part_name, parts_n); + fprintf(sfp,"enum %s {\n",part_name); + fprintf(sfp," TILEP_%s_000,\n",part_name); + + continue; + } + + if (getval(tmp,"parts_wx",&part_wx)) + { + parts_nx[parts_n]=part_nx=32/part_wx; + continue; + } + + if (getval(tmp,"parts_wy",&part_wy)) + { + parts_ny[parts_n]=part_ny=32/part_wy; + continue; + } + + if (getval(tmp,"parts_ox", &part_ox)) + { + parts_ox[parts_n]=part_ox; + continue; + } + + if (getval(tmp,"parts_oy", &part_oy)) + { + parts_oy[parts_n]=part_oy; + continue; + } + + /****/ + if (tmp[0]=='#' || tmp[0]<32){ + if(tmp[0]=='#') fprintf(sfp,"//%s\n",tmp); + continue; + } + + if (strcmp(tmp, "%end") == 0) + { + fprintf(sfp," N_PART_%s};\n\n",part_name); + continue; + } + /*** normal bitmap ***/ +#define WID 32 + clr_buf(); + cp_floor(); + + i=0; + while(i<99 && tmp[i]>32)i++; + tmp[i]=0; strcpy(st, &tmp[i+1]); + load_monst(tmp); + + fprintf(mfp, + "\"%s\"\n", + bx*WID + part_x*part_wx, + by*WID + part_y*part_wy, + bx*WID + part_x*part_wx + part_wx-1, + by*WID + part_y*part_wy + part_wy-1, + st, realname); + + if(!strstr(st,"IGNORE_COMMENT")){ + nuke=strstr(st,"/*");if(nuke)*nuke=0; + if (st && strcmp(st,"") != 0 && strcmp(st, "\n") != 0) + { + fprintf(sfp," TILEP_%s_%s,\n", part_name, st); + } + else + { + fprintf(sfp," FILLER_%s_%d,\n", part_name, part_n); + } + + i=strlen(st); + strncpy(&comment[pos_comment],st,i); + part_comment_ofs[n_comments]=pos_comment; + pos_comment += i; + n_comments++; + + // n_comments = pos_comment=0; + //int parts_comment_ofs[]; + //int part_comment_ofs[MAXTOTAL]; + //char comment[MAXTOTAL*60]; + } + else + { + i=0; + part_comment_ofs[n_comments]=pos_comment; + pos_comment += i; + n_comments++; + } + + part_n++; + part_x++; + if(part_x==part_nx) + { + part_x=0; + part_y++; + if(part_y==part_ny) + { + part_y=0; + bx++; + if(bx==xx0) + { + bx=0; + by++; + } + } + } + + /* normal */ + + }/* while */ + fclose(fp); +} + +/********************************************/ + +int main(int argc, char **argv) +{ + + int i,j,k,l,m,n,fl; + char fn[100],st2[100]; + + slant=corpse=mesh=rim=0; + + bx=by=0; + + /* parts related */ + parts_n=0; + + part_x=part_y=0; + part_n=0; + part_wx=part_wy=32; + part_ox=part_oy=0; + + /* comments */ + n_comments = pos_comment=0; + //int parts_comment_ofs[]; + //int part_comment_ofs[MAXTOTAL]; + //char comment[MAXTOTAL*60]; + + + process_cpath(argv[0]); + + xx0=XX; + subsname[0]=0; + sdir[0]=0; + realname[0]=0; + + stdpal(); + fixalloc(tbuf,64*64); + fixalloc(dbuf,64*64); + fixalloc(fbuf,64*64); + fixalloc(obuf, 32*64*(64)*64); + + + strcpy(outname,"tile"); + + sprintf(fn,"%smap.htm",cpath); + mfp=fopen(fn,"w"); + if(mfp==NULL){ + printf("Error could not open %s\nHit return",fn); + getchar(); + exit(1); + } + + sprintf(fn,"%stiledef-p.h",cpath); + sfp=fopen(fn,"w"); + if(sfp==NULL){ + printf("Error could not open %s\nHit return",fn); + getchar(); + exit(1); + } + fprintf(sfp,"/* Automatically generated by tile generator. */\n"); + + fprintf(mfp,"\n"); + fprintf(mfp,"\n"); + + printf("%s\ncpath=%s\n",argv[0],cpath); + if(argc==1) + sprintf(fn,"%sdc-pl.txt",cpath); + else + strcpy(fn,argv[1]); + process_config(fn); + + if(part_n!=0)flush_part(); + + fprintf(sfp,"\n#define TILEP_TOTAL %d\n",bx+by*xx0); + fprintf(sfp,"#define TILEP_PER_ROW %d\n\n",xx0); + + fprintf(sfp,"#define TILEP_PARTS_TOTAL %d\n\n",parts_n); + + fprintf(sfp,"const int tilep_parts_start[TILEP_PARTS_TOTAL]=\n {"); + for(i=0;i\n", outname); + + + fclose(mfp); + i=by*32;if(bx!=0)i+=32; + + sprintf(fn,"%s%s.bmp",cpath,outname); + bmwrite(fn,xx0*32,i,obuf); + +} diff --git a/crawl-ref/source/rltiles/tool/dcqv.c b/crawl-ref/source/rltiles/tool/dcqv.c new file mode 100644 index 0000000000..88fe9cbbc1 --- /dev/null +++ b/crawl-ref/source/rltiles/tool/dcqv.c @@ -0,0 +1,847 @@ +#include "bm.h" + +/** Some global **/ +int corpse=0, mesh =0,slant=0; +int rim=0; +int exp_wall; +int dsize; +int sx32 = 16; +int sy32 = 24; +int end_normal = 0; + +FILE *mfp,*sfp; +char outname[1024], ctgname[100], subsname[100]; +char sdir[300]; + + +/*** BUFFER MEMORY ***/ +#define XX 16 +int xx0; +#define YY 30 +#define LX (XX) + +/*** tmp buffer, floor , final output, final queue ***/ +unsigned char *tbuf[3],fbuf[3][128*64], + *obuf[3],dbuf[3][128*64]; + + +unsigned char wallbuf[4][3][32*48]; +unsigned char wall2buf[3][128*64]; + + +int f_wx; + +/*** normal floor*/ +#define WOADR(x,y,xx,yy) \ +((x)*64+xx+ xx0*64*((y)*64+yy)) + + +#define ADR32(x,y) ((x)+(y)*32) +#define ADR64(x,y) ((x)+(y)*64) + + +/*** output width/height in block ***/ +int bx,by; + + +/**************************/ +/* Wrapper routines *******/ +/**************************/ + +int load_it(char *fnam, int *wx, int *wy) +{ + char fn[100]; + sprintf(fn,"%s%s%c%s.bmp",cpath,sdir,PATHSEP,fnam); + if(bmread(fn,wx,wy,tbuf)==0) return 0; + + sprintf(fn,"%s%s.bmp",cpath,fnam); + if(bmread(fn,wx,wy,tbuf)==0) return 0; + + if(subsname[0]){ + sprintf(fn,"%s%s%c%s.bmp",cpath,sdir,PATHSEP,subsname); + if(bmread(fn,wx,wy,tbuf)==0) return 0; + + sprintf(fn,"%s%s.bmp",cpath,subsname); + if(bmread(fn,wx,wy,tbuf)==0) return 0; + } + +return 1; +} + + +void clr_dbuf() { +int xx,yy; + +for(xx=0;xx<64;xx++){ +for(yy=0;yy<64;yy++){ +dbuf[0][ ADR64(xx,yy) ]=0x47; +dbuf[1][ ADR64(xx,yy) ]=0x6c; +dbuf[2][ ADR64(xx,yy) ]=0x6c; +}} +} + +#define TILEX 64 +#define TILEY 64 +void make_rim(){ +static unsigned char dflag[TILEX][TILEY]; +int x,y,c,dd[3],ad; +int n0,n1,n2; + +for(y=0;y0){ + if(dflag[x-1][y]==0) n0++; + if(dflag[x-1][y]==1) n1++; + if(dflag[x-1][y]==2) n2++; +} + +if(y>0){ + if(dflag[x][y-1]==0) n0++; + if(dflag[x][y-1]==1) n1++; + if(dflag[x][y-1]==2) n2++; +} + +if(xxmax)xmax=xx; + if(yyymax)ymax=yy; + }}/*xy**/ + ox=(xmax+xmin)/2-16; + oy=(ymax+ymin)/2-16; +} + +if(slant==1){ + for(xx=0;xx<32;xx++){ + for(yy=0;yy<32;yy++){ + int x1 = xx-yy+32; + int y1= 32+(xx+yy)/2; + ad = ADR32(xx,yy); + for(c=0;c<3;c++){dd[c]=tbuf[c][ad];} + if(mesh==2){ + if( (dd[0]!=0x47)||(dd[1]!=0x6c)|| (dd[2]!=0x6c)){ + if( ((x1+y1)&1) ==0)dd[0]=dd[1]=dd[2]=0; + } + } + if(mesh==1){ + if( (((x1/2)+(y1/2))&1) ==1)dd[0]=dd[1]=dd[2]=0; + } + if( (dd[0]==0x47)&&(dd[1]==0x6c)&& (dd[2]==0x6c))continue; + for(c=0;c<3;c++) {dbuf[c][ADR64(x1,y1)]=dd[c];} + }} +return; +} + +if(dsize==1){ + for(xx=0;xx<32;xx++){ + for(yy=0;yy<32;yy++){ + int x1 = xx*2; + int y1= yy*2; + ad = ADR32(xx,yy); + for(c=0;c<3;c++){dd[c]=tbuf[c][ad];} + if(mesh==2){ + if( (dd[0]!=0x47)||(dd[1]!=0x6c)|| (dd[2]!=0x6c)){ + if( ((x1+y1)&1) ==0)dd[0]=dd[1]=dd[2]=0; + } + } + if(mesh==1){ + if( (((x1/2)+(y1/2))&1) ==1)dd[0]=dd[1]=dd[2]=0; + } + if( (dd[0]==0x47)&&(dd[1]==0x6c)&& (dd[2]==0x6c))continue; + for(c=0;c<3;c++) + { + dbuf[c][ADR64(x1,y1)]=dd[c]; + dbuf[c][ADR64(x1+1,y1)]=dd[c]; + dbuf[c][ADR64(x1,y1+1)]=dd[c]; + dbuf[c][ADR64(x1+1,y1+1)]=dd[c]; + } + }} +return; +} + + +for(xx=0;xx<32;xx++){ +for(yy=0;yy<32;yy++){ + dflag[xx][yy]=0; + ad=ADR32(xx,yy); + + if(corpse==1){ + int x1=xx+ox; + int y1=(yy+oy)*2-16; + int cy=18; + if(xx<4 || xx>=28)cy+=2;else + if(xx<12 || xx>=20) cy+=1; + + if(yy>=cy-1 && yy<=cy+0)continue; + x1 += (y1-16)/4; + if(y1>=cy){y1-=2;x1-=3;}else {y1 +=2;x1+=3;} + if(x1<0 || x1>=32 || y1<0 || y1>=32)continue; + ad=ADR32(x1,y1); + } + + /*** normal***/ + for(c=0;c<3;c++){dd[c]=tbuf[c][ad];} + if(mesh==2) + { + if( (dd[0]!=0x47)||(dd[1]!=0x6c)|| (dd[2]!=0x6c)) + { + if( ((xx+yy)&1) ==0)dd[0]=dd[1]=dd[2]=0; + } + } + else if(mesh==1) + { + if( (((xx/2)+(yy/2))&1) ==1)dd[0]=dd[1]=dd[2]=0; + } + + if( (dd[0]==0x47)&&(dd[1]==0x6c)&& (dd[2]==0x6c))continue; + if( (corpse==1) &&(dd[0]==0)&&(dd[1]==0)&& (dd[2]==0))continue; + + for(c=0;c<3;c++) {dbuf[c][ADR64(sx32+xx,sy32+yy)]=dd[c];} + dflag[xx][yy]=1; +}} + + +#if 1 +if(corpse==1){ +for(xx=0;xx<32;xx++){ +int cy=18; +if(xx<4 || xx>=28)cy+=2;else +if(xx<12 || xx>=20) cy+=1; +if(dflag[xx][cy-2]==1 && dflag[xx][cy+1]==1 ){ +for(yy=cy-1;yy<=cy-0;yy++){ dbuf[0][ADR64(16+xx,32+yy)]=32; +dbuf[1][ADR64(16+xx,32+yy)]=0;dbuf[2][ADR64(16+xx,32+yy)]=0; +dflag[xx][yy]=1; +}} +} + +/** shade**/ +for(xx=1;xx<32;xx++){ +for(yy=1;yy<32;yy++){ +if(dflag[xx][yy]==0 && dflag[xx-1][yy-1]==1){ +dbuf[0][ADR64(xx,yy)]=0; +dbuf[1][ADR64(xx,yy)]=0; +dbuf[2][ADR64(xx,yy)]=0; +} +}} + +for(xx=3;xx<32;xx++){ +for(yy=3;yy<32;yy++){ +if(dflag[xx][yy]==0 && dflag[xx-1][yy-1]==0 + && dflag[xx-2][yy-2]==1 && dflag[xx-3][yy-3]==1){ +dbuf[0][ADR64(xx,yy)]=0; +dbuf[1][ADR64(xx,yy)]=0; +dbuf[2][ADR64(xx,yy)]=0; +} +}} + +} +#endif +} + +void cp_monst_64(){ +int xx,yy,c,dd[3],ad; +int dflag[64][64]; + +for(xx=0;xx<64;xx++){ +for(yy=0;yy<64;yy++){ + dflag[xx][yy]=0; + ad=ADR64(xx,yy); + + if(corpse==1) + { + int y1=2*(yy-26); + int x1=32+(xx-32)*5/4+(y1-32)*3/4; + + y1 -= (xx-32)/3; + if(x1<0 || x1>=64 || y1<0 || y1>=64)continue; + ad=ADR64(x1,y1); + } + + /*** normal***/ + for(c=0;c<3;c++){dd[c]=tbuf[c][ad];} + + if( (corpse==1) &&(dd[0]==0)&&(dd[1]==0)&& (dd[2]==0))continue; + + if(mesh==2) + { + if( (dd[0]!=0x47)||(dd[1]!=0x6c)|| (dd[2]!=0x6c)) + if( ((xx+yy)&1) ==0)dd[0]=dd[1]=dd[2]=0; + } + + if(mesh==1) + if( (((xx/2)+(yy/2))&1) ==1)dd[0]=dd[1]=dd[2]=0; + + if( (dd[0]==0x47)&&(dd[1]==0x6c)&& (dd[2]==0x6c))continue; + + dflag[xx][yy]=1; + + for(c=0;c<3;c++) {dbuf[c][ADR64(xx,yy)]=dd[c];} +}} + +if (corpse == 1) +{ + for(yy=0;yy<64;yy++) + { + int thick=0; + for(xx=0;xx<64;xx++) + { + if(dflag[xx][yy]==1) + { + thick++; + if (thick>15) thick=15; + continue; + } + if (thick>0) + { + for(c=0;c<3;c++) {dbuf[c][ADR64(xx,yy)]=0;} + thick -= 3; + if (thick<0) thick=0; + } + } + } + + for(xx=0;xx<64;xx++) + { + int thick=0; + for(yy=0;yy<64;yy++) + { + if(dflag[xx][yy]==1) + { + thick++; + if (thick>15) thick=15; + continue; + } + if (thick>0) + { + for(c=0;c<3;c++) {dbuf[c][ADR64(xx,yy)]=0;} + thick -= 5; + if (thick<0) thick=0; + } + } + } + +} + + +} + + +void cp_monst_4864(){ +int xx,yy,c,dd[3],ad; +for(xx=0;xx<48;xx++){ +for(yy=0;yy<64;yy++){ + ad= xx+yy*48; + /*** normal***/ + for(c=0;c<3;c++){dd[c]=tbuf[c][ad];} + if(mesh==2) + { + if( (dd[0]!=0x47)||(dd[1]!=0x6c)|| (dd[2]!=0x6c)) + if( ((xx+yy)&1) ==0)dd[0]=dd[1]=dd[2]=0; + } + + if(mesh==1) + if( (((xx/2)+(yy/2))&1) ==1)dd[0]=dd[1]=dd[2]=0; + + if( (dd[0]==0x47)&&(dd[1]==0x6c)&& (dd[2]==0x6c))continue; + + for(c=0;c<3;c++) {dbuf[c][8+xx+yy*64]=dd[c];} +}} +} + +void bflush(){ +int xx,yy,c; +if(rim==1) make_rim(); + +for(xx=0;xx<64;xx++){ +for(yy=0;yy<64;yy++){ +for(c=0;c<3;c++){ +obuf[c][WOADR(bx,by,xx,yy)]= dbuf[c][ADR64(xx,yy)]; +}}} +} + + +void copy_wall(int wall_ix, int xofs, int yofs){ +int xx,yy,c; +unsigned char dd[3]; + for(xx=0;xx<64;xx++){ + for(yy=0;yy<64;yy++){ + int x=xx-xofs-16; + int y=yy-yofs-8; + int ad = x+y*32; + if(x<0 || y<0 || x>=32 || y>=48) continue; + for(c=0;c<3;c++){dd[c]=wallbuf[wall_ix][c][ad];} + if( (dd[0]==0x47)&&(dd[1]==0x6c)&& (dd[2]==0x6c))continue; + for(c=0;c<3;c++) {dbuf[c][ADR64(xx,yy)]=dd[c];} + }} +} + +void copy_wall_vert(int wall_ix, int xofs, int yofs){ +int xx,yy,c,ymax; +unsigned char dd[3]; + for(xx=0;xx<64;xx++){ + for(yy=0;yy<64;yy++){ + int x=xx-xofs-16; + int y=yy-yofs-8; + int ad = x+y*32; + if(x<0 || y<0 || x>=32 || y>=48) continue; + + ymax= 8+x/2; + if(ymax> 8+(31-x)/2) ymax=8+(31-x)/2; + if(y 8+(31-xx)/2) ymax=8+(31-xx)/2; + for(yy=0;yy=32)ix +=1; + if(2*yy-xx >=0 )ix +=2; + for(c=0;c<3;c++)wallbuf[ix][c][xx+yy*32]=tbuf[c][xx+yy*32]; + } + + for(yy=ymax;yy<48;yy++){ + if(xx<8) ix=2;else if(xx<24) ix=3; else ix=1; + for(c=0;c<3;c++)wallbuf[ix][c][xx+yy*32]=tbuf[c][xx+yy*32]; + } +}//xx + +/* + 0 +1 1 2 2 + 3 4 5 + 6 7 8 9 + A B C +4 D E 8 + F +*/ + +for(ix=0;ix<16;ix++){ + clr_dbuf(); + if(f_wx==32)cp_floor_32(); else cp_floor_64(); + + if((ix&3)==3) copy_wall(3,0,-16); + + if(ix&1) copy_wall(1,-16,-8); + if(ix&2) copy_wall(2,16,-8); + + if(ix&1) copy_wall(3,-16,-8); + copy_wall(0, 0,0); + if(ix&2) copy_wall(3,16,-8); + + if((ix&5)==5) {copy_wall(1,-32,0);copy_wall_vert(2,-16,0);} + copy_wall(2,0,0); + copy_wall(1,0,0); + if((ix&10)==10) {copy_wall(2,32,0);copy_wall_vert(1,16,0);} + + if(ix&4) {copy_wall(0,-16,8);copy_wall_vert(3,-16,0);} + copy_wall(3,0,0); + if(ix&8) {copy_wall(0,16,8);copy_wall_vert(3,16,0);} + + if(ix&4) {copy_wall(1,-16,8);copy_wall_vert(2,0,8);} + if(ix&8) {copy_wall(2,16,8); copy_wall_vert(1,0,8);} + if((ix&12)==12) {copy_wall(0,0,16);copy_wall_vert(3,0,8);} + + bflush(); + bx++;if(bx==xx0){bx=0;by++;} + }/*ix*/ +} + + +static void copy_wall2_h1(int ix, int xofs, int yofs){ +int xx,yy,c,ad; + +unsigned char dd[3]; + for(xx=0;xx<64;xx++){ + for(yy=0;yy<64;yy++){ + int x=xx-xofs; + int y=yy-yofs;; + ad = x+64+y*128; + if (x<0 || y<0 || x>63 || y>63)continue; + if(2*y>=x+32) continue; + if(2*y>=95-x) continue; + if((ix%3)==0) if (2*y>=47-x)continue; + if((ix%3)==1) if ((2*y<47-x) || (2*y>=79-x))continue; + if((ix%3)==2) if(2*y<79-x)continue; + + if((ix/3)==0) if(2*y>=x-16)continue; + if((ix/3)==1) if((2*y=x+16))continue; + if((ix/3)==2) if(2*y63 || y>63)continue; + if(2*y>=x+32) continue; + if(2*y>=95-x) continue; + + if ((ix%2)==0)if (2*y>=63-x)continue; + if((ix%2)==1) if (2*y<63-x)continue; + + if((ix/2)==0)if(2*y>=x)continue; + if((ix/2)==1)if(2*y=64 || y>=64) continue; + + ymax= 16+x/2; + if(x>=32) ymax=16+(63-x)/2; + if(yymax+32)continue; + + if(ix==0) if(x>=8)continue; + if(ix==1) if(x<8 || x>=24)continue; + if(ix==2) if(x<24 || x>=40)continue; + if(ix==3) if(x<40 || x>=56)continue; + if(ix==4) if(x<56)continue; + + for(c=0;c<3;c++){dd[c]=tbuf[c][ad];} + if( (dd[0]==0x47)&&(dd[1]==0x6c)&& (dd[2]==0x6c))continue; + for(c=0;c<3;c++) {dbuf[c][ADR64(xx,yy)]=dd[c];} + }} +} +void expand_wall2(){ +//void copy_wall2_h(int kind, int ix, int xofs, int yofs) +int ix; +exp_wall=1; + +for(ix=0;ix<16;ix++){ + clr_dbuf(); + if(f_wx==32)cp_floor_32(); else cp_floor_64(); + +if((ix&3)==0) copy_wall2_h1(0, 0, 8); +if((ix&3)==1) copy_wall2_h1(1, -16, 0); +if((ix&3)==2) copy_wall2_h1(3, 16, 0); +if((ix&3)==3) copy_wall2_h2(0, 0, 0); + +if((ix&5)==0) copy_wall2_h1(6, 16, 0); +if((ix&5)==1) copy_wall2_h1(7, 0, -8); +if((ix&5)==4) copy_wall2_h1(3, 0, 8); +if((ix&5)==5) copy_wall2_h2(2, 0, 0); + + +if((ix&10)==0) copy_wall2_h1(2, -16, 0); +if((ix&10)==2) copy_wall2_h1(5, 0, -8); +if((ix&10)==8) copy_wall2_h1(1, 0, 8); +if((ix&10)==10) copy_wall2_h2(1, 0, 0); + +if((ix&12)==0) copy_wall2_h1(8, 0, -8); +if((ix&12)==4) copy_wall2_h1(5, -16, 0); +if((ix&12)==8) copy_wall2_h1(7, 16, 0); +if((ix&12)==12) copy_wall2_h2(3, 0, 0); + + +if((ix&5)==5) copy_wall_v2(0, 0, 0, 0); +if((ix&10)==10) copy_wall_v2(4, 0, 0, 0); + +if((ix&4)!=0) copy_wall_v2(1, 0, 0, 0); +if((ix&8)!=0) copy_wall_v2(3, 0, 0, 0); + + +if((ix&12)==12) copy_wall_v2(2, 0, 0, 0); + +if((ix&5)==1) copy_wall_v2(1, 1, 0, -8); +if((ix&12)==8) copy_wall_v2(1, 1, 16, 0); + +if((ix&10)==2) copy_wall_v2(3, 1, 0, -8); +if((ix&12)==4) copy_wall_v2(3, 1, -16, 0); + +if((ix&5)==0) copy_wall_v2(0, 1, 16, 0); +if((ix&10)==0) copy_wall_v2(4, 1, -16, 0); +if((ix&12)==0) copy_wall_v2(2, 1, 0, -8); + + bflush(); + bx++;if(bx==xx0){bx=0;by++;} +} +} + + +void load_monst(fnam) char *fnam;{ +int wx, wy; + if( load_it(fnam, &wx, &wy)) + { + printf("no file %s.bmp\n",fnam); + getchar(); + exit(1); + } + exp_wall=0; + if(wx==128 && wy==64) expand_wall2(); + else if(wx==48 && wy==64) cp_monst_4864(); + else if(wx==32 && wy==48) expand_wall(); + else if(wx==32)cp_monst_32(); + else if(wx==64)cp_monst_64(); + bflush(); +} + +void process_config(char *fname) +{ + int i,j; + char tmp[100],st[1024]; + char *nuke; + FILE *fp=fopen(fname,"r"); + if(fp==NULL){ + printf("Error no config file %s\nHit return",fname); + getchar(); + exit(1); + } + + +while(1){ + int dummy; + fgets(tmp,99,fp); + if(feof(fp))break; + i=0;while(i<99 && tmp[i]>=32)i++; + tmp[i]=0; + +fprintf(stderr,"[%s]\n",tmp); + + if(getname(tmp,"back",st)) + { + /*** Set Background BMP (format "%back bmpname") ***/ + if(strncmp(st,"none",4)==0) + { + /** clear **/ + for(i=0;i<32*32;i++){fbuf[0][i]=0x47;fbuf[1][i]=fbuf[2][i]=0x6c;} + f_wx=64; + } + else + { + int wy; + load_it(st, &f_wx, &wy); + for(i=0;i32)i++; + tmp[i]=0; strcpy(st, &tmp[i+1]); + load_monst(tmp); + if(!strstr(st,"IGNORE_COMMENT")) + { + nuke=strstr(st,"/*");if(nuke)*nuke=0; + if(exp_wall) + fprintf(sfp,"TILE_%s, (TILE_TOTAL+%d),\n",st,bx+by*xx0-16); + else + if(end_normal) + fprintf(sfp,"#define TILE_%s %d\n",st,bx+by*xx0); + else + fprintf(sfp,"TILE_%s, (TILE_TOTAL+%d),\n",st,bx+by*xx0); + } + + if(!exp_wall){bx++;if(bx==xx0){bx=0;by++;}} + +}/* while */ + + fclose(fp); +} + +int main(argc,argv) +int argc; +char *argv[]; +{ + + int i; + char fn[100]; + + fixalloc(tbuf,256*256); + + slant=corpse=mesh=dsize=0; + + bx=by=0; + process_cpath(argv[0]); + fixalloc(obuf, LX*64*(YY)*64); + + + xx0=XX; + ctgname[0]=0; + subsname[0]=0; + sdir[0]=0; + + stdpal(); + + strcpy(outname,"tile"); + +sprintf(fn,"%stiledef-qv.h",cpath); +sfp=fopen(fn,"w"); +if(sfp==NULL){ + printf("Error could not open %s\nHit return",fn); + getchar(); + exit(1); +} + +fprintf(sfp,"/* Automatically generated by tile generator. */\n"); +fprintf(sfp,"const int tile_qv_pair_table[] ={\n"); + + printf("%s\ncpath=%s\n",argv[0],cpath); + if(argc==1) + sprintf(fn,"%sdc-3d.txt",cpath); + else strcpy(fn,argv[1]); + process_config(fn); + + +if(end_normal == 0)fprintf(sfp,"-1, -1 };\n"); + +fprintf(sfp,"\n#define TILE_TOTAL_EX %d\n",bx+by*xx0); +fprintf(sfp,"#define TILE_PER_ROW_EX %d\n",xx0); + + +fclose(sfp); +i=by*64;if(bx!=0)i+=64; + +sprintf(fn,"%s%s.bmp",cpath,outname); +bmwrite(fn,xx0*64,i,obuf); + +return 0; +} diff --git a/crawl-ref/source/rltiles/tool/dcreverse.c b/crawl-ref/source/rltiles/tool/dcreverse.c new file mode 100644 index 0000000000..66e69685b7 --- /dev/null +++ b/crawl-ref/source/rltiles/tool/dcreverse.c @@ -0,0 +1,216 @@ +#include "bm.h" + +#define TILEX (32) +#define TILEY (32) + +unsigned char *tbuf[3]; +unsigned char *dbuf[3]; + +/*** BUFFER MEMORY ***/ +#define XX 30 +#define YY 90 +#define LX (XX) + +#define BIGADR(x,y) ((x)+(y)*LX*32) +#define ADR(x,y) ((x)+(y)*32) + +const int read_size = 2048; +int rim = 0; +int tile = 0; +int sx = 0; +int sy = 0; +int ex = 0; +int ey = 0; +char tilename[2048]; +char compositename[2048]; +unsigned char bkg[3] = +{ + 0x47, + 0x6c, + 0x6c +}; + +int is_background(unsigned char d[3]) +{ + if (bkg[0]==d[0] && bkg[1]==d[1] && bkg[2]==d[2]) + return 1; + else + return 0; +} + +int is_rim(unsigned char d[3]) +{ + if (d[0]==1 && d[1]==1 && d[2]==1) + return 1; + else + return 0; +} + +int is_black(unsigned char d[3]) +{ + if (d[0]==0 && d[1]==0 && d[2]==0) + return 1; + else + return 0; +} + +void remove_rim() +{ + int dflag[32][32]; + unsigned char dd[3]; + int x,y,c; + int ad; + int n0, n1, n2; + + // 0 - background + // 1 - tile + // 2 - black + // 3 - rim + + for (x = 0; x < 32; x++) + for (y = 0; y < 32; y++) + { + ad = ADR(x,y); + dd[0]=dbuf[0][ad]; + dd[1]=dbuf[1][ad]; + dd[2]=dbuf[2][ad]; + if (is_background(dd)) + dflag[x][y] = 0; + else if (is_black(dd)) + dflag[x][y] = 2; + else if (is_rim(dd)) + dflag[x][y] = 3; + else + dflag[x][y] = 1; + } + + for(x=0;x0){ + if(dflag[x-1][y]==0) n0++; + if(dflag[x-1][y]==1) n1++; + if(dflag[x-1][y]==2) n2++; + } + + if(y>0){ + if(dflag[x][y-1]==0) n0++; + if(dflag[x][y-1]==1) n1++; + if(dflag[x][y-1]==2) n2++; + } + + if(x<31){ + if(dflag[x+1][y]==0) n0++; + if(dflag[x+1][y]==1) n1++; + if(dflag[x+1][y]==2) n2++; + } + + if(y<31){ + if(dflag[x][y+1]==0) n0++; + if(dflag[x][y+1]==1) n1++; + if(dflag[x][y+1]==2) n2++; + } + + if (n1 != 0) + { + dbuf[0][ad]=bkg[0]; + dbuf[1][ad]=bkg[1]; + dbuf[2][ad]=bkg[2]; + } + } + } + } +} + +void copy_tile() +{ + // copy relevant part of tbuf into dbuf, removing the rim if necessary + + int xx,yy,c; + for (xx = 0; xx < 32; xx++) + for (yy = 0; yy < 32; yy++) + for (c = 0; c < 3; c++) + dbuf[c][ADR(xx,yy)] = tbuf[c][BIGADR(sx+xx,sy+yy)]; + if (rim) + remove_rim(); +} + +void write_file() +{ + // write dbuf to tilenam + bmwrite(tilename,32,32,dbuf); +} + +void process_list(char *fname) +{ + int i; + int x,y; + char tmp[read_size]; + + FILE *fp=fopen(fname,"r"); + if (fp==NULL){ + printf("Error: couldn't open %s\n", fname); + getchar(); + exit(1); + } + + while(1){ + fgets(tmp,read_size,fp); + if (feof(fp)) + break; + i=0; + while (i < read_size && tmp[i] >= 32) + i++; + tmp[i] = 0; + + if (getname(tmp,"tilefile",compositename)) + { + if (bmread(compositename,&x,&y,tbuf) != 0) + { + break; + } + } + if (getname(tmp,"skip",tilename)) + continue; + if (getval(tmp,"rim",&rim)) + continue; + if (getval(tmp,"sx",&sx)) + continue; + if (getval(tmp,"sy",&sy)) + continue; + if (getval(tmp,"ex",&ex)) + continue; + if (getval(tmp,"ey",&ey)) + continue; + + if (getname(tmp,"file",tilename)) + { + printf("Reading tile %s (%d,%d,%d,%d) rim(%d)\n", + compositename, sx, sy, ex, ey, rim); + copy_tile(); + printf("Writing tile %s.\n", tilename); + write_file(); + } + } + + fclose(fp); +} + +int main(argc, argv) +int argc; +char *argv[]; +{ + if (argc <= 1) return; + + process_cpath(argv[0]); + stdpal(); + + fixalloc(tbuf, LX*64*(YY)*64); + fixalloc(dbuf, 32*32); + + printf("%s\ncpath=%s\n",argv[0],cpath); + + process_list(argv[1]); +} diff --git a/crawl-ref/source/rltiles/tool/dctile.c b/crawl-ref/source/rltiles/tool/dctile.c new file mode 100644 index 0000000000..aaadeca911 --- /dev/null +++ b/crawl-ref/source/rltiles/tool/dctile.c @@ -0,0 +1,642 @@ +#include "bm.h" + +/** Some global **/ +int corpse=0; +int mesh=0; +int slant=0; +int rim=0; +FILE *mfp=NULL; // map html +FILE *sfp=NULL; // "tiledef.h" +FILE *tfp=NULL; // tiles.txt +FILE *cfp=NULL; // lengths of tile counts +int tilecount = 0; +int tilecountidx = -1; +int counts[1024]; +int countnames[100][100]; + +char outname[1024], ctgname[100], subsname[100]; +char sdir[300]; +char realname[1024]; +char imgname[1024]; +char tiledefname[1024]; +char enumprefix[100]; +const int read_size = 2048; + +/*** BUFFER MEMORY ***/ +#define XX 30 +int xx0; +#define YY 90 +#define LX (XX) + +/*** tmp buffer, floor , final output, final queue ***/ +unsigned char *tbuf[3],fbuf[3][32*32],*obuf[3], dbuf[3][32*32]; + +/*** compose buffer */ +unsigned char cbuf[3][32*32]; + +/*** normal floor*/ +#define WOADR(x,y,xx,yy) ((x)*32+xx+ xx0*32*((y)*32+yy)) +#define ADR(x,y) ((x)+(y)*32) + +/*** output width/height in block ***/ +int bx,by; +int filler = 0; + +unsigned char bkg[3] = { 0x47, 0x6c, 0x6c }; + +#define WID 32 + +/****************************************/ +/* Wrapper routines **************/ +/**************************/ + +int load_pxxx(fnam) char *fnam;{ + int x,y; + + sprintf(realname,"%s%s%c%s.bmp",cpath,sdir,PATHSEP,fnam); + if(bmread(realname,&x,&y,tbuf)==0) return 0; + + sprintf(realname,"%s%s.bmp",cpath,fnam); + if(bmread(realname,&x,&y,tbuf)==0) return 0; + + if(subsname[0]){ + sprintf(realname,"%s%s%c%s.bmp",cpath,sdir,PATHSEP,subsname); + if(bmread(realname,&x,&y,tbuf)==0) return 0; + + sprintf(realname,"%s%s.bmp",cpath,subsname); + if(bmread(realname,&x,&y,tbuf)==0) return 0; + } + + + return 1; +} + + +void clr_buf() { + int xx,yy; + + for(xx=0;xx<32;xx++){ + for(yy=0;yy<32;yy++){ + dbuf[0][ ADR(xx,yy) ]=bkg[0]; + dbuf[1][ ADR(xx,yy) ]=bkg[1]; + dbuf[2][ ADR(xx,yy) ]=bkg[2]; + } + } +} + +void cp_floor(){ + int xx,yy,c; + for(xx=0;xx<32;xx++) + for(yy=0;yy<32;yy++) + for(c=0;c<3;c++) + dbuf[c][ ADR(xx,yy) ]=fbuf[c][ ADR(xx,yy)]; +} + +#define TILEX 32 +#define TILEY 32 + +void make_rim(){ + static unsigned char dflag[TILEX][TILEY]; + int x,y,c,dd[3],ad; + int n0,n1,n2; + + // dflag: + // 0 = background + // 1 = tile + // 2 = black + + for(y=0;y0){ + if(dflag[x-1][y]==0) n0++; + if(dflag[x-1][y]==1) n1++; + if(dflag[x-1][y]==2) n2++; + } + + if(y>0){ + if(dflag[x][y-1]==0) n0++; + if(dflag[x][y-1]==1) n1++; + if(dflag[x][y-1]==2) n2++; + } + + if(x<31){ + if(dflag[x+1][y]==0) n0++; + if(dflag[x+1][y]==1) n1++; + if(dflag[x+1][y]==2) n2++; + } + if(y<31){ + if(dflag[x][y+1]==0) n0++; + if(dflag[x][y+1]==1) n1++; + if(dflag[x][y+1]==2) n2++; + } + // n1 = tiles adjacent but not diagonal that are tile pixels + if(n1!=0 ) + dbuf[0][x+y*32]=dbuf[1][x+y*32]=dbuf[2][x+y*32]=0x10; + } + } + } + +} + +void cp_monst_32(){ + int xx,yy,c,dd[3],ad; + char dflag[32][32]; + int xmin,xmax,ymin,ymax,ox,oy; + + if(corpse==1) + { + xmin=ymin=31; + xmax=ymax=0; + for(xx=0;xx<32;xx++){ + for(yy=0;yy<32;yy++){ + ad=ADR(xx,yy); + for(c=0;c<3;c++)dd[c]=tbuf[c][ad]; + if( (dd[0]==bkg[0])&&(dd[1]==bkg[1])&& (dd[2]==bkg[2]))continue; + if( (dd[0]==0)&&(dd[1]==0)&& (dd[2]==0))continue; + if(xxxmax)xmax=xx; + if(yyymax)ymax=yy; + } + } + ox=(xmax+xmin)/2-16; + oy=(ymax+ymin)/2-16; + } + + for(xx=0;xx<32;xx++){ + for(yy=0;yy<32;yy++){ + dflag[xx][yy]=0; + ad=ADR(xx,yy); + if(corpse==1){ + int x1=xx+ox; + int y1=(yy+oy)*2-16; + int cy=18; + if(xx<4 || xx>=28)cy+=2;else + if(xx<12 || xx>=20) cy+=1; + + if(yy>=cy-1 && yy<=cy+0)continue; + x1 += (y1-16)/4; + if(y1>=cy){y1-=2;x1-=3;}else {y1 +=2;x1+=3;} + if(x1<0 || x1>=32 || y1<0 || y1>=32)continue; + ad=ADR(x1,y1); + } + + /*** normal***/ + for(c=0;c<3;c++){dd[c]=tbuf[c][ad];} + if(mesh==2){ + if( (dd[0]!=bkg[0])||(dd[1]!=bkg[1])|| (dd[2]!=bkg[2])){ + if( ((xx+yy)&1) ==0)dd[0]=dd[1]=dd[2]=0; + } + } + if(mesh==1){ + if( (((xx/2)+(yy/2))&1) ==1)dd[0]=dd[1]=dd[2]=0; + } + + if( (dd[0]==bkg[0])&&(dd[1]==bkg[1])&& (dd[2]==bkg[2]))continue; + if( (corpse==1) &&(dd[0]==0)&&(dd[1]==0)&& (dd[2]==0))continue; + + for(c=0;c<3;c++) {dbuf[c][ADR(xx,yy)]=dd[c];} + dflag[xx][yy]=1; + } + } + + +#if 1 +if(corpse==1){ +for(xx=0;xx<32;xx++){ +int cy=18; +if(xx<4 || xx>=28)cy+=2;else +if(xx<12 || xx>=20) cy+=1; +if(dflag[xx][cy-2]==1 && dflag[xx][cy+1]==1 ){ +for(yy=cy-1;yy<=cy-0;yy++){ dbuf[0][ADR(xx,yy)]=32; +dbuf[1][ADR(xx,yy)]=0;dbuf[2][ADR(xx,yy)]=0; +dflag[xx][yy]=1; +}} +} + +/** shade**/ +for(xx=1;xx<32;xx++){ +for(yy=1;yy<32;yy++){ +if(dflag[xx][yy]==0 && dflag[xx-1][yy-1]==1){ +dbuf[0][ADR(xx,yy)]=0; +dbuf[1][ADR(xx,yy)]=0; +dbuf[2][ADR(xx,yy)]=0; +} +}} + +for(xx=3;xx<32;xx++){ +for(yy=3;yy<32;yy++){ +if(dflag[xx][yy]==0 && dflag[xx-1][yy-1]==0 + && dflag[xx-2][yy-2]==1 && dflag[xx-3][yy-3]==1){ +dbuf[0][ADR(xx,yy)]=0; +dbuf[1][ADR(xx,yy)]=0; +dbuf[2][ADR(xx,yy)]=0; +} +}} + + + + +} +#endif +if(rim==1)make_rim(); +} + + +void bflush(){ +int xx,yy,c; +for(xx=0;xx<32;xx++){ +for(yy=0;yy<32;yy++){ +for(c=0;c<3;c++){ +obuf[c][WOADR(bx,by,xx,yy)]= dbuf[c][ADR(xx,yy)]; +}}} +} + + +void load_monst(fnam) char *fnam;{ + if( load_pxxx(fnam)){ + printf("no file pxxx/%s.bmp or %s/%s.bmp\n",fnam,sdir,fnam); + getchar(); + exit(1); + } + cp_monst_32(); + bflush(); +} + +void process_config(char *fname) +{ + int x,y; + int i,j; + char tmp[read_size],st[read_size]; + char *nuke; + FILE *fp=fopen(fname,"r"); + if(fp==NULL){ + printf("Error no config file %s\nHit return",fname); + getchar(); + exit(1); + } + + while(1){ + fgets(tmp,read_size,fp); + if(feof(fp))break; + i=0;while(i=32)i++; + tmp[i]=0; + + if(getname(tmp,"back",st)) + { + /*** Set Background BMP (format "%back bmpname") ***/ + if(strncmp(st,"none",4)==0) + { + /** clear **/ + for(i=0;i<32*32;i++){fbuf[0][i]=bkg[0];fbuf[1][i]=bkg[1];fbuf[2][i]=bkg[2];} + } + else + { + load_pxxx(st); + for(i=0;i<32*32;i++)for(j=0;j<3;j++)fbuf[j][i]=tbuf[j][i]; + } + continue; + } + + if (getname(tmp,"include",st)){ + char fn2[read_size]; + sprintf(fn2,"%s%s",cpath, st); + if(strcmp(fname,fn2)!=0) process_config(fn2); + continue; + } + + if (getname(tmp,"htmlfile",st)) + { + char fn2[read_size]; + sprintf(fn2,"%s%s",cpath, st); + mfp=fopen(fn2,"w"); + if(mfp==NULL) + { + printf("Error could not open %s\nHit return",fn2); + getchar(); + exit(1); + } + fprintf(mfp,"\n"); + continue; + } + + if (getname(tmp,"tilelist",st)) + { + char fn2[read_size]; + sprintf(fn2,"%s%s",cpath, st); + tfp=fopen(fn2,"w"); + if(tfp==NULL) + { + printf("Error could not open %s\nHit return",fn2); + getchar(); + exit(1); + } + fprintf(tfp,"%%tilefile %s\n", imgname); + fprintf(tfp,"%%rim %d\n", rim); + continue; + } + + if (getname(tmp,"tiledef",st)) + { + char fn[read_size]; + sprintf(fn,"%s%s",cpath,st); + strcpy(tiledefname, st);; + sfp=fopen(fn,"w"); + if(sfp==NULL) + { + printf("Error could not open %s\nHit return",fn); + getchar(); + exit(1); + } + fprintf(sfp,"/* Automatically generated by tile generator. */\n"); + fprintf(sfp, "enum TILE_%sIDX {\n", enumprefix); + continue; + } + + if (getname(tmp,"tilecount",st)) + { + char fn[read_size]; + sprintf(fn,"%s%s",cpath,st); + cfp=fopen(fn,"w"); + if(cfp==NULL) + { + printf("Error could not open %s\nHit return",fn); + getchar(); + exit(1); + } + fprintf(cfp,"/* Automatically generated by tile generator. */\n"); + fprintf(cfp,"#include \"%s\"\n", tiledefname); + fprintf(cfp, "enum TILE_%sCOUNT_IDX {\n", enumprefix); + continue; + } + + if (getname(tmp,"enumprefix",st)) + { + strcpy(enumprefix, st); + continue; + } + + if (getname(tmp,"htmlhead",st)) + { + if(mfp)fprintf(mfp,"%s\n",st); + continue; + } + + if (getname(tmp,"htmlbody",st)) + { + if(mfp)fprintf(mfp,"\n\n"); + continue; + } + + if (getval(tmp,"slant",&slant)) continue; + if (getval(tmp,"rim",&rim)) + { + if (tfp) fprintf(tfp, "%%rim %d\n", rim); + continue; + } + if (getval(tmp,"mesh",&mesh)) continue; + if (getval(tmp,"corpse",&corpse)) continue; + + if (getname(tmp,"ctg",ctgname)) continue; + if (getname(tmp,"subst",subsname)) continue; + if (getname(tmp,"sdir",sdir)) continue; + if (getname(tmp,"name", outname)) + { + sprintf(imgname, "%s.bmp", outname); + continue; + } + if (getname(tmp,"htmlimg",imgname)) continue; + if (getval(tmp,"width",&xx0)) continue; + if (tmp[0]=='#' || tmp[0]<32){ + if(tmp[0]<32) fprintf(sfp,"\n"); + if(tmp[0]=='#')fprintf(sfp,"//%s\n",tmp); + continue; + } + + // begin a 32x32 composing sequence + if (getname(tmp,"start",st)) + { + clr_buf(); + for (i = 0; i < 32*32; i++) + { + cbuf[0][i] = fbuf[0][i]; + cbuf[1][i] = fbuf[1][i]; + cbuf[2][i] = fbuf[2][i]; + } + continue; + } + + // compose an image onto the current buffer + if (getname(tmp,"compose",st)) + { + if(load_pxxx(st)){ + printf("no file pxxx/%s.bmp or %s/%s.bmp\n",st,sdir,st); + getchar(); + exit(1); + } + for(i=0;i<32*32;i++) + { + if (tbuf[0][i] != bkg[0] || + tbuf[1][i] != bkg[1] || + tbuf[2][i] != bkg[2]) + { + cbuf[0][i] = tbuf[0][i]; + cbuf[1][i] = tbuf[1][i]; + cbuf[2][i] = tbuf[2][i]; + } + } + continue; + } + + if (getname(tmp,"nextrow",st)) + { + if (bx == 0) + continue; + + while (bx != xx0) + { + fprintf(sfp, " TILE_%sFILLER%d,\n", enumprefix, filler++); + bx++; + } + + bx = 0; + by ++; + continue; + } + + // finish composing + if (getname(tmp,"finish",st)) + { + realname[0] = 0; + for (i=0;i<32*32;i++) + { + tbuf[0][i] = cbuf[0][i]; + tbuf[1][i] = cbuf[1][i]; + tbuf[2][i] = cbuf[2][i]; + } + cp_monst_32(); + bflush(); + } + else + { + /*** normal bitmap ***/ + clr_buf();cp_floor(); + i=0;while(i32)i++; + tmp[i]=0; strcpy(st, &tmp[i+1]); + + if (tfp) + { + fprintf(tfp,"%%sx %d\n%%sy %d\n%%ex %d\n%%ey %d\n", + bx*WID,by*WID,bx*WID+WID-1,by*WID+WID-1); + } + + load_monst(tmp); + } + + if(mfp) + { + fprintf( + mfp,"\"%s\"\n", + bx*WID,by*WID,bx*WID+WID-1,by*WID+WID-1, + st,realname); + } + + if (tfp) + { + if (corpse) + fprintf(tfp,"%%skip\n"); + else + fprintf(tfp,"%%file %s\n", realname); + } + + if(!strstr(st,"IGNORE_COMMENT")){ + nuke=strstr(st,"/*");if(nuke)*nuke=0; + if (st && strcmp(st, "") != 0 && strcmp(st, "\n") != 0) + { + fprintf(sfp," TILE_%s,\n",st); + if (cfp) + { + if (tilecountidx == -1) + tilecountidx++; + else + counts[tilecountidx++] = tilecount; + fprintf(cfp, " IDX_%s,\n",st); + sprintf(countnames[tilecountidx], "TILE_%s", st); + tilecount = 1; + } + } + else + { + fprintf(sfp, " TILE_%sFILLER%d,\n", enumprefix, filler++); + tilecount++; + } + } + + bx++;if(bx==xx0){bx=0;by++;;} + + }/* while */ + fclose(fp); +} + +int main(argc,argv) +int argc; +char *argv[]; +{ + int i; + char fn[100]; + + bx=by=0; + process_cpath(argv[0]); + + xx0=XX; + ctgname[0]=0; + subsname[0]=0; + sdir[0]=0; + enumprefix[0] = 0; + + stdpal(); + fixalloc(tbuf,256*256); + fixalloc(obuf, LX*64*(YY)*64); + + + strcpy(outname,"tile"); + strcpy(imgname,"tile.bmp"); + + + printf("%s\ncpath=%s\n",argv[0],cpath); + if(argc==1) + sprintf(fn,"%sdc-2d.txt",cpath); + else + strcpy(fn,argv[1]); + process_config(fn); + + if (sfp) + { + fprintf(sfp, "TILE_%sTOTAL};\n\n", enumprefix); + fprintf(sfp,"#define TILE_%sPER_ROW %d\n", enumprefix, xx0); + fclose(sfp); + } + + if(mfp) + { + fprintf(mfp,"\n\n", imgname); + fprintf(mfp,"\n"); + fclose(mfp); + } + + if (cfp) + { + int i; + + fprintf(cfp, " IDX_%sTOTAL\n};\n\n", enumprefix); + + counts[tilecountidx++] = tilecount; + + fprintf(cfp, "int tile_%scount[IDX_%sTOTAL] =\n{\n", + enumprefix, enumprefix); + + for (i = 0; i < tilecountidx; i++) + { + fprintf(cfp, (i < tilecountidx - 1) ? " %d,\n" : " %d\n", + counts[i]); + } + + fprintf(cfp, "};\n\n"); + + fprintf(cfp, "int tile_%sstart[IDX_%sTOTAL] = \n{\n", + enumprefix, enumprefix); + + for (i = 0; i < tilecountidx; i++) + { + fprintf(cfp, (i < tilecountidx - 1) ? " %s,\n" : " %s\n", + countnames[i]); + } + + fprintf(cfp, "};\n\n"); + close(cfp); + } + + if(tfp) + { + fclose(tfp); + } + + i=by*32; + if(bx!=0)i+=32; + sprintf(fn,"%s%s.bmp",cpath,outname); + bmwrite(fn,xx0*32,i,obuf); + return 0; +} diff --git a/crawl-ref/source/rltiles/tool/mkmap.c b/crawl-ref/source/rltiles/tool/mkmap.c new file mode 100644 index 0000000000..f07ce369ea --- /dev/null +++ b/crawl-ref/source/rltiles/tool/mkmap.c @@ -0,0 +1,408 @@ +#include "bm.h" + +/** Some global **/ +int corpse, mesh,slant, rim; +FILE *mfp,*sfp; +char outname[1024], ctgname[100], subsname[100]; +char sdir[300]; +char realname[1024]; + +/*** BUFFER MEMORY ***/ +#define XX 30 +int xx0; +#define YY 90 +#define LX (XX) + + +/*** tmp buffer, floor , final output, final queue ***/ +unsigned char *tbuf[3],fbuf[3][32*32], *obuf[3],dbuf[3][32*32]; + + +/*** normal floor*/ +#define WOADR(x,y,xx,yy) \ +((x)*32+xx+ xx0*32*((y)*32+yy)) + + +#define ADR(x,y) ((x)+(y)*32) + +/*** output width/height in block ***/ +int bx,by; + + + +/****************************************/ +/* Wrapper routines **************/ +/**************************/ + +int load_pxxx(fnam) char *fnam;{ +int x,y; + +sprintf(realname,"%s%s%c%s.bmp",cpath,sdir,PATHSEP,fnam); +if(bmread(realname,&x,&y,tbuf)==0) return 0; + +sprintf(realname,"%s%s.bmp",cpath,fnam); +if(bmread(realname,&x,&y,tbuf)==0) return 0; + +if(subsname[0]){ + sprintf(realname,"%s%s%c%s.bmp",cpath,sdir,PATHSEP,subsname); + if(bmread(realname,&x,&y,tbuf)==0) return 0; + + sprintf(realname,"%s%s.bmp",cpath,subsname); + if(bmread(realname,&x,&y,tbuf)==0) return 0; +} + + +return 1; +} + + +void clr_buf() { +int xx,yy; + +for(xx=0;xx<32;xx++){ +for(yy=0;yy<32;yy++){ +dbuf[0][ ADR(xx,yy) ]=0x47; +dbuf[1][ ADR(xx,yy) ]=0x6c; +dbuf[2][ ADR(xx,yy) ]=0x6c; +}} +} + +void cp_floor(){ +int xx,yy,c; +for(xx=0;xx<32;xx++) +for(yy=0;yy<32;yy++) +for(c=0;c<3;c++) +dbuf[c][ ADR(xx,yy) ]=fbuf[c][ ADR(xx,yy)]; +} + +#define TILEX 32 +#define TILEY 32 + +void make_rim(){ +static unsigned char dflag[TILEX][TILEY]; +int x,y,c,dd[3],ad; +int n0,n1,n2; + + + +for(y=0;y0){ + if(dflag[x-1][y]==0) n0++; + if(dflag[x-1][y]==1) n1++; + if(dflag[x-1][y]==2) n2++; +} + +if(y>0){ + if(dflag[x][y-1]==0) n0++; + if(dflag[x][y-1]==1) n1++; + if(dflag[x][y-1]==2) n2++; +} + +if(x<31){ + if(dflag[x+1][y]==0) n0++; + if(dflag[x+1][y]==1) n1++; + if(dflag[x+1][y]==2) n2++; +} +if(y<31){ + if(dflag[x][y+1]==0) n0++; + if(dflag[x][y+1]==1) n1++; + if(dflag[x][y+1]==2) n2++; +} + +if(n1!=0 ) +dbuf[0][x+y*32]=dbuf[1][x+y*32]=dbuf[2][x+y*32]=0x10; + + + +}}} + +} + +void cp_monst_32(){ +int xx,yy,c,dd[3],ad; +char dflag[32][32]; +int xmin,xmax,ymin,ymax,ox,oy; + +if(corpse==1 ){ + xmin=ymin=31; + xmax=ymax=0; + for(xx=0;xx<32;xx++){ + for(yy=0;yy<32;yy++){ + ad=ADR(xx,yy); + for(c=0;c<3;c++)dd[c]=tbuf[c][ad]; + if( (dd[0]==0x47)&&(dd[1]==0x6c)&& (dd[2]==0x6c))continue; + if( (dd[0]==0)&&(dd[1]==0)&& (dd[2]==0))continue; + if(xxxmax)xmax=xx; + if(yyymax)ymax=yy; +}}/*xy**/ +ox=(xmax+xmin)/2-16; +oy=(ymax+ymin)/2-16; +} + +for(xx=0;xx<32;xx++){ +for(yy=0;yy<32;yy++){ +dflag[xx][yy]=0; +ad=ADR(xx,yy); +if(corpse==1){ +int x1=xx+ox; +int y1=(yy+oy)*2-16; +int cy=18; +if(xx<4 || xx>=28)cy+=2;else +if(xx<12 || xx>=20) cy+=1; + +if(yy>=cy-1 && yy<=cy+0)continue; +x1 += (y1-16)/4; +if(y1>=cy){y1-=2;x1-=3;}else {y1 +=2;x1+=3;} +if(x1<0 || x1>=32 || y1<0 || y1>=32)continue; +ad=ADR(x1,y1); +} + +/*** normal***/ +for(c=0;c<3;c++){dd[c]=tbuf[c][ad];} +if(mesh==2){ +if( (dd[0]!=0x47)||(dd[1]!=0x6c)|| (dd[2]!=0x6c)){ +if( ((xx+yy)&1) ==0)dd[0]=dd[1]=dd[2]=0; +} +} +if(mesh==1){ +if( (((xx/2)+(yy/2))&1) ==1)dd[0]=dd[1]=dd[2]=0; +} + +if( (dd[0]==0x47)&&(dd[1]==0x6c)&& (dd[2]==0x6c))continue; +if( (corpse==1) &&(dd[0]==0)&&(dd[1]==0)&& (dd[2]==0))continue; + +for(c=0;c<3;c++) {dbuf[c][ADR(xx,yy)]=dd[c];} + dflag[xx][yy]=1; +}} + + +#if 1 +if(corpse==1){ +for(xx=0;xx<32;xx++){ +int cy=18; +if(xx<4 || xx>=28)cy+=2;else +if(xx<12 || xx>=20) cy+=1; +if(dflag[xx][cy-2]==1 && dflag[xx][cy+1]==1 ){ +for(yy=cy-1;yy<=cy-0;yy++){ dbuf[0][ADR(xx,yy)]=32; +dbuf[1][ADR(xx,yy)]=0;dbuf[2][ADR(xx,yy)]=0; +dflag[xx][yy]=1; +}} +} + +/** shade**/ +for(xx=1;xx<32;xx++){ +for(yy=1;yy<32;yy++){ +if(dflag[xx][yy]==0 && dflag[xx-1][yy-1]==1){ +dbuf[0][ADR(xx,yy)]=0; +dbuf[1][ADR(xx,yy)]=0; +dbuf[2][ADR(xx,yy)]=0; +} +}} + +for(xx=3;xx<32;xx++){ +for(yy=3;yy<32;yy++){ +if(dflag[xx][yy]==0 && dflag[xx-1][yy-1]==0 + && dflag[xx-2][yy-2]==1 && dflag[xx-3][yy-3]==1){ +dbuf[0][ADR(xx,yy)]=0; +dbuf[1][ADR(xx,yy)]=0; +dbuf[2][ADR(xx,yy)]=0; +} +}} + + + + +} +#endif +if(rim==1)make_rim(); +} + + +void bflush(){ +int xx,yy,c; +for(xx=0;xx<32;xx++){ +for(yy=0;yy<32;yy++){ +for(c=0;c<3;c++){ +obuf[c][WOADR(bx,by,xx,yy)]= dbuf[c][ADR(xx,yy)]; +}}} +} + + +void load_monst(fnam) char *fnam;{ + if( load_pxxx(fnam)){ + printf("no file pxxx/%s.bmp or %s/%s.bmp\n",fnam,sdir,fnam); + getchar(); + exit(1); + } + cp_monst_32(); + bflush(); +} + +void process_config(char *fname) +{ + int i,j; + char tmp[100],st[1024]; + char *nuke; + FILE *fp=fopen(fname,"r"); + if(fp==NULL){ + printf("Error no config file %s\nHit return",fname); + getchar(); + exit(1); + } + + +while(1){ +fgets(tmp,99,fp); +if(feof(fp))break; +i=0;while(i<99 && tmp[i]>=32)i++; +tmp[i]=0; + + if(getname(tmp,"back",st)) + { + /*** Set Background BMP (format "%back bmpname") ***/ + if(strncmp(st,"none",4)==0) + { + /** clear **/ + for(i=0;i<32*32;i++){fbuf[0][i]=0x47;fbuf[1][i]=fbuf[2][i]=0x6c;} + } + else + { + load_pxxx(st); + for(i=0;i<32*32;i++)for(j=0;j<3;j++)fbuf[j][i]=tbuf[j][i]; + } + continue; + } + + if (getname(tmp,"include",st)){ + char fn2[200]; + sprintf(fn2,"%s%s",cpath, st); + if(strcmp(fname,fn2)!=0) process_config(fn2); + continue; + } + + if (getval(tmp,"slant",&slant)) continue; + if (getval(tmp,"rim",&rim)) continue; + if (getval(tmp,"mesh",&mesh)) continue; + if (getval(tmp,"corpse",&corpse)) continue; + if (getname(tmp,"ctg",ctgname)) continue; + if (getname(tmp,"subst",subsname)) continue; + if (getname(tmp,"sdir",sdir)) continue; + if (getname(tmp,"name", outname)) continue; + if (getval(tmp,"width",&xx0)) continue; + if (tmp[0]=='#' || tmp[0]<32){ + if(tmp[0]=='#')fprintf(sfp,"//%s\n",tmp); + if(tmp[0]<32) fprintf(sfp,"\n"); + continue; + } + +/*** normal bitmap ***/ +#define WID 32 +clr_buf();cp_floor(); +i=0;while(i<99 && tmp[i]>32)i++; +tmp[i]=0; strcpy(st, &tmp[i+1]); + load_monst(tmp); + +fprintf(mfp,"\n", +bx*WID,by*WID,bx*WID+WID-1,by*WID+WID-1, +realname); + +if(!strstr(st,"IGNORE_COMMENT")){ +nuke=strstr(st,"/*");if(nuke)*nuke=0; +fprintf(sfp,"#define TILE_%s %d\n",st,bx+by*xx0); +} + +bx++;if(bx==xx0){bx=0;by++;;} + + + +}/* while */ + fclose(fp); +} + +int main(argc,argv) +int argc; +char *argv[]; +{ + + int i; + char fn[100],st2[100]; + + slant=corpse=mesh=rim=0; + + bx=by=0; + process_cpath(argv[0]); + + xx0=XX; + ctgname[0]=0; + subsname[0]=0; + sdir[0]=0; + + stdpal(); + fixalloc(tbuf,256*256); + fixalloc(obuf, LX*64*(YY)*64); + + + strcpy(outname,"tile"); + +sprintf(fn,"%smap.htm",cpath); +mfp=fopen(fn,"w"); +if(mfp==NULL){ + printf("Error could not open %s\nHit return",fn); + getchar(); + exit(1); +} + + +sprintf(fn,"%stiledef.h",cpath); +sfp=fopen(fn,"w"); +if(sfp==NULL){ + printf("Error could not open %s\nHit return",fn); + getchar(); + exit(1); +} +fprintf(sfp,"/* Automatically generated by tile generator. */\n"); + + +fprintf(mfp,"\n"); +fprintf(mfp,"\n"); +fprintf(mfp,"\n"); + + + printf("%s\ncpath=%s\n",argv[0],cpath); + if(argc==1) + sprintf(fn,"%sdc-all.txt",cpath); + else strcpy(fn,argv[1]); + process_config(fn); + + + +fprintf(sfp,"#define TILE_TOTAL %d\n",bx+by*xx0); +fprintf(sfp,"#define TILE_PER_ROW %d\n",xx0); + +fprintf(mfp,"\n\n\n", outname); + + +fclose(mfp); +fclose(sfp); +i=by*32;if(bx!=0)i+=32; + +sprintf(fn,"%s%s.bmp",cpath,outname); +bmwrite(fn,xx0*32,i,obuf); + +} diff --git a/crawl-ref/source/rltiles/tool/mkmapq.c b/crawl-ref/source/rltiles/tool/mkmapq.c new file mode 100644 index 0000000000..ad92344267 --- /dev/null +++ b/crawl-ref/source/rltiles/tool/mkmapq.c @@ -0,0 +1,783 @@ +#include "bm.h" + +#define WID 64 +/** Some global **/ +int corpse=0, mesh =0,slant=0; +int rim=0; +int exp_wall; +int dsize; +int sx32 = 16; +int sy32 = 24; + +FILE *mfp,*sfp; +char outname[1024], ctgname[100], subsname[100]; +char sdir[300]; +char realname[1024]; + + +/*** BUFFER MEMORY ***/ +#define XX 16 +int xx0; +#define YY 30 +#define LX (XX) + +/*** tmp buffer, floor , final output, final queue ***/ +unsigned char *tbuf[3],fbuf[3][128*64], + *obuf[3],dbuf[3][128*64]; + + +unsigned char wallbuf[4][3][32*48]; +unsigned char wall2buf[3][128*64]; + + +int f_wx; + +/*** normal floor*/ +#define WOADR(x,y,xx,yy) \ +((x)*64+xx+ xx0*64*((y)*64+yy)) + + +#define ADR32(x,y) ((x)+(y)*32) +#define ADR64(x,y) ((x)+(y)*64) + + +/*** output width/height in block ***/ +int bx,by; + + +/**************************/ +/* Wrapper routines *******/ +/**************************/ + +int load_it(char *fnam, int *wx, int *wy) +{ + sprintf(realname,"%s%s%c%s.bmp",cpath,sdir,PATHSEP,fnam); + if(bmread(realname,wx,wy,tbuf)==0) return 0; + + sprintf(realname,"%s%s.bmp",cpath,fnam); + if(bmread(realname,wx,wy,tbuf)==0) return 0; + + if(subsname[0]){ + sprintf(realname,"%s%s%c%s.bmp",cpath,sdir,PATHSEP,subsname); + if(bmread(realname,wx,wy,tbuf)==0) return 0; + + sprintf(realname,"%s%s.bmp",cpath,subsname); + if(bmread(realname,wx,wy,tbuf)==0) return 0; + } + +return 1; +} + + +void clr_dbuf() { +int xx,yy; + +for(xx=0;xx<64;xx++){ +for(yy=0;yy<64;yy++){ +dbuf[0][ ADR64(xx,yy) ]=0x47; +dbuf[1][ ADR64(xx,yy) ]=0x6c; +dbuf[2][ ADR64(xx,yy) ]=0x6c; +}} +} + +#define TILEX 64 +#define TILEY 64 +void make_rim(){ +static unsigned char dflag[TILEX][TILEY]; +int x,y,c,dd[3],ad; +int n0,n1,n2; + +for(y=0;y0){ + if(dflag[x-1][y]==0) n0++; + if(dflag[x-1][y]==1) n1++; + if(dflag[x-1][y]==2) n2++; +} + +if(y>0){ + if(dflag[x][y-1]==0) n0++; + if(dflag[x][y-1]==1) n1++; + if(dflag[x][y-1]==2) n2++; +} + +if(xxmax)xmax=xx; + if(yyymax)ymax=yy; + }}/*xy**/ + ox=(xmax+xmin)/2-16; + oy=(ymax+ymin)/2-16; +} + +if(slant==1){ + for(xx=0;xx<32;xx++){ + for(yy=0;yy<32;yy++){ + int x1 = xx-yy+32; + int y1= 32+(xx+yy)/2; + ad = ADR32(xx,yy); + for(c=0;c<3;c++){dd[c]=tbuf[c][ad];} + if(mesh==2){ + if( (dd[0]!=0x47)||(dd[1]!=0x6c)|| (dd[2]!=0x6c)){ + if( ((x1+y1)&1) ==0)dd[0]=dd[1]=dd[2]=0; + } + } + if(mesh==1){ + if( (((x1/2)+(y1/2))&1) ==1)dd[0]=dd[1]=dd[2]=0; + } + if( (dd[0]==0x47)&&(dd[1]==0x6c)&& (dd[2]==0x6c))continue; + for(c=0;c<3;c++) {dbuf[c][ADR64(x1,y1)]=dd[c];} + }} +return; +} + +if(dsize==1){ + for(xx=0;xx<32;xx++){ + for(yy=0;yy<32;yy++){ + int x1 = xx*2; + int y1= yy*2; + ad = ADR32(xx,yy); + for(c=0;c<3;c++){dd[c]=tbuf[c][ad];} + if(mesh==2){ + if( (dd[0]!=0x47)||(dd[1]!=0x6c)|| (dd[2]!=0x6c)){ + if( ((x1+y1)&1) ==0)dd[0]=dd[1]=dd[2]=0; + } + } + if(mesh==1){ + if( (((x1/2)+(y1/2))&1) ==1)dd[0]=dd[1]=dd[2]=0; + } + if( (dd[0]==0x47)&&(dd[1]==0x6c)&& (dd[2]==0x6c))continue; + for(c=0;c<3;c++) + { + dbuf[c][ADR64(x1,y1)]=dd[c]; + dbuf[c][ADR64(x1+1,y1)]=dd[c]; + dbuf[c][ADR64(x1,y1+1)]=dd[c]; + dbuf[c][ADR64(x1+1,y1+1)]=dd[c]; + } + }} +return; +} + + +for(xx=0;xx<32;xx++){ +for(yy=0;yy<32;yy++){ +dflag[xx][yy]=0; +ad=ADR32(xx,yy); + +if(corpse==1){ + int x1=xx+ox; + int y1=(yy+oy)*2-16; + int cy=18; + if(xx<4 || xx>=28)cy+=2;else + if(xx<12 || xx>=20) cy+=1; + + if(yy>=cy-1 && yy<=cy+0)continue; + x1 += (y1-16)/4; + if(y1>=cy){y1-=2;x1-=3;}else {y1 +=2;x1+=3;} + if(x1<0 || x1>=32 || y1<0 || y1>=32)continue; + ad=ADR32(x1,y1); +} + +/*** normal***/ +for(c=0;c<3;c++){dd[c]=tbuf[c][ad];} +if(mesh==2){ +if( (dd[0]!=0x47)||(dd[1]!=0x6c)|| (dd[2]!=0x6c)){ +if( ((xx+yy)&1) ==0)dd[0]=dd[1]=dd[2]=0; +} +} +if(mesh==1){ +if( (((xx/2)+(yy/2))&1) ==1)dd[0]=dd[1]=dd[2]=0; +} + +if( (dd[0]==0x47)&&(dd[1]==0x6c)&& (dd[2]==0x6c))continue; +if( (corpse==1) &&(dd[0]==0)&&(dd[1]==0)&& (dd[2]==0))continue; + +for(c=0;c<3;c++) {dbuf[c][ADR64(sx32+xx,sy32+yy)]=dd[c];} + dflag[xx][yy]=1; +}} + + +#if 1 +if(corpse==1){ +for(xx=0;xx<32;xx++){ +int cy=18; +if(xx<4 || xx>=28)cy+=2;else +if(xx<12 || xx>=20) cy+=1; +if(dflag[xx][cy-2]==1 && dflag[xx][cy+1]==1 ){ +for(yy=cy-1;yy<=cy-0;yy++){ dbuf[0][ADR64(16+xx,32+yy)]=32; +dbuf[1][ADR64(16+xx,32+yy)]=0;dbuf[2][ADR64(16+xx,32+yy)]=0; +dflag[xx][yy]=1; +}} +} + +/** shade**/ +for(xx=1;xx<32;xx++){ +for(yy=1;yy<32;yy++){ +if(dflag[xx][yy]==0 && dflag[xx-1][yy-1]==1){ +dbuf[0][ADR64(xx,yy)]=0; +dbuf[1][ADR64(xx,yy)]=0; +dbuf[2][ADR64(xx,yy)]=0; +} +}} + +for(xx=3;xx<32;xx++){ +for(yy=3;yy<32;yy++){ +if(dflag[xx][yy]==0 && dflag[xx-1][yy-1]==0 + && dflag[xx-2][yy-2]==1 && dflag[xx-3][yy-3]==1){ +dbuf[0][ADR64(xx,yy)]=0; +dbuf[1][ADR64(xx,yy)]=0; +dbuf[2][ADR64(xx,yy)]=0; +} +}} + +} +#endif +} + +void cp_monst_64(){ +int xx,yy,c,dd[3],ad; +for(xx=0;xx<64;xx++){ +for(yy=0;yy<64;yy++){ + ad=ADR64(xx,yy); + /*** normal***/ + for(c=0;c<3;c++){dd[c]=tbuf[c][ad];} + if(mesh==2) + { + if( (dd[0]!=0x47)||(dd[1]!=0x6c)|| (dd[2]!=0x6c)) + if( ((xx+yy)&1) ==0)dd[0]=dd[1]=dd[2]=0; + } + + if(mesh==1) + if( (((xx/2)+(yy/2))&1) ==1)dd[0]=dd[1]=dd[2]=0; + + if( (dd[0]==0x47)&&(dd[1]==0x6c)&& (dd[2]==0x6c))continue; + + for(c=0;c<3;c++) {dbuf[c][ADR64(xx,yy)]=dd[c];} +}} +} + + +void cp_monst_4864(){ +int xx,yy,c,dd[3],ad; +for(xx=0;xx<48;xx++){ +for(yy=0;yy<64;yy++){ + ad= xx+yy*48; + /*** normal***/ + for(c=0;c<3;c++){dd[c]=tbuf[c][ad];} + if(mesh==2) + { + if( (dd[0]!=0x47)||(dd[1]!=0x6c)|| (dd[2]!=0x6c)) + if( ((xx+yy)&1) ==0)dd[0]=dd[1]=dd[2]=0; + } + + if(mesh==1) + if( (((xx/2)+(yy/2))&1) ==1)dd[0]=dd[1]=dd[2]=0; + + if( (dd[0]==0x47)&&(dd[1]==0x6c)&& (dd[2]==0x6c))continue; + + for(c=0;c<3;c++) {dbuf[c][8+xx+yy*64]=dd[c];} +}} +} + +void bflush(){ +int xx,yy,c; +if(rim==1) make_rim(); + + fprintf(mfp,"\n", + bx*WID,by*WID,bx*WID+WID-1,by*WID+WID-1, + realname); + +for(xx=0;xx<64;xx++){ +for(yy=0;yy<64;yy++){ +for(c=0;c<3;c++){ +obuf[c][WOADR(bx,by,xx,yy)]= dbuf[c][ADR64(xx,yy)]; +}}} +} + + +void copy_wall(int wall_ix, int xofs, int yofs){ +int xx,yy,c; +unsigned char dd[3]; + for(xx=0;xx<64;xx++){ + for(yy=0;yy<64;yy++){ + int x=xx-xofs-16; + int y=yy-yofs-8; + int ad = x+y*32; + if(x<0 || y<0 || x>=32 || y>=48) continue; + for(c=0;c<3;c++){dd[c]=wallbuf[wall_ix][c][ad];} + if( (dd[0]==0x47)&&(dd[1]==0x6c)&& (dd[2]==0x6c))continue; + for(c=0;c<3;c++) {dbuf[c][ADR64(xx,yy)]=dd[c];} + }} +} + +void copy_wall_vert(int wall_ix, int xofs, int yofs){ +int xx,yy,c,ymax; +unsigned char dd[3]; + for(xx=0;xx<64;xx++){ + for(yy=0;yy<64;yy++){ + int x=xx-xofs-16; + int y=yy-yofs-8; + int ad = x+y*32; + if(x<0 || y<0 || x>=32 || y>=48) continue; + + ymax= 8+x/2; + if(ymax> 8+(31-x)/2) ymax=8+(31-x)/2; + if(y<=ymax) continue; + + for(c=0;c<3;c++){dd[c]=wallbuf[wall_ix][c][ad];} + if( (dd[0]==0x47)&&(dd[1]==0x6c)&& (dd[2]==0x6c))continue; + + //Mesh +// if( ((x/2+y/2)&1) == 0) dd[0]=dd[1]=dd[2]=0; + + for(c=0;c<3;c++) {dbuf[c][ADR64(xx,yy)]=dd[c];} + }} +} + +void expand_wall(){ +//unsigned char wallbuf[4][3][32*48]; +int xx,yy,c,ix; +exp_wall=1; +for(ix=0;ix<4;ix++){ +for(xx=0;xx<32;xx++){ +for(yy=0;yy<48;yy++){ +wallbuf[ix][0][xx+yy*32]=0x47; +wallbuf[ix][1][xx+yy*32]=0x6c; +wallbuf[ix][2][xx+yy*32]=0x6c; +}}} + +//decompose wall bmp +for(xx=0;xx<32;xx++){ + int ymax= 8+xx/2; + if(ymax> 8+(31-xx)/2) ymax=8+(31-xx)/2; + for(yy=0;yy=32)ix +=1; + if(2*yy-xx >=0 )ix +=2; + for(c=0;c<3;c++)wallbuf[ix][c][xx+yy*32]=tbuf[c][xx+yy*32]; + } + + for(yy=ymax;yy<48;yy++){ + if(xx<8) ix=2;else if(xx<24) ix=3; else ix=1; + for(c=0;c<3;c++)wallbuf[ix][c][xx+yy*32]=tbuf[c][xx+yy*32]; + } +}//xx + +/* + 0 +1 1 2 2 + 3 4 5 + 6 7 8 9 + A B C +4 D E 8 + F +*/ + +for(ix=0;ix<16;ix++){ + clr_dbuf(); + if(f_wx==32)cp_floor_32(); else cp_floor_64(); + + if((ix&3)==3) copy_wall(3,0,-16); + + if(ix&1) copy_wall(1,-16,-8); + if(ix&2) copy_wall(2,16,-8); + + if(ix&1) copy_wall(3,-16,-8); + copy_wall(0, 0,0); + if(ix&2) copy_wall(3,16,-8); + + if((ix&5)==5) {copy_wall(1,-32,0);copy_wall_vert(2,-16,0);} + copy_wall(2,0,0); + copy_wall(1,0,0); + if((ix&10)==10) {copy_wall(2,32,0);copy_wall_vert(1,16,0);} + + if(ix&4) {copy_wall(0,-16,8);copy_wall_vert(3,-16,0);} + copy_wall(3,0,0); + if(ix&8) {copy_wall(0,16,8);copy_wall_vert(3,16,0);} + + if(ix&4) {copy_wall(1,-16,8);copy_wall_vert(2,0,8);} + if(ix&8) {copy_wall(2,16,8); copy_wall_vert(1,0,8);} + if((ix&12)==12) {copy_wall(0,0,16);copy_wall_vert(3,0,8);} + + bflush(); + + bx++;if(bx==xx0){bx=0;by++;} + }/*ix*/ +} + + +static void copy_wall2_h1(int ix, int xofs, int yofs){ +int xx,yy,c,ad; + +unsigned char dd[3]; + for(xx=0;xx<64;xx++){ + for(yy=0;yy<64;yy++){ + int x=xx-xofs; + int y=yy-yofs;; + ad = x+64+y*128; + if (x<0 || y<0 || x>63 || y>63)continue; + if(2*y>=x+32) continue; + if(2*y>=95-x) continue; + if((ix%3)==0) if (2*y>=47-x)continue; + if((ix%3)==1) if ((2*y<47-x) || (2*y>=79-x))continue; + if((ix%3)==2) if(2*y<79-x)continue; + + if((ix/3)==0) if(2*y>=x-16)continue; + if((ix/3)==1) if((2*y=x+16))continue; + if((ix/3)==2) if(2*y63 || y>63)continue; + if(2*y>=x+32) continue; + if(2*y>=95-x) continue; + + if ((ix%2)==0)if (2*y>=63-x)continue; + if((ix%2)==1) if (2*y<63-x)continue; + + if((ix/2)==0)if(2*y>=x)continue; + if((ix/2)==1)if(2*y=64 || y>=64) continue; + + ymax= 16+x/2; + if(x>=32) ymax=16+(63-x)/2; + if(yymax+32)continue; + + if(ix==0) if(x>=8)continue; + if(ix==1) if(x<8 || x>=24)continue; + if(ix==2) if(x<24 || x>=40)continue; + if(ix==3) if(x<40 || x>=56)continue; + if(ix==4) if(x<56)continue; + + for(c=0;c<3;c++){dd[c]=tbuf[c][ad];} + if( (dd[0]==0x47)&&(dd[1]==0x6c)&& (dd[2]==0x6c))continue; + for(c=0;c<3;c++) {dbuf[c][ADR64(xx,yy)]=dd[c];} + }} +} +void expand_wall2(){ +//void copy_wall2_h(int kind, int ix, int xofs, int yofs) +int ix; +exp_wall=1; + +for(ix=0;ix<16;ix++){ + clr_dbuf(); + if(f_wx==32)cp_floor_32(); else cp_floor_64(); + +if((ix&3)==0) copy_wall2_h1(0, 0, 8); +if((ix&3)==1) copy_wall2_h1(1, -16, 0); +if((ix&3)==2) copy_wall2_h1(3, 16, 0); +if((ix&3)==3) copy_wall2_h2(0, 0, 0); + +if((ix&5)==0) copy_wall2_h1(6, 16, 0); +if((ix&5)==1) copy_wall2_h1(7, 0, -8); +if((ix&5)==4) copy_wall2_h1(3, 0, 8); +if((ix&5)==5) copy_wall2_h2(2, 0, 0); + + +if((ix&10)==0) copy_wall2_h1(2, -16, 0); +if((ix&10)==2) copy_wall2_h1(5, 0, -8); +if((ix&10)==8) copy_wall2_h1(1, 0, 8); +if((ix&10)==10) copy_wall2_h2(1, 0, 0); + +if((ix&12)==0) copy_wall2_h1(8, 0, -8); +if((ix&12)==4) copy_wall2_h1(5, -16, 0); +if((ix&12)==8) copy_wall2_h1(7, 16, 0); +if((ix&12)==12) copy_wall2_h2(3, 0, 0); + + +if((ix&5)==5) copy_wall_v2(0, 0, 0, 0); +if((ix&10)==10) copy_wall_v2(4, 0, 0, 0); + +if((ix&4)!=0) copy_wall_v2(1, 0, 0, 0); +if((ix&8)!=0) copy_wall_v2(3, 0, 0, 0); + + +if((ix&12)==12) copy_wall_v2(2, 0, 0, 0); + +if((ix&5)==1) copy_wall_v2(1, 1, 0, -8); +if((ix&12)==8) copy_wall_v2(1, 1, 16, 0); + +if((ix&10)==2) copy_wall_v2(3, 1, 0, -8); +if((ix&12)==4) copy_wall_v2(3, 1, -16, 0); + +if((ix&5)==0) copy_wall_v2(0, 1, 16, 0); +if((ix&10)==0) copy_wall_v2(4, 1, -16, 0); +if((ix&12)==0) copy_wall_v2(2, 1, 0, -8); + + bflush(); + bx++;if(bx==xx0){bx=0;by++;} +} +} + + +void load_monst(fnam) char *fnam;{ +int wx, wy; + if( load_it(fnam, &wx, &wy)) + { + printf("no file %s.bmp\n",fnam); + getchar(); + exit(1); + } + exp_wall=0; + if(wx==128 && wy==64) expand_wall2(); + else if(wx==48 && wy==64) cp_monst_4864(); + else if(wx==32 && wy==48) expand_wall(); + else if(wx==32)cp_monst_32(); + else if(wx==64)cp_monst_64(); + bflush(); +} + +void process_config(char *fname) +{ + int i,j; + char tmp[100],st[1024]; + char *nuke; + FILE *fp=fopen(fname,"r"); + if(fp==NULL){ + printf("Error no config file %s\nHit return",fname); + getchar(); + exit(1); + } + + +while(1){ + fgets(tmp,99,fp); + if(feof(fp))break; + i=0;while(i<99 && tmp[i]>=32)i++; + tmp[i]=0; + +fprintf(stderr,"[%s]\n",tmp); + + if(getname(tmp,"back",st)) + { + /*** Set Background BMP (format "%back bmpname") ***/ + if(strncmp(st,"none",4)==0) + { + /** clear **/ + for(i=0;i<32*32;i++){fbuf[0][i]=0x47;fbuf[1][i]=fbuf[2][i]=0x6c;} + f_wx=64; + } + else + { + int wy; + load_it(st, &f_wx, &wy); + for(i=0;i32)i++; + tmp[i]=0; strcpy(st, &tmp[i+1]); + load_monst(tmp); + if(!strstr(st,"IGNORE_COMMENT")) + { + nuke=strstr(st,"/*");if(nuke)*nuke=0; + if(exp_wall) + fprintf(sfp,"TILE_%s, (TILE_TOTAL+%d),\n",st,bx+by*xx0-16); + else + fprintf(sfp,"TILE_%s, (TILE_TOTAL+%d),\n",st,bx+by*xx0); + } + + if(!exp_wall){bx++;if(bx==xx0){bx=0;by++;}} + +}/* while */ + + fclose(fp); +} + +int main(argc,argv) +int argc; +char *argv[]; +{ + + int i; + char fn[100]; + + fixalloc(tbuf,256*256); + + slant=corpse=mesh=dsize=0; + + bx=by=0; + process_cpath(argv[0]); + fixalloc(obuf, LX*64*(YY)*64); + + + xx0=XX; + ctgname[0]=0; + subsname[0]=0; + sdir[0]=0; + + stdpal(); + + strcpy(outname,"tile"); + +sprintf(fn,"%stiledef-qv.h",cpath); +sfp=fopen(fn,"w"); +if(sfp==NULL){ + printf("Error could not open %s\nHit return",fn); + getchar(); + exit(1); +} + +mfp=fopen("map.htm","w"); +fprintf(mfp,"\n"); +fprintf(mfp,"\n"); +fprintf(mfp,"\n"); + + +fprintf(sfp,"/* Automatically generated by tile generator. */\n"); +fprintf(sfp,"const int tile_qv_pair_table[] ={\n"); + + printf("%s\ncpath=%s\n",argv[0],cpath); + if(argc==1) + sprintf(fn,"%sdc-qv.txt",cpath); + else strcpy(fn,argv[1]); + process_config(fn); + + +fprintf(sfp,"-1, -1 };\n"); + +fprintf(sfp,"\n#define TILE_TOTAL_EX %d\n",bx+by*xx0); +fprintf(sfp,"#define TILE_PER_ROW_EX %d\n",xx0); + + +fclose(sfp); +i=by*64;if(bx!=0)i+=64; + +sprintf(fn,"%s%s.bmp",cpath,outname); +bmwrite(fn,xx0*64,i,obuf); + +fprintf(mfp,"\n\ +n\n", outname); +fclose(mfp); + +return 0; +} diff --git a/crawl-ref/source/rltiles/tool/palette.h b/crawl-ref/source/rltiles/tool/palette.h new file mode 100644 index 0000000000..c94b0d66f7 --- /dev/null +++ b/crawl-ref/source/rltiles/tool/palette.h @@ -0,0 +1,355 @@ +unsigned char pbuf[1024]= { +/* index B G R unused */ + +// Red +/* 0x00 */ 0x00, 0x00, 0xff, 0x00, +/* 0x01 */ 0x00, 0x00, 0xe0, 0x00, +/* 0x02 */ 0x00, 0x00, 0xc0, 0x00, +/* 0x03 */ 0x00, 0x00, 0xa0, 0x00, +/* 0x04 */ 0x00, 0x00, 0x80, 0x00, +/* 0x05 */ 0x00, 0x00, 0x60, 0x00, +/* 0x06 */ 0x00, 0x00, 0x40, 0x00, +/* 0x07 */ 0x00, 0x00, 0x30, 0x00, +// Dark red +/* 0x08 */ 0x00, 0x00, 0x20, 0x00, +/* 0x09 */ 0x00, 0x00, 0x18, 0x00, +/* 0x0a */ 0x00, 0x00, 0x10, 0x00, +//Pale Red +/* 0x0b */ 0x40, 0x40, 0x80, 0x00, +/* 0x0c */ 0x50, 0x50, 0xa0, 0x00, +/* 0x0d */ 0x60, 0x60, 0xc0, 0x00, +/* 0x0e */ 0x70, 0x70, 0xe0, 0x00, +/* 0x0f */ 0x80, 0x80, 0xff, 0x00, + +//Red-Orange +/* 0x10 */ 0x00, 0x40, 0xff, 0x00, +/* 0x11 */ 0x00, 0x38, 0xe0, 0x00, +/* 0x12 */ 0x00, 0x30, 0xc0, 0x00, +/* 0x13 */ 0x00, 0x28, 0xa0, 0x00, +/* 0x14 */ 0x00, 0x20, 0x80, 0x00, +/* 0x15 */ 0x00, 0x18, 0x60, 0x00, +/* 0x16 */ 0x00, 0x10, 0x40, 0x00, +/* 0x17 */ 0x00, 0x0c, 0x30, 0x00, +//Dark Yellow +/* 0x18 */ 0x00, 0x20, 0x20, 0x00, +/* 0x19 */ 0x00, 0x18, 0x18, 0x00, +/* 0x1a */ 0x00, 0x10, 0x10, 0x00, +//Pale Yellow +/* 0x1b */ 0x40, 0x80, 0x80, 0x00, +/* 0x1c */ 0x50, 0xa0, 0xa0, 0x00, +/* 0x1d */ 0x60, 0xc0, 0xc0, 0x00, +/* 0x1e */ 0x70, 0xe0, 0xe0, 0x00, +/* 0x1f */ 0x80, 0xff, 0xff, 0x00, + +//Orange +/* 0x20 */ 0x00, 0x80, 0xff, 0x00, +/* 0x21 */ 0x00, 0x70, 0xe0, 0x00, +/* 0x22 */ 0x00, 0x60, 0xc0, 0x00, +/* 0x23 */ 0x00, 0x50, 0xa0, 0x00, +/* 0x24 */ 0x00, 0x40, 0x80, 0x00, +/* 0x25 */ 0x00, 0x30, 0x60, 0x00, +/* 0x26 */ 0x00, 0x20, 0x40, 0x00, +/* 0x27 */ 0x00, 0x18, 0x30, 0x00, +//Dark Green +/* 0x28 */ 0x00, 0x20, 0x00, 0x00, +/* 0x29 */ 0x00, 0x18, 0x00, 0x00, +/* 0x2a */ 0x00, 0x10, 0x00, 0x00, +//Pale Green +/* 0x2b */ 0x40, 0x80, 0x40, 0x00, +/* 0x2c */ 0x50, 0xa0, 0x50, 0x00, +/* 0x2d */ 0x60, 0xc0, 0x60, 0x00, +/* 0x2e */ 0x70, 0xe0, 0x70, 0x00, +/* 0x2f */ 0x80, 0xff, 0x80, 0x00, + +//Yellow Orange +/* 0x30 */ 0x00, 0xc0, 0xff, 0x00, +/* 0x31 */ 0x00, 0xa8, 0xe0, 0x00, +/* 0x32 */ 0x00, 0x90, 0xc0, 0x00, +/* 0x33 */ 0x00, 0x78, 0xa0, 0x00, +/* 0x34 */ 0x00, 0x60, 0x80, 0x00, +/* 0x35 */ 0x00, 0x48, 0x60, 0x00, +/* 0x36 */ 0x00, 0x30, 0x40, 0x00, +/* 0x37 */ 0x00, 0x24, 0x30, 0x00, +//Dark cyan +/* 0x38 */ 0x20, 0x20, 0x00, 0x00, +/* 0x39 */ 0x18, 0x18, 0x00, 0x00, +/* 0x3a */ 0x10, 0x10, 0x00, 0x00, +//Pale cyan +/* 0x3b */ 0x80, 0x80, 0x40, 0x00, +/* 0x3c */ 0xa0, 0xa0, 0x50, 0x00, +/* 0x3d */ 0xc0, 0xc0, 0x60, 0x00, +/* 0x3e */ 0xe0, 0xe0, 0x70, 0x00, +/* 0x3f */ 0xff, 0xff, 0x80, 0x00, +//Yellow +/* 0x40 */ 0x00, 0xff, 0xff, 0x00, +/* 0x41 */ 0x00, 0xe0, 0xe0, 0x00, +/* 0x42 */ 0x00, 0xc0, 0xc0, 0x00, +/* 0x43 */ 0x00, 0xa0, 0xa0, 0x00, +/* 0x44 */ 0x00, 0x80, 0x80, 0x00, +/* 0x45 */ 0x00, 0x60, 0x60, 0x00, +/* 0x46 */ 0x00, 0x40, 0x40, 0x00, +/* 0x47 */ 0x00, 0x30, 0x30, 0x00, +//Dark Blue +/* 0x48 */ 0x20, 0x00, 0x00, 0x00, +/* 0x49 */ 0x18, 0x00, 0x00, 0x00, +/* 0x4a */ 0x10, 0x00, 0x00, 0x00, +//Pale Blue +/* 0x4b */ 0x80, 0x40, 0x40, 0x00, +/* 0x4c */ 0xa0, 0x50, 0x50, 0x00, +/* 0x4d */ 0xc0, 0x60, 0x60, 0x00, +/* 0x4e */ 0xe0, 0x70, 0x70, 0x00, +/* 0x4f */ 0xff, 0x80, 0x80, 0x00, + +//Yellow Green +/* 0x50 */ 0x00, 0xff, 0x80, 0x00, +/* 0x51 */ 0x00, 0xe0, 0x70, 0x00, +/* 0x52 */ 0x00, 0xc0, 0x60, 0x00, +/* 0x53 */ 0x00, 0xa0, 0x50, 0x00, +/* 0x54 */ 0x00, 0x80, 0x40, 0x00, +/* 0x55 */ 0x00, 0x60, 0x30, 0x00, +/* 0x56 */ 0x00, 0x40, 0x20, 0x00, +/* 0x57 */ 0x00, 0x30, 0x18, 0x00, +//Dark magenta +/* 0x58 */ 0x20, 0x00, 0x20, 0x00, +/* 0x59 */ 0x18, 0x00, 0x18, 0x00, +/* 0x5a */ 0x10, 0x00, 0x10, 0x00, +//Pale Magenta +/* 0x5b */ 0x80, 0x40, 0x80, 0x00, +/* 0x5c */ 0xa0, 0x50, 0xa0, 0x00, +/* 0x5d */ 0xc0, 0x60, 0xc0, 0x00, +/* 0x5e */ 0xe0, 0x70, 0xe0, 0x00, +/* 0x5f */ 0xff, 0x80, 0xff, 0x00, + +//Green +/* 0x60 */ 0x00, 0xff, 0x00, 0x00, +/* 0x61 */ 0x00, 0xe0, 0x00, 0x00, +/* 0x62 */ 0x00, 0xc0, 0x00, 0x00, +/* 0x63 */ 0x00, 0xa0, 0x00, 0x00, +/* 0x64 */ 0x00, 0x80, 0x00, 0x00, +/* 0x65 */ 0x00, 0x60, 0x00, 0x00, +/* 0x66 */ 0x00, 0x40, 0x00, 0x00, +/* 0x67 */ 0x00, 0x30, 0x00, 0x00, +// Dark Pale Red +/* 0x68 */ 0x30, 0x30, 0x60, 0x00, +/* 0x69 */ 0x20, 0x20, 0x40, 0x00, +/* 0x6a */ 0x18, 0x18, 0x30, 0x00, +//Very Pale Red +/* 0x6b */ 0x60, 0x60, 0x80, 0x00, +/* 0x6c */ 0x78, 0x78, 0xa0, 0x00, +/* 0x6d */ 0x90, 0x90, 0xc0, 0x00, +/* 0x6e */ 0xa8, 0xa8, 0xe0, 0x00, +/* 0x6f */ 0xc0, 0xc0, 0xff, 0x00, + +// BlueGreen +/* 0x70 */ 0x80, 0xff, 0x00, 0x00, +/* 0x71 */ 0x70, 0xe0, 0x00, 0x00, +/* 0x72 */ 0x60, 0xc0, 0x00, 0x00, +/* 0x73 */ 0x50, 0xa0, 0x00, 0x00, +/* 0x74 */ 0x40, 0x80, 0x00, 0x00, +/* 0x75 */ 0x30, 0x60, 0x00, 0x00, +/* 0x76 */ 0x20, 0x40, 0x00, 0x00, +/* 0x77 */ 0x18, 0x30, 0x00, 0x00, +// Dark Pale Yellow +/* 0x78 */ 0x30, 0x60, 0x60, 0x00, +/* 0x79 */ 0x20, 0x40, 0x40, 0x00, +/* 0x7a */ 0x18, 0x30, 0x30, 0x00, +//Very Pale Yellow +/* 0x7b */ 0x60, 0x80, 0x80, 0x00, +/* 0x7c */ 0x78, 0xa0, 0xa0, 0x00, +/* 0x7d */ 0x90, 0xc0, 0xc0, 0x00, +/* 0x7e */ 0xa8, 0xe0, 0xe0, 0x00, +/* 0x7f */ 0xc0, 0xff, 0xff, 0x00, + +// Cyan +/* 0x80 */ 0xff, 0xff, 0x00, 0x00, +/* 0x81 */ 0xe0, 0xe0, 0x00, 0x00, +/* 0x82 */ 0xc0, 0xc0, 0x00, 0x00, +/* 0x83 */ 0xa0, 0xa0, 0x00, 0x00, +/* 0x84 */ 0x80, 0x80, 0x00, 0x00, +/* 0x85 */ 0x60, 0x60, 0x00, 0x00, +/* 0x86 */ 0x40, 0x40, 0x00, 0x00, +/* 0x87 */ 0x30, 0x30, 0x00, 0x00, +//Dark Pale Green +/* 0x88 */ 0x30, 0x60, 0x30, 0x00, +/* 0x89 */ 0x20, 0x40, 0x20, 0x00, +/* 0x8a */ 0x18, 0x30, 0x18, 0x00, +//Very Plae Green +/* 0x8b */ 0x60, 0x80, 0x60, 0x00, +/* 0x8c */ 0x78, 0xa0, 0x78, 0x00, +/* 0x8d */ 0x90, 0xc0, 0x90, 0x00, +/* 0x8e */ 0xa8, 0xe0, 0xa8, 0x00, +/* 0x8f */ 0xc0, 0xff, 0xc0, 0x00, + +//Sky Blue +/* 0x90 */ 0xff, 0x80, 0x00, 0x00, +/* 0x91 */ 0xe0, 0x70, 0x00, 0x00, +/* 0x92 */ 0xc0, 0x60, 0x00, 0x00, +/* 0x93 */ 0xa0, 0x50, 0x00, 0x00, +/* 0x94 */ 0x80, 0x40, 0x00, 0x00, +/* 0x95 */ 0x60, 0x30, 0x00, 0x00, +/* 0x96 */ 0x40, 0x20, 0x00, 0x00, +/* 0x97 */ 0x30, 0x18, 0x00, 0x00, +//Dark Plae Cyan +/* 0x98 */ 0x60, 0x60, 0x30, 0x00, +/* 0x99 */ 0x40, 0x40, 0x20, 0x00, +/* 0x9a */ 0x30, 0x30, 0x18, 0x00, +//Very Pale Cyan +/* 0x9b */ 0x80, 0x80, 0x60, 0x00, +/* 0x9c */ 0xa0, 0xa0, 0x78, 0x00, +/* 0x9d */ 0xc0, 0xc0, 0x90, 0x00, +/* 0x9e */ 0xe0, 0xe0, 0xa8, 0x00, +/* 0x9f */ 0xff, 0xff, 0xc0, 0x00, + +// Blue +/* 0xa0 */ 0xff, 0x00, 0x00, 0x00, +/* 0xa1 */ 0xe0, 0x00, 0x00, 0x00, +/* 0xa2 */ 0xc0, 0x00, 0x00, 0x00, +/* 0xa3 */ 0xa0, 0x00, 0x00, 0x00, +/* 0xa4 */ 0x80, 0x00, 0x00, 0x00, +/* 0xa5 */ 0x60, 0x00, 0x00, 0x00, +/* 0xa6 */ 0x40, 0x00, 0x00, 0x00, +/* 0xa7 */ 0x30, 0x00, 0x00, 0x00, +//Dark Pale Blue +/* 0xa8 */ 0x60, 0x30, 0x30, 0x00, +/* 0xa9 */ 0x40, 0x20, 0x20, 0x00, +/* 0xaa */ 0x30, 0x18, 0x18, 0x00, +//Very Pale Blue +/* 0xab */ 0x80, 0x60, 0x60, 0x00, +/* 0xac */ 0xa0, 0x78, 0x78, 0x00, +/* 0xad */ 0xc0, 0x90, 0x90, 0x00, +/* 0xae */ 0xe0, 0xa8, 0xa8, 0x00, +/* 0xaf */ 0xff, 0xc0, 0xc0, 0x00, + +// BlueMagenta +/* 0xb0 */ 0xff, 0x00, 0x80, 0x00, +/* 0xb1 */ 0xe0, 0x00, 0x70, 0x00, +/* 0xb2 */ 0xc0, 0x00, 0x60, 0x00, +/* 0xb3 */ 0xa0, 0x00, 0x50, 0x00, +/* 0xb4 */ 0x80, 0x00, 0x40, 0x00, +/* 0xb5 */ 0x60, 0x00, 0x30, 0x00, +/* 0xb6 */ 0x40, 0x00, 0x20, 0x00, +/* 0xb7 */ 0x30, 0x00, 0x18, 0x00, +//Dark Pale Magenta +/* 0xb8 */ 0x60, 0x30, 0x60, 0x00, +/* 0xb9 */ 0x40, 0x20, 0x40, 0x00, +/* 0xba */ 0x30, 0x18, 0x30, 0x00, +//Very Pale Magenta +/* 0xbb */ 0x80, 0x60, 0x80, 0x00, +/* 0xbc */ 0xa0, 0x78, 0xa0, 0x00, +/* 0xbd */ 0xc0, 0x90, 0xc0, 0x00, +/* 0xbe */ 0xe0, 0xa8, 0xe0, 0x00, +/* 0xbf */ 0xff, 0xc0, 0xff, 0x00, + +//Magenta +/* 0xc0 */ 0xff, 0x00, 0xff, 0x00, +/* 0xc1 */ 0xe0, 0x00, 0xe0, 0x00, +/* 0xc2 */ 0xc0, 0x00, 0xc0, 0x00, +/* 0xc3 */ 0xa0, 0x00, 0xa0, 0x00, +/* 0xc4 */ 0x80, 0x00, 0x80, 0x00, +/* 0xc5 */ 0x60, 0x00, 0x60, 0x00, +/* 0xc6 */ 0x40, 0x00, 0x40, 0x00, +/* 0xc7 */ 0x30, 0x00, 0x30, 0x00, + +//Grayscale +/* 0xc8 */ 0xff, 0xff, 0xff, 0x00, +/* 0xc9 */ 0xe0, 0xe0, 0xe0, 0x00, +/* 0xca */ 0xc0, 0xc0, 0xc0, 0x00, +/* 0xcb */ 0xa0, 0xa0, 0xa0, 0x00, +/* 0xcc */ 0x80, 0x80, 0x80, 0x00, +/* 0xcd */ 0x60, 0x60, 0x60, 0x00, +/* 0xce */ 0x40, 0x40, 0x40, 0x00, +/* 0xcf */ 0x20, 0x20, 0x20, 0x00, + +//Red Magenta +/* 0xd0 */ 0x80, 0x00, 0xff, 0x00, +/* 0xd1 */ 0x70, 0x00, 0xe0, 0x00, +/* 0xd2 */ 0x60, 0x00, 0xc0, 0x00, +/* 0xd3 */ 0x50, 0x00, 0xa0, 0x00, +/* 0xd4 */ 0x40, 0x00, 0x80, 0x00, +/* 0xd5 */ 0x30, 0x00, 0x60, 0x00, +/* 0xd6 */ 0x20, 0x00, 0x40, 0x00, +/* 0xd7 */ 0x18, 0x00, 0x30, 0x00, + +//Grayscale +/* 0xd8 */ 0xf0, 0xf0, 0xf0, 0x00, +/* 0xd9 */ 0xd0, 0xd0, 0xd0, 0x00, +/* 0xda */ 0xb0, 0xb0, 0xb0, 0x00, +/* 0xdb */ 0x90, 0x90, 0x90, 0x00, +/* 0xdc */ 0x70, 0x70, 0x70, 0x00, +/* 0xdd */ 0x50, 0x50, 0x50, 0x00, +/* 0xde */ 0x30, 0x30, 0x30, 0x00, +/* 0xdf */ 0x10, 0x10, 0x10, 0x00, + +// Flesh +/* 0xe0 */ 0x48, 0x5a, 0x7f, 0x00, +/* 0xe1 */ 0x5e, 0x76, 0xa5, 0x00, +/* 0xe2 */ 0x72, 0x8f, 0xca, 0x00, +/* 0xe3 */ 0x82, 0xa2, 0xe5, 0x00, +/* 0xe4 */ 0x91, 0xb6, 0xff, 0x00, +/* 0xe5 */ 0xaf, 0xd3, 0xff, 0x00, + +//Gold 12:10:4 +#if 0 + //Old Gold colors + /* 0xe6 */ 0x1f, 0x54, 0x68, 0x00, + /* 0xe7 */ 0x20, 0x70, 0x80, 0x00, + /* 0xe8 */ 0x34, 0x88, 0xaa, 0x00, + /* 0xe9 */ 0x40, 0xa0, 0xc0, 0x00, + /* 0xea */ 0x4d, 0xc4, 0xf2, 0x00, + /* 0xeb */ 0x60, 0xe0, 0xf8, 0x00, + /* 0xec */ 0x99, 0xfc, 0xfc, 0x00, +#endif + +// New gold colors r:g:b = 6:5:2 +/* 0xe6 */ 0x20, 0x50, 0x60, 0x00, +/* 0xe7 */ 0x2a, 0x6a, 0x80, 0x00, +/* 0xe8 */ 0x35, 0x85, 0xa0, 0x00, +/* 0xe9 */ 0x40, 0xa0, 0xc0, 0x00, +/* 0xea */ 0x4a, 0xba, 0xe0, 0x00, +/* 0xeb */ 0x60, 0xe0, 0xf8, 0x00, +/* 0xec */ 0xa0, 0xff, 0xff, 0x00, + +// Zombie + +#if 0 + // Old zombie skin colors + /* 0xed */ 0x58, 0x69, 0x75, 0x00, -> 607080 + /* 0xee */ 0x6e, 0x87, 0x91, 0x00, -> 788ca0 + /* 0xef */ 0x81, 0x9a, 0xab, 0x00, -> 90a8c0 +#endif + + // New zombie skin colors r:g:b=8:7:6 +/* 0xed */ 0x48, 0x54, 0x60, 0x00, +/* 0xee */ 0x60, 0x70, 0x80, 0x00, +/* 0xef */ 0x78, 0x8c, 0xa0, 0x00, +/* 0xf0 */ 0x90, 0xa8, 0xc0, 0x00, +/* 0xf1 */ 0xa8, 0xc4, 0xe0, 0x00, + +#if 0 + // Old Brass 14:12:10, 13:10.5:5 + /* 0xf0 */ 0xa0, 0xc0, 0xe0, 0x00, -> a8c4e0 + /* 0xf1 */ 0x50, 0xa8, 0xd0, 0x00, -> 40a0c0 +#endif + +// Unused +// (reserving 16 colors for the system seemed a reasonable idea +// when I was using 256 color X-Window display, but it seems +// an obsolete idea now. However, I should be very careful to +// introduce new colors. +/* 0xf2 */ 0x00, 0x00, 0x00, 0x00, +/* 0xf3 */ 0x00, 0x00, 0x00, 0x00, +/* 0xf4 */ 0x00, 0x00, 0x00, 0x00, +/* 0xf5 */ 0x00, 0x00, 0x00, 0x00, +/* 0xf6 */ 0x00, 0x00, 0x00, 0x00, +/* 0xf7 */ 0x00, 0x00, 0x00, 0x00, +/* 0xf8 */ 0x00, 0x00, 0x00, 0x00, +/* 0xf9 */ 0x00, 0x00, 0x00, 0x00, +/* 0xfa */ 0x00, 0x00, 0x00, 0x00, +/* 0xfb */ 0x00, 0x00, 0x00, 0x00, +/* 0xfc */ 0x00, 0x00, 0x00, 0x00, +/* 0xfd */ 0x00, 0x00, 0x00, 0x00, +/* 0xfe */ 0x00, 0x00, 0x00, 0x00, + +//Transparent color +/* 0xff */ 0x6c, 0x6c, 0x47, 0x00 +}; diff --git a/crawl-ref/source/rltiles/tool/shade.c b/crawl-ref/source/rltiles/tool/shade.c new file mode 100644 index 0000000000..3e7d7f715b --- /dev/null +++ b/crawl-ref/source/rltiles/tool/shade.c @@ -0,0 +1,254 @@ +#include "bm.h" + +int myrand() +{ + static int seed=12345; + seed *= 65539; + return(seed&0x7fffffff); +} + +int same_hue(int r, int g, int b, int r0, int g0, int b0) +{ + if (r==255)r=256; + if (g==255)g=256; + if (b==255)b=256; + + if(r0*g == g0*r && g0*b == b0*g && b0*r == r0*b) return 1; + return 0; +} + +void convert_hue(unsigned char *r, unsigned char *g, unsigned char *b, + int r0, int g0, int b0, int modif) +{ + int rr,gg,bb; + int max0 = r0; + int max = *r; + if(max<*g) max=*g; + if(max<*b) max=*b; + if(max==255) max=256; + + if(max0255) rr=255; + else if(rr<0) rr=0; + if(gg>255) gg=255; + else if(gg<0) gg=0; + if(bb>255) bb=255; + else if(bb<0) bb=0; + + *r=rr; *g=gg; *b=bb; +} + + +int main(int argc, char **argv){ + +unsigned char *ibuf[3]; +int x,y; +int i; +char fn[100],st[1024]; +char *flag; +unsigned char *nbuf[3]; +int ncol[3],ccol[10][3],nccol,ccol2[10][3], modif[10]; +FILE *ifp; +int level,l; +int xx,yy,c,f; +float prob,amp; +int thresh; + + stdpal(); + process_cpath(argv[0]); + +if(argc!=1) + strcpy(fn, argv[1]); +else + sprintf(fn,"%sshade.txt",cpath); + +fprintf(stderr,"FILE=[%s]\n",fn); + +ifp=fopen(fn,"r"); +myfget(st,ifp); +sprintf(fn,"%s%s.bmp",cpath,st); +fprintf(stderr,"Orig file=[%s]\n",fn); +ibuf[0]=ibuf[1]=ibuf[2]=NULL; +bmread(fn,&x,&y,ibuf ); +fprintf(stderr,"loaded x=%d y=%d\n",x,y); +flag=malloc(x*y); +for(i=0;i<3;i++)nbuf[i]=malloc(x*y); + +while(1){ +myfget(st,ifp); +if(feof(ifp))break; +level=atoi(st); + +//random perturbation amplitude/prob +myfget(st,ifp); +prob=atof(st); +thresh=(int)(0x7fffffff*prob); +if(prob==-1.0)thresh=-1;//ringmail +if(prob==-2.0)thresh=-2;//chainmail + +myfget(st,ifp); +amp=atof(st); +printf("P=%f Amp=%f\n",prob,amp); + +// Normal col +myfget(st,ifp); +fprintf(stderr,"Normal [%s]\n",st); +sscanf(st,"%d %d %d",&ncol[0],&ncol[1],&ncol[2]); + +//Control col +myfget(st,ifp); +if(feof(ifp))break; +nccol=atoi(st); + +for(i=0;i1) convert_hue(&ibuf[0][ad],&ibuf[1][ad],&ibuf[2][ad], + ccol2[f-2][0],ccol2[f-2][1],ccol2[f-2][2], modif[f-2]); +} +} + +/********************************/ +for(l=0;l0 && flag[ad-1]!=0){n++;sum+=ibuf[c][ad-1];} +if(xx0 && flag[ad-x]!=0){n++;sum+=ibuf[c][ad-x];} +if(yy255)d=255; + if(d<0)d=0; + ibuf[c][ad]=(unsigned char)d; + } +} +}}//XY +}//ringmail +if(thresh==-2){//chainmail + +for(xx=0;xx255)d=255; + if(d<0)d=0; + ibuf[c][ad]=(unsigned char)d; + } +} +}}//XY +}//chainmail + +if(thresh>0){ +for(xx=0;xx255)d=255; + if(d<0)d=0; + ibuf[c][ad]=(unsigned char)d; + } +} +}}//XY +}//if + +}/*while*/ + +sprintf(fn,"%sb.bmp",cpath); +bmwrite_dither(fn,x,y,ibuf ,flag); + + +fclose(ifp); + +} diff --git a/crawl-ref/source/rltiles/walls2d/hall.bmp b/crawl-ref/source/rltiles/walls2d/hall.bmp new file mode 100644 index 0000000000..6882a56689 Binary files /dev/null and b/crawl-ref/source/rltiles/walls2d/hall.bmp differ diff --git a/crawl-ref/source/rltiles/walls2d/hall.png b/crawl-ref/source/rltiles/walls2d/hall.png new file mode 100644 index 0000000000..649a6a1b3a Binary files /dev/null and b/crawl-ref/source/rltiles/walls2d/hall.png differ diff --git a/crawl-ref/source/rltiles/walls2d/hive.bmp b/crawl-ref/source/rltiles/walls2d/hive.bmp new file mode 100644 index 0000000000..7706dc83f3 Binary files /dev/null and b/crawl-ref/source/rltiles/walls2d/hive.bmp differ diff --git a/crawl-ref/source/rltiles/walls2d/hive.png b/crawl-ref/source/rltiles/walls2d/hive.png new file mode 100644 index 0000000000..e4051c2146 Binary files /dev/null and b/crawl-ref/source/rltiles/walls2d/hive.png differ diff --git a/crawl-ref/source/rltiles/walls2d/ice.bmp b/crawl-ref/source/rltiles/walls2d/ice.bmp new file mode 100644 index 0000000000..9f4aa8dd87 Binary files /dev/null and b/crawl-ref/source/rltiles/walls2d/ice.bmp differ diff --git a/crawl-ref/source/rltiles/walls2d/ice.png b/crawl-ref/source/rltiles/walls2d/ice.png new file mode 100644 index 0000000000..37ea5ad517 Binary files /dev/null and b/crawl-ref/source/rltiles/walls2d/ice.png differ diff --git a/crawl-ref/source/rltiles/walls2d/lair.bmp b/crawl-ref/source/rltiles/walls2d/lair.bmp new file mode 100644 index 0000000000..2277be3720 Binary files /dev/null and b/crawl-ref/source/rltiles/walls2d/lair.bmp differ diff --git a/crawl-ref/source/rltiles/walls2d/lair.png b/crawl-ref/source/rltiles/walls2d/lair.png new file mode 100644 index 0000000000..b9607de218 Binary files /dev/null and b/crawl-ref/source/rltiles/walls2d/lair.png differ diff --git a/crawl-ref/source/rltiles/walls2d/normal.bmp b/crawl-ref/source/rltiles/walls2d/normal.bmp new file mode 100644 index 0000000000..9a5a8e6b09 Binary files /dev/null and b/crawl-ref/source/rltiles/walls2d/normal.bmp differ diff --git a/crawl-ref/source/rltiles/walls2d/normal.png b/crawl-ref/source/rltiles/walls2d/normal.png new file mode 100644 index 0000000000..386ac0fc5a Binary files /dev/null and b/crawl-ref/source/rltiles/walls2d/normal.png differ diff --git a/crawl-ref/source/rltiles/walls2d/orc.bmp b/crawl-ref/source/rltiles/walls2d/orc.bmp new file mode 100644 index 0000000000..02d88b3901 Binary files /dev/null and b/crawl-ref/source/rltiles/walls2d/orc.bmp differ diff --git a/crawl-ref/source/rltiles/walls2d/orc.png b/crawl-ref/source/rltiles/walls2d/orc.png new file mode 100644 index 0000000000..902ee9fcc3 Binary files /dev/null and b/crawl-ref/source/rltiles/walls2d/orc.png differ diff --git a/crawl-ref/source/rltiles/walls2d/slime.bmp b/crawl-ref/source/rltiles/walls2d/slime.bmp new file mode 100644 index 0000000000..a4c0d86c26 Binary files /dev/null and b/crawl-ref/source/rltiles/walls2d/slime.bmp differ diff --git a/crawl-ref/source/rltiles/walls2d/slime.png b/crawl-ref/source/rltiles/walls2d/slime.png new file mode 100644 index 0000000000..ec08cfa3c7 Binary files /dev/null and b/crawl-ref/source/rltiles/walls2d/slime.png differ diff --git a/crawl-ref/source/rltiles/walls2d/snake.bmp b/crawl-ref/source/rltiles/walls2d/snake.bmp new file mode 100644 index 0000000000..9e06baaecf Binary files /dev/null and b/crawl-ref/source/rltiles/walls2d/snake.bmp differ diff --git a/crawl-ref/source/rltiles/walls2d/snake.png b/crawl-ref/source/rltiles/walls2d/snake.png new file mode 100644 index 0000000000..1c63a9ba01 Binary files /dev/null and b/crawl-ref/source/rltiles/walls2d/snake.png differ diff --git a/crawl-ref/source/rltiles/walls2d/swamp.bmp b/crawl-ref/source/rltiles/walls2d/swamp.bmp new file mode 100644 index 0000000000..da7fc588b9 Binary files /dev/null and b/crawl-ref/source/rltiles/walls2d/swamp.bmp differ diff --git a/crawl-ref/source/rltiles/walls2d/swamp.png b/crawl-ref/source/rltiles/walls2d/swamp.png new file mode 100644 index 0000000000..ebb928e531 Binary files /dev/null and b/crawl-ref/source/rltiles/walls2d/swamp.png differ diff --git a/crawl-ref/source/rltiles/walls2d/tomb.bmp b/crawl-ref/source/rltiles/walls2d/tomb.bmp new file mode 100644 index 0000000000..970ab6110e Binary files /dev/null and b/crawl-ref/source/rltiles/walls2d/tomb.bmp differ diff --git a/crawl-ref/source/rltiles/walls2d/tomb.png b/crawl-ref/source/rltiles/walls2d/tomb.png new file mode 100644 index 0000000000..25264abe3f Binary files /dev/null and b/crawl-ref/source/rltiles/walls2d/tomb.png differ diff --git a/crawl-ref/source/rltiles/walls2d/undead.bmp b/crawl-ref/source/rltiles/walls2d/undead.bmp new file mode 100644 index 0000000000..fc318adce0 Binary files /dev/null and b/crawl-ref/source/rltiles/walls2d/undead.bmp differ diff --git a/crawl-ref/source/rltiles/walls2d/undead.png b/crawl-ref/source/rltiles/walls2d/undead.png new file mode 100644 index 0000000000..4b0cb1a139 Binary files /dev/null and b/crawl-ref/source/rltiles/walls2d/undead.png differ diff --git a/crawl-ref/source/rltiles/walls2d/vault.bmp b/crawl-ref/source/rltiles/walls2d/vault.bmp new file mode 100644 index 0000000000..87bb9e7dc1 Binary files /dev/null and b/crawl-ref/source/rltiles/walls2d/vault.bmp differ diff --git a/crawl-ref/source/rltiles/walls2d/vault.png b/crawl-ref/source/rltiles/walls2d/vault.png new file mode 100644 index 0000000000..a5fe3910ef Binary files /dev/null and b/crawl-ref/source/rltiles/walls2d/vault.png differ diff --git a/crawl-ref/source/rltiles/walls2d/z_blue.bmp b/crawl-ref/source/rltiles/walls2d/z_blue.bmp new file mode 100644 index 0000000000..248c13e414 Binary files /dev/null and b/crawl-ref/source/rltiles/walls2d/z_blue.bmp differ diff --git a/crawl-ref/source/rltiles/walls2d/z_blue.png b/crawl-ref/source/rltiles/walls2d/z_blue.png new file mode 100644 index 0000000000..68462afa08 Binary files /dev/null and b/crawl-ref/source/rltiles/walls2d/z_blue.png differ diff --git a/crawl-ref/source/rltiles/walls2d/z_cyan.bmp b/crawl-ref/source/rltiles/walls2d/z_cyan.bmp new file mode 100644 index 0000000000..789150f396 Binary files /dev/null and b/crawl-ref/source/rltiles/walls2d/z_cyan.bmp differ diff --git a/crawl-ref/source/rltiles/walls2d/z_cyan.png b/crawl-ref/source/rltiles/walls2d/z_cyan.png new file mode 100644 index 0000000000..f75870b8b2 Binary files /dev/null and b/crawl-ref/source/rltiles/walls2d/z_cyan.png differ diff --git a/crawl-ref/source/rltiles/walls2d/z_gray.bmp b/crawl-ref/source/rltiles/walls2d/z_gray.bmp new file mode 100644 index 0000000000..273d46d558 Binary files /dev/null and b/crawl-ref/source/rltiles/walls2d/z_gray.bmp differ diff --git a/crawl-ref/source/rltiles/walls2d/z_gray.png b/crawl-ref/source/rltiles/walls2d/z_gray.png new file mode 100644 index 0000000000..5e67352727 Binary files /dev/null and b/crawl-ref/source/rltiles/walls2d/z_gray.png differ diff --git a/crawl-ref/source/rltiles/walls2d/z_green.bmp b/crawl-ref/source/rltiles/walls2d/z_green.bmp new file mode 100644 index 0000000000..598934909a Binary files /dev/null and b/crawl-ref/source/rltiles/walls2d/z_green.bmp differ diff --git a/crawl-ref/source/rltiles/walls2d/z_green.png b/crawl-ref/source/rltiles/walls2d/z_green.png new file mode 100644 index 0000000000..7a288aaed4 Binary files /dev/null and b/crawl-ref/source/rltiles/walls2d/z_green.png differ diff --git a/crawl-ref/source/rltiles/walls2d/z_magenta.bmp b/crawl-ref/source/rltiles/walls2d/z_magenta.bmp new file mode 100644 index 0000000000..665136ab96 Binary files /dev/null and b/crawl-ref/source/rltiles/walls2d/z_magenta.bmp differ diff --git a/crawl-ref/source/rltiles/walls2d/z_magenta.png b/crawl-ref/source/rltiles/walls2d/z_magenta.png new file mode 100644 index 0000000000..d2d314185f Binary files /dev/null and b/crawl-ref/source/rltiles/walls2d/z_magenta.png differ diff --git a/crawl-ref/source/rltiles/walls2d/z_red.bmp b/crawl-ref/source/rltiles/walls2d/z_red.bmp new file mode 100644 index 0000000000..05cb422e91 Binary files /dev/null and b/crawl-ref/source/rltiles/walls2d/z_red.bmp differ diff --git a/crawl-ref/source/rltiles/walls2d/z_red.png b/crawl-ref/source/rltiles/walls2d/z_red.png new file mode 100644 index 0000000000..5025e5b984 Binary files /dev/null and b/crawl-ref/source/rltiles/walls2d/z_red.png differ diff --git a/crawl-ref/source/rltiles/walls2d/z_yellow.bmp b/crawl-ref/source/rltiles/walls2d/z_yellow.bmp new file mode 100644 index 0000000000..87af020d81 Binary files /dev/null and b/crawl-ref/source/rltiles/walls2d/z_yellow.bmp differ diff --git a/crawl-ref/source/rltiles/walls2d/z_yellow.png b/crawl-ref/source/rltiles/walls2d/z_yellow.png new file mode 100644 index 0000000000..c70ad9be5f Binary files /dev/null and b/crawl-ref/source/rltiles/walls2d/z_yellow.png differ diff --git a/crawl-ref/source/shopping.cc b/crawl-ref/source/shopping.cc index f9aad54aeb..9490345e4d 100644 --- a/crawl-ref/source/shopping.cc +++ b/crawl-ref/source/shopping.cc @@ -172,6 +172,10 @@ static void in_a_shop( int shopidx ) cursor_control coff(false); +#ifdef USE_TILE + clrscr(); +#endif + const std::string hello = "Welcome to " + shop_name(shop.x, shop.y) + "!"; shop_print(hello.c_str(), 20); @@ -306,14 +310,14 @@ bool shoptype_identifies_stock(shop_type type) static void shop_print( const char *shoppy, int sh_lines ) { - gotoxy(1, sh_lines); + gotoxy(1, sh_lines, GOTO_CRT); cprintf("%s", shoppy); clear_to_end_of_line(); } static void more3() { - gotoxy(70, 20); + gotoxy(70, 20, GOTO_CRT); cprintf("-more-"); get_ch(); return; diff --git a/crawl-ref/source/spells2.cc b/crawl-ref/source/spells2.cc index 80dbdbb276..ac94743fda 100644 --- a/crawl-ref/source/spells2.cc +++ b/crawl-ref/source/spells2.cc @@ -49,6 +49,7 @@ #include "spells4.h" #include "spl-cast.h" #include "stuff.h" +#include "tiles.h" #include "terrain.h" #include "traps.h" #include "view.h" @@ -119,6 +120,11 @@ unsigned char detect_items( int pow ) set_envmap_obj(i, j, DNGN_ITEM_DETECTED); set_envmap_detected_item(i, j); +#ifdef USE_TILE + // Don't replace previously seen items with an unseen one. + if (!is_terrain_seen(i,j)) + tile_place_tile_bk(i, j, TILE_UNSEEN_ITEM); +#endif } } } @@ -147,6 +153,11 @@ static void fuzz_detect_creatures(int pow, int *fuzz_radius, int *fuzz_chance) static bool mark_detected_creature(int gridx, int gridy, const monsters *mon, int fuzz_chance, int fuzz_radius) { +#ifdef USE_TILE + // Get monster index pre-fuzz + int idx = mgrd[gridx][gridy]; +#endif + bool found_good = false; if (fuzz_radius && fuzz_chance > random2(100)) @@ -177,6 +188,10 @@ static bool mark_detected_creature(int gridx, int gridy, const monsters *mon, set_envmap_obj(gridx, gridy, mon->type + DNGN_START_OF_MONSTERS); set_envmap_detected_mons(gridx, gridy); +#ifdef USE_TILE + tile_place_monster(gridx, gridy, idx, false); +#endif + return found_good; } diff --git a/crawl-ref/source/stuff.cc b/crawl-ref/source/stuff.cc index 1a9043437a..2ab600cd8c 100644 --- a/crawl-ref/source/stuff.cc +++ b/crawl-ref/source/stuff.cc @@ -53,8 +53,10 @@ #endif #ifdef UNIX +#ifndef USE_TILE #include "libunix.h" #endif +#endif #include "branch.h" #include "delay.h" @@ -431,7 +433,9 @@ void cio_init() { crawl_state.io_inited = true; -#ifdef UNIX +#if defined(USE_TILE) + libgui_init(); +#elif defined(UNIX) unixcurses_startup(); #endif @@ -457,8 +461,10 @@ void cio_cleanup() { if (!crawl_state.io_inited) return; - -#ifdef UNIX + +#if defined(USE_TILE) + libgui_shutdown(); +#elif defined(UNIX) unixcurses_shutdown(); #endif diff --git a/crawl-ref/source/tags.cc b/crawl-ref/source/tags.cc index 944ac5604e..c962301856 100644 --- a/crawl-ref/source/tags.cc +++ b/crawl-ref/source/tags.cc @@ -86,6 +86,7 @@ #include "skills2.h" #include "stuff.h" #include "tags.h" +#include "tiles.h" #include "travel.h" // THE BIG IMPORTANT TAG CONSTRUCTION/PARSE BUFFER @@ -117,11 +118,14 @@ static void tag_construct_level(tagHeader &th); static void tag_construct_level_items(tagHeader &th); static void tag_construct_level_monsters(tagHeader &th); static void tag_construct_level_attitude(tagHeader &th); +static void tag_construct_level_tiles(struct tagHeader &th); static void tag_read_level(tagHeader &th, char minorVersion); static void tag_read_level_items(tagHeader &th, char minorVersion); static void tag_read_level_monsters(tagHeader &th, char minorVersion); static void tag_read_level_attitude(tagHeader &th); static void tag_missing_level_attitude(); +static void tag_read_level_tiles(struct tagHeader &th); +static void tag_missing_level_tiles(); static void tag_construct_ghost(tagHeader &th); static void tag_read_ghost(tagHeader &th, char minorVersion); @@ -615,6 +619,9 @@ void tag_construct(tagHeader &th, int tagID) case TAG_LEVEL_MONSTERS: tag_construct_level_monsters(th); break; + case TAG_LEVEL_TILES: + tag_construct_level_tiles(th); + break; case TAG_LEVEL_ATTITUDE: tag_construct_level_attitude(th); break; @@ -720,6 +727,9 @@ int tag_read(FILE *fp, char minorVersion) case TAG_LEVEL_ATTITUDE: tag_read_level_attitude(th); break; + case TAG_LEVEL_TILES: + tag_read_level_tiles(th); + break; case TAG_GHOST: tag_read_ghost(th, minorVersion); break; @@ -755,6 +765,9 @@ void tag_missing(int tag, char minorVersion) case TAG_LEVEL_ATTITUDE: tag_missing_level_attitude(); break; + case TAG_LEVEL_TILES: + tag_missing_level_tiles(); + break; default: perror("Tag %d is missing; file is likely corrupt."); end(-1); @@ -785,10 +798,15 @@ void tag_set_expected(char tags[], int fileType) case TAGTYPE_LEVEL: if (i >= TAG_LEVEL && i <= TAG_LEVEL_ATTITUDE && i != TAG_GHOST) tags[i] = 1; +#ifdef USE_TILE + if (i == TAG_LEVEL_TILES) + tags[i] = 1; +#endif break; case TAGTYPE_GHOST: if (i == TAG_GHOST) tags[i] = 1; + break; default: // I don't know what kind of file that is! break; @@ -1782,6 +1800,101 @@ void tag_construct_level_attitude(tagHeader &th) } } +void tag_construct_level_tiles(struct tagHeader &th) +{ +#ifdef USE_TILE + unsigned short rle_count = 0; // for run-length encoding + unsigned short tile = 0; + unsigned short last_tile = 0; + + // Ver + marshallShort(th, 71); // tile routine subversion + // map grids + // how many X? + marshallShort(th, GXM); + // how many Y? + marshallShort(th, GYM); + + tile = env.tile_bk_bg[0][0]; + // bg first + for (int count_x = 0; count_x < GXM; count_x++) + { + for (int count_y = 0; count_y < GYM; count_y++) + { + last_tile = tile; + tile = env.tile_bk_bg[count_x][count_y]; + + if (tile == last_tile) + { + rle_count++; + if (rle_count == 0x100) + { + marshallShort(th, last_tile); + marshallByte(th, (char)0xFF); + rle_count = 1; + } + } + else + { + marshallShort(th, last_tile); + // Note: the unsigned char tile count gets streamed + // as a signed char here. It gets read back into + // an unsigned char in the read function. + marshallByte(th, rle_count); + rle_count = 1; + } + } + } + marshallShort(th, tile); + marshallByte(th, rle_count); + + // fg + tile = env.tile_bk_fg[0][0]; + rle_count = 0; + for (int count_x = 0; count_x < GXM; count_x++) + { + for (int count_y = 0; count_y < GYM; count_y++) + { + last_tile = tile; + tile = env.tile_bk_fg[count_x][count_y]; + + if (tile == last_tile) + { + rle_count++; + if (rle_count == 0x100) + { + marshallShort(th, last_tile); + marshallByte(th, (char)0xFF); + rle_count = 1; + } + } + else + { + marshallShort(th, last_tile); + marshallByte(th, rle_count); + rle_count = 1; + } + } + } + marshallShort(th, tile); + marshallByte(th, rle_count); + + // flavor + for (int count_x = 0; count_x < GXM; count_x++) + { + for (int count_y = 0; count_y < GYM; count_y++) + { + marshallByte(th, env.tile_flavor[count_x][count_y].wall); + marshallByte(th, env.tile_flavor[count_x][count_y].floor); + marshallByte(th, env.tile_flavor[count_x][count_y].special); + } + } + + GmapInit(false); + TileLoadWall(false); + tile_clear_buf(); +#endif +} static void tag_read_level( tagHeader &th, char minorVersion ) { @@ -2010,6 +2123,90 @@ void tag_missing_level_attitude() } } +void tag_read_level_tiles(struct tagHeader &th) +{ +#ifdef USE_TILE + for (int i = 0; i < GXM; i++) + { + for (int j = 0; j < GYM; j++) + { + env.tile_bk_bg[i][j] = 0; + env.tile_bk_fg[i][j] = 0; + } + } + + unsigned char rle_count = 0; + unsigned short tile = 0; + + int ver = unmarshallShort(th); + if (ver == 0) return; + + // map grids + // how many X? + const int gx = unmarshallShort(th); + // how many Y? + const int gy = unmarshallShort(th); + + // BG first + for (int i = 0; i < gx; i++) + { + for (int j = 0; j < gy; j++) + { + if (rle_count == 0) + { + tile = unmarshallShort(th); + rle_count = unmarshallByte(th); + } + env.tile_bk_bg[i][j] = tile; + rle_count--; + } + } + + // FG + rle_count = 0; + for (int i = 0; i < gx; i++) + { + for (int j = 0; j < gy; j++) + { + if (rle_count == 0) + { + tile = unmarshallShort(th); + rle_count = unmarshallByte(th); + } + env.tile_bk_fg[i][j] = tile; + rle_count--; + } + } + + // flavor + for (int x = 0; x < gx; x++) + { + for (int y = 0; y < gy; y++) + { + env.tile_flavor[x][y].wall = unmarshallByte(th); + env.tile_flavor[x][y].floor = unmarshallByte(th); + env.tile_flavor[x][y].special = unmarshallByte(th); + } + } +#endif +} + +static void tag_missing_level_tiles() +{ +#ifdef USE_TILE + int i; + int j; + + for (i = 0; i < GXM; i++) + { + for (j = 0; j < GYM; j++) + { + env.tile_bk_bg[i][j] = 0; + env.tile_bk_fg[i][j] = 0; + } + } +#endif +} // ------------------------------- ghost tags ---------------------------- // diff --git a/crawl-ref/source/tags.h b/crawl-ref/source/tags.h index cdf72df75b..d93d995035 100644 --- a/crawl-ref/source/tags.h +++ b/crawl-ref/source/tags.h @@ -28,6 +28,7 @@ enum tag_type // used during save/load process to identify data blocks TAG_GHOST, // ghost TAG_LEVEL_ATTITUDE, // monster attitudes TAG_LOST_MONSTERS, // monsters in transit + TAG_LEVEL_TILES, NUM_TAGS }; diff --git a/crawl-ref/source/tile1.cc b/crawl-ref/source/tile1.cc new file mode 100644 index 0000000000..9ed114b54e --- /dev/null +++ b/crawl-ref/source/tile1.cc @@ -0,0 +1,3813 @@ +#ifdef USE_TILE + +#include +#include "AppHdr.h" +#include "direct.h" +#include "externs.h" +#include "food.h" +#include "itemname.h" +#include "items.h" +#include "itemprop.h" +#include "macro.h" +#include "monstuff.h" +#include "mon-util.h" +#include "player.h" +#include "randart.h" +#include "stuff.h" +#include "terrain.h" +#include "tiles.h" +#include "tiledef-p.h" +#include "view.h" + +#ifdef TILEP_DEBUG +#include "tilep-cmt.h" +#endif + +/* external */ +extern short get_helmet_type( const item_def &item ); +extern bool player_is_airborne(void); +extern bool item_cursed( const item_def &item ); +extern bool item_ident( const item_def &item, unsigned long flags ); + +// tile index cache to reduce tileidx() calls +static FixedArray < unsigned short, GXM, GYM > tile_dngn; +// // gv backup +static FixedArray < unsigned char, GXM, GYM > gv_now; +static FixedArray < unsigned char, GXM, GYM > wall_flag; +#define WFLAG_L 1 +#define WFLAG_U 2 +#define WFLAG_D 4 +#define WFLAG_R 8 + +void TileNewLevel(bool first_time) +{ + GmapInit(false); + TileLoadWall(false); + tile_clear_buf(); + if (first_time) + tile_init_flavor(); +} + +const int TILE_TODO = TILE_ERROR; + +/**** tile index routines ****/ + +int tile_unseen_flag(const coord_def& gc) +{ + if (!map_bounds(gc)) + return TILE_FLAG_UNSEEN; + else if (is_terrain_known(gc.x,gc.y) + && !is_terrain_seen(gc.x,gc.y) + || is_envmap_detected_item(gc.x,gc.y) + || is_envmap_detected_mons(gc.x,gc.y)) + { + return TILE_FLAG_MM_UNSEEN; + } + else + { + return TILE_FLAG_UNSEEN; + } +} + +int tileidx_monster(int mon_idx) +{ + int ch = TILE_ERROR; + int mons = menv[mon_idx].type; + + switch(mons) + { + case MONS_GIANT_ANT: ch=TILE_MONS_GIANT_ANT; break; + case MONS_GIANT_BAT: ch=TILE_MONS_GIANT_BAT; break; + case MONS_CENTAUR: ch=TILE_MONS_CENTAUR; break; + case MONS_RED_DEVIL: ch=TILE_MONS_RED_DEVIL; break; + case MONS_ETTIN: ch=TILE_MONS_ETTIN; break; + case MONS_FUNGUS: ch=TILE_MONS_FUNGUS; break; + case MONS_GOBLIN: ch=TILE_MONS_GOBLIN; break; + case MONS_HOUND: ch=TILE_MONS_HOUND; break; + case MONS_IMP: ch=TILE_MONS_IMP; break; + case MONS_JACKAL: ch=TILE_MONS_JACKAL; break; + case MONS_KILLER_BEE: ch=TILE_MONS_KILLER_BEE; break; + case MONS_KILLER_BEE_LARVA: ch=TILE_MONS_KILLER_BEE_LARVA; break; + case MONS_MANTICORE: ch=TILE_MONS_MANTICORE; break; + case MONS_NECROPHAGE: ch=TILE_MONS_NECROPHAGE; break; + case MONS_ORC: ch=TILE_MONS_ORC; break; + case MONS_PHANTOM: ch=TILE_MONS_PHANTOM; break; + case MONS_QUASIT: ch=TILE_MONS_QUASIT; break; + case MONS_RAT: ch=TILE_MONS_RAT; break; + case MONS_SCORPION: ch=TILE_MONS_SCORPION; break; + case MONS_UGLY_THING : ch=TILE_MONS_UGLY_THING ; break; + case MONS_FIRE_VORTEX: ch=TILE_MONS_FIRE_VORTEX; break; + case MONS_WORM: ch=TILE_MONS_WORM; break; + case MONS_ABOMINATION_SMALL: ch=TILE_MONS_ABOMINATION_SMALL; break; + case MONS_YELLOW_WASP: ch=TILE_MONS_YELLOW_WASP; break; + case MONS_ZOMBIE_SMALL: ch=TILE_MONS_ZOMBIE_SMALL; break; + case MONS_ANGEL: ch=TILE_MONS_ANGEL; break; + case MONS_GIANT_BEETLE: ch=TILE_MONS_GIANT_BEETLE; break; + case MONS_CYCLOPS: ch=TILE_MONS_CYCLOPS; break; + case MONS_DRAGON: ch=TILE_MONS_DRAGON; break; + case MONS_TWO_HEADED_OGRE: ch=TILE_MONS_TWO_HEADED_OGRE; break; + case MONS_FIEND: ch=TILE_MONS_FIEND; break; + case MONS_GIANT_SPORE: ch=TILE_MONS_GIANT_SPORE; break; + case MONS_HOBGOBLIN: ch=TILE_MONS_HOBGOBLIN; break; + case MONS_ICE_BEAST: ch=TILE_MONS_ICE_BEAST; break; + case MONS_JELLY: ch=TILE_MONS_JELLY; break; + case MONS_KOBOLD: ch=TILE_MONS_KOBOLD; break; + case MONS_LICH: ch=TILE_MONS_LICH; break; + case MONS_MUMMY: ch=TILE_MONS_MUMMY; break; + case MONS_GUARDIAN_NAGA: ch=TILE_MONS_GUARDIAN_NAGA; break; + case MONS_OGRE: ch=TILE_MONS_OGRE; break; + case MONS_PLANT: ch=TILE_MONS_PLANT; break; + case MONS_QUEEN_BEE: ch=TILE_MONS_QUEEN_BEE; break; + case MONS_RAKSHASA: ch=TILE_MONS_RAKSHASA; break; + case MONS_SNAKE: ch=TILE_MONS_SNAKE; break; + case MONS_TROLL: ch=TILE_MONS_TROLL; break; + case MONS_UNSEEN_HORROR: ch=TILE_MONS_UNSEEN_HORROR; break; + case MONS_VAMPIRE: ch=TILE_MONS_VAMPIRE; break; + case MONS_WRAITH: ch=TILE_MONS_WRAITH; break; + + case MONS_ABOMINATION_LARGE: + { + // 7 different colours + struct monsters *mon = &menv[mon_idx]; + ch = TILE_MONS_ABOMINATION_LARGE + ((mon->colour)%7); + break; + } + + case MONS_YAK: ch=TILE_MONS_YAK; break; + case MONS_ZOMBIE_LARGE: ch=TILE_MONS_ZOMBIE_LARGE; break; + case MONS_ORC_WARRIOR: ch=TILE_MONS_ORC_WARRIOR; break; + case MONS_KOBOLD_DEMONOLOGIST: ch=TILE_MONS_KOBOLD_DEMONOLOGIST; break; + case MONS_ORC_WIZARD: ch=TILE_MONS_ORC_WIZARD; break; + case MONS_ORC_KNIGHT: ch=TILE_MONS_ORC_KNIGHT; break; + case MONS_WYVERN: ch=TILE_MONS_WYVERN; break; + case MONS_BIG_KOBOLD: ch=TILE_MONS_BIG_KOBOLD; break; + case MONS_GIANT_EYEBALL: ch=TILE_MONS_GIANT_EYEBALL; break; + case MONS_WIGHT: ch=TILE_MONS_WIGHT; break; + case MONS_OKLOB_PLANT: ch=TILE_MONS_OKLOB_PLANT; break; + case MONS_WOLF_SPIDER: ch=TILE_MONS_WOLF_SPIDER; break; + case MONS_SHADOW: ch=TILE_MONS_SHADOW; break; + case MONS_HUNGRY_GHOST: ch=TILE_MONS_HUNGRY_GHOST; break; + case MONS_EYE_OF_DRAINING: ch=TILE_MONS_EYE_OF_DRAINING; break; + + case MONS_BUTTERFLY: + { + // 7 different colours + struct monsters *mon = &menv[mon_idx]; + ch = TILE_MONS_BUTTERFLY + ((mon->colour)%7); + break; + } + + case MONS_WANDERING_MUSHROOM: ch=TILE_MONS_WANDERING_MUSHROOM; break; + case MONS_EFREET: ch=TILE_MONS_EFREET; break; + case MONS_BRAIN_WORM: ch=TILE_MONS_BRAIN_WORM; break; + case MONS_GIANT_ORANGE_BRAIN: ch=TILE_MONS_GIANT_ORANGE_BRAIN; break; + case MONS_BOULDER_BEETLE: ch=TILE_MONS_BOULDER_BEETLE; break; + case MONS_FLYING_SKULL: ch=TILE_MONS_FLYING_SKULL; break; + case MONS_HELL_HOUND: ch=TILE_MONS_HELL_HOUND; break; + case MONS_MINOTAUR: ch=TILE_MONS_MINOTAUR; break; + case MONS_ICE_DRAGON: ch=TILE_MONS_ICE_DRAGON; break; + case MONS_SLIME_CREATURE: ch=TILE_MONS_SLIME_CREATURE; break; + case MONS_FREEZING_WRAITH: ch=TILE_MONS_FREEZING_WRAITH; break; + case MONS_RAKSHASA_FAKE: ch=TILE_MONS_RAKSHASA_FAKE; break; + case MONS_GREAT_ORB_OF_EYES: ch=TILE_MONS_GREAT_ORB_OF_EYES; break; + case MONS_HELLION: ch=TILE_MONS_HELLION; break; + case MONS_ROTTING_DEVIL: ch=TILE_MONS_ROTTING_DEVIL; break; + case MONS_TORMENTOR: ch=TILE_MONS_TORMENTOR; break; + case MONS_REAPER: ch=TILE_MONS_REAPER; break; + case MONS_SOUL_EATER: ch=TILE_MONS_SOUL_EATER; break; + case MONS_HAIRY_DEVIL: ch=TILE_MONS_HAIRY_DEVIL; break; + case MONS_ICE_DEVIL: ch=TILE_MONS_ICE_DEVIL; break; + case MONS_BLUE_DEVIL: ch=TILE_MONS_BLUE_DEVIL; break; + case MONS_BEAST: ch=TILE_MONS_BEAST; break; + case MONS_IRON_DEVIL: ch=TILE_MONS_IRON_DEVIL; break; + case MONS_GLOWING_SHAPESHIFTER: ch=TILE_MONS_GLOWING_SHAPESHIFTER; break; + case MONS_SHAPESHIFTER: ch=TILE_MONS_SHAPESHIFTER; break; + case MONS_GIANT_MITE: ch=TILE_MONS_GIANT_MITE; break; + case MONS_STEAM_DRAGON: ch=TILE_MONS_STEAM_DRAGON; break; + case MONS_VERY_UGLY_THING: ch=TILE_MONS_VERY_UGLY_THING; break; + case MONS_ORC_SORCERER: ch=TILE_MONS_ORC_SORCERER; break; + case MONS_HIPPOGRIFF: ch=TILE_MONS_HIPPOGRIFF; break; + case MONS_GRIFFON: ch=TILE_MONS_GRIFFON; break; + + case MONS_HYDRA: + { + // Number of heads + struct monsters *mon = &menv[mon_idx]; + int heads = mon->number; + if (heads > 7) heads = 7; + ch = TILE_MONS_HYDRA + heads - 1; + break; + } + + case MONS_SKELETON_SMALL: ch=TILE_MONS_SKELETON_SMALL; break; + case MONS_SKELETON_LARGE: ch=TILE_MONS_SKELETON_LARGE; break; + case MONS_HELL_KNIGHT: ch=TILE_MONS_HELL_KNIGHT; break; + case MONS_NECROMANCER: ch=TILE_MONS_NECROMANCER; break; + case MONS_WIZARD: ch=TILE_MONS_WIZARD; break; + case MONS_ORC_PRIEST: ch=TILE_MONS_ORC_PRIEST; break; + case MONS_ORC_HIGH_PRIEST: ch=TILE_MONS_ORC_HIGH_PRIEST; break; + case MONS_HUMAN: ch=TILE_MONS_HUMAN; break; + case MONS_GNOLL: ch=TILE_MONS_GNOLL; break; + case MONS_CLAY_GOLEM: ch=TILE_MONS_CLAY_GOLEM; break; + case MONS_WOOD_GOLEM: ch=TILE_MONS_WOOD_GOLEM; break; + case MONS_STONE_GOLEM: ch=TILE_MONS_STONE_GOLEM; break; + case MONS_IRON_GOLEM: ch=TILE_MONS_IRON_GOLEM; break; + case MONS_CRYSTAL_GOLEM: ch=TILE_MONS_CRYSTAL_GOLEM; break; + case MONS_TOENAIL_GOLEM: ch=TILE_MONS_TOENAIL_GOLEM; break; + case MONS_MOTTLED_DRAGON: ch=TILE_MONS_MOTTLED_DRAGON; break; + case MONS_EARTH_ELEMENTAL: ch=TILE_MONS_EARTH_ELEMENTAL; break; + case MONS_FIRE_ELEMENTAL: ch=TILE_MONS_FIRE_ELEMENTAL; break; + case MONS_AIR_ELEMENTAL: ch=TILE_MONS_AIR_ELEMENTAL; break; + case MONS_ICE_FIEND: ch=TILE_MONS_ICE_FIEND; break; + case MONS_SHADOW_FIEND: ch=TILE_MONS_SHADOW_FIEND; break; + case MONS_BROWN_SNAKE: ch=TILE_MONS_BROWN_SNAKE; break; + case MONS_GIANT_LIZARD: ch=TILE_MONS_GIANT_LIZARD; break; + case MONS_SPECTRAL_WARRIOR: ch=TILE_MONS_SPECTRAL_WARRIOR; break; + case MONS_PULSATING_LUMP: ch=TILE_MONS_PULSATING_LUMP; break; + case MONS_STORM_DRAGON: ch=TILE_MONS_STORM_DRAGON; break; + case MONS_YAKTAUR: ch=TILE_MONS_YAKTAUR; break; + case MONS_DEATH_YAK: ch=TILE_MONS_DEATH_YAK; break; + case MONS_ROCK_TROLL: ch=TILE_MONS_ROCK_TROLL; break; + case MONS_STONE_GIANT: ch=TILE_MONS_STONE_GIANT; break; + case MONS_FLAYED_GHOST: ch=TILE_MONS_FLAYED_GHOST; break; + case MONS_BUMBLEBEE: ch=TILE_MONS_BUMBLEBEE; break; + case MONS_REDBACK: ch=TILE_MONS_REDBACK; break; + case MONS_INSUBSTANTIAL_WISP: ch=TILE_MONS_INSUBSTANTIAL_WISP; break; + case MONS_VAPOUR: ch=TILE_MONS_VAPOUR; break; + case MONS_OGRE_MAGE: ch=TILE_MONS_OGRE_MAGE; break; + case MONS_SPINY_WORM: ch=TILE_MONS_SPINY_WORM; break; + + case MONS_DANCING_WEAPON: + { + // Use item tile + item_def item = mitm[menv[mon_idx].inv[MSLOT_WEAPON]]; + ch = tileidx_item(item); + break; + } + + case MONS_TITAN: ch=TILE_MONS_TITAN; break; + case MONS_GOLDEN_DRAGON: ch=TILE_MONS_GOLDEN_DRAGON; break; + case MONS_ELF: ch=TILE_MONS_ELF; break; + case MONS_LINDWURM: ch=TILE_MONS_LINDWURM; break; + case MONS_ELEPHANT_SLUG: ch=TILE_MONS_ELEPHANT_SLUG; break; + case MONS_WAR_DOG: ch=TILE_MONS_WAR_DOG; break; + case MONS_GREY_RAT: ch=TILE_MONS_GREY_RAT; break; + case MONS_GREEN_RAT: ch=TILE_MONS_GREEN_RAT; break; + case MONS_ORANGE_RAT: ch=TILE_MONS_ORANGE_RAT; break; + case MONS_BLACK_SNAKE: ch=TILE_MONS_BLACK_SNAKE; break; + case MONS_SHEEP: ch=TILE_MONS_SHEEP; break; + case MONS_GHOUL: ch=TILE_MONS_GHOUL; break; + case MONS_HOG: ch=TILE_MONS_HOG; break; + case MONS_GIANT_MOSQUITO: ch=TILE_MONS_GIANT_MOSQUITO; break; + case MONS_GIANT_CENTIPEDE: ch=TILE_MONS_GIANT_CENTIPEDE; break; + case MONS_IRON_TROLL: ch=TILE_MONS_IRON_TROLL; break; + case MONS_NAGA: ch=TILE_MONS_NAGA; break; + case MONS_FIRE_GIANT: ch=TILE_MONS_FIRE_GIANT; break; + case MONS_FROST_GIANT: ch=TILE_MONS_FROST_GIANT; break; + case MONS_FIREDRAKE: ch=TILE_MONS_FIREDRAKE; break; + case MONS_SHADOW_DRAGON: ch=TILE_MONS_SHADOW_DRAGON; break; + case MONS_YELLOW_SNAKE: ch=TILE_MONS_YELLOW_SNAKE; break; + case MONS_GREY_SNAKE: ch=TILE_MONS_GREY_SNAKE; break; + case MONS_DEEP_TROLL: ch=TILE_MONS_DEEP_TROLL; break; + case MONS_GIANT_BLOWFLY: ch=TILE_MONS_GIANT_BLOWFLY; break; + case MONS_RED_WASP: ch=TILE_MONS_RED_WASP; break; + case MONS_SWAMP_DRAGON: ch=TILE_MONS_SWAMP_DRAGON; break; + case MONS_SWAMP_DRAKE: ch=TILE_MONS_SWAMP_DRAKE; break; + case MONS_SOLDIER_ANT: ch=TILE_MONS_SOLDIER_ANT; break; + case MONS_HILL_GIANT: ch=TILE_MONS_HILL_GIANT; break; + case MONS_QUEEN_ANT: ch=TILE_MONS_QUEEN_ANT; break; + case MONS_ANT_LARVA: ch=TILE_MONS_ANT_LARVA; break; + case MONS_GIANT_FROG: ch=TILE_MONS_GIANT_FROG; break; + case MONS_GIANT_BROWN_FROG: ch=TILE_MONS_GIANT_BROWN_FROG; break; + case MONS_SPINY_FROG: ch=TILE_MONS_SPINY_FROG; break; + case MONS_BLINK_FROG: ch=TILE_MONS_BLINK_FROG; break; + case MONS_GIANT_COCKROACH: ch=TILE_MONS_GIANT_COCKROACH; break; + case MONS_SMALL_SNAKE: ch=TILE_MONS_SMALL_SNAKE; break; + case MONS_SHUGGOTH: ch=TILE_TODO; break; + case MONS_WOLF: ch=TILE_MONS_WOLF; break; + case MONS_WARG: ch=TILE_MONS_WARG; break; + case MONS_BEAR: ch=TILE_MONS_BEAR; break; + case MONS_GRIZZLY_BEAR: ch=TILE_MONS_GRIZZLY_BEAR; break; + case MONS_POLAR_BEAR: ch=TILE_MONS_POLAR_BEAR; break; + case MONS_BLACK_BEAR: ch=TILE_MONS_BLACK_BEAR; break; + case MONS_SIMULACRUM_SMALL: ch=TILE_MONS_SIMULACRUM_SMALL; break; + case MONS_SIMULACRUM_LARGE: ch=TILE_MONS_SIMULACRUM_LARGE; break; + case MONS_WHITE_IMP: ch=TILE_MONS_WHITE_IMP; break; + case MONS_LEMURE: ch=TILE_MONS_LEMURE; break; + case MONS_UFETUBUS: ch=TILE_MONS_UFETUBUS; break; + case MONS_MANES: ch=TILE_MONS_MANES; break; + case MONS_MIDGE: ch=TILE_MONS_MIDGE; break; + case MONS_NEQOXEC: ch=TILE_MONS_NEQOXEC; break; + case MONS_ORANGE_DEMON: ch=TILE_MONS_ORANGE_DEMON; break; + case MONS_HELLWING: ch=TILE_MONS_HELLWING; break; + case MONS_SMOKE_DEMON: ch=TILE_MONS_SMOKE_DEMON; break; + case MONS_YNOXINUL: ch=TILE_MONS_YNOXINUL; break; + case MONS_EXECUTIONER: ch=TILE_MONS_EXECUTIONER; break; + case MONS_GREEN_DEATH: ch=TILE_MONS_GREEN_DEATH; break; + case MONS_BLUE_DEATH: ch=TILE_MONS_BLUE_DEATH; break; + case MONS_BALRUG: ch=TILE_MONS_BALRUG; break; + case MONS_CACODEMON: ch=TILE_MONS_CACODEMON; break; + case MONS_DEMONIC_CRAWLER: ch=TILE_MONS_DEMONIC_CRAWLER; break; + case MONS_SUN_DEMON: ch=TILE_MONS_SUN_DEMON; break; + case MONS_SHADOW_IMP: ch=TILE_MONS_SHADOW_IMP; break; + case MONS_SHADOW_DEMON: ch=TILE_MONS_SHADOW_DEMON; break; + case MONS_LOROCYPROCA: ch=TILE_MONS_LOROCYPROCA; break; + case MONS_SHADOW_WRAITH: ch=TILE_MONS_SHADOW_WRAITH; break; + case MONS_GIANT_AMOEBA: ch=TILE_MONS_GIANT_AMOEBA; break; + case MONS_GIANT_SLUG: ch=TILE_MONS_GIANT_SLUG; break; + case MONS_GIANT_SNAIL: ch=TILE_MONS_GIANT_SNAIL; break; + case MONS_SPATIAL_VORTEX: ch=TILE_MONS_SPATIAL_VORTEX; break; + case MONS_PIT_FIEND: ch=TILE_MONS_PIT_FIEND; break; + case MONS_BORING_BEETLE: ch=TILE_MONS_BORING_BEETLE; break; + case MONS_GARGOYLE: ch=TILE_MONS_GARGOYLE; break; + case MONS_METAL_GARGOYLE: ch=TILE_MONS_METAL_GARGOYLE; break; + case MONS_MOLTEN_GARGOYLE: ch=TILE_MONS_MOLTEN_GARGOYLE; break; + case MONS_PROGRAM_BUG: ch=TILE_MONS_PROGRAM_BUG; break; + case MONS_MNOLEG: ch=TILE_MONS_MNOLEG; break; + case MONS_LOM_LOBON: ch=TILE_MONS_LOM_LOBON; break; + case MONS_CEREBOV: ch=TILE_MONS_CEREBOV; break; + case MONS_GLOORX_VLOQ: ch=TILE_MONS_GLOORX_VLOQ; break; + case MONS_MOLLUSC_LORD: ch=TILE_TODO; break; + case MONS_NAGA_MAGE: ch=TILE_MONS_NAGA_MAGE; break; + case MONS_NAGA_WARRIOR: ch=TILE_MONS_NAGA_WARRIOR; break; + case MONS_ORC_WARLORD: ch=TILE_MONS_ORC_WARLORD; break; + case MONS_DEEP_ELF_SOLDIER: ch=TILE_MONS_DEEP_ELF_SOLDIER; break; + case MONS_DEEP_ELF_FIGHTER: ch=TILE_MONS_DEEP_ELF_FIGHTER; break; + case MONS_DEEP_ELF_KNIGHT: ch=TILE_MONS_DEEP_ELF_KNIGHT; break; + case MONS_DEEP_ELF_MAGE: ch=TILE_MONS_DEEP_ELF_MAGE; break; + case MONS_DEEP_ELF_SUMMONER: ch=TILE_MONS_DEEP_ELF_SUMMONER; break; + case MONS_DEEP_ELF_CONJURER: ch=TILE_MONS_DEEP_ELF_CONJURER; break; + case MONS_DEEP_ELF_PRIEST: ch=TILE_MONS_DEEP_ELF_PRIEST; break; + case MONS_DEEP_ELF_HIGH_PRIEST: ch=TILE_MONS_DEEP_ELF_HIGH_PRIEST; break; + case MONS_DEEP_ELF_DEMONOLOGIST: ch=TILE_MONS_DEEP_ELF_DEMONOLOGIST; break; + case MONS_DEEP_ELF_ANNIHILATOR: ch=TILE_MONS_DEEP_ELF_ANNIHILATOR; break; + case MONS_DEEP_ELF_SORCERER: ch=TILE_MONS_DEEP_ELF_SORCERER; break; + case MONS_DEEP_ELF_DEATH_MAGE: ch=TILE_MONS_DEEP_ELF_DEATH_MAGE; break; + case MONS_BROWN_OOZE: ch=TILE_MONS_BROWN_OOZE; break; + case MONS_AZURE_JELLY: ch=TILE_MONS_AZURE_JELLY; break; + case MONS_DEATH_OOZE: ch=TILE_MONS_DEATH_OOZE; break; + case MONS_ACID_BLOB: ch=TILE_MONS_ACID_BLOB; break; + case MONS_ROYAL_JELLY: ch=TILE_MONS_ROYAL_JELLY; break; + case MONS_TERENCE: ch=TILE_MONS_TERENCE; break; + case MONS_JESSICA: ch=TILE_MONS_JESSICA; break; + case MONS_IJYB: ch=TILE_MONS_IJYB; break; + case MONS_SIGMUND: ch=TILE_MONS_SIGMUND; break; + case MONS_BLORK_THE_ORC: ch=TILE_MONS_BLORK_THE_ORC; break; + case MONS_EDMUND: ch=TILE_MONS_EDMUND; break; + case MONS_PSYCHE: ch=TILE_MONS_PSYCHE; break; + case MONS_EROLCHA: ch=TILE_MONS_EROLCHA; break; + case MONS_DONALD: ch=TILE_MONS_DONALD; break; + case MONS_URUG: ch=TILE_MONS_URUG; break; + case MONS_MICHAEL: ch=TILE_MONS_MICHAEL; break; + case MONS_JOSEPH: ch=TILE_MONS_JOSEPH; break; + case MONS_SNORG: ch=TILE_MONS_SNORG; break; + case MONS_ERICA: ch=TILE_MONS_ERICA; break; + case MONS_JOSEPHINE: ch=TILE_MONS_JOSEPHINE; break; + case MONS_HAROLD: ch=TILE_MONS_HAROLD; break; + case MONS_NORBERT: ch=TILE_MONS_NORBERT; break; + case MONS_JOZEF: ch=TILE_MONS_JOZEF; break; + case MONS_AGNES: ch=TILE_MONS_AGNES; break; + case MONS_MAUD: ch=TILE_MONS_MAUD; break; + case MONS_LOUISE: ch=TILE_MONS_LOUISE; break; + case MONS_FRANCIS: ch=TILE_MONS_FRANCIS; break; + case MONS_FRANCES: ch=TILE_MONS_FRANCES; break; + case MONS_RUPERT: ch=TILE_MONS_RUPERT; break; + case MONS_WAYNE: ch=TILE_MONS_WAYNE; break; + case MONS_DUANE: ch=TILE_MONS_DUANE; break; + case MONS_XTAHUA: ch=TILE_MONS_XTAHUA; break; + case MONS_NORRIS: ch=TILE_MONS_NORRIS; break; + case MONS_FREDERICK: ch=TILE_MONS_FREDERICK; break; + case MONS_MARGERY: ch=TILE_MONS_MARGERY; break; + case MONS_POLYPHEMUS: ch=TILE_MONS_POLYPHEMUS; break; + case MONS_BORIS: ch=TILE_MONS_BORIS; break; + // Draconians handled above + case MONS_MURRAY: ch=TILE_MONS_MURRAY; break; + case MONS_TIAMAT: ch=TILE_MONS_TIAMAT; break; + case MONS_DEEP_ELF_BLADEMASTER: ch=TILE_MONS_DEEP_ELF_BLADEMASTER; break; + case MONS_DEEP_ELF_MASTER_ARCHER: ch=TILE_MONS_DEEP_ELF_MASTER_ARCHER; break; + + case MONS_GERYON: ch=TILE_MONS_GERYON; break; + case MONS_DISPATER: ch=TILE_MONS_DISPATER; break; + case MONS_ASMODEUS: ch=TILE_MONS_ASMODEUS; break; + case MONS_ANTAEUS: ch=TILE_MONS_ANTAEUS; break; + case MONS_ERESHKIGAL: ch=TILE_MONS_ERESHKIGAL; break; + + case MONS_ANCIENT_LICH: ch=TILE_MONS_ANCIENT_LICH; break; + case MONS_OOZE: ch=TILE_MONS_OOZE; break; + case MONS_VAULT_GUARD: ch=TILE_MONS_VAULT_GUARD; break; + case MONS_CURSE_SKULL: ch=TILE_MONS_CURSE_SKULL; break; + case MONS_VAMPIRE_KNIGHT: ch=TILE_MONS_VAMPIRE_KNIGHT; break; + case MONS_VAMPIRE_MAGE: ch=TILE_MONS_VAMPIRE_MAGE; break; + case MONS_SHINING_EYE: ch=TILE_MONS_SHINING_EYE; break; + case MONS_ORB_GUARDIAN: ch=TILE_MONS_ORB_GUARDIAN; break; + case MONS_DAEVA: ch=TILE_MONS_DAEVA; break; + case MONS_SPECTRAL_THING: ch=TILE_MONS_SPECTRAL_THING; break; + case MONS_GREATER_NAGA: ch=TILE_MONS_GREATER_NAGA; break; + case MONS_SKELETAL_DRAGON: ch=TILE_MONS_SKELETAL_DRAGON; break; + case MONS_TENTACLED_MONSTROSITY: ch=TILE_MONS_TENTACLED_MONSTROSITY; break; + case MONS_SPHINX: ch=TILE_MONS_SPHINX; break; + case MONS_ROTTING_HULK: ch=TILE_MONS_ROTTING_HULK; break; + case MONS_GUARDIAN_MUMMY: ch=TILE_MONS_GUARDIAN_MUMMY; break; + case MONS_GREATER_MUMMY: ch=TILE_MONS_GREATER_MUMMY; break; + case MONS_MUMMY_PRIEST: ch=TILE_MONS_MUMMY_PRIEST; break; + case MONS_CENTAUR_WARRIOR: ch=TILE_MONS_CENTAUR_WARRIOR; break; + case MONS_YAKTAUR_CAPTAIN: ch=TILE_MONS_YAKTAUR_CAPTAIN; break; + case MONS_KILLER_KLOWN: ch=TILE_MONS_KILLER_KLOWN; break; + case MONS_ELECTRIC_GOLEM: ch=TILE_MONS_ELECTRIC_GOLEM; break; + case MONS_BALL_LIGHTNING: ch=TILE_MONS_BALL_LIGHTNING; break; + case MONS_ORB_OF_FIRE: ch=TILE_MONS_ORB_OF_FIRE; break; + case MONS_QUOKKA: ch=TILE_MONS_QUOKKA; break; + case MONS_EYE_OF_DEVASTATION: ch=TILE_MONS_EYE_OF_DEVASTATION; break; + case MONS_MOTH_OF_WRATH: ch=TILE_MONS_MOTH_OF_WRATH; break; + case MONS_DEATH_COB: ch=TILE_MONS_DEATH_COB; break; + case MONS_CURSE_TOE: ch=TILE_MONS_CURSE_TOE; break; +// case MONS_GOLD_MIMIC: ch=TILE_MONS_GOLD_MIMIC; break; + + case MONS_GOLD_MIMIC: + case MONS_WEAPON_MIMIC: + case MONS_ARMOUR_MIMIC: + case MONS_SCROLL_MIMIC: + case MONS_POTION_MIMIC: + { + // Use item tile + item_def item; + struct monsters *mon = &menv[mon_idx]; + get_mimic_item( mon, item ); + ch = tileidx_item(item); + break; + } + + case MONS_HELL_HOG: ch=TILE_MONS_HELL_HOG; break; + case MONS_SERPENT_OF_HELL: ch=TILE_MONS_SERPENT_OF_HELL; break; + case MONS_BOGGART: ch=TILE_MONS_BOGGART; break; + case MONS_QUICKSILVER_DRAGON: ch=TILE_MONS_QUICKSILVER_DRAGON; break; + case MONS_IRON_DRAGON: ch=TILE_MONS_IRON_DRAGON; break; + case MONS_SKELETAL_WARRIOR: ch=TILE_MONS_SKELETAL_WARRIOR; break; + case MONS_PLAYER_GHOST: ch=TILE_MONS_PLAYER_GHOST; break; + case MONS_PANDEMONIUM_DEMON: ch=TILE_MONS_PANDEMONIUM_DEMON; break; + case MONS_GIANT_NEWT: ch=TILE_MONS_GIANT_NEWT; break; + case MONS_GIANT_GECKO: ch=TILE_MONS_GIANT_GECKO; break; + case MONS_GIANT_IGUANA: ch=TILE_MONS_GIANT_IGUANA; break; + case MONS_GILA_MONSTER: ch=TILE_MONS_GILA_MONSTER; break; + case MONS_KOMODO_DRAGON: ch=TILE_MONS_KOMODO_DRAGON; break; + case MONS_LAVA_WORM: ch=TILE_MONS_LAVA_WORM; break; + case MONS_LAVA_FISH: ch=TILE_MONS_LAVA_FISH; break; + case MONS_LAVA_SNAKE: ch=TILE_MONS_LAVA_SNAKE; break; + case MONS_SALAMANDER: ch=TILE_MONS_SALAMANDER; break; + case MONS_BIG_FISH: ch=TILE_MONS_BIG_FISH; break; + case MONS_GIANT_GOLDFISH: ch=TILE_MONS_GIANT_GOLDFISH; break; + case MONS_ELECTRICAL_EEL: ch=TILE_MONS_ELECTRICAL_EEL; break; + case MONS_JELLYFISH: ch=TILE_MONS_JELLYFISH; break; + case MONS_WATER_ELEMENTAL: ch=TILE_MONS_WATER_ELEMENTAL; break; + case MONS_SWAMP_WORM: ch=TILE_MONS_SWAMP_WORM; break; + case MONS_ORANGE_STATUE: ch = TILE_DNGN_ORANGE_CRYSTAL_STATUE; break; + case MONS_SILVER_STATUE: ch = TILE_DNGN_SILVER_STATUE; break; + case MONS_ICE_STATUE: ch = TILE_DNGN_ICE_STATUE; break; + case MONS_DEATH_DRAKE: ch=TILE_MONS_DEATH_DRAKE; break; +} + if(mons_flies(&menv[mon_idx])) ch |= TILE_FLAG_FLYING; + if(menv[mon_idx].has_ench(ENCH_HELD)) ch |= TILE_FLAG_NET; + + if(mons_friendly(&menv[mon_idx])) + { + ch |= TILE_FLAG_PET; + } + else if (Options.stab_brand != CHATTR_NORMAL && + mons_looks_stabbable(&menv[mon_idx])) + { + ch |= TILE_FLAG_STAB; + } + else if (Options.may_stab_brand != CHATTR_NORMAL && + mons_looks_distracted(&menv[mon_idx])) + { + ch |= TILE_FLAG_MAY_STAB; + } + return ch; +} + +int tileidx_fixed_artifact(int special) +{ + int ch = TILE_ERROR; + + switch(special) + { + case SPWPN_SINGING_SWORD: ch=TILE_SPWPN_SINGING_SWORD; break; + case SPWPN_WRATH_OF_TROG: ch=TILE_SPWPN_WRATH_OF_TROG; break; + case SPWPN_SCYTHE_OF_CURSES: ch=TILE_SPWPN_SCYTHE_OF_CURSES; break; + case SPWPN_MACE_OF_VARIABILITY: ch=TILE_SPWPN_MACE_OF_VARIABILITY; break; + case SPWPN_GLAIVE_OF_PRUNE: ch=TILE_SPWPN_GLAIVE_OF_PRUNE; break; + case SPWPN_SCEPTRE_OF_TORMENT: ch=TILE_SPWPN_SCEPTRE_OF_TORMENT; break; + case SPWPN_SWORD_OF_ZONGULDROK: ch=TILE_SPWPN_SWORD_OF_ZONGULDROK; break; + case SPWPN_SWORD_OF_CEREBOV: ch=TILE_SPWPN_SWORD_OF_CEREBOV; break; + case SPWPN_STAFF_OF_DISPATER: ch=TILE_SPWPN_STAFF_OF_DISPATER; break; + case SPWPN_SCEPTRE_OF_ASMODEUS: ch=TILE_SPWPN_SCEPTRE_OF_ASMODEUS; break; + case SPWPN_SWORD_OF_POWER: ch=TILE_SPWPN_SWORD_OF_POWER; break; + case SPWPN_KNIFE_OF_ACCURACY: ch=TILE_SPWPN_KNIFE_OF_ACCURACY; break; + case SPWPN_STAFF_OF_OLGREB: ch=TILE_SPWPN_STAFF_OF_OLGREB; break; + case SPWPN_VAMPIRES_TOOTH: ch=TILE_SPWPN_VAMPIRES_TOOTH; break; + case SPWPN_STAFF_OF_WUCAD_MU: ch=TILE_SPWPN_STAFF_OF_WUCAD_MU; break; + } + return ch; +} + +int tileidx_unrand_artifact(int idx) +{ + switch (idx) + { + case 1: return TILE_URAND_BLOODBANE; + case 2: return TILE_URAND_SHADOWS; + case 3: return TILE_URAND_FLAMING_DEATH; + case 4: return TILE_URAND_IGNORANCE; + case 5: return TILE_URAND_ZIN; + case 6: return TILE_URAND_AUGMENTATION; + case 7: return TILE_URAND_BRILLIANCE; + case 8: return TILE_URAND_THIEF; + case 9: return TILE_URAND_BULLSEYE; + case 10: return TILE_URAND_DYROVEPREVA; + case 11: return TILE_URAND_LEECH; + case 12: return TILE_URAND_CEKUGOB; + case 13: return TILE_URAND_MISFORTUNE; + case 14: return TILE_URAND_CHILLY_DEATH; + case 15: return TILE_URAND_FOUR_WINDS; + case 16: return TILE_URAND_MORG; + case 17: return TILE_URAND_FINISHER; + case 18: return TILE_URAND_PUNK; + case 19: return TILE_URAND_KRISHNA; + case 20: return TILE_URAND_FLASH; + case 21: return TILE_URAND_SKULLCRUSHER; + case 22: return TILE_URAND_ASSASSIN; + case 23: return TILE_URAND_GUARD; + case 24: return TILE_URAND_JIHAD; + case 25: return TILE_URAND_LEAR; + case 26: return TILE_URAND_ZHOR; + case 27: return TILE_URAND_FIERY_DEVIL; + case 28: return TILE_URAND_SALAMANDER; + case 29: return TILE_URAND_WAR; + case 30: return TILE_URAND_DOOM_KNIGHT; + case 31: return TILE_URAND_RESISTANCE; + case 32: return TILE_URAND_FOLLY; + case 33: return TILE_URAND_BLOODLUST; + case 34: return TILE_URAND_EOS; + case 35: return TILE_URAND_SHAOLIN; + case 36: return TILE_URAND_ROBUSTNESS; + case 37: return TILE_URAND_EDISON; + case 38: return TILE_URAND_VOO_DOO; + case 39: return TILE_URAND_OCTOPUS_KING; + case 40: return TILE_URAND_DRAGONMASK; + case 41: return TILE_URAND_ARGA; + case 42: return TILE_URAND_ELEMENTAL; + case 43: return TILE_URAND_SNIPER; + case 44: return TILE_URAND_ERCHIDEL; + case 45: return TILE_URAND_NIGHT; + case 46: return TILE_URAND_PLUTONIUM; + case 47: return TILE_URAND_UNDERADHUNTER; + case 48: return TILE_URAND_DRAGON_KING; + case 49: return TILE_URAND_ALCHEMIST; + case 50: return TILE_URAND_FENCER; + case 51: return TILE_URAND_MAGE; + case 52: return TILE_URAND_BLOWGUN; + } + return 0; +} + +int get_etype(const item_def &item) +{ + int etype; + switch (item.flags & ISFLAG_COSMETIC_MASK) + { + case ISFLAG_EMBROIDERED_SHINY: + etype = 1; + break; + case ISFLAG_RUNED: + etype = 2; + break; + case ISFLAG_GLOWING: + etype = 3; + break; + default: + etype = is_random_artefact(item) ? 4 : 0; + break; + } + + return etype; +} + +int tileidx_weapon(const item_def &item) +{ + int ch = TILE_ERROR; + int race = item.flags & ISFLAG_RACIAL_MASK; + int etype = get_etype(item); + + static const int etable[4][4] = { + {0, 0, 0, 0}, // No ego tile + {0, 1, 1, 1}, // One ego tile + {0, 1, 1, 2}, // Two ego tile + {0, 1, 2, 3} + }; + + if (etype > 1) + etype--; + + switch(item.sub_type) + { + case WPN_KNIFE: ch=TILE_WPN_KNIFE; break; + case WPN_DAGGER: + ch=TILE_WPN_DAGGER; + if (race == ISFLAG_ORCISH) ch = TILE_WPN_DAGGER_ORC; + if (race == ISFLAG_ELVEN ) ch = TILE_WPN_DAGGER_ELF; + break; + case WPN_SHORT_SWORD: + ch=TILE_WPN_SHORT_SWORD + etable[1][etype]; + if (race == ISFLAG_ORCISH) ch = TILE_WPN_SHORT_SWORD_ORC; + if (race == ISFLAG_ELVEN ) ch = TILE_WPN_SHORT_SWORD_ELF; + break; + case WPN_QUICK_BLADE: ch=TILE_WPN_QUICK_BLADE; break; + + case WPN_SABRE: + ch=TILE_WPN_SABRE + etable[1][etype]; + break; + case WPN_FALCHION: ch=TILE_WPN_FALCHION; break; + case WPN_KATANA: + ch=TILE_WPN_KATANA + etable[1][etype]; + break; + case WPN_LONG_SWORD: + ch=TILE_WPN_LONG_SWORD + etable[1][etype]; + if (race == ISFLAG_ORCISH) ch = TILE_WPN_LONG_SWORD_ORC; + break; + case WPN_GREAT_SWORD: + ch=TILE_WPN_GREAT_SWORD + etable[1][etype]; + if (race == ISFLAG_ORCISH) ch = TILE_WPN_GREAT_SWORD_ORC; + break; + case WPN_SCIMITAR: + ch=TILE_WPN_SCIMITAR + etable[1][etype]; + break; + case WPN_DOUBLE_SWORD: ch=TILE_WPN_DOUBLE_SWORD; break; + case WPN_TRIPLE_SWORD: ch=TILE_WPN_TRIPLE_SWORD; break; + + case WPN_HAND_AXE: ch=TILE_WPN_HAND_AXE; break; + case WPN_WAR_AXE: ch=TILE_WPN_WAR_AXE; break; + case WPN_BROAD_AXE: + ch=TILE_WPN_BROAD_AXE + etable[1][etype]; + break; + case WPN_BATTLEAXE: + ch=TILE_WPN_BATTLEAXE + etable[1][etype]; + break; + case WPN_EXECUTIONERS_AXE: + ch=TILE_WPN_EXECUTIONERS_AXE + etable[1][etype]; + break; + + case WPN_BLOWGUN: + ch=TILE_WPN_BLOWGUN + etable[1][etype]; + break; + case WPN_SLING: ch=TILE_WPN_SLING; break; + case WPN_BOW: + ch=TILE_WPN_BOW + etable[1][etype]; + break; + case WPN_CROSSBOW: + ch=TILE_WPN_CROSSBOW + etable[1][etype]; + break; + case WPN_HAND_CROSSBOW: + ch=TILE_WPN_HAND_CROSSBOW + etable[1][etype]; + break; + + case WPN_SPEAR: + ch=TILE_WPN_SPEAR + etable[1][etype]; + break; + case WPN_TRIDENT: + ch=TILE_WPN_TRIDENT + etable[1][etype]; + break; + case WPN_HALBERD: + ch=TILE_WPN_HALBERD + etable[1][etype]; + break; + case WPN_SCYTHE: + ch=TILE_WPN_SCYTHE + etable[1][etype]; + break; + case WPN_GLAIVE: + ch=TILE_WPN_GLAIVE + etable[1][etype]; + if (race == ISFLAG_ORCISH) ch = TILE_WPN_GLAIVE_ORC; + break; + + case WPN_QUARTERSTAFF: ch=TILE_WPN_QUARTERSTAFF; break; + + case WPN_CLUB: ch=TILE_WPN_CLUB; break; + case WPN_HAMMER: + ch=TILE_WPN_HAMMER + etable[1][etype]; + break; + case WPN_MACE: + ch=TILE_WPN_MACE + etable[1][etype]; + break; + case WPN_FLAIL: + ch=TILE_WPN_FLAIL + etable[1][etype]; + break; + case WPN_SPIKED_FLAIL: + ch=TILE_WPN_SPIKED_FLAIL + etable[1][etype]; + break; + case WPN_GREAT_MACE: + ch=TILE_WPN_GREAT_MACE + etable[1][etype]; + break; + case WPN_DIRE_FLAIL: + ch=TILE_WPN_GREAT_FLAIL + etable[1][etype]; + break; + case WPN_MORNINGSTAR: + ch=TILE_WPN_MORNINGSTAR + etable[1][etype]; + break; + case WPN_EVENINGSTAR: + ch=TILE_WPN_EVENINGSTAR + etable[1][etype]; + break; + + case WPN_GIANT_CLUB: ch=TILE_WPN_GIANT_CLUB; break; + case WPN_GIANT_SPIKED_CLUB: ch=TILE_WPN_GIANT_SPIKED_CLUB; break; + + case WPN_ANCUS: ch=TILE_WPN_ANCUS; break; + case WPN_WHIP: ch=TILE_WPN_WHIP; break; + + case WPN_DEMON_BLADE: ch=TILE_WPN_DEMON_BLADE; break; + case WPN_DEMON_WHIP: ch=TILE_WPN_DEMON_WHIP; break; + case WPN_DEMON_TRIDENT: ch=TILE_WPN_DEMON_TRIDENT; break; + case WPN_BLESSED_BLADE: ch=TILE_WPN_BLESSED_BLADE; break; + case WPN_LONGBOW: ch=TILE_WPN_LONGBOW; break; + case WPN_LAJATANG: ch=TILE_WPN_LAJATANG; break; + case WPN_BARDICHE: ch=TILE_WPN_LOCHABER_AXE; break; + } + return ch; +} + +int tileidx_missile(const item_def &item) +{ + int ch = TILE_ERROR; + int brand = item.special; + switch(item.sub_type) + { + case MI_STONE: ch=TILE_MI_STONE; break; + case MI_ARROW: ch=TILE_MI_ARROW; break; + case MI_BOLT: ch=TILE_MI_BOLT; break; + case MI_DART: + ch=TILE_MI_DART; + if (brand == SPMSL_POISONED || brand == SPMSL_POISONED_II) + ch = TILE_MI_DART_P; + break; + case MI_NEEDLE: + ch=TILE_MI_NEEDLE; + if (brand == SPMSL_POISONED || brand == SPMSL_POISONED_II) + ch = TILE_MI_NEEDLE_P; + break; + case MI_LARGE_ROCK: ch=TILE_MI_LARGE_ROCK; break; + case MI_SLING_BULLET: ch=TILE_MI_SLING_BULLET; break; + case MI_JAVELIN: ch=TILE_MI_JAVELIN; break; + case MI_THROWING_NET: ch=TILE_MI_THROWING_NET; break; + } + return ch; +} + +int tileidx_armour(const item_def &item) +{ + int ch = TILE_ERROR; + int race = item.flags & ISFLAG_RACIAL_MASK; + int type=item.sub_type; + int etype = get_etype(item); + + static const int etable[5][5] = { + {0, 0, 0, 0, 0}, // No ego tile + {0, 1, 1, 1, 1}, // One ego tile + {0, 1, 1, 1, 2}, // Two ego tile + {0, 1, 1, 2, 3}, + {0, 1, 2, 3, 4} + }; + + switch(type) + { + case ARM_ROBE: + ch= TILE_ARM_ROBE + etable[2][etype]; + break; + case ARM_LEATHER_ARMOUR: + ch=TILE_ARM_LEATHER_ARMOUR + etable[2][etype]; + if (race == ISFLAG_ORCISH) ch = TILE_ARM_LEATHER_ARMOUR_ORC; + if (race == ISFLAG_ELVEN ) ch = TILE_ARM_LEATHER_ARMOUR_ELF; + break; + case ARM_RING_MAIL: + ch=TILE_ARM_RING_MAIL + etable[1][etype]; + if (race == ISFLAG_ORCISH) ch = TILE_ARM_RING_MAIL_ORC; + if (race == ISFLAG_ELVEN ) ch = TILE_ARM_RING_MAIL_ELF; + if (race == ISFLAG_DWARVEN ) ch = TILE_ARM_RING_MAIL_DWA; + break; + case ARM_SCALE_MAIL: + ch=TILE_ARM_SCALE_MAIL + etable[1][etype]; + if (race == ISFLAG_ELVEN ) ch = TILE_ARM_SCALE_MAIL_ELF; + break; + case ARM_CHAIN_MAIL: + ch=TILE_ARM_CHAIN_MAIL + etable[1][etype]; + if (race == ISFLAG_ELVEN) ch = TILE_ARM_CHAIN_MAIL_ELF; + if (race == ISFLAG_ORCISH) ch = TILE_ARM_CHAIN_MAIL_ORC; + break; + case ARM_SPLINT_MAIL: ch=TILE_ARM_SPLINT_MAIL; break; + case ARM_BANDED_MAIL: ch=TILE_ARM_BANDED_MAIL; break; + case ARM_PLATE_MAIL: + ch=TILE_ARM_PLATE_MAIL; + if (race == ISFLAG_ORCISH) ch = TILE_ARM_PLATE_MAIL_ORC; + break; + + case ARM_CRYSTAL_PLATE_MAIL: ch=TILE_ARM_CRYSTAL_PLATE_MAIL; break; + + case ARM_SHIELD: ch=TILE_ARM_SHIELD + etable[2][etype]; break; + + case ARM_CLOAK: + ch=TILE_ARM_CLOAK + etable[3][etype]; + break; + + case ARM_WIZARD_HAT: + ch=TILE_THELM_WIZARD_HAT + etable[1][etype]; break; + case ARM_CAP: + ch=TILE_THELM_CAP; break; + case ARM_HELMET: + ch=TILE_THELM_HELM + etable[3][etype]; break; + case ARM_GLOVES: + ch=TILE_ARM_GLOVES + etable[3][etype]; + break; + case ARM_BOOTS: + ch=TILE_ARM_BOOTS + etable[3][etype]; + break; + case ARM_BUCKLER: + ch=TILE_ARM_BUCKLER + etable[1][etype]; + break; + case ARM_LARGE_SHIELD: + ch=TILE_ARM_LARGE_SHIELD + etable[2][etype]; + break; + case ARM_CENTAUR_BARDING: ch=TILE_ARM_CENTAUR_BARDING; break; + case ARM_NAGA_BARDING: ch=TILE_ARM_NAGA_BARDING; break; + + case ARM_ANIMAL_SKIN: ch=TILE_ARM_ANIMAL_SKIN + etable[1][etype]; break; + case ARM_TROLL_HIDE: ch=TILE_ARM_TROLL_HIDE; break; + case ARM_TROLL_LEATHER_ARMOUR: ch=TILE_ARM_TROLL_LEATHER_ARMOUR; break; + case ARM_DRAGON_HIDE: ch=TILE_ARM_DRAGON_HIDE; break; + case ARM_DRAGON_ARMOUR: ch=TILE_ARM_DRAGON_ARMOUR; break; + case ARM_ICE_DRAGON_HIDE: ch=TILE_ARM_ICE_DRAGON_HIDE; break; + case ARM_ICE_DRAGON_ARMOUR: ch=TILE_ARM_ICE_DRAGON_ARMOUR; break; + case ARM_STEAM_DRAGON_HIDE: ch=TILE_ARM_STEAM_DRAGON_HIDE; break; + case ARM_STEAM_DRAGON_ARMOUR: ch=TILE_ARM_STEAM_DRAGON_ARMOUR; break; + case ARM_MOTTLED_DRAGON_HIDE: ch=TILE_ARM_MOTTLED_DRAGON_HIDE; break; + case ARM_MOTTLED_DRAGON_ARMOUR: ch=TILE_ARM_MOTTLED_DRAGON_ARMOUR; break; + case ARM_STORM_DRAGON_HIDE: ch=TILE_ARM_STORM_DRAGON_HIDE; break; + case ARM_STORM_DRAGON_ARMOUR: ch=TILE_ARM_STORM_DRAGON_ARMOUR; break; + case ARM_GOLD_DRAGON_HIDE: ch=TILE_ARM_GOLD_DRAGON_HIDE; break; + case ARM_GOLD_DRAGON_ARMOUR: ch=TILE_ARM_GOLD_DRAGON_ARMOUR; break; + case ARM_SWAMP_DRAGON_HIDE: ch=TILE_ARM_SWAMP_DRAGON_HIDE; break; + case ARM_SWAMP_DRAGON_ARMOUR: ch=TILE_ARM_SWAMP_DRAGON_ARMOUR; break; + } + return ch; +} + +int tileidx_food(const item_def &item) +{ + int ch = TILE_ERROR; + int type=item.sub_type; + switch(type) + { + case FOOD_MEAT_RATION: ch=TILE_FOOD_MEAT_RATION; break; + case FOOD_BREAD_RATION: ch=TILE_FOOD_BREAD_RATION; break; + case FOOD_PEAR: ch=TILE_FOOD_PEAR; break; + case FOOD_APPLE: ch=TILE_FOOD_APPLE; break; + case FOOD_CHOKO: ch=TILE_FOOD_CHOKO; break; + case FOOD_HONEYCOMB: ch=TILE_FOOD_HONEYCOMB; break; + case FOOD_ROYAL_JELLY: ch=TILE_FOOD_ROYAL_JELLY; break; + case FOOD_SNOZZCUMBER: ch=TILE_FOOD_SNOZZCUMBER; break; + case FOOD_PIZZA: ch=TILE_FOOD_PIZZA; break; + case FOOD_APRICOT: ch=TILE_FOOD_APRICOT; break; + case FOOD_ORANGE: ch=TILE_FOOD_ORANGE; break; + case FOOD_BANANA: ch=TILE_FOOD_BANANA; break; + case FOOD_STRAWBERRY: ch=TILE_FOOD_STRAWBERRY; break; + case FOOD_RAMBUTAN: ch=TILE_FOOD_RAMBUTAN; break; + case FOOD_LEMON: ch=TILE_FOOD_LEMON; break; + case FOOD_GRAPE: ch=TILE_FOOD_GRAPE; break; + case FOOD_SULTANA: ch=TILE_FOOD_SULTANA; break; + case FOOD_LYCHEE: ch=TILE_FOOD_LYCHEE; break; + case FOOD_BEEF_JERKY: ch=TILE_FOOD_BEEF_JERKY; break; + case FOOD_CHEESE: ch=TILE_FOOD_CHEESE; break; + case FOOD_SAUSAGE: ch=TILE_FOOD_SAUSAGE; break; + + case FOOD_CHUNK: + ch=TILE_FOOD_CHUNK; + if (item.special < 100) ch = TILE_FOOD_CHUNK_ROTTEN; + break; + } + + return ch; +} + +int tileidx_corpse(int mon) +{ + int ch = TILE_ERROR; + switch(mon) + { + case MONS_GIANT_ANT: ch=TILE_CORPSE_GIANT_ANT; break; + case MONS_GIANT_BAT: ch=TILE_CORPSE_GIANT_BAT; break; + case MONS_CENTAUR: ch=TILE_CORPSE_CENTAUR; break; + case MONS_GOBLIN: ch=TILE_CORPSE_GOBLIN; break; + case MONS_HOUND: ch=TILE_CORPSE_HOUND; break; + case MONS_JACKAL: ch=TILE_CORPSE_JACKAL; break; + case MONS_KILLER_BEE: ch=TILE_CORPSE_KILLER_BEE; break; + case MONS_KILLER_BEE_LARVA: ch=TILE_CORPSE_KILLER_BEE_LARVA; break; + case MONS_MANTICORE: ch=TILE_CORPSE_MANTICORE; break; + case MONS_NECROPHAGE: ch=TILE_CORPSE_NECROPHAGE; break; + case MONS_ORC: ch=TILE_CORPSE_ORC; break; + case MONS_RAT: ch=TILE_CORPSE_RAT; break; + case MONS_SCORPION: ch=TILE_CORPSE_SCORPION; break; + case MONS_UGLY_THING: ch=TILE_CORPSE_UGLY_THING; break; + case MONS_WORM: ch=TILE_CORPSE_WORM; break; + case MONS_YELLOW_WASP: ch=TILE_CORPSE_YELLOW_WASP; break; + case MONS_GIANT_BEETLE: ch=TILE_CORPSE_GIANT_BEETLE; break; + case MONS_CYCLOPS: ch=TILE_CORPSE_CYCLOPS; break; + case MONS_DRAGON: ch=TILE_CORPSE_DRAGON; break; + case MONS_TWO_HEADED_OGRE: ch=TILE_CORPSE_TWO_HEADED_OGRE; break; + case MONS_HOBGOBLIN: ch=TILE_CORPSE_HOBGOBLIN; break; + case MONS_KOBOLD: ch=TILE_CORPSE_KOBOLD; break; + case MONS_GUARDIAN_NAGA: ch=TILE_CORPSE_GUARDIAN_NAGA; break; + case MONS_OGRE: ch=TILE_CORPSE_OGRE; break; + case MONS_QUEEN_BEE: ch=TILE_CORPSE_QUEEN_BEE; break; + case MONS_SNAKE: ch=TILE_CORPSE_SNAKE; break; + case MONS_TROLL: ch=TILE_CORPSE_TROLL; break; + case MONS_YAK: ch=TILE_CORPSE_YAK; break; + case MONS_WYVERN: ch=TILE_CORPSE_WYVERN; break; + case MONS_GIANT_EYEBALL: ch=TILE_CORPSE_GIANT_EYEBALL; break; + case MONS_WOLF_SPIDER: ch=TILE_CORPSE_WOLF_SPIDER; break; + case MONS_EYE_OF_DRAINING: ch=TILE_CORPSE_EYE_OF_DRAINING; break; + case MONS_BUTTERFLY: ch=TILE_CORPSE_BUTTERFLY; break; + case MONS_BRAIN_WORM: ch=TILE_CORPSE_BRAIN_WORM; break; + case MONS_GIANT_ORANGE_BRAIN: ch=TILE_CORPSE_GIANT_ORANGE_BRAIN; break; + case MONS_BOULDER_BEETLE: ch=TILE_CORPSE_BOULDER_BEETLE; break; + case MONS_MINOTAUR: ch=TILE_CORPSE_MINOTAUR; break; + case MONS_ICE_DRAGON: ch=TILE_CORPSE_ICE_DRAGON; break; + case MONS_GREAT_ORB_OF_EYES: ch=TILE_CORPSE_GREAT_ORB_OF_EYES; break; + case MONS_GLOWING_SHAPESHIFTER: ch=TILE_CORPSE_GLOWING_SHAPESHIFTER; break; + case MONS_SHAPESHIFTER: ch=TILE_CORPSE_SHAPESHIFTER; break; + case MONS_GIANT_MITE: ch=TILE_CORPSE_GIANT_MITE; break; + case MONS_STEAM_DRAGON: ch=TILE_CORPSE_STEAM_DRAGON; break; + case MONS_VERY_UGLY_THING: ch=TILE_CORPSE_VERY_UGLY_THING; break; +// case MONS_ORC_SORCERER: ch=TILE_CORPSE_ORC_SORCERER; break; + case MONS_HIPPOGRIFF: ch=TILE_CORPSE_HIPPOGRIFF; break; + case MONS_GRIFFON: ch=TILE_CORPSE_GRIFFON; break; + case MONS_HYDRA: ch=TILE_CORPSE_HYDRA; break; + case MONS_HELL_KNIGHT: ch=TILE_CORPSE_HELL_KNIGHT; break; + case MONS_NECROMANCER: ch=TILE_CORPSE_NECROMANCER; break; + case MONS_WIZARD: ch=TILE_CORPSE_WIZARD; break; +// case MONS_ORC_PRIEST: ch=TILE_CORPSE_ORC_PRIEST; break; +// case MONS_ORC_HIGH_PRIEST: ch=TILE_CORPSE_ORC_HIGH_PRIEST; break; + case MONS_HUMAN: ch=TILE_CORPSE_HUMAN; break; + case MONS_GNOLL: ch=TILE_CORPSE_GNOLL; break; + case MONS_MOTTLED_DRAGON: ch=TILE_CORPSE_MOTTLED_DRAGON; break; + case MONS_BROWN_SNAKE: ch=TILE_CORPSE_BROWN_SNAKE; break; + case MONS_GIANT_LIZARD: ch=TILE_CORPSE_GIANT_LIZARD; break; + case MONS_STORM_DRAGON: ch=TILE_CORPSE_STORM_DRAGON; break; + case MONS_YAKTAUR: ch=TILE_CORPSE_YAKTAUR; break; + case MONS_DEATH_YAK: ch=TILE_CORPSE_DEATH_YAK; break; + case MONS_ROCK_TROLL: ch=TILE_CORPSE_ROCK_TROLL; break; + case MONS_STONE_GIANT: ch=TILE_CORPSE_STONE_GIANT; break; + case MONS_BUMBLEBEE: ch=TILE_CORPSE_BUMBLEBEE; break; + case MONS_REDBACK: ch=TILE_CORPSE_REDBACK; break; + case MONS_SPINY_WORM: ch=TILE_CORPSE_SPINY_WORM; break; + case MONS_TITAN: ch=TILE_CORPSE_TITAN; break; + case MONS_GOLDEN_DRAGON: ch=TILE_CORPSE_GOLDEN_DRAGON; break; + case MONS_ELF: ch=TILE_CORPSE_ELF; break; + case MONS_LINDWURM: ch=TILE_CORPSE_LINDWURM; break; + case MONS_ELEPHANT_SLUG: ch=TILE_CORPSE_ELEPHANT_SLUG; break; + case MONS_WAR_DOG: ch=TILE_CORPSE_WAR_DOG; break; + case MONS_GREY_RAT: ch=TILE_CORPSE_GREY_RAT; break; + case MONS_GREEN_RAT: ch=TILE_CORPSE_GREEN_RAT; break; + case MONS_ORANGE_RAT: ch=TILE_CORPSE_ORANGE_RAT; break; + case MONS_BLACK_SNAKE: ch=TILE_CORPSE_BLACK_SNAKE; break; + case MONS_SHEEP: ch=TILE_CORPSE_SHEEP; break; + case MONS_GHOUL: ch=TILE_CORPSE_GHOUL; break; + case MONS_HOG: ch=TILE_CORPSE_HOG; break; + case MONS_GIANT_MOSQUITO: ch=TILE_CORPSE_GIANT_MOSQUITO; break; + case MONS_GIANT_CENTIPEDE: ch=TILE_CORPSE_GIANT_CENTIPEDE; break; + case MONS_IRON_TROLL: ch=TILE_CORPSE_IRON_TROLL; break; + case MONS_NAGA: ch=TILE_CORPSE_NAGA; break; + case MONS_FIRE_GIANT: ch=TILE_CORPSE_FIRE_GIANT; break; + case MONS_FROST_GIANT: ch=TILE_CORPSE_FROST_GIANT; break; + case MONS_FIREDRAKE: ch=TILE_CORPSE_FIREDRAKE; break; + case MONS_SHADOW_DRAGON: ch=TILE_CORPSE_SHADOW_DRAGON; break; + case MONS_YELLOW_SNAKE: ch=TILE_CORPSE_YELLOW_SNAKE; break; + case MONS_GREY_SNAKE: ch=TILE_CORPSE_GREY_SNAKE; break; + case MONS_DEEP_TROLL: ch=TILE_CORPSE_DEEP_TROLL; break; + case MONS_GIANT_BLOWFLY: ch=TILE_CORPSE_GIANT_BLOWFLY; break; + case MONS_RED_WASP: ch=TILE_CORPSE_RED_WASP; break; + case MONS_SWAMP_DRAGON: ch=TILE_CORPSE_SWAMP_DRAGON; break; + case MONS_SWAMP_DRAKE: ch=TILE_CORPSE_SWAMP_DRAKE; break; + case MONS_SOLDIER_ANT: ch=TILE_CORPSE_SOLDIER_ANT; break; + case MONS_HILL_GIANT: ch=TILE_CORPSE_HILL_GIANT; break; + case MONS_QUEEN_ANT: ch=TILE_CORPSE_QUEEN_ANT; break; + case MONS_ANT_LARVA: ch=TILE_CORPSE_ANT_LARVA; break; + case MONS_GIANT_FROG: ch=TILE_CORPSE_GIANT_FROG; break; + case MONS_GIANT_BROWN_FROG: ch=TILE_CORPSE_GIANT_BROWN_FROG; break; + case MONS_SPINY_FROG: ch=TILE_CORPSE_SPINY_FROG; break; + case MONS_BLINK_FROG: ch=TILE_CORPSE_BLINK_FROG; break; + case MONS_GIANT_COCKROACH: ch=TILE_CORPSE_GIANT_COCKROACH; break; + case MONS_SMALL_SNAKE: ch=TILE_CORPSE_SMALL_SNAKE; break; + case MONS_GIANT_AMOEBA: ch=TILE_CORPSE_GIANT_AMOEBA; break; + case MONS_GIANT_SLUG: ch=TILE_CORPSE_GIANT_SLUG; break; + case MONS_GIANT_SNAIL: ch=TILE_CORPSE_GIANT_SNAIL; break; + case MONS_BORING_BEETLE: ch=TILE_CORPSE_BORING_BEETLE; break; +// case MONS_NAGA_MAGE: ch=TILE_CORPSE_NAGA_MAGE; break; +// case MONS_NAGA_WARRIOR: ch=TILE_CORPSE_NAGA_WARRIOR; break; +// case MONS_ORC_WARLORD: ch=TILE_CORPSE_ORC_WARLORD; break; +// case MONS_DEEP_ELF_SOLDIER: ch=TILE_CORPSE_DEEP_ELF_SOLDIER; break; +// case MONS_DEEP_ELF_FIGHTER: ch=TILE_CORPSE_DEEP_ELF_FIGHTER; break; +// case MONS_DEEP_ELF_KNIGHT: ch=TILE_CORPSE_DEEP_ELF_KNIGHT; break; +// case MONS_DEEP_ELF_MAGE: ch=TILE_CORPSE_DEEP_ELF_MAGE; break; +// case MONS_DEEP_ELF_SUMMONER: ch=TILE_CORPSE_DEEP_ELF_SUMMONER; break; +// case MONS_DEEP_ELF_CONJURER: ch=TILE_CORPSE_DEEP_ELF_CONJURER; break; +// case MONS_DEEP_ELF_PRIEST: ch=TILE_CORPSE_DEEP_ELF_PRIEST; break; +// case MONS_DEEP_ELF_HIGH_PRIEST: ch=TILE_CORPSE_DEEP_ELF_HIGH_PRIEST; break; +// case MONS_DEEP_ELF_DEMONOLOGIST: ch=TILE_CORPSE_DEEP_ELF_DEMONOLOGIST; break; +// case MONS_DEEP_ELF_ANNIHILATOR: ch=TILE_CORPSE_DEEP_ELF_ANNIHILATOR; break; +// case MONS_DEEP_ELF_SORCERER: ch=TILE_CORPSE_DEEP_ELF_SORCERER; break; +// case MONS_DEEP_ELF_DEATH_MAGE: ch=TILE_CORPSE_DEEP_ELF_DEATH_MAGE; break; + case MONS_GREATER_NAGA: ch=TILE_CORPSE_GREATER_NAGA; break; +// case MONS_CENTAUR_WARRIOR: ch=TILE_CORPSE_CENTAUR_WARRIOR; break; +// case MONS_YAKTAUR_CAPTAIN: ch=TILE_CORPSE_YAKTAUR_CAPTAIN; break; + case MONS_QUOKKA: ch=TILE_CORPSE_QUOKKA; break; +// case MONS_SHUGGOTH: ch=TILE_CORPSE_SHUGGOTH; break; + case MONS_WOLF: ch=TILE_CORPSE_WOLF; break; + case MONS_WARG: ch=TILE_CORPSE_WARG; break; + case MONS_BEAR: ch=TILE_CORPSE_BEAR; break; + case MONS_GRIZZLY_BEAR: ch=TILE_CORPSE_GRIZZLY_BEAR; break; + case MONS_POLAR_BEAR: ch=TILE_CORPSE_POLAR_BEAR; break; + case MONS_BLACK_BEAR: ch=TILE_CORPSE_BLACK_BEAR; break; + case MONS_GIANT_NEWT: ch=TILE_CORPSE_GIANT_NEWT; break; + case MONS_GIANT_GECKO: ch=TILE_CORPSE_GIANT_GECKO; break; + case MONS_GIANT_IGUANA: ch=TILE_CORPSE_GIANT_IGUANA; break; + case MONS_GILA_MONSTER: ch=TILE_CORPSE_GILA_MONSTER; break; + case MONS_KOMODO_DRAGON: ch=TILE_CORPSE_KOMODO_DRAGON; break; + + case MONS_DRACONIAN: ch=TILE_CORPSE_DRACONIAN_BROWN; break; + case MONS_BLACK_DRACONIAN: ch=TILE_CORPSE_DRACONIAN_BLACK; break; + case MONS_YELLOW_DRACONIAN: ch=TILE_CORPSE_DRACONIAN_YELLOW; break; + case MONS_GREEN_DRACONIAN: ch=TILE_CORPSE_DRACONIAN_GREEN; break; + case MONS_MOTTLED_DRACONIAN: ch=TILE_CORPSE_DRACONIAN_MOTTLED; break; + case MONS_PALE_DRACONIAN: ch=TILE_CORPSE_DRACONIAN_PALE; break; + case MONS_PURPLE_DRACONIAN: ch=TILE_CORPSE_DRACONIAN_PURPLE; break; + case MONS_RED_DRACONIAN: ch=TILE_CORPSE_DRACONIAN_RED; break; + case MONS_WHITE_DRACONIAN: ch=TILE_CORPSE_DRACONIAN_WHITE; break; + + case MONS_DEATH_DRAKE: ch=TILE_CORPSE_DEATH_DRAKE; break; + } + return ch; +} + +int tileidx_misc(int type) +{ + int ch = TILE_ERROR; + switch(type) + { + case MISC_BOTTLED_EFREET: ch = TILE_MISC_BOTTLED_EFREET; break; + case MISC_CRYSTAL_BALL_OF_SEEING: ch = TILE_MISC_CRYSTAL_BALL_OF_SEEING; break; + case MISC_AIR_ELEMENTAL_FAN: ch = TILE_MISC_AIR_ELEMENTAL_FAN; break; + case MISC_LAMP_OF_FIRE: ch = TILE_MISC_LAMP_OF_FIRE; break; + case MISC_STONE_OF_EARTH_ELEMENTALS: ch = TILE_MISC_STONE_OF_EARTH_ELEMENTALS; break; + case MISC_LANTERN_OF_SHADOWS: ch = TILE_MISC_LANTERN_OF_SHADOWS; break; + case MISC_HORN_OF_GERYON: ch = TILE_MISC_HORN_OF_GERYON; break; + case MISC_BOX_OF_BEASTS: ch = TILE_MISC_BOX_OF_BEASTS; break; + case MISC_CRYSTAL_BALL_OF_ENERGY: ch = TILE_MISC_CRYSTAL_BALL_OF_ENERGY; break; + case MISC_EMPTY_EBONY_CASKET: ch = TILE_MISC_EMPTY_EBONY_CASKET; break; + case MISC_CRYSTAL_BALL_OF_FIXATION: ch = TILE_MISC_CRYSTAL_BALL_OF_FIXATION; break; + case MISC_DISC_OF_STORMS: ch = TILE_MISC_DISC_OF_STORMS; break; + + case MISC_DECK_OF_ESCAPE: ch = TILE_MISC_DECK_OF_WONDERS; break; + case MISC_DECK_OF_DESTRUCTION: ch = TILE_MISC_DECK_OF_WONDERS; break; + case MISC_DECK_OF_DUNGEONS: ch = TILE_MISC_DECK_OF_WONDERS; break; + case MISC_DECK_OF_SUMMONING: ch = TILE_MISC_DECK_OF_SUMMONINGS; break; + case MISC_DECK_OF_WONDERS: ch = TILE_MISC_DECK_OF_WONDERS; break; + case MISC_DECK_OF_PUNISHMENT: ch = TILE_MISC_DECK_OF_WONDERS; break; + case MISC_DECK_OF_WAR: ch = TILE_MISC_DECK_OF_WONDERS; break; + case MISC_DECK_OF_CHANGES: ch = TILE_MISC_DECK_OF_WONDERS; break; + case MISC_DECK_OF_DEFENSE: ch = TILE_MISC_DECK_OF_WONDERS; break; + + case MISC_RUNE_OF_ZOT: ch = TILE_MISC_RUNE_OF_ZOT; break; + } + return ch; +} + +/*****************************************************/ +int tileidx_item(const item_def &item) +{ + int clas=item.base_type; + int type=item.sub_type; + int special=item.special; + int color=item.colour; + + id_arr& id = get_typeid_array(); + + switch (clas) + { + case OBJ_WEAPONS: + if(is_fixed_artefact(item)) + return tileidx_fixed_artifact(special); + else + if (is_unrandom_artefact( item )) + return tileidx_unrand_artifact(find_unrandart_index(item)); + else + return tileidx_weapon(item); + break; + + case OBJ_MISSILES: + return tileidx_missile(item); + break; + + case OBJ_ARMOUR: + if (is_unrandom_artefact( item )) + return tileidx_unrand_artifact(find_unrandart_index(item)); + else + return tileidx_armour(item); + break; + + case OBJ_WANDS: +#if 1 //ID Item + if (id[ IDTYPE_WANDS ][type] == ID_KNOWN_TYPE + || (item.flags &ISFLAG_KNOW_TYPE )) + return TILE_WAND_FLAME + type; + else +#endif + return TILE_WAND_OFFSET + special % 12; + break; + + case OBJ_FOOD: + return tileidx_food(item); + break; + + case OBJ_SCROLLS: +#if 1 //ID Item + if (id[ IDTYPE_SCROLLS ][type] == ID_KNOWN_TYPE + || (item.flags &ISFLAG_KNOW_TYPE )) + return TILE_SCR_IDENTIFY + type; +#endif + return TILE_SCROLL; + break; + + case OBJ_GOLD: + return TILE_GOLD; + break; + + case OBJ_JEWELLERY: + + if (type < AMU_RAGE) + { // rings + if(is_random_artefact( item )) + return TILE_RING_RANDOM_OFFSET + color - 1; + else + return TILE_RING_NORMAL_OFFSET + special % 13; + } else { // amu + if (is_unrandom_artefact( item )) + return tileidx_unrand_artifact(find_unrandart_index(item)); + else + if(is_random_artefact( item )) + return TILE_AMU_RANDOM_OFFSET + color - 1; + else + return TILE_AMU_NORMAL_OFFSET + special % 13; + } + break; + + case OBJ_POTIONS: + if (id[ IDTYPE_POTIONS ][type] == ID_KNOWN_TYPE + || (item.flags &ISFLAG_KNOW_TYPE )) + return TILE_POT_HEALING + type; + else + return TILE_POTION_OFFSET + special % 14; + break; + + case OBJ_BOOKS: + type= special % 10; + if(type<2) return TILE_BOOK_PAPER_OFFSET + color; + if(type==2) return TILE_BOOK_LEATHER_OFFSET + special/10; + if(type==3) return TILE_BOOK_METAL_OFFSET + special/10; + if(type==4) return TILE_BOOK_PAPYRUS; + break; + + case OBJ_STAVES: + return TILE_STAFF_OFFSET + special % 10; + break; + + case OBJ_CORPSES: + if (item.sub_type == CORPSE_SKELETON) + return TILE_FOOD_BONE; + else + return tileidx_corpse(item.plus); + break; + + case OBJ_ORBS: + return TILE_ORB; + break; + + case OBJ_MISCELLANY: + return tileidx_misc(type); + break; + + default: + break; + } + return TILE_ERROR; +} + +/* + Determine Octant of missile direction + ---> X+ + | + | 701 + Y 6O2 + + 543 + + the octant boundary slope tan(pi/8)=sqrt(2)-1 = 0.414 is approximated by 2/5 + +*/ +static int tile_bolt_dir(int dx, int dy) +{ + int ax = abs(dx); + int ay = abs(dy); + + if ( 5*ay < 2*ax ) + { + return (dx > 0)? 2:6; + } + else if ( 5*ax < 2*ay) + { + return ( dy > 0 )? 4:0; + } + else + { + if (dx>0) + return (dy>0)? 3:1; + else + return (dy>0)? 5:7; + } +} + +int tileidx_item_throw(const item_def &item, int dx, int dy) +{ + if (item.base_type == OBJ_MISSILES) + { + int ch = -1; + int dir = tile_bolt_dir(dx, dy); + + // Thrown items with multiple directions + switch(item.sub_type) + { + case MI_ARROW: + ch = TILE_MI_ARROW0; + break; + case MI_BOLT: + ch = TILE_MI_BOLT0; + break; + case MI_DART: + ch = TILE_MI_DART0; + break; + case MI_NEEDLE: + ch = TILE_MI_NEEDLE0; + break; + case MI_JAVELIN: + ch = TILE_MI_JAVELIN0; + break; + case MI_THROWING_NET: + ch = TILE_MI_THROWING_NET0; + default: + break; + } + if (ch != -1) + return ch + dir; + + // Thrown items with a single direction + switch(item.sub_type) + { + case MI_STONE: + ch = TILE_MI_STONE0; + break; + case MI_SLING_BULLET: + ch = TILE_MI_SLING_BULLET0; + break; + case MI_LARGE_ROCK: + ch = TILE_MI_LARGE_ROCK0; + break; + case MI_THROWING_NET: + ch = TILE_MI_THROWING_NET0; + break; + default: + break; + } + if (ch != -1) + return ch; + } + + // If not a special case, just return the default tile. + return tileidx_item(item); +} + +int tileidx_feature(int object){ + int ch = TILE_ERROR; + switch (object) + { + case DNGN_UNSEEN: ch=TILE_DNGN_UNSEEN; break; + case DNGN_ROCK_WALL: + case DNGN_PERMAROCK_WALL: + case DNGN_SECRET_DOOR: + ch=TILE_DNGN_ROCK_WALL_OFS; break; + + case DNGN_STONE_WALL: ch=TILE_DNGN_STONE_WALL; break; + case DNGN_CLOSED_DOOR: ch=TILE_DNGN_CLOSED_DOOR; break; + case DNGN_METAL_WALL: ch=TILE_DNGN_METAL_WALL; break; + case DNGN_GREEN_CRYSTAL_WALL: ch=TILE_DNGN_GREEN_CRYSTAL_WALL; break; + case DNGN_ORCISH_IDOL: ch=TILE_DNGN_ORCISH_IDOL; break; + case DNGN_WAX_WALL: ch=TILE_DNGN_WAX_WALL; break; + //case DNGN_LAST_SOLID_CH: ch=TILE_DNGN_LAST_SOLID_CH; break; + case DNGN_GRANITE_STATUE: ch=TILE_DNGN_GRANITE_STATUE; break; + // case DNGN_STATUE_39: ch=TILE_DNGN_STATUE_39; break; + case DNGN_LAVA: ch=TILE_DNGN_LAVA; break; + case DNGN_DEEP_WATER: ch=TILE_DNGN_DEEP_WATER; break; + case DNGN_SHALLOW_WATER: ch=TILE_DNGN_SHALLOW_WATER; break; + // case DNGN_WATER_STUCK: ch=TILE_DNGN_WATER_STUCK; break; + + case DNGN_FLOOR: + case DNGN_UNDISCOVERED_TRAP: + ch=TILE_DNGN_FLOOR; break; + case DNGN_FLOOR_SPECIAL: + ch=TILE_DNGN_FLOOR_SPECIAL; break; + + case DNGN_ENTER_HELL: ch=TILE_DNGN_ENTER_HELL; break; + case DNGN_OPEN_DOOR: ch=TILE_DNGN_OPEN_DOOR; break; + // case DNGN_BRANCH_STAIRS: ch=TILE_DNGN_BRANCH_STAIRS; break; + case DNGN_TRAP_MECHANICAL: ch=TILE_DNGN_TRAP_MECHANICAL; break; + case DNGN_TRAP_MAGICAL: ch=TILE_DNGN_TRAP_MAGICAL; break; +// case DNGN_TRAP_III: ch=TILE_DNGN_TRAP_III; break; + case DNGN_ENTER_SHOP: ch=TILE_DNGN_ENTER_SHOP; break; + case DNGN_ENTER_LABYRINTH: ch=TILE_DNGN_ENTER_LABYRINTH; break; + case DNGN_STONE_STAIRS_DOWN_I: + case DNGN_STONE_STAIRS_DOWN_II: + case DNGN_STONE_STAIRS_DOWN_III: ch=TILE_DNGN_STONE_STAIRS_DOWN; break; + case DNGN_ROCK_STAIRS_DOWN: ch=TILE_DNGN_ROCK_STAIRS_DOWN; break; + case DNGN_STONE_STAIRS_UP_I: + case DNGN_STONE_STAIRS_UP_II: + case DNGN_STONE_STAIRS_UP_III: ch=TILE_DNGN_STONE_STAIRS_UP; break; + case DNGN_ROCK_STAIRS_UP: ch=TILE_DNGN_ROCK_STAIRS_UP; break; + case DNGN_ENTER_DIS: ch=TILE_DNGN_ENTER_DIS; break; + case DNGN_ENTER_GEHENNA: ch=TILE_DNGN_ENTER_GEHENNA; break; + case DNGN_ENTER_COCYTUS: ch=TILE_DNGN_ENTER_COCYTUS; break; + case DNGN_ENTER_TARTARUS: ch=TILE_DNGN_ENTER_TARTARUS; break; + case DNGN_ENTER_ABYSS: ch=TILE_DNGN_ENTER_ABYSS; break; + case DNGN_EXIT_ABYSS: + case DNGN_EXIT_HELL: + ch=TILE_DNGN_EXIT_ABYSS; break; + case DNGN_STONE_ARCH: ch=TILE_DNGN_STONE_ARCH; break; + case DNGN_ENTER_PANDEMONIUM: ch=TILE_DNGN_ENTER_PANDEMONIUM; break; + case DNGN_EXIT_PANDEMONIUM: ch=TILE_DNGN_EXIT_PANDEMONIUM; break; + case DNGN_TRANSIT_PANDEMONIUM: ch=TILE_DNGN_TRANSIT_PANDEMONIUM; break; + // case DNGN_BUILDER_SPECIAL_WALL: ch=TILE_DNGN_BUILDER_SPECIAL_WALL; break; + // case DNGN_BUILDER_SPECIAL_FLOOR: ch=TILE_DNGN_BUILDER_SPECIAL_FLOOR; break; + + case DNGN_ENTER_ORCISH_MINES: + case DNGN_ENTER_HIVE: + case DNGN_ENTER_LAIR: + case DNGN_ENTER_SLIME_PITS: + case DNGN_ENTER_VAULTS: + case DNGN_ENTER_CRYPT: + case DNGN_ENTER_HALL_OF_BLADES: + case DNGN_ENTER_ZOT: + case DNGN_ENTER_TEMPLE: + case DNGN_ENTER_SNAKE_PIT: + case DNGN_ENTER_ELVEN_HALLS: + case DNGN_ENTER_TOMB: + case DNGN_ENTER_SWAMP: + case DNGN_ENTER_SHOALS: + case DNGN_ENTER_RESERVED_2: + case DNGN_ENTER_RESERVED_3: + case DNGN_ENTER_RESERVED_4: + ch=TILE_DNGN_ENTER; break; + + case DNGN_RETURN_FROM_ORCISH_MINES: + case DNGN_RETURN_FROM_HIVE: + case DNGN_RETURN_FROM_LAIR: + case DNGN_RETURN_FROM_SLIME_PITS: + case DNGN_RETURN_FROM_VAULTS: + case DNGN_RETURN_FROM_CRYPT: + case DNGN_RETURN_FROM_HALL_OF_BLADES: + case DNGN_RETURN_FROM_ZOT: + case DNGN_RETURN_FROM_TEMPLE: + case DNGN_RETURN_FROM_SNAKE_PIT: + case DNGN_RETURN_FROM_ELVEN_HALLS: + case DNGN_RETURN_FROM_TOMB: + case DNGN_RETURN_FROM_SWAMP: + case DNGN_RETURN_FROM_SHOALS: + case DNGN_RETURN_RESERVED_2: + case DNGN_RETURN_RESERVED_3: + case DNGN_RETURN_RESERVED_4: + ch=TILE_DNGN_RETURN; break; + + case DNGN_ENTER_PORTAL_VAULT: + case DNGN_EXIT_PORTAL_VAULT: + ch=TILE_DNGN_TRANSIT_PANDEMONIUM; break; + + case DNGN_ALTAR_ZIN: ch=TILE_DNGN_ALTAR_ZIN; break; + case DNGN_ALTAR_SHINING_ONE: ch=TILE_DNGN_ALTAR_SHINING_ONE; break; + case DNGN_ALTAR_KIKUBAAQUDGHA: ch=TILE_DNGN_ALTAR_KIKUBAAQUDGHA; break; + case DNGN_ALTAR_YREDELEMNUL: ch=TILE_DNGN_ALTAR_YREDELEMNUL; break; + case DNGN_ALTAR_XOM: ch=TILE_DNGN_ALTAR_XOM; break; + case DNGN_ALTAR_VEHUMET: ch=TILE_DNGN_ALTAR_VEHUMET; break; + case DNGN_ALTAR_OKAWARU: ch=TILE_DNGN_ALTAR_OKAWARU; break; + case DNGN_ALTAR_MAKHLEB: ch=TILE_DNGN_ALTAR_MAKHLEB; break; + case DNGN_ALTAR_SIF_MUNA: ch=TILE_DNGN_ALTAR_SIF_MUNA; break; + case DNGN_ALTAR_TROG: ch=TILE_DNGN_ALTAR_TROG; break; + case DNGN_ALTAR_NEMELEX_XOBEH: ch=TILE_DNGN_ALTAR_NEMELEX_XOBEH; break; + case DNGN_ALTAR_ELYVILON: ch=TILE_DNGN_ALTAR_ELYVILON; break; + case DNGN_ALTAR_LUGONU: ch=TILE_DNGN_ALTAR_LUGONU; break; + case DNGN_ALTAR_BEOGH: ch=TILE_DNGN_ALTAR_BEOGH; break; + + case DNGN_BLUE_FOUNTAIN: ch=TILE_DNGN_BLUE_FOUNTAIN; break; + case DNGN_DRY_FOUNTAIN_I: + case DNGN_DRY_FOUNTAIN_II: + case DNGN_DRY_FOUNTAIN_III: + case DNGN_DRY_FOUNTAIN_IV: + case DNGN_DRY_FOUNTAIN_V: + case DNGN_DRY_FOUNTAIN_VI: + case DNGN_DRY_FOUNTAIN_VII: + case DNGN_DRY_FOUNTAIN_VIII: + case DNGN_PERMADRY_FOUNTAIN : + ch=TILE_DNGN_DRY_FOUNTAIN; break; + case DNGN_SPARKLING_FOUNTAIN: ch=TILE_DNGN_SPARKLING_FOUNTAIN; break; + } + + return ch; +} + +int tileidx_cloud(int type, int decay){ + int ch = TILE_ERROR; + int dur = decay/20; + if (dur>2) dur = 2; + + switch (type) + { + case CLOUD_FIRE: + ch = TILE_CLOUD_FIRE_0 + dur; + break; + + case CLOUD_COLD: + ch = TILE_CLOUD_COLD_0 + dur; + break; + + case CLOUD_STINK: + case CLOUD_POISON: + ch = TILE_CLOUD_POISON_0 + dur; + break; + + case CLOUD_BLUE_SMOKE: + ch = TILE_CLOUD_BLUE_SMOKE; + break; + + case CLOUD_PURP_SMOKE: + ch = TILE_CLOUD_PURP_SMOKE; + break; + + case CLOUD_MIASMA: + ch = TILE_CLOUD_MIASMA; + break; + + case CLOUD_BLACK_SMOKE: + ch = TILE_CLOUD_BLACK_SMOKE; + break; + + default: + ch = TILE_CLOUD_GREY_SMOKE; + break; + } + return (ch | TILE_FLAG_FLYING); +} + +/**********************************************************/ + +int tileidx_player(int job){ + + int ch = TILE_PLAYER; + + // Handle shapechange first + switch (you.symbol) + { + case 's': ch = TILE_MONS_WOLF_SPIDER;break; + case 'I': ch = TILE_MONS_ICE_BEAST;break; + case '8': ch = TILE_MONS_STONE_GOLEM;break; + case 'D': ch = TILE_MONS_DRAGON;break; + case 'L': ch = TILE_MONS_LICH;break; + case '#': ch = TILE_MONS_VAPOUR;break; + case 'S': ch = TILE_MONS_LAVA_SNAKE;break; + case 'b': ch = TILE_MONS_GIANT_BAT;break; + } + + if (player_is_airborne()) + ch |= TILE_FLAG_FLYING; + + if (you.attribute[ATTR_HELD]) + ch |= TILE_FLAG_NET; + + return ch; +} + + +int tileidx_unseen(int ch, const coord_def& gc) +{ + int res = TILE_ERROR; + ch &= 0xff; + if (ch<32) ch=32; + + if ( (ch>='@' && ch<='Z') || (ch>='a' && ch<='z') || ch=='&' + || (ch>='1' && ch<='5') || ch == ';') + return TILE_UNSEEN_MONSTER | tile_unseen_flag(gc); + + switch (ch) + { + //blank, walls, and floors first, since they are frequent + case ' ': res = TILE_DNGN_UNSEEN; break; + case 127: //old + case 176: + case 177: res = TILE_DNGN_ROCK_WALL_OFS; break; + + case 130: + case ',': + case '.': + case 249: + case 250: res = TILE_DNGN_FLOOR; break; + + // old; + case 137: res = TILE_DNGN_WAX_WALL; break; + case 138: res = TILE_DNGN_STONE_WALL; break; + case 139: res = TILE_DNGN_METAL_WALL; break; + case 140: res = TILE_DNGN_GREEN_CRYSTAL_WALL; break; + + // others + case '!': res = TILE_POTION_OFFSET + 13; break; + case '"': res = TILE_AMU_NORMAL_OFFSET + 2; break; + case '#': res = TILE_CLOUD_GREY_SMOKE; break; + case '$': res = TILE_GOLD; break; + case '%': res = TILE_FOOD_MEAT_RATION; break; + case 142: res = TILE_UNSEEN_CORPSE; break; + + case '\'': + case 134: res = TILE_DNGN_OPEN_DOOR; break; + case '(': + case ')': res = TILE_UNSEEN_WEAPON; break; + case '*': res = TILE_DNGN_ROCK_WALL_OFS ; break; + case '+': res = TILE_BOOK_PAPER_OFFSET + 15; break; + + case '/': res = TILE_WAND_OFFSET; break; + case '8': res = TILE_DNGN_SILVER_STATUE; break; + case '<': res = TILE_DNGN_STONE_STAIRS_UP; break; + case '=': res = TILE_RING_NORMAL_OFFSET + 1; break; + case '>': res = TILE_DNGN_STONE_STAIRS_DOWN; break; + case '?': res = TILE_SCROLL; break; + case '[': + case ']': res = TILE_UNSEEN_ARMOUR; break; + case '\\': res = TILE_STAFF_OFFSET; break; + case '^': res = TILE_DNGN_TRAP_MAGICAL; break; + case '_': + case 131: res = TILE_UNSEEN_ALTAR; break; + case '~': res = TILE_UNSEEN_ITEM; break; + case '{': + case 135: res = TILE_DNGN_DEEP_WATER; break; + case 133: res = TILE_DNGN_BLUE_FOUNTAIN; break; + case '}': res = TILE_MISC_CRYSTAL_BALL_OF_SEEING; break; + case 128: //old + case 254: res = TILE_DNGN_CLOSED_DOOR; break; + case 129: res = TILE_DNGN_RETURN; break; + case 132: res = TILE_UNSEEN_ENTRANCE; break; + case 136: res = TILE_DNGN_ENTER; break; + case 141: res = TILE_DNGN_LAVA; break; + } + //if(res == TILE_ERROR)printf("undefined mapchar %d [%c]\n",ch,ch); + return res | tile_unseen_flag(gc); +} + +int tileidx_bolt(const bolt &bolt) +{ + int col = bolt.colour; + return tileidx_zap(col); +} + +int tileidx_zap(int color) +{ + int col = color; + if (col > 8) col -= 8; + if (col < 1) col = 7; + return TILE_SYM_BOLT_OFS -1 + col; +} + +// Convert normal tile to 3D tile if it exists +// Plus modify wall tile index depending on +// 1: floor/wall flavor in 2D mode +// 2: connectivity in 3D mode +void finalize_tile(short unsigned int *tile, unsigned char wflag, + char wall_flv, char floor_flv, char special_flv) +{ + int orig = (*tile) & TILE_FLAG_MASK; + int flag = (*tile) & (~TILE_FLAG_MASK); + + // Hack: Swap rock/stone in crypt and tomb, because there are + // only stone walls. + if ((you.where_are_you == BRANCH_CRYPT || you.where_are_you == BRANCH_TOMB) + && orig == TILE_DNGN_STONE_WALL) + orig = TILE_DNGN_ROCK_WALL_OFS; + + // If there are special tiles for this level, then use them. + // Otherwise, we'll fall through to the next case and replace + // special tiles with normal floor. + if (orig == TILE_DNGN_FLOOR_SPECIAL && + get_num_floor_special_flavors() > 0) + { + (*tile) = get_floor_special_tile_idx() + special_flv; + ASSERT(special_flv >= 0 && + special_flv < get_num_floor_special_flavors()); + } + else if (orig == TILE_DNGN_FLOOR || orig == TILE_DNGN_FLOOR_SPECIAL) + { + (*tile) = get_floor_tile_idx() + floor_flv; + } + else if (orig == TILE_DNGN_ROCK_WALL_OFS) + { + (*tile) = get_wall_tile_idx() + wall_flv; + } + + (*tile) |= flag; +} + +void tilep_calc_flags(int parts[], int flag[]) +{ + int i; + + for(i=0;i= TILEP_HELM_HELM_OFS) + flag[TILEP_PART_HAIR]=TILEP_FLAG_HIDE; + + if (parts[TILEP_PART_HELM]-1 >= TILEP_HELM_FHELM_OFS) + flag[TILEP_PART_BEARD]=TILEP_FLAG_HIDE; + + if(parts[TILEP_PART_BASE]== TILEP_BASE_NAGA || + parts[TILEP_PART_BASE]== TILEP_BASE_NAGA+1) + { + flag[TILEP_PART_BOOTS]=flag[TILEP_PART_LEG]=TILEP_FLAG_HIDE; + flag[TILEP_PART_BODY] = TILEP_FLAG_CUT_NAGA; + } + + if(parts[TILEP_PART_BASE]== TILEP_BASE_CENTAUR || + parts[TILEP_PART_BASE]== TILEP_BASE_CENTAUR+1) + { + flag[TILEP_PART_BOOTS]=flag[TILEP_PART_LEG]=TILEP_FLAG_HIDE; + flag[TILEP_PART_BODY] = TILEP_FLAG_CUT_CENTAUR; + } + + if (parts[TILEP_PART_BASE] == TILEP_BASE_MERFOLK_WATER || + parts[TILEP_PART_BASE] == TILEP_BASE_MERFOLK_WATER +1) + { + flag[TILEP_PART_BOOTS] = TILEP_FLAG_HIDE; + flag[TILEP_PART_LEG] = TILEP_FLAG_HIDE; + flag[TILEP_PART_SHADOW] = TILEP_FLAG_HIDE; + } +} + +/* + * Set default parts of each race + * body + optional beard, hair, etc + */ + +int draconian_color(int race, int level) +{ + if (level < 0) // hack:monster + { + switch(race) + { + case MONS_DRACONIAN: return 0; + case MONS_BLACK_DRACONIAN: return 1; + case MONS_YELLOW_DRACONIAN: return 2; + case MONS_GREEN_DRACONIAN: return 4; + case MONS_MOTTLED_DRACONIAN:return 5; + case MONS_PALE_DRACONIAN: return 6; + case MONS_PURPLE_DRACONIAN: return 7; + case MONS_RED_DRACONIAN: return 8; + case MONS_WHITE_DRACONIAN: return 9; + } + } + if (level < 7) + return 0; + switch(race) + { + case SP_BLACK_DRACONIAN: return 1; + case SP_GOLDEN_DRACONIAN: return 2; + case SP_GREY_DRACONIAN: return 3; + case SP_GREEN_DRACONIAN: return 4; + case SP_MOTTLED_DRACONIAN: return 5; + case SP_PALE_DRACONIAN: return 6; + case SP_PURPLE_DRACONIAN: return 7; + case SP_RED_DRACONIAN: return 8; + case SP_WHITE_DRACONIAN: return 9; + } + return 0; +} + +void tilep_race_default(int race, int gender, int level, int *parts) +{ + int result; + int hair; + int beard=0; + + if(gender==TILEP_GENDER_MALE) + hair = TILEP_HAIR_SHORT_BLACK; + else + hair = TILEP_HAIR_LONG_BLACK; + + switch(race) + { + case SP_HUMAN: + result = TILEP_BASE_HUMAN; + break; + case SP_ELF: + case SP_HIGH_ELF: + case SP_GREY_ELF: + case SP_SLUDGE_ELF: + result = TILEP_BASE_ELF; + hair = TILEP_HAIR_ELF_YELLOW; + break; + case SP_DEEP_ELF: + result = TILEP_BASE_DEEP_ELF; + hair = TILEP_HAIR_ELF_WHITE; + break; + case SP_HILL_DWARF: + case SP_MOUNTAIN_DWARF: + result = TILEP_BASE_DWARF; + if(gender==TILEP_GENDER_MALE) + { + hair = TILEP_HAIR_SHORT_RED; + beard = TILEP_BEARD_LONG_RED; + } + else + { + hair = TILEP_HAIR_LONG_RED; + beard = TILEP_BEARD_SHORT_RED; + } + break; + case SP_HALFLING: + result = TILEP_BASE_HALFLING; + break; + case SP_HILL_ORC: + result = TILEP_BASE_ORC; + hair = 0; + break; + case SP_KOBOLD: + result = TILEP_BASE_KOBOLD; + hair = 0; + break; + case SP_MUMMY: + result = TILEP_BASE_MUMMY; + hair = 0; + break; + case SP_NAGA: + result = TILEP_BASE_NAGA; + break; + case SP_GNOME: + result = TILEP_BASE_GNOME; + break; + case SP_OGRE: + result = TILEP_BASE_OGRE; + break; + case SP_TROLL: + result = TILEP_BASE_TROLL; + hair = 0; + break; + case SP_OGRE_MAGE: + result = TILEP_BASE_OGRE_MAGE; + break; + + case SP_BASE_DRACONIAN: + case SP_RED_DRACONIAN: + case SP_WHITE_DRACONIAN: + case SP_GREEN_DRACONIAN: + case SP_GOLDEN_DRACONIAN: + case SP_GREY_DRACONIAN: + case SP_BLACK_DRACONIAN: + case SP_PURPLE_DRACONIAN: + case SP_MOTTLED_DRACONIAN: + case SP_PALE_DRACONIAN: + hair = 0; + if (you.mutation[MUT_BIG_WINGS]) + { + parts[TILEP_PART_DRCWING] = 1 + draconian_color(race, level); + } + result = TILEP_BASE_DRACONIAN + draconian_color(race, level)*2; + break; + + case SP_CENTAUR: + result = TILEP_BASE_CENTAUR; + break; + case SP_DEMIGOD: + result = TILEP_BASE_DEMIGOD; + break; + case SP_SPRIGGAN: + result = TILEP_BASE_SPRIGGAN; + break; + case SP_MINOTAUR: + result = TILEP_BASE_MINOTAUR; + hair = 0; + break; + case SP_DEMONSPAWN: + result = TILEP_BASE_DEMONSPAWN; + hair = 0; + break; + case SP_GHOUL: + result = TILEP_BASE_GHOUL; + hair = 0; + break; + case SP_KENKU: + result = TILEP_BASE_KENKU; + break; + case SP_MERFOLK: + result = player_in_water() ? + TILEP_BASE_MERFOLK_WATER : + TILEP_BASE_MERFOLK; + break; + case SP_VAMPIRE: + result = TILEP_BASE_VAMPIRE; + break; + default: + result = TILEP_BASE_HUMAN; + break; + } + + if(gender==TILEP_GENDER_MALE) result++; + parts[TILEP_PART_BASE]=result; + parts[TILEP_PART_HAIR]=hair; + parts[TILEP_PART_BEARD]=beard; + parts[TILEP_PART_SHADOW]= 1; +} + +void tilep_job_default(int job, int gender, int *parts) +{ + parts[TILEP_PART_CLOAK]= 0; + parts[TILEP_PART_BOOTS]= 0; + parts[TILEP_PART_LEG]= 0; + parts[TILEP_PART_BODY]= 0; + parts[TILEP_PART_ARM]= 0; + parts[TILEP_PART_HAND1]=0; + parts[TILEP_PART_HAND2]= 0; + parts[TILEP_PART_HELM]= 0; + + + switch(job) + { + case JOB_FIGHTER: + parts[TILEP_PART_BODY]=TILEP_SHOW_EQUIP; + parts[TILEP_PART_LEG]=TILEP_LEG_METAL_SILVER; + parts[TILEP_PART_HAND2]=TILEP_SHOW_EQUIP; + parts[TILEP_PART_HAND1]=TILEP_SHOW_EQUIP; + break; + + case JOB_CRUSADER: + parts[TILEP_PART_BODY]=TILEP_BODY_SHIRT_WHITE3; + parts[TILEP_PART_LEG]=TILEP_LEG_SKIRT_OFS; + parts[TILEP_PART_HELM]=TILEP_HELM_HELM_OFS; + parts[TILEP_PART_ARM]=TILEP_ARM_GLOVE_GRAY; + parts[TILEP_PART_BOOTS]=TILEP_BOOTS_MIDDLE_GRAY; + parts[TILEP_PART_CLOAK]=TILEP_CLOAK_BLUE; + parts[TILEP_PART_HAND1]=TILEP_SHOW_EQUIP; + parts[TILEP_PART_HAND2]=TILEP_SHOW_EQUIP; + break; + + case JOB_PALADIN: + parts[TILEP_PART_BODY]=TILEP_BODY_ROBE_WHITE; + parts[TILEP_PART_LEG]=TILEP_LEG_PANTS_BROWN; + parts[TILEP_PART_HELM]=TILEP_HELM_HELM_OFS; + parts[TILEP_PART_ARM]=TILEP_ARM_GLOVE_GRAY; + parts[TILEP_PART_BOOTS]=TILEP_BOOTS_MIDDLE_GRAY; + parts[TILEP_PART_CLOAK]=TILEP_CLOAK_BLUE; + parts[TILEP_PART_HAND2]=TILEP_SHOW_EQUIP; + parts[TILEP_PART_HAND1]=TILEP_SHOW_EQUIP; + break; + + case JOB_DEATH_KNIGHT: + parts[TILEP_PART_BODY]=TILEP_BODY_SHIRT_BLACK3; + parts[TILEP_PART_LEG]=TILEP_LEG_METAL_GRAY; + parts[TILEP_PART_HELM]=TILEP_HELM_FHELM_OFS; + parts[TILEP_PART_ARM]=TILEP_ARM_GLOVE_BLACK; + parts[TILEP_PART_CLOAK]=TILEP_CLOAK_YELLOW; + parts[TILEP_PART_HAND1]=TILEP_SHOW_EQUIP; + parts[TILEP_PART_HAND2]=TILEP_HAND2_BOOK_BLACK; + break; + + case JOB_CHAOS_KNIGHT: + parts[TILEP_PART_BODY]=TILEP_BODY_BELT1; + parts[TILEP_PART_LEG]=TILEP_LEG_METAL_GRAY; + parts[TILEP_PART_HELM]=TILEP_HELM_FHELM_PLUME; + parts[TILEP_PART_BOOTS]=TILEP_BOOTS_SHORT_BROWN; + parts[TILEP_PART_HAND1]=TILEP_SHOW_EQUIP; + parts[TILEP_PART_HAND2]=TILEP_SHOW_EQUIP; + break; + + case JOB_BERSERKER: + parts[TILEP_PART_BODY]=TILEP_BODY_ANIMAL_SKIN; + parts[TILEP_PART_LEG]=TILEP_LEG_BELT_REDBROWN; + parts[TILEP_PART_HAND1]=TILEP_SHOW_EQUIP; + parts[TILEP_PART_HAND2]=TILEP_SHOW_EQUIP; + break; + + case JOB_REAVER: + parts[TILEP_PART_BODY]=TILEP_BODY_ROBE_BLACK_GOLD; + parts[TILEP_PART_LEG]=TILEP_LEG_PANTS_BROWN; + parts[TILEP_PART_HAND2]=TILEP_HAND2_BOOK_RED_DIM; + parts[TILEP_PART_HAND1]=TILEP_SHOW_EQUIP; + parts[TILEP_PART_BOOTS] = TILEP_BOOTS_SHORT_BROWN; + break; + + case JOB_THIEF: + parts[TILEP_PART_HELM] = TILEP_HELM_HOOD_YBROWN; + parts[TILEP_PART_BODY]=TILEP_BODY_LEATHER_JACKET; + parts[TILEP_PART_LEG]=TILEP_LEG_PANTS_SHORT_GRAY; + parts[TILEP_PART_HAND1]= TILEP_HAND1_SWORD_THIEF; + parts[TILEP_PART_ARM]=TILEP_ARM_GLOVE_WRIST_PURPLE; + parts[TILEP_PART_CLOAK]=TILEP_CLOAK_LBROWN; + parts[TILEP_PART_BOOTS] = TILEP_BOOTS_MIDDLE_BROWN2; + break; + + case JOB_STALKER: + parts[TILEP_PART_HELM] = TILEP_HELM_HOOD_GREEN; + parts[TILEP_PART_BODY]=TILEP_BODY_LEATHER_JACKET; + parts[TILEP_PART_LEG]=TILEP_LEG_PANTS_SHORT_GRAY; + parts[TILEP_PART_HAND1]= TILEP_HAND1_SWORD_THIEF; + parts[TILEP_PART_HAND2]= TILEP_HAND2_BOOK_GREEN_DIM; + parts[TILEP_PART_ARM]=TILEP_ARM_GLOVE_WRIST_PURPLE; + parts[TILEP_PART_CLOAK]=TILEP_CLOAK_GREEN; + parts[TILEP_PART_BOOTS] = TILEP_BOOTS_MIDDLE_BROWN2; + break; + + case JOB_ASSASSIN: + parts[TILEP_PART_HELM] = TILEP_HELM_MASK_NINJA_BLACK; + parts[TILEP_PART_BODY]=TILEP_BODY_SHIRT_BLACK3; + parts[TILEP_PART_LEG]=TILEP_LEG_PANTS_BLACK; + parts[TILEP_PART_HAND1]= TILEP_HAND1_SWORD_THIEF; + parts[TILEP_PART_ARM]=TILEP_ARM_GLOVE_BLACK; + parts[TILEP_PART_CLOAK]=TILEP_CLOAK_BLACK; + parts[TILEP_PART_BOOTS] = TILEP_BOOTS_SHORT_BROWN2; + break; + + + case JOB_WIZARD: + parts[TILEP_PART_BODY]= TILEP_BODY_GANDALF_G; + parts[TILEP_PART_HAND1]= TILEP_HAND1_GANDALF; + parts[TILEP_PART_HAND2]= TILEP_HAND2_BOOK_CYAN_DIM; + parts[TILEP_PART_BOOTS] = TILEP_BOOTS_SHORT_BROWN; + parts[TILEP_PART_HELM] = TILEP_HELM_GANDALF; + break; + + case JOB_PRIEST: + parts[TILEP_PART_BODY]= TILEP_BODY_ROBE_WHITE; + parts[TILEP_PART_ARM] = TILEP_ARM_GLOVE_WHITE; + parts[TILEP_PART_HAND1]=TILEP_SHOW_EQUIP; + parts[TILEP_PART_BOOTS] = TILEP_BOOTS_SHORT_BROWN; + break; + + case JOB_HEALER: + parts[TILEP_PART_BODY]= TILEP_BODY_ROBE_WHITE; + parts[TILEP_PART_ARM] = TILEP_ARM_GLOVE_WHITE; + parts[TILEP_PART_HAND1]= 38; + parts[TILEP_PART_BOOTS] = TILEP_BOOTS_SHORT_BROWN; + parts[TILEP_PART_HELM] = TILEP_HELM_FHELM_HEALER; + break; + + case JOB_NECROMANCER: + parts[TILEP_PART_BODY]= TILEP_BODY_ROBE_BLACK; + parts[TILEP_PART_HAND1]= TILEP_HAND1_STAFF_SKULL; + parts[TILEP_PART_HAND2]= TILEP_HAND2_BOOK_BLACK; + parts[TILEP_PART_BOOTS] = TILEP_BOOTS_SHORT_BROWN; + break; + + case JOB_FIRE_ELEMENTALIST: + parts[TILEP_PART_BODY]= TILEP_BODY_ROBE_RED; + parts[TILEP_PART_HAND1]= TILEP_HAND1_GANDALF; + parts[TILEP_PART_HAND2]= TILEP_HAND2_BOOK_RED_DIM; + parts[TILEP_PART_BOOTS] = TILEP_BOOTS_SHORT_BROWN; + break; + + case JOB_ICE_ELEMENTALIST: + parts[TILEP_PART_BODY]= TILEP_BODY_ROBE_BLUE; + parts[TILEP_PART_HAND1]= TILEP_HAND1_GANDALF; + parts[TILEP_PART_HAND2]= TILEP_HAND2_BOOK_BLUE_DIM; + parts[TILEP_PART_BOOTS] = TILEP_BOOTS_SHORT_BROWN; + break; + + case JOB_AIR_ELEMENTALIST: + parts[TILEP_PART_BODY]= TILEP_BODY_ROBE_CYAN; + parts[TILEP_PART_HAND1]= TILEP_HAND1_GANDALF; + parts[TILEP_PART_HAND2]= TILEP_HAND2_BOOK_CYAN_DIM; + parts[TILEP_PART_BOOTS] = TILEP_BOOTS_SHORT_BROWN; + break; + + case JOB_EARTH_ELEMENTALIST: + parts[TILEP_PART_BODY]= TILEP_BODY_ROBE_YELLOW; + parts[TILEP_PART_HAND1]= TILEP_HAND1_GANDALF; + parts[TILEP_PART_HAND2]= TILEP_HAND2_BOOK_YELLOW_DIM; + parts[TILEP_PART_BOOTS] = TILEP_BOOTS_SHORT_BROWN; + break; + + case JOB_VENOM_MAGE: + parts[TILEP_PART_BODY]= TILEP_BODY_ROBE_GREEN; + parts[TILEP_PART_HAND1]= TILEP_HAND1_GANDALF; + parts[TILEP_PART_HAND2]= TILEP_HAND2_BOOK_GREEN_DIM; + parts[TILEP_PART_BOOTS] = TILEP_BOOTS_SHORT_BROWN; + break; + + case JOB_TRANSMUTER: + parts[TILEP_PART_BODY]= TILEP_BODY_ROBE_RAINBOW; + parts[TILEP_PART_HAND1]= TILEP_HAND1_STAFF_MAGE; + parts[TILEP_PART_HAND2]= TILEP_HAND2_BOOK_MAGENTA_DIM; + parts[TILEP_PART_BOOTS] = TILEP_BOOTS_SHORT_BROWN; + break; + + case JOB_CONJURER: + parts[TILEP_PART_BODY]= TILEP_BODY_ROBE_MAGENTA; + parts[TILEP_PART_HELM] = TILEP_HELM_GANDALF; + parts[TILEP_PART_HAND1]= TILEP_HAND1_STAFF_MAGE; + parts[TILEP_PART_HAND2]= TILEP_HAND2_BOOK_RED_DIM; + parts[TILEP_PART_BOOTS] = TILEP_BOOTS_SHORT_BROWN; + break; + + case JOB_ENCHANTER: + parts[TILEP_PART_BODY]= TILEP_BODY_ROBE_YELLOW; + parts[TILEP_PART_HELM] = TILEP_HELM_GANDALF; + parts[TILEP_PART_HAND1]= TILEP_HAND1_STAFF_MAGE; + parts[TILEP_PART_HAND2]= TILEP_HAND2_BOOK_BLUE_DIM; + parts[TILEP_PART_BOOTS] = TILEP_BOOTS_SHORT_BROWN; + break; + + case JOB_SUMMONER: + parts[TILEP_PART_BODY]= TILEP_BODY_ROBE_BROWN; + parts[TILEP_PART_HELM] = TILEP_HELM_GANDALF; + parts[TILEP_PART_HAND1]= TILEP_HAND1_STAFF_MAGE; + parts[TILEP_PART_HAND2]= TILEP_HAND2_BOOK_YELLOW_DIM; + parts[TILEP_PART_BOOTS] = TILEP_BOOTS_SHORT_BROWN; + break; + + case JOB_WARPER: + parts[TILEP_PART_BODY]= TILEP_BODY_ROBE_BROWN; + parts[TILEP_PART_HELM] = TILEP_HELM_GANDALF; + parts[TILEP_PART_HAND1]= 42; + parts[TILEP_PART_HAND2]= TILEP_HAND2_BOOK_WHITE; + parts[TILEP_PART_BOOTS] = TILEP_BOOTS_SHORT_BROWN; + parts[TILEP_PART_CLOAK]=TILEP_CLOAK_RED; + break; + + case JOB_HUNTER: + parts[TILEP_PART_BODY]=TILEP_BODY_LEATHER_ARMOUR2; + parts[TILEP_PART_LEG]=TILEP_LEG_PANTS_BROWN; + parts[TILEP_PART_HAND1]=TILEP_HAND1_BOW; + parts[TILEP_PART_ARM] = 7; + parts[TILEP_PART_BOOTS]= TILEP_BOOTS_MIDDLE_BROWN; + break; + + case JOB_GLADIATOR: + parts[TILEP_PART_HAND1]=TILEP_SHOW_EQUIP; + parts[TILEP_PART_HAND2]= 10; + + if(gender==TILEP_GENDER_MALE) + { + parts[TILEP_PART_BODY]= TILEP_BODY_BELT1; + parts[TILEP_PART_LEG]= TILEP_LEG_BELT_GRAY; + parts[TILEP_PART_BOOTS] = TILEP_BOOTS_MIDDLE_GRAY; + } + else + { + parts[TILEP_PART_BODY]= TILEP_BODY_BIKINI_RED; + parts[TILEP_PART_LEG]= TILEP_LEG_BIKINI_RED; + parts[TILEP_PART_BOOTS] = TILEP_BOOTS_LONG_RED; + } + break; + + case JOB_MONK: + parts[TILEP_PART_BODY]= TILEP_BODY_MONK_BLACK; + parts[TILEP_PART_HAND1]=TILEP_SHOW_EQUIP; + parts[TILEP_PART_HAND2]=TILEP_SHOW_EQUIP; + break; + + case JOB_WANDERER: + parts[TILEP_PART_BODY]= TILEP_BODY_SHIRT_HAWAII; + parts[TILEP_PART_LEG]= TILEP_LEG_PANTS_SHORT_BROWN; + parts[TILEP_PART_HAND1]=TILEP_SHOW_EQUIP; + parts[TILEP_PART_HAND2]=TILEP_SHOW_EQUIP; + parts[TILEP_PART_BOOTS] = 11; + break; + + + + } +} + +/* + * Patrs index to string + */ +void tilep_part_to_str(int number, char *buf) +{ + //special + if (number == TILEP_SHOW_EQUIP) + { + buf[0] = buf[1] = buf[2] ='*'; + } + else + { + //normal 2 digits + buf[0] = '0' + (number/100) % 10; + buf[1] = '0' + (number/ 10) % 10; + buf[2] = '0' + number % 10; + } + buf[3] ='\0'; +} + +/* + * Parts string to index + */ +int tilep_str_to_part(char *str) +{ + //special + if (str[0]=='*') return TILEP_SHOW_EQUIP; + //normal 2 digits + return atoi(str); +} + +const int parts_saved[] ={ + TILEP_PART_SHADOW, + TILEP_PART_BASE, + TILEP_PART_CLOAK, + TILEP_PART_BOOTS, + TILEP_PART_LEG, + TILEP_PART_BODY, + TILEP_PART_ARM, + TILEP_PART_HAND1, + TILEP_PART_HAND2, + TILEP_PART_HAIR, + TILEP_PART_BEARD, + TILEP_PART_HELM, + -1 +}; + +/* + * scan input line from dolls.txt + */ +void tilep_scan_parts(char *fbuf, int *parts) +{ + char ibuf[8]; + + int gcount = 0; + int ccount = 0; + for(int i = 0; parts_saved[i] != -1; i++) + { + int idx; + ccount = 0; + int p = parts_saved[i]; + + while ( (fbuf[gcount] != ':') && (fbuf[gcount] != '\n') + && (ccount<4) && (gcount<48) ) + { + ibuf[ccount] = fbuf[gcount]; + ccount ++; + gcount ++; + } + + ibuf[ccount] = '\0'; + gcount ++; + + idx = tilep_str_to_part(ibuf); + if (p == TILEP_PART_BASE) + { + int p0 = (parts[p]-1) & (0xfe); + if (((1-idx) & 1) == 1) p0++; + parts[p] = p0 + 1; + } + else if (idx == TILEP_SHOW_EQUIP) + parts[p] = TILEP_SHOW_EQUIP; + else if (idx < 0) // no negative value + parts[p] = 0; + else if (idx > tilep_parts_total[p]) // bound it + parts[p] = tilep_parts_total[p]; + else + parts[p] = idx; + } +} + +/* + * format-print parts + */ +void tilep_print_parts(char *fbuf, int *parts) +{ + int i; + char *ptr = fbuf; + for(i = 0; parts_saved[i] != -1; i++) + { + int p = parts_saved[i]; + if (p == TILEP_PART_BASE) // 0:female 1:male + { + sprintf(ptr, "%03d", parts[p]%2); + ptr += 3; + } + else + { + tilep_part_to_str(parts[p], ptr); + ptr += 3; + } + *ptr = ':'; + ptr++; + } + ptr--; // erase the last ':' + *ptr = 0; +} + +/* + * return equip-dependent parts index + */ +int tilep_equ_weapon(const item_def &item) +{ + if (item.base_type == OBJ_STAVES) return TILEP_HAND1_STAFF_MAGE; + + if (item.base_type ==OBJ_MISCELLANY) + { + switch(item.sub_type) + { + case MISC_BOTTLED_EFREET: return TILEP_HAND1_BOTTLE; + case MISC_AIR_ELEMENTAL_FAN: return TILEP_HAND1_FAN; + case MISC_STONE_OF_EARTH_ELEMENTALS: return TILEP_HAND1_STONE; + case MISC_DISC_OF_STORMS: return TILEP_HAND1_DISC; + + case MISC_CRYSTAL_BALL_OF_SEEING: + case MISC_CRYSTAL_BALL_OF_ENERGY: + case MISC_CRYSTAL_BALL_OF_FIXATION: return TILEP_HAND1_CRYSTAL; + + case MISC_LAMP_OF_FIRE: return TILEP_HAND1_LANTERN; + case MISC_LANTERN_OF_SHADOWS: return TILEP_HAND1_BONE_LANTERN; + case MISC_HORN_OF_GERYON: return TILEP_HAND1_HORN; + + case MISC_BOX_OF_BEASTS: + case MISC_EMPTY_EBONY_CASKET: return TILEP_HAND1_BOX; + + case MISC_DECK_OF_ESCAPE: + case MISC_DECK_OF_DESTRUCTION: + case MISC_DECK_OF_DUNGEONS: + case MISC_DECK_OF_SUMMONING: + case MISC_DECK_OF_WONDERS: + case MISC_DECK_OF_PUNISHMENT: + case MISC_DECK_OF_WAR: + case MISC_DECK_OF_CHANGES: + case MISC_DECK_OF_DEFENSE: return TILEP_HAND1_DECK; + } + } + + if (item.base_type != OBJ_WEAPONS) return 0; + + if (is_fixed_artefact( item )) + { + switch(item.special) + { + case SPWPN_SINGING_SWORD: return TILEP_HAND1_SINGING_SWORD; + case SPWPN_WRATH_OF_TROG: return TILEP_HAND1_AXE_TROG; + case SPWPN_SCYTHE_OF_CURSES: return TILEP_HAND1_FINISHER; + case SPWPN_MACE_OF_VARIABILITY: return TILEP_HAND1_MACE_OF_VARIABILITY; + case SPWPN_GLAIVE_OF_PRUNE: return TILEP_HAND1_GLAIVE_OF_PRUNE; + case SPWPN_SCEPTRE_OF_TORMENT: return TILEP_HAND1_MACE_RUBY; + case SPWPN_SWORD_OF_ZONGULDROK: return TILEP_HAND1_ZONGULDROK; + case SPWPN_SWORD_OF_CEREBOV: return TILEP_HAND1_SWORD_TWIST; + case SPWPN_STAFF_OF_DISPATER: return TILEP_HAND1_DISPATER; + case SPWPN_SCEPTRE_OF_ASMODEUS: return TILEP_HAND1_ASMODEUS; + case SPWPN_SWORD_OF_POWER: break; + case SPWPN_KNIFE_OF_ACCURACY: break; + case SPWPN_STAFF_OF_OLGREB: return TILEP_HAND1_OLGREB; + case SPWPN_VAMPIRES_TOOTH: break; + case SPWPN_STAFF_OF_WUCAD_MU: break; + } + } + + if (is_unrandom_artefact( item )) + { + int x = find_unrandart_index(item); + switch(x+1) + { + // Bloodbane + case 2: return TILEP_HAND1_BLOODBANE; + // Flaming Death + case 4: return TILEP_HAND1_FLAMING_DEATH; + //mace of Brilliance + case 8: return TILEP_HAND1_MACE_OF_VARIABILITY; + //demon blade Leech + case 12: return TILEP_HAND1_LEECH; + //dagger of Chilly Death + case 15: return TILEP_HAND1_CHILLY_DEATH; + //dagger \"Morg\" + case 17: return TILEP_HAND1_MORG; + //scythe \"Finisher + case 18: return TILEP_HAND1_FINISHER; + //sling \"Punk + case 19: return TILEP_HAND1_PUNK; + //bow of Krishna + case 20: return TILEP_HAND1_KRISHNA; + //giant club \"Skullcrusher + case 22: break; + //glaive of the Guard + case 24: break; + //sword of Jihad + case 25: return TILEP_HAND1_JIHAD; + //crossbow \"Fiery Devil + case 28: return TILEP_HAND1_FIERY_DEVIL; + //sword of Doom Knight + case 31: return TILEP_HAND1_DOOM_KNIGHT; + //Eos + case 35: break; + //spear of Voo-Doo + case 39: return TILEP_HAND1_VOODOO; + //trident of the Octopus king + case 40: break; + //mithril axe \"Arga + case 42: return TILEP_HAND1_ARGA; + //Elemental Staff + case 43: return TILEP_HAND1_ELEMENTAL_STAFF; + //hand crossbow \"Sniper + case 44: return TILEP_HAND1_SNIPER; + //bow \"Erchidel + case 45: return TILEP_HAND1_GREAT_BOW; + //plutonium sword + case 47: return TILEP_HAND1_PLUTONIUM_SWORD; + //mace \"Undeadhunter + case 48: return TILEP_HAND1_LARGE_MACE; + } + } + + switch (item.sub_type) + { + // Blunt + case WPN_CLUB: return TILEP_HAND1_CLUB_SLANT; + case WPN_MACE: return TILEP_HAND1_MACE; + case WPN_GREAT_MACE: return TILEP_HAND1_GREAT_MACE; + case WPN_FLAIL: return TILEP_HAND1_FRAIL; + case WPN_SPIKED_FLAIL: return TILEP_HAND1_SPIKED_FRAIL; + case WPN_DIRE_FLAIL: return TILEP_HAND1_GREAT_FRAIL; + case WPN_MORNINGSTAR: return TILEP_HAND1_MORNINGSTAR; + case WPN_EVENINGSTAR: return TILEP_HAND1_EVENINGSTAR; + case WPN_GIANT_CLUB: return TILEP_HAND1_GIANT_CLUB_SLANT; + case WPN_GIANT_SPIKED_CLUB: return TILEP_HAND1_GIANT_CLUB_SPIKE_SLANT; + case WPN_ANCUS: return TILEP_HAND1_MACE; + case WPN_WHIP: return TILEP_HAND1_WHIP; + case WPN_DEMON_WHIP: return TILEP_HAND1_BLACK_WHIP; + + // Edge + case WPN_KNIFE: return TILEP_HAND1_DAGGER_SLANT; + case WPN_DAGGER: return TILEP_HAND1_DAGGER_SLANT; + case WPN_SHORT_SWORD: return TILEP_HAND1_SHORT_SWORD_SLANT; + case WPN_LONG_SWORD: return TILEP_HAND1_LONG_SWORD_SLANT; + case WPN_GREAT_SWORD: return TILEP_HAND1_GREAT_SWORD_SLANT; + case WPN_SCIMITAR: return TILEP_HAND1_SCIMITAR; + case WPN_FALCHION: return TILEP_HAND1_FALCHION; + case WPN_SABRE: return TILEP_HAND1_SABRE; + case WPN_DEMON_BLADE: return TILEP_HAND1_SWORD_BLACK; + case WPN_QUICK_BLADE: return TILEP_HAND1_DAGGER; + case WPN_KATANA: return TILEP_HAND1_KATANA_SLANT; + case WPN_DOUBLE_SWORD: return TILEP_HAND1_DOUBLE_SWORD; + case WPN_TRIPLE_SWORD: return TILEP_HAND1_TRIPLE_SWORD; + case WPN_BLESSED_BLADE: return TILEP_HAND1_BLESSED_BLADE; + + // Axe + case WPN_HAND_AXE: return TILEP_HAND1_HAND_AXE; + case WPN_BATTLEAXE: return TILEP_HAND1_BATTLEAXE; + case WPN_BROAD_AXE: return TILEP_HAND1_BROAD_AXE; + case WPN_WAR_AXE: return TILEP_HAND1_WAR_AXE; + case WPN_EXECUTIONERS_AXE: return TILEP_HAND1_EXECUTIONERS_AXE; + case WPN_BARDICHE: return TILEP_HAND1_GLAIVE3; + + //Pole + case WPN_SPEAR: return TILEP_HAND1_SPEAR; + case WPN_HALBERD: return TILEP_HAND1_HALBERD; + case WPN_GLAIVE: return TILEP_HAND1_GLAIVE; + case WPN_QUARTERSTAFF: return TILEP_HAND1_QUARTERSTAFF1; + case WPN_SCYTHE: return TILEP_HAND1_SCYTHE; + case WPN_HAMMER: return TILEP_HAND1_HAMMER; + case WPN_DEMON_TRIDENT: return TILEP_HAND1_DEMON_TRIDENT; + case WPN_TRIDENT: return TILEP_HAND1_TRIDENT2; + case WPN_LAJATANG: return TILEP_HAND1_D_GLAIVE; + + //Ranged + 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; + default: return 0; + } +} + +int tilep_equ_armour(const item_def &item) +{ + if (item.base_type !=OBJ_ARMOUR) return 0; + + if (is_unrandom_artefact( item )) + { + int x = find_unrandart_index(item); + switch(x+1) + { + // Holy Armour of Zin + case 6: return TILEP_BODY_ARMOR_MUMMY; + // robe of Augmentation + case 7: return TILEP_BODY_ROBE_RED2; + // robe of Misfortune + case 14: return TILEP_BODY_ARWEN; + // Lear's chain mail + case 26: return TILEP_BODY_LEARS_CHAIN_MAIL; + // skin of Zhor + case 27: return TILEP_BODY_ZHOR; break; + // salamander hide armour + case 29: return TILEP_BODY_LEATHER_RED; + // robe of Folly + case 33: return TILEP_BODY_ROBE_BLACK; + // Edison's patent armour + case 38: return TILEP_BODY_EDISON; + // robe of Night + case 46: return TILEP_BODY_ROBE_OF_NIGHT; + // armour of the Dragon King + case 49: break; + } + } + + switch (item.sub_type) + { + + case ARM_ROBE: + switch(item.colour) + { + // We've got a zillion robes; let's use 'em! + case BLACK: return TILEP_BODY_ROBE_BLACK_RED; + case BLUE: return TILEP_BODY_ROBE_BLUE; + case LIGHTBLUE: return TILEP_BODY_ROBE_BLUE_WHITE; + case GREEN: return TILEP_BODY_ROBE_GREEN; + case LIGHTGREEN: return TILEP_BODY_ROBE_BLUE_GREEN; + case CYAN: return TILEP_BODY_ROBE_WHITE_GREEN; + case LIGHTCYAN: return TILEP_BODY_ROBE_CYAN; + case RED: return TILEP_BODY_ROBE_RED; + case LIGHTRED: return TILEP_BODY_ROBE_RED_GOLD; + case MAGENTA: return TILEP_BODY_ROBE_MAGENTA; + case LIGHTMAGENTA:return TILEP_BODY_ROBE_RED3; + case BROWN: return TILEP_BODY_ROBE_BROWN; + case YELLOW: return TILEP_BODY_ROBE_YELLOW; + case LIGHTGREY: return TILEP_BODY_ROBE_GRAY2; + case DARKGREY: return TILEP_BODY_GANDALF_G; + case WHITE: return TILEP_BODY_ROBE_WHITE; + default: return 0; + } + + case ARM_LEATHER_ARMOUR: return TILEP_BODY_LEATHER_ARMOUR3; + case ARM_RING_MAIL: return TILEP_BODY_RINGMAIL; + case ARM_CHAIN_MAIL: return TILEP_BODY_CHAINMAIL; + case ARM_SCALE_MAIL: return TILEP_BODY_SCALEMAIL; + case ARM_SPLINT_MAIL: return TILEP_BODY_BANDED; + case ARM_BANDED_MAIL: return TILEP_BODY_BANDED; + case ARM_PLATE_MAIL: return TILEP_BODY_PLATE_BLACK; + case ARM_CRYSTAL_PLATE_MAIL: return TILEP_BODY_CRYSTAL_PLATE; + + case ARM_DRAGON_HIDE: return TILEP_BODY_DRAGONSC_GREEN; + case ARM_ICE_DRAGON_HIDE: return TILEP_BODY_DRAGONSC_CYAN; + case ARM_STEAM_DRAGON_HIDE: return TILEP_BODY_DRAGONSC_WHITE; + case ARM_MOTTLED_DRAGON_HIDE: return TILEP_BODY_DRAGONSC_MAGENTA; + case ARM_STORM_DRAGON_HIDE: return TILEP_BODY_DRAGONSC_BLUE; + case ARM_GOLD_DRAGON_HIDE: return TILEP_BODY_DRAGONSC_GOLD; + case ARM_SWAMP_DRAGON_HIDE: return TILEP_BODY_DRAGONSC_BROWN; + + case ARM_DRAGON_ARMOUR: return TILEP_BODY_DRAGONARM_GREEN; + case ARM_ICE_DRAGON_ARMOUR: return TILEP_BODY_DRAGONARM_CYAN; + case ARM_STEAM_DRAGON_ARMOUR: return TILEP_BODY_DRAGONARM_WHITE; + case ARM_MOTTLED_DRAGON_ARMOUR: return TILEP_BODY_DRAGONARM_MAGENTA; + case ARM_STORM_DRAGON_ARMOUR: return TILEP_BODY_DRAGONARM_BLUE; + case ARM_GOLD_DRAGON_ARMOUR: return TILEP_BODY_DRAGONARM_GOLD; + case ARM_SWAMP_DRAGON_ARMOUR: return TILEP_BODY_DRAGONARM_BROWN; + + case ARM_ANIMAL_SKIN: return TILEP_BODY_ANIMAL_SKIN; + case ARM_TROLL_HIDE: + case ARM_TROLL_LEATHER_ARMOUR: return TILEP_BODY_TROLL_HIDE; + + default: return 0; + } +} + +int tilep_equ_shield(const item_def &item) +{ + if (you.equip[EQ_SHIELD] == -1) return 0; + if (item.base_type !=OBJ_ARMOUR) return 0; + + if (is_unrandom_artefact( item )) + { + int x = find_unrandart_index(item); + switch(x+1) + { + // shield of Ignorance + case 5: return TILEP_HAND2_SHIELD_SHAMAN; + // Bullseye + case 10: return TILEP_HAND2_BULLSEYE; + // shield of Resistance + case 32: return TILEP_HAND2_SHIELD_OF_RESISTANCE; + } + } + + switch (item.sub_type) + { + case ARM_SHIELD: return TILEP_HAND2_SHIELD_KNIGHT_BLUE; + case ARM_BUCKLER: return TILEP_HAND2_SHIELD_ROUND_SMALL; + case ARM_LARGE_SHIELD: return TILEP_HAND2_SHIELD_LONG_RED; + default: return 0; + } +} + +int tilep_equ_cloak(const item_def &item) +{ + if (you.equip[EQ_CLOAK] == -1) return 0; + if (item.base_type !=OBJ_ARMOUR) return 0; + if (item.sub_type != ARM_CLOAK) return 0; + switch (item.colour) + { + case BLACK: + case BLUE: + case LIGHTBLUE: return TILEP_CLOAK_BLUE; + case GREEN: + case LIGHTGREEN: return TILEP_CLOAK_GREEN; + case CYAN: + case LIGHTCYAN: return TILEP_CLOAK_CYAN; + case RED: + case LIGHTRED: return TILEP_CLOAK_RED; + case MAGENTA: + case LIGHTMAGENTA:return TILEP_CLOAK_MAGENTA; + case BROWN: return TILEP_CLOAK_LBROWN; + case YELLOW: return TILEP_CLOAK_YELLOW; + case LIGHTGREY: return TILEP_CLOAK_GRAY; + case DARKGREY: return TILEP_CLOAK_BLACK; + case WHITE: return TILEP_CLOAK_WHITE; + default: return 0; + } +} + +int tilep_equ_helm(const item_def &item) +{ + if (you.equip[EQ_HELMET] == -1) + return 0; + if (item.base_type != OBJ_ARMOUR) + return 0; + + if (is_unrandom_artefact(item)) + { + int idx = find_unrandart_index(item); + switch (idx + 1) + { + case 11: + // crown of Dyrovepreva + return TILEP_HELM_DYROVEPREVA; + case 41: + // mask of the Dragon + return TILEP_HELM_ART_DRAGONHELM; + case 50: + // hat of the Alchemist + return TILEP_HELM_TURBAN_PURPLE; + } + + // Although there shouldn't be any, just in case + // unhandled artefacts fall through to defaults... + } + + int etype = get_etype(item); + int helmet_desc = get_helmet_desc(item); + switch (item.sub_type) + { + case ARM_CAP: + switch (item.colour) + { + case BLACK: + case BLUE: + case LIGHTBLUE: + return TILEP_HELM_FEATHER_BLUE; + case GREEN: + case LIGHTGREEN: + case CYAN: + case LIGHTCYAN: + return TILEP_HELM_FEATHER_GREEN; + case RED: + case LIGHTRED: + case MAGENTA: + case LIGHTMAGENTA: + return TILEP_HELM_FEATHER_RED; + case BROWN: + case YELLOW: + return TILEP_HELM_FEATHER_YELLOW; + case LIGHTGREY: + case DARKGREY: + case WHITE: + return TILEP_HELM_FEATHER_WHITE; + } + return 0; + + case ARM_WIZARD_HAT: + switch (item.colour) + { + case MAGENTA: + case LIGHTMAGENTA: + case BLACK: + return TILEP_HELM_WIZARD_BLACKRED; + case BLUE: + case LIGHTBLUE: + return TILEP_HELM_WIZARD_BLUE; + case GREEN: + case LIGHTGREEN: + return TILEP_HELM_WIZARD_DARKGREEN; + case CYAN: + return TILEP_HELM_WIZARD_PURPLE; + case LIGHTCYAN: + return TILEP_HELM_WIZARD_BLUEGREEN; + case RED: + case LIGHTRED: + return TILEP_HELM_WIZARD_RED; + case BROWN: + return TILEP_HELM_WIZARD_BROWN; + case YELLOW: + return TILEP_HELM_WIZARD_BLACKGOLD; + case LIGHTGREY: + case DARKGREY: + case WHITE: + return TILEP_HELM_WIZARD_WHITE; + } + return 0; + + // Why are there both helms and helmets? -Enne + // It'd be like having catsup and ketchup in the same game. + case ARM_HELM: + case ARM_HELMET: + switch (helmet_desc) + { + case THELM_DESC_PLAIN: + switch (etype) + { + default: + return TILEP_HELM_CHAIN; + case 1: + return TILEP_HELM_HELM_GIMLI; + case 2: + return TILEP_HELM_HELM_OFS; // urgh + case 3: + return TILEP_HELM_FHELM_GRAY2; + case 4: + return TILEP_HELM_FHELM_BLACK; + } + case THELM_DESC_WINGED: + return TILEP_HELM_YELLOW_WING; + case THELM_DESC_HORNED: + switch (etype) + { + default: + return TILEP_HELM_FHELM_HORN2; + case 1: + return TILEP_HELM_BLUE_HORN_GOLD; + case 2: + return TILEP_HELM_FHELM_HORN_GRAY; + case 3: + return TILEP_HELM_FHELM_HORN_YELLOW; + case 4: + return TILEP_HELM_FHELM_OFS; // urgh + } + case THELM_DESC_CRESTED: + return TILEP_HELM_FHELM_ISILDUR; + case THELM_DESC_PLUMED: + return TILEP_HELM_FHELM_PLUME; + case THELM_DESC_SPIKED: + return TILEP_HELM_FHELM_EVIL; + case THELM_DESC_VISORED: + return TILEP_HELM_FHELM_GRAY3; + case THELM_DESC_JEWELLED: + return TILEP_HELM_FULL_GOLD; + } + } + + return 0; +} + +int tilep_equ_gloves(const item_def &item) +{ + if (you.equip[EQ_GLOVES] == -1) + return 0; + if (item.base_type != OBJ_ARMOUR) + return 0; + if (item.sub_type != ARM_GLOVES) + return 0; + + if (is_unrandom_artefact(item)) + { + int idx = find_unrandart_index(item); + switch (idx + 1) + { + case 30: // gauntlets of War (thick brown) + return TILEP_ARM_GLOVE_BLACK; + case 51: // fencer's gloves (white) + return TILEP_ARM_GLOVE_WHITE; + } + } + + int etype = get_etype(item); + switch (etype) + { + default: + case 0: + switch (item.colour) + { + case LIGHTBLUE: + return TILEP_ARM_GLOVE_BLUE; + default: + case BROWN: + return TILEP_ARM_GLOVE_BROWN; + } + case 1: + case 2: + case 3: + case 4: + switch (item.colour) + { + case LIGHTBLUE: + default: + return TILEP_ARM_GLOVE_CHUNLI; + case BROWN: + return TILEP_ARM_GLOVE_GRAYFIST; + } + } + + return 0; +} + +int tilep_equ_boots(const item_def &item) +{ + if (you.equip[EQ_BOOTS] == -1) + return 0; + if (item.base_type != OBJ_ARMOUR) + return 0; + + if (item.sub_type == ARM_NAGA_BARDING) + return TILEP_BOOTS_NAGA_BARDING; + if (item.sub_type == ARM_CENTAUR_BARDING) + return TILEP_BOOTS_CENTAUR_BARDING; + + if (item.sub_type != ARM_BOOTS) + return 0; + + if (is_unrandom_artefact(item)) + { + int idx = find_unrandart_index(item); + switch (idx + 1) + { + case 23: // boots of the assassin + return TILEP_BOOTS_MIDDLE_GRAY; + } + } + + int etype = get_etype(item); + switch (etype) + { + default: + case 0: + return TILEP_BOOTS_MIDDLE_BROWN3; + case 1: + case 2: + switch (item.colour) + { + case BROWN: + default: + return TILEP_BOOTS_MESH_RED; + case BLUE: + return TILEP_BOOTS_MESH_BLUE; + } + case 3: + case 4: + switch (item.colour) + { + case BROWN: + return TILEP_BOOTS_LONG_RED; + default: + case BLUE: + return TILEP_BOOTS_BLUE_GOLD; + } + } + + return 0; +} + +#ifdef TILEP_DEBUG +/* + * Debugging routines + */ + +const char *get_ctg_name(int part) +{ + return tilep_parts_name[part]; +} + +int get_ctg_idx(char *name) +{ + int i; + + for(i=0;i 0) ? grd[x-1][y] : DNGN_ROCK_WALL; + int right_grd = (x < GXM - 1) ? grd[x+1][y] : DNGN_ROCK_WALL; + int up_grd = (y > 0) ? grd[x][y-1] : DNGN_ROCK_WALL; + int down_grd = (y < GYM - 1) ? grd[x][y+1] : DNGN_ROCK_WALL; + + // The special tiles contains part floor and part special, so + // if there are adjacent floor or special tiles, we should + // do our best to "connect" them appropriately. If there are + // are other tiles there (walls, doors, whatever...) then it + // doesn't matter. + bool l_nrm = left_grd == DNGN_FLOOR; + bool r_nrm = right_grd == DNGN_FLOOR; + bool u_nrm = up_grd == DNGN_FLOOR; + bool d_nrm = down_grd == DNGN_FLOOR; + bool l_spc = left_grd == DNGN_FLOOR_SPECIAL; + bool r_spc = right_grd == DNGN_FLOOR_SPECIAL; + bool u_spc = up_grd == DNGN_FLOOR_SPECIAL; + bool d_spc = down_grd == DNGN_FLOOR_SPECIAL; + + if (l_nrm && r_nrm || u_nrm && d_nrm) + { + // Not much to do here... + env.tile_flavor[x][y].special = SPECIAL_FULL; + } + else if (l_nrm) + { + if (u_nrm) + env.tile_flavor[x][y].special = SPECIAL_NW; + else if (d_nrm) + env.tile_flavor[x][y].special = SPECIAL_SW; + else if (u_spc && d_spc) + env.tile_flavor[x][y].special = SPECIAL_W; + else if (u_spc && r_spc) + env.tile_flavor[x][y].special = SPECIAL_SW; + else if (d_spc && r_spc) + env.tile_flavor[x][y].special = SPECIAL_NW; + else if (u_spc) + env.tile_flavor[x][y].special = coinflip() ? + SPECIAL_W : SPECIAL_SW; + else if (d_spc) + env.tile_flavor[x][y].special = coinflip() ? + SPECIAL_W : SPECIAL_NW; + else + env.tile_flavor[x][y].special = jitter(SPECIAL_W); + } + else if (r_nrm) + { + if (u_nrm) + env.tile_flavor[x][y].special = SPECIAL_NE; + else if (d_nrm) + env.tile_flavor[x][y].special = SPECIAL_SE; + else if (u_spc && d_spc) + env.tile_flavor[x][y].special = SPECIAL_E; + else if (u_spc && l_spc) + env.tile_flavor[x][y].special = SPECIAL_SE; + else if (d_spc && l_spc) + env.tile_flavor[x][y].special = SPECIAL_NE; + else if (u_spc) + env.tile_flavor[x][y].special = coinflip() ? + SPECIAL_E : SPECIAL_SE; + else if (d_spc) + env.tile_flavor[x][y].special = coinflip() ? + SPECIAL_E : SPECIAL_NE; + else + env.tile_flavor[x][y].special = jitter(SPECIAL_E); + } + else if (u_nrm) + { + if (r_spc && l_spc) + env.tile_flavor[x][y].special = SPECIAL_N; + else if (r_spc && d_spc) + env.tile_flavor[x][y].special = SPECIAL_NW; + else if (l_spc && d_spc) + env.tile_flavor[x][y].special = SPECIAL_NE; + else if (r_spc) + env.tile_flavor[x][y].special = coinflip() ? + SPECIAL_N : SPECIAL_NW; + else if (l_spc) + env.tile_flavor[x][y].special = coinflip() ? + SPECIAL_N : SPECIAL_NE; + else + env.tile_flavor[x][y].special = jitter(SPECIAL_N); + } + else if (d_nrm) + { + if (r_spc && l_spc) + env.tile_flavor[x][y].special = SPECIAL_S; + else if (r_spc && u_spc) + env.tile_flavor[x][y].special = SPECIAL_SW; + else if (l_spc && u_spc) + env.tile_flavor[x][y].special = SPECIAL_SE; + else if (r_spc) + env.tile_flavor[x][y].special = coinflip() ? + SPECIAL_S : SPECIAL_SW; + else if (l_spc) + env.tile_flavor[x][y].special = coinflip() ? + SPECIAL_S : SPECIAL_SE; + else + env.tile_flavor[x][y].special = jitter(SPECIAL_S); + } + else if (u_spc && d_spc) + { + // We know this value is already initialized and + // is necessarily in bounds. + char t = env.tile_flavor[x][y-1].special; + if (t == SPECIAL_NE || t == SPECIAL_E) + env.tile_flavor[x][y].special = SPECIAL_E; + else if (t == SPECIAL_NW || t == SPECIAL_W) + env.tile_flavor[x][y].special = SPECIAL_W; + else + env.tile_flavor[x][y].special = SPECIAL_FULL; + } + else if (r_spc && l_spc) + { + // We know this value is already initialized and + // is necessarily in bounds. + char t = env.tile_flavor[x-1][y].special; + if (t == SPECIAL_NW || t == SPECIAL_N) + env.tile_flavor[x][y].special = SPECIAL_N; + else if (t == SPECIAL_SW || t == SPECIAL_S) + env.tile_flavor[x][y].special = SPECIAL_S; + else + env.tile_flavor[x][y].special = SPECIAL_FULL; + } + else if (u_spc && l_spc) + { + env.tile_flavor[x][y].special = SPECIAL_SE; + } + else if (u_spc && r_spc) + { + env.tile_flavor[x][y].special = SPECIAL_SW; + } + else if (d_spc && l_spc) + { + env.tile_flavor[x][y].special = SPECIAL_NE; + } + else if (d_spc && r_spc) + { + env.tile_flavor[x][y].special = SPECIAL_NW; + } + else + { + env.tile_flavor[x][y].special = SPECIAL_FULL; + } + } + else + { + env.tile_flavor[x][y].special = 0; + } + } + } + + // Second pass for clean up. The only bad part about the above + // algorithm is that it could turn a block of floor like this: + // + // N4NN + // 3125 + // NN6N + // + // (KEY: N = normal floor, # = special floor) + // + // Into these flavors: + // 1 - SPECIAL_S + // 2 - SPECIAL_N + // 3-6, not important + // + // Generally the tiles don't fit with a north to the right or left + // of a south tile. What we really want to do is to separate the + // two regions, by making 1 a SPECIAL_SE and 2 a SPECIAL_NW tile. + for (int x = 0; x < GXM - 1; x++) + { + for (int y = 0; y < GYM - 1; y++) + { + if (grd[x][y] != DNGN_FLOOR_SPECIAL) + continue; + if (env.tile_flavor[x][y].special != SPECIAL_N && + env.tile_flavor[x][y].special != SPECIAL_S && + env.tile_flavor[x][y].special != SPECIAL_E && + env.tile_flavor[x][y].special != SPECIAL_W) + { + continue; + } + + int right_flavor = x < GXM - 1 ? env.tile_flavor[x+1][y].special : + SPECIAL_FULL; + int down_flavor = y < GYM - 1 ? env.tile_flavor[x][y+1].special : + SPECIAL_FULL; + int this_flavor = env.tile_flavor[x][y].special; + + if (this_flavor == SPECIAL_N && right_flavor == SPECIAL_S) + { + env.tile_flavor[x][y].special = SPECIAL_NE; + env.tile_flavor[x+1][y].special = SPECIAL_SW; + } + else if (this_flavor == SPECIAL_S && right_flavor == SPECIAL_N) + { + env.tile_flavor[x][y].special = SPECIAL_SE; + env.tile_flavor[x+1][y].special = SPECIAL_NW; + } + else if (this_flavor == SPECIAL_E && down_flavor == SPECIAL_W) + { + env.tile_flavor[x][y].special = SPECIAL_SE; + env.tile_flavor[x][y+1].special = SPECIAL_NW; + } + else if (this_flavor == SPECIAL_W && down_flavor == SPECIAL_E) + { + env.tile_flavor[x][y].special = SPECIAL_NE; + env.tile_flavor[x][y+1].special = SPECIAL_SW; + } + } + } +} + +void tile_clear_buf() +{ + for (int y = 0; y < GYM; y++) + { + for (int x = 0; x < GXM; x++) + { + unsigned char this_is_wall = 128; + gv_now[x][y]=0; + tile_dngn[x][y]=TILE_DNGN_UNSEEN; + if (env.map[x][y].glyph() != 0) + { + int g = grd[x][y]; + if (g >= DNGN_ORCISH_IDOL && g != DNGN_OPEN_DOOR) + this_is_wall = 0; + } + + wall_flag[x][y] = this_is_wall; + } + } + + for (int y = 0; y < GYM; y++) + { + for (int x = 0; x < GXM; x++) + { + unsigned char w = wall_flag[x][y]&0x80; + if (w) + { + if (x != 0) wall_flag[x-1][y] |= WFLAG_R; + if (x != GXM-1) wall_flag[x+1][y] |= WFLAG_L; + if (y != 0) wall_flag[x][y-1] |= WFLAG_D; + if (y != GYM-1) wall_flag[x][y+1] |= WFLAG_U; + } + wall_flag[x][y] &= 0xf; + } + } +} + +/* called from view.cc */ +void tile_draw_floor() +{ + int cx, cy; + for (cy = 0; cy < env.tile_fg.height(); cy++) + { + for (cx = 0; cx < env.tile_fg.width(); cx++) + { + const coord_def ep(cx+1, cy+1); + const coord_def gc = view2grid(show2view(ep)); + int bg = TILE_DNGN_UNSEEN | tile_unseen_flag(gc); + + int object = env.show(ep); + if (in_bounds(gc) && object != 0) + { + if (object != gv_now[gc.x][gc.y]) + { + if (object == DNGN_SECRET_DOOR) + object = (int)grid_secret_door_appearance(gc.x, gc.y); + + tile_dngn[gc.x][gc.y] = tileidx_feature(object); + gv_now[gc.x][gc.y] = object; + + unsigned char wall = 0xff; + if (object >= DNGN_ORCISH_IDOL && object != DNGN_OPEN_DOOR) + wall = 0; + + if (gc.x != 0) + { + wall_flag[gc.x-1][gc.y] = (wall_flag[gc.x-1][gc.y] & + (~WFLAG_R)) | (wall & WFLAG_R); + } + if (gc.x != GXM-1) + { + wall_flag[gc.x+1][gc.y] = (wall_flag[gc.x+1][gc.y] & + (~WFLAG_L)) | (wall & WFLAG_L); + } + if (gc.y != 0) + { + wall_flag[gc.x][gc.y-1] = (wall_flag[gc.x][gc.y-1] & + (~WFLAG_D)) | (wall & WFLAG_D); + } + if (gc.y != GYM-1) + { + wall_flag[gc.x][gc.y+1] = (wall_flag[gc.x][gc.y+1] & + (~WFLAG_U)) | (wall & WFLAG_U); + } + } + bg = tile_dngn[gc.x][gc.y]; + } + // init tiles + env.tile_bg[ep.x-1][ep.y-1] = bg; + env.tile_fg[ep.x-1][ep.y-1] = 0; + } + } +} + +// Called from item() in view.cc +void tile_place_item(int x, int y, int idx) +{ + int t = tileidx_item(mitm[idx]); + if (mitm[idx].link != NON_ITEM) + t |= TILE_FLAG_S_UNDER; + env.tile_fg[x-1][y-1]=t; + + if (item_needs_autopickup(mitm[idx])) + env.tile_bg[x-1][y-1] |= TILE_FLAG_CURSOR3; +} + +void tile_place_item_bk(int gx, int gy, int idx) +{ + int t = tileidx_item(mitm[idx]); + env.tile_bk_fg[gx][gy] = t; + + if (item_needs_autopickup(mitm[idx])) + env.tile_bk_bg[gx][gy] |= TILE_FLAG_CURSOR3; +} + +void tile_place_tile_bk(int gx, int gy, int tileidx) +{ + env.tile_bk_fg[gx][gy] = tileidx; +} + +// Called from item() in view.cc +void tile_place_item_marker(int x, int y, int idx) +{ + env.tile_fg[x-1][y-1] |= TILE_FLAG_S_UNDER; + + if (item_needs_autopickup(mitm[idx])) + env.tile_bg[x-1][y-1] |= TILE_FLAG_CURSOR3; +} + +// Called from monster_grid() in view.cc +void tile_place_monster(int gx, int gy, int idx, bool foreground) +{ + if (idx == NON_MONSTER) + { + return; + } + + const coord_def gc(gx, gy); + const coord_def ep = view2show(grid2view(gc)); + + int t = tileidx_monster(idx); + int t0 = t & TILE_FLAG_MASK; + int flag = t & (~TILE_FLAG_MASK); + int mon_wep = menv[idx].inv[MSLOT_WEAPON]; + + if (menv[idx].type >= MONS_DRACONIAN && + menv[idx].type <= MONS_DRACONIAN_SCORCHER) + { + int race = draco_subspecies(&menv[idx]); + int cls = menv[idx].type; + int eq = 0; + if (mon_wep != NON_ITEM && + (cls == race || cls == MONS_DRACONIAN_KNIGHT)) + eq = tilep_equ_weapon(mitm[mon_wep]); + t = flag | TileMcacheFind(cls, eq, race); + } + else if (mon_wep != NON_ITEM) + { + int eq = tilep_equ_weapon(mitm[mon_wep]); + switch(t0) + { + // 3D chars + case TILE_MONS_VAULT_GUARD: + + case TILE_MONS_BLORK_THE_ORC: + case TILE_MONS_ORC: + case TILE_MONS_ORC_KNIGHT: + case TILE_MONS_ORC_WARLORD: + case TILE_MONS_ORC_WARRIOR: + case TILE_MONS_URUG: + + case TILE_MONS_GOBLIN: + case TILE_MONS_IJYB: + case TILE_MONS_HOBGOBLIN: + case TILE_MONS_GNOLL: + case TILE_MONS_BOGGART: + + case TILE_MONS_KOBOLD: + case TILE_MONS_KOBOLD_DEMONOLOGIST: + case TILE_MONS_BIG_KOBOLD: + + case TILE_MONS_DEEP_ELF_FIGHTER: + case TILE_MONS_DEEP_ELF_SOLDIER: + case TILE_MONS_DEEP_ELF_KNIGHT: + case TILE_MONS_DEEP_ELF_BLADEMASTER: + case TILE_MONS_DEEP_ELF_MASTER_ARCHER: + case TILE_MONS_DEEP_ELF_MAGE: + case TILE_MONS_DEEP_ELF_SUMMONER: + case TILE_MONS_DEEP_ELF_CONJURER: + case TILE_MONS_DEEP_ELF_PRIEST: + case TILE_MONS_DEEP_ELF_HIGH_PRIEST: + case TILE_MONS_DEEP_ELF_DEMONOLOGIST: + case TILE_MONS_DEEP_ELF_ANNIHILATOR: + case TILE_MONS_DEEP_ELF_SORCERER: + case TILE_MONS_DEEP_ELF_DEATH_MAGE: + + case TILE_MONS_MIDGE: + case TILE_MONS_IMP: + + case TILE_MONS_NAGA: + case TILE_MONS_GREATER_NAGA: + case TILE_MONS_NAGA_WARRIOR: + case TILE_MONS_NAGA_MAGE: + + case TILE_MONS_OGRE_MAGE: + case TILE_MONS_RED_DEVIL: + case TILE_MONS_WIZARD: + case TILE_MONS_HUMAN: + case TILE_MONS_ELF: + + case TILE_MONS_ANGEL: + + case TILE_MONS_HELL_KNIGHT: + + case TILE_MONS_NORRIS: + case TILE_MONS_MAUD: + case TILE_MONS_DUANE: + case TILE_MONS_EDMUND: + case TILE_MONS_FRANCES: + case TILE_MONS_HAROLD: + case TILE_MONS_JOSEPH: + case TILE_MONS_JOZEF: + case TILE_MONS_RUPERT: + case TILE_MONS_TERENCE: + case TILE_MONS_WAYNE: + case TILE_MONS_FREDERICK: + + case TILE_MONS_RAKSHASA: + case TILE_MONS_RAKSHASA_FAKE: + + case TILE_MONS_VAMPIRE_KNIGHT: + + case TILE_MONS_SKELETAL_WARRIOR: + + if (eq != 0 ) + t = flag | TileMcacheFind(t0, eq); + break; + + } + } + + if (foreground) + { + env.tile_fg[ep.x-1][ep.y-1] = t; + } + else + { + env.tile_bk_fg[gc.x][gc.y] = t0; + } +} + +void tile_place_cloud(int x, int y, int type, int decay) +{ + env.tile_fg[x-1][y-1]= tileidx_cloud(type, decay); +} + +unsigned int tileRayCount = 0; +FixedVector tileRays; + +void tile_place_ray(const coord_def& gc) +{ + // Record rays for later. The curses version just applies + // rays directly to the screen. The tiles version doesn't have + // (nor want) such direct access. So, it batches up all of the + // rays and applies them in viewwindow(...). + if (tileRayCount < tileRays.size() - 1) + { + tileRays[tileRayCount++] = view2show(grid2view(gc)); + } +} + +void tile_draw_rays(bool resetCount) +{ + for (unsigned int i = 0; i < tileRayCount; i++) + { + env.tile_bg[tileRays[i].x-1][tileRays[i].y-1] |= TILE_FLAG_RAY; + } + + if (resetCount) + tileRayCount = 0; +} + +void tile_finish_dngn(short unsigned int *tileb, int cx, int cy) +{ + int x, y; + int count = 0; + + for (y=0; y < crawl_view.viewsz.y; y++) + { + for (x=0; x < crawl_view.viewsz.x; x++) + { + const int gx = view2gridX(x); + const int gy = view2gridY(y); + int wall = 0; + + char wall_flv = 0; + char floor_flv = 0; + char special_flv = 0; + if (map_bounds( gx, gy )) + { + wall = wall_flag[gx][gy]; + wall_flv = env.tile_flavor[gx][gy].wall; + floor_flv = env.tile_flavor[gx][gy].floor; + special_flv = env.tile_flavor[gx][gy].special; + } + finalize_tile(&tileb[count], wall, + wall_flv, floor_flv, special_flv); + finalize_tile(&tileb[count+1], wall, + wall_flv, floor_flv, special_flv); + count += 2; + } + } +} + +void tile_draw_dungeon(short unsigned int *tileb) +{ + tile_finish_dngn(tileb, you.x_pos, you.y_pos); + TileDrawDungeon(tileb); +} + +#define swapint(a, b) {int tmp = a; a = b; b = tmp;} + +// Item is unided(1) or tried(2) or id'ed (0) +// Note that Jewellries are never "tried" +static int item_unid_type(const item_def &item) +{ + int t = item.base_type; + int s = item.sub_type; + int id0 = 0; + + id_arr& id = get_typeid_array(); + + if ((item.flags &ISFLAG_KNOW_TYPE) != 0) + return 0; + + switch (t) + { + case OBJ_SCROLLS: + id0 = id[ IDTYPE_SCROLLS ][s]; + if (id0 == ID_TRIED_TYPE) + return 2; + else + if (id0 != ID_KNOWN_TYPE) + return 1; + else + return 0; + + case OBJ_WANDS: + id0 = id[ IDTYPE_WANDS ][s]; + if (id0 == ID_TRIED_TYPE) + return 2; + else + if (id0 != ID_KNOWN_TYPE) + return 1; + else + return 0; + + case OBJ_POTIONS: + id0 = id[ IDTYPE_POTIONS ][s]; + if (id0 == ID_TRIED_TYPE) + return 2; + else + if (id0 != ID_KNOWN_TYPE) + return 1; + else + return 0; + + case OBJ_JEWELLERY: + id0 = id[ IDTYPE_JEWELLERY ][s]; + if (id0 != ID_KNOWN_TYPE) + return 1; + else + return 0; + } + return 0; +} + +// Helper routine: sort floor item index and pack into idx +int pack_floor_item(int *idx, int *flag, int *isort, int max) +{ + int n = 0; + static int isort_weapon2[NUM_WEAPONS]; + static int isort_armour2[NUM_ARMOURS]; + + static const int isort_weapon[NUM_WEAPONS] = + { + WPN_WHIP, WPN_CLUB, WPN_HAMMER, WPN_MACE, + WPN_FLAIL, WPN_DEMON_WHIP, + WPN_ANCUS, WPN_MORNINGSTAR, WPN_EVENINGSTAR, + WPN_SPIKED_FLAIL, WPN_GREAT_MACE, WPN_DIRE_FLAIL, + WPN_GIANT_CLUB, WPN_GIANT_SPIKED_CLUB, + + WPN_KNIFE, WPN_DAGGER, WPN_SHORT_SWORD, WPN_SABRE, WPN_QUICK_BLADE, + WPN_FALCHION, WPN_LONG_SWORD, WPN_SCIMITAR, WPN_KATANA, + WPN_DEMON_BLADE, WPN_DOUBLE_SWORD, WPN_GREAT_SWORD, WPN_TRIPLE_SWORD, + + WPN_HAND_AXE, WPN_WAR_AXE, WPN_BROAD_AXE, + WPN_BATTLEAXE, WPN_EXECUTIONERS_AXE, + + WPN_SPEAR, WPN_TRIDENT, WPN_HALBERD, WPN_SCYTHE, + WPN_GLAIVE, WPN_DEMON_TRIDENT, + + WPN_QUARTERSTAFF, + + WPN_SLING, WPN_BOW, WPN_CROSSBOW, WPN_HAND_CROSSBOW + }; + static const int isort_armour[NUM_ARMOURS] = + { + ARM_ROBE, + ARM_ANIMAL_SKIN, + ARM_LEATHER_ARMOUR, + ARM_TROLL_LEATHER_ARMOUR, + ARM_RING_MAIL, ARM_SCALE_MAIL, ARM_CHAIN_MAIL, + ARM_SPLINT_MAIL, ARM_BANDED_MAIL, ARM_PLATE_MAIL, + ARM_CRYSTAL_PLATE_MAIL, + ARM_SWAMP_DRAGON_ARMOUR, + ARM_MOTTLED_DRAGON_ARMOUR, + ARM_STEAM_DRAGON_ARMOUR, + ARM_DRAGON_ARMOUR, + ARM_ICE_DRAGON_ARMOUR, + ARM_STORM_DRAGON_ARMOUR, + ARM_GOLD_DRAGON_ARMOUR, + ARM_TROLL_HIDE, + ARM_SWAMP_DRAGON_HIDE, + ARM_MOTTLED_DRAGON_HIDE, + ARM_STEAM_DRAGON_HIDE, + ARM_DRAGON_HIDE, + ARM_ICE_DRAGON_HIDE, + ARM_STORM_DRAGON_HIDE, + ARM_GOLD_DRAGON_HIDE, + ARM_CLOAK, + ARM_BUCKLER, ARM_SHIELD, ARM_LARGE_SHIELD, + ARM_HELMET, ARM_GLOVES, ARM_BOOTS + }; + + int i; + for (i=0;i= max) break; + + idx[n] = o; + isort[n] = typ * 256 * 3; + if (typ == OBJ_WEAPONS) + { + isort[n] += 3 * isort_weapon2[ mitm[o].sub_type]; + } + if (typ == OBJ_ARMOUR) + { + isort[n] += 3 * isort_armour2[ mitm[o].sub_type ]; + } + flag[n] = 0; + + if (item_ident( mitm[o], ISFLAG_KNOW_CURSE ) && + item_cursed(mitm[o])) + { + flag[n] |= TILEI_FLAG_CURSE; + } + + if (id0 != 0) + { + isort[n] += id0; + if (id0 == 2) + flag[n] = TILEI_FLAG_TRIED; + } + flag[n] |= TILEI_FLAG_FLOOR; + + // Simple Bubble sort + int k = n; + while( (k > 0) && (isort[k-1] > isort[k])) + { + swapint(idx[k-1], idx[k]); + swapint(isort[k-1], isort[k]); + swapint(flag[k-1], flag[k]); + k--; + } + n++; + o = next; + } + return n; +} + +// Helper routine: Calculate tile index and quantity data to be displayed +void finish_inven_data(int n, int *tiles, int *num, int *idx, int *iflag) +{ + int i; + + for(i = 0; i < n; i++) + { + int q = -1; + int j = idx[i]; + item_def *itm; + + if (j==-1) + { + num[i]=-1; + tiles[i]= 0; + continue; + } + + if (iflag[i] & TILEI_FLAG_FLOOR) + itm = &mitm[j]; + else + itm = &you.inv[j]; + + int type = itm->base_type; + + if (type == OBJ_FOOD || type == OBJ_SCROLLS + || type == OBJ_POTIONS || type == OBJ_MISSILES) + q = itm->quantity; + if (q==1) q = -1; + + if (type == OBJ_WANDS && + (itm->flags & ISFLAG_KNOW_PLUSES )!= 0) + q = itm->plus; + + tiles[i] = tileidx_item(*itm); + num[i] = q; + } +} + +// Display Inventory/floor items +#include "guic.h" +extern TileRegionClass *region_item; +extern TileRegionClass *region_item2; +extern WinClass *win_main; + +void tile_draw_inv(int item_type, int flag) +{ + #define MAXINV 200 + int tiles[MAXINV]; + int num[MAXINV]; + int idx[MAXINV]; + int iflag[MAXINV]; + int isort[MAXINV]; + int n = 0; + int i, j; + + if (flag == -1) + { + flag = (win_main->active_layer == 0) ? REGION_INV1 : REGION_INV2; + } + + TileRegionClass *r = (flag == REGION_INV1) ? region_item:region_item2; + int numInvTiles = r->mx * r->my; + if (numInvTiles > MAXINV) + numInvTiles = MAXINV; + + // item.base_type <-> char conversion table + const static char *obj_syms = ")([/%#?=!#+\\0}x"; + + const static char *syms_table[] = + { + ")\\", // weapons and staves + "(", // missile + "[", // armour + "/", // wands + "%", // foods + "#", // none + "?+", // scrolls and books + "=", // rings/amulets + "!", // potions + "#", // none + "?+", // books/scrolls + ")\\", // weapons and staves + "0", + "}", + "x" + }; + + const char *item_chars = Options.show_items; + + int eq_flag[ENDOFPACK]; + int empty = 0; + + for (j = 0; j < ENDOFPACK; j++) + { + eq_flag[j] = + (you.inv[j].quantity != 0 && is_valid_item( you.inv[j])) ? 1:0; + empty += 1-eq_flag[j]; + } + + for (j=0; j= 0 && eq < ENDOFPACK) + eq_flag[eq] = 2; + } + + if (item_type >= 0) + item_chars = syms_table[item_type]; + else + if (item_type == -2) + item_chars = obj_syms; + else + if (item_type == -3) + item_chars = "."; + + if (item_chars[0] == 0) return; + + for (i=0; i < (int)strlen(item_chars); i++) + { + int top = n; + char ic = item_chars[i]; + + if (n >= numInvTiles) break; + + // Items on the floor + if (ic == '.') + { + n += pack_floor_item(&idx[n], &iflag[n], &isort[n], numInvTiles - n); + continue; + } + + // empty slots + if (ic == '_') + { + for (j = 0; j < empty && n < numInvTiles; j++) + { + idx[n] = -1; + iflag[n] = 0; + n++; + } + continue; + } + + // convert item char to item type + int type = -1; + for (j=0; j < (int)strlen(obj_syms); j++) + { + if (obj_syms[j] == ic) + { + type = j; + break; + } + } + + if (type == -1) continue; + + for (j = 0; j < ENDOFPACK && n < numInvTiles; j++) + { + if (you.inv[j].base_type==type && eq_flag[j] != 0) + { + int sval = NUM_EQUIP + you.inv[j].sub_type; + int base = 0; + int id0 = item_unid_type(you.inv[j]); + + idx[n] = j; + iflag[n] = 0; + + if (type == OBJ_JEWELLERY && sval >= AMU_RAGE) + { + base = 1000; + sval = base + sval; + } + + if (id0 == 2) + { + iflag[n] |= TILEI_FLAG_TRIED; + // To the tail + sval = base + 980; + } + else if (id0 == 1) + { + // To the tail + sval = base + 990; + } + + // Equipment first + if (eq_flag[j]==2) + { + //sval = base; + iflag[n] |= TILEI_FLAG_EQUIP; + } + + if (item_cursed(you.inv[j]) && + item_ident( you.inv[j], ISFLAG_KNOW_CURSE )) + { + iflag[n] |= TILEI_FLAG_CURSE; + } + + if (flag == REGION_INV2) + sval = j; + + isort[n] = sval; + + int k = n; + while( (k > top) && (isort[k-1] > isort[k])) + { + swapint(idx[k-1], idx[k]); + swapint(isort[k-1], isort[k]); + swapint(iflag[k-1], iflag[k]); + k--; + } + + n++; + } // type == base + } // j + } // i + + finish_inven_data(n, tiles, num, idx, iflag); + + for(i = n; i < numInvTiles; i++) + { + tiles[i] = 0; + num[i] = 0; + idx[i] = -1; + iflag[i] = 0; + } + TileDrawInvData(n, flag, tiles, num, idx, iflag); +} + +#endif diff --git a/crawl-ref/source/tile2.cc b/crawl-ref/source/tile2.cc new file mode 100644 index 0000000000..92eeb6dcbb --- /dev/null +++ b/crawl-ref/source/tile2.cc @@ -0,0 +1,3023 @@ +#ifdef USE_TILE + +#include +#include +#include + +#include "AppHdr.h" +#include "describe.h" +#include "direct.h" +#include "dungeon.h" +#include "files.h" +#include "guic.h" +#include "itemprop.h" +#include "it_use2.h" +#include "stuff.h" +#include "tiles.h" +#include "tilecount-w2d.h" +#include "tiledef-p.h" +#include "transfor.h" + +// normal tile count + iso tile count +#define TILE_TOTAL2 (TILE_TOTAL) +// normal tile count +#define TILE_NORMAL TILE_TOTAL + +extern void TileDrawDungeonAux(); + +// Raw tile images +extern img_type TileImg; +extern img_type TileIsoImg; +extern img_type PlayerImg; +extern img_type WallImg; +extern img_type ScrBufImg; + +extern WinClass *win_main; +// Regions +extern TileRegionClass *region_tile; +extern TextRegionClass *region_crt; +extern TextRegionClass *region_stat; +extern TextRegionClass *region_tip; +extern TextRegionClass *region_msg; + +extern TileRegionClass *region_item; +extern TileRegionClass *region_item2; + +#define ScrBufImg (region_tile->backbuf) + +//Internal +static img_type DollCacheImg; + +static void tile_draw_grid(int kind, int xx, int yy); +static void clear_tcache(); +static void init_tcache(); +static void init_tileflag(); +static void register_tile_mask(int tile, int region, int *cp, + char *ms, bool smalltile = false); +static void tcache_compose_normal(int ix, int *fg, int *bg); + +#if 1 // TILE_MON_EQUIP +static void mcache_init(); +#endif + +//Internal variables + +bool force_redraw_tile; +bool force_redraw_inv = false; +static unsigned short int t1buf[TILE_DAT_XMAX+2][TILE_DAT_YMAX+2], + t2buf[TILE_DAT_XMAX+2][TILE_DAT_YMAX+2]; +static short unsigned int tb_bk[TILE_DAT_YMAX*TILE_DAT_XMAX*2]; + +#define MAX_ITEMLIST 200 +int itemlist[MAX_ITEMLIST]; +int itemlist_num[MAX_ITEMLIST]; +int itemlist_idx[MAX_ITEMLIST]; +char itemlist_key[MAX_ITEMLIST]; +int itemlist_iflag[MAX_ITEMLIST]; +int itemlist_flag = -1; +int itemlist_n=0; + +static int wall_flavors = 0; +static int floor_flavors = 0; +static int special_flavors = 0; +static int wall_tile_idx = 0; +static int floor_tile_idx = 0; +static int special_tile_idx = 0; + +int get_num_wall_flavors() +{ + return wall_flavors; +} + +int get_num_floor_flavors() +{ + return floor_flavors; +} + +int get_num_floor_special_flavors() +{ + return special_flavors; +} + +int get_wall_tile_idx() +{ + return wall_tile_idx; +} + +int get_floor_tile_idx() +{ + return floor_tile_idx; +} + +int get_floor_special_tile_idx() +{ + return special_tile_idx; +} + +/******** Cache buffer for transparency operation *****/ +static int tcache_kind; + +#if 1 // ISO +#define TCACHE_KIND_ISO 2 +#define TCACHE0_ISO 0 +#define TCACHE1_ISO 1 +#endif + +#define TCACHE_KIND_NORMAL 1 +#define TCACHE0_NORMAL 0 + +static int last_cursor = -1; + +//Internal cache Image buffer +static img_type *tcache_image; + +//Start of a pointer string +static int *tcache_head; + +typedef struct tile_cache +{ + unsigned int id[4]; + int idx; + tile_cache *next; + tile_cache *prev; +} tile_cache; + +// number of tile grids +static int tile_xmax; +static int tile_ymax; + +static int max_tcache; +static int tc_hash; +// [kind * tc_hash][max_tcache] +static tile_cache **tcache; +// [kind][x*y] +static int **screen_tcach_idx; + +#if 1 //ISO +/* + screen grid arrangement. (x,y,kind) + (0,0,B) (1,0,A) (2,0,B) + (0,0,A) (1,0,B) (2,0,A) ... + (0,1,B) (1,1,A) (2,1,B) + (0,1,A) (1,1,B) (2,1,A) + .... +*/ +const int tcache_wx_iso[TCACHE_KIND_ISO] = {TILE_X_EX_ISO/2, TILE_X_EX_ISO/2}; +const int tcache_wy_iso[TCACHE_KIND_ISO] = {TILE_Y_EX_ISO/4, TILE_Y_EX_ISO/4}; +const int tcache_ox_iso[TCACHE_KIND_ISO] = {0,0}; +const int tcache_oy_iso[TCACHE_KIND_ISO] = {0,TILE_Y_EX_ISO/4}; +const int tcache_nlayer_iso[TCACHE_KIND_ISO] = {4,4}; +#endif + +const int tcache_wx_normal[TCACHE_KIND_NORMAL] = {TILE_X}; +const int tcache_wy_normal[TCACHE_KIND_NORMAL] = {TILE_Y}; +const int tcache_ox_normal[TCACHE_KIND_NORMAL] = {0}; +const int tcache_oy_normal[TCACHE_KIND_NORMAL] = {0}; +const int tcache_nlayer_normal[TCACHE_KIND_NORMAL] = {1}; + +unsigned char tile_flag[TILE_TOTAL2]; +#define TFLAG_A 0x80 +#define TFLAG_B 0x40 +#define TFLAG_C 0x20 +#define TFLAG_D 0x10 +#define TFLAG_F 0x08 +#define TFLAG_G 0x04 +#define TFLAG_H 0x02 +#define TFLAG_I 0x01 + +#define tile_check_blank(tile,region) \ + if( (tile_flag[tile & TILE_FLAG_MASK]&(region))==0) (tile) &= ~TILE_FLAG_MASK; + +#if 1 //ISO +#define TREGION_A_ISO 0 +#define TREGION_B_ISO 1 +#define TREGION_C_ISO 2 +#define TREGION_D_ISO 3 +#define TREGION_E_ISO 4 +#define TREGION_F_ISO 5 +#define TREGION_G_ISO 6 +#define TREGION_H_ISO 7 +/* +<-64-> + AAEE | + BBFF 64 + CCGG | + DDHH | +*/ + +const int region_sx_iso[8]= + {0, 0, 0, 0, + TILE_X_EX_ISO/2, TILE_X_EX_ISO/2, TILE_X_EX_ISO/2, TILE_X_EX_ISO/2}; +const int region_sy_iso[8]= + {0, TILE_Y_EX_ISO/4, TILE_Y_EX_ISO/2, (TILE_Y_EX_ISO*3)/4, + 0, TILE_Y_EX_ISO/4, TILE_Y_EX_ISO/2, (TILE_Y_EX_ISO*3)/4}; +const int region_wx_iso[8]= + {TILE_X_EX_ISO/2, TILE_X_EX_ISO/2, TILE_X_EX_ISO/2, TILE_X_EX_ISO/2, + TILE_X_EX_ISO/2, TILE_X_EX_ISO/2, TILE_X_EX_ISO/2, TILE_X_EX_ISO/2}; +const int region_wy_iso[8]= + {TILE_Y_EX_ISO/4, TILE_Y_EX_ISO/4, TILE_Y_EX_ISO/4, TILE_Y_EX_ISO/4, + TILE_Y_EX_ISO/4, TILE_Y_EX_ISO/4, TILE_Y_EX_ISO/4, TILE_Y_EX_ISO/4}; + +/* 32x32 �̏ꍇ �^�C����(sx,sy)����wx*wy �̗̈��� ox,oy ���炵�ăR�s�[ */ + +#ifdef ISO48 +//�傫��BMP��48x48 �̏ꍇ +const int region_sx_small_iso[8]= + {0, 0, 0, 0, + TILE_X/2, TILE_X/2, TILE_X/2, TILE_X/2}; +const int region_sy_small_iso[8]= + {0, 2, 14, 26, 0, 2, 14, 26}; +const int region_wx_small_iso[8]= + {16,16,16,16, 16,16,16,16}; +const int region_wy_small_iso[8]= + {2, 12, 12, 6, 2, 12, 12, 6}; +const int region_ox_small_iso[8]= + {8,8,8, 8, 0, 0, 0, 0}; +const int region_oy_small_iso[8]= + {14,0,0,0, 14,0,0,0}; +#else +//�傫��BMP��64x64 �̏ꍇ +const int region_sx_small_iso[8]= + {0, 0, 0, 0, + TILE_X/2, TILE_X/2, TILE_X/2, TILE_X/2}; +const int region_sy_small_iso[8]= + {0, 0, 8,24, 0, 0, 8,24}; +const int region_wx_small_iso[8]={0,16,16,16, 0,16,16,16}; +const int region_wy_small_iso[8]={0, 8,16, 8, 0, 8,16, 8}; +const int region_ox_small_iso[8]={16,16,16, 16, 0, 0, 0, 0}; +const int region_oy_small_iso[8]={0,8,0,0,0,8,0,0}; +#endif + +#endif // ISO + +#define TREGION_0_NORMAL 0 +const int region_sx_normal[1]={0}; +const int region_sy_normal[1]={0}; +const int region_wx_normal[1]={TILE_X}; +const int region_wy_normal[1]={TILE_Y}; + +// ISO mode sink mask +static char *sink_mask; + +/* BG tile priority */ +static unsigned char tile_prio[TILE_TOTAL2]; +#define PRIO_WALL 10 +#define tile_is_wall(tile) (tile_prio[(tile)&TILE_FLAG_MASK]==PRIO_WALL) + +/********* Image manipulation subroutines ****************/ +img_type ImgLoadFileSimple(const char *name) +{ + char fname[512]; +#ifdef USE_X11 + sprintf(fname,"tiles/%s.png", name); + std::string path = datafile_path(fname, true, true); + return ImgLoadFile(path.c_str()); +#endif +#ifdef WIN32TILES + sprintf(fname,"tiles/%s.bmp", name); + std::string path = datafile_path(fname, true, true); + return ImgLoadFile(path.c_str()); +#endif +} + +// TileImg macro +void ImgCopyFromTileImg(int idx, img_type dest, int dx, int dy, int copy, + char *mask = NULL, bool hilite = false) +{ + int sx = (idx % TILE_PER_ROW)*TILE_X; + int sy = (idx / TILE_PER_ROW)*TILE_Y; + if (hilite) + { + if (mask != NULL) + ImgCopyMaskedH(TileImg, sx, sy, TILE_X, TILE_Y, + dest, dx, dy, mask); + else + ImgCopyH(TileImg, sx, sy, TILE_X, TILE_Y, dest, dx, dy, copy); + } + else + { + if (mask != NULL) + ImgCopyMasked(TileImg, sx, sy, TILE_X, TILE_Y, + dest, dx, dy, mask); + else + ImgCopy(TileImg, sx, sy, TILE_X, TILE_Y, dest, dx, dy, copy); + } +} + +void ImgCopyToTileImg(int idx, img_type src, int sx, int sy, int copy, + char *mask = NULL, bool hilite = false) +{ + int dx = (idx % TILE_PER_ROW)*TILE_X; + int dy = (idx / TILE_PER_ROW)*TILE_Y; + if (hilite) + { + if (mask != NULL) + ImgCopyMaskedH(src, sx, sy, TILE_X, TILE_Y, + TileImg, dx, dy, mask); + else + ImgCopyH(src, sx, sy, TILE_X, TILE_Y, TileImg, dx, dy, copy); + } + else + { + if (mask != NULL) + ImgCopyMasked(src, sx, sy, TILE_X, TILE_Y, + TileImg, dx, dy, mask); + else + ImgCopy(src, sx, sy, TILE_X, TILE_Y, TileImg, dx, dy, copy); + } +} + +void TileInit() +{ + int x, y, k; + textcolor(WHITE); + + TileImg = ImgLoadFileSimple("tile"); + PlayerImg = ImgLoadFileSimple("player"); + WallImg = ImgLoadFileSimple("wall2d"); + + + if (!TileImg) + { + cprintf("Main tile not initialized\n"); + getch(); + end(-1); + } + + ImgSetTransparentPix(TileImg); + + if (ImgWidth(TileImg)!= TILE_X * TILE_PER_ROW || + ImgHeight(TileImg) < TILE_Y*( (TILE_TOTAL + TILE_PER_ROW -1)/TILE_PER_ROW)) + { + cprintf("Main tile size invalid\n"); + getch(); + end(-1); + } + + if (!PlayerImg) + { + cprintf("Player tile not initialized\n"); + getch(); + end(-1); + } + + if (ImgWidth(PlayerImg)!= TILE_X * TILEP_PER_ROW) + { + cprintf("Player tile size invalid\n"); + getch(); + end(-1); + } + + if (!WallImg) + { + cprintf("wall2d tile not initialized\n"); + getch(); + end(-1); + } + + tcache_kind = TCACHE_KIND_NORMAL; + tc_hash = 1; + tile_xmax = tile_dngn_x; + tile_ymax = tile_dngn_y; + + max_tcache = 4*tile_xmax*tile_ymax; + + screen_tcach_idx = (int **)malloc(sizeof(int *) * tcache_kind); + + tcache = (tile_cache **)malloc(sizeof(tile_cache *)*tcache_kind); + + tcache_head = (int *)malloc(sizeof(int)*tcache_kind*tc_hash); + + for(k=0;knext = n; + if(n!=NULL) n->prev = p; + + tcache_head[kind_n_hash] = ix; + tc[head_old].prev = &tc[ix]; + tc[ix].next = &tc[head_old]; +} + +// Find cached image of fg+bg +// If not found, compose and cache it +static int tcache_find_id_normal(int kind, int *fg, int *bg, int *is_new) +{ + unsigned int id[4]; + int i; + int hash = 0; // Don't use hash + int kind_n_hash = kind*tc_hash + hash; + int nlayer = tcache_nlayer_normal[kind]; + tile_cache *tc = tcache[kind]; + tile_cache *tc0 = &tc[tcache_head[kind_n_hash]]; +#if DEBUG + int search_count =0; +#endif + + *is_new=0; + + for(i=0;inext; + + if(tc0->id[0] == id[0]) break; + + if(tc0->id[0]==0 || next == NULL) + { + //end of used cache + *is_new = 1; + tcache_compose_normal(tc0->idx, fg, bg); + for(i=0;iid[i] = id[i]; + break; + } + tc0 = next; +#if DEBUG + search_count++; +#endif + } + lift_tcache(tc0->idx, kind, hash); + +#if DEBUG +//DEBUGLOG("%d\n",search_count); +#endif + + return tc0->idx; +} + + +/*** overlay a tile onto an exsisting image with transpalency operation */ +void tcache_overlay(img_type img, int idx, + int tile, int region, int *copy, char *mask) +{ + + int x0, y0; + int sx= region_sx_normal[region]; + int sy= region_sy_normal[region]; + int wx= region_wx_normal[region]; + int wy= region_wy_normal[region]; + int ox=0; + int oy=0; + img_type src = TileImg; + int uy=wy; + + tile &= TILE_FLAG_MASK; + + x0 = (tile % TILE_PER_ROW)*TILE_X; + y0 = (tile / TILE_PER_ROW)*TILE_Y; + + if (mask != NULL) + { + if(*copy ==2) + ImgCopyMaskedH(src, x0 + sx, y0 + sy, wx, wy, + img, ox, oy + idx*uy, mask); + else + ImgCopyMasked(src, x0 + sx, y0 + sy, wx, wy, + img, ox, oy + idx*uy, mask); + *copy = 0; + return; + } + // Hack: hilite rim color + else if(*copy ==2) + { + *copy=0; + ImgCopyH(src, x0 + sx, y0 + sy, wx, wy, + img, ox, oy + idx*uy, *copy); + return; + } else + { + ImgCopy(src, x0 + sx, y0 + sy, wx, wy, + img, ox, oy + idx*uy, *copy); + } + *copy = 0; +} + +void tcache_overlay_player(img_type img, int dx, int dy, + int part, int idx, int ymax, int *copy) +{ + int xs, ys; + int tidx = tilep_parts_start[part]; + int nx = tilep_parts_nx[part]; + int ny = tilep_parts_ny[part]; + int ox = tilep_parts_ox[part]; + int oy = tilep_parts_oy[part]; + int wx = TILE_X/nx; + int wy = TILE_Y/ny; + + if(!idx)return; + idx--; + + tidx += idx/(nx*ny); + + if (oy+wy > ymax) wy -= oy + wy - ymax; + if (wy<=0) return; + + xs = (tidx % TILEP_PER_ROW)*TILE_X; + ys = (tidx / TILEP_PER_ROW)*TILE_Y; + + xs += (idx % nx)*(TILE_X/nx); + ys += ((idx/nx) % ny)*(TILE_Y/ny); + + ImgCopy(PlayerImg, xs, ys, wx, wy, + img, dx+ox, dy+oy, *copy); + + *copy = 0; +} + +/** overlay a tile onto an exsisting image with transpalency operation */ +void register_tile_mask(int tile, int region, int *copy, + char *mask, bool smalltile) +{ + int x0, y0, x, y; + int sx= region_sx_normal[region]; + int sy= region_sy_normal[region]; + int wx= region_wx_normal[region]; + int wy= region_wy_normal[region]; + int ox=0; + int oy=0; + img_type src = TileImg; + int ux=wx; + int uy=wy; + + tile &= TILE_FLAG_MASK; + + x0 = (tile % TILE_PER_ROW)*TILE_X; + y0 = (tile / TILE_PER_ROW)*TILE_Y; + + if (*copy!=0) memset(mask, 0, ux*uy); + + if (*copy == 2) + { + if (smalltile) + { + ux = wx; + } + for(x=0;x= tile_xmax || yy>= tile_ymax) return; + fg[0] = t1buf[xx+1][yy+1]; + bg[0] = t2buf[xx+1][yy+1]; + + ix_old = screen_tcach_idx[kind][xx+yy*tile_xmax]; + + ix = tcache_find_id_normal(kind, fg, bg, &is_new); + + screen_tcach_idx[kind][xx+yy*tile_xmax]=ix; + if(is_new || ix!=ix_old || force_redraw_tile) + { + int x_dest = tcache_ox_normal[kind]+xx* TILE_UX_NORMAL; + int y_dest = tcache_oy_normal[kind]+yy* TILE_UY_NORMAL; + int wx = tcache_wx_normal[kind]; + int wy = tcache_wy_normal[kind]; + + ImgCopy(tcache_image[kind], + 0, ix*wy, wx, wy, + ScrBufImg, x_dest, y_dest, 1); + } +} + +void update_single_grid(int x, int y) +{ + int sx, sy, wx, wy; + + tile_draw_grid(TCACHE0_NORMAL, x, y); + sx = x*TILE_UX_NORMAL; + sy = y*TILE_UY_NORMAL; + wx = TILE_UX_NORMAL; + wy = TILE_UY_NORMAL; + region_tile->redraw(sx, sy, sx+wx-1, sy+wy-1); +} + + +// Discard cache containing specific tile +void redraw_spx_tcache(int tile) +{ + int kind, idx, layer, redraw; + int fg[4], bg[4]; + for(kind = 0; kind < tcache_kind; kind++) + { + int nlayer = tcache_nlayer_normal[kind]; + + for(idx = 0; idx < max_tcache; idx++) + { + redraw = 0; + for(layer = 0; layer < nlayer; layer++) + { + fg[layer] = (tcache[kind][idx].id[layer]-1)>>16; + bg[layer] = (tcache[kind][idx].id[layer]-1)&0xffff; + if((fg[layer]&TILE_FLAG_MASK) == tile) redraw = 1; + if((bg[layer]&TILE_FLAG_MASK) == tile) redraw = 1; + } + if (redraw) + { + tcache_compose_normal(idx, fg, bg); + } + } + } +} + +void get_bbg(int bg, int *new_bg, int *bbg) +{ + int bg0 = bg & TILE_FLAG_MASK; + *bbg=simple_iso_tile(TILE_DNGN_FLOOR); + *new_bg= bg0; + + if(bg0 == TILE_DNGN_UNSEEN || + (bg0 >= TILE_DNGN_ROCK_WALL_OFS && bg0 < TILE_DNGN_WAX_WALL) || + bg0 == 0) + *bbg = 0; + else + if( bg0 >= TILE_DNGN_FLOOR && bg0 <= TILE_DNGN_SHALLOW_WATER) + { + *bbg = bg; + *new_bg = 0; + } +} + +int sink_mask_tile(int bg, int fg) +{ + int bg0 = bg & TILE_FLAG_MASK; + + if (fg == 0 || (fg & TILE_FLAG_FLYING)!=0) return 0; +/* + if ( bg0 == simple_iso_tile(TILE_DNGN_SHALLOW_WATER)) + return TILE_MASK_SHALLOW_WATER; + if ( bg0 == simple_iso_tile(TILE_DNGN_DEEP_WATER)) + return TILE_MASK_DEEP_WATER; + if ( bg0 >= simple_iso_tile(TILE_DNGN_LAVA) && + bg0 <= simple_iso_tile(TILE_DNGN_LAVA)+3) + return TILE_MASK_LAVA; +*/ + if ( bg0 >= simple_iso_tile(TILE_DNGN_LAVA) && + bg0 <= simple_iso_tile(TILE_DNGN_SHALLOW_WATER) + 3) + { + int result = TILE_SINK_MASK;//simple_iso_tile(TILE_SINK_MASK); + if ((fg & TILE_FLAG_MASK) >= TILE_NORMAL) + result = simple_iso_tile(TILE_SINK_MASK); + //if ((fg & TILE_FLAG_MASK) >= TILE_NORMAL) result++; + return result; + } + + return 0; +} + +//normal +void tcache_compose_normal(int ix, int *fg, int *bg){ + int bbg; + int new_bg; + int c=1; + int fg0=fg[0]; + int bg0=bg[0]; + int sink; + img_type tc_img = tcache_image[TCACHE0_NORMAL]; + + get_bbg(bg0, &new_bg, &bbg); + + if(bbg) tcache_overlay(tc_img, ix, bbg, TREGION_0_NORMAL, &c, NULL); + if(new_bg) tcache_overlay(tc_img, ix, new_bg, TREGION_0_NORMAL, &c, NULL); + + //Tile cursor + if(bg0&TILE_FLAG_CURSOR) + { + int type = ((bg0&TILE_FLAG_CURSOR) == TILE_FLAG_CURSOR1) ? + TILE_CURSOR : TILE_CURSOR2; + + if ((bg0&TILE_FLAG_CURSOR) == TILE_FLAG_CURSOR3) type = TILE_CURSOR3; + + tcache_overlay(tc_img, ix, type, TREGION_0_NORMAL, &c, NULL); + + if (type != TILE_CURSOR3) c = 2;// Hilite + } + + if (bg0 & TILE_FLAG_RAY) + tcache_overlay(tc_img, ix, TILE_RAY_MESH, TREGION_0_NORMAL, &c, NULL); + + if(fg0) + { + sink = sink_mask_tile(bg0, fg0); + if (sink) + { + int flag=2; + register_tile_mask(sink, TREGION_0_NORMAL, &flag, sink_mask); + tcache_overlay(tc_img, ix, fg0, TREGION_0_NORMAL, &c, sink_mask); + } + else + tcache_overlay(tc_img, ix, fg0, TREGION_0_NORMAL, &c, NULL); + } + + if (fg0 & TILE_FLAG_NET) + tcache_overlay(tc_img, ix, TILE_TRAP_NET, TREGION_0_NORMAL, &c, NULL); + + if(fg0 & TILE_FLAG_S_UNDER) + tcache_overlay(tc_img, ix, TILE_SOMETHING_UNDER, + TREGION_0_NORMAL, &c, NULL); + + //Pet mark + if((fg0&TILE_FLAG_MAY_STAB) == TILE_FLAG_PET) + tcache_overlay(tc_img, ix, TILE_HEART, TREGION_0_NORMAL, &c, NULL); + + if((fg0&TILE_FLAG_MAY_STAB) == TILE_FLAG_STAB) + tcache_overlay(tc_img, ix, TILE_STAB_BRAND, TREGION_0_NORMAL, &c, NULL); + else if((fg0&TILE_FLAG_MAY_STAB) == TILE_FLAG_MAY_STAB) + tcache_overlay(tc_img, ix, TILE_MAY_STAB_BRAND, TREGION_0_NORMAL, &c, + NULL); + + if(bg0&TILE_FLAG_UNSEEN) + tcache_overlay(tc_img, ix, TILE_MESH, TREGION_0_NORMAL, &c, NULL); + + if(bg0&TILE_FLAG_MM_UNSEEN) + tcache_overlay(tc_img, ix, TILE_MAGIC_MAP_MESH, TREGION_0_NORMAL, &c, NULL); +} + +// Tile cursor +int TileDrawCursor(int x, int y, int cflag) +{ + int oldc = t2buf[x+1][y+1] & TILE_FLAG_CURSOR; + t2buf[x+1][y+1] &= ~ TILE_FLAG_CURSOR; + t2buf[x+1][y+1] |= cflag; + update_single_grid(x, y); + return oldc; +} + +void TileDrawBolt(int x, int y, int fg){ + + t1buf[x+1][y+1]=fg | TILE_FLAG_FLYING; + update_single_grid(x, y); +} + +void StoreDungeonView(short unsigned int *tileb) +{ + int x, y; + int count = 0; + + if (tileb == NULL) + tileb = tb_bk; + + for(y=0;yredraw(); +} + +void TileDrawFarDungeon(int cx, int cy) +{ + short unsigned int tb[TILE_DAT_YMAX*TILE_DAT_XMAX*2]; + + int count = 0; + for(int y=0; yredraw(); +} + +void TileDrawMap(int gx, int gy) +{ + TileDrawFarDungeon(gx, gy); +} + +// Load optional wall tile +static void TileLoadWallAux(int idx_src, int idx_dst, img_type wall) +{ + int tile_per_row = ImgWidth(wall) / TILE_X; + + int sx = idx_src % tile_per_row; + int sy = idx_src / tile_per_row; + + sx *= TILE_X; + sy *= TILE_Y; + + ImgCopyToTileImg(idx_dst, wall, sx, sy, 1); +} + +void WallIdx(int &wall, int &floor, int &special) +{ + special = -1; + + if (you.level_type == LEVEL_PANDEMONIUM) + { + switch (mcolour[env.mons_alloc[8]]) + { + case BLUE: + case LIGHTBLUE: + wall = IDX_WALL_ZOT_BLUE; + floor = IDX_FLOOR_ZOT_BLUE; + return; + + case RED: + case LIGHTRED: + wall = IDX_WALL_ZOT_RED; + floor = IDX_FLOOR_ZOT_RED; + return; + + case MAGENTA: + case LIGHTMAGENTA: + wall = IDX_WALL_ZOT_MAGENTA; + floor = IDX_FLOOR_ZOT_MAGENTA; + return; + + case GREEN: + case LIGHTGREEN: + wall = IDX_WALL_ZOT_GREEN; + floor = IDX_FLOOR_ZOT_GREEN; + return; + + case CYAN: + case LIGHTCYAN: + wall = IDX_WALL_ZOT_CYAN; + floor = IDX_FLOOR_ZOT_CYAN; + return; + + case BROWN: + case YELLOW: + wall = IDX_WALL_ZOT_YELLOW; + floor = IDX_FLOOR_ZOT_YELLOW; + return; + + case BLACK: + case WHITE: + default: + wall = IDX_WALL_ZOT_GRAY; + floor = IDX_FLOOR_ZOT_GRAY; + return; + } + } + else if (you.level_type == LEVEL_ABYSS) + { + wall = IDX_WALL_UNDEAD; + floor = IDX_FLOOR_UNDEAD; + return; + } + else if (you.level_type == LEVEL_LABYRINTH) + { + wall = IDX_WALL_UNDEAD; + floor = IDX_FLOOR_UNDEAD; + return; + } + else if (you.level_type == LEVEL_PORTAL_VAULT) + { + if (you.level_type_name == "bazaar") + { + // Bazaar tiles here lean towards grass and dirt to emphasize + // both the non-hostile and other-wordly aspects of the + // portal vaults (i.e. they aren't in the dungeon, necessarily.) + int colour = env.floor_colour; + switch (colour) + { + case BLUE: + wall = IDX_WALL_BAZAAR_GRAY; + floor = IDX_FLOOR_BAZAAR_GRASS; + special = IDX_FLOOR_BAZAAR_GRASS1_SPECIAL; + return; + + case RED: + // Reds often have lava, which looks ridiculous + // next to grass or dirt, so we'll use existing + // floor and wall tiles here. + wall = IDX_WALL_ZOT_RED; + floor = IDX_FLOOR_VAULT; + special = IDX_FLOOR_BAZAAR_VAULT_SPECIAL; + return; + + case LIGHTBLUE: + wall = IDX_WALL_HIVE; + floor = IDX_FLOOR_BAZAAR_GRASS; + special = IDX_FLOOR_BAZAAR_GRASS2_SPECIAL; + return; + + case GREEN: + wall = IDX_WALL_BAZAAR_STONE; + floor = IDX_FLOOR_BAZAAR_GRASS; + special = IDX_FLOOR_BAZAAR_GRASS1_SPECIAL; + return; + + case MAGENTA: + wall = IDX_WALL_BAZAAR_STONE; + floor = IDX_FLOOR_BAZAAR_DIRT; + special = IDX_FLOOR_BAZAAR_DIRT_SPECIAL; + return; + + default: + wall = IDX_WALL_VAULT; + floor = IDX_FLOOR_VAULT; + special = IDX_FLOOR_BAZAAR_VAULT_SPECIAL; + return; + } + } + } + + switch (you.where_are_you) + { + case BRANCH_MAIN_DUNGEON: + wall = IDX_WALL_NORMAL; + floor = IDX_FLOOR_NORMAL; + return; + + case BRANCH_HIVE: + wall = IDX_WALL_HIVE; + floor = IDX_FLOOR_HIVE; + return; + + case BRANCH_VAULTS: + wall = IDX_WALL_VAULT; + floor = IDX_FLOOR_VAULT; + return; + + case BRANCH_ELVEN_HALLS: + case BRANCH_HALL_OF_BLADES: + case BRANCH_ECUMENICAL_TEMPLE: + wall = IDX_WALL_HALL; + floor = IDX_FLOOR_HALL; + return; + + case BRANCH_TARTARUS: + case BRANCH_CRYPT: + case BRANCH_VESTIBULE_OF_HELL: + wall = IDX_WALL_UNDEAD; + floor = IDX_FLOOR_UNDEAD; + return; + + case BRANCH_TOMB: + wall = IDX_WALL_TOMB; + floor = IDX_FLOOR_TOMB; + return; + + case BRANCH_DIS: + wall = IDX_WALL_ZOT_CYAN; + floor = IDX_FLOOR_ZOT_CYAN; + return; + + case BRANCH_GEHENNA: + case BRANCH_INFERNO: + case BRANCH_THE_PIT: + wall = IDX_WALL_ZOT_RED; + floor = IDX_FLOOR_ZOT_RED; + return; + + case BRANCH_COCYTUS: + wall = IDX_WALL_ICE; + floor = IDX_FLOOR_ICE; + return; + + case BRANCH_ORCISH_MINES: + wall = IDX_WALL_ORC; + floor = IDX_FLOOR_ORC; + return; + + case BRANCH_LAIR: + wall = IDX_WALL_LAIR; + floor = IDX_FLOOR_LAIR; + return; + + case BRANCH_SLIME_PITS: + wall = IDX_WALL_SLIME; + floor = IDX_FLOOR_SLIME; + return; + + case BRANCH_SNAKE_PIT: + wall = IDX_WALL_SNAKE; + floor = IDX_FLOOR_SNAKE; + return; + + case BRANCH_SWAMP: + wall = IDX_WALL_SWAMP; + floor = IDX_FLOOR_SWAMP; + return; + + case BRANCH_SHOALS: + wall = IDX_WALL_SWAMP; + floor = IDX_FLOOR_SWAMP; + return; + + case BRANCH_CAVERNS: + wall = IDX_WALL_ORC; + floor = IDX_FLOOR_ORC; + return; + + case BRANCH_HALL_OF_ZOT: + if (you.your_level - you.branch_stairs[7] <= 1) + { + wall = IDX_WALL_ZOT_YELLOW; + floor = IDX_FLOOR_ZOT_YELLOW; + return; + } + + switch (you.your_level - you.branch_stairs[7]) + { + case 2: + wall = IDX_WALL_ZOT_GREEN; + floor = IDX_FLOOR_ZOT_GREEN; + return; + case 3: + wall = IDX_WALL_ZOT_CYAN; + floor = IDX_WALL_ZOT_CYAN; + return; + case 4: + wall = IDX_WALL_ZOT_BLUE; + floor = IDX_FLOOR_ZOT_GREEN; + return; + case 5: + default: + wall = IDX_WALL_ZOT_MAGENTA; + floor = IDX_FLOOR_ZOT_MAGENTA; + return; + } + + case NUM_BRANCHES: + break; + + // NOTE: there is no default case in this switch statement so that + // the compiler will issue a warning when new branches are created. + } + + wall = IDX_WALL_NORMAL; + floor = IDX_FLOOR_NORMAL; +} +void TileLoadWall(bool wizard) +{ + clear_tcache(); + force_redraw_tile = true; + + int wall_idx; + int floor_idx; + int special_idx; + WallIdx(wall_idx, floor_idx, special_idx); + + // Number of flavors are generated automatically... + + floor_tile_idx = TILE_DNGN_FLOOR; + floor_flavors = tile_W2D_count[floor_idx]; + int offset = floor_tile_idx; + for (int i = 0; i < floor_flavors; i++) + { + int idx_src = tile_W2D_start[floor_idx] + i; + int idx_dst = offset++; + TileLoadWallAux(idx_src, idx_dst, WallImg); + } + + wall_tile_idx = offset; + wall_flavors = tile_W2D_count[wall_idx]; + for (int i = 0; i < wall_flavors; i++) + { + int idx_src = tile_W2D_start[wall_idx] + i; + int idx_dst = offset++; + TileLoadWallAux(idx_src, idx_dst, WallImg); + } + + if (special_idx != -1) + { + special_tile_idx = offset; + special_flavors = tile_W2D_count[special_idx]; + for (int i = 0; i < special_flavors; i++) + { + int idx_src = tile_W2D_start[special_idx] + i; + int idx_dst = offset++; + TileLoadWallAux(idx_src, idx_dst, WallImg); + } + } + else + { + special_flavors = 0; + } +} + +#define DOLLS_MAX 11 +#define PARTS_DISP_MAX 11 +#define PARTS_ITEMS 12 +#define TILEP_SELECT_DOLL 20 + +typedef struct dolls_data +{ + int parts[TILEP_PARTS_TOTAL]; +} dolls_data; +static dolls_data current_doll; +static int current_gender = 0; +static int current_parts[TILEP_PARTS_TOTAL]; + +static bool draw_doll(img_type img, dolls_data *doll, bool force_redraw = false, bool your_doll = true) +{ + const int p_order[TILEP_PARTS_TOTAL]= + { + TILEP_PART_SHADOW, + TILEP_PART_DRCWING, + TILEP_PART_CLOAK, + TILEP_PART_BASE, + TILEP_PART_BOOTS, + TILEP_PART_LEG, + TILEP_PART_BODY, + TILEP_PART_ARM, + TILEP_PART_HAND1, + TILEP_PART_HAND2, + TILEP_PART_HAIR, + TILEP_PART_BEARD, + TILEP_PART_HELM, + TILEP_PART_DRCHEAD + }; + int p_order2[TILEP_PARTS_TOTAL]; + + int i; + int flags[TILEP_PARTS_TOTAL]; + int parts2[TILEP_PARTS_TOTAL]; + int *parts = doll->parts; + int c=1; + bool changed = false; + + int default_parts[TILEP_PARTS_TOTAL]; + memset(default_parts, 0, sizeof(default_parts)); + + if (your_doll) + { + tilep_race_default(you.species, parts[TILEP_PART_BASE] % 2, + you.experience_level, default_parts); + + if (default_parts[TILEP_PART_BASE] != parts[TILEP_PART_BASE]) + force_redraw = true; + parts[TILEP_PART_BASE] = default_parts[TILEP_PART_BASE]; + + // TODO enne - make these configurable. + parts[TILEP_PART_DRCHEAD] = default_parts[TILEP_PART_DRCHEAD]; + parts[TILEP_PART_DRCWING] = default_parts[TILEP_PART_DRCWING]; + } + + // convert TILEP_SHOW_EQUIP into real parts number + for(i = 0; i < TILEP_PARTS_TOTAL; i++) + { + parts2[i] = parts[i]; + if (parts2[i] == TILEP_SHOW_EQUIP) + { + switch (i) + { + int item; + case TILEP_PART_HAND1: + item = you.equip[EQ_WEAPON]; + if (you.attribute[ATTR_TRANSFORMATION] == + TRAN_BLADE_HANDS) + { + parts2[i] = TILEP_HAND1_BLADEHAND; + } + else if (item == -1) + { + parts2[i] = 0; + } + else + { + parts2[i] = tilep_equ_weapon(you.inv[item]); + } + break; + + case TILEP_PART_HAND2: + item = you.equip[EQ_SHIELD]; + if (you.attribute[ATTR_TRANSFORMATION] == + TRAN_BLADE_HANDS) + { + parts2[i] = TILEP_HAND2_BLADEHAND; + } + else if (item == -1) + { + parts2[i] = 0; + } + else + { + parts2[i] = tilep_equ_shield(you.inv[item]); + } + break; + + case TILEP_PART_BODY: + item = you.equip[EQ_BODY_ARMOUR]; + if (item == -1) + parts2[i] = 0; + else + parts2[i] = tilep_equ_armour(you.inv[item]); + break; + + case TILEP_PART_CLOAK: + item = you.equip[EQ_CLOAK]; + if (item == -1) + parts2[i] = 0; + else + parts2[i] = tilep_equ_cloak(you.inv[item]); + break; + + case TILEP_PART_HELM: + item = you.equip[EQ_HELMET]; + if (item == -1) + parts2[i] = 0; + else + parts2[i] = tilep_equ_helm(you.inv[item]); + + if (parts2[i] == 0 && you.mutation[MUT_HORNS] > 0) + { + switch (you.mutation[MUT_HORNS]) + { + case 1: + parts2[i] = TILEP_HELM_HORNS1; + break; + case 2: + parts2[i] = TILEP_HELM_HORNS2; + break; + case 3: + parts2[i] = TILEP_HELM_HORNS3; + break; + } + } + + break; + + case TILEP_PART_BOOTS: + item = you.equip[EQ_BOOTS]; + if (item == -1) + parts2[i] = 0; + else + parts2[i] = tilep_equ_boots(you.inv[item]); + + if (parts2[i] == 0 && you.mutation[MUT_HOOVES]) + parts2[i] = TILEP_BOOTS_HOOVES; + break; + + case TILEP_PART_ARM: + item = you.equip[EQ_GLOVES]; + if (item == -1) + parts2[i] = 0; + else + parts2[i] = tilep_equ_gloves(you.inv[item]); + + // There is player_has_claws() but it is not equivalent. + // Claws appear if they're big enough to not wear gloves + // or on races that have claws. + if (parts2[i] == 0 && (you.mutation[MUT_CLAWS] >= 3 || + you.species == SP_TROLL || you.species == SP_GHOUL)) + { + parts2[i] = TILEP_ARM_CLAWS; + } + break; + + case TILEP_PART_HAIR: + case TILEP_PART_BEARD: + parts2[i] = default_parts[i]; + break; + + case TILEP_PART_LEG: + default: + parts2[i] = 0; + } + } + + if (parts2[i] != current_parts[i]) + changed = true; + current_parts[i] = parts2[i]; + } + + + if (!changed && !force_redraw) + { + return false; + } + + tilep_calc_flags(parts2, flags); + ImgClear(img); + + // Hack: change overlay order of boots/skirts + for(i = 0; i < TILEP_PARTS_TOTAL; i++) + p_order2[i]=p_order[i]; + + // swap boot and leg-armor + if (parts2[TILEP_PART_LEG] < TILEP_LEG_SKIRT_OFS) + { + p_order2[5] = TILEP_PART_LEG; + p_order2[4] = TILEP_PART_BOOTS; + } + + for(i = 0; i < TILEP_PARTS_TOTAL; i++) + { + int p = p_order2[i]; + int ymax = TILE_Y; + if (flags[p]==TILEP_FLAG_CUT_CENTAUR) ymax=18; + if (flags[p]==TILEP_FLAG_CUT_NAGA) ymax=18; + + if (parts2[p] && p == TILEP_PART_BOOTS && + (parts2[p] == TILEP_BOOTS_NAGA_BARDING || + parts2[p] == TILEP_BOOTS_CENTAUR_BARDING)) + { + // Special case for barding. They should be in "boots" but because + // they're double-wide, they're stored in a different part. We just + // intercept it here before drawing. + char tile = parts2[p] == TILEP_BOOTS_NAGA_BARDING ? + TILEP_SHADOW_NAGA_BARDING : TILEP_SHADOW_CENTAUR_BARDING; + tcache_overlay_player(img, 0, 0, TILEP_PART_SHADOW, tile, + TILE_Y, &c); + } + else if(parts2[p] && flags[p]) + { + tcache_overlay_player(img, 0, 0, p, parts2[p], ymax, &c); + } + } + return true; +} + +static void load_doll_data(const char *fn, dolls_data *dolls, int max, + int *mode, int *cur) +{ + char fbuf[1024]; + int cur0 = 0; + int mode0 = TILEP_M_DEFAULT; + FILE *fp = NULL; + + std::string dollsTxtString = datafile_path(fn, false, true); + const char *dollsTxt = dollsTxtString.c_str()[0] == 0 ? + "dolls.txt" : dollsTxtString.c_str(); + + if ( (fp = fopen(dollsTxt, "r")) == NULL ) + { + // File doesn't exist. By default, use show equipment defaults. + // This will be saved out (if possible.) + + for (int i = 0; i < max; i++) + { + // Don't take gender too seriously. -- Enne + tilep_race_default(you.species, coinflip() ? 1 : 0, + you.experience_level, dolls[i].parts); + + dolls[i].parts[TILEP_PART_SHADOW] = 1; + dolls[i].parts[TILEP_PART_CLOAK] = TILEP_SHOW_EQUIP; + dolls[i].parts[TILEP_PART_BOOTS] = TILEP_SHOW_EQUIP; + dolls[i].parts[TILEP_PART_LEG] = TILEP_SHOW_EQUIP; + dolls[i].parts[TILEP_PART_BODY] = TILEP_SHOW_EQUIP; + dolls[i].parts[TILEP_PART_ARM] = TILEP_SHOW_EQUIP; + dolls[i].parts[TILEP_PART_HAND1] = TILEP_SHOW_EQUIP; + dolls[i].parts[TILEP_PART_HAND2] = TILEP_SHOW_EQUIP; + dolls[i].parts[TILEP_PART_HAIR] = TILEP_SHOW_EQUIP; + dolls[i].parts[TILEP_PART_BEARD] = TILEP_SHOW_EQUIP; + dolls[i].parts[TILEP_PART_HELM] = TILEP_SHOW_EQUIP; + } + + } + else + { + memset(fbuf, 0, sizeof(fbuf)); + if (fscanf(fp, "%s", fbuf) != EOF) + { + if (strcmp(fbuf, "MODE=LOADING") == 0) + mode0 = TILEP_M_LOADING; + } + if (fscanf(fp, "%s", fbuf) != EOF) + { + if (strncmp(fbuf, "NUM=", 4) == 0) + { + sscanf(fbuf, "NUM=%d",&cur0); + if ( (cur0 < 0)||(cur0 > 10) ) + cur0 = 0; + } + } + if (max == 1) + { + for(int j = 0; j <= cur0; j++) + { + if (fscanf(fp, "%s", fbuf) != EOF) + { + tilep_scan_parts(fbuf, dolls[0].parts); + } + else + { + break; + } + } + } + else + { + for(int j = 0; j < max; j++) + { + if (fscanf(fp, "%s", fbuf) != EOF) + { + tilep_scan_parts(fbuf, dolls[j].parts); + } + else + { + break; + } + } + } + + fclose(fp); + } + *mode = mode0; + *cur = cur0; + + current_gender = dolls[cur0].parts[TILEP_PART_BASE] % 2; +} + +void TilePlayerEdit() +{ + const int p_lines[PARTS_ITEMS]= + { + TILEP_SELECT_DOLL, + TILEP_PART_BASE, + TILEP_PART_HELM, + TILEP_PART_HAIR, + TILEP_PART_BEARD, + TILEP_PART_HAND1, + TILEP_PART_HAND2, + TILEP_PART_ARM, + TILEP_PART_BODY, + TILEP_PART_LEG, + TILEP_PART_BOOTS, + TILEP_PART_CLOAK + }; + + const char *p_names[PARTS_ITEMS]= + { + " Index:", + " Gendr:", + " Helm :", + " Hair :", + " Beard:", + " Weapn:", + " Shild:", + " Glove:", + " Armor:", + " Legs :", + " Boots:", + " Cloak:" + }; + + const char *gender_name[2] ={ + "Male", + "Fem " + }; + +#define display_parts_idx(part) \ +{ \ + gotoxy(10 , part + 1, GOTO_STAT); \ + tilep_part_to_str(dolls[cur_doll].parts[ p_lines[part] ], ibuf);\ + cprintf(ibuf);\ +} + + dolls_data dolls[DOLLS_MAX], undo_dolls[DOLLS_MAX]; + int copy_doll[TILEP_PARTS_TOTAL]; + + //int parts[TILEP_PARTS_TOTAL]; + int i, j, k, x, y, kin, done = 0; + int cur_doll = 0; + int pre_part = 0; + int cur_part = 0; + int mode = TILEP_M_DEFAULT; + int d = 0; + FILE *fp; + char fbuf[80], ibuf[8]; + int tile_str, sx, sy; + + img_type PartsImg = ImgCreateSimple(TILE_X * PARTS_DISP_MAX, TILE_Y * 1); + + img_type DollsListImg = ImgCreateSimple( TILE_X * DOLLS_MAX, TILE_Y * 1); + + ImgClear(ScrBufImg); + + memset( copy_doll, 0, sizeof(dolls_data) ); + tilep_race_default(you.species, current_gender, + you.experience_level, copy_doll); + + for(j = 0; j < DOLLS_MAX; j++) + { + memset( dolls[j].parts, 0, sizeof(dolls_data) ); + memset( undo_dolls[j].parts, 0, sizeof(dolls_data) ); + tilep_race_default(you.species, current_gender, you.experience_level, + dolls[j].parts); + tilep_race_default(you.species, current_gender, you.experience_level, + undo_dolls[j].parts); + } + + // load settings + load_doll_data("dolls.txt", dolls, DOLLS_MAX, &mode, &cur_doll); + for(j = 0; j < DOLLS_MAX; j++) + { + undo_dolls[j] = dolls[j]; + } + clrscr(); + gotoxy(1,1, GOTO_MSG); + mpr("Select Part : [j][k]or[up][down]"); + mpr("Change Part/Page : [h][l]or[left][right]/[H][L]"); + mpr("Class-Default : [CTRL]+[D]"); + mpr("Toggle Equipment Mode : [*]"); + mpr("Take off/Take off All : [t]/[CTRL]+[T]"); + mpr("Copy/Paste/Undo : [CTRL]+[C]/[CTRL]+[V]/[CTRL]+[Z]"); + mpr("Randomize : [CTRL]+[R]"); + + gotoxy(1, 8, GOTO_MSG); + cprintf("Toggle Startup mode : [m] (Current mode:%s)", + ( (mode == TILEP_M_LOADING) ? "Load User's Settings":"Class Default" )); + for (j=0; j < PARTS_ITEMS; j++) + { + gotoxy(1, 1+j, GOTO_STAT); + cprintf(p_names[j]); + } + +#define PARTS_Y (TILE_Y*11) + +// draw strings "Dolls/Parts" into backbuffer + tile_str = TILE_TEXT_PARTS_E; + sx = (tile_str % TILE_PER_ROW)*TILE_X; + sy = (tile_str / TILE_PER_ROW)*TILE_Y; + + ImgCopy(TileImg, sx, sy, TILE_X, TILE_Y/2, + ScrBufImg, (TILE_X * 3) - 8,(TILE_Y * 4) - 8-24, 0); + ImgCopy(TileImg, sx, sy+ TILE_Y/2, TILE_X, TILE_Y/2, + ScrBufImg, (TILE_X * 4) - 8,(TILE_Y * 4) - 8-24, 0); + + tile_str = TILE_TEXT_DOLLS_E; + sx = (tile_str % TILE_PER_ROW)*TILE_X; + sy = (tile_str / TILE_PER_ROW)*TILE_Y; + ImgCopy(TileImg, sx, sy, TILE_X, TILE_Y/2, + ScrBufImg, (TILE_X * 3) - 8,PARTS_Y - 8 -24, 0); + ImgCopy(TileImg, sx, sy+ TILE_Y/2, TILE_X, TILE_Y/2, + ScrBufImg, (TILE_X * 4) - 8,PARTS_Y - 8 -24, 0); + + ImgClear(DollsListImg); + for(j = 0; j < DOLLS_MAX; j++) + { + draw_doll(DollCacheImg, &dolls[j], true); + ImgCopy(DollCacheImg, 0, 0, + ImgWidth(DollCacheImg), ImgHeight(DollCacheImg), + DollsListImg, j * TILE_X, 0, 1); + } + + done = 0; + + while (!done) + { + static int inc = 1; + static int cur_inc = 1; + + ImgClear(PartsImg); + + region_tile->DrawPanel((TILE_X * 3) - 8, (TILE_Y * 4) - 8, + ImgWidth(PartsImg) + 16, ImgHeight(PartsImg) + 16); + region_tile->DrawPanel((TILE_X * 3) - 8, PARTS_Y - 8, + ImgWidth(DollsListImg) + 16, ImgHeight(DollsListImg) + 16); + region_tile->DrawPanel(8*TILE_X - 8, 8*TILE_Y - 8, + TILE_X + 16, TILE_Y + 16); + + if (cur_part == 0) + { + // now selecting doll index + gotoxy(10 , 1, GOTO_STAT); + cprintf("%02d", cur_doll); + gotoxy(10 , 2, GOTO_STAT); + current_gender = dolls[cur_doll].parts[TILEP_PART_BASE] % 2; + cprintf("%s", gender_name[ current_gender ]); + + for (i = 2; i tilep_parts_total[ p_lines[cur_part] ]) + index = index - tilep_parts_total[ p_lines[cur_part] ] - 1; + tcache_overlay_player(PartsImg, i * TILE_X, 0, + p_lines[cur_part], index, TILE_Y, &d); + } + ImgCopy(PartsImg, 0, 0, ImgWidth(PartsImg), ImgHeight(PartsImg), + ScrBufImg, 3 * TILE_X, 4 * TILE_Y, 0); + ImgCopyFromTileImg( TILE_CURSOR, ScrBufImg, + (3 + PARTS_DISP_MAX / 2) * TILE_X, 4 * TILE_Y, 0); + } + draw_doll(DollCacheImg, &dolls[cur_doll], true); + + ImgCopy(DollCacheImg, 0, 0, TILE_X, TILE_Y, + DollsListImg, cur_doll*TILE_X, 0, 1); + + ImgCopyToTileImg(TILE_PLAYER, DollCacheImg, 0, 0, 1); + ImgCopyFromTileImg(TILE_PLAYER, ScrBufImg, 8*TILE_X, 8*TILE_Y, 0); + ImgCopy(DollsListImg, 0, 0, + ImgWidth(DollsListImg), ImgHeight(DollsListImg), + ScrBufImg, 3 * TILE_X, PARTS_Y, 0); + ImgCopyFromTileImg( TILE_CURSOR, ScrBufImg, + (3 + cur_doll) * TILE_X, PARTS_Y, 0); + region_tile->redraw(); + + gotoxy(10 , cur_part + 1, GOTO_STAT); + + if (cur_part == 1) + { + current_gender = dolls[cur_doll].parts[p_lines[cur_part] ]%2; + cprintf("%s", gender_name[ current_gender ]); + } + else if (cur_part != 0) + { + tilep_part_to_str(dolls[cur_doll].parts[ p_lines[cur_part] ], ibuf); + cprintf("%s", ibuf); + } + + gotoxy(1, pre_part + 1, GOTO_STAT);cprintf(" "); + gotoxy(1, cur_part + 1, GOTO_STAT);cprintf("->"); + pre_part = cur_part; + + /* Get a key */ + kin = getch(); + + inc = cur_inc = 0; + + /* Analyze the key */ + switch (kin) + { + case 0x1B: //ESC + done = 1; + break; + + case 'h': + inc = -1; + break; + case 'l': + inc = +1; + break; + case 'H': + inc = -PARTS_DISP_MAX; + break; + case 'L': + inc = +PARTS_DISP_MAX; + break; + case 'j': + { + if (cur_part < (PARTS_ITEMS-1) ) + cur_part += 1; + else + cur_part = 0; + break; + } + case 'k': + { + if (cur_part > 0) + cur_part -= 1; + else + cur_part = (PARTS_ITEMS-1); + break; + } + case 'm': + { + if (mode == TILEP_M_LOADING) + mode = TILEP_M_DEFAULT; + else + mode = TILEP_M_LOADING; + + gotoxy(1, 8, GOTO_MSG); + cprintf("Toggle Startup mode : [m] (Current mode:%s)", + ( (mode == TILEP_M_LOADING) ? "Load User's Settings":"Class Default" )); + break; + } + + case 't': + { + if (cur_part >= 2) + { + dolls[cur_doll].parts[ p_lines[cur_part] ] = 0; + display_parts_idx(cur_part); + } + break; + } + + case CONTROL('D'): + { + tilep_job_default(you.char_class, current_gender, + dolls[cur_doll].parts); + for(i = 2; i < PARTS_ITEMS; i++) + { + display_parts_idx(i); + } + break; + } + + case CONTROL('T'): + { + for(i = 2; i < PARTS_ITEMS; i++) + { + undo_dolls[cur_doll].parts[ p_lines[i] ] = dolls[cur_doll].parts[ p_lines[i] ]; + dolls[cur_doll].parts[ p_lines[i] ] = 0; + display_parts_idx(i); + } + break; + } + + case CONTROL('C'): + { + for(i = 2; i < PARTS_ITEMS; i++) + { + copy_doll[ p_lines[i] ] = dolls[cur_doll].parts[ p_lines[i] ]; + } + break; + } + + case CONTROL('V'): + { + for(i = 2; i < PARTS_ITEMS; i++) + { + undo_dolls[cur_doll].parts[ p_lines[i] ] = dolls[cur_doll].parts[ p_lines[i] ]; + dolls[cur_doll].parts[ p_lines[i] ] = copy_doll[ p_lines[i] ]; + display_parts_idx(i); + } + break; + } + + case CONTROL('Z'): + { + for(i = 2; i < PARTS_ITEMS; i++) + { + dolls[cur_doll].parts[ p_lines[i] ] = undo_dolls[cur_doll].parts[ p_lines[i] ]; + display_parts_idx(i); + } + break; + } + + case CONTROL('R'): + { + for(i = 2; i < PARTS_ITEMS; i++) + { + undo_dolls[cur_doll].parts[ p_lines[i] ] = dolls[cur_doll].parts[ p_lines[i] ]; + } + dolls[cur_doll].parts[TILEP_PART_CLOAK] = + one_chance_in(2) * ( random2(tilep_parts_total[ TILEP_PART_CLOAK ]) + 1); + dolls[cur_doll].parts[TILEP_PART_BOOTS] = + ( random2(tilep_parts_total[ TILEP_PART_BOOTS ] + 1) ); + dolls[cur_doll].parts[TILEP_PART_LEG] = + ( random2(tilep_parts_total[ TILEP_PART_LEG ] + 1) ); + dolls[cur_doll].parts[TILEP_PART_BODY] = + ( random2(tilep_parts_total[ TILEP_PART_BODY ] + 1) ); + dolls[cur_doll].parts[TILEP_PART_ARM] = + one_chance_in(2) * ( random2(tilep_parts_total[ TILEP_PART_ARM ]) + 1); + dolls[cur_doll].parts[TILEP_PART_HAND1] = + ( random2(tilep_parts_total[ TILEP_PART_HAND1 ] + 1) ); + dolls[cur_doll].parts[TILEP_PART_HAND2] = + one_chance_in(2) * ( random2(tilep_parts_total[ TILEP_PART_HAND2 ]) + 1); + dolls[cur_doll].parts[TILEP_PART_HAIR] = + ( random2(tilep_parts_total[ TILEP_PART_HAIR ] + 1) ); + dolls[cur_doll].parts[TILEP_PART_BEARD] = + ( (dolls[cur_doll].parts[TILEP_PART_BASE] + 1) % 2) * + one_chance_in(4) * ( random2(tilep_parts_total[ TILEP_PART_BEARD ]) + 1 ); + dolls[cur_doll].parts[TILEP_PART_HELM] = + one_chance_in(2) * ( random2(tilep_parts_total[ TILEP_PART_HELM ]) + 1 ); + for(i = 2; i < PARTS_ITEMS; i++) + { + display_parts_idx(i); + } + break; + } + case '*': + { + int part = p_lines[cur_part]; + int *target = &dolls[cur_doll].parts[part]; + + if (part == TILEP_PART_BASE) + continue; + if (*target == TILEP_SHOW_EQUIP) + *target = 0; + else + *target = TILEP_SHOW_EQUIP; + + display_parts_idx(cur_part); + break; + } +#ifdef WIZARD + case '1': + dolls[cur_doll].parts[TILEP_PART_DRCHEAD]++; + dolls[cur_doll].parts[TILEP_PART_DRCHEAD] %= + tilep_parts_total[TILEP_PART_DRCHEAD] -1; + break; + case '2': + dolls[cur_doll].parts[TILEP_PART_DRCWING]++; + dolls[cur_doll].parts[TILEP_PART_DRCWING] %= + tilep_parts_total[TILEP_PART_DRCWING] -1; + break; +#endif + default: + { + } + } + + if (inc != 0) + { + int *target = &dolls[cur_doll].parts[ p_lines[cur_part] ]; + + if (cur_part == 0) + { + if (inc > 0) + cur_doll++; + else + cur_doll--; + if (cur_doll < 0) + cur_doll = DOLLS_MAX -1; + else if (cur_doll == DOLLS_MAX) + cur_doll = 0; + } + else if (cur_part == 1) + { + if (*target % 2) + (*target)++; + else + (*target)--; + } + else + { + if (*target == TILEP_SHOW_EQUIP) continue; + (*target) += inc; + (*target) += tilep_parts_total[ p_lines[cur_part] ]+1; + (*target) %= tilep_parts_total[ p_lines[cur_part] ]+1; + } + } + + delay(20); + } + + current_doll = dolls[cur_doll]; + draw_doll(DollCacheImg, ¤t_doll); + ImgCopyToTileImg(TILE_PLAYER, DollCacheImg, 0, 0, 1); + + std::string dollsTxtString = datafile_path("dolls.txt", false, true); + const char *dollsTxt = dollsTxtString.c_str()[0] == 0 ? + "dolls.txt" : dollsTxtString.c_str(); + + if ( (fp = fopen(dollsTxt, "w+")) == NULL ) + { + } + else + { + fprintf(fp, "MODE=%s\n", ( (mode == TILEP_M_LOADING) ? "LOADING":"DEFAULT" ) ); + fprintf(fp, "NUM=%02d\n", cur_doll); + for(j = 0; j < DOLLS_MAX; j++) + { + tilep_print_parts(fbuf, dolls[j].parts); + fprintf(fp, "%s\n", fbuf); + } + fclose(fp); + } + + ImgDestroy(PartsImg); + ImgDestroy(DollsListImg); + + ImgClear(ScrBufImg); + redraw_spx_tcache(TILE_PLAYER); + + for(x=0;x>8)&1; + + for (x=0; x 25) p= TILEP_BODY_PLATE_BLACK; + else + if (ac > 20) p= TILEP_BODY_BANDED; + else + if (ac > 15) p= TILEP_BODY_SCALEMAIL; + else + if (ac > 10) p= TILEP_BODY_CHAINMAIL; + else + if (ac > 5 ) p= TILEP_BODY_LEATHER_HEAVY; + else + p= TILEP_BODY_ROBE_BLUE; + doll.parts[x] = p; + } + } + } + + int sk = ghost.values[GVAL_BEST_SKILL]; + int dam = ghost.values[GVAL_DAMAGE]; + int p = 0; + + dam *= (5 + pseudo_rand % 11); + dam /= 10; + + if (sk == SK_MACES_FLAILS) + { + if (dam>30) p = TILEP_HAND1_GREAT_FRAIL; + else + if (dam>25) p = TILEP_HAND1_GREAT_MACE; + else + if (dam>20) p = TILEP_HAND1_SPIKED_FRAIL; + else + if (dam>15) p = TILEP_HAND1_MORNINGSTAR; + else + if (dam>10) p = TILEP_HAND1_FRAIL; + else + if (dam>5) p = TILEP_HAND1_MACE; + else + p = TILEP_HAND1_CLUB_SLANT; + + doll.parts[TILEP_PART_HAND1] = p; + } + else + if (sk == SK_SHORT_BLADES) + { + if (dam>20) p = TILEP_HAND1_SABRE; + else + if (dam>10) p = TILEP_HAND1_SHORT_SWORD_SLANT; + else + p = TILEP_HAND1_DAGGER_SLANT; + + doll.parts[TILEP_PART_HAND1] = p; + } + else + if (sk == SK_LONG_SWORDS) + { + if (dam>25) p = TILEP_HAND1_GREAT_SWORD_SLANT; + else + if (dam>20) p = TILEP_HAND1_KATANA_SLANT; + else + if (dam>15) p = TILEP_HAND1_SCIMITAR; + else + if (dam>10) p = TILEP_HAND1_LONG_SWORD_SLANT; + else + p = TILEP_HAND1_FALCHION; + + doll.parts[TILEP_PART_HAND1] = p; + } + else + if (sk == SK_AXES) + { + if (dam>30) p = TILEP_HAND1_EXECUTIONERS_AXE; + else + if (dam>20) p = TILEP_HAND1_BATTLEAXE; + else + if (dam>15) p = TILEP_HAND1_BROAD_AXE; + else + if (dam>10) p = TILEP_HAND1_WAR_AXE; + else + p = TILEP_HAND1_HAND_AXE; + + doll.parts[TILEP_PART_HAND1] = p; + } + else + if (sk == SK_POLEARMS) + { + if (dam>30) p = TILEP_HAND1_GLAIVE; + else + if (dam>20) p = TILEP_HAND1_SCYTHE; + else + if (dam>15) p = TILEP_HAND1_HALBERD; + else + if (dam>10) p = TILEP_HAND1_TRIDENT2; + else + if (dam>10) p = TILEP_HAND1_HAMMER; + else + p = TILEP_HAND1_SPEAR; + + doll.parts[TILEP_PART_HAND1] = p; + } + else + if (sk == SK_BOWS) + doll.parts[TILEP_PART_HAND1] = TILEP_HAND1_BOW2; + else + if (sk == SK_CROSSBOWS) + doll.parts[TILEP_PART_HAND1] = TILEP_HAND1_CROSSBOW; + else + if (sk == SK_SLINGS) + doll.parts[TILEP_PART_HAND1] = TILEP_HAND1_SLING; + else + if (sk == SK_UNARMED_COMBAT) + doll.parts[TILEP_PART_HAND1] = doll.parts[TILEP_PART_HAND2] = 0; + + ImgClear(DollCacheImg); + // Clear + ImgCopyToTileImg(TILE_MONS_PLAYER_GHOST, DollCacheImg, 0, 0, 1); + + draw_doll(DollCacheImg, &doll); + ImgCopyToTileImg(TILE_MONS_PLAYER_GHOST, DollCacheImg, 0, 0, 1, mask, false); + redraw_spx_tcache(TILE_MONS_PLAYER_GHOST); +} + +void TileInitItems() +{ + for(int i=0; inext) + { + if (mc->idx == tile_idx) + return mc->mon_tile; + } + + return tile_idx; +} + +int get_clean_map_idx(int tile_idx) +{ + int idx = tile_idx & TILE_FLAG_MASK; + if (idx >= TILE_CLOUD_FIRE_0 && idx <= TILE_CLOUD_PURP_SMOKE || + idx >= TILE_MONS_SHADOW && idx <= TILE_MONS_WATER_ELEMENTAL || + idx >= TILE_MCACHE_START && idx <= TILE_MCACHE_END) + { + return 0; + } + else + { + return tile_idx; + } +} + +void TileMcacheUnlock() +{ + int i; + + for(i=0;imon_tile && equ_tile == mc->equ_tile + && draco == mc->draco) + { + // match found + // move cache to the head to reduce future search time + if (prev != NULL) prev->next = mc->next; + if (mc != mc_head) mc->next = mc_head; + mc_head = mc; + + // lock it + mc->lock_flag=true; + // return cache index + return mc->idx; + } + else if(draco != 0 && mon_tile == mc->mon_tile && draco == mc->draco) + // second best for draconian: only weapon differ + best2 = mc->idx; + else if(draco != 0 && mon_tile == mc->mon_tile) + // third best for draconian: only class matches + best3 = mc->idx; + + if (!mc->lock_flag) + empty = mc; + if (mc->next == NULL) + break; + prev = mc; + mc = mc->next; + +#ifdef DEBUG_DIAGNOSTICS + count++; +#endif + + }//while + + // cache image not found and no room do draw it + if(empty == NULL) + { +#ifdef DEBUG_DIAGNOSTICS + snprintf( cache_info, 39, "mcache (M %d, E %d) cache full", + mon_tile, equ_tile); + mpr(cache_info, MSGCH_DIAGNOSTICS ); +#endif + if (best2 != -1) + return best2; + if (best3 != -1) + return best3; + if (draco != 0) + return TILE_ERROR; + else + return mon_tile; + } + mc = empty; + +#ifdef DEBUG_DIAGNOSTICS + snprintf( cache_info, 39, "mcache (M %d, E %d) newly composed", + mon_tile, equ_tile); + mpr(cache_info, MSGCH_DIAGNOSTICS ); +#endif + + // compose new image + if (draco != 0) + // race, class, weapon + mcache_compose_draco(mc->idx, draco, mon_tile, equ_tile); + else + mcache_compose(mc->idx, mon_tile, equ_tile); + mc->mon_tile = mon_tile; + mc->equ_tile = equ_tile; + mc->draco = draco; + // move cache to the head to reduce future search time + if (prev) + prev->next = mc->next; + if(mc != mc_head) + mc->next = mc_head; + mc_head = mc; + mc->lock_flag=true; + return mc->idx; +} + +void TileDrawTitle() +{ + int winx, winy, tx, ty, x, y; + img_type TitleImg = ImgLoadFileSimple("title"); + img_type pBuf = region_tile->backbuf; + if (!TitleImg || !pBuf) return; + + tx = ImgWidth(TitleImg); + ty = ImgHeight(TitleImg); + winx = ImgWidth(pBuf); + winy = ImgHeight(pBuf); + + if (tx > winx) + { + x = 0; + tx = winx; + } + else + { + x = (winx - tx)/2; + } + + if (ty > winy) + { + y = 0; + ty = winy; + } + else + { + y = (winy - ty)/2; + } + + ImgCopy(TitleImg, 0, 0, tx, ty, pBuf, x, y, 1); + region_tile->make_active(); + region_tile->redraw(); + ImgDestroy(TitleImg); +} + +static void TilePutch(int c, img_type Dest, int dx, int dy) +{ + int tidx = TILE_CHAR00 + (c-32)/8; + int tidx2 = c & 7; + + int sx = (tidx % TILE_PER_ROW)*TILE_X + (tidx2 % 4)*(TILE_X/4); + int sy = (tidx / TILE_PER_ROW)*TILE_Y + (tidx2 / 4)*(TILE_Y/2);; + + ImgCopy(TileImg, sx, sy, TILE_X/4, TILE_Y/2, + Dest, dx, dy, 0); +} + +void TileRedrawInv(int region) +{ + TileRegionClass *r = (region == REGION_INV1) ? region_item:region_item2; + r->flag = true; + r->make_active(); + r->redraw(); +} + +void TileClearInv(int region) +{ + TileRegionClass *r = (region == REGION_INV1) ? region_item:region_item2; + + for (int i = 0; i < r->mx * r->my; i++) + { + TileDrawOneItem(region, i, 0, -1, -1, -1, false, false, false, false, false); + } + last_cursor = -1; + itemlist_n = 0; +} + +void TileDrawOneItem(int region, int i, char key, int idx, + int tile, int num, bool floor, + bool select, bool equip, bool tried, bool cursed) +{ + ASSERT(idx >= -1 && idx < MAX_ITEMS); + TileRegionClass *r = (region == REGION_INV1) ? region_item:region_item2; + + int item_x = r->mx; + int dx = (i % item_x)*TILE_X; + int dy = (i / item_x)*TILE_Y; + + if (tile == -1) + { + ImgCopyFromTileImg(TILE_DNGN_UNSEEN, r->backbuf, dx, dy, 1); + return; + } + + if (floor) + ImgCopyFromTileImg(TILE_DNGN_FLOOR, r->backbuf, dx, dy, 1); + else + ImgCopyFromTileImg(TILE_ITEM_SLOT, r->backbuf, dx, dy, 1); + + if (equip) + { + if (cursed) + ImgCopyFromTileImg(TILE_ITEM_SLOT_EQUIP_CURSED, r->backbuf, + dx, dy, 0); + else + ImgCopyFromTileImg(TILE_ITEM_SLOT_EQUIP, r->backbuf, dx, dy, 0); + } + else if (cursed) + { + ImgCopyFromTileImg(TILE_ITEM_SLOT_CURSED, r->backbuf, dx, dy, 0); + } + if (select) + ImgCopyFromTileImg(TILE_RAY_MESH, r->backbuf, dx, dy, 0); + + if (itemlist_iflag[i] & TILEI_FLAG_CURSOR) + ImgCopyFromTileImg(TILE_CURSOR, r->backbuf, dx, dy, 0); + + // Item tile + ImgCopyFromTileImg(tile, r->backbuf, dx, dy, 0); + + // quantity/charge + if (num != -1) + { + // If you have that many, who cares. + if (num > 999) + num = 999; + + const int offset_amount = TILE_X/4; + int offset = 0; + + int c100 = num/100; + num -= c100*100; + if (c100) + { + TilePutch('0'+ c100, r->backbuf, dx+offset, dy); + offset += offset_amount; + } + int c10 = num/10; + if (c10 || c100) + { + TilePutch('0'+ c10, r->backbuf, dx+offset, dy); + offset += offset_amount; + } + int c1 = num % 10; + TilePutch('0'+ c1, r->backbuf, dx+offset, dy); + } + + // '?' mark + if (tried) + { + TilePutch('?', r->backbuf, dx, dy + TILE_Y/2); + } + + // record tile information as we draw it so that we can re-draw it at will + itemlist[i] = tile; + itemlist_num[i] = num; + itemlist_key[i] = key; + itemlist_idx[i] = idx; + itemlist_iflag[i] = 0; + if (floor) + itemlist_iflag[i] |= TILEI_FLAG_FLOOR; + if (tried) + itemlist_iflag[i] |= TILEI_FLAG_TRIED; + if (equip) + itemlist_iflag[i] |= TILEI_FLAG_EQUIP; + if (cursed) + itemlist_iflag[i] |= TILEI_FLAG_CURSE; + if (select) + itemlist_iflag[i] |= TILEI_FLAG_SELECT; + + if (i >= itemlist_n) + itemlist_n = i+1; +} + +void TileDrawInvData(int n, int flag, int *tiles, int *num, int *idx, + int *iflags) +{ + int i; + TileRegionClass *r = (flag == REGION_INV1) ? region_item:region_item2; + + r->flag = true; + + last_cursor = -1; + int old_itemlist_n = itemlist_n; + itemlist_n = n; + + int item_x = r->mx; + int item_y = r->my; + + for (i=0;i=n) ? -1 : tiles[i]; + int idx0 = (i>=n) ? -1 : idx[i]; + char key = (iflags[i]&TILEI_FLAG_FLOOR) ? 0 : index_to_letter(idx[i]); + + if ( flag == itemlist_flag + && tile0 == itemlist[i] + && num[i] == itemlist_num[i] + && key == itemlist_key[i] + && idx0 == itemlist_idx[i] + && iflags[i] == itemlist_iflag[i] + && !force_redraw_inv + && i < old_itemlist_n) + { + continue; + } + + TileDrawOneItem(flag, i, key, idx0, tile0, num[i], + ((iflags[i]&TILEI_FLAG_FLOOR) != 0), + ((iflags[i]&TILEI_FLAG_SELECT) != 0), + ((iflags[i]&TILEI_FLAG_EQUIP) != 0), + ((iflags[i]&TILEI_FLAG_TRIED) != 0), + ((iflags[i]&TILEI_FLAG_CURSE) != 0)); + } + + r->make_active(); + r->redraw(); + itemlist_flag = flag; + force_redraw_inv = false; +} + +void TileDrawInvCursor(int ix, bool flag) +{ + TileRegionClass *r = + (itemlist_flag == REGION_INV1) ? region_item:region_item2; + + int tile0 = itemlist[ix]; + int num0 = itemlist_num[ix]; + + if (flag) + itemlist_iflag[ix] |= TILEI_FLAG_CURSOR; + else + itemlist_iflag[ix] &= ~TILEI_FLAG_CURSOR; + + TileDrawOneItem(itemlist_flag, ix, itemlist_key[ix], itemlist_idx[ix], tile0, num0, + ((itemlist_iflag[ix]&TILEI_FLAG_FLOOR) != 0), + ((itemlist_iflag[ix]&TILEI_FLAG_SELECT) != 0), + ((itemlist_iflag[ix]&TILEI_FLAG_EQUIP) != 0), + ((itemlist_iflag[ix]&TILEI_FLAG_TRIED) != 0), + ((itemlist_iflag[ix]&TILEI_FLAG_CURSE) != 0) + ); + + r->redraw(); +} + +void TileMoveInvCursor(int ix) +{ + if (last_cursor != -1) + TileDrawInvCursor(last_cursor, false); + + if (ix != -1) TileDrawInvCursor(ix, true); + last_cursor = ix; +} + +int TileInvIdx(int i) +{ + if (i >= itemlist_n) + return -1; + else + return itemlist_idx[i]; +} + +#endif diff --git a/crawl-ref/source/tiles.h b/crawl-ref/source/tiles.h new file mode 100644 index 0000000000..991e48f17f --- /dev/null +++ b/crawl-ref/source/tiles.h @@ -0,0 +1,213 @@ +#ifdef USE_TILE + +#include "tiledef.h" +#include "beam.h" + +//*tile1.cc: get data from core part and drives tile drawing codes + +//**convert in-game data to tile index +int tileidx(unsigned int object, int extra); +int tileidx_feature(int object); +int tileidx_player(int job); +int tileidx_unseen(int ch, const coord_def& gc); +int tileidx_item(const item_def &item); +int tileidx_item_throw(const item_def &item, int dx, int dy); +int tileidx_bolt(const bolt &bolt); +int tileidx_zap(int color); +int tile_idx_unseen_terrain(int x, int y, int what); +int tile_unseen_flag(const coord_def& gc); + +#define simple_iso_tile(x) (x) + +// Player tile related +void tilep_race_default(int race, int gender, int level, int *parts); +void tilep_job_default(int job, int gender, int *parts); +void tilep_calc_flags(int parts[], int flag[]); + +void tilep_part_to_str(int number, char *buf); +int tilep_str_to_part(char *str); + +void tilep_scan_parts(char *fbuf, int *parts); +void tilep_print_parts(char *fbuf, int *parts); + +int tilep_equ_weapon(const item_def &item); +int tilep_equ_shield(const item_def &item); +int tilep_equ_armour(const item_def &item); +int tilep_equ_cloak(const item_def &item); +int tilep_equ_helm(const item_def &item); +int tilep_equ_gloves(const item_def &item); +int tilep_equ_boots(const item_def &item); + +// Tile display related +void tile_draw_floor(); +void tile_place_monster(int gx, int gy, int idx, bool foreground = true); +void tile_place_item(int x, int y, int idx); +void tile_place_item_bk(int gx, int gy, int idx); +void tile_place_tile_bk(int gx, int gy, int tileidx); +void tile_place_item_marker(int x, int y, int idx); +void tile_place_cloud(int x, int y, int type, int decay); +void tile_place_ray(const coord_def& gc); +void tile_draw_rays(bool resetCount); +void tile_clear_buf(); + +void tile_finish_dngn(short unsigned int *tileb, int cx, int cy); +void tile_draw_dungeon(short unsigned int *tileb); + +// Tile Inventry display +void tile_draw_inv(int item_type = -1, int flag = -1); +// Multiple pickup +void tile_pick_menu(); + +int get_num_wall_flavors(); +int get_num_floor_flavors(); +int get_num_floor_special_flavors(); +int get_wall_tile_idx(); +int get_floor_tile_idx(); +int get_floor_special_tile_idx(); +void tile_init_flavor(); + +/**************************************/ +/* tile2.cc image manipulation */ +/**************************************/ +// init them all +void TileInit(); + +void TileResizeScreen(int x, int y); + +// display tile cursor, returns old cursor value there +int TileDrawCursor(int x, int y, int flag); +// display bolts +void TileDrawBolt(int x, int y, int fg); +// display dungeon: tileb = { fg(0,0),bg(0,0),fg(1,0),bg(1,0), .. +void TileDrawDungeon(short unsigned int *tileb); +// display memorized dungeon +void TileDrawFarDungeon(int cx, int cy); +// display map centered on grid coords +void TileDrawMap(int gx, int gy); +void LoadDungeonView(short unsigned int *tileb); +void StoreDungeonView(short unsigned int *tileb); + +void TileNewLevel(bool first_time); + + +// display inventry +void TileDrawInvData(int n, int flag, int *tiles, int *num, + int *idx, int *iflags); +void TileDrawOneItem(int region, int i, char key, int idx, + int tile, int num, bool floor, + bool select, bool equip, bool tried, bool cursed); +void TileRedrawInv(int region); +void TileClearInv(int region); +void TileMoveInvCursor(int ix); +int TileInvIdx(int i); + +// refresh player tile +void TilePlayerRefresh(); +// edit player tile +void TilePlayerEdit(); +// init player tile +void TilePlayerInit(); +// init ghost tile +void TileGhostInit(struct ghost_demon &gs); +// init pandem demon tile (only in iso mode) +void TilePandemInit(struct ghost_demon &gs); +// edit pandem tile (debug) +void TileEditPandem(); +// init id-ed item tiles +void TileInitItems(); + +// load wall tiles +void TileLoadWall(bool wizard); + +//�^�C�g�� +void TileDrawTitle(); + +// monster+weapon tile +void TileMcacheUnlock(); +int TileMcacheFind(int mon_tile, int eq_tile, int draco = 0); +int get_base_idx_from_mcache(int tile_idx); +int get_clean_map_idx(int tile_idx); + +/* Flags for drawing routines */ +// MAY_STAB, FLAG_STAB, and FLAG_PET are mutually exclusive +#define TILE_FLAG_MAY_STAB 0xC000 // May stab brand is always fg +#define TILE_FLAG_STAB 0x8000 // Stab brand is always fg +#define TILE_FLAG_PET 0x4000 //pet is always fg + +#define TILE_FLAG_NET 0x2000 //nets are always in fg +#define TILE_FLAG_FLYING 0x1000 //flying object is always fg +#define TILE_FLAG_S_UNDER 0x800 //fg + +#define TILE_FLAG_CURSOR 0xc000 //cursor is always bg +#define TILE_FLAG_CURSOR1 0x8000 //cursor is always bg +#define TILE_FLAG_CURSOR2 0x4000 //cursor is always bg +#define TILE_FLAG_CURSOR3 0xc000 //cursor is always bg +#define TILE_FLAG_CURSOR0 0x0000 //cursor is always bg + +#define TILE_FLAG_UNSEEN 0x2000 //unseen flag is set to bg +#define TILE_FLAG_MM_UNSEEN 0x1000 +#define TILE_FLAG_RAY 0x800 + +#define TILE_FLAG_MASK 0x07ff + + +#define TILEI_FLAG_SELECT 0x100 +#define TILEI_FLAG_TRIED 0x200 +#define TILEI_FLAG_EQUIP 0x400 +#define TILEI_FLAG_FLOOR 0x800 +#define TILEI_FLAG_CURSE 0x1000 +#define TILEI_FLAG_CURSOR 0x2000 + +#define TILEP_GENDER_MALE 0 +#define TILEP_GENDER_FEMALE 1 + +#define TILEP_M_DEFAULT 0 +#define TILEP_M_LOADING 1 + +#define TILEP_SHOW_EQUIP 0x1000 + +enum TilePlayerFlagCut +{ + TILEP_FLAG_HIDE, + TILEP_FLAG_NORMAL, + TILEP_FLAG_CUT_CENTAUR, + TILEP_FLAG_CUT_NAGA +}; + +#ifdef TILEP_DEBUG +const char *get_ctg_name(int part); +int get_ctg_idx(char *name); +const char *get_parts_name(int part, int idx); +int get_parts_idx(int part, char *name); +#endif + +// Dungeon view window size +#define TILE_DAT_XMAX 35 +#define TILE_DAT_YMAX 35 +// normal tile size in px +#define TILE_X 32 +#define TILE_Y 32 + +// Unit size +// iso mode screen size +#define TILE_XMAX_ISO 24 +#define TILE_YMAX_ISO 13 +// iso tile size in px +#define TILE_X_EX_ISO 64 +#define TILE_Y_EX_ISO 64 + +// iso mode unit grid size in px +#define TILE_UX_ISO (TILE_X_EX_ISO/2) +#define TILE_UY_ISO (TILE_X_EX_ISO/2) + +// screen size in grids +#define TILE_XMAX_NORMAL 17 +#define TILE_YMAX_NORMAL 17 +// grid size in px +#define TILE_UX_NORMAL TILE_X +#define TILE_UY_NORMAL TILE_Y + +#define TILEP_BOOTS_NAGA_BARDING (N_PART_BOOTS + 1) +#define TILEP_BOOTS_CENTAUR_BARDING (N_PART_BOOTS + 2) + +#endif // USE_TILES diff --git a/crawl-ref/source/tutorial.cc b/crawl-ref/source/tutorial.cc index 079302a6df..aee22728ff 100644 --- a/crawl-ref/source/tutorial.cc +++ b/crawl-ref/source/tutorial.cc @@ -41,8 +41,12 @@ static job_type get_tutorial_job(unsigned int type); static int get_tutorial_cols() { +#ifdef USE_TILE + return crawl_view.msgsz.x; +#else int ncols = get_number_of_cols(); return (ncols > 80? 80 : ncols); +#endif } void save_tutorial( FILE* fp ) diff --git a/crawl-ref/source/view.cc b/crawl-ref/source/view.cc index 40d5b82b42..c7c886ca1e 100644 --- a/crawl-ref/source/view.cc +++ b/crawl-ref/source/view.cc @@ -63,6 +63,7 @@ #include "stuff.h" #include "spells4.h" #include "stash.h" +#include "tiles.h" #include "state.h" #include "terrain.h" #include "travel.h" @@ -181,11 +182,20 @@ void set_envmap_glyph(int x, int y, int object, int col) map_cell &c = env.map[x][y]; c.object = object; c.colour = col; +#ifdef USE_TILE + int glyph = env.map[x][y].glyph(); + GmapUpdate(x,y,glyph); +#endif } void set_envmap_obj( int x, int y, int obj ) { env.map[x][y].object = obj; +#ifdef USE_TILE + int glyph = env.map[x][y].glyph(); + if (glyph) + GmapUpdate(x,y,glyph); +#endif } void set_envmap_col( int x, int y, int colour ) @@ -254,6 +264,11 @@ void set_terrain_mapped( int x, int y ) void set_terrain_seen( int x, int y ) { +#ifdef USE_TILE + env.map[x][y].flags &= ~(MAP_DETECTED_ITEM); + env.map[x][y].flags &= ~(MAP_DETECTED_MONSTER); +#endif + env.map[x][y].flags &= (~MAP_CHANGED_FLAG); env.map[x][y].flags |= MAP_SEEN_FLAG; } @@ -268,7 +283,7 @@ bool is_notable_terrain(dungeon_feature_type ftype) return (Feature[ftype].is_notable()); } -#if defined(WIN32CONSOLE) || defined(DOS) +#if defined(WIN32CONSOLE) || defined(DOS) || defined(USE_TILE) static unsigned colflag2brand(int colflag) { switch (colflag) @@ -302,7 +317,7 @@ unsigned real_colour(unsigned raw_colour) if (is_element_colour( raw_colour )) raw_colour = colflags | element_colour( raw_colour ); -#if defined(WIN32CONSOLE) || defined(DOS) +#if defined(WIN32CONSOLE) || defined(DOS) || defined(USE_TILE) if (colflags) { unsigned brand = colflag2brand(colflags); @@ -470,7 +485,7 @@ static char get_travel_colour( int x, int y ) Options.tc_disconnected; } -#if defined(WIN32CONSOLE) || defined(DOS) +#if defined(WIN32CONSOLE) || defined(DOS) || defined(USE_TILE) static unsigned short dos_reverse_brand(unsigned short colour) { if (Options.dos_use_background_intensity) @@ -638,6 +653,14 @@ void clear_map(bool clear_detected_items, bool clear_detected_monsters) set_envmap_obj(x, y, is_terrain_known(x, y)? grd[x][y] : 0); set_envmap_detected_mons(x, y, false); set_envmap_detected_item(x, y, false); + +#ifdef USE_TILE + set_envmap_obj(x, y, is_terrain_known(x, y)? grd[x][y] : 0); + env.tile_bk_fg[x][y] = 0; + env.tile_bk_bg[x][y] = is_terrain_known(x, y) ? + tile_idx_unseen_terrain(x, y, grd[x][y]) : + tileidx_feature(DNGN_UNSEEN); +#endif } } } @@ -998,6 +1021,7 @@ inline static bool update_monster_grid(const monsters *monster) env.show[ex][ey] = monster->type + DNGN_START_OF_MONSTERS; env.show_col[ex][ey] = get_mons_colour( monster ); + return (true); } @@ -1022,6 +1046,10 @@ void monster_grid(bool do_updates) if (!update_monster_grid(monster)) continue; + +#ifdef USE_TILE + tile_place_monster(monster->x, monster->y, s, true); +#endif if (player_monster_visible(monster) && !mons_is_submerged(monster) @@ -1215,6 +1243,14 @@ inline static void update_item_grid(const coord_def &gp, const coord_def &ep) ecol |= COLFLAG_ITEM_HEAP; env.show(ep) = get_item_dngn_code( eitem ); } + +#ifdef USE_TILE + int idx = igrd(gp); + if (is_stair(grid)) + tile_place_item_marker(ep.x, ep.y, idx); + else + tile_place_item(ep.x, ep.y, idx); +#endif } void item_grid() @@ -1318,6 +1354,11 @@ inline static void update_cloud_grid(int cloudno) set_show_backup(ex, ey); env.show[ex][ey] = DNGN_CLOUD; env.show_col[ex][ey] = which_colour; + +#ifdef USE_TILE + tile_place_cloud(ex, ey, env.cloud[cloudno].type, + env.cloud[cloudno].decay); +#endif } void cloud_grid(void) @@ -2402,28 +2443,26 @@ void draw_border(void) clrscr(); redraw_skill( you.your_name, player_title() ); - const int xcol = crawl_view.hudp.x; - - gotoxy(xcol, 2); + gotoxy(1, 2, GOTO_STAT); cprintf( "%s %s", species_name( you.species, you.experience_level ).c_str(), (you.wizard ? "*WIZARD*" : "" ) ); - gotoxy(xcol, 3); cprintf("HP:"); - gotoxy(xcol, 4); cprintf("Magic:"); - gotoxy(xcol, 5); cprintf("AC:"); - gotoxy(xcol, 6); cprintf("EV:"); - gotoxy(xcol, 7); cprintf("Str:"); - gotoxy(xcol, 8); cprintf("Int:"); - gotoxy(xcol, 9); cprintf("Dex:"); - gotoxy(xcol, 10); cprintf("Gold:"); + gotoxy(1, 3, GOTO_STAT); cprintf("HP:"); + gotoxy(1, 4, GOTO_STAT); cprintf("Magic:"); + gotoxy(1, 5, GOTO_STAT); cprintf("AC:"); + gotoxy(1, 6, GOTO_STAT); cprintf("EV:"); + gotoxy(1, 7, GOTO_STAT); cprintf("Str:"); + gotoxy(1, 8, GOTO_STAT); cprintf("Int:"); + gotoxy(1, 9, GOTO_STAT); cprintf("Dex:"); + gotoxy(1, 10, GOTO_STAT); cprintf("Gold:"); if (Options.show_turns) { - gotoxy(xcol + 15, 10); + gotoxy(1 + 15, 10, GOTO_STAT); cprintf("Turn:"); } - gotoxy(xcol, 11); cprintf("Experience:"); - gotoxy(xcol, 12); cprintf("Level"); + gotoxy(1, 11, GOTO_STAT); cprintf("Experience:"); + gotoxy(1, 12, GOTO_STAT); cprintf("Level"); } // end draw_border() // Determines if the given feature is present at (x, y) in _grid_ coordinates. @@ -2683,6 +2722,7 @@ static int get_number_of_lines_levelmap() return get_number_of_lines() - (Options.level_map_title ? 1 : 0); } +#ifndef USE_TILE static void draw_level_map(int start_x, int start_y, bool travel_mode) { int bufcount2 = 0; @@ -2768,6 +2808,7 @@ static void draw_level_map(int start_x, int start_y, bool travel_mode) } puttext(1, top, num_cols, top + num_lines - 1, buffer2); } +#endif // USE_TILE static void reset_travel_colours(std::vector &features) { @@ -2862,7 +2903,9 @@ void show_map( coord_def &spec_place, bool travel_mode ) bool map_alive = true; bool redraw_map = true; +#ifndef USE_TILE clrscr(); +#endif textcolor(DARKGREY); while (map_alive) @@ -2870,14 +2913,31 @@ void show_map( coord_def &spec_place, bool travel_mode ) start_y = screen_y - half_screen; if (redraw_map) + { +#ifdef USE_TILE + // Note: Tile versions just center on the current cursor + // location. It silently ignores everything else going + // on in this function. --Enne + unsigned int cx = start_x + curs_x - 1; + unsigned int cy = start_y + curs_y - 1; + TileDrawMap(cx, cy); + GmapDisplay(cx, cy); + } +#else draw_level_map(start_x, start_y, travel_mode); - - redraw_map = true; + } cursorxy(curs_x, curs_y + top - 1); +#endif + redraw_map = true; c_input_reset(true); getty = unmangle_direction_keys(getchm(KC_LEVELMAP), KC_LEVELMAP, false, false); +#ifdef USE_TILE + if (getty == CK_MOUSE_B4) getty = '-'; + if (getty == CK_MOUSE_B5) getty = '+'; +#endif + c_input_reset(false); switch (getty) @@ -3259,6 +3319,16 @@ bool magic_mapping(int map_radius, int proportion, bool suppress_msg, if (is_terrain_changed(i, j)) clear_envmap_grid(i, j); +#ifdef USE_TILE + if (!wizard_map && is_terrain_known(i,j)) + { + // can't use set_envmap_obj because that + // will overwrite the gmap. + env.tile_bk_bg[i][j] = + tile_idx_unseen_terrain(i, j, grd[i][j]); + } +#endif + if (!wizard_map && is_terrain_known(i, j)) continue; @@ -3306,6 +3376,11 @@ bool magic_mapping(int map_radius, int proportion, bool suppress_msg, } } } +#ifdef USE_TILE + GmapInit(true); // re-draw tile backup + tile_clear_buf(); +#endif + return true; } // end magic_mapping() @@ -4244,12 +4319,14 @@ void view_update_at(const coord_def &pos) if (flash_colour == BLACK) flash_colour = viewmap_flash_colour(); +#ifndef USE_TILE gotoxy(vp.x, vp.y); put_colour_ch(flash_colour? real_colour(flash_colour) : colour, ch); // Force colour back to normal, else clrscr() will flood screen // with this colour on DOS. textattr(LIGHTGREY); +#endif } bool view_update() @@ -4276,6 +4353,10 @@ bool view_update() //--------------------------------------------------------------- void viewwindow(bool draw_it, bool do_updates) { +#ifdef USE_TILE + std::vector tileb( + crawl_view.viewsz.y * crawl_view.viewsz.x * 2); +#endif screen_buffer_t *buffy(crawl_view.vbuf); int count_x, count_y; @@ -4286,6 +4367,11 @@ void viewwindow(bool draw_it, bool do_updates) // made opaque. losight( env.no_trans_show, grd, you.x_pos, you.y_pos, true ); +#ifdef USE_TILE + tile_draw_floor(); + TileMcacheUnlock(); +#endif + env.show_col.init(LIGHTGREY); Show_Backup.init(0); @@ -4293,6 +4379,10 @@ void viewwindow(bool draw_it, bool do_updates) cloud_grid(); monster_grid( do_updates ); +#ifdef USE_TILE + tile_draw_rays(true); +#endif + if (draw_it) { cursor_control cs(false); @@ -4342,6 +4432,10 @@ void viewwindow(bool draw_it, bool do_updates) // off the map buffy[bufcount] = 0; buffy[bufcount + 1] = DARKGREY; +#ifdef USE_TILE + tileb[bufcount] = 0; + tileb[bufcount+1] = tileidx_unseen(' ', gc); +#endif } else if (!crawl_view.in_grid_los(gc)) { @@ -4352,6 +4446,18 @@ void viewwindow(bool draw_it, bool do_updates) if (Options.colour_map) buffy[bufcount + 1] = colour_code_map(gc.x, gc.y, Options.item_colour); + +#ifdef USE_TILE + unsigned short bg = env.tile_bk_bg[gc.x][gc.y]; + unsigned short fg = env.tile_bk_fg[gc.x][gc.y]; + if (bg == 0 && fg == 0) + { + bg = tileidx_unseen(get_envmap_char(gc.x,gc.y), gc); + env.tile_bk_bg[gc.x][gc.y] = bg; + } + tileb[bufcount] = fg; + tileb[bufcount+1] = bg | tile_unseen_flag(gc); +#endif } else if (gc == you.pos()) { @@ -4367,6 +4473,17 @@ void viewwindow(bool draw_it, bool do_updates) set_envmap_detected_mons(gc.x, gc.y, false); set_envmap_detected_item(gc.x, gc.y, false); } +#ifdef USE_TILE + if (map) + { + env.tile_bk_bg[gc.x][gc.y] = + env.tile_bg[ep.x-1][ep.y-1]; + } + + tileb[bufcount] = env.tile_fg[ep.x-1][ep.y-1] = + tileidx_player(you.char_class); + tileb[bufcount+1] = env.tile_bg[ep.x-1][ep.y-1]; +#endif // player overrides everything in cell buffy[bufcount] = you.symbol; @@ -4393,6 +4510,10 @@ void viewwindow(bool draw_it, bool do_updates) buffy[bufcount] = ch; buffy[bufcount + 1] = colour; +#ifdef USE_TILE + tileb[bufcount]= env.tile_fg[ep.x-1][ep.y-1]; + tileb[bufcount+1]= env.tile_bg[ep.x-1][ep.y-1]; +#endif if (map) { @@ -4404,10 +4525,28 @@ void viewwindow(bool draw_it, bool do_updates) if (buffy[bufcount] != 0) { // ... map that we've seen this - set_envmap_glyph( gc.x, gc.y, object, colour ); set_terrain_seen( gc.x, gc.y ); + set_envmap_glyph( gc.x, gc.y, object, colour ); set_envmap_detected_mons(gc.x, gc.y, false); set_envmap_detected_item(gc.x, gc.y, false); +#ifdef USE_TILE + // We remove any references to mcache when + // writing to the background. + if (Options.clean_map) + { + env.tile_bk_fg[gc.x][gc.y] = + get_clean_map_idx( + env.tile_fg[ep.x-1][ep.y-1]); + } + else + { + env.tile_bk_fg[gc.x][gc.y] = + get_base_idx_from_mcache( + env.tile_fg[ep.x-1][ep.y-1]); + } + env.tile_bk_bg[gc.x][gc.y] = + env.tile_bg[ep.x-1][ep.y-1]; +#endif } // Check if we're looking to clean_map... @@ -4451,6 +4590,24 @@ void viewwindow(bool draw_it, bool do_updates) buffy[bufcount + 1] = colour_code_map(gc.x, gc.y, Options.item_colour); +#ifdef USE_TILE + if(env.tile_bk_fg[gc.x][gc.y] != 0 + || env.tile_bk_bg[gc.x][gc.y] != 0) + { + tileb[bufcount] = + env.tile_bk_fg[gc.x][gc.y]; + tileb[bufcount + 1] = + env.tile_bk_bg[gc.x][gc.y] + | tile_unseen_flag(gc); + } + else + { + tileb[bufcount] = 0; + tileb[bufcount + 1] = + tileidx_unseen( + get_envmap_char( gc.x, gc.y ), gc); + } +#endif } } } @@ -4472,11 +4629,16 @@ void viewwindow(bool draw_it, bool do_updates) // avoiding unneeded draws when running if (draw) { +#ifdef USE_TILE + tile_draw_dungeon(&tileb[0]); + GmapDisplay(you.x_pos, you.y_pos); +#else you.last_view_update = you.num_turns; puttext(crawl_view.viewp.x, crawl_view.viewp.y, crawl_view.viewp.x + crawl_view.viewsz.x - 1, crawl_view.viewp.y + crawl_view.viewsz.y - 1, buffy); +#endif } } } // end viewwindow() @@ -4583,10 +4745,12 @@ void crawl_view_geometry::init_geometry() { termsz = coord_def( get_number_of_cols(), get_number_of_lines() ); +#ifndef USE_TILE // If the terminal is too small, exit with an error. if ((termsz.x < 80 || termsz.y < 24) && !crawl_state.need_save) end(1, false, "Terminal too small (%d,%d), need at least (80,24)", termsz.x, termsz.y); +#endif int freeheight = termsz.y - message_min_lines; @@ -4631,8 +4795,13 @@ void crawl_view_geometry::init_geometry() hudp.x += hudmarg > hud_increase_max? hud_increase_max : hudmarg; } +#ifdef USE_TILE + // libgui may redefine these based on its own settings + gui_init_view_params(termsz, viewsz, msgp, msgsz, hudp, hudsz); +#endif + viewhalfsz = viewsz / 2; - + init_view(); } diff --git a/crawl-ref/source/view.h b/crawl-ref/source/view.h index 6e828b8ecf..fec4d5805f 100644 --- a/crawl-ref/source/view.h +++ b/crawl-ref/source/view.h @@ -242,7 +242,7 @@ dungeon_char_type dchar_by_name(const std::string &name); void handle_terminal_resize(bool redraw = true); -#if defined(WIN32CONSOLE) || defined(DOS) +#if defined(WIN32CONSOLE) || defined(DOS) || defined(USE_TILE) unsigned short dos_brand( unsigned short colour, unsigned brand = CHATTR_REVERSE); #endif -- cgit v1.2.3-54-g00ecf