There's a whole lot of places that pass monster_type as int, often with varying meanings for the value -1. This moves some of these to monster_type, introducing MONS_NO_MONSTER and MONS_PLAYER as new invalid special values.
Also improve on the autoexclude descriptions.
6AOBHPEVZFUDSTZ6FR6PRQ6H2V766R2PJRXS4UMYI6SAELGAV5EAC
MIUX76FPUNEC4UX6DRFUTBJ6BRA5HHJ32UTZXVRMQMTVGDT3XHVQC
RLRYNVMYODOJNQJC7SYW46RNE4VOPA5HTMYTPIFTCZLUH45DBFCQC
NFOPRRZOP42SZFVKWMUDIWRWSUWOR66ADXLXMXDUTJATNVBP4KNAC
GXSSXUSTSTLNSAI2GXBEAZ5JNTZWQ5F5R53WU7N2PY45XZS5NBKQC
YWSN3SJEZRDX223KTSDBR7IU5Y7Y7SSKQWTOULWRHQV47UK5M5RQC
TFDCHPCMZ2IHPUXI6LXSFSI6YJQVE4YTAGCU27HVVWRF623FVOOAC
H7M7JRWP6XOPZ2CQANPWNHCENKXIT4WEMTZKX74BV2VEABFZWVXAC
64OMENFYPDV6L6KIOIQ4Z5JNUWECESYM6GOLZZGBRQ4ZJY5QRGHAC
GUFPL64ERBQNPT6YYVPDE56QUGRZLP7LRJSJMMXF73VCXR555CUQC
RGM7NKVVYCZ653RAS5NFFI6ZJ46WL2CUOK2TY7ESRVXJX2ENQCMAC
ASXBSZVXJCWVX5VQSRWXL5BWQ4NA7JLYXP6LWQTRGYW6DC2DZZPQC
LPV66WRRLBAXH3Z6BYUK36N33H6VFGXMLRGYAE2WGHGN6DTZMVBAC
EHV4CAJV2NVOHTFHFZP6XFW56X7G4PQKBWEEPXQPYQ57SOCYJYRAC
PU6VE6DFO4AJPL4RLKMMAIEGYDRNMTH4N4KSERK6B5QU5ZP53ZUAC
SDLKLUNFGVKDS55DDJZCBAVIB7NL3RRYPTACAY65SCUQKV6APFSAC
ROWW5YUHXITC4QBBSYRVPE6HJ2XMFX3K3M2LHPX4WRDKMEFJVTOQC
XDACRDVLDEUFUBN4L7ES5WBD3YSLBHMRZ4Q5PXIUMOK44D3TLWSAC
CK7CT5TUFUL2AQY7FUHB5JI3FC2KSPWUWHXC6VEUJJ7G4OWUQFTAC
SVY2PTCLXR3KNPQAWXVXTTGCC5DR334HOAKHYO3VDDRWM2BWMALAC
RWCCZ64BG3HSOTM54ANIGENC3F3AIR42LJFRYSAKMCPCIUSOZY5QC
7KWDC7XFNMBLSUO2HISIROBINZBX5T67LJEEXTAORXW2YZ7VWFGAC
PSCYVKJ7DGXAL3V5U4O6AJTRV6Q3N3SHQWAZ73VIPRTE4W64F2XAC
K2CS6TCX2NDVL2ASEHGP4J4K4IJ6FP3ANNKTSIWVG43HPYSBX6ZQC
7AMQN7MITMXBNVDAK5VOXTQ4TZIAOD6ZLOFJG7GQMBTY23Y2BKSAC
5TG5LXU4DX65KMWCZ7YJHOB3VAETQAVBUHEUSQTPMA327XV2HQWAC
2FWCWK23M4RXDNZ2WOCHAGSLXNOHLLCMLOZTVJMCOGLC54HMEUXAC
774O5HM4CU5QYP4MPKKLHIVZQ5JLLZETYIDZZYBAPOJSO6ILC5RAC
R22TTMI6WXWULC7ODKFF3QCB7MOTETQQ6IR4BUCUPOCQKQNCTT5AC
3DQXSE4YGFBBDUWK4YEOFWW4UPWILWELFSLP37SL6BERGAZJC5YAC
NPTVMSNYWIALN2GSKESU6NKX7XNG7QDH2TNIWUB6R6NHCLK32NFAC
ECUYJLVGW6ADRLLF2WOMRG464VHOVDPP5OK5SAX2PHBUUC5FD4TQC
RPOZZWKG5GLPHVZZ7ZKMKS64ZMV2LDCQSARBJFJ6FZOTOKCQO7FAC
4EQI267TNL6F4OA3IKY5WZSWWZKSOBYFYHA7YEEOMIG6FSXBV7EAC
JMBL7S3FVFBUQGRYXVHY4LCL3RTWMFFW42EG4FQPH45YTERD35RAC
PC6K5OQF3BWPMWTIN5JXAKHTZF453JQOELDWRUOSBZXR256FTUYQC
EFWEYIB2R3DPD3JWIPU6LS6SFLPMYN7J7X4GBZR7DJWKHJ3UELSAC
JHDGOKFOJXQQ46LHUWKS2T2Z4EHJRFFDQ4BY6KETX6IGFGKV6YYQC
F7Q5PX44SLPANIZXCY67TG2W5JTRVJMHGQW54VJLGB4XRH7R6JBQC
ISSEUTHG7EH3QTFLS23GXFIOQXCI5HJPJMK6GWNFMC6NDRD2H34QC
RBAGQ2PB7V5YAM5KSHSZR2E3MLKDSRVM5XYGI2TIXP5QMVBOQHDQC
MHI3OM6VJY6LZUD577O22XREHPOPMWDVR3UT2JWGFDAKD7SO6Y3QC
NG53L53MSFQZAIVKHG54IEMXNJ33AYVPF2OZM4MMJFDKEJCGPBSAC
RVGFSBOM6ZKEFVVGROSW454QSLU4J6TSRU4D6EQMXD4CWQ4UN3TQC
JFDTUUUT6AKIGPBKGYFC7HZKGQUZOMG7EUWU4QYKSDVXXPQBBFHAC
G7DNYFW745Q567EF3TPR2FCQ4ATPN236ON7X5TLYC7TEPZW3BAFAC
LZN527GR3AULRHWIBA537RR4WSCNNYY4XSEZ6VFF7TKGYSUSBOCAC
EFM2EHMNHBA326V3F3H7WOPBZN2XU4GRTRHOFDX6SCIETUPM352QC
SQDS2YBPOYDDDCW3GGARBZ2HQIUHCQKL7SSHKFQWDENOL5YNNVNQC
MDFQRJ6QZNFUBVSFWLXUJ6EBXOU47T3CVDI2XKBGNNRF4DXDKESQC
5DIBLX3RXK752JKG2BQQM76GYEOMQ5E2YKTLROH3QQGHCVLAGRJQC
2DORUQ4B574MDOOMRYWGU5I72AKHMCSTZ6B3VSHQBUQOZYHRC7FAC
Y4NA3JSN63RLATF4NNBPSR5CWF5Z7UEMWCGVX4B6NOAR47CGM4GQC
FLDIOEND63BONSOAIZ7WYAVNQLJ35O3VFY3PTVRWWYOJL4JXREHAC
F7QFSXE22UPQTBLYJLY26HJ3QPHFNBJMUOFJRV35R5YCHSGKTBYQC
W5VEC2PBIM5DMU5233HOWAZUEPTGWJRZZIA3H35YYQQW6BTP6XUAC
33ZMPQC6OXTESW7SRW765GRNJUEJRSYONRVZVIEUDAUEJ2PPMB4AC
VMMUZXOQDXW5ZHA7623F744LS7U4BVLBKW5TNZMG5L2Z44UZGZRAC
CQKH4FU2BZOMP5VWWOH2CEWDAYOV7FV53VOFQRF7R64DCQMP73LAC
SIDH2P7NBIG5KEOE27XHD3ZT2NQ2OJZFN6VZXWNWYFFY5YVXSSVQC
WQLOHSNCA3VOMDJF6IINJYKSYVYZEBPJJWBB33QSNE4RP5HEXPMAC
GPEJOT73KMACP33IPAKFR5ROGHCOIP22VXZMQNYTGLEA2OSZUM2AC
QDTVLBRGHDTRUVT7I3O72K6TMOYAUSAJBZUHGOEFU2RKJNUPWZSQC
Q3XHNSHW6FI4JCXSEABATRFBJPMCF7PXNG2K6ZQTRRPVMIZFHUBQC
ICNPYZNNQS3QYZ5GFVXV43OKRXGYQMSP2Q4RMXEUKM53MSU2BIXAC
EMPCLM5IS2DKVNICFEDGSA36EDE4ZEAXNPEOFUKA6W57B3HFHQVAC
5FBOE2QNRLKUNOP54CZD6LFAMM7LX6NNLHJRJHRDDIUTQ7J723DQC
KBNY5FWKTEAKABFCLPC3QFKFSVZKAGXINPCIFV6WDSWFO4VCKNTAC
TGJZXTUIAKCFZQJ54ZQEBGFBVZSJCAX6AWDRSH3TP7UJRLGUM5SAC
HBRUWIHAOFRF57K4D7TNGLVAFWP3SLH6UUMQCSVKBFOKG3KYTRVQC
HGBHRHXFVTEWYYV2D5HKTKL4Z6OSNR2ZOIHFQX55CVRCXQUQ7MQAC
LCGR52GGFWII4WW7GVUM72PJ2LPVYRUK636334KYRX2TYJSKS2QQC
MJWFTUS66PTCNEYXEJA3CUJFXNWXIKDD6H3V24PW7HK64NSVOFSAC
N6F35CMZALDQR4LD3HP2JQZGQ4JNBATAICO7ZUCF5M2ZW5E4QYVAC
VXSORUQOM2VZA4CAZDC6KPAY373NQIN3UT7CXQXTRCYXO2WM62DAC
TO43FWKHNIA5MVDOFXYHQODTLBQYEZKX5UIUGID57436UF7G2EXQC
2Z6IWKMEWE4OIFVWFSZBA2SIXMBJNV6H6LNEPOXTJZW433ABU4EQC
QS3ZRS3E6KL3YJHPKYEWCWJYRBJSXD5OOYF6Y25HZVECGPJRDB5QC
DTO3EUKWHZ5RJNGNCFYXSOVTIPVXPP637F2W7WFGYKJ7JK7VNKNQC
S26C7QFN3OBMIHF5XRB5PKRCQVBY22OLUIJKTD4CEMHKWCWE457AC
IE3INS4WUXZOBVXB5VWRBYPVPXADD2U2W5H3TBTOYNWJ3EGRSGQQC
34C4U6EQWERY75GZJKUCM5KVGU2OUICETS5LGZF6RMKMZT4R5SQAC
R2DQBWKIW7YUJB5SOQ7J274JIYRVX4H3ISFRPAL5RG2RVVP4G2KAC
P5TRGRH7XMQSPCZKM5IEEO34TY6WMLGHHX7BU6Y453JFRXLUR2VQC
WMHFDQKUDCUGM3R245LLVZ5NNEZSCXFDSTNMVS2O5EFUHHO7HU3AC
ILN2K6ASDZSMEHOPJ22IZLZJUO6DDGZTKAKXM3YXG6JZZHJNLX4AC
ZBFNQZV6XCH4NUTHJU4K7RN4KLUMWNCWWO6UP7TIRASCWD5J5OMQC
7YSKYUNV34XIWRTJUHJV4QMQRTXXYDIXM5AZSPSDPAYDW4B4PU6QC
LUH72JJEXFXC76PRCIZGY6GBY3H7WWXT2T6E4WQQSMA4DZZTPYCQC
GQQ6ASWTYODIHG7X32JNUUHP5NMOVZJIHWGS3F3MKRYZGAHP6NVQC
RTP5LGTHS2SODDICWYEIL2E5YSNVFUUUGQXXLE7KPRDU27ZSSFYAC
RQR4PTMGQLTRWLYRU3KXIIDGND7FBORESJWMWFVD3WYU5SISZXAAC
3C2VE43SHCSBY4LTRTFYFLIPRWFUN6DXU6D34QVWDQTSNRBUFG7AC
2WWSPLCXLSMBGTXUC33EQ5YBOA5IBFSMJSTZ2TU6HZIMZZWZJWGAC
NVAQAP5YCPRQHJN4UL3ZYNKZLVUUXCPR57VC7SGVPSB3NPM6ORFAC
7YUGK5Q64KG5O7GJGTUBRRLHAHBCJ5YOE23YUPT6UBKUSB67CYAQC
C5U3HSOOQ7BKXKXIDS7MLVXUKDTHAWJ5NXNX6YDXTM3GWY5UWX4QC
if (curr_excludes[i].mon != NON_MONSTER)
monsters.push_back("unknown monster");
// FIXME: mondata[curr_excludes[i].mon].name);
if (!invalid_monster_type(curr_excludes[i].mon))
monsters.push_back(mons_type_name(curr_excludes[i].mon, DESC_PLAIN));
int old_type = monster->type;
monster->type = MONS_GOLD_MIMIC + random2(5);
monster->colour = get_mimic_colour( monster );
monster_type old_type = monster->type;
monster->type = static_cast<monster_type>(
MONS_GOLD_MIMIC + random2(5));
monster->colour = get_mimic_colour(monster);
if (monster_habitable_grid(m, grid))
monsters_by_habitat[i].push_back(static_cast<monster_type>(m));
if (monster_habitable_grid(mt, grid))
monsters_by_habitat[i].push_back(mt);
return (mclass < 0
|| mclass >= NUM_MONSTERS
|| mon_entry[mclass] == -1
|| mon_entry[mclass] == mon_entry[MONS_PROGRAM_BUG]);
return (mt < 0 || mt >= NUM_MONSTERS
|| mon_entry[mt] == -1
|| mon_entry[mt] == mon_entry[MONS_PROGRAM_BUG]);
bool can_bottle_blood_from_corpse( int mons_type );
int num_blood_potions_from_corpse( int mons_class, int chunk_type = -1 );
bool can_bottle_blood_from_corpse(int mons_type);
int num_blood_potions_from_corpse(int mons_class, int chunk_type = -1);
const int max_chunks = mons_weight(item.plus) / 150;
const monster_type montype = static_cast<monster_type>(item.plus);
const int max_chunks = mons_weight(montype) / 150;