existing followers on the level (with decreasing chances) to bless them. This lowers probability of the reinforcement effect from 10% to 2.5% if bless_follower() is called without any parameters in the first place.
Greatly reduce chances for orcs talking, and tidy up monspeak.txt a bit to make comparing chances easier.
Add the promised friendly pickup toggle (command on Ctrl-T), and a new option for its default value. Modify documentation accordingly.
Fix 1947256: hunger state not shown at game reload.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@4662 c06c8d41-db1a-0410-9941-cceddc491573
6TEISZD7HYSSL24EOKIBNURU66KGSQX7B7SNAHBP4DQSAOTGH2MQC CMIUYIG4M6E7KHDAEM32CGRMS574CSEVCB2OEMQGSBW4US5YAGKQC ZEJ3RRTIJNGIPLH2X5WX3TFZUPSEDHYYLDQPJHVXE2G7E43NBCQAC KYV3CCBWIX5SUYUQNOCZ5RLPMC3FOFXGXKPKOGSR3CLESFS4EL4AC IMC2HA2YWCU7SLGGVQQVUEUIST4ILSOEAUYXNZAW2PJZ475GXLDAC KZPVMW55ZETV4H4UE4DWOJWK2KSYIJOB7S2SY5XCWVOTRANXO6TQC POP6UTTHSJGDU5NU7ENQJOZVFUHYM63HJ6HLPXDDLK7XFIP4XEIQC XKDPUWDOAFP4ZVWY6AOYPX3TJLTFBNZWRYSPIMEJHFX577WAJGMAC CRU7JBTVJWTTVQ5JTRA2B3X2FPKPJ2RRR33IK2OG536VMOEZJYJAC K2CS6TCX2NDVL2ASEHGP4J4K4IJ6FP3ANNKTSIWVG43HPYSBX6ZQC XAKHV2E3U5KQ5LV77HI7XFKNCKGYXT2LPBOHZP2VOH4Y67QBH4SQC O6EVISSX36HYR7FNQ74LAJIFTUGZ3SAHPW2YC3AHMW4CRBQRNLSAC 2TFYJ7D72JY4DYQW3GSPEONA2WYIVHAJXTIQ2QRDIWF65XN2QFGAC N6AB4D7CBK3YG43GL5MZIHKGYXSQWQ3MRKXGEX3QAADLGNDIKL7AC YYIBXE7VFJTRT73QDNFL3MQ3LP3OK4KML5YMEMRKQUQZJVAWORWAC INWKDE6QMV7PUWMZ65IZTUF4WB2G2OR2Q2NPTNID4Y3NVD7JWN3AC 47NSOFQMBZCDIBHEAZSENFUGDSQCX3GJHFBUZ65ARDKCYIZ435LAC M2EUGZPKR6XTZSLQYDO7CDBBR2WPPMCBIBKJSZW5P7KYUOUPZSZQC OVYC2AOOLEVUE4SSF65W46J4QLLZKRXB4DQY7F6S767XJLPQUU6AC J77VWSSEGMKS4S3HUAKROJYFL3H5FQSO4MCEPXBFJDMYBU36VRLAC K27R6ZMYMKVNXIV7K3QU2NXRVOGQRLMR6TI6ZQQSVKXVKS76NLSQC GRWDBVQM7X6QS7EW5PU5WQNOMR46H5ITKU57J3ZVJPIL3ILXIYPAC 5NNXFH3NRVYSU2ZSN6EUDB6RUVO7LZPYQDMKCQ2BWHNC7JPHR2ZAC HSJF2F2CBK3VSRVYJKMIIJNON67XULQVA4IPXUCPWY32QHDYW4CAC VEPHAIXR3GSPHBLOW5DWFFU4ULEMVWRQG4G5PKSKRA2I6RHYROUAC 6INGHIA3J7XER4L7OZHGU4RR3QTRWISMXHD3AZQK6MQ3VDADBVAAC L5KQH3FHNYTFE4D2L3ZGWCBCMW3PAR7EHD5555GSKJGVK7HQWPXAC 5PTCSQA4RA7CRCIFQQROQZUJHVNWCS33ZWCSGYSBXSJUAKGVCO4QC AZ2RCXNVULJUSCBDBK3VARTUCTPEJXHTA7ALP73S4EXLJB6YYB5QC T7WNH6S3VICGMHV7MJ6RHR2YKH75TLMZBOF7SDSE6TOHTIJNT63QC P2OYYNPHIBGOLT4CRLNTTIXDN34EU2QCMFQJNLAMUAHQXZTEDPXQC GXXYPBFEWKRZQ6OBGYNS2EXZN52NGNV3UU3WM6S5R74CMJBAKGTAC ASH5CK6CPBKMLGGIRJ5GKTWMS5W3OBVHTL66RTYZIPFM6KFBYA3QC Y2NYY7HWFZ2LQDK3ACSLGS37F2J2IJ5LRGCIMZYXLEOSVPD3A4DAC Q3XHNSHW6FI4JCXSEABATRFBJPMCF7PXNG2K6ZQTRRPVMIZFHUBQC GQL5SIGBHLU3FMCE54XVGLRY5AZHRM6DUEB722REA2DPLGJSN6EQC TLO257LZSB6ZO36STDUEWJBO2LETXFKTFGXELA6Y4BZBVAEIIINAC 5O7S2U2B5R7HYML3D66557BC56RG6XH66PFYP6NDJZMXOABMEUKQC 5BJPWUPLJFS34FUTFJVKA4A52YMIGV6EWDXLNSDCWBJWBGVSQFGQC IVVRQ52VA3MAD25ZMPID3GCRBBFYR54CH33DKXYTRAGUBLTRAZNAC KFULGQQOHWUTXOM3BXCCYPGGVGGY4Z6265XUFRCBPNLTZAEHJZSQC DOZORMA366M4HB5JKSS27BMCR6ET7QNZNND2B7KV3NVEEPR5H7EAC QHRWMYQFJ3Q3FM34HVDEIETLLWDMVBQPDIVHJDF3U7DLNYJAVP2QC SDLKLUNFGVKDS55DDJZCBAVIB7NL3RRYPTACAY65SCUQKV6APFSAC RPOZZWKG5GLPHVZZ7ZKMKS64ZMV2LDCQSARBJFJ6FZOTOKCQO7FAC JYCMD6WMNHXA53K4LLKVTNX6PLRLU25F6J2TYMPQXM2ENAE66NIAC IXW2IM5ITYDCXDB3ORDDVAR5XUSPVQ3BWLP3Q6TRXNTIKGMZTHXAC GSQ72ULBSL6WBJZUB3GJKAPQDXZIQV7B2TDBA5OP2WVGHVJMCQFQC QEEJFAETO6B2J4IWDIDCJ5UNIFNNHHG22IWF2CUJRTJJBNE47CWQC G5WLU3B4MR3ZDJLGR6OHNIMLZXGQS2EWBJ5YYY5J2GWM6DTD44BAC BMHUBADDGIOZRVN4P3O5QKIDUYD4RFWBS7MP5X6LZWAYHUBRVD2QC PMCHUVWMCDXOWGXB4SWMBXFGHJYZG7KZ34SE33HFUGHPQYP3LYEAC YM3U5YZEFIYLRJVDWQCSP75JL56WC36XLQSL5ZBT4IWSXYJRBCBAC JJH7VX2LLBZPDKG24SQREWQLX6I6RYNWFECHRZVK7PT5KPQ4MAMAC 7U7IZUR2C7UALYI4Y3SHBYGTHYVQM6JI4PXDFXUFL3T3L6JBSC6AC JM7UAK777RAVDAVLQLEOBRTGNW2B47S5G55XITJXO243IUNZHVYQC NVSFIV2ZKP44XHCSCXG6OZVGL67OIFINC34J2EMKTA4KULCERUEAC LKLHWERPXMDTRNYPEXVDVB6PE7CT5PZ6WMNJJDTBBE5FBHOCEK5AC 3ZWALZFSTSIVYXY4BAY6ANGINTDACZC6RSSJTEMQSTSUIE66YOBQC XX62GOJVDP352L4BH7MELNYXHMZNA6VAGF7B6RWWOSULX7VJR5YAC IWMCGZ57ZVHE6WSPYD2CZNSG7ZDKGRBNZVY3KLR53TGEM3OQJLBAC Y66ZAXN24E3HLIBOSW4OXUTQ4X4PRGNJII4KVDQH4GQJVA6GO3NAC T4IH76FA5TWHFOZUJFHLQXQJENJHWTUZZP4EGNA7D4GTZY7D4ZKAC RVST2QHYJ757ZHK4AUJ5NGPDZ44AD6RVFVXYPKQIBJXZBDNUCHXQC UF4ODJOCV3ZL7DXRLLOFVWHUKKJX34FO4ZM6VJAWEJ3QVP3XZ2AAC CH7JECYYH35H4TRHRNRTRJCQTQLZ2WRH62TKV72SUIU2RTK5OH7AC WL5WZXFJ6TONUQRSHUY4GQ5USU47ILWNN5X2JDQZO4CRJJZSRQIAC EHSY6DVGUMI6C67WKET3GDJVLWJWGYBYQONNDK5JVT7BCTHBEZVAC PFQAR3EWCVJXCXU7VHWZOXA2FSYLFJ6EE3WG5FVOVYTXASCAXWEAC WTBI53EKHGSNOQJ7DJVKJNKGW2VFFEDYTQATU53WFH3IAMSSGOZAC 5V47S4NNTHWTSAHV3YLO2VGH7JTUIYJ3GBPDN5ZM4UQALT2ZEXDQC GNDVGD7P554FJICPKWYQYXZ46HDMRYKOGZL4XZS2CPF3SNF5UO7QC monsters *mon;for (int loopy = 0; loopy < MAX_MONSTERS; loopy++){mon = &menv[loopy];if (mon->type == -1)continue;if (!is_orcish_follower(mon))continue;recalled.push_back(loopy);}if (recalled.empty())return 0;int count_recalled = 0;int total = recalled.size();int amount = 1 + random2(4) + random2(4);bool recall_all = (total <= amount);for (unsigned int loopy = 0; loopy < recalled.size(); loopy++){mon = &menv[recalled[loopy]];if (!recall_all && total == amount)recall_all = true;if (recall_all || random2(total) < amount){if (empty_surrounds(you.x_pos, you.y_pos, DNGN_FLOOR, 3,false, empty)&& mon->move_to_pos( coord_def(empty[0], empty[1])) ){count_recalled++;amount--;}elsebreak; // no more room to place monsters}total--;}return (count_recalled);}
if (follower == NON_MONSTER){// Try again, without the LOS restriction.follower = choose_random_nearby_monster(0, suitable, false, true);}
// Choose a random follower in LOS, preferably a named one (10% chance).follower = choose_random_nearby_monster(0, suitable, true, true);
// Try again, or possibly send more reinforcement.if (_beogh_blessing_reinforcement())reinforced = true;}}
// If no follower was found, attempt to send// reinforcement.bool reinforced = _beogh_blessing_reinforcement();if (!reinforced || coinflip()){// Try again, or possibly send more reinforcement.if (_beogh_blessing_reinforcement())reinforced = true;}
pronoun = (mons_is_unique(mon->type)) ? "" : "your ";blessed = (is_near) ? mon->name(DESC_PLAIN).c_str() : "follower";if (chance == 0)
if (chance == 0) // 5% chance of holy branding, or priesthood
int ystart = you.y_pos - 9, xstart = you.x_pos - 9;int yend = you.y_pos + 9, xend = you.x_pos + 9;if ( xstart < 0 ) xstart = 0;if ( ystart < 0 ) ystart = 0;if ( xend >= GXM ) xend = GXM;if ( yend >= GYM ) yend = GYM;
int xstart = 0, ystart = 0;int xend = GXM, yend = GYM;
// Friendlies may only pick up stuff dropped by (other) allies.if (mons_friendly(this)&& !testbits(item.flags, ISFLAG_DROPPED_BY_ALLY))
// Depending on the friendly pickup toggle, your allies may not pick// up anything, or only stuff dropped by (other) allies.if (mons_friendly(this))
const bool newlevel =load(stair_taken, LOAD_ENTER_LEVEL, old_level_type,old_level, old_where);
const bool newlevel = load(stair_taken, LOAD_ENTER_LEVEL, old_level_type,old_level, old_where);
if ( Options.autoprayer_on == false ||you.religion == GOD_NO_GOD ||you.religion == GOD_NEMELEX_XOBEH ||you.duration[DUR_PRAYER] ||grid_altar_god( grd[you.x_pos][you.y_pos] ) != GOD_NO_GOD ||!i_feel_safe() )
if ( Options.autoprayer_on == false|| you.religion == GOD_NO_GOD|| you.religion == GOD_NEMELEX_XOBEH|| you.duration[DUR_PRAYER]|| grid_altar_god( grd[you.x_pos][you.y_pos] ) != GOD_NO_GOD|| !i_feel_safe() )
case CMD_TOGGLE_FRIENDLY_PICKUP:// Toggle pickup mode for friendlies.if (Options.friendly_pickup == -1){Options.friendly_pickup = 0;mpr("Your allies may now only pick up items dropped by allies.");}else if (Options.friendly_pickup == 0){Options.friendly_pickup = 1;mpr("Your allies may now pick up anything they need.");}else{Options.friendly_pickup = -1;mpr("Your allies are now forbidden to pick up anything at all.");}break;
// Mark items in inventory as of unknown origin.origin_set_inventory(origin_set_unknown);
Options.friendly_pickup = Options.default_friendly_pickup;
default_friendly_pickup = (none | friend | all)Using an in-game toggle, you can control what types of itemsyour allies will pick up:none = They won't pick up anything at all.(This is the old friendly pick up behaviour.)friend = They will pick up anything they or another allydropped, e.g. if another ally dies.(This is the default value.)all = They will pick up anything they want to have.(This is how it works for hostile monsters.)This option controls which is the default setting for this togglewhen you start or reload a game, or when you enter a level forthe first time.Note that monsters have their own reasonings for which items theymay need, and when they feel safe enough to pick them up. Exceptfor "none", these options won't let you override these.Also, friendly jellies won't ever eat any items, regardless of thisoption.