a fair bit and as usually ended up doing lots of clean-up.
Oh wait, I modified eat_from_floor prompts to only force a more if there was actually a message before trying the inventory (whoops), and also modified the corpses in pack hint to take into account that a saccing player won't be interested in butchering rotten corpses.
Also implemented a modified FR 1981119: when Detect Creatures only detects plants already seen before, print a different message ("You detect no further creatures.").
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@5435 c06c8d41-db1a-0410-9941-cceddc491573
PDOFPXD2X6VI23AHKCGQ5RVDBG74CNP2E3YOHKXLOARHHBXEK3HQC 3HKMT4A6MNZFZLM2EF33T4UNTVX7NS5JZDGQKWJS7WFPFPZFGALAC JDBTF7NKDHWDTAX5LRBQ75A5JBNELFITVYQ6KOGW5XM2SGW33STQC U5SXLDAMIOCJJ3A3U6Y3HHSJI7WSZIM2SSXEPHJWBCB5KAXFM5XQC BZBI4JX6Y6D3ZXNW6SQXIVQFZKVDDOSD6XRFDVY2ZZFIJ4LED4YQC 542UIZKI65UDRNEMGFFDBWYD5XC7AYLTZ3JZQRR2GHYJALD3YY6QC SQDS2YBPOYDDDCW3GGARBZ2HQIUHCQKL7SSHKFQWDENOL5YNNVNQC 4HLF6Q3OBOOHCCJ76L2BXVIYI6EMJ2G7O4XXZPFTLFP6BQGSUZNAC PFEJ4LMDNEKLMGRCMWQ7EIRVU4JMYGICI4G7X4WVWOROVXQCBZ7QC K2CS6TCX2NDVL2ASEHGP4J4K4IJ6FP3ANNKTSIWVG43HPYSBX6ZQC TZ643KHSE5CUPXFSQ7VYVOCM5MTQ7F4SENEYQX2RNFHGHLQVS3RQC JESCEQPAFC23D6BUZMBOB4M54XT3GQZJYT7NCJ556LEUCHRER3SQC R2DQBWKIW7YUJB5SOQ7J274JIYRVX4H3ISFRPAL5RG2RVVP4G2KAC J6APXOT4QOGQFONWB7G546VTVF6QG42HVOROMHF7YBDJPR4K26OAC RPOZZWKG5GLPHVZZ7ZKMKS64ZMV2LDCQSARBJFJ6FZOTOKCQO7FAC 77H4BWWPPGLM3PLZH4QTAJRXIZTSDVNCOKZE223I437FN2UJ34RQC PL6I2CMSTHY5ZHWVMIQE5YTM5S5VPKBNZM6QJVHZSSKOJGIJ5W4AC 25CH7HH4LKXFIZ75YNMXS3TSXO6O27DYSOPLOD45K4OCNFWLS4LQC 6GJYM7D3VKAKCIHAOEZW5XPE7KIJZXJCYZYMHVJAECV5QZWGQAUAC 75M6AVUSS3G5EJECJJRB67V5UYDOIV26FZNB2FFCMBZ33EK7FVIQC XVFTIQ7MSVKQDMQ2HT3IY6FJOZFK4H6OFGTUAID5VGCA5BGVXYPAC CYYY4OASJTLMNQPNC2H57XAHBRT7JYO6MDY3J5DX5PMWRYT7RRUQC WT66JDIRTLLP37SHTV4GI3V64JFJ4D25LNRLGCHFG6CLEFKJ3QGQC SDLKLUNFGVKDS55DDJZCBAVIB7NL3RRYPTACAY65SCUQKV6APFSAC GWGKGHFGBLVPDSSDWYFORHZHMWOR3SFC5PJNF732V7FEKWWJKPOAC TAHSTXR7ROOMDFUSBUU4ZAIEWQLAS5CIRCTARLD4Q2BGNLSL7E5QC CSRWDG2SUGS4YR4PAFI574EGEXW65P6JDT4ZHWDICS2G2GZIGEUQC ZGUJWUFJ4NFFJ6PGXLFGQWCWBCZHPWGWI44NJHJEVPRG5L36PADQC 2UUCC7V3WQ5KBHJS4MTKZ5OIELYJHSTUVRPYGPWIQ5JS6D7YIK4AC KEANRIMF5CGFVZ2XJYNFPOAKLXOSOJUOVA73IWBWOG576265ERHAC EIULXYQC3OPXDGTBRDOI7ITILQ22RGEGG6UFCGY2O5HD7SN5NUUQC SUQ7J6V6BDWG6G6KBGPQ6HYKBMJDM6VKN7ODHVU6YCPRWNEOZCJQC LOC46PHUFJ3MDWOYUEH4R24TGGE4ADG7C44O2ZNB4EBF2YD6VX7QC F7QFSXE22UPQTBLYJLY26HJ3QPHFNBJMUOFJRV35R5YCHSGKTBYQC PAAJWLYMSL5R2NS73EU5AMVTSGQKSK7AZ4P4DWEIVHYYFB3AWEQQC PVLLIAYFIAU4TQFBIP7B4ARIBUX2CVTSBQECEU6VTONJV4ANHVFAC ZS76S7ICRKEPANAWEMFUXMCFZM4VYUBHR4NLIB6NVSUM2VN2XWYAC V7IKAPO5OY7CJTT62GMHQOD3EQW42FTTY3KDBOTJUODPS5WMBCHAC HOPP345EQLSF24XJYE3625VKU23PBKM5ZZKNCXBXUWYYORYPMDAAC ASH5CK6CPBKMLGGIRJ5GKTWMS5W3OBVHTL66RTYZIPFM6KFBYA3QC 5BJPWUPLJFS34FUTFJVKA4A52YMIGV6EWDXLNSDCWBJWBGVSQFGQC S6Z5DI4LGLFHRSOVGGC7PW5CPP34GR5TJXPSJ2XMBFR5YU6VNF4QC ND3T5LCZATC63EVQ6SLI7XXMSUL7XICJDNLH3UCYUDEFWTA3N5MQC CYAVI4PYWMMKTPYT5N2B3MI4OSHZFLPKOZFSLFJUXRYAACYXWW3AC O6ZMFKDI3XO2SWPNEYHIPYFDWJR4TVDP5BAATK6LVCVETQID6E7AC M5JRISNFA35UTUE6EZKABYLNFLD5Y2CM3CEASFEWM4QRNYC3UK3QC TOOHYAX73C5KPSWGHPCBWCUN62WMMO3BI5CWEEMGV3WBFZ5RIH5AC DGB7DKTR6OEQEMOOF3MAHDT4PAPKZ54Y33MWYVD7XIOESPFAXHQQC ASLW3Z5PAVZSWJEMMMVZT226P44EKSAD47QS72JIFJESAI3RPN3AC U6Q43EFKHJIDBBWN6RUTOYRHHX4IT73OPBR4CWIOKUDGTCYQE5PAC 57E4T664CXRFPVW2BZBYI33UIHFS4PSEZURZYPSYSZK5DRLJJ5CQC L6YPJVODN32IYLEZQQZE2ENH3XDAZ63IQIDX3PB4CJEK3A4NUNSAC HQSI2RK5QGNSOR5Y67GZDK4ZWFZ5DSRPASXAV4VHYVB5TUXFZWJQC QGVAXJZXG2HUCLELWAN6LJJOBSP2BS6TIZMPJTDOAGI2E2SUCOCQC NG53L53MSFQZAIVKHG54IEMXNJ33AYVPF2OZM4MMJFDKEJCGPBSAC JCWJWGMQIKQGSSFJUQRKNIWW3HBOJSHYDTOPPE5BWOJTIJTDYUTAC EB2ECXZ3EQ6L2ZY42KLQV4QPE4YCNYENXFGUM7EDTCWC2LDZJYCAC JI33MPZAQQV55WDCZE4IHGMZYRYWIYU5MSYKYZB7RX2AWWY2SMCQC AM7QPHDAWNXHLUEVUHVRHG2RO2DOIEFFU4GV3DCIROW6O5HW7H4AC FS4MVTH4EEEECLEAO2FTNK5CLF2PHFYO2JZHC2YEOKYLWXRDRU6AC RBAGQ2PB7V5YAM5KSHSZR2E3MLKDSRVM5XYGI2TIXP5QMVBOQHDQC TW7QOMTSLYPGUUWHGHLY5G5LV6QQRQIKK4BSE64RY7RDGKVDHCEAC T4IH76FA5TWHFOZUJFHLQXQJENJHWTUZZP4EGNA7D4GTZY7D4ZKAC 5B5DP5S6A6LQMKZYVLQAEMHQZWFWYDHPCKQGRNSCNNYIBQYZ6BIQC 5OVWAD2MGK2NT6Q546KW7HZHELVDBBRC2CQX6VZMZF2YVRC7CPVAC FMKQARDH6JZ7DUTPPQ6I3LLNQAFGXS36XJCSROUJMEIYQYJDVITQC W5VEC2PBIM5DMU5233HOWAZUEPTGWJRZZIA3H35YYQQW6BTP6XUAC SW3RLYFNRT3IJBK6LYKHKP2J2YDU7SXQWAJZX7U6S7ICYW43OMNQC PJ7HBIWAV3H23LXGZAAD2QYJ7HMOFOIR5ZJ4U2UTHI766LOTRRWQC 2WRXQTGYDBLV46WRNVIUKGNA5QS563XZNNW3N2L6PVOCHIP2YGHQC GTPAKUU3R5AS3LQNCCZIP3BWV473RM4EB2AIS4FXAJRXHEOVH2PAC GQL5SIGBHLU3FMCE54XVGLRY5AZHRM6DUEB722REA2DPLGJSN6EQC HAI4YDKI72OBDT5KMMVCO3DOU765OPWCU7GTRKTALFNSDOI4R2LAC YLWMDMNLJOERFAGH5RIFTRWLGCEOWAD4GIWUIXKYA7EE3EWHCVAQC DOZORMA366M4HB5JKSS27BMCR6ET7QNZNND2B7KV3NVEEPR5H7EAC A5YOVQMFZRMT6NK7YUQI632TWC3CFATXDNCSB7M33EEYB62SA3XAC EFWEYIB2R3DPD3JWIPU6LS6SFLPMYN7J7X4GBZR7DJWKHJ3UELSAC XYBPIU6AQ77EID4VNOMI7KQZULZI4VBZHHIGBRYO7QRJVCODEKYAC UURAYLSSITZLQR56MCWFPIWMECU7F3USMA2UPJAO4IPIY5WVKP5QC 7AMQN7MITMXBNVDAK5VOXTQ4TZIAOD6ZLOFJG7GQMBTY23Y2BKSAC JQFDRS5YPQ5KKTCNXW2XNUZU2XK2CW4PXRD6BSQFKMC5QFG3Y23AC ZJLJGSB2XSBQU42OFQMXL3EG4CXAQGOYAU6YTV2SAWZEJIPFH2CAC 7KWDC7XFNMBLSUO2HISIROBINZBX5T67LJEEXTAORXW2YZ7VWFGAC ZP2KE7A2LE7Z2S7AC45WE4CXDSEVDTWIMV2EM4IBUKXYJIDU6R7QC CRUW4EVU3UDWNKXBCPWWHWXXGE7EMEHKK3PLLUD7NWPYY4K2R3YAC T6TL6NTIOBYNUIONGK3JFZJ5ONWV6S4CTIRDC5JMKMCBGG5IY3EAC KZ362RP6C7HRFQB66QL3PBRG7MBEPLRKTFMJYK7DFJQKERFGNFXQC PSCYVKJ7DGXAL3V5U4O6AJTRV6Q3N3SHQWAZ73VIPRTE4W64F2XAC LDBTCT5WIPLJPZWXS2RUQ26QKISCUUTLO77M464WOE6VSYSNPKYAC WF2DSJGR6PKLGQSXEFF4ZW4EZZFGMHXPXWUYAKYBPFJH6KJKAANQC 3UKFCWWS5BLFQWZRB5FUA46CE2XGX5VRCEWC3K3XH5RCGQK64N2AC B7MSPF6X2RLGWN4M6ZZF3WSOPKGYPTTD7LIJVST7DXN27DG6JHNAC BW3XFNOS6LDAQLHOZ6RXARCMKCY5JVLVDSXDSSAX4DSYM3FANQBAC 3WAR2UAC4C4D2GOK4AUV4JITGFSBO3NIBAXGQZXSMFUTNTCLTU4AC GZMPIDNMBXZ4B2ZWKREHBPAVN53J6WRVY5W5KY52KEBHKU6IW4IQC WXSNNK2RXP3DQFAEQGQUZJHFWXJC7ZKG2WURZGL566UDM4YXFSWQC }int count_detected_plants(){int count = 0;for (int y = Y_BOUND_1; y <= Y_BOUND_2; ++y)for (int x = X_BOUND_1; x <= X_BOUND_2; ++x){// Don't expose new dug out areas:// Note: assumptions are being made here about how// terrain can change (eg it used to be solid, and// thus monster/item free).if (is_terrain_changed(x, y))continue;unsigned envc = get_envmap_char(x, y);if (!envc)continue;if (envc == 'P' || envc == 'f')count++;}return (count);
mprf("You detect %s", (detect_creatures(powc) > 0) ? "creatures!": "nothing.");break;
{int known_plants = count_detected_plants();int num_creatures = detect_creatures(powc);
mon_enchant abj = monster->get_ench(ENCH_ABJ);mon_enchant charm = monster->get_ench(ENCH_CHARM);mon_enchant neutral = monster->get_ench(ENCH_NEUTRAL);mon_enchant shifter = monster->get_ench(ENCH_GLOWING_SHAPESHIFTER,ENCH_SHAPESHIFTER);
mon_enchant abj = monster->get_ench(ENCH_ABJ);mon_enchant charm = monster->get_ench(ENCH_CHARM);mon_enchant neutral = monster->get_ench(ENCH_NEUTRAL);mon_enchant shifter = monster->get_ench(ENCH_GLOWING_SHAPESHIFTER,ENCH_SHAPESHIFTER);
bool show_mark = false;int mark_x = 0;int mark_y = 0;// Unmappables...if (you.level_type != LEVEL_LABYRINTH && you.level_type != LEVEL_ABYSS){ox += linex - gmap_min_x;oy += liney - gmap_min_y;
// Highlight centre of the map (ox, oy).ox += linex - gmap_min_x;oy += liney - gmap_min_y;
mark_x = ox;mark_y = oy;show_mark = true;
// [enne] Maybe we need another colour for the highlight?// [jpeg] I think reusing the player colour is okay, because that's// usually where the centre will be.buf2[ox + oy * GXM] = Options.tile_player_col;
// Highlight centre of the map.// [enne] Maybe we need another colour for the highlight?buf2[ox + oy * GXM] = Options.tile_player_col;}
const bool can_bottle = (you.species == SP_VAMPIRE&& you.experience_level > 5&& (!you.duration[DUR_PRAYER]|| !god_likes_butchery(you.religion)));
const bool sacrifice = (you.duration[DUR_PRAYER]&& god_likes_butchery(you.religion));const bool can_bottle = (!sacrifice && you.species == SP_VAMPIRE&& you.experience_level > 5);
you.redraw_hit_points = 1;you.redraw_magic_points = 1;you.redraw_strength = 1;you.redraw_intelligence = 1;you.redraw_dexterity = 1;you.redraw_armour_class = 1;you.redraw_evasion = 1;you.redraw_experience = 1;you.redraw_gold = 1;
you.redraw_hit_points = true;you.redraw_magic_points = true;you.redraw_strength = true;you.redraw_intelligence = true;you.redraw_dexterity = true;you.redraw_armour_class = true;you.redraw_evasion = true;you.redraw_experience = true;you.redraw_gold = true;
static void restore_tagged_file( FILE *restoreFile, int fileType,char minorVersion )
static void _restore_tagged_file( FILE *restoreFile, int fileType,char minorVersion )
static bool determine_ghost_version( FILE *ghostFile,char &majorVersion, char &minorVersion )
static bool _determine_ghost_version( FILE *ghostFile,char &majorVersion, char &minorVersion )
static void restore_ghost_version( FILE *ghostFile,char majorVersion, char minorVersion )
static void _restore_ghost_version( FILE *ghostFile,char majorVersion, char minorVersion )
case CMD_OPEN_DOOR: _open_door(0, 0); break;case CMD_CLOSE_DOOR: _close_door(0, 0); break;
case CMD_GO_UPSTAIRS: _go_upstairs(); break;case CMD_GO_DOWNSTAIRS: _go_downstairs(); break;case CMD_OPEN_DOOR: _open_door(0, 0); break;case CMD_CLOSE_DOOR: _close_door(0, 0); break;