summaryrefslogtreecommitdiffstats
path: root/crawl-ref
diff options
context:
space:
mode:
authorj-p-e-g <j-p-e-g@c06c8d41-db1a-0410-9941-cceddc491573>2009-03-09 18:49:14 +0000
committerj-p-e-g <j-p-e-g@c06c8d41-db1a-0410-9941-cceddc491573>2009-03-09 18:49:14 +0000
commit31ecf11f2b7ff57426fb26fce5e3e63444e743c3 (patch)
treeb1b833eea1ac7f74044df506716ef65468127945 /crawl-ref
parent8387025f9dbca1c317d332b8e17661d55d5928bb (diff)
downloadcrawl-ref-31ecf11f2b7ff57426fb26fce5e3e63444e743c3.tar.gz
crawl-ref-31ecf11f2b7ff57426fb26fce5e3e63444e743c3.zip
* Add tile for Nergalle, who's actually not all that ugly but apparently
has a really bad fashion sense. * Add a sticky flame marker for monsters. * Replace the trapdoor spider tile with a less original, but nicer one. * Improve shopping interface: replace "examine item" command with a toggle between browsing and shopping. git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@9397 c06c8d41-db1a-0410-9941-cceddc491573
Diffstat (limited to 'crawl-ref')
-rw-r--r--crawl-ref/source/arena.cc10
-rw-r--r--crawl-ref/source/dat/database/FAQ.txt2
-rw-r--r--crawl-ref/source/invent.cc27
-rw-r--r--crawl-ref/source/item_use.cc3
-rw-r--r--crawl-ref/source/menu.cc9
-rw-r--r--crawl-ref/source/mon-data.h8
-rw-r--r--crawl-ref/source/rltiles/dc-misc.txt1
-rw-r--r--crawl-ref/source/rltiles/dc-misc/flame.pngbin0 -> 256 bytes
-rw-r--r--crawl-ref/source/rltiles/dc-mon.txt2
-rw-r--r--crawl-ref/source/rltiles/dc-mon/animals/trapdoor_spider.pngbin967 -> 848 bytes
-rw-r--r--crawl-ref/source/rltiles/dc-mon/unique/nergalle.pngbin0 -> 1049 bytes
-rw-r--r--crawl-ref/source/shopping.cc139
-rw-r--r--crawl-ref/source/tilemcache.cc2
-rw-r--r--crawl-ref/source/tilepick.cc5
-rw-r--r--crawl-ref/source/tilereg.cc7
-rw-r--r--crawl-ref/source/tiles.h24
16 files changed, 128 insertions, 111 deletions
diff --git a/crawl-ref/source/arena.cc b/crawl-ref/source/arena.cc
index fd8c92c76a..bf950840c9 100644
--- a/crawl-ref/source/arena.cc
+++ b/crawl-ref/source/arena.cc
@@ -485,7 +485,7 @@ namespace arena
void expand_mlist(int exp)
{
- crawl_view.mlistp.y -= exp;
+ crawl_view.mlistp.y -= exp;
crawl_view.mlistsz.y += exp;
}
@@ -496,13 +496,13 @@ namespace arena
parse_monster_spec();
setup_level();
- // Monster set up may block waiting for matchups.
+ // Monster setup may block waiting for matchups.
setup_monsters();
setup_others();
}
- // Temporarily unset craw_state.arena to force a --more-- to happen.
+ // Temporarily unset crawl_state.arena to force a --more-- to happen.
void more()
{
unwind_bool state(crawl_state.arena, false);
@@ -734,6 +734,7 @@ namespace arena
void do_fight()
{
+ viewwindow(true, false);
mesclr(true);
{
cursor_control coff(false);
@@ -943,7 +944,8 @@ namespace arena
if (trials_done < total_trials)
delay(Options.arena_delay * 5);
- } while (!contest_canceled && trials_done < total_trials);
+ }
+ while (!contest_canceled && trials_done < total_trials);
if (total_trials > 0)
{
diff --git a/crawl-ref/source/dat/database/FAQ.txt b/crawl-ref/source/dat/database/FAQ.txt
index c8d4145e59..7b79ece236 100644
--- a/crawl-ref/source/dat/database/FAQ.txt
+++ b/crawl-ref/source/dat/database/FAQ.txt
@@ -378,7 +378,7 @@ paths in the dc-xxxx.txt files. For the compilation to be successful, you may
also need to delete or rename the *.png files in rltiles/. Upon compilation,
the newly rolled *.png files are copied into the dat/tiles/ folder which is
where the game accesses the tiles it needs. You can then share these files
-with others players, so they can use your tileset without having to compile
+with other players, so they can use your tileset without having to compile
the game.
If you've created some nice new tiles or variations of existing ones you'd
diff --git a/crawl-ref/source/invent.cc b/crawl-ref/source/invent.cc
index e650b4dfa9..aa7a0f7016 100644
--- a/crawl-ref/source/invent.cc
+++ b/crawl-ref/source/invent.cc
@@ -51,7 +51,7 @@ static void _get_inv_items_to_show( std::vector<const item_def*> &v,
int selector, int excluded_slot = -1);
InvTitle::InvTitle( Menu *mn, const std::string &title,
- invtitle_annotator tfn )
+ invtitle_annotator tfn )
: MenuEntry( title, MEL_TITLE )
{
m = mn;
@@ -60,15 +60,15 @@ InvTitle::InvTitle( Menu *mn, const std::string &title,
std::string InvTitle::get_text() const
{
- return titlefn? titlefn( m, MenuEntry::get_text() ) :
- MenuEntry::get_text();
+ return (titlefn ? titlefn( m, MenuEntry::get_text() )
+ : MenuEntry::get_text());
}
InvEntry::InvEntry( const item_def &i ) : MenuEntry( "", MEL_ITEM ), item( &i )
{
data = const_cast<item_def *>( item );
- if ( in_inventory(i) && i.base_type != OBJ_GOLD )
+ if (in_inventory(i) && i.base_type != OBJ_GOLD)
{
// We need to do this in order to get the 'wielded' annotation.
// We then toss out the first four characters, which look
@@ -1094,7 +1094,7 @@ std::vector<SelItem> prompt_invent_items(
}
if (need_prompt)
- mpr( prompt, MSGCH_PROMPT );
+ mpr(prompt, MSGCH_PROMPT);
if (need_getch)
keyin = get_ch();
@@ -1448,7 +1448,7 @@ int prompt_invent_item( const char *prompt,
}
if (need_prompt)
- mpr( prompt, MSGCH_PROMPT );
+ mpr(prompt, MSGCH_PROMPT);
if (need_getch)
keyin = get_ch();
@@ -1502,21 +1502,20 @@ int prompt_invent_item( const char *prompt,
need_prompt = false;
need_getch = false;
}
- else if ( count == NULL && isdigit( keyin ) )
+ else if (count == NULL && isdigit( keyin ))
{
- /* scan for our item */
+ // scan for our item
int res = _digit_to_index( keyin, oper );
- if ( res != -1 )
+ if (res != -1)
{
ret = res;
- if ( check_warning_inscriptions( you.inv[ret], oper ) )
+ if (check_warning_inscriptions( you.inv[ret], oper ))
break;
}
}
else if (keyin == ESCAPE
|| (Options.easy_quit_item_prompts
- && allow_easy_quit
- && keyin == ' '))
+ && allow_easy_quit && keyin == ' '))
{
ret = PROMPT_ABORT;
break;
@@ -1526,8 +1525,8 @@ int prompt_invent_item( const char *prompt,
ret = letter_to_index( keyin );
if (must_exist && !is_valid_item( you.inv[ret] ))
- mpr( "You do not have any such object." );
- else if ( check_warning_inscriptions( you.inv[ret], oper ) )
+ mpr("You do not have any such object.");
+ else if (check_warning_inscriptions( you.inv[ret], oper ))
break;
}
else if (!isspace( keyin ))
diff --git a/crawl-ref/source/item_use.cc b/crawl-ref/source/item_use.cc
index a96d9ef08a..94bffc1521 100644
--- a/crawl-ref/source/item_use.cc
+++ b/crawl-ref/source/item_use.cc
@@ -4631,6 +4631,7 @@ static void handle_read_book(int item_slot)
static bool _scroll_modify_item(item_def scroll)
{
ASSERT(scroll.base_type == OBJ_SCROLLS);
+ flush_prev_message();
// Get the slot of the scroll just read.
int item_slot = scroll.slot;
@@ -4677,7 +4678,7 @@ static bool _scroll_modify_item(item_def scroll)
}
break;
default:
- mpr("Buggy scroll can't modify item!");
+ mprf("Buggy scroll %d can't modify item!", scroll.sub_type);
break;
}
diff --git a/crawl-ref/source/menu.cc b/crawl-ref/source/menu.cc
index 6c5c41c67b..7d3cfcacb4 100644
--- a/crawl-ref/source/menu.cc
+++ b/crawl-ref/source/menu.cc
@@ -298,12 +298,11 @@ void Menu::do_menu()
alive = true;
while (alive)
{
- mouse_control mc(MOUSE_MODE_MORE);
- int keyin =
#ifndef USE_TILE
- getchm(KC_MENU, c_getch);
+ int keyin = getchm(KC_MENU, c_getch);
#else
- getch();
+ mouse_control mc(MOUSE_MODE_MORE);
+ int keyin = getch();
#endif
if (!process_key( keyin ))
@@ -1071,7 +1070,7 @@ int slider_menu::item_colour(int index, const MenuEntry *me) const
#if defined(WIN32CONSOLE) || defined(DOS)
colour = dos_brand(colour, CHATTR_REVERSE);
#elif defined(USE_TILE)
- colour = colour == WHITE ? YELLOW : WHITE;
+ colour = (colour == WHITE ? YELLOW : WHITE);
#else
colour |= COLFLAG_REVERSE;
#endif
diff --git a/crawl-ref/source/mon-data.h b/crawl-ref/source/mon-data.h
index 15b43dc132..a10c814f17 100644
--- a/crawl-ref/source/mon-data.h
+++ b/crawl-ref/source/mon-data.h
@@ -1148,7 +1148,7 @@ static monsterentry mondata[] = {
MONS_PHANTOM, 'p', BLUE, "phantom",
M_EVIL | M_SPECIAL_ABILITY,
MR_RES_POISON | mrd(MR_RES_COLD, 2),
- 0, 5, MONS_PHANTOM, MONS_PHANTOM, MH_UNDEAD, -4,
+ 0, 5, MONS_PLAYER_GHOST, MONS_PHANTOM, MH_UNDEAD, -4,
{ {AT_HIT, AF_BLINK, 10}, AT_NO_ATK, AT_NO_ATK, AT_NO_ATK },
{ 7, 3, 5, 0 },
3, 13, MST_NO_SPELLS, CE_NOCORPSE, Z_NOZOMBIE, S_SILENT, I_NORMAL,
@@ -1159,7 +1159,7 @@ static monsterentry mondata[] = {
MONS_HUNGRY_GHOST, 'p', GREEN, "hungry ghost",
M_SENSE_INVIS | M_FLIES | M_EVIL | M_INSUBSTANTIAL | M_SPEAKS,
MR_RES_POISON | mrd(MR_RES_COLD, 2) | MR_RES_STICKY_FLAME,
- 0, 10, MONS_PHANTOM, MONS_HUNGRY_GHOST, MH_UNDEAD, -4,
+ 0, 10, MONS_PLAYER_GHOST, MONS_HUNGRY_GHOST, MH_UNDEAD, -4,
{ {AT_HIT, AF_HUNGER, 5}, AT_NO_ATK, AT_NO_ATK, AT_NO_ATK },
{ 7, 3, 5, 0 },
0, 17, MST_NO_SPELLS, CE_NOCORPSE, Z_NOZOMBIE, S_SILENT, I_NORMAL,
@@ -1170,7 +1170,7 @@ static monsterentry mondata[] = {
MONS_FLAYED_GHOST, 'p', RED, "flayed ghost",
M_FLIES | M_EVIL | M_SPEAKS,
MR_RES_POISON,
- 0, 10, MONS_PHANTOM, MONS_FLAYED_GHOST, MH_UNDEAD, -4,
+ 0, 10, MONS_PLAYER_GHOST, MONS_FLAYED_GHOST, MH_UNDEAD, -4,
{ {AT_HIT, AF_PLAIN, 30}, AT_NO_ATK, AT_NO_ATK, AT_NO_ATK },
{ 11, 3, 5, 0 },
0, 14, MST_NO_SPELLS, CE_NOCORPSE, Z_NOZOMBIE, S_SILENT, I_NORMAL,
@@ -1183,7 +1183,7 @@ static monsterentry mondata[] = {
M_FIGHTER | M_SPEAKS | M_SPELLCASTER | M_ACTUAL_SPELLS | M_FLIES
| M_EVIL | M_UNIQUE | M_INSUBSTANTIAL,
MR_RES_POISON | MR_RES_STICKY_FLAME,
- 0, 15, MONS_PHANTOM, MONS_PLAYER_GHOST, MH_UNDEAD, -5,
+ 0, 15, MONS_PLAYER_GHOST, MONS_PLAYER_GHOST, MH_UNDEAD, -5,
{ {AT_HIT, AF_PLAIN, 5}, AT_NO_ATK, AT_NO_ATK, AT_NO_ATK },
{ 4, 2, 3, 0 },
1, 2, MST_GHOST, CE_NOCORPSE, Z_NOZOMBIE, S_SHOUT, I_HIGH,
diff --git a/crawl-ref/source/rltiles/dc-misc.txt b/crawl-ref/source/rltiles/dc-misc.txt
index 30bfe5fb9e..922910a122 100644
--- a/crawl-ref/source/rltiles/dc-misc.txt
+++ b/crawl-ref/source/rltiles/dc-misc.txt
@@ -56,6 +56,7 @@ heart HEART
neutral NEUTRAL
animated_weapon ANIMATED_WEAPON
poison POISON
+flame FLAME
%rim 0
may_stab_brand MAY_STAB_BRAND
stab_brand STAB_BRAND
diff --git a/crawl-ref/source/rltiles/dc-misc/flame.png b/crawl-ref/source/rltiles/dc-misc/flame.png
new file mode 100644
index 0000000000..56c39b19bc
--- /dev/null
+++ b/crawl-ref/source/rltiles/dc-misc/flame.png
Binary files differ
diff --git a/crawl-ref/source/rltiles/dc-mon.txt b/crawl-ref/source/rltiles/dc-mon.txt
index 4da943cdca..b48aa16c95 100644
--- a/crawl-ref/source/rltiles/dc-mon.txt
+++ b/crawl-ref/source/rltiles/dc-mon.txt
@@ -518,6 +518,7 @@ rotting_hulk MONS_ROTTING_HULK
%sdir dc-mon/unique
blork_the_orc MONS_BLORK_THE_ORC
urug MONS_URUG
+nergalle MONS_NERGALLE
saint_roka MONS_SAINT_ROKA
%sdir dc-mon
orc MONS_ORC
@@ -534,6 +535,7 @@ orc_high_priest MONS_ORC_HIGH_PRIEST
shadow MONS_SHADOW /*' '*/
insubstantial_wisp MONS_INSUBSTANTIAL_WISP
phantom MONS_PHANTOM
+## used for Detect Creatures
ghost MONS_PLAYER_GHOST
%rim 1
flayed_ghost MONS_FLAYED_GHOST
diff --git a/crawl-ref/source/rltiles/dc-mon/animals/trapdoor_spider.png b/crawl-ref/source/rltiles/dc-mon/animals/trapdoor_spider.png
index 655921ef47..5164fd33d6 100644
--- a/crawl-ref/source/rltiles/dc-mon/animals/trapdoor_spider.png
+++ b/crawl-ref/source/rltiles/dc-mon/animals/trapdoor_spider.png
Binary files differ
diff --git a/crawl-ref/source/rltiles/dc-mon/unique/nergalle.png b/crawl-ref/source/rltiles/dc-mon/unique/nergalle.png
new file mode 100644
index 0000000000..fdcf2c2df9
--- /dev/null
+++ b/crawl-ref/source/rltiles/dc-mon/unique/nergalle.png
Binary files differ
diff --git a/crawl-ref/source/shopping.cc b/crawl-ref/source/shopping.cc
index fc956d5004..18ea77e3d2 100644
--- a/crawl-ref/source/shopping.cc
+++ b/crawl-ref/source/shopping.cc
@@ -92,7 +92,7 @@ static std::string _purchase_keys(const std::string &s)
return (list);
}
-static void _list_shop_keys(const std::string &purchasable)
+static void _list_shop_keys(const std::string &purchasable, bool viewing)
{
char buf[200];
const int numlines = get_number_of_lines();
@@ -100,10 +100,18 @@ static void _list_shop_keys(const std::string &purchasable)
std::string pkeys = _purchase_keys(purchasable);
if (!pkeys.empty())
- pkeys = "[" + pkeys + "] Select Item";
-
+ {
+ pkeys = "[" + pkeys + "] Select Item to "
+ + (viewing ? "Examine" : "Buy");
+ }
snprintf(buf, sizeof buf,
- "[<w>x</w>/<w>Esc</w>] Exit [<w>v</w>] Examine Items %s",
+#ifdef USE_TILE
+ "[<w>x</w>/<w>Esc</w>/<w>R-Click</w>] Exit"
+#else
+ "[<w>x</w>/<w>Esc</w>] Exit"
+#endif
+ " [<w>!</w>] %s %s",
+ (viewing ? "Select Items " : "Examine Items"),
pkeys.c_str());
formatted_string fs = formatted_string::parse_string(buf);
@@ -112,8 +120,12 @@ static void _list_shop_keys(const std::string &purchasable)
cgotoxy(1, numlines, GOTO_CRT);
fs = formatted_string::parse_string(
- "[<w>?</w>/<w>*</w>] Inventory "
- "[<w>\\</w>] Known Items [<w>Enter</w>] Make Purchase");
+ "[<w>?</w>/<w>*</w>] Inventory [<w>\\</w>] Known Items "
+#ifdef USE_TILE
+ "[<w>Enter</w>/<w>L-Click</w>] Make Purchase");
+#else
+ "[<w>Enter</w>] Make Purchase");
+#endif
fs.cprintf("%*s", get_number_of_cols() - fs.length() - 1, "");
fs.display();
}
@@ -220,13 +232,12 @@ static std::string _shop_print_stock( const std::vector<int>& stock,
// * Enter buys (with prompt), as now
// * \ shows discovered items, as now
// * x exits (also Esc), as now
-// --------
-// * ? toggles examination mode (where letter keys view items)
-// * * lists inventory (currently also ?)
+// * ! toggles examination mode (where letter keys view items)
+// * *, ? lists inventory
//
// For the ? key, the text should read:
-// [?] switch to examination mode
-// [?] switch to selection mode
+// [!] switch to examination mode
+// [!] switch to selection mode
static bool _in_a_shop( int shopidx )
{
const shop_struct& shop = env.shop[shopidx];
@@ -242,6 +253,7 @@ static bool _in_a_shop( int shopidx )
const bool id_stock = shoptype_identifies_stock(shop.type);
std::vector<bool> selected;
bool bought_something = false;
+ bool viewing = false;
while (true)
{
StashTrack.get_shop(shop.pos).reset();
@@ -275,7 +287,7 @@ static bool _in_a_shop( int shopidx )
const std::string purchasable = _shop_print_stock(stock, selected, shop,
total_cost);
- _list_shop_keys(purchasable);
+ _list_shop_keys(purchasable, viewing);
if (!total_cost)
{
@@ -316,18 +328,17 @@ static bool _in_a_shop( int shopidx )
hello.c_str() );
}
else
- {
- snprintf( info, INFO_SIZE, "What would you like to do? ");
- }
+ snprintf(info, INFO_SIZE, "What would you like to do? ");
textcolor(CYAN);
_shop_print(info, 1);
textcolor(LIGHTGREY);
- int ft = get_ch();
+ mouse_control mc(MOUSE_MODE_MORE);
+ int key = getch();
- if (ft == '\\')
+ if (key == '\\')
{
if (!check_item_knowledge(true))
{
@@ -335,9 +346,9 @@ static bool _in_a_shop( int shopidx )
_shop_more();
}
}
- else if (ft == 'x' || ft == ESCAPE)
+ else if (key == 'x' || key == ESCAPE || key == CK_MOUSE_CMD)
break;
- else if (ft == '\r')
+ else if (key == '\r' || key == CK_MOUSE_CLICK)
{
// Do purchase.
if (total_cost > you.gold)
@@ -402,75 +413,59 @@ static bool _in_a_shop( int shopidx )
_shop_more();
continue;
}
- else if (ft == 'v')
+ else if (key == '!')
{
- textcolor(CYAN);
- _shop_print("Examine which item?", 1);
- textcolor(LIGHTGREY);
-
- bool is_ok = true;
-
- ft = get_ch();
- if (!isalpha(ft))
- is_ok = false;
- else
- {
- ft = tolower(ft) - 'a';
- if ( ft >= static_cast<int>(stock.size()) )
- is_ok = false;
- }
-
- if (!is_ok)
- {
- _shop_print("Huh?", 1);
- _shop_more();
- continue;
- }
-
- // A hack to make the description more useful.
- // In theory, the user could kill the process at this
- // point and end up with valid ID for the item.
- // That's not very useful, though, because it doesn't set
- // type-ID and once you can access the item (by buying it)
- // you have its full ID anyway. Worst case, it won't get
- // noted when you buy it.
- item_def& item = mitm[stock[ft]];
- const unsigned long old_flags = item.flags;
- if (id_stock)
- {
- item.flags |= (ISFLAG_IDENT_MASK | ISFLAG_NOTED_ID |
- ISFLAG_NOTED_GET);
- }
- describe_item(item);
- if (id_stock)
- item.flags = old_flags;
+ // Toggle between browsing and shopping.
+ viewing = !viewing;
}
- else if (ft == '?' || ft == '*')
+ else if (key == '?' || key == '*')
browse_inventory(false);
- else if (!isalpha(ft))
+ else if (!isalpha(key))
{
_shop_print("Huh?", 1);
_shop_more();
}
else
{
- ft = tolower(ft) - 'a';
- if (ft >= static_cast<int>(stock.size()) )
+ key = tolower(key) - 'a';
+ if (key >= static_cast<int>(stock.size()) )
{
_shop_print("No such item.", 1);
_shop_more();
continue;
}
- item_def& item = mitm[stock[ft]];
- const int gp_value = _shop_get_item_value(item, shop.greed,
- id_stock);
-
- selected[ft] = !selected[ft];
- if (selected[ft])
- total_cost += gp_value;
+ item_def& item = mitm[stock[key]];
+ if (viewing)
+ {
+ // A hack to make the description more useful.
+ // In theory, the user could kill the process at this
+ // point and end up with valid ID for the item.
+ // That's not very useful, though, because it doesn't set
+ // type-ID and once you can access the item (by buying it)
+ // you have its full ID anyway. Worst case, it won't get
+ // noted when you buy it.
+ const unsigned long old_flags = item.flags;
+ if (id_stock)
+ {
+ item.flags |= (ISFLAG_IDENT_MASK | ISFLAG_NOTED_ID
+ | ISFLAG_NOTED_GET);
+ }
+ describe_item(item);
+ if (id_stock)
+ item.flags = old_flags;
+ }
else
- total_cost -= gp_value;
+ {
+ const int gp_value = _shop_get_item_value(item, shop.greed,
+ id_stock);
+
+ selected[key] = !selected[key];
+ if (selected[key])
+ total_cost += gp_value;
+ else
+ total_cost -= gp_value;
+ }
}
}
return (bought_something);
diff --git a/crawl-ref/source/tilemcache.cc b/crawl-ref/source/tilemcache.cc
index cb893c19d7..17943907cb 100644
--- a/crawl-ref/source/tilemcache.cc
+++ b/crawl-ref/source/tilemcache.cc
@@ -355,6 +355,8 @@ bool mcache_monster::get_weapon_offset(int mon_tile, int &ofs_x, int &ofs_y)
case TILEP_MONS_MERMAID_WATER:
case TILEP_MONS_MERFOLK_FIGHTER:
case TILEP_MONS_MERFOLK_FIGHTER_WATER:
+ case TILEP_MONS_SIREN:
+ case TILEP_MONS_SIREN_WATER:
case TILEP_MONS_ILSUIW:
case TILEP_MONS_ILSUIW_WATER:
ofs_x = 0;
diff --git a/crawl-ref/source/tilepick.cc b/crawl-ref/source/tilepick.cc
index 36365ff298..c824b8c88c 100644
--- a/crawl-ref/source/tilepick.cc
+++ b/crawl-ref/source/tilepick.cc
@@ -925,7 +925,7 @@ static int _tileidx_monster_base(const monsters *mon, bool detected)
case MONS_PRINCE_RIBBIT:
return TILEP_MONS_PRINCE_RIBBIT;
case MONS_NERGALLE:
- return TILEP_MONS_ORC_SORCERER; // TODO enne
+ return TILEP_MONS_NERGALLE;
case MONS_SAINT_ROKA:
return TILEP_MONS_SAINT_ROKA;
case MONS_NESSOS:
@@ -1021,6 +1021,8 @@ int tileidx_monster(const monsters *mons, bool detected)
ch |= TILE_FLAG_NET;
if (mons->has_ench(ENCH_POISON))
ch |= TILE_FLAG_POISON;
+ if (mons->has_ench(ENCH_STICKY_FLAME))
+ ch |= TILE_FLAG_FLAME;
if (mons_friendly_real(mons))
ch |= TILE_FLAG_PET;
@@ -1910,6 +1912,7 @@ static int _tileidx_rune(const item_def &item)
{
switch (item.plus)
{
+ // the hell runes:
case RUNE_DIS: return TILE_MISC_RUNE_DIS;
case RUNE_GEHENNA: return TILE_MISC_RUNE_GEHENNA;
case RUNE_COCYTUS: return TILE_MISC_RUNE_COCYTUS;
diff --git a/crawl-ref/source/tilereg.cc b/crawl-ref/source/tilereg.cc
index d818875395..b099a360db 100644
--- a/crawl-ref/source/tilereg.cc
+++ b/crawl-ref/source/tilereg.cc
@@ -471,9 +471,7 @@ void DungeonRegion::pack_mcache(mcache_entry *entry, int x, int y)
ASSERT(draw_info_count <= sizeof(dinfo) / (sizeof(dinfo[0])));
for (unsigned int i = 0; i < draw_info_count; i++)
- {
m_buf_doll.add(dinfo[i].idx, x, y, dinfo[i].ofs_x, dinfo[i].ofs_y);
- }
}
void DungeonRegion::pack_foreground(unsigned int bg, unsigned int fg, int x, int y)
@@ -534,6 +532,11 @@ void DungeonRegion::pack_foreground(unsigned int bg, unsigned int fg, int x, int
m_buf_main.add(TILE_POISON, x, y, -status_shift, 0);
status_shift += 5;
}
+ if (fg & TILE_FLAG_FLAME)
+ {
+ m_buf_main.add(TILE_FLAME, x, y, -status_shift, 0);
+ status_shift += 5;
+ }
if (fg & TILE_FLAG_ANIM_WEP)
{
diff --git a/crawl-ref/source/tiles.h b/crawl-ref/source/tiles.h
index a9712379ea..14ca6ccdb9 100644
--- a/crawl-ref/source/tiles.h
+++ b/crawl-ref/source/tiles.h
@@ -144,14 +144,24 @@ enum tile_flags
TILE_FLAG_MAY_STAB = 0x0000C000,
TILE_FLAG_NET = 0x00010000,
TILE_FLAG_POISON = 0x00020000,
- TILE_FLAG_ANIM_WEP = 0x00040000,
+ TILE_FLAG_FLAME = 0x00040000,
+ TILE_FLAG_ANIM_WEP = 0x00080000,
+/*
+ // MDAM has 5 possibilities, so uses 3 bits.
+ TILE_FLAG_MDAM_MASK = 0x00780000,
+ TILE_FLAG_MDAM_LIGHT= 0x00100000,
+ TILE_FLAG_MDAM_MOD = 0x00180000,
+ TILE_FLAG_MDAM_HEAVY= 0x00200000,
+ TILE_FLAG_MDAM_SEV = 0x00280000,
+ TILE_FLAG_MDAM_ADEAD= 0x00400000,
+*/
// MDAM has 5 possibilities, so uses 3 bits.
- TILE_FLAG_MDAM_MASK = 0x00380000,
- TILE_FLAG_MDAM_LIGHT= 0x00080000,
- TILE_FLAG_MDAM_MOD = 0x00100000,
- TILE_FLAG_MDAM_HEAVY= 0x00180000,
- TILE_FLAG_MDAM_SEV = 0x00200000,
- TILE_FLAG_MDAM_ADEAD= 0x00280000,
+ TILE_FLAG_MDAM_MASK = 0x03800000,
+ TILE_FLAG_MDAM_LIGHT= 0x00800000,
+ TILE_FLAG_MDAM_MOD = 0x01000000,
+ TILE_FLAG_MDAM_HEAVY= 0x01800000,
+ TILE_FLAG_MDAM_SEV = 0x02000000,
+ TILE_FLAG_MDAM_ADEAD= 0x02800000,
// Background flags
TILE_FLAG_RAY = 0x00000800,