summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source
diff options
context:
space:
mode:
authorj-p-e-g <j-p-e-g@c06c8d41-db1a-0410-9941-cceddc491573>2008-05-31 20:26:20 +0000
committerj-p-e-g <j-p-e-g@c06c8d41-db1a-0410-9941-cceddc491573>2008-05-31 20:26:20 +0000
commit57ec78ae83592e5f55457fbcff4de929f5a9b7d7 (patch)
tree7f85295bb2791f405554336cc2e1ebb744571a4c /crawl-ref/source
parent7df3a8aa8296fea631280b085f4c70a93fd23a54 (diff)
downloadcrawl-ref-57ec78ae83592e5f55457fbcff4de929f5a9b7d7.tar.gz
crawl-ref-57ec78ae83592e5f55457fbcff4de929f5a9b7d7.zip
Consolidate all cases where corpses are turned into skeletons, as
suggested by dolorous in BR 1977925, and turn coloured draconian corpses into plain draconian skeletons. Same when the game attempts to create coloured draconian skeletons or simulacrums. Added autoinscription to the single inscription command ('{') - this is necessary for items with long descriptions that can't autoinscribed otherwise. Added a small hack to make death cobs (%) appear correctly in the monster list. The rest is cleanup, I believe. git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@5376 c06c8d41-db1a-0410-9941-cceddc491573
Diffstat (limited to 'crawl-ref/source')
-rw-r--r--crawl-ref/source/acr.cc2
-rw-r--r--crawl-ref/source/delay.cc17
-rw-r--r--crawl-ref/source/describe.cc51
-rw-r--r--crawl-ref/source/describe.h1
-rw-r--r--crawl-ref/source/effects.cc13
-rw-r--r--crawl-ref/source/food.cc9
-rw-r--r--crawl-ref/source/item_use.cc23
-rw-r--r--crawl-ref/source/item_use.h2
-rw-r--r--crawl-ref/source/items.cc150
-rw-r--r--crawl-ref/source/libgui.cc22
-rw-r--r--crawl-ref/source/misc.cc24
-rw-r--r--crawl-ref/source/misc.h1
-rw-r--r--crawl-ref/source/mon-pick.cc4
-rw-r--r--crawl-ref/source/mon-util.cc36
-rw-r--r--crawl-ref/source/monplace.cc80
-rw-r--r--crawl-ref/source/output.cc13
-rw-r--r--crawl-ref/source/spells2.cc13
-rw-r--r--crawl-ref/source/spells4.cc6
-rw-r--r--crawl-ref/source/tile1.cc195
19 files changed, 268 insertions, 394 deletions
diff --git a/crawl-ref/source/acr.cc b/crawl-ref/source/acr.cc
index ca8da8a4ee..525a3c56c1 100644
--- a/crawl-ref/source/acr.cc
+++ b/crawl-ref/source/acr.cc
@@ -2337,7 +2337,7 @@ void process_command( command_type cmd )
break;
case CMD_INSCRIBE_ITEM:
- inscribe_item();
+ prompt_inscribe_item();
break;
#ifdef WIZARD
diff --git a/crawl-ref/source/delay.cc b/crawl-ref/source/delay.cc
index 77c9d18412..6df2378d7c 100644
--- a/crawl-ref/source/delay.cc
+++ b/crawl-ref/source/delay.cc
@@ -56,9 +56,9 @@ static void handle_run_delays(const delay_queue_item &delay);
static void handle_macro_delay();
static void finish_delay(const delay_queue_item &delay);
-// monster cannot be affected in these states
-// (all results of Recite, plus friendly + stupid;
-// note that berserk monsters are also hasted)
+// Monsters cannot be affected in these states.
+// (All results of Recite, plus friendly + stupid;
+// note that berserk monsters are also hasted.)
static bool recite_mons_useless(const monsters *mon)
{
return (mons_intel(mon->type) < I_NORMAL
@@ -482,9 +482,7 @@ void stop_delay( bool stop_stair_travel )
mpr("All blood oozes out of the corpse!");
bleed_onto_floor(you.x_pos, you.y_pos, corpse.plus, delay.duration,
false);
- corpse.sub_type = CORPSE_SKELETON;
- corpse.special = 90;
- corpse.colour = LIGHTGREY;
+ turn_corpse_into_skeleton(corpse, 90);
}
did_god_conduct(DID_DRINK_BLOOD, 8);
pop_delay();
@@ -1012,11 +1010,7 @@ static void finish_delay(const delay_queue_item &delay)
dec_mitm_item_quantity( delay.parm2, 1 );
}
else if (!one_chance_in(4))
- {
- corpse.sub_type = CORPSE_SKELETON;
- corpse.special = 90;
- corpse.colour = LIGHTGREY;
- }
+ turn_corpse_into_skeleton(corpse, 90);
break;
}
case DELAY_MEMORISE:
@@ -1166,6 +1160,7 @@ static void finish_delay(const delay_queue_item &delay)
}
offer_corpse(delay.parm1);
+ StashTrack.update_stash(); // Don't stash-track this corpse anymore.
break;
}
case DELAY_DROP_ITEM:
diff --git a/crawl-ref/source/describe.cc b/crawl-ref/source/describe.cc
index 18007cd6ea..afe37a0704 100644
--- a/crawl-ref/source/describe.cc
+++ b/crawl-ref/source/describe.cc
@@ -1975,7 +1975,58 @@ void describe_item( item_def &item, bool allow_inscribe )
getch();
}
+void inscribe_item(item_def &item)
+{
+ mpr(item.name(DESC_INVENTORY).c_str(), MSGCH_EQUIPMENT);
+
+ std::string ainscrip;
+
+ if (is_random_artefact(item))
+ ainscrip = _randart_auto_inscription(item);
+
+ // Only allow autoinscription if we don't have all the text
+ // already.
+ const bool autoinscribe =
+ is_random_artefact(item)
+ && !ainscrip.empty()
+ && item.inscription.find(ainscrip) == std::string::npos;
+
+ mprf( MSGCH_PROMPT, "Inscribe with what%s? ",
+ autoinscribe ? " ('a' to autoinscribe)" : "" );
+
+ char buf[79];
+ if (!cancelable_get_line(buf, sizeof buf))
+ {
+ // Strip spaces from the end.
+ for (int i = strlen(buf) - 1; i >= 0; i--)
+ {
+ if (isspace( buf[i] ))
+ buf[i] = 0;
+ else
+ break;
+ }
+
+ if (autoinscribe && buf[1] == 0 && (buf[0] == 'a' || buf[0] == 'A'))
+ {
+ // Remove previous randart inscription
+ _trim_randart_inscrip(item);
+
+ if (!item.inscription.empty())
+ item.inscription += ", ";
+ item.inscription += ainscrip;
+ }
+ else
+ item.inscription = std::string(buf);
+
+ mpr(item.name(DESC_INVENTORY).c_str(), MSGCH_EQUIPMENT);
+ you.wield_change = true;
+ }
+ else
+ {
+ canned_msg(MSG_OK);
+ }
+}
//---------------------------------------------------------------
//
// describe_spell
diff --git a/crawl-ref/source/describe.h b/crawl-ref/source/describe.h
index 892922e4ac..4736239849 100644
--- a/crawl-ref/source/describe.h
+++ b/crawl-ref/source/describe.h
@@ -57,6 +57,7 @@ void describe_feature_wide(int x, int y);
* called from: item_use - shopping
* *********************************************************************** */
void describe_item( item_def &item, bool allow_inscribe = false );
+void inscribe_item( item_def &item );
/* ***********************************************************************
* called from: direct
diff --git a/crawl-ref/source/effects.cc b/crawl-ref/source/effects.cc
index 53156bdcb3..e2d69263c6 100644
--- a/crawl-ref/source/effects.cc
+++ b/crawl-ref/source/effects.cc
@@ -2352,8 +2352,9 @@ static void rot_inventory_food(long time_delta)
continue;
}
+ // Carried skeletons are not destroyed.
if (you.inv[i].sub_type == CORPSE_SKELETON)
- continue; // carried skeletons are not destroyed
+ continue;
if (!mons_skeleton( you.inv[i].plus ))
{
@@ -2365,9 +2366,7 @@ static void rot_inventory_food(long time_delta)
continue;
}
- you.inv[i].sub_type = CORPSE_SKELETON;
- you.inv[i].special = 0;
- you.inv[i].colour = LIGHTGREY;
+ turn_corpse_into_skeleton(you.inv[i]);
you.wield_change = true;
burden_changed_by_rot = true;
continue;
@@ -3009,11 +3008,7 @@ void update_corpses(double elapsedTime)
destroy_item(c);
}
else
- {
- it.sub_type = CORPSE_SKELETON;
- it.special = 200;
- it.colour = LIGHTGREY;
- }
+ turn_corpse_into_skeleton(it);
}
}
else
diff --git a/crawl-ref/source/food.cc b/crawl-ref/source/food.cc
index d63f7cca1d..f8eae1a32f 100644
--- a/crawl-ref/source/food.cc
+++ b/crawl-ref/source/food.cc
@@ -183,14 +183,14 @@ static bool _find_butchering_implement( bool fallback )
"for butchering.");
return (false);
}
- // no switching necessary
+ // No switching necessary.
if (can_cut_meat( *wpn ))
return (false);
}
int old_weapon = you.equip[EQ_WEAPON];
- // look for a butchering implement in your pack
+ // Look for a butchering implement in your pack.
for (int i = 0; i < ENDOFPACK; ++i)
{
if (is_valid_item( you.inv[i] )
@@ -339,7 +339,7 @@ static bool _have_corpses_in_pack(bool remind)
if (!is_valid_item( obj ))
continue;
- if (obj.base_type == OBJ_CORPSES)
+ if (obj.base_type == OBJ_CORPSES && obj.sub_type == CORPSE_BODY)
num++;
}
@@ -371,8 +371,7 @@ static bool _have_corpses_in_pack(bool remind)
else
{
text << "If you dropped the " << noun << " in your pack on solid "
- << "ground or into shallow water then you could " << verb
- << " " << pronoun << ".";
+ << "ground then you could " << verb << " " << pronoun << ".";
}
mpr(text.str().c_str());
diff --git a/crawl-ref/source/item_use.cc b/crawl-ref/source/item_use.cc
index 5e8865a723..8799354ac7 100644
--- a/crawl-ref/source/item_use.cc
+++ b/crawl-ref/source/item_use.cc
@@ -3481,10 +3481,9 @@ void zap_wand( int slot )
you.turn_is_over = true;
} // end zap_wand()
-void inscribe_item()
+void prompt_inscribe_item()
{
int item_slot;
- char buf[79];
if (inv_count() < 1)
{
mpr("You don't have anything to inscribe.");
@@ -3497,26 +3496,8 @@ void inscribe_item()
canned_msg( MSG_OK );
return;
}
- mpr( you.inv[item_slot].name(DESC_INVENTORY).c_str(), MSGCH_EQUIPMENT );
- mpr( "Inscribe with what? ", MSGCH_PROMPT );
- if (!cancelable_get_line(buf, sizeof buf))
- {
- // strip spaces from the end
- for (int i = strlen(buf) - 1; i >= 0; i--)
- {
- if (isspace( buf[i] ))
- buf[i] = 0;
- else
- break;
- }
- you.inv[item_slot].inscription = std::string(buf);
- you.wield_change = true;
- }
- else
- {
- canned_msg(MSG_OK);
- }
+ inscribe_item(you.inv[item_slot]);
}
void drink( int slot )
diff --git a/crawl-ref/source/item_use.h b/crawl-ref/source/item_use.h
index f59a384931..311d687317 100644
--- a/crawl-ref/source/item_use.h
+++ b/crawl-ref/source/item_use.h
@@ -166,7 +166,7 @@ bool throw_it(bolt &pbolt, int throw_2, bool teleport=false, int acc_bonus=0,
bool thrown_object_destroyed( item_def *item, int x, int y, bool returning );
-void inscribe_item();
+void prompt_inscribe_item();
int launcher_shield_slowdown(const item_def &launcher,
const item_def *shield);
int launcher_final_speed(const item_def &launcher,
diff --git a/crawl-ref/source/items.cc b/crawl-ref/source/items.cc
index a8a7d9811c..5ae4aa1229 100644
--- a/crawl-ref/source/items.cc
+++ b/crawl-ref/source/items.cc
@@ -455,7 +455,7 @@ void unlink_item( int dest )
bool linked = false;
int old_link = mitm[dest].link; // used to try linking the first
- // clean the relevant parts of the object:
+ // Clean the relevant parts of the object.
mitm[dest].base_type = OBJ_UNASSIGNED;
mitm[dest].quantity = 0;
mitm[dest].x = 0;
@@ -627,7 +627,7 @@ void destroy_item_stack( int x, int y, int cause )
item_was_destroyed(mitm[o], cause);
mitm[o].base_type = OBJ_UNASSIGNED;
- mitm[o].quantity = 0;
+ mitm[o].quantity = 0;
mitm[o].props.clear();
}
@@ -640,38 +640,36 @@ static bool _invisible_to_player( const item_def& item )
return strstr(item.inscription.c_str(), "=k") != 0;
}
-static int count_nonsquelched_items( int obj )
+static int _count_nonsquelched_items( int obj )
{
int result = 0;
- while ( obj != NON_ITEM )
+ while (obj != NON_ITEM)
{
- if ( !_invisible_to_player(mitm[obj]) )
+ if (!_invisible_to_player(mitm[obj]))
++result;
obj = mitm[obj].link;
}
return result;
}
-/* Fill items with the items on a square.
- Squelched items (marked with =k) are ignored, unless
- the square contains *only* squelched items, in which case they
- are included. If force_squelch is true, squelched items are
- never displayed.
- */
+// Fill items with the items on a square.
+// Squelched items (marked with =k) are ignored, unless
+// the square contains *only* squelched items, in which case they
+// are included. If force_squelch is true, squelched items are
+// never displayed.
static void _item_list_on_square( std::vector<const item_def*>& items,
int obj, bool force_squelch )
{
- const bool have_nonsquelched = (force_squelch ||
- count_nonsquelched_items(obj));
+ const bool have_nonsquelched = (force_squelch
+ || _count_nonsquelched_items(obj));
- /* loop through the items */
+ // Loop through the items.
while ( obj != NON_ITEM )
{
- /* add them to the items list if they qualify */
+ // Add them to the items list if they qualify.
if ( !have_nonsquelched || !_invisible_to_player(mitm[obj]) )
- {
items.push_back( &mitm[obj] );
- }
+
obj = mitm[obj].link;
}
}
@@ -687,16 +685,18 @@ void request_autopickup(bool do_pickup)
}
// 2 - artefact, 1 - glowing/runed, 0 - mundane
-static int item_name_specialness(const item_def& item)
+static int _item_name_specialness(const item_def& item)
{
// All jewellery is worth looking at.
// And we can always tell from the name if it's an artefact.
if (item.base_type == OBJ_JEWELLERY )
return ( is_artefact(item) ? 2 : 1 );
- if (item.base_type != OBJ_WEAPONS && item.base_type != OBJ_ARMOUR &&
- item.base_type != OBJ_MISSILES)
+ if (item.base_type != OBJ_WEAPONS && item.base_type != OBJ_ARMOUR
+ && item.base_type != OBJ_MISSILES)
+ {
return 0;
+ }
if (item_type_known(item))
{
if ( is_artefact(item) )
@@ -721,8 +721,9 @@ static int item_name_specialness(const item_def& item)
return ( branded ? 1 : 0 );
}
+ // Missiles don't get name descriptors.
if (item.base_type == OBJ_MISSILES)
- return 0; // missiles don't get name descriptors
+ return 0;
std::string itname = item.name(DESC_PLAIN, false, false, false);
lowercase(itname);
@@ -740,7 +741,7 @@ static int item_name_specialness(const item_def& item)
// You can tell something is an artefact, because it'll have a
// description which rules out anything else.
- // XXX Fixedarts and unrandarts might upset the apple-cart, though.
+ // XXX: Fixedarts and unrandarts might upset the apple-cart, though.
if ( is_artefact(item) )
return 2;
@@ -760,7 +761,7 @@ void item_check(bool verbose)
if (items.size() == 0)
{
- if ( verbose )
+ if (verbose)
strm << "There are no items here." << std::endl;
return;
}
@@ -783,7 +784,7 @@ void item_check(bool verbose)
unsigned short glyph_col;
get_item_glyph( items[i], &glyph_char, &glyph_col );
item_chars.push_back( glyph_char * 0x100 +
- (10 - item_name_specialness(*(items[i]))) );
+ (10 - _item_name_specialness(*(items[i]))) );
}
std::sort(item_chars.begin(), item_chars.end());
@@ -794,10 +795,10 @@ void item_check(bool verbose)
const int specialness = 10 - (item_chars[i] % 0x100);
if ( specialness != cur_state )
{
- switch ( specialness )
+ switch (specialness)
{
- case 2: out_string += "<yellow>"; break; // artefact
- case 1: out_string += "<white>"; break; // glowing/runed
+ case 2: out_string += "<yellow>"; break; // artefact
+ case 1: out_string += "<white>"; break; // glowing/runed
case 0: out_string += "<darkgrey>"; break; // mundane
}
cur_state = specialness;
@@ -929,25 +930,31 @@ void origin_set_inventory(void (*oset)(item_def &item))
oset(you.inv[i]);
}
-static int first_corpse_monnum(int x, int y)
+static int _first_corpse_monnum(int x, int y)
{
// We could look for a corpse on this square and assume that the
// items belonged to it, but that is unsatisfactory.
+
+ // Actually, it would be easy to add the monster type to a corpse
+ // (or to another item) by setting orig_monnum when the monster dies
+ // (already done for unique monsters to get named zombies), but
+ // personally, I rather like the way the player can't tell where an
+ // item came from if he just finds it lying on the floor. (jpeg)
return (0);
}
#ifdef DGL_MILESTONES
-static std::string milestone_rune(const item_def &item)
+static std::string _milestone_rune(const item_def &item)
{
return std::string("found ") + item.name(DESC_NOCAP_A) + ".";
}
-static void milestone_check(const item_def &item)
+static void _milestone_check(const item_def &item)
{
if (item.base_type == OBJ_MISCELLANY
&& item.sub_type == MISC_RUNE_OF_ZOT)
{
- mark_milestone("rune", milestone_rune(item));
+ mark_milestone("rune", _milestone_rune(item));
}
else if (item.base_type == OBJ_ORBS && item.sub_type == ORB_ZOT)
{
@@ -956,7 +963,7 @@ static void milestone_check(const item_def &item)
}
#endif // DGL_MILESTONES
-static void check_note_item(item_def &item)
+static void _check_note_item(item_def &item)
{
if (!(item.flags & ISFLAG_NOTED_GET) && is_interesting_item(item))
{
@@ -973,7 +980,7 @@ static void check_note_item(item_def &item)
void origin_set(int x, int y)
{
- int monnum = first_corpse_monnum(x, y);
+ int monnum = _first_corpse_monnum(x, y);
unsigned short pplace = get_packed_place();
for (int link = igrd[x][y]; link != NON_ITEM; link = mitm[link].link)
{
@@ -984,15 +991,16 @@ void origin_set(int x, int y)
if (!item.orig_monnum)
item.orig_monnum = static_cast<short>( monnum );
item.orig_place = pplace;
+
#ifdef DGL_MILESTONES
- milestone_check(item);
+ _milestone_check(item);
#endif
}
}
void origin_set_monstercorpse(item_def &item, int x, int y)
{
- item.orig_monnum = first_corpse_monnum(x, y);
+ item.orig_monnum = _first_corpse_monnum(x, y);
}
static void _origin_freeze(item_def &item, int x, int y)
@@ -1003,9 +1011,10 @@ static void _origin_freeze(item_def &item, int x, int y)
origin_set_monstercorpse(item, x, y);
item.orig_place = get_packed_place();
- check_note_item(item);
+ _check_note_item(item);
+
#ifdef DGL_MILESTONES
- milestone_check(item);
+ _milestone_check(item);
#endif
}
}
@@ -1175,7 +1184,7 @@ void pickup()
}
int o = igrd[you.x_pos][you.y_pos];
- const int num_nonsquelched = count_nonsquelched_items(o);
+ const int num_nonsquelched = _count_nonsquelched_items(o);
if (o == NON_ITEM)
{
@@ -1355,7 +1364,7 @@ bool items_stack( const item_def &item1, const item_def &item2,
return (true);
}
-static int userdef_find_free_slot(const item_def &i)
+static int _userdef_find_free_slot(const item_def &i)
{
#ifdef CLUA_BINDINGS
int slot = -1;
@@ -1375,7 +1384,7 @@ int find_free_slot(const item_def &i)
bool searchforward = false;
// If we're doing Lua, see if there's a Lua function that can give
// us a free slot.
- int slot = userdef_find_free_slot(i);
+ int slot = _userdef_find_free_slot(i);
if (slot == -2 || Options.assign_item_slot == SS_FORWARD)
searchforward = true;
@@ -1517,7 +1526,7 @@ int move_item_to_player( int obj, int quant_got, bool quiet )
if (!quiet && partial_pickup)
mpr("You can only carry some of what is here.");
- check_note_item(mitm[obj]);
+ _check_note_item(mitm[obj]);
// If the object on the ground is inscribed, but not
// the one in inventory, then the inventory object
@@ -1581,7 +1590,7 @@ int move_item_to_player( int obj, int quant_got, bool quiet )
_autoinscribe_item( item );
_origin_freeze(item, you.x_pos, you.y_pos);
- check_note_item(item);
+ _check_note_item(item);
item.quantity = quant_got;
if (is_blood_potion(mitm[obj]))
@@ -1655,7 +1664,7 @@ void mark_items_non_pickup_at(const coord_def &pos)
// calling code that "obj" is possibly modified.
bool move_item_to_grid( int *const obj, int x, int y )
{
- // must be a valid reference to a valid object
+ // Must be a valid reference to a valid object.
if (*obj == NON_ITEM || !is_valid_item( mitm[*obj] ))
return (false);
@@ -1938,7 +1947,7 @@ bool drop_item( int item_dropped, int quant_drop, bool try_offer )
return (true);
}
-static std::string drop_menu_invstatus(const Menu *menu)
+static std::string _drop_menu_invstatus(const Menu *menu)
{
char buf[100];
const int cap = carrying_capacity(BS_UNENCUMBERED);
@@ -1965,9 +1974,9 @@ static std::string drop_menu_invstatus(const Menu *menu)
return (buf);
}
-static std::string drop_menu_title(const Menu *menu, const std::string &oldt)
+static std::string _drop_menu_title(const Menu *menu, const std::string &oldt)
{
- std::string res = drop_menu_invstatus(menu) + " " + oldt;
+ std::string res = _drop_menu_invstatus(menu) + " " + oldt;
if (menu->is_set( MF_MULTISELECT ))
res = "[Multidrop] " + res;
@@ -1991,7 +2000,7 @@ int get_equip_slot(const item_def *item)
return worn;
}
-static std::string drop_selitem_text( const std::vector<MenuEntry*> *s )
+static std::string _drop_selitem_text( const std::vector<MenuEntry*> *s )
{
char buf[130];
bool extraturns = false;
@@ -2022,7 +2031,7 @@ std::vector<SelItem> items_for_multidrop;
// Arrange items that have been selected for multidrop so that
// equipped items are dropped after other items, and equipped items
// are dropped in the same order as their EQ_ slots are numbered.
-static bool drop_item_order(const SelItem &first, const SelItem &second)
+static bool _drop_item_order(const SelItem &first, const SelItem &second)
{
const item_def &i1 = you.inv[first.slot];
const item_def &i2 = you.inv[second.slot];
@@ -2057,8 +2066,8 @@ void drop(void)
std::vector<SelItem> tmp_items;
tmp_items = prompt_invent_items( "Drop what?", MT_DROP, -1,
- drop_menu_title, true, true, 0,
- &Options.drop_filter, drop_selitem_text,
+ _drop_menu_title, true, true, 0,
+ &Options.drop_filter, _drop_selitem_text,
&items_for_multidrop );
if (tmp_items.empty())
@@ -2071,7 +2080,7 @@ void drop(void)
// dropping a worn robe before a cloak (old behaviour: remove
// cloak, remove robe, wear cloak, drop robe, remove cloak, drop
// cloak).
- std::sort( tmp_items.begin(), tmp_items.end(), drop_item_order );
+ std::sort( tmp_items.begin(), tmp_items.end(), _drop_item_order );
// If the user answers "no" to an item an with a warning inscription,
// then remove it from the list of items to drop by not copying it
@@ -2170,33 +2179,32 @@ void autoinscribe()
will_autoinscribe = false;
}
-static inline std::string autopickup_item_name(const item_def &item)
+static inline std::string _autopickup_item_name(const item_def &item)
{
return userdef_annotate_item(STASH_LUA_SEARCH_ANNOTATE, &item, true)
+ item.name(DESC_PLAIN);
}
-static bool is_denied_autopickup(const item_def &item, std::string &iname)
+static bool _is_denied_autopickup(const item_def &item, std::string &iname)
{
if (iname.empty())
- iname = autopickup_item_name(item);
+ iname = _autopickup_item_name(item);
+
for (unsigned i = 0, size = Options.never_pickup.size(); i < size; ++i)
- {
if (Options.never_pickup[i].matches(iname))
return (true);
- }
+
return false;
}
-static bool is_forced_autopickup(const item_def &item, std::string &iname)
+static bool _is_forced_autopickup(const item_def &item, std::string &iname)
{
if (iname.empty())
- iname = autopickup_item_name(item);
+ iname = _autopickup_item_name(item);
+
for (unsigned i = 0, size = Options.always_pickup.size(); i < size; ++i)
- {
if (Options.always_pickup[i].matches(iname))
return (true);
- }
return false;
}
@@ -2216,9 +2224,9 @@ bool item_needs_autopickup(const item_def &item)
#ifdef CLUA_BINDINGS
&& clua.callbooleanfn(true, "ch_autopickup", "u", &item)
#endif
- || is_forced_autopickup(item, itemname))
+ || _is_forced_autopickup(item, itemname))
&& (Options.pickup_dropped || !(item.flags & ISFLAG_DROPPED))
- && !is_denied_autopickup(item, itemname));
+ && !_is_denied_autopickup(item, itemname));
}
bool can_autopickup()
@@ -2244,7 +2252,7 @@ bool can_autopickup()
return (true);
}
-static void do_autopickup()
+static void _do_autopickup()
{
//David Loewenstern 6/99
int n_did_pickup = 0;
@@ -2325,7 +2333,7 @@ static void do_autopickup()
void autopickup()
{
_autoinscribe_floor_items();
- do_autopickup();
+ _do_autopickup();
}
int inv_count(void)
@@ -2360,9 +2368,9 @@ item_def *find_floor_item(object_class_type cls, int sub_type)
return (NULL);
}
-static bool find_subtype_by_name(item_def &item,
- object_class_type base_type, int ntypes,
- const std::string &name)
+static bool _find_subtype_by_name(item_def &item,
+ object_class_type base_type, int ntypes,
+ const std::string &name)
{
// In order to get the sub-type, we'll fill out the base type...
// then we're going to iterate over all possible subtype values
@@ -2439,17 +2447,15 @@ item_def find_item_type(object_class_type base_type, std::string name)
if (!max_subtype[i])
continue;
- if (find_subtype_by_name(item, static_cast<object_class_type>(i),
- max_subtype[i], name))
+ if (_find_subtype_by_name(item, static_cast<object_class_type>(i),
+ max_subtype[i], name))
{
break;
}
}
}
else
- {
- find_subtype_by_name(item, base_type, max_subtype[base_type], name);
- }
+ _find_subtype_by_name(item, base_type, max_subtype[base_type], name);
return (item);
}
diff --git a/crawl-ref/source/libgui.cc b/crawl-ref/source/libgui.cc
index c45013a798..93f3c90cf8 100644
--- a/crawl-ref/source/libgui.cc
+++ b/crawl-ref/source/libgui.cc
@@ -1197,22 +1197,22 @@ int convert_cursor_pos(int mx, int my, int *cx, int *cy)
return id;
}
-// assumes the item is equipped in the first place!
+// NOTE: Assumes the item is equipped in the first place!
static bool _is_true_equipped_item(item_def item)
{
- // weapons and staves are only truly equipped if wielded
+ // Weapons and staves are only truly equipped if wielded.
if (item.link == you.equip[EQ_WEAPON])
return (item.base_type == OBJ_WEAPONS || item.base_type == OBJ_STAVES);
- // cursed armour and rings are only truly equipped if *not* wielded
+ // Cursed armour and rings are only truly equipped if *not* wielded.
return (item.link != you.equip[EQ_WEAPON]);
}
-// returns whether there's any action you can take with an item in inventory
-// apart from dropping it
+// Returns whether there's any action you can take with an item in inventory
+// apart from dropping it.
static bool _can_use_item(item_def item, bool equipped)
{
- // vampires can drain corpses
+ // Vampires can drain corpses.
if (item.base_type == OBJ_CORPSES)
{
return (you.species == SP_VAMPIRE
@@ -1223,20 +1223,20 @@ static bool _can_use_item(item_def item, bool equipped)
if (equipped && item_cursed(item))
{
- // misc. items/rods can always be evoked, cursed or not
+ // Misc. items/rods can always be evoked, cursed or not.
if (item.base_type == OBJ_MISCELLANY || item_is_rod(item))
return true;
- // you can't unwield/fire a wielded cursed weapon/staff
- // but cursed armour and rings can be unwielded without problems
+ // You can't unwield/fire a wielded cursed weapon/staff
+ // but cursed armour and rings can be unwielded without problems.
return (!_is_true_equipped_item(item));
}
- // mummies can't do anything with food or potions
+ // Mummies can't do anything with food or potions.
if (you.species == SP_MUMMY)
return (item.base_type != OBJ_POTIONS && item.base_type != OBJ_FOOD);
- // in all other cases you can use the item in some way
+ // In all other cases you can use the item in some way.
return true;
}
diff --git a/crawl-ref/source/misc.cc b/crawl-ref/source/misc.cc
index f678914f3d..bc1b0a4df0 100644
--- a/crawl-ref/source/misc.cc
+++ b/crawl-ref/source/misc.cc
@@ -139,6 +139,30 @@ static void create_monster_hide(int mons_class)
move_item_to_grid( &o, you.x_pos, you.y_pos );
}
+// Vampire draining corpses currently leaves them a time of 90, while the
+// default time is 200. I'm not sure whether this is for balancing reasons
+// or just an arbitrary difference. (jpeg)
+void turn_corpse_into_skeleton(item_def &corpse, int time)
+{
+ ASSERT(corpse.base_type == OBJ_CORPSES && corpse.sub_type == CORPSE_BODY);
+
+ // Some monsters' corpses lack the structure to leave skeletons behind.
+ if (!mons_skeleton( corpse.plus ))
+ return;
+
+ // While it is possible to distinguish draconian corpses by colour, their
+ // skeletons are indistinguishable.
+ if (mons_genus(corpse.plus) == MONS_DRACONIAN
+ && corpse.plus != MONS_DRACONIAN)
+ {
+ corpse.plus = MONS_DRACONIAN;
+ }
+
+ corpse.sub_type = CORPSE_SKELETON;
+ corpse.special = time;
+ corpse.colour = LIGHTGREY;
+}
+
void turn_corpse_into_chunks( item_def &item )
{
ASSERT( item.base_type == OBJ_CORPSES );
diff --git a/crawl-ref/source/misc.h b/crawl-ref/source/misc.h
index 7c919859f8..35446bd0fd 100644
--- a/crawl-ref/source/misc.h
+++ b/crawl-ref/source/misc.h
@@ -67,6 +67,7 @@ void trackers_init_new_level(bool transit);
/* ***********************************************************************
* called from: delay
* *********************************************************************** */
+void turn_corpse_into_skeleton(item_def &corpse, int time = 200);
void turn_corpse_into_chunks( item_def &item );
void init_stack_blood_potions( item_def &stack, int age = -1 );
diff --git a/crawl-ref/source/mon-pick.cc b/crawl-ref/source/mon-pick.cc
index a325d0c0de..381491fae1 100644
--- a/crawl-ref/source/mon-pick.cc
+++ b/crawl-ref/source/mon-pick.cc
@@ -2098,7 +2098,7 @@ int mons_shoals_rare(int mcls)
case MONS_STONE_GIANT:
case MONS_YAKTAUR_CAPTAIN:
return 10;
-
+
case MONS_OKLOB_PLANT:
return 5;
default:
@@ -2706,8 +2706,6 @@ int mons_standard_rare(int mcls)
{
switch (mcls)
{
-// "another lava thing" has no stats! (GDL)
-// case MONS_ANOTHER_LAVA_THING:
case MONS_MERFOLK:
case MONS_MERMAID:
case MONS_BIG_FISH:
diff --git a/crawl-ref/source/mon-util.cc b/crawl-ref/source/mon-util.cc
index 1d1fed8710..b66c4cad13 100644
--- a/crawl-ref/source/mon-util.cc
+++ b/crawl-ref/source/mon-util.cc
@@ -1142,10 +1142,10 @@ bool mons_skeleton(int mc)
if (mons_zombie_size(mc) == Z_NOZOMBIE
|| mons_weight(mc) == 0 || (mons_class_flag(mc, M_NO_SKELETON)))
{
- return false;
+ return (false);
}
- return true;
+ return (true);
} // end mons_skeleton()
flight_type mons_class_flies(int mc)
@@ -1170,8 +1170,8 @@ flight_type mons_flies(const monsters *mon)
const int type = mons_is_zombified(mon)? mons_zombie_base(mon) : mon->type;
const flight_type ret = mons_class_flies( type );
return (ret ? ret
- : (_scan_mon_inv_randarts(mon, RAP_LEVITATE) > 0) ? FL_LEVITATE
- : FL_NONE);
+ : (_scan_mon_inv_randarts(mon, RAP_LEVITATE) > 0) ? FL_LEVITATE
+ : FL_NONE);
}
bool mons_amphibious(int mc)
@@ -1733,13 +1733,20 @@ static std::string _str_monam(const monsters& mon, description_level_type desc,
// Add suffixes.
switch (mon.type)
{
- case MONS_ZOMBIE_SMALL: case MONS_ZOMBIE_LARGE:
- result += " zombie"; break;
- case MONS_SKELETON_SMALL: case MONS_SKELETON_LARGE:
- result += " skeleton"; break;
- case MONS_SIMULACRUM_SMALL: case MONS_SIMULACRUM_LARGE:
- result += " simulacrum"; break;
- default: break;
+ case MONS_ZOMBIE_SMALL:
+ case MONS_ZOMBIE_LARGE:
+ result += " zombie";
+ break;
+ case MONS_SKELETON_SMALL:
+ case MONS_SKELETON_LARGE:
+ result += " skeleton";
+ break;
+ case MONS_SIMULACRUM_SMALL:
+ case MONS_SIMULACRUM_LARGE:
+ result += " simulacrum";
+ break;
+ default:
+ break;
}
// Vowel fix: Change 'a orc' to 'an orc'
@@ -1864,8 +1871,8 @@ habitat_type mons_habitat_by_type(int mc)
habitat_type mons_habitat(const monsters *m)
{
- return mons_habitat_by_type(
- mons_is_zombified(m)? mons_zombie_base(m) : m->type );
+ return mons_habitat_by_type( mons_is_zombified(m) ? mons_zombie_base(m)
+ : m->type );
}
bool intelligent_ally(const monsters *monster)
@@ -2534,6 +2541,7 @@ bool monster_shover(const monsters *m)
return (false);
int mchar = me->showchar;
+
// Somewhat arbitrary: giants and dragons are too big to get past anything,
// beetles are too dumb (arguable), dancing weapons can't communicate, eyes
// aren't pushers and shovers, zombies are zombies. Worms and elementals
@@ -6476,8 +6484,10 @@ mon_body_shape get_mon_shape(const int type)
if (type == MONS_SKELETAL_WARRIOR)
return(MON_SHAPE_HUMANOID);
else
+ {
// constructed type, not enough info to determine shape
return(MON_SHAPE_MISC);
+ }
case 'A': // angelic beings
return(MON_SHAPE_HUMANOID_WINGED);
case 'B': // beetles
diff --git a/crawl-ref/source/monplace.cc b/crawl-ref/source/monplace.cc
index 215d41e16b..70f28e54fa 100644
--- a/crawl-ref/source/monplace.cc
+++ b/crawl-ref/source/monplace.cc
@@ -264,11 +264,11 @@ monster_type pick_random_monster(const level_id &place,
if (lev_mons || _need_moderate_ood(lev_mons))
lev_mons = _fuzz_mons_level(lev_mons);
- // potentially nasty surprise, but very rare
+ // Potentially nasty surprise, but very rare.
if (_need_super_ood(lev_mons))
lev_mons += random2(12);
- // slightly out of depth monsters are more common:
+ // Slightly out of depth monsters are more common:
// [ds] Replaced with a fuzz above for a more varied mix.
//if (need_moderate_ood(lev_mons))
// lev_mons += random2(5);
@@ -375,10 +375,12 @@ static monster_type resolve_monster_type(monster_type mon_type,
{
// Pick any random drac, constrained by colour if requested.
do
+ {
mon_type =
static_cast<monster_type>(
random_range(MONS_BLACK_DRACONIAN,
MONS_DRACONIAN_SCORCHER));
+ }
while (base_type != MONS_PROGRAM_BUG
&& mon_type != base_type
&& (mons_species(mon_type) == mon_type
@@ -719,21 +721,21 @@ static int _place_monster_aux( const mgen_data &mg,
grid_wanted = habitat2grid( mons_habitat_by_type(mg.cls) );
int i = 0;
- // we'll try 1000 times for a good spot
+ // We'll try 1000 times for a good spot.
for ( ; i < 1000; i++)
{
fpos = mg.pos + coord_def( random_range(-3, 3),
random_range(-3, 3) );
- // occupied?
+ // Occupied?
if (mgrd(fpos) != NON_MONSTER || fpos == you.pos())
continue;
if (!grid_compatible(grid_wanted, grd(fpos), true))
continue;
- // don't generate monsters on top of teleport traps
- // (how do they get there?)
+ // Don't generate monsters on top of teleport traps.
+ // (How do they get there?)
int trap = trap_at_xy(fpos.x, fpos.y);
if (trap >= 0 && !can_place_on_trap(mg.cls, env.trap[trap].type))
continue;
@@ -747,7 +749,7 @@ static int _place_monster_aux( const mgen_data &mg,
return (-1);
}
- // now, actually create the monster (wheeee!)
+ // Now, actually create the monster. (Wheeee!)
menv[id].type = mg.cls;
menv[id].base_monster = mg.base_type;
@@ -756,10 +758,10 @@ static int _place_monster_aux( const mgen_data &mg,
menv[id].x = fpos.x;
menv[id].y = fpos.y;
- // link monster into monster grid
+ // Link monster into monster grid.
mgrd(fpos) = id;
- // generate a brand shiny new monster, or zombie
+ // Generate a brand shiny new monster, or zombie.
if (mons_class_is_zombified(mg.cls))
_define_zombie( id, mg.base_type, mg.cls, mg.power );
else
@@ -895,14 +897,14 @@ static void _define_zombie( int mid, monster_type ztype,
monster_type cs, int power )
{
monster_type mons_sec2 = MONS_PROGRAM_BUG;
- int zombie_size = 0;
- bool ignore_rarity = false;
- monster_type cls = MONS_PROGRAM_BUG;
+ int zombie_size = 0;
+ bool ignore_rarity = false;
+ monster_type cls = MONS_PROGRAM_BUG;
if (power > 27)
power = 27;
- // set size based on zombie class (cs)
+ // Set size based on zombie class (cs).
switch (cs)
{
case MONS_ZOMBIE_SMALL:
@@ -922,26 +924,26 @@ static void _define_zombie( int mid, monster_type ztype,
break;
default:
- // this should NEVER happen.
+ // This should NEVER happen.
perror("\ncreate_zombie() got passed incorrect zombie type!\n");
end(0);
break;
}
- // that is, random creature from which to fashion undead
+ // That is, random creature from which to fashion undead.
if (ztype == MONS_PROGRAM_BUG)
{
- // how OOD this zombie can be.
+ // How OOD this zombie can be.
int relax = 5;
- // pick an appropriate creature to make a zombie out of,
+ // Pick an appropriate creature to make a zombie out of,
// levelwise. The old code was generating absolutely
// incredible OOD zombies.
while (true)
{
cls = _pick_random_zombie();
- // on certain branches, zombie creation will fail if we use
+ // On certain branches, zombie creation will fail if we use
// the mons_rarity() functions, because (for example) there
// are NO zombifiable "native" abyss creatures. Other branches
// where this is a problem are hell levels and the crypt.
@@ -962,28 +964,37 @@ static void _define_zombie( int mid, monster_type ztype,
ignore_rarity = true;
}
- // don't make out-of-rarity zombies when we don't have to
+ // Don't make out-of-rarity zombies when we don't have to.
if (!ignore_rarity && mons_rarity(cls) == 0)
continue;
- // if skeleton, monster must have a skeleton
+ // If skeleton, monster must have a skeleton.
if ((cs == MONS_SKELETON_SMALL || cs == MONS_SKELETON_LARGE)
&& !mons_skeleton(cls))
{
continue;
}
- // size must match, but you can make a spectral thing out
+ // Size must match, but you can make a spectral thing out
// of anything.
if (mons_zombie_size(cls) != zombie_size && zombie_size != -1)
continue;
- // hack -- non-dungeon zombies are always made out of nastier
- // monsters
+ // Skeletal or icy draconians shouldn't be coloured.
+ // How could you tell?
+ if ((cs == MONS_SKELETON_SMALL || cs == MONS_SIMULACRUM_SMALL)
+ && mons_genus(cls) == MONS_DRACONIAN
+ && cls != MONS_DRACONIAN)
+ {
+ cls = MONS_DRACONIAN;
+ }
+
+ // Hack -- non-dungeon zombies are always made out of nastier
+ // monsters.
if (you.level_type != LEVEL_DUNGEON && mons_power(cls) > 8)
break;
- // check for rarity.. and OOD - identical to mons_place()
+ // Check for rarity.. and OOD - identical to mons_place()
int level, diff, chance;
level = mons_level( cls ) - 4;
@@ -998,7 +1009,7 @@ static void _define_zombie( int mid, monster_type ztype,
break;
}
- // every so often, we'll relax the OOD restrictions. Avoids
+ // Every so often, we'll relax the OOD restrictions. Avoids
// infinite loops (if we don't do this, things like creating
// a large skeleton on level 1 may hang the game!)
if (one_chance_in(5))
@@ -1873,10 +1884,8 @@ public:
}
};
-/*
- * Finds a square for a monster of the given class, pathfinding
- * through only contiguous squares of habitable terrain.
- */
+// Finds a square for a monster of the given class, pathfinding
+// through only contiguous squares of habitable terrain.
coord_def find_newmons_square_contiguous(monster_type mons_class,
const coord_def &start,
int distance)
@@ -1921,8 +1930,7 @@ bool player_angers_monster(monsters *mon, bool actual)
const bool antimagical =
(you.religion == GOD_TROG && mons_is_magic_user(mon));
- // get the drawbacks, not the benefits...
- // (to prevent e.g. demon-scumming)
+ // Get the drawbacks, not the benefits... (to prevent e.g. demon-scumming).
if (holy || unholy || antimagical)
{
if (actual
@@ -1985,14 +1993,13 @@ bool empty_surrounds(int emx, int emy, dungeon_feature_type spc_wanted,
FixedVector < char, 2 > &empty)
{
bool success;
- // assume all player summoning originates from player x,y
+ // Assume all player summoning originates from player x,y.
bool playerSummon = (emx == you.x_pos && emy == you.y_pos);
int good_count = 0;
int count_x, count_y;
for (count_x = -radius; count_x <= radius; count_x++)
- {
for (count_y = -radius; count_y <= radius; count_y++)
{
success = false;
@@ -2025,15 +2032,14 @@ bool empty_surrounds(int emx, int emy, dungeon_feature_type spc_wanted,
if (success && one_chance_in(++good_count))
{
- // add point to list of good points
+ // Add point to list of good points.
empty[0] = tx;
empty[1] = ty;
}
- } // end "for count_y"
- } // end "for count_x"
+ }
return (good_count > 0);
-} // end empty_surrounds()
+}
monster_type summon_any_demon(demon_class_type demon_class)
{
diff --git a/crawl-ref/source/output.cc b/crawl-ref/source/output.cc
index 8f2ea5897e..2e9b77c446 100644
--- a/crawl-ref/source/output.cc
+++ b/crawl-ref/source/output.cc
@@ -1322,14 +1322,18 @@ _print_next_monster_desc(const std::vector<monster_pane_info>& mons, int& start)
{
int printed = 0;
- // one glyph for each monster
+ // One glyph for each monster.
for (unsigned int i_mon=start; i_mon<end; i_mon++)
{
unsigned int glyph;
unsigned short glyph_color;
get_mons_glyph(mons[i_mon].m_mon, &glyph, &glyph_color);
textcolor(glyph_color);
- cprintf( stringize_glyph(glyph).c_str() );
+ // XXX: Hack to make the death cob (%) show up correctly.
+ if (glyph == '%')
+ cprintf("%%");
+ else
+ cprintf( stringize_glyph(glyph).c_str() );
++ printed;
// Printing too many looks pretty bad, though.
if (i_mon > 6)
@@ -1349,11 +1353,12 @@ _print_next_monster_desc(const std::vector<monster_pane_info>& mons, int& start)
mons_get_damage_level(mon, damage_desc, damage_level);
else
damage_level = MDAM_OKAY;
+
int dam_color;
switch (damage_level)
{
- // NOTE: in os x, light versions of foreground colors are OK,
- // but not background colors. So stick wth standards.
+ // NOTE: In os x, light versions of foreground colors are OK,
+ // but not background colors. So stick wth standards.
case MDAM_DEAD:
case MDAM_ALMOST_DEAD:
case MDAM_SEVERELY_DAMAGED: dam_color = RED; break;
diff --git a/crawl-ref/source/spells2.cc b/crawl-ref/source/spells2.cc
index 7c163f1d73..0b5006464c 100644
--- a/crawl-ref/source/spells2.cc
+++ b/crawl-ref/source/spells2.cc
@@ -293,11 +293,7 @@ int corpse_rot(int power)
if (!mons_skeleton(mitm[objl].plus))
destroy_item(objl);
else
- {
- mitm[objl].sub_type = CORPSE_SKELETON;
- mitm[objl].special = 200;
- mitm[objl].colour = LIGHTGREY;
- }
+ turn_corpse_into_skeleton(mitm[objl]);
place_cloud(CLOUD_MIASMA, adx, ady,
4 + random2avg(16, 3), KC_YOU);
@@ -314,7 +310,7 @@ int corpse_rot(int power)
if (player_can_smell())
mpr("You smell decay.");
- // should make zombies decay into skeletons
+ // Should make zombies decay into skeletons?
return 0;
} // end corpse_rot()
@@ -407,8 +403,9 @@ int animate_a_corpse( int axps, int ayps, beh_type corps_beh, int corps_hit,
while (objl != NON_ITEM)
{
const item_def& item = mitm[objl];
- if (is_animatable_corpse(item) &&
- (class_allowed == CORPSE_BODY || item.sub_type == CORPSE_SKELETON))
+ if (is_animatable_corpse(item)
+ && (class_allowed == CORPSE_BODY
+ || item.sub_type == CORPSE_SKELETON))
{
bool was_butchering = is_being_butchered(item);
diff --git a/crawl-ref/source/spells4.cc b/crawl-ref/source/spells4.cc
index 77393b1c8c..845701cf45 100644
--- a/crawl-ref/source/spells4.cc
+++ b/crawl-ref/source/spells4.cc
@@ -1323,11 +1323,7 @@ static int make_a_rot_cloud(int x, int y, int pow, cloud_type ctype)
if (!mons_skeleton(mitm[obj].plus))
destroy_item(obj);
else
- {
- mitm[obj].sub_type = CORPSE_SKELETON;
- mitm[obj].special = 200;
- mitm[obj].colour = LIGHTGREY;
- }
+ turn_corpse_into_skeleton(mitm[obj]);
place_cloud(ctype, x, y,
(3 + random2(pow / 4) + random2(pow / 4) +
diff --git a/crawl-ref/source/tile1.cc b/crawl-ref/source/tile1.cc
index 43ff12e9ec..b59cb13cc1 100644
--- a/crawl-ref/source/tile1.cc
+++ b/crawl-ref/source/tile1.cc
@@ -1364,13 +1364,12 @@ static int _tileidx_food(const item_def &item)
return TILE_ERROR;
}
-// returns index of corpse tiles
-// parameter mon already holds the corpse type (monster species)
+// Returns index of corpse tiles.
+// Parameter mon already holds the corpse type (monster species).
static int _tileidx_corpse(int mon)
{
switch (mon)
{
- // case MONS_PROGRAM_BUG:
case MONS_GIANT_COCKROACH:
return TILE_CORPSE_GIANT_COCKROACH;
case MONS_GIANT_ANT:
@@ -1429,15 +1428,12 @@ static int _tileidx_corpse(int mon)
case MONS_DEEP_ELF_SORCERER:
case MONS_DEEP_ELF_DEATH_MAGE:
return TILE_CORPSE_ELF;
- // case MONS_FUNGUS:
- // case MONS_WANDERING_MUSHROOM:
case MONS_GOBLIN:
return TILE_CORPSE_GOBLIN;
case MONS_HOBGOBLIN:
return TILE_CORPSE_HOBGOBLIN;
case MONS_GNOLL:
return TILE_CORPSE_GNOLL;
- // case MONS_BOGGART:
case MONS_JACKAL:
return TILE_CORPSE_JACKAL;
case MONS_HOUND:
@@ -1450,8 +1446,6 @@ static int _tileidx_corpse(int mon)
return TILE_CORPSE_WAR_DOG;
case MONS_HOG:
return TILE_CORPSE_HOG;
- // case MONS_HELL_HOUND:
- // case MONS_HELL_HOG:
case MONS_ELEPHANT_SLUG:
return TILE_CORPSE_ELEPHANT_SLUG;
case MONS_GIANT_SLUG:
@@ -1490,7 +1484,6 @@ static int _tileidx_corpse(int mon)
return TILE_CORPSE_NECROPHAGE;
case MONS_GHOUL:
return TILE_CORPSE_GHOUL;
- // case MONS_ROTTING_HULK:
case MONS_ORC:
case MONS_ORC_WIZARD:
case MONS_ORC_PRIEST:
@@ -1500,11 +1493,6 @@ static int _tileidx_corpse(int mon)
case MONS_ORC_SORCERER:
case MONS_ORC_HIGH_PRIEST:
return TILE_CORPSE_ORC;
- // case MONS_PHANTOM:
- // case MONS_HUNGRY_GHOST:
- // case MONS_FLAYED_GHOST:
- // case MONS_PLAYER_GHOST:
- // case MONS_INSUBSTANTIAL_WISP:
case MONS_RAT:
return TILE_CORPSE_RAT;
case MONS_QUOKKA:
@@ -1531,12 +1519,6 @@ static int _tileidx_corpse(int mon)
return TILE_CORPSE_UGLY_THING;
case MONS_VERY_UGLY_THING:
return TILE_CORPSE_VERY_UGLY_THING;
- // case MONS_FIRE_VORTEX:
- // case MONS_SPATIAL_VORTEX:
- // case MONS_AIR_ELEMENTAL:
- // case MONS_EARTH_ELEMENTAL:
- // case MONS_FIRE_ELEMENTAL:
- // case MONS_WATER_ELEMENTAL:
case MONS_KILLER_BEE_LARVA:
return TILE_CORPSE_KILLER_BEE_LARVA;
case MONS_WORM:
@@ -1547,8 +1529,6 @@ static int _tileidx_corpse(int mon)
return TILE_CORPSE_BRAIN_WORM;
case MONS_SPINY_WORM:
return TILE_CORPSE_SPINY_WORM;
- // case MONS_UNSEEN_HORROR:
- // case MONS_ABOMINATION_SMALL:
case MONS_YELLOW_WASP:
return TILE_CORPSE_YELLOW_WASP;
case MONS_GIANT_MOSQUITO:
@@ -1557,16 +1537,6 @@ static int _tileidx_corpse(int mon)
return TILE_CORPSE_GIANT_BLOWFLY;
case MONS_RED_WASP:
return TILE_CORPSE_RED_WASP;
- // case MONS_MOTH_OF_WRATH:
- // case MONS_ZOMBIE_SMALL:
- // case MONS_SKELETON_SMALL:
- // case MONS_SIMULACRUM_SMALL:
- // case MONS_SKELETAL_WARRIOR:
- // case MONS_FLYING_SKULL:
- // case MONS_CURSE_SKULL:
- // case MONS_CURSE_TOE:
- // case MONS_ANGEL:
- // case MONS_DAEVA:
case MONS_GIANT_BEETLE:
return TILE_CORPSE_GIANT_BEETLE;
case MONS_BOULDER_BEETLE:
@@ -1601,17 +1571,12 @@ static int _tileidx_corpse(int mon)
return TILE_CORPSE_SWAMP_DRAGON;
case MONS_MOTTLED_DRAGON:
return TILE_CORPSE_MOTTLED_DRAGON;
- // case MONS_QUICKSILVER_DRAGON:
- // case MONS_IRON_DRAGON:
case MONS_STORM_DRAGON:
return TILE_CORPSE_STORM_DRAGON;
case MONS_GOLDEN_DRAGON:
return TILE_CORPSE_GOLDEN_DRAGON;
case MONS_SHADOW_DRAGON:
return TILE_CORPSE_SHADOW_DRAGON;
- // case MONS_SKELETAL_DRAGON:
- // case MONS_SERPENT_OF_HELL:
- // case MONS_EFREET:
case MONS_GIANT_FROG:
return TILE_CORPSE_GIANT_FROG;
case MONS_GIANT_BROWN_FROG:
@@ -1620,7 +1585,6 @@ static int _tileidx_corpse(int mon)
return TILE_CORPSE_SPINY_FROG;
case MONS_BLINK_FROG:
return TILE_CORPSE_BLINK_FROG;
- // case MONS_GIANT_SPORE:
case MONS_GIANT_EYEBALL:
return TILE_CORPSE_GIANT_EYEBALL;
case MONS_EYE_OF_DRAINING:
@@ -1629,39 +1593,20 @@ static int _tileidx_corpse(int mon)
return TILE_CORPSE_GIANT_ORANGE_BRAIN;
case MONS_GREAT_ORB_OF_EYES:
return TILE_CORPSE_GREAT_ORB_OF_EYES;
- // case MONS_SHINING_EYE:
- // case MONS_EYE_OF_DEVASTATION:
case MONS_HIPPOGRIFF:
return TILE_CORPSE_HIPPOGRIFF;
case MONS_MANTICORE:
return TILE_CORPSE_MANTICORE;
case MONS_GRIFFON:
return TILE_CORPSE_GRIFFON;
- // case MONS_SPHINX:
- // case MONS_ICE_BEAST:
- // case MONS_OOZE:
- // case MONS_JELLY:
- // case MONS_SLIME_CREATURE:
- // case MONS_PULSATING_LUMP:
case MONS_GIANT_AMOEBA:
return TILE_CORPSE_GIANT_AMOEBA;
- // case MONS_BROWN_OOZE:
- // case MONS_AZURE_JELLY:
- // case MONS_DEATH_OOZE:
- // case MONS_ACID_BLOB:
- // case MONS_ROYAL_JELLY:
case MONS_KOBOLD:
return TILE_CORPSE_KOBOLD;
case MONS_BIG_KOBOLD:
return TILE_CORPSE_BIG_KOBOLD;
case MONS_KOBOLD_DEMONOLOGIST:
return TILE_CORPSE_KOBOLD;
- // case MONS_LICH:
- // case MONS_ANCIENT_LICH:
- // case MONS_MUMMY:
- // case MONS_GUARDIAN_MUMMY:
- // case MONS_GREATER_MUMMY:
- // case MONS_MUMMY_PRIEST:
case MONS_NAGA:
case MONS_GUARDIAN_NAGA:
case MONS_NAGA_MAGE:
@@ -1672,15 +1617,10 @@ static int _tileidx_corpse(int mon)
return TILE_CORPSE_OGRE;
case MONS_TWO_HEADED_OGRE:
return TILE_CORPSE_TWO_HEADED_OGRE;
- // case MONS_OGRE_MAGE:
- // case MONS_PLANT:
- // case MONS_OKLOB_PLANT:
case MONS_QUEEN_BEE:
return TILE_CORPSE_QUEEN_BEE;
case MONS_QUEEN_ANT:
return TILE_CORPSE_QUEEN_ANT;
- // case MONS_RAKSHASA:
- // case MONS_RAKSHASA_FAKE:
case MONS_SMALL_SNAKE:
return TILE_CORPSE_SMALL_SNAKE;
case MONS_SNAKE:
@@ -1709,154 +1649,23 @@ static int _tileidx_corpse(int mon)
return TILE_CORPSE_POLAR_BEAR;
case MONS_BLACK_BEAR:
return TILE_CORPSE_BLACK_BEAR;
- // case MONS_VAMPIRE:
- // case MONS_VAMPIRE_KNIGHT:
- // case MONS_VAMPIRE_MAGE:
- // case MONS_WIGHT:
- // case MONS_WRAITH:
- // case MONS_SHADOW_WRAITH:
- // case MONS_FREEZING_WRAITH:
- // case MONS_SPECTRAL_WARRIOR:
- // case MONS_SPECTRAL_THING:
- // case MONS_ABOMINATION_LARGE:
- // case MONS_TENTACLED_MONSTROSITY:
- // case MONS_ORB_GUARDIAN:
case MONS_SHEEP:
return TILE_CORPSE_SHEEP;
case MONS_YAK:
return TILE_CORPSE_YAK;
case MONS_DEATH_YAK:
return TILE_CORPSE_DEATH_YAK;
- // case MONS_ZOMBIE_LARGE:
- // case MONS_SKELETON_LARGE:
- // case MONS_SIMULACRUM_LARGE:
- // case MONS_BIG_FISH:
- // case MONS_GIANT_GOLDFISH:
- // case MONS_ELECTRICAL_EEL:
- // case MONS_JELLYFISH:
- // case MONS_SWAMP_WORM:
- // case MONS_LAVA_WORM:
- // case MONS_LAVA_FISH:
- // case MONS_LAVA_SNAKE:
- // case MONS_SALAMANDER:
- // case MONS_ROCK_WORM:
case MONS_HUMAN:
case MONS_HELL_KNIGHT:
case MONS_NECROMANCER:
case MONS_WIZARD:
return TILE_CORPSE_HUMAN;
- // case MONS_VAULT_GUARD:
case MONS_SHAPESHIFTER:
return TILE_CORPSE_SHAPESHIFTER;
case MONS_GLOWING_SHAPESHIFTER:
return TILE_CORPSE_GLOWING_SHAPESHIFTER;
- // case MONS_KILLER_KLOWN:
- // case MONS_GOLD_MIMIC:
- // case MONS_WEAPON_MIMIC:
- // case MONS_ARMOUR_MIMIC:
- // case MONS_SCROLL_MIMIC:
- // case MONS_POTION_MIMIC:
- // case MONS_DANCING_WEAPON:
- // case MONS_IMP:
- // case MONS_QUASIT:
- // case MONS_WHITE_IMP:
- // case MONS_LEMURE:
- // case MONS_UFETUBUS:
- // case MONS_MANES:
- // case MONS_MIDGE:
- // case MONS_SHADOW_IMP:
- // case MONS_RED_DEVIL:
- // case MONS_ROTTING_DEVIL:
- // case MONS_HAIRY_DEVIL:
- // case MONS_BEAST:
- // case MONS_SMOKE_DEMON:
- // case MONS_HELLION:
- // case MONS_TORMENTOR:
- // case MONS_BLUE_DEVIL:
- // case MONS_IRON_DEVIL:
- // case MONS_NEQOXEC:
- // case MONS_ORANGE_DEMON:
- // case MONS_HELLWING:
- // case MONS_YNOXINUL:
- // case MONS_DEMONIC_CRAWLER:
- // case MONS_SHADOW_DEMON:
- // case MONS_SUN_DEMON:
- // case MONS_REAPER:
- // case MONS_SOUL_EATER:
- // case MONS_ICE_DEVIL:
- // case MONS_LOROCYPROCA:
- // case MONS_FIEND:
- // case MONS_ICE_FIEND:
- // case MONS_SHADOW_FIEND:
- // case MONS_PIT_FIEND:
- // case MONS_EXECUTIONER:
- // case MONS_GREEN_DEATH:
- // case MONS_BLUE_DEATH:
- // case MONS_BALRUG:
- // case MONS_CACODEMON:
- // case MONS_CLAY_GOLEM:
- // case MONS_WOOD_GOLEM:
- // case MONS_STONE_GOLEM:
- // case MONS_IRON_GOLEM:
- // case MONS_CRYSTAL_GOLEM:
- // case MONS_TOENAIL_GOLEM:
- // case MONS_ELECTRIC_GOLEM:
- // case MONS_ICE_STATUE:
- // case MONS_SILVER_STATUE:
- // case MONS_ORANGE_STATUE:
- // case MONS_GARGOYLE:
- // case MONS_METAL_GARGOYLE:
- // case MONS_MOLTEN_GARGOYLE:
- // case MONS_PANDEMONIUM_DEMON:
- // case MONS_BALL_LIGHTNING:
- // case MONS_ORB_OF_FIRE:
- // case MONS_VAPOUR:
- // case MONS_SHADOW:
- // case MONS_DEATH_COB:
- // case MONS_IJYB:
- // case MONS_BLORK_THE_ORC:
- // case MONS_URUG:
- // case MONS_EROLCHA:
- // case MONS_SNORG:
case MONS_POLYPHEMUS:
return TILE_CORPSE_CYCLOPS;
- // case MONS_ANTAEUS:
- // case MONS_XTAHUA:
- // case MONS_TIAMAT:
- // case MONS_BORIS:
- // case MONS_MURRAY:
- // case MONS_TERENCE:
- // case MONS_JESSICA:
- // case MONS_SIGMUND:
- // case MONS_EDMUND:
- // case MONS_PSYCHE:
- // case MONS_DONALD:
- // case MONS_MICHAEL:
- // case MONS_JOSEPH:
- // case MONS_ERICA:
- // case MONS_JOSEPHINE:
- // case MONS_HAROLD:
- // case MONS_NORBERT:
- // case MONS_JOZEF:
- // case MONS_AGNES:
- // case MONS_MAUD:
- // case MONS_LOUISE:
- // case MONS_FRANCIS:
- // case MONS_FRANCES:
- // case MONS_RUPERT:
- // case MONS_WAYNE:
- // case MONS_DUANE:
- // case MONS_NORRIS:
- // case MONS_FREDERICK:
- // case MONS_MARGERY:
- // case MONS_MNOLEG:
- // case MONS_LOM_LOBON:
- // case MONS_CEREBOV:
- // case MONS_GLOORX_VLOQ:
- // case MONS_GERYON:
- // case MONS_DISPATER:
- // case MONS_ASMODEUS:
- // case MONS_ERESHKIGAL:
default:
return TILE_ERROR;
}