summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/tilepick.cc
diff options
context:
space:
mode:
Diffstat (limited to 'crawl-ref/source/tilepick.cc')
-rw-r--r--crawl-ref/source/tilepick.cc893
1 files changed, 379 insertions, 514 deletions
diff --git a/crawl-ref/source/tilepick.cc b/crawl-ref/source/tilepick.cc
index 695281c990..00afc11192 100644
--- a/crawl-ref/source/tilepick.cc
+++ b/crawl-ref/source/tilepick.cc
@@ -24,64 +24,12 @@
#include "stuff.h"
#include "terrain.h"
#include "tiles.h"
+#include "tilemcache.h"
#include "tiledef-dngn.h"
#include "traps.h"
#include "travel.h"
#include "view.h"
-struct mcache_entry
-{
- int mon_tile;
- int equ_tile;
- int draco;
-};
-
-static std::vector<mcache_entry> mcache;
-
-int get_base_idx_from_mcache(int tile_idx)
-{
- int mcache_idx = tile_idx - TILE_MCACHE_START;
- if (mcache_idx >= 0 && mcache_idx < (int)mcache.size())
- {
- return mcache[mcache_idx].mon_tile;
- }
-
- return tile_idx;
-}
-
-bool get_mcache_entry(int tile_idx, int &mon_idx, int &equ_tile, int &draco)
-{
- int mcache_idx = tile_idx - TILE_MCACHE_START;
- if (mcache_idx >= 0 && (unsigned int)mcache_idx < mcache.size())
- {
- mon_idx = mcache[mcache_idx].mon_tile;
- equ_tile = mcache[mcache_idx].equ_tile;
- draco = mcache[mcache_idx].draco;
-
- return true;
- }
-
- return false;
-}
-
-static int _mcache_register(int mon_tile, int equ_tile, int draco = 0)
-{
- mcache_entry entry;
- entry.mon_tile = mon_tile;
- entry.equ_tile = equ_tile;
- entry.draco = draco;
-
- mcache.push_back(entry);
-
- int idx = TILE_MCACHE_START + mcache.size() - 1;
- return idx;
-}
-
-void tile_mcache_unlock()
-{
- mcache.clear();
-}
-
static inline bool _is_bazaar()
{
return (you.level_type == LEVEL_PORTAL_VAULT
@@ -154,9 +102,8 @@ int tile_unseen_flag(const coord_def& gc)
}
}
-static int _tileidx_monster_base(int mon_idx, bool detected)
+static int _tileidx_monster_base(const monsters* mon, bool detected)
{
- const monsters* mon = &menv[mon_idx];
int grid = grd(mon->pos());
bool in_water = (grid == DNGN_SHALLOW_WATER || grid == DNGN_DEEP_WATER);
@@ -169,633 +116,633 @@ static int _tileidx_monster_base(int mon_idx, bool detected)
switch (type)
{
case MONS_GIANT_ANT:
- return TILE_MONS_GIANT_ANT;
+ return TILEP_MONS_GIANT_ANT;
case MONS_GIANT_BAT:
- return TILE_MONS_GIANT_BAT;
+ return TILEP_MONS_GIANT_BAT;
case MONS_CENTAUR:
- return TILE_MONS_CENTAUR;
+ return TILEP_MONS_CENTAUR;
case MONS_RED_DEVIL:
- return TILE_MONS_RED_DEVIL;
+ return TILEP_MONS_RED_DEVIL;
case MONS_ETTIN:
- return TILE_MONS_ETTIN;
+ return TILEP_MONS_ETTIN;
case MONS_FUNGUS:
- return TILE_MONS_FUNGUS;
+ return TILEP_MONS_FUNGUS;
case MONS_GOBLIN:
- return TILE_MONS_GOBLIN;
+ return TILEP_MONS_GOBLIN;
case MONS_HOUND:
- return TILE_MONS_HOUND;
+ return TILEP_MONS_HOUND;
case MONS_IMP:
- return TILE_MONS_IMP;
+ return TILEP_MONS_IMP;
case MONS_JACKAL:
- return TILE_MONS_JACKAL;
+ return TILEP_MONS_JACKAL;
case MONS_KILLER_BEE:
- return TILE_MONS_KILLER_BEE;
+ return TILEP_MONS_KILLER_BEE;
case MONS_KILLER_BEE_LARVA:
- return TILE_MONS_KILLER_BEE_LARVA;
+ return TILEP_MONS_KILLER_BEE_LARVA;
case MONS_MANTICORE:
- return TILE_MONS_MANTICORE;
+ return TILEP_MONS_MANTICORE;
case MONS_NECROPHAGE:
- return TILE_MONS_NECROPHAGE;
+ return TILEP_MONS_NECROPHAGE;
case MONS_ORC:
- return TILE_MONS_ORC;
+ return TILEP_MONS_ORC;
case MONS_PHANTOM:
- return TILE_MONS_PHANTOM;
+ return TILEP_MONS_PHANTOM;
case MONS_QUASIT:
- return TILE_MONS_QUASIT;
+ return TILEP_MONS_QUASIT;
case MONS_RAT:
- return TILE_MONS_RAT;
+ return TILEP_MONS_RAT;
case MONS_SCORPION:
- return TILE_MONS_SCORPION;
+ return TILEP_MONS_SCORPION;
case MONS_UGLY_THING :
- return TILE_MONS_UGLY_THING ;
+ return TILEP_MONS_UGLY_THING ;
case MONS_FIRE_VORTEX:
- return TILE_MONS_FIRE_VORTEX;
+ return TILEP_MONS_FIRE_VORTEX;
case MONS_WORM:
- return TILE_MONS_WORM;
+ return TILEP_MONS_WORM;
case MONS_ABOMINATION_SMALL:
- return TILE_MONS_ABOMINATION_SMALL;
+ return TILEP_MONS_ABOMINATION_SMALL;
case MONS_YELLOW_WASP:
- return TILE_MONS_YELLOW_WASP;
+ return TILEP_MONS_YELLOW_WASP;
case MONS_ZOMBIE_SMALL:
- return TILE_MONS_ZOMBIE_SMALL;
+ return TILEP_MONS_ZOMBIE_SMALL;
case MONS_ANGEL:
- return TILE_MONS_ANGEL;
+ return TILEP_MONS_ANGEL;
case MONS_GIANT_BEETLE:
- return TILE_MONS_GIANT_BEETLE;
+ return TILEP_MONS_GIANT_BEETLE;
case MONS_CYCLOPS:
- return TILE_MONS_CYCLOPS;
+ return TILEP_MONS_CYCLOPS;
case MONS_DRAGON:
- return TILE_MONS_DRAGON;
+ return TILEP_MONS_DRAGON;
case MONS_TWO_HEADED_OGRE:
- return TILE_MONS_TWO_HEADED_OGRE;
+ return TILEP_MONS_TWO_HEADED_OGRE;
case MONS_FIEND:
- return TILE_MONS_FIEND;
+ return TILEP_MONS_FIEND;
case MONS_GIANT_SPORE:
- return TILE_MONS_GIANT_SPORE;
+ return TILEP_MONS_GIANT_SPORE;
case MONS_HOBGOBLIN:
- return TILE_MONS_HOBGOBLIN;
+ return TILEP_MONS_HOBGOBLIN;
case MONS_ICE_BEAST:
- return TILE_MONS_ICE_BEAST;
+ return TILEP_MONS_ICE_BEAST;
case MONS_JELLY:
- return TILE_MONS_JELLY;
+ return TILEP_MONS_JELLY;
case MONS_KOBOLD:
- return TILE_MONS_KOBOLD;
+ return TILEP_MONS_KOBOLD;
case MONS_LICH:
- return TILE_MONS_LICH;
+ return TILEP_MONS_LICH;
case MONS_MUMMY:
- return TILE_MONS_MUMMY;
+ return TILEP_MONS_MUMMY;
case MONS_GUARDIAN_NAGA:
- return TILE_MONS_GUARDIAN_NAGA;
+ return TILEP_MONS_GUARDIAN_NAGA;
case MONS_OGRE:
- return TILE_MONS_OGRE;
+ return TILEP_MONS_OGRE;
case MONS_PLANT:
- return TILE_MONS_PLANT;
+ return TILEP_MONS_PLANT;
case MONS_QUEEN_BEE:
- return TILE_MONS_QUEEN_BEE;
+ return TILEP_MONS_QUEEN_BEE;
case MONS_RAKSHASA:
- return TILE_MONS_RAKSHASA;
+ return TILEP_MONS_RAKSHASA;
case MONS_SNAKE:
- return TILE_MONS_SNAKE;
+ return TILEP_MONS_SNAKE;
case MONS_TROLL:
- return TILE_MONS_TROLL;
+ return TILEP_MONS_TROLL;
case MONS_UNSEEN_HORROR:
- return TILE_MONS_UNSEEN_HORROR;
+ return TILEP_MONS_UNSEEN_HORROR;
case MONS_VAMPIRE:
- return TILE_MONS_VAMPIRE;
+ return TILEP_MONS_VAMPIRE;
case MONS_WRAITH:
- return TILE_MONS_WRAITH;
+ return TILEP_MONS_WRAITH;
case MONS_ABOMINATION_LARGE:
- return TILE_MONS_ABOMINATION_LARGE + ((mon->colour)%7);
+ return TILEP_MONS_ABOMINATION_LARGE + ((mon->colour)%7);
case MONS_YAK:
- return TILE_MONS_YAK;
+ return TILEP_MONS_YAK;
case MONS_ZOMBIE_LARGE:
- return TILE_MONS_ZOMBIE_LARGE;
+ return TILEP_MONS_ZOMBIE_LARGE;
case MONS_ORC_WARRIOR:
- return TILE_MONS_ORC_WARRIOR;
+ return TILEP_MONS_ORC_WARRIOR;
case MONS_KOBOLD_DEMONOLOGIST:
- return TILE_MONS_KOBOLD_DEMONOLOGIST;
+ return TILEP_MONS_KOBOLD_DEMONOLOGIST;
case MONS_ORC_WIZARD:
- return TILE_MONS_ORC_WIZARD;
+ return TILEP_MONS_ORC_WIZARD;
case MONS_ORC_KNIGHT:
- return TILE_MONS_ORC_KNIGHT;
+ return TILEP_MONS_ORC_KNIGHT;
case MONS_WYVERN:
- return TILE_MONS_WYVERN;
+ return TILEP_MONS_WYVERN;
case MONS_BIG_KOBOLD:
- return TILE_MONS_BIG_KOBOLD;
+ return TILEP_MONS_BIG_KOBOLD;
case MONS_GIANT_EYEBALL:
- return TILE_MONS_GIANT_EYEBALL;
+ return TILEP_MONS_GIANT_EYEBALL;
case MONS_WIGHT:
- return TILE_MONS_WIGHT;
+ return TILEP_MONS_WIGHT;
case MONS_OKLOB_PLANT:
- return TILE_MONS_OKLOB_PLANT;
+ return TILEP_MONS_OKLOB_PLANT;
case MONS_WOLF_SPIDER:
- return TILE_MONS_WOLF_SPIDER;
+ return TILEP_MONS_WOLF_SPIDER;
case MONS_SHADOW:
- return TILE_MONS_SHADOW;
+ return TILEP_MONS_SHADOW;
case MONS_HUNGRY_GHOST:
- return TILE_MONS_HUNGRY_GHOST;
+ return TILEP_MONS_HUNGRY_GHOST;
case MONS_EYE_OF_DRAINING:
- return TILE_MONS_EYE_OF_DRAINING;
+ return TILEP_MONS_EYE_OF_DRAINING;
case MONS_BUTTERFLY:
- return TILE_MONS_BUTTERFLY + ((mon->colour)%7);
+ return TILEP_MONS_BUTTERFLY + ((mon->colour)%7);
case MONS_WANDERING_MUSHROOM:
- return TILE_MONS_WANDERING_MUSHROOM;
+ return TILEP_MONS_WANDERING_MUSHROOM;
case MONS_EFREET:
- return TILE_MONS_EFREET;
+ return TILEP_MONS_EFREET;
case MONS_BRAIN_WORM:
- return TILE_MONS_BRAIN_WORM;
+ return TILEP_MONS_BRAIN_WORM;
case MONS_GIANT_ORANGE_BRAIN:
- return TILE_MONS_GIANT_ORANGE_BRAIN;
+ return TILEP_MONS_GIANT_ORANGE_BRAIN;
case MONS_BOULDER_BEETLE:
- return TILE_MONS_BOULDER_BEETLE;
+ return TILEP_MONS_BOULDER_BEETLE;
case MONS_FLYING_SKULL:
- return TILE_MONS_FLYING_SKULL;
+ return TILEP_MONS_FLYING_SKULL;
case MONS_HELL_HOUND:
- return TILE_MONS_HELL_HOUND;
+ return TILEP_MONS_HELL_HOUND;
case MONS_MINOTAUR:
- return TILE_MONS_MINOTAUR;
+ return TILEP_MONS_MINOTAUR;
case MONS_ICE_DRAGON:
- return TILE_MONS_ICE_DRAGON;
+ return TILEP_MONS_ICE_DRAGON;
case MONS_SLIME_CREATURE:
- return TILE_MONS_SLIME_CREATURE;
+ return TILEP_MONS_SLIME_CREATURE;
case MONS_FREEZING_WRAITH:
- return TILE_MONS_FREEZING_WRAITH;
+ return TILEP_MONS_FREEZING_WRAITH;
case MONS_RAKSHASA_FAKE:
- return TILE_MONS_RAKSHASA_FAKE;
+ return TILEP_MONS_RAKSHASA_FAKE;
case MONS_GREAT_ORB_OF_EYES:
- return TILE_MONS_GREAT_ORB_OF_EYES;
+ return TILEP_MONS_GREAT_ORB_OF_EYES;
case MONS_HELLION:
- return TILE_MONS_HELLION;
+ return TILEP_MONS_HELLION;
case MONS_ROTTING_DEVIL:
- return TILE_MONS_ROTTING_DEVIL;
+ return TILEP_MONS_ROTTING_DEVIL;
case MONS_TORMENTOR:
- return TILE_MONS_TORMENTOR;
+ return TILEP_MONS_TORMENTOR;
case MONS_REAPER:
- return TILE_MONS_REAPER;
+ return TILEP_MONS_REAPER;
case MONS_SOUL_EATER:
- return TILE_MONS_SOUL_EATER;
+ return TILEP_MONS_SOUL_EATER;
case MONS_HAIRY_DEVIL:
- return TILE_MONS_HAIRY_DEVIL;
+ return TILEP_MONS_HAIRY_DEVIL;
case MONS_ICE_DEVIL:
- return TILE_MONS_ICE_DEVIL;
+ return TILEP_MONS_ICE_DEVIL;
case MONS_BLUE_DEVIL:
- return TILE_MONS_BLUE_DEVIL;
+ return TILEP_MONS_BLUE_DEVIL;
case MONS_BEAST:
- return TILE_MONS_BEAST;
+ return TILEP_MONS_BEAST;
case MONS_IRON_DEVIL:
- return TILE_MONS_IRON_DEVIL;
+ return TILEP_MONS_IRON_DEVIL;
case MONS_GLOWING_SHAPESHIFTER:
- return TILE_MONS_GLOWING_SHAPESHIFTER;
+ return TILEP_MONS_GLOWING_SHAPESHIFTER;
case MONS_SHAPESHIFTER:
- return TILE_MONS_SHAPESHIFTER;
+ return TILEP_MONS_SHAPESHIFTER;
case MONS_GIANT_MITE:
- return TILE_MONS_GIANT_MITE;
+ return TILEP_MONS_GIANT_MITE;
case MONS_STEAM_DRAGON:
- return TILE_MONS_STEAM_DRAGON;
+ return TILEP_MONS_STEAM_DRAGON;
case MONS_VERY_UGLY_THING:
- return TILE_MONS_VERY_UGLY_THING;
+ return TILEP_MONS_VERY_UGLY_THING;
case MONS_ORC_SORCERER:
- return TILE_MONS_ORC_SORCERER;
+ return TILEP_MONS_ORC_SORCERER;
case MONS_HIPPOGRIFF:
- return TILE_MONS_HIPPOGRIFF;
+ return TILEP_MONS_HIPPOGRIFF;
case MONS_GRIFFON:
- return TILE_MONS_GRIFFON;
+ return TILEP_MONS_GRIFFON;
case MONS_HYDRA:
// Number of heads
- return TILE_MONS_HYDRA + std::min((int)mon->number, 7) - 1;
+ return TILEP_MONS_HYDRA + std::min((int)mon->number, 7) - 1;
case MONS_SKELETON_SMALL:
- return TILE_MONS_SKELETON_SMALL;
+ return TILEP_MONS_SKELETON_SMALL;
case MONS_SKELETON_LARGE:
- return TILE_MONS_SKELETON_LARGE;
+ return TILEP_MONS_SKELETON_LARGE;
case MONS_HELL_KNIGHT:
- return TILE_MONS_HELL_KNIGHT;
+ return TILEP_MONS_HELL_KNIGHT;
case MONS_NECROMANCER:
- return TILE_MONS_NECROMANCER;
+ return TILEP_MONS_NECROMANCER;
case MONS_WIZARD:
- return TILE_MONS_WIZARD;
+ return TILEP_MONS_WIZARD;
case MONS_ORC_PRIEST:
- return TILE_MONS_ORC_PRIEST;
+ return TILEP_MONS_ORC_PRIEST;
case MONS_ORC_HIGH_PRIEST:
- return TILE_MONS_ORC_HIGH_PRIEST;
+ return TILEP_MONS_ORC_HIGH_PRIEST;
case MONS_HUMAN:
- return TILE_MONS_HUMAN;
+ return TILEP_MONS_HUMAN;
case MONS_GNOLL:
- return TILE_MONS_GNOLL;
+ return TILEP_MONS_GNOLL;
case MONS_CLAY_GOLEM:
- return TILE_MONS_CLAY_GOLEM;
+ return TILEP_MONS_CLAY_GOLEM;
case MONS_WOOD_GOLEM:
- return TILE_MONS_WOOD_GOLEM;
+ return TILEP_MONS_WOOD_GOLEM;
case MONS_STONE_GOLEM:
- return TILE_MONS_STONE_GOLEM;
+ return TILEP_MONS_STONE_GOLEM;
case MONS_IRON_GOLEM:
- return TILE_MONS_IRON_GOLEM;
+ return TILEP_MONS_IRON_GOLEM;
case MONS_CRYSTAL_GOLEM:
- return TILE_MONS_CRYSTAL_GOLEM;
+ return TILEP_MONS_CRYSTAL_GOLEM;
case MONS_TOENAIL_GOLEM:
- return TILE_MONS_TOENAIL_GOLEM;
+ return TILEP_MONS_TOENAIL_GOLEM;
case MONS_MOTTLED_DRAGON:
- return TILE_MONS_MOTTLED_DRAGON;
+ return TILEP_MONS_MOTTLED_DRAGON;
case MONS_EARTH_ELEMENTAL:
- return TILE_MONS_EARTH_ELEMENTAL;
+ return TILEP_MONS_EARTH_ELEMENTAL;
case MONS_FIRE_ELEMENTAL:
- return TILE_MONS_FIRE_ELEMENTAL;
+ return TILEP_MONS_FIRE_ELEMENTAL;
case MONS_AIR_ELEMENTAL:
- return TILE_MONS_AIR_ELEMENTAL;
+ return TILEP_MONS_AIR_ELEMENTAL;
case MONS_ICE_FIEND:
- return TILE_MONS_ICE_FIEND;
+ return TILEP_MONS_ICE_FIEND;
case MONS_SHADOW_FIEND:
- return TILE_MONS_SHADOW_FIEND;
+ return TILEP_MONS_SHADOW_FIEND;
case MONS_BROWN_SNAKE:
- return TILE_MONS_BROWN_SNAKE;
+ return TILEP_MONS_BROWN_SNAKE;
case MONS_GIANT_LIZARD:
- return TILE_MONS_GIANT_LIZARD;
+ return TILEP_MONS_GIANT_LIZARD;
case MONS_SPECTRAL_WARRIOR:
- return TILE_MONS_SPECTRAL_WARRIOR;
+ return TILEP_MONS_SPECTRAL_WARRIOR;
case MONS_PULSATING_LUMP:
- return TILE_MONS_PULSATING_LUMP;
+ return TILEP_MONS_PULSATING_LUMP;
case MONS_STORM_DRAGON:
- return TILE_MONS_STORM_DRAGON;
+ return TILEP_MONS_STORM_DRAGON;
case MONS_YAKTAUR:
- return TILE_MONS_YAKTAUR;
+ return TILEP_MONS_YAKTAUR;
case MONS_DEATH_YAK:
- return TILE_MONS_DEATH_YAK;
+ return TILEP_MONS_DEATH_YAK;
case MONS_ROCK_TROLL:
- return TILE_MONS_ROCK_TROLL;
+ return TILEP_MONS_ROCK_TROLL;
case MONS_STONE_GIANT:
- return TILE_MONS_STONE_GIANT;
+ return TILEP_MONS_STONE_GIANT;
case MONS_FLAYED_GHOST:
- return TILE_MONS_FLAYED_GHOST;
+ return TILEP_MONS_FLAYED_GHOST;
case MONS_BUMBLEBEE:
- return TILE_MONS_BUMBLEBEE;
+ return TILEP_MONS_BUMBLEBEE;
case MONS_REDBACK:
- return TILE_MONS_REDBACK;
+ return TILEP_MONS_REDBACK;
case MONS_INSUBSTANTIAL_WISP:
- return TILE_MONS_INSUBSTANTIAL_WISP;
+ return TILEP_MONS_INSUBSTANTIAL_WISP;
case MONS_VAPOUR:
- return TILE_MONS_VAPOUR;
+ return TILEP_MONS_VAPOUR;
case MONS_OGRE_MAGE:
- return TILE_MONS_OGRE_MAGE;
+ return TILEP_MONS_OGRE_MAGE;
case MONS_SPINY_WORM:
- return TILE_MONS_SPINY_WORM;
+ return TILEP_MONS_SPINY_WORM;
case MONS_DANCING_WEAPON:
{
// Use item tile
- item_def item = mitm[menv[mon_idx].inv[MSLOT_WEAPON]];
+ item_def item = mitm[mon->inv[MSLOT_WEAPON]];
return tileidx_item(item) | TILE_FLAG_ANIM_WEP;
}
case MONS_TITAN:
- return TILE_MONS_TITAN;
+ return TILEP_MONS_TITAN;
case MONS_GOLDEN_DRAGON:
- return TILE_MONS_GOLDEN_DRAGON;
+ return TILEP_MONS_GOLDEN_DRAGON;
case MONS_ELF:
- return TILE_MONS_ELF;
+ return TILEP_MONS_ELF;
case MONS_LINDWURM:
- return TILE_MONS_LINDWURM;
+ return TILEP_MONS_LINDWURM;
case MONS_ELEPHANT_SLUG:
- return TILE_MONS_ELEPHANT_SLUG;
+ return TILEP_MONS_ELEPHANT_SLUG;
case MONS_WAR_DOG:
- return TILE_MONS_WAR_DOG;
+ return TILEP_MONS_WAR_DOG;
case MONS_GREY_RAT:
- return TILE_MONS_GREY_RAT;
+ return TILEP_MONS_GREY_RAT;
case MONS_GREEN_RAT:
- return TILE_MONS_GREEN_RAT;
+ return TILEP_MONS_GREEN_RAT;
case MONS_ORANGE_RAT:
- return TILE_MONS_ORANGE_RAT;
+ return TILEP_MONS_ORANGE_RAT;
case MONS_BLACK_SNAKE:
- return TILE_MONS_BLACK_SNAKE;
+ return TILEP_MONS_BLACK_SNAKE;
case MONS_SHEEP:
- return TILE_MONS_SHEEP;
+ return TILEP_MONS_SHEEP;
case MONS_GHOUL:
- return TILE_MONS_GHOUL;
+ return TILEP_MONS_GHOUL;
case MONS_HOG:
- return TILE_MONS_HOG;
+ return TILEP_MONS_HOG;
case MONS_GIANT_MOSQUITO:
- return TILE_MONS_GIANT_MOSQUITO;
+ return TILEP_MONS_GIANT_MOSQUITO;
case MONS_GIANT_CENTIPEDE:
- return TILE_MONS_GIANT_CENTIPEDE;
+ return TILEP_MONS_GIANT_CENTIPEDE;
case MONS_IRON_TROLL:
- return TILE_MONS_IRON_TROLL;
+ return TILEP_MONS_IRON_TROLL;
case MONS_NAGA:
- return TILE_MONS_NAGA;
+ return TILEP_MONS_NAGA;
case MONS_FIRE_GIANT:
- return TILE_MONS_FIRE_GIANT;
+ return TILEP_MONS_FIRE_GIANT;
case MONS_FROST_GIANT:
- return TILE_MONS_FROST_GIANT;
+ return TILEP_MONS_FROST_GIANT;
case MONS_FIREDRAKE:
- return TILE_MONS_FIREDRAKE;
+ return TILEP_MONS_FIREDRAKE;
case MONS_SHADOW_DRAGON:
- return TILE_MONS_SHADOW_DRAGON;
+ return TILEP_MONS_SHADOW_DRAGON;
case MONS_YELLOW_SNAKE:
- return TILE_MONS_YELLOW_SNAKE;
+ return TILEP_MONS_YELLOW_SNAKE;
case MONS_GREY_SNAKE:
- return TILE_MONS_GREY_SNAKE;
+ return TILEP_MONS_GREY_SNAKE;
case MONS_DEEP_TROLL:
- return TILE_MONS_DEEP_TROLL;
+ return TILEP_MONS_DEEP_TROLL;
case MONS_GIANT_BLOWFLY:
- return TILE_MONS_GIANT_BLOWFLY;
+ return TILEP_MONS_GIANT_BLOWFLY;
case MONS_RED_WASP:
- return TILE_MONS_RED_WASP;
+ return TILEP_MONS_RED_WASP;
case MONS_SWAMP_DRAGON:
- return TILE_MONS_SWAMP_DRAGON;
+ return TILEP_MONS_SWAMP_DRAGON;
case MONS_SWAMP_DRAKE:
- return TILE_MONS_SWAMP_DRAKE;
+ return TILEP_MONS_SWAMP_DRAKE;
case MONS_SOLDIER_ANT:
- return TILE_MONS_SOLDIER_ANT;
+ return TILEP_MONS_SOLDIER_ANT;
case MONS_HILL_GIANT:
- return TILE_MONS_HILL_GIANT;
+ return TILEP_MONS_HILL_GIANT;
case MONS_QUEEN_ANT:
- return TILE_MONS_QUEEN_ANT;
+ return TILEP_MONS_QUEEN_ANT;
case MONS_ANT_LARVA:
- return TILE_MONS_ANT_LARVA;
+ return TILEP_MONS_ANT_LARVA;
case MONS_GIANT_FROG:
- return TILE_MONS_GIANT_FROG;
+ return TILEP_MONS_GIANT_FROG;
case MONS_GIANT_BROWN_FROG:
- return TILE_MONS_GIANT_BROWN_FROG;
+ return TILEP_MONS_GIANT_BROWN_FROG;
case MONS_SPINY_FROG:
- return TILE_MONS_SPINY_FROG;
+ return TILEP_MONS_SPINY_FROG;
case MONS_BLINK_FROG:
- return TILE_MONS_BLINK_FROG;
+ return TILEP_MONS_BLINK_FROG;
case MONS_GIANT_COCKROACH:
- return TILE_MONS_GIANT_COCKROACH;
+ return TILEP_MONS_GIANT_COCKROACH;
case MONS_SMALL_SNAKE:
- return TILE_MONS_SMALL_SNAKE;
+ return TILEP_MONS_SMALL_SNAKE;
case MONS_SHUGGOTH:
return TILE_TODO;
case MONS_WOLF:
- return TILE_MONS_WOLF;
+ return TILEP_MONS_WOLF;
case MONS_WARG:
- return TILE_MONS_WARG;
+ return TILEP_MONS_WARG;
case MONS_BEAR:
- return TILE_MONS_BEAR;
+ return TILEP_MONS_BEAR;
case MONS_GRIZZLY_BEAR:
- return TILE_MONS_GRIZZLY_BEAR;
+ return TILEP_MONS_GRIZZLY_BEAR;
case MONS_POLAR_BEAR:
- return TILE_MONS_POLAR_BEAR;
+ return TILEP_MONS_POLAR_BEAR;
case MONS_BLACK_BEAR:
- return TILE_MONS_BLACK_BEAR;
+ return TILEP_MONS_BLACK_BEAR;
case MONS_SIMULACRUM_SMALL:
- return TILE_MONS_SIMULACRUM_SMALL;
+ return TILEP_MONS_SIMULACRUM_SMALL;
case MONS_SIMULACRUM_LARGE:
- return TILE_MONS_SIMULACRUM_LARGE;
+ return TILEP_MONS_SIMULACRUM_LARGE;
case MONS_WHITE_IMP:
- return TILE_MONS_WHITE_IMP;
+ return TILEP_MONS_WHITE_IMP;
case MONS_LEMURE:
- return TILE_MONS_LEMURE;
+ return TILEP_MONS_LEMURE;
case MONS_UFETUBUS:
- return TILE_MONS_UFETUBUS;
+ return TILEP_MONS_UFETUBUS;
case MONS_MANES:
- return TILE_MONS_MANES;
+ return TILEP_MONS_MANES;
case MONS_MIDGE:
- return TILE_MONS_MIDGE;
+ return TILEP_MONS_MIDGE;
case MONS_NEQOXEC:
- return TILE_MONS_NEQOXEC;
+ return TILEP_MONS_NEQOXEC;
case MONS_ORANGE_DEMON:
- return TILE_MONS_ORANGE_DEMON;
+ return TILEP_MONS_ORANGE_DEMON;
case MONS_HELLWING:
- return TILE_MONS_HELLWING;
+ return TILEP_MONS_HELLWING;
case MONS_SMOKE_DEMON:
- return TILE_MONS_SMOKE_DEMON;
+ return TILEP_MONS_SMOKE_DEMON;
case MONS_YNOXINUL:
- return TILE_MONS_YNOXINUL;
+ return TILEP_MONS_YNOXINUL;
case MONS_EXECUTIONER:
- return TILE_MONS_EXECUTIONER;
+ return TILEP_MONS_EXECUTIONER;
case MONS_GREEN_DEATH:
- return TILE_MONS_GREEN_DEATH;
+ return TILEP_MONS_GREEN_DEATH;
case MONS_BLUE_DEATH:
- return TILE_MONS_BLUE_DEATH;
+ return TILEP_MONS_BLUE_DEATH;
case MONS_BALRUG:
- return TILE_MONS_BALRUG;
+ return TILEP_MONS_BALRUG;
case MONS_CACODEMON:
- return TILE_MONS_CACODEMON;
+ return TILEP_MONS_CACODEMON;
case MONS_DEMONIC_CRAWLER:
- return TILE_MONS_DEMONIC_CRAWLER;
+ return TILEP_MONS_DEMONIC_CRAWLER;
case MONS_SUN_DEMON:
- return TILE_MONS_SUN_DEMON;
+ return TILEP_MONS_SUN_DEMON;
case MONS_SHADOW_IMP:
- return TILE_MONS_SHADOW_IMP;
+ return TILEP_MONS_SHADOW_IMP;
case MONS_SHADOW_DEMON:
- return TILE_MONS_SHADOW_DEMON;
+ return TILEP_MONS_SHADOW_DEMON;
case MONS_LOROCYPROCA:
- return TILE_MONS_LOROCYPROCA;
+ return TILEP_MONS_LOROCYPROCA;
case MONS_SHADOW_WRAITH:
- return TILE_MONS_SHADOW_WRAITH;
+ return TILEP_MONS_SHADOW_WRAITH;
case MONS_GIANT_AMOEBA:
- return TILE_MONS_GIANT_AMOEBA;
+ return TILEP_MONS_GIANT_AMOEBA;
case MONS_GIANT_SLUG:
- return TILE_MONS_GIANT_SLUG;
+ return TILEP_MONS_GIANT_SLUG;
case MONS_GIANT_SNAIL:
- return TILE_MONS_GIANT_SNAIL;
+ return TILEP_MONS_GIANT_SNAIL;
case MONS_SPATIAL_VORTEX:
- return TILE_MONS_SPATIAL_VORTEX;
+ return TILEP_MONS_SPATIAL_VORTEX;
case MONS_PIT_FIEND:
- return TILE_MONS_PIT_FIEND;
+ return TILEP_MONS_PIT_FIEND;
case MONS_BORING_BEETLE:
- return TILE_MONS_BORING_BEETLE;
+ return TILEP_MONS_BORING_BEETLE;
case MONS_GARGOYLE:
- return TILE_MONS_GARGOYLE;
+ return TILEP_MONS_GARGOYLE;
case MONS_METAL_GARGOYLE:
- return TILE_MONS_METAL_GARGOYLE;
+ return TILEP_MONS_METAL_GARGOYLE;
case MONS_MOLTEN_GARGOYLE:
- return TILE_MONS_MOLTEN_GARGOYLE;
+ return TILEP_MONS_MOLTEN_GARGOYLE;
case MONS_PROGRAM_BUG:
- return TILE_MONS_PROGRAM_BUG;
+ return TILEP_MONS_PROGRAM_BUG;
case MONS_MNOLEG:
- return TILE_MONS_MNOLEG;
+ return TILEP_MONS_MNOLEG;
case MONS_LOM_LOBON:
- return TILE_MONS_LOM_LOBON;
+ return TILEP_MONS_LOM_LOBON;
case MONS_CEREBOV:
- return TILE_MONS_CEREBOV;
+ return TILEP_MONS_CEREBOV;
case MONS_GLOORX_VLOQ:
- return TILE_MONS_GLOORX_VLOQ;
+ return TILEP_MONS_GLOORX_VLOQ;
case MONS_MOLLUSC_LORD:
return TILE_TODO;
case MONS_NAGA_MAGE:
- return TILE_MONS_NAGA_MAGE;
+ return TILEP_MONS_NAGA_MAGE;
case MONS_NAGA_WARRIOR:
- return TILE_MONS_NAGA_WARRIOR;
+ return TILEP_MONS_NAGA_WARRIOR;
case MONS_ORC_WARLORD:
- return TILE_MONS_ORC_WARLORD;
+ return TILEP_MONS_ORC_WARLORD;
case MONS_DEEP_ELF_SOLDIER:
- return TILE_MONS_DEEP_ELF_SOLDIER;
+ return TILEP_MONS_DEEP_ELF_SOLDIER;
case MONS_DEEP_ELF_FIGHTER:
- return TILE_MONS_DEEP_ELF_FIGHTER;
+ return TILEP_MONS_DEEP_ELF_FIGHTER;
case MONS_DEEP_ELF_KNIGHT:
- return TILE_MONS_DEEP_ELF_KNIGHT;
+ return TILEP_MONS_DEEP_ELF_KNIGHT;
case MONS_DEEP_ELF_MAGE:
- return TILE_MONS_DEEP_ELF_MAGE;
+ return TILEP_MONS_DEEP_ELF_MAGE;
case MONS_DEEP_ELF_SUMMONER:
- return TILE_MONS_DEEP_ELF_SUMMONER;
+ return TILEP_MONS_DEEP_ELF_SUMMONER;
case MONS_DEEP_ELF_CONJURER:
- return TILE_MONS_DEEP_ELF_CONJURER;
+ return TILEP_MONS_DEEP_ELF_CONJURER;
case MONS_DEEP_ELF_PRIEST:
- return TILE_MONS_DEEP_ELF_PRIEST;
+ return TILEP_MONS_DEEP_ELF_PRIEST;
case MONS_DEEP_ELF_HIGH_PRIEST:
- return TILE_MONS_DEEP_ELF_HIGH_PRIEST;
+ return TILEP_MONS_DEEP_ELF_HIGH_PRIEST;
case MONS_DEEP_ELF_DEMONOLOGIST:
- return TILE_MONS_DEEP_ELF_DEMONOLOGIST;
+ return TILEP_MONS_DEEP_ELF_DEMONOLOGIST;
case MONS_DEEP_ELF_ANNIHILATOR:
- return TILE_MONS_DEEP_ELF_ANNIHILATOR;
+ return TILEP_MONS_DEEP_ELF_ANNIHILATOR;
case MONS_DEEP_ELF_SORCERER:
- return TILE_MONS_DEEP_ELF_SORCERER;
+ return TILEP_MONS_DEEP_ELF_SORCERER;
case MONS_DEEP_ELF_DEATH_MAGE:
- return TILE_MONS_DEEP_ELF_DEATH_MAGE;
+ return TILEP_MONS_DEEP_ELF_DEATH_MAGE;
case MONS_BROWN_OOZE:
- return TILE_MONS_BROWN_OOZE;
+ return TILEP_MONS_BROWN_OOZE;
case MONS_AZURE_JELLY:
- return TILE_MONS_AZURE_JELLY;
+ return TILEP_MONS_AZURE_JELLY;
case MONS_DEATH_OOZE:
- return TILE_MONS_DEATH_OOZE;
+ return TILEP_MONS_DEATH_OOZE;
case MONS_ACID_BLOB:
- return TILE_MONS_ACID_BLOB;
+ return TILEP_MONS_ACID_BLOB;
case MONS_ROYAL_JELLY:
- return TILE_MONS_ROYAL_JELLY;
+ return TILEP_MONS_ROYAL_JELLY;
case MONS_TERENCE:
- return TILE_MONS_TERENCE;
+ return TILEP_MONS_TERENCE;
case MONS_JESSICA:
- return TILE_MONS_JESSICA;
+ return TILEP_MONS_JESSICA;
case MONS_IJYB:
- return TILE_MONS_IJYB;
+ return TILEP_MONS_IJYB;
case MONS_SIGMUND:
- return TILE_MONS_SIGMUND;
+ return TILEP_MONS_SIGMUND;
case MONS_BLORK_THE_ORC:
- return TILE_MONS_BLORK_THE_ORC;
+ return TILEP_MONS_BLORK_THE_ORC;
case MONS_EDMUND:
- return TILE_MONS_EDMUND;
+ return TILEP_MONS_EDMUND;
case MONS_PSYCHE:
- return TILE_MONS_PSYCHE;
+ return TILEP_MONS_PSYCHE;
case MONS_EROLCHA:
- return TILE_MONS_EROLCHA;
+ return TILEP_MONS_EROLCHA;
case MONS_DONALD:
- return TILE_MONS_DONALD;
+ return TILEP_MONS_DONALD;
case MONS_URUG:
- return TILE_MONS_URUG;
+ return TILEP_MONS_URUG;
case MONS_MICHAEL:
- return TILE_MONS_MICHAEL;
+ return TILEP_MONS_MICHAEL;
case MONS_JOSEPH:
- return TILE_MONS_JOSEPH;
+ return TILEP_MONS_JOSEPH;
case MONS_SNORG:
- return TILE_MONS_SNORG;
+ return TILEP_MONS_SNORG;
case MONS_ERICA:
- return TILE_MONS_ERICA;
+ return TILEP_MONS_ERICA;
case MONS_JOSEPHINE:
- return TILE_MONS_JOSEPHINE;
+ return TILEP_MONS_JOSEPHINE;
case MONS_HAROLD:
- return TILE_MONS_HAROLD;
+ return TILEP_MONS_HAROLD;
case MONS_NORBERT:
- return TILE_MONS_NORBERT;
+ return TILEP_MONS_NORBERT;
case MONS_JOZEF:
- return TILE_MONS_JOZEF;
+ return TILEP_MONS_JOZEF;
case MONS_AGNES:
- return TILE_MONS_AGNES;
+ return TILEP_MONS_AGNES;
case MONS_MAUD:
- return TILE_MONS_MAUD;
+ return TILEP_MONS_MAUD;
case MONS_LOUISE:
- return TILE_MONS_LOUISE;
+ return TILEP_MONS_LOUISE;
case MONS_FRANCIS:
- return TILE_MONS_FRANCIS;
+ return TILEP_MONS_FRANCIS;
case MONS_FRANCES:
- return TILE_MONS_FRANCES;
+ return TILEP_MONS_FRANCES;
case MONS_RUPERT:
- return TILE_MONS_RUPERT;
+ return TILEP_MONS_RUPERT;
case MONS_WAYNE:
- return TILE_MONS_WAYNE;
+ return TILEP_MONS_WAYNE;
case MONS_DUANE:
- return TILE_MONS_DUANE;
+ return TILEP_MONS_DUANE;
case MONS_XTAHUA:
- return TILE_MONS_XTAHUA;
+ return TILEP_MONS_XTAHUA;
case MONS_NORRIS:
- return TILE_MONS_NORRIS;
+ return TILEP_MONS_NORRIS;
case MONS_FREDERICK:
- return TILE_MONS_FREDERICK;
+ return TILEP_MONS_FREDERICK;
case MONS_MARGERY:
- return TILE_MONS_MARGERY;
+ return TILEP_MONS_MARGERY;
case MONS_POLYPHEMUS:
- return TILE_MONS_POLYPHEMUS;
+ return TILEP_MONS_POLYPHEMUS;
case MONS_BORIS:
- return TILE_MONS_BORIS;
+ return TILEP_MONS_BORIS;
// Draconians handled above
case MONS_MURRAY:
- return TILE_MONS_MURRAY;
+ return TILEP_MONS_MURRAY;
case MONS_TIAMAT:
- return TILE_MONS_TIAMAT;
+ return TILEP_MONS_TIAMAT;
case MONS_DEEP_ELF_BLADEMASTER:
- return TILE_MONS_DEEP_ELF_BLADEMASTER;
+ return TILEP_MONS_DEEP_ELF_BLADEMASTER;
case MONS_DEEP_ELF_MASTER_ARCHER:
- return TILE_MONS_DEEP_ELF_MASTER_ARCHER;
+ return TILEP_MONS_DEEP_ELF_MASTER_ARCHER;
case MONS_GERYON:
- return TILE_MONS_GERYON;
+ return TILEP_MONS_GERYON;
case MONS_DISPATER:
- return TILE_MONS_DISPATER;
+ return TILEP_MONS_DISPATER;
case MONS_ASMODEUS:
- return TILE_MONS_ASMODEUS;
+ return TILEP_MONS_ASMODEUS;
case MONS_ANTAEUS:
- return TILE_MONS_ANTAEUS;
+ return TILEP_MONS_ANTAEUS;
case MONS_ERESHKIGAL:
- return TILE_MONS_ERESHKIGAL;
+ return TILEP_MONS_ERESHKIGAL;
case MONS_ANCIENT_LICH:
- return TILE_MONS_ANCIENT_LICH;
+ return TILEP_MONS_ANCIENT_LICH;
case MONS_OOZE:
- return TILE_MONS_OOZE;
+ return TILEP_MONS_OOZE;
case MONS_VAULT_GUARD:
- return TILE_MONS_VAULT_GUARD;
+ return TILEP_MONS_VAULT_GUARD;
case MONS_CURSE_SKULL:
- return TILE_MONS_CURSE_SKULL;
+ return TILEP_MONS_CURSE_SKULL;
case MONS_VAMPIRE_KNIGHT:
- return TILE_MONS_VAMPIRE_KNIGHT;
+ return TILEP_MONS_VAMPIRE_KNIGHT;
case MONS_VAMPIRE_MAGE:
- return TILE_MONS_VAMPIRE_MAGE;
+ return TILEP_MONS_VAMPIRE_MAGE;
case MONS_SHINING_EYE:
- return TILE_MONS_SHINING_EYE;
+ return TILEP_MONS_SHINING_EYE;
case MONS_ORB_GUARDIAN:
- return TILE_MONS_ORB_GUARDIAN;
+ return TILEP_MONS_ORB_GUARDIAN;
case MONS_DAEVA:
- return TILE_MONS_DAEVA;
+ return TILEP_MONS_DAEVA;
case MONS_SPECTRAL_THING:
- return TILE_MONS_SPECTRAL_THING;
+ return TILEP_MONS_SPECTRAL_THING;
case MONS_GREATER_NAGA:
- return TILE_MONS_GREATER_NAGA;
+ return TILEP_MONS_GREATER_NAGA;
case MONS_SKELETAL_DRAGON:
- return TILE_MONS_SKELETAL_DRAGON;
+ return TILEP_MONS_SKELETAL_DRAGON;
case MONS_TENTACLED_MONSTROSITY:
- return TILE_MONS_TENTACLED_MONSTROSITY;
+ return TILEP_MONS_TENTACLED_MONSTROSITY;
case MONS_SPHINX:
- return TILE_MONS_SPHINX;
+ return TILEP_MONS_SPHINX;
case MONS_ROTTING_HULK:
- return TILE_MONS_ROTTING_HULK;
+ return TILEP_MONS_ROTTING_HULK;
case MONS_GUARDIAN_MUMMY:
- return TILE_MONS_GUARDIAN_MUMMY;
+ return TILEP_MONS_GUARDIAN_MUMMY;
case MONS_GREATER_MUMMY:
- return TILE_MONS_GREATER_MUMMY;
+ return TILEP_MONS_GREATER_MUMMY;
case MONS_MUMMY_PRIEST:
- return TILE_MONS_MUMMY_PRIEST;
+ return TILEP_MONS_MUMMY_PRIEST;
case MONS_CENTAUR_WARRIOR:
- return TILE_MONS_CENTAUR_WARRIOR;
+ return TILEP_MONS_CENTAUR_WARRIOR;
case MONS_YAKTAUR_CAPTAIN:
- return TILE_MONS_YAKTAUR_CAPTAIN;
+ return TILEP_MONS_YAKTAUR_CAPTAIN;
case MONS_KILLER_KLOWN:
- return TILE_MONS_KILLER_KLOWN;
+ return TILEP_MONS_KILLER_KLOWN;
case MONS_ELECTRIC_GOLEM:
- return TILE_MONS_ELECTRIC_GOLEM;
+ return TILEP_MONS_ELECTRIC_GOLEM;
case MONS_BALL_LIGHTNING:
- return TILE_MONS_BALL_LIGHTNING;
+ return TILEP_MONS_BALL_LIGHTNING;
case MONS_ORB_OF_FIRE:
- return TILE_MONS_ORB_OF_FIRE;
+ return TILEP_MONS_ORB_OF_FIRE;
case MONS_QUOKKA:
- return TILE_MONS_QUOKKA;
+ return TILEP_MONS_QUOKKA;
case MONS_EYE_OF_DEVASTATION:
- return TILE_MONS_EYE_OF_DEVASTATION;
+ return TILEP_MONS_EYE_OF_DEVASTATION;
case MONS_MOTH_OF_WRATH:
- return TILE_MONS_MOTH_OF_WRATH;
+ return TILEP_MONS_MOTH_OF_WRATH;
case MONS_DEATH_COB:
- return TILE_MONS_DEATH_COB;
+ return TILEP_MONS_DEATH_COB;
case MONS_CURSE_TOE:
- return TILE_MONS_CURSE_TOE;
+ return TILEP_MONS_CURSE_TOE;
case MONS_GOLD_MIMIC:
case MONS_WEAPON_MIMIC:
@@ -810,81 +757,79 @@ static int _tileidx_monster_base(int mon_idx, bool detected)
}
case MONS_HELL_HOG:
- return TILE_MONS_HELL_HOG;
+ return TILEP_MONS_HELL_HOG;
case MONS_SERPENT_OF_HELL:
- return TILE_MONS_SERPENT_OF_HELL;
+ return TILEP_MONS_SERPENT_OF_HELL;
case MONS_BOGGART:
- return TILE_MONS_BOGGART;
+ return TILEP_MONS_BOGGART;
case MONS_QUICKSILVER_DRAGON:
- return TILE_MONS_QUICKSILVER_DRAGON;
+ return TILEP_MONS_QUICKSILVER_DRAGON;
case MONS_IRON_DRAGON:
- return TILE_MONS_IRON_DRAGON;
+ return TILEP_MONS_IRON_DRAGON;
case MONS_SKELETAL_WARRIOR:
- return TILE_MONS_SKELETAL_WARRIOR;
+ return TILEP_MONS_SKELETAL_WARRIOR;
case MONS_PLAYER_GHOST:
- return TILE_MONS_PLAYER_GHOST;
+ return TILEP_MONS_PLAYER_GHOST;
case MONS_PANDEMONIUM_DEMON:
- return TILE_MONS_PANDEMONIUM_DEMON;
+ return TILEP_MONS_PANDEMONIUM_DEMON;
case MONS_GIANT_NEWT:
- return TILE_MONS_GIANT_NEWT;
+ return TILEP_MONS_GIANT_NEWT;
case MONS_GIANT_GECKO:
- return TILE_MONS_GIANT_GECKO;
+ return TILEP_MONS_GIANT_GECKO;
case MONS_GIANT_IGUANA:
- return TILE_MONS_GIANT_IGUANA;
+ return TILEP_MONS_GIANT_IGUANA;
case MONS_GILA_MONSTER:
- return TILE_MONS_GILA_MONSTER;
+ return TILEP_MONS_GILA_MONSTER;
case MONS_KOMODO_DRAGON:
- return TILE_MONS_KOMODO_DRAGON;
+ return TILEP_MONS_KOMODO_DRAGON;
case MONS_LAVA_WORM:
- return TILE_MONS_LAVA_WORM;
+ return TILEP_MONS_LAVA_WORM;
case MONS_LAVA_FISH:
- return TILE_MONS_LAVA_FISH;
+ return TILEP_MONS_LAVA_FISH;
case MONS_LAVA_SNAKE:
- return TILE_MONS_LAVA_SNAKE;
+ return TILEP_MONS_LAVA_SNAKE;
case MONS_SALAMANDER:
- return TILE_MONS_SALAMANDER;
+ return TILEP_MONS_SALAMANDER;
case MONS_BIG_FISH:
- return TILE_MONS_BIG_FISH;
+ return TILEP_MONS_BIG_FISH;
case MONS_GIANT_GOLDFISH:
- return TILE_MONS_GIANT_GOLDFISH;
+ return TILEP_MONS_GIANT_GOLDFISH;
case MONS_ELECTRICAL_EEL:
- return TILE_MONS_ELECTRICAL_EEL;
+ return TILEP_MONS_ELECTRICAL_EEL;
case MONS_JELLYFISH:
- return TILE_MONS_JELLYFISH;
+ return TILEP_MONS_JELLYFISH;
case MONS_WATER_ELEMENTAL:
- return TILE_MONS_WATER_ELEMENTAL;
+ return TILEP_MONS_WATER_ELEMENTAL;
case MONS_SWAMP_WORM:
- return TILE_MONS_SWAMP_WORM;
+ return TILEP_MONS_SWAMP_WORM;
case MONS_ROCK_WORM:
- return TILE_MONS_ROCK_WORM;
+ return TILEP_MONS_ROCK_WORM;
case MONS_ORANGE_STATUE:
- return TILE_DNGN_ORANGE_CRYSTAL_STATUE;
+ return TILEP_ORANGE_CRYSTAL_STATUE;
case MONS_SILVER_STATUE:
- return TILE_DNGN_SILVER_STATUE;
+ return TILEP_SILVER_STATUE;
case MONS_ICE_STATUE:
- return TILE_DNGN_ICE_STATUE;
+ return TILEP_ICE_STATUE;
case MONS_DEATH_DRAKE:
- return TILE_MONS_DEATH_DRAKE;
+ return TILEP_MONS_DEATH_DRAKE;
case MONS_MERFOLK:
if (in_water)
- return TILE_MONS_MERFOLK_FIGHTER_WATER;
+ return TILEP_MONS_MERFOLK_FIGHTER_WATER;
else
- return TILE_MONS_MERFOLK_FIGHTER;
+ return TILEP_MONS_MERFOLK_FIGHTER;
case MONS_MERMAID:
if (in_water)
- return TILE_MONS_MERMAID_WATER;
+ return TILEP_MONS_MERMAID_WATER;
else
- return TILE_MONS_MERMAID;
+ return TILEP_MONS_MERMAID;
}
return TILE_ERROR;
}
-static int _tileidx_monster(int mon_idx, bool detected)
+int tileidx_monster(const monsters *mons, bool detected)
{
- ASSERT(mon_idx != -1);
- int ch = _tileidx_monster_base(mon_idx, detected);
- const monsters* mons = &menv[mon_idx];
+ int ch = _tileidx_monster_base(mons, detected);
if (mons_flies(mons))
ch |= TILE_FLAG_FLYING;
@@ -912,6 +857,13 @@ static int _tileidx_monster(int mon_idx, bool detected)
return ch;
}
+static int _tileidx_monster(int mon_idx, bool detected)
+{
+ ASSERT(mon_idx != -1);
+ const monsters* mons = &menv[mon_idx];
+ return tileidx_monster(mons, detected);
+}
+
static int _tileidx_fixed_artefact(int special)
{
switch(special)
@@ -2276,19 +2228,19 @@ static int _tileidx_cloud(int type, int decay)
int tileidx_player(int job)
{
- int ch = TILE_PLAYER;
+ int ch = TILEP_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;
+ case 's': ch = TILEP_MONS_WOLF_SPIDER; break;
+ case 'I': ch = TILEP_MONS_ICE_BEAST; break;
+ case '8': ch = TILEP_MONS_STONE_GOLEM; break;
+ case 'D': ch = TILEP_MONS_DRAGON; break;
+ case 'L': ch = TILEP_MONS_LICH; break;
+ case '#': ch = TILEP_MONS_VAPOUR; break;
+ case 'S': ch = TILEP_MONS_LAVA_SNAKE; break;
+ case 'b': ch = TILEP_MONS_GIANT_BAT; break;
}
if (player_is_airborne())
@@ -2349,7 +2301,7 @@ int tileidx_unseen(int ch, const coord_def& gc)
case '+': res = TILE_BOOK_PAPER_OFFSET + 15; break;
case '/': res = TILE_WAND_OFFSET; break;
- case '8': res = TILE_DNGN_SILVER_STATUE; break;
+ case '8': res = TILEP_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;
@@ -2431,7 +2383,7 @@ static inline void _finalize_tile(unsigned int *tile, bool is_special,
|| orig == TILE_DNGN_LAVA
|| orig == TILE_DNGN_STONE_WALL)
{
- (*tile) = orig + (special_flv % tile_dngn_count[orig]);
+ (*tile) = orig + (special_flv % tile_dngn_count(orig));
}
else if (orig == TILE_DNGN_CLOSED_DOOR || orig == TILE_DNGN_OPEN_DOOR)
{
@@ -2442,7 +2394,7 @@ static inline void _finalize_tile(unsigned int *tile, bool is_special,
(*tile) |= flag;
}
-void tilep_calc_flags(int parts[], int flag[])
+void tilep_calc_flags(const int parts[], int flag[])
{
int i;
@@ -4034,7 +3986,7 @@ void tile_place_item_bk(int gx, int gy, int idx)
void tile_place_tile_bk(int gx, int gy, int tileidx)
{
- env.tile_bk_fg[gx][gy] = get_base_idx_from_mcache(tileidx);
+ env.tile_bk_fg[gx][gy] = tileidx;
}
// Called from item() in view.cc
@@ -4058,7 +4010,6 @@ void tile_place_monster(int gx, int gy, int idx, bool foreground, bool detected)
int t = _tileidx_monster(idx, detected);
int t0 = t & TILE_FLAG_MASK;
int flag = t & (~TILE_FLAG_MASK);
- int mon_wep = menv[idx].inv[MSLOT_WEAPON];
if (mons_is_mimic(menv[idx].type))
{
@@ -4096,120 +4047,34 @@ void tile_place_monster(int gx, int gy, int idx, bool foreground, bool detected)
t0 |= TILE_FLAG_S_UNDER;
}
}
- else 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 | _mcache_register(cls, eq, race);
- }
- else if (mon_wep != NON_ITEM)
+ else
{
- 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:
- case TILE_MONS_MERMAID:
- case TILE_MONS_MERMAID_WATER:
- case TILE_MONS_MERFOLK_FIGHTER:
- case TILE_MONS_MERFOLK_FIGHTER_WATER:
-
- if (eq != 0 )
- t = flag | _mcache_register(t0, eq);
- break;
-
- }
+ unsigned int mcache_idx = mcache.register_monster(&menv[idx]);
+ t = flag | (mcache_idx ? mcache_idx : t0);
}
if (foreground)
{
env.tile_fg[ep.x-1][ep.y-1] = t;
- if (menv[idx].is_named() && !mons_friendly(&menv[idx]))
+ if (menv[idx].is_named() && !mons_friendly(&menv[idx])
+ && menv[idx].type != MONS_PANDEMONIUM_DEMON)
{
- tiles.add_text_tag(TAG_NAMED_MONSTER,
- menv[idx].name(DESC_CAP_A), gc);
+ if (menv[idx].type == MONS_PLAYER_GHOST)
+ {
+ // Beautification hack. "Foo's ghost" is a little bit
+ // verbose as a tag. "Foo" on its own should be sufficient.
+ tiles.add_text_tag(TAG_NAMED_MONSTER, menv[idx].mname, gc);
+ }
+ else
+ {
+ tiles.add_text_tag(TAG_NAMED_MONSTER,
+ menv[idx].name(DESC_CAP_A), gc);
+ }
}
}
else
{
- env.tile_bk_fg[gc.x][gc.y] = get_base_idx_from_mcache(t0);
+ env.tile_bk_fg[gc.x][gc.y] = t0;
}
}