From ccb819471f425fcf2805dd7c4b7a9dd9bb236f21 Mon Sep 17 00:00:00 2001 From: ennewalker Date: Tue, 8 Jan 2008 04:51:10 +0000 Subject: Adding TODO placeholder logic for tiles that haven't been drawn yet. git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@3221 c06c8d41-db1a-0410-9941-cceddc491573 --- crawl-ref/source/tile1.cc | 1118 +++++++++++++++++++++++++++++---------------- 1 file changed, 729 insertions(+), 389 deletions(-) (limited to 'crawl-ref/source/tile1.cc') diff --git a/crawl-ref/source/tile1.cc b/crawl-ref/source/tile1.cc index 7f6d2b30b2..a330563917 100644 --- a/crawl-ref/source/tile1.cc +++ b/crawl-ref/source/tile1.cc @@ -34,8 +34,6 @@ void TileNewLevel(bool first_time) tile_init_flavor(); } -const int TILE_TODO = TILE_ERROR; - /**** tile index routines ****/ int tile_unseen_flag(const coord_def& gc) @@ -55,416 +53,754 @@ int tile_unseen_flag(const coord_def& gc) } } -int tileidx_monster(int mon_idx) +int tileidx_monster_base(int mon_idx) { - int ch = TILE_ERROR; - int mons = menv[mon_idx].type; + 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; - } + switch(mons) + { + case MONS_GIANT_ANT: + return TILE_MONS_GIANT_ANT; + case MONS_GIANT_BAT: + return TILE_MONS_GIANT_BAT; + case MONS_CENTAUR: + return TILE_MONS_CENTAUR; + case MONS_RED_DEVIL: + return TILE_MONS_RED_DEVIL; + case MONS_ETTIN: + return TILE_MONS_ETTIN; + case MONS_FUNGUS: + return TILE_MONS_FUNGUS; + case MONS_GOBLIN: + return TILE_MONS_GOBLIN; + case MONS_HOUND: + return TILE_MONS_HOUND; + case MONS_IMP: + return TILE_MONS_IMP; + case MONS_JACKAL: + return TILE_MONS_JACKAL; + case MONS_KILLER_BEE: + return TILE_MONS_KILLER_BEE; + case MONS_KILLER_BEE_LARVA: + return TILE_MONS_KILLER_BEE_LARVA; + case MONS_MANTICORE: + return TILE_MONS_MANTICORE; + case MONS_NECROPHAGE: + return TILE_MONS_NECROPHAGE; + case MONS_ORC: + return TILE_MONS_ORC; + case MONS_PHANTOM: + return TILE_MONS_PHANTOM; + case MONS_QUASIT: + return TILE_MONS_QUASIT; + case MONS_RAT: + return TILE_MONS_RAT; + case MONS_SCORPION: + return TILE_MONS_SCORPION; + case MONS_UGLY_THING : + return TILE_MONS_UGLY_THING ; + case MONS_FIRE_VORTEX: + return TILE_MONS_FIRE_VORTEX; + case MONS_WORM: + return TILE_MONS_WORM; + case MONS_ABOMINATION_SMALL: + return TILE_MONS_ABOMINATION_SMALL; + case MONS_YELLOW_WASP: + return TILE_MONS_YELLOW_WASP; + case MONS_ZOMBIE_SMALL: + return TILE_MONS_ZOMBIE_SMALL; + case MONS_ANGEL: + return TILE_MONS_ANGEL; + case MONS_GIANT_BEETLE: + return TILE_MONS_GIANT_BEETLE; + case MONS_CYCLOPS: + return TILE_MONS_CYCLOPS; + case MONS_DRAGON: + return TILE_MONS_DRAGON; + case MONS_TWO_HEADED_OGRE: + return TILE_MONS_TWO_HEADED_OGRE; + case MONS_FIEND: + return TILE_MONS_FIEND; + case MONS_GIANT_SPORE: + return TILE_MONS_GIANT_SPORE; + case MONS_HOBGOBLIN: + return TILE_MONS_HOBGOBLIN; + case MONS_ICE_BEAST: + return TILE_MONS_ICE_BEAST; + case MONS_JELLY: + return TILE_MONS_JELLY; + case MONS_KOBOLD: + return TILE_MONS_KOBOLD; + case MONS_LICH: + return TILE_MONS_LICH; + case MONS_MUMMY: + return TILE_MONS_MUMMY; + case MONS_GUARDIAN_NAGA: + return TILE_MONS_GUARDIAN_NAGA; + case MONS_OGRE: + return TILE_MONS_OGRE; + case MONS_PLANT: + return TILE_MONS_PLANT; + case MONS_QUEEN_BEE: + return TILE_MONS_QUEEN_BEE; + case MONS_RAKSHASA: + return TILE_MONS_RAKSHASA; + case MONS_SNAKE: + return TILE_MONS_SNAKE; + case MONS_TROLL: + return TILE_MONS_TROLL; + case MONS_UNSEEN_HORROR: + return TILE_MONS_UNSEEN_HORROR; + case MONS_VAMPIRE: + return TILE_MONS_VAMPIRE; + case MONS_WRAITH: + return TILE_MONS_WRAITH; + + case MONS_ABOMINATION_LARGE: + { + // 7 different colours + struct monsters *mon = &menv[mon_idx]; + return TILE_MONS_ABOMINATION_LARGE + ((mon->colour)%7); + } - 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_YAK: + return TILE_MONS_YAK; + case MONS_ZOMBIE_LARGE: + return TILE_MONS_ZOMBIE_LARGE; + case MONS_ORC_WARRIOR: + return TILE_MONS_ORC_WARRIOR; + case MONS_KOBOLD_DEMONOLOGIST: + return TILE_MONS_KOBOLD_DEMONOLOGIST; + case MONS_ORC_WIZARD: + return TILE_MONS_ORC_WIZARD; + case MONS_ORC_KNIGHT: + return TILE_MONS_ORC_KNIGHT; + case MONS_WYVERN: + return TILE_MONS_WYVERN; + case MONS_BIG_KOBOLD: + return TILE_MONS_BIG_KOBOLD; + case MONS_GIANT_EYEBALL: + return TILE_MONS_GIANT_EYEBALL; + case MONS_WIGHT: + return TILE_MONS_WIGHT; + case MONS_OKLOB_PLANT: + return TILE_MONS_OKLOB_PLANT; + case MONS_WOLF_SPIDER: + return TILE_MONS_WOLF_SPIDER; + case MONS_SHADOW: + return TILE_MONS_SHADOW; + case MONS_HUNGRY_GHOST: + return TILE_MONS_HUNGRY_GHOST; + case MONS_EYE_OF_DRAINING: + return TILE_MONS_EYE_OF_DRAINING; + + case MONS_BUTTERFLY: + { + // 7 different colours + struct monsters *mon = &menv[mon_idx]; + return TILE_MONS_BUTTERFLY + ((mon->colour)%7); + } - 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: - { + case MONS_WANDERING_MUSHROOM: + return TILE_MONS_WANDERING_MUSHROOM; + case MONS_EFREET: + return TILE_MONS_EFREET; + case MONS_BRAIN_WORM: + return TILE_MONS_BRAIN_WORM; + case MONS_GIANT_ORANGE_BRAIN: + return TILE_MONS_GIANT_ORANGE_BRAIN; + case MONS_BOULDER_BEETLE: + return TILE_MONS_BOULDER_BEETLE; + case MONS_FLYING_SKULL: + return TILE_MONS_FLYING_SKULL; + case MONS_HELL_HOUND: + return TILE_MONS_HELL_HOUND; + case MONS_MINOTAUR: + return TILE_MONS_MINOTAUR; + case MONS_ICE_DRAGON: + return TILE_MONS_ICE_DRAGON; + case MONS_SLIME_CREATURE: + return TILE_MONS_SLIME_CREATURE; + case MONS_FREEZING_WRAITH: + return TILE_MONS_FREEZING_WRAITH; + case MONS_RAKSHASA_FAKE: + return TILE_MONS_RAKSHASA_FAKE; + case MONS_GREAT_ORB_OF_EYES: + return TILE_MONS_GREAT_ORB_OF_EYES; + case MONS_HELLION: + return TILE_MONS_HELLION; + case MONS_ROTTING_DEVIL: + return TILE_MONS_ROTTING_DEVIL; + case MONS_TORMENTOR: + return TILE_MONS_TORMENTOR; + case MONS_REAPER: + return TILE_MONS_REAPER; + case MONS_SOUL_EATER: + return TILE_MONS_SOUL_EATER; + case MONS_HAIRY_DEVIL: + return TILE_MONS_HAIRY_DEVIL; + case MONS_ICE_DEVIL: + return TILE_MONS_ICE_DEVIL; + case MONS_BLUE_DEVIL: + return TILE_MONS_BLUE_DEVIL; + case MONS_BEAST: + return TILE_MONS_BEAST; + case MONS_IRON_DEVIL: + return TILE_MONS_IRON_DEVIL; + case MONS_GLOWING_SHAPESHIFTER: + return TILE_MONS_GLOWING_SHAPESHIFTER; + case MONS_SHAPESHIFTER: + return TILE_MONS_SHAPESHIFTER; + case MONS_GIANT_MITE: + return TILE_MONS_GIANT_MITE; + case MONS_STEAM_DRAGON: + return TILE_MONS_STEAM_DRAGON; + case MONS_VERY_UGLY_THING: + return TILE_MONS_VERY_UGLY_THING; + case MONS_ORC_SORCERER: + return TILE_MONS_ORC_SORCERER; + case MONS_HIPPOGRIFF: + return TILE_MONS_HIPPOGRIFF; + case MONS_GRIFFON: + return TILE_MONS_GRIFFON; + + 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; - } + return TILE_MONS_HYDRA + heads - 1; + } - 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_SKELETON_SMALL: + return TILE_MONS_SKELETON_SMALL; + case MONS_SKELETON_LARGE: + return TILE_MONS_SKELETON_LARGE; + case MONS_HELL_KNIGHT: + return TILE_MONS_HELL_KNIGHT; + case MONS_NECROMANCER: + return TILE_MONS_NECROMANCER; + case MONS_WIZARD: + return TILE_MONS_WIZARD; + case MONS_ORC_PRIEST: + return TILE_MONS_ORC_PRIEST; + case MONS_ORC_HIGH_PRIEST: + return TILE_MONS_ORC_HIGH_PRIEST; + case MONS_HUMAN: + return TILE_MONS_HUMAN; + case MONS_GNOLL: + return TILE_MONS_GNOLL; + case MONS_CLAY_GOLEM: + return TILE_MONS_CLAY_GOLEM; + case MONS_WOOD_GOLEM: + return TILE_MONS_WOOD_GOLEM; + case MONS_STONE_GOLEM: + return TILE_MONS_STONE_GOLEM; + case MONS_IRON_GOLEM: + return TILE_MONS_IRON_GOLEM; + case MONS_CRYSTAL_GOLEM: + return TILE_MONS_CRYSTAL_GOLEM; + case MONS_TOENAIL_GOLEM: + return TILE_MONS_TOENAIL_GOLEM; + case MONS_MOTTLED_DRAGON: + return TILE_MONS_MOTTLED_DRAGON; + case MONS_EARTH_ELEMENTAL: + return TILE_MONS_EARTH_ELEMENTAL; + case MONS_FIRE_ELEMENTAL: + return TILE_MONS_FIRE_ELEMENTAL; + case MONS_AIR_ELEMENTAL: + return TILE_MONS_AIR_ELEMENTAL; + case MONS_ICE_FIEND: + return TILE_MONS_ICE_FIEND; + case MONS_SHADOW_FIEND: + return TILE_MONS_SHADOW_FIEND; + case MONS_BROWN_SNAKE: + return TILE_MONS_BROWN_SNAKE; + case MONS_GIANT_LIZARD: + return TILE_MONS_GIANT_LIZARD; + case MONS_SPECTRAL_WARRIOR: + return TILE_MONS_SPECTRAL_WARRIOR; + case MONS_PULSATING_LUMP: + return TILE_MONS_PULSATING_LUMP; + case MONS_STORM_DRAGON: + return TILE_MONS_STORM_DRAGON; + case MONS_YAKTAUR: + return TILE_MONS_YAKTAUR; + case MONS_DEATH_YAK: + return TILE_MONS_DEATH_YAK; + case MONS_ROCK_TROLL: + return TILE_MONS_ROCK_TROLL; + case MONS_STONE_GIANT: + return TILE_MONS_STONE_GIANT; + case MONS_FLAYED_GHOST: + return TILE_MONS_FLAYED_GHOST; + case MONS_BUMBLEBEE: + return TILE_MONS_BUMBLEBEE; + case MONS_REDBACK: + return TILE_MONS_REDBACK; + case MONS_INSUBSTANTIAL_WISP: + return TILE_MONS_INSUBSTANTIAL_WISP; + case MONS_VAPOUR: + return TILE_MONS_VAPOUR; + case MONS_OGRE_MAGE: + return TILE_MONS_OGRE_MAGE; + case MONS_SPINY_WORM: + return TILE_MONS_SPINY_WORM; + + case MONS_DANCING_WEAPON: + { + // Use item tile + item_def item = mitm[menv[mon_idx].inv[MSLOT_WEAPON]]; + return tileidx_item(item); + } - 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: - { + case MONS_TITAN: + return TILE_MONS_TITAN; + case MONS_GOLDEN_DRAGON: + return TILE_MONS_GOLDEN_DRAGON; + case MONS_ELF: + return TILE_MONS_ELF; + case MONS_LINDWURM: + return TILE_MONS_LINDWURM; + case MONS_ELEPHANT_SLUG: + return TILE_MONS_ELEPHANT_SLUG; + case MONS_WAR_DOG: + return TILE_MONS_WAR_DOG; + case MONS_GREY_RAT: + return TILE_MONS_GREY_RAT; + case MONS_GREEN_RAT: + return TILE_MONS_GREEN_RAT; + case MONS_ORANGE_RAT: + return TILE_MONS_ORANGE_RAT; + case MONS_BLACK_SNAKE: + return TILE_MONS_BLACK_SNAKE; + case MONS_SHEEP: + return TILE_MONS_SHEEP; + case MONS_GHOUL: + return TILE_MONS_GHOUL; + case MONS_HOG: + return TILE_MONS_HOG; + case MONS_GIANT_MOSQUITO: + return TILE_MONS_GIANT_MOSQUITO; + case MONS_GIANT_CENTIPEDE: + return TILE_MONS_GIANT_CENTIPEDE; + case MONS_IRON_TROLL: + return TILE_MONS_IRON_TROLL; + case MONS_NAGA: + return TILE_MONS_NAGA; + case MONS_FIRE_GIANT: + return TILE_MONS_FIRE_GIANT; + case MONS_FROST_GIANT: + return TILE_MONS_FROST_GIANT; + case MONS_FIREDRAKE: + return TILE_MONS_FIREDRAKE; + case MONS_SHADOW_DRAGON: + return TILE_MONS_SHADOW_DRAGON; + case MONS_YELLOW_SNAKE: + return TILE_MONS_YELLOW_SNAKE; + case MONS_GREY_SNAKE: + return TILE_MONS_GREY_SNAKE; + case MONS_DEEP_TROLL: + return TILE_MONS_DEEP_TROLL; + case MONS_GIANT_BLOWFLY: + return TILE_MONS_GIANT_BLOWFLY; + case MONS_RED_WASP: + return TILE_MONS_RED_WASP; + case MONS_SWAMP_DRAGON: + return TILE_MONS_SWAMP_DRAGON; + case MONS_SWAMP_DRAKE: + return TILE_MONS_SWAMP_DRAKE; + case MONS_SOLDIER_ANT: + return TILE_MONS_SOLDIER_ANT; + case MONS_HILL_GIANT: + return TILE_MONS_HILL_GIANT; + case MONS_QUEEN_ANT: + return TILE_MONS_QUEEN_ANT; + case MONS_ANT_LARVA: + return TILE_MONS_ANT_LARVA; + case MONS_GIANT_FROG: + return TILE_MONS_GIANT_FROG; + case MONS_GIANT_BROWN_FROG: + return TILE_MONS_GIANT_BROWN_FROG; + case MONS_SPINY_FROG: + return TILE_MONS_SPINY_FROG; + case MONS_BLINK_FROG: + return TILE_MONS_BLINK_FROG; + case MONS_GIANT_COCKROACH: + return TILE_MONS_GIANT_COCKROACH; + case MONS_SMALL_SNAKE: + return TILE_MONS_SMALL_SNAKE; + case MONS_SHUGGOTH: + return TILE_TODO; + case MONS_WOLF: + return TILE_MONS_WOLF; + case MONS_WARG: + return TILE_MONS_WARG; + case MONS_BEAR: + return TILE_MONS_BEAR; + case MONS_GRIZZLY_BEAR: + return TILE_MONS_GRIZZLY_BEAR; + case MONS_POLAR_BEAR: + return TILE_MONS_POLAR_BEAR; + case MONS_BLACK_BEAR: + return TILE_MONS_BLACK_BEAR; + case MONS_SIMULACRUM_SMALL: + return TILE_MONS_SIMULACRUM_SMALL; + case MONS_SIMULACRUM_LARGE: + return TILE_MONS_SIMULACRUM_LARGE; + case MONS_WHITE_IMP: + return TILE_MONS_WHITE_IMP; + case MONS_LEMURE: + return TILE_MONS_LEMURE; + case MONS_UFETUBUS: + return TILE_MONS_UFETUBUS; + case MONS_MANES: + return TILE_MONS_MANES; + case MONS_MIDGE: + return TILE_MONS_MIDGE; + case MONS_NEQOXEC: + return TILE_MONS_NEQOXEC; + case MONS_ORANGE_DEMON: + return TILE_MONS_ORANGE_DEMON; + case MONS_HELLWING: + return TILE_MONS_HELLWING; + case MONS_SMOKE_DEMON: + return TILE_MONS_SMOKE_DEMON; + case MONS_YNOXINUL: + return TILE_MONS_YNOXINUL; + case MONS_EXECUTIONER: + return TILE_MONS_EXECUTIONER; + case MONS_GREEN_DEATH: + return TILE_MONS_GREEN_DEATH; + case MONS_BLUE_DEATH: + return TILE_MONS_BLUE_DEATH; + case MONS_BALRUG: + return TILE_MONS_BALRUG; + case MONS_CACODEMON: + return TILE_MONS_CACODEMON; + case MONS_DEMONIC_CRAWLER: + return TILE_MONS_DEMONIC_CRAWLER; + case MONS_SUN_DEMON: + return TILE_MONS_SUN_DEMON; + case MONS_SHADOW_IMP: + return TILE_MONS_SHADOW_IMP; + case MONS_SHADOW_DEMON: + return TILE_MONS_SHADOW_DEMON; + case MONS_LOROCYPROCA: + return TILE_MONS_LOROCYPROCA; + case MONS_SHADOW_WRAITH: + return TILE_MONS_SHADOW_WRAITH; + case MONS_GIANT_AMOEBA: + return TILE_MONS_GIANT_AMOEBA; + case MONS_GIANT_SLUG: + return TILE_MONS_GIANT_SLUG; + case MONS_GIANT_SNAIL: + return TILE_MONS_GIANT_SNAIL; + case MONS_SPATIAL_VORTEX: + return TILE_MONS_SPATIAL_VORTEX; + case MONS_PIT_FIEND: + return TILE_MONS_PIT_FIEND; + case MONS_BORING_BEETLE: + return TILE_MONS_BORING_BEETLE; + case MONS_GARGOYLE: + return TILE_MONS_GARGOYLE; + case MONS_METAL_GARGOYLE: + return TILE_MONS_METAL_GARGOYLE; + case MONS_MOLTEN_GARGOYLE: + return TILE_MONS_MOLTEN_GARGOYLE; + case MONS_PROGRAM_BUG: + return TILE_MONS_PROGRAM_BUG; + case MONS_MNOLEG: + return TILE_MONS_MNOLEG; + case MONS_LOM_LOBON: + return TILE_MONS_LOM_LOBON; + case MONS_CEREBOV: + return TILE_MONS_CEREBOV; + case MONS_GLOORX_VLOQ: + return TILE_MONS_GLOORX_VLOQ; + case MONS_MOLLUSC_LORD: + return TILE_TODO; + case MONS_NAGA_MAGE: + return TILE_MONS_NAGA_MAGE; + case MONS_NAGA_WARRIOR: + return TILE_MONS_NAGA_WARRIOR; + case MONS_ORC_WARLORD: + return TILE_MONS_ORC_WARLORD; + case MONS_DEEP_ELF_SOLDIER: + return TILE_MONS_DEEP_ELF_SOLDIER; + case MONS_DEEP_ELF_FIGHTER: + return TILE_MONS_DEEP_ELF_FIGHTER; + case MONS_DEEP_ELF_KNIGHT: + return TILE_MONS_DEEP_ELF_KNIGHT; + case MONS_DEEP_ELF_MAGE: + return TILE_MONS_DEEP_ELF_MAGE; + case MONS_DEEP_ELF_SUMMONER: + return TILE_MONS_DEEP_ELF_SUMMONER; + case MONS_DEEP_ELF_CONJURER: + return TILE_MONS_DEEP_ELF_CONJURER; + case MONS_DEEP_ELF_PRIEST: + return TILE_MONS_DEEP_ELF_PRIEST; + case MONS_DEEP_ELF_HIGH_PRIEST: + return TILE_MONS_DEEP_ELF_HIGH_PRIEST; + case MONS_DEEP_ELF_DEMONOLOGIST: + return TILE_MONS_DEEP_ELF_DEMONOLOGIST; + case MONS_DEEP_ELF_ANNIHILATOR: + return TILE_MONS_DEEP_ELF_ANNIHILATOR; + case MONS_DEEP_ELF_SORCERER: + return TILE_MONS_DEEP_ELF_SORCERER; + case MONS_DEEP_ELF_DEATH_MAGE: + return TILE_MONS_DEEP_ELF_DEATH_MAGE; + case MONS_BROWN_OOZE: + return TILE_MONS_BROWN_OOZE; + case MONS_AZURE_JELLY: + return TILE_MONS_AZURE_JELLY; + case MONS_DEATH_OOZE: + return TILE_MONS_DEATH_OOZE; + case MONS_ACID_BLOB: + return TILE_MONS_ACID_BLOB; + case MONS_ROYAL_JELLY: + return TILE_MONS_ROYAL_JELLY; + case MONS_TERENCE: + return TILE_MONS_TERENCE; + case MONS_JESSICA: + return TILE_MONS_JESSICA; + case MONS_IJYB: + return TILE_MONS_IJYB; + case MONS_SIGMUND: + return TILE_MONS_SIGMUND; + case MONS_BLORK_THE_ORC: + return TILE_MONS_BLORK_THE_ORC; + case MONS_EDMUND: + return TILE_MONS_EDMUND; + case MONS_PSYCHE: + return TILE_MONS_PSYCHE; + case MONS_EROLCHA: + return TILE_MONS_EROLCHA; + case MONS_DONALD: + return TILE_MONS_DONALD; + case MONS_URUG: + return TILE_MONS_URUG; + case MONS_MICHAEL: + return TILE_MONS_MICHAEL; + case MONS_JOSEPH: + return TILE_MONS_JOSEPH; + case MONS_SNORG: + return TILE_MONS_SNORG; + case MONS_ERICA: + return TILE_MONS_ERICA; + case MONS_JOSEPHINE: + return TILE_MONS_JOSEPHINE; + case MONS_HAROLD: + return TILE_MONS_HAROLD; + case MONS_NORBERT: + return TILE_MONS_NORBERT; + case MONS_JOZEF: + return TILE_MONS_JOZEF; + case MONS_AGNES: + return TILE_MONS_AGNES; + case MONS_MAUD: + return TILE_MONS_MAUD; + case MONS_LOUISE: + return TILE_MONS_LOUISE; + case MONS_FRANCIS: + return TILE_MONS_FRANCIS; + case MONS_FRANCES: + return TILE_MONS_FRANCES; + case MONS_RUPERT: + return TILE_MONS_RUPERT; + case MONS_WAYNE: + return TILE_MONS_WAYNE; + case MONS_DUANE: + return TILE_MONS_DUANE; + case MONS_XTAHUA: + return TILE_MONS_XTAHUA; + case MONS_NORRIS: + return TILE_MONS_NORRIS; + case MONS_FREDERICK: + return TILE_MONS_FREDERICK; + case MONS_MARGERY: + return TILE_MONS_MARGERY; + case MONS_POLYPHEMUS: + return TILE_MONS_POLYPHEMUS; + case MONS_BORIS: + return TILE_MONS_BORIS; + // Draconians handled above + case MONS_MURRAY: + return TILE_MONS_MURRAY; + case MONS_TIAMAT: + return TILE_MONS_TIAMAT; + case MONS_DEEP_ELF_BLADEMASTER: + return TILE_MONS_DEEP_ELF_BLADEMASTER; + case MONS_DEEP_ELF_MASTER_ARCHER: + return TILE_MONS_DEEP_ELF_MASTER_ARCHER; + + case MONS_GERYON: + return TILE_MONS_GERYON; + case MONS_DISPATER: + return TILE_MONS_DISPATER; + case MONS_ASMODEUS: + return TILE_MONS_ASMODEUS; + case MONS_ANTAEUS: + return TILE_MONS_ANTAEUS; + case MONS_ERESHKIGAL: + return TILE_MONS_ERESHKIGAL; + + case MONS_ANCIENT_LICH: + return TILE_MONS_ANCIENT_LICH; + case MONS_OOZE: + return TILE_MONS_OOZE; + case MONS_VAULT_GUARD: + return TILE_MONS_VAULT_GUARD; + case MONS_CURSE_SKULL: + return TILE_MONS_CURSE_SKULL; + case MONS_VAMPIRE_KNIGHT: + return TILE_MONS_VAMPIRE_KNIGHT; + case MONS_VAMPIRE_MAGE: + return TILE_MONS_VAMPIRE_MAGE; + case MONS_SHINING_EYE: + return TILE_MONS_SHINING_EYE; + case MONS_ORB_GUARDIAN: + return TILE_MONS_ORB_GUARDIAN; + case MONS_DAEVA: + return TILE_MONS_DAEVA; + case MONS_SPECTRAL_THING: + return TILE_MONS_SPECTRAL_THING; + case MONS_GREATER_NAGA: + return TILE_MONS_GREATER_NAGA; + case MONS_SKELETAL_DRAGON: + return TILE_MONS_SKELETAL_DRAGON; + case MONS_TENTACLED_MONSTROSITY: + return TILE_MONS_TENTACLED_MONSTROSITY; + case MONS_SPHINX: + return TILE_MONS_SPHINX; + case MONS_ROTTING_HULK: + return TILE_MONS_ROTTING_HULK; + case MONS_GUARDIAN_MUMMY: + return TILE_MONS_GUARDIAN_MUMMY; + case MONS_GREATER_MUMMY: + return TILE_MONS_GREATER_MUMMY; + case MONS_MUMMY_PRIEST: + return TILE_MONS_MUMMY_PRIEST; + case MONS_CENTAUR_WARRIOR: + return TILE_MONS_CENTAUR_WARRIOR; + case MONS_YAKTAUR_CAPTAIN: + return TILE_MONS_YAKTAUR_CAPTAIN; + case MONS_KILLER_KLOWN: + return TILE_MONS_KILLER_KLOWN; + case MONS_ELECTRIC_GOLEM: + return TILE_MONS_ELECTRIC_GOLEM; + case MONS_BALL_LIGHTNING: + return TILE_MONS_BALL_LIGHTNING; + case MONS_ORB_OF_FIRE: + return TILE_MONS_ORB_OF_FIRE; + case MONS_QUOKKA: + return TILE_MONS_QUOKKA; + case MONS_EYE_OF_DEVASTATION: + return TILE_MONS_EYE_OF_DEVASTATION; + case MONS_MOTH_OF_WRATH: + return TILE_MONS_MOTH_OF_WRATH; + case MONS_DEATH_COB: + return TILE_MONS_DEATH_COB; + case MONS_CURSE_TOE: + return TILE_MONS_CURSE_TOE; + + 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; - } + return tileidx_item(item); + } + + case MONS_HELL_HOG: + return TILE_MONS_HELL_HOG; + case MONS_SERPENT_OF_HELL: + return TILE_MONS_SERPENT_OF_HELL; + case MONS_BOGGART: + return TILE_MONS_BOGGART; + case MONS_QUICKSILVER_DRAGON: + return TILE_MONS_QUICKSILVER_DRAGON; + case MONS_IRON_DRAGON: + return TILE_MONS_IRON_DRAGON; + case MONS_SKELETAL_WARRIOR: + return TILE_MONS_SKELETAL_WARRIOR; + case MONS_PLAYER_GHOST: + return TILE_MONS_PLAYER_GHOST; + case MONS_PANDEMONIUM_DEMON: + return TILE_MONS_PANDEMONIUM_DEMON; + case MONS_GIANT_NEWT: + return TILE_MONS_GIANT_NEWT; + case MONS_GIANT_GECKO: + return TILE_MONS_GIANT_GECKO; + case MONS_GIANT_IGUANA: + return TILE_MONS_GIANT_IGUANA; + case MONS_GILA_MONSTER: + return TILE_MONS_GILA_MONSTER; + case MONS_KOMODO_DRAGON: + return TILE_MONS_KOMODO_DRAGON; + case MONS_LAVA_WORM: + return TILE_MONS_LAVA_WORM; + case MONS_LAVA_FISH: + return TILE_MONS_LAVA_FISH; + case MONS_LAVA_SNAKE: + return TILE_MONS_LAVA_SNAKE; + case MONS_SALAMANDER: + return TILE_MONS_SALAMANDER; + case MONS_BIG_FISH: + return TILE_MONS_BIG_FISH; + case MONS_GIANT_GOLDFISH: + return TILE_MONS_GIANT_GOLDFISH; + case MONS_ELECTRICAL_EEL: + return TILE_MONS_ELECTRICAL_EEL; + case MONS_JELLYFISH: + return TILE_MONS_JELLYFISH; + case MONS_WATER_ELEMENTAL: + return TILE_MONS_WATER_ELEMENTAL; + case MONS_SWAMP_WORM: + return TILE_MONS_SWAMP_WORM; + case MONS_ROCK_WORM: + return TILE_TODO; + case MONS_ORANGE_STATUE: + return TILE_DNGN_ORANGE_CRYSTAL_STATUE; + case MONS_SILVER_STATUE: + return TILE_DNGN_SILVER_STATUE; + case MONS_ICE_STATUE: + return TILE_DNGN_ICE_STATUE; + case MONS_DEATH_DRAKE: + return TILE_MONS_DEATH_DRAKE; + case MONS_MERFOLK: + return TILE_TODO; + case MONS_MERMAID: + return TILE_TODO; + } - 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; + return TILE_ERROR; } - if(mons_flies(&menv[mon_idx])) ch |= TILE_FLAG_FLYING; - if(menv[mon_idx].has_ench(ENCH_HELD)) ch |= TILE_FLAG_NET; + +int tileidx_monster(int mon_idx) +{ + int ch = tileidx_monster_base(mon_idx); + + 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])) + else if (mons_looks_stabbable(&menv[mon_idx])) { ch |= TILE_FLAG_STAB; } - else if (Options.may_stab_brand != CHATTR_NORMAL && - mons_looks_distracted(&menv[mon_idx])) + else if (mons_looks_distracted(&menv[mon_idx])) { ch |= TILE_FLAG_MAY_STAB; } @@ -1368,6 +1704,10 @@ int tileidx_feature(int object){ case DNGN_SECRET_DOOR: ch=TILE_DNGN_ROCK_WALL_OFS; break; + case DNGN_CLEAR_ROCK_WALL: ch=TILE_TODO; break; + case DNGN_CLEAR_STONE_WALL: ch=TILE_TODO; break; + case DNGN_CLEAR_PERMAROCK_WALL: ch=TILE_TODO; 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; @@ -1393,7 +1733,7 @@ int tileidx_feature(int object){ // 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_TRAP_NATURAL: ch=TILE_TODO; 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: -- cgit v1.2.3-54-g00ecf