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;