Fix: error for too many matches is not displayed
Fix: rakshasa cannot be looked up (duplicate entries in Mon_Name_Cache)
Fix: can't look up monster by the symbol ' '
Didn't fix: can't look up plain draconians. mon_global_level() for them returns 0, so they're getting filtered out by monster_filter. But I don't know why the filter checks for 0, so I don't want to remove it.
Didn't fix: simulacrum lookup The monster name in mon-data.h is "large simulacrum" and "small simulacrum". However, name in the DB is "simulacrum". The regexp matches the db key "simulacrum", then tries to look up the monster id and matches nothing. I think the right fix is to change the db? But I'm not sure right now.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@3688 c06c8d41-db1a-0410-9941-cceddc491573
32TNF7QPH765BC6VP4KVA4R2REGP6VI7CJ7QW2OOGP66Y7CUNQWQC
VE7FMKHCEFZ4ENKLRFGKMJWM3QEHAVUC5EKL2R4ESQ3P2XFKFHAAC
GOPBXMJ7EKKPDSDXCANWW6ARWGNLOQ5DK7WI4UPD7K2GCDSK2HXAC
VCG3BRIYRTNNWYC3LOXD6KFGXOX37HAFW2HNV7WXVG2V7EUHLDZQC
K2CS6TCX2NDVL2ASEHGP4J4K4IJ6FP3ANNKTSIWVG43HPYSBX6ZQC
NXVPOFYKJFWQWKVPQUMWH2Y2KJEZX44BUOBFJ4JD4KFGPEGYHG4QC
VRFQK6S2TXOFFO5K5HRDXPR7QEKKAZAVCASSIJVPWQ4GE26UOGTQC
PAYI4UTJCR3XZSFOX5L35EURHRXQ6STO4Z7AQ3525QPNL3QYLNBAC
W2KRIXSCRJPS6WDIYTHVF5IRMF3V5DWECRAWUPVTB7VZ6A2BLD4QC
JJH7VX2LLBZPDKG24SQREWQLX6I6RYNWFECHRZVK7PT5KPQ4MAMAC
mon_name_cache[name] = mon;
// Deal sensibly with duplicate entries; refuse or allow the insert,
// depending on which should take precedence. Mostly we don't care,
// except looking up "rakshasa" and getting _FAKE breaks ?/M rakshasa.
if (Mon_Name_Cache.find(name) != Mon_Name_Cache.end())
{
if (mon == MONS_RAKSHASA_FAKE ||
mon == MONS_ARMOUR_MIMIC ||
mon == MONS_SCROLL_MIMIC ||
mon == MONS_POTION_MIMIC ||
mon == MONS_ABOMINATION_LARGE)
{
// keep previous entry
continue;
}
else
{
DEBUGSTR("Un-handled duplicate monster name: %s", name.c_str());
ASSERT(false);
}
}
Mon_Name_Cache[name] = mon;