git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@5341 c06c8d41-db1a-0410-9941-cceddc491573
K2B4YUKFNQX33VFTVF4WRGMXUG7OG6AKCE67MU562QNBJXGOVQTAC
NLXVJSK53M3GCGGVJWYPHYZJ2A7JAF2FEYQPIGLRUYJ3FTWYONLQC
JGKYRZ34S3I23PMJX6IUBR7EHEFD6I4XXEGXNT7GKT2M2VIRBSMQC
UET576SVCGS2TXEDRTO7BUTOTLJ77MYHIVZJCDWGH2BAXYMKG6DAC
6CEQ4UIMYK5ZOSHIYTJSEVVFUZJALCD6ZOLVEPGHYIDWKP6B2RGQC
RUKEWLAIHCN3HXJX6V54VMZ7IH26MNT5NCG5YJGCR5VJS5KX6ZMAC
TV3ZC6WOZKSQQJQN26JIVKCHK6UK7WMDBYZDUYRWEAZ4JB4YVNAAC
BIZDHHK5LIO57S5AKHEPJFLWV5DAFKZIKYBGOUNGICSWTX7DCXKAC
K2CS6TCX2NDVL2ASEHGP4J4K4IJ6FP3ANNKTSIWVG43HPYSBX6ZQC
VXSORUQOM2VZA4CAZDC6KPAY373NQIN3UT7CXQXTRCYXO2WM62DAC
GBUB77EAYHOFY6GQ5IY3ZSBC7FSQFZZKYNBD5QMCQFIKFLYLWHOQC
JDM27QE4HR52AYFSQE763BFF57ANOTF5MXKMO377PP5EXMN7SAOAC
KFULGQQOHWUTXOM3BXCCYPGGVGGY4Z6265XUFRCBPNLTZAEHJZSQC
6TEISZD7HYSSL24EOKIBNURU66KGSQX7B7SNAHBP4DQSAOTGH2MQC
QHRWMYQFJ3Q3FM34HVDEIETLLWDMVBQPDIVHJDF3U7DLNYJAVP2QC
RPOZZWKG5GLPHVZZ7ZKMKS64ZMV2LDCQSARBJFJ6FZOTOKCQO7FAC
IXW2IM5ITYDCXDB3ORDDVAR5XUSPVQ3BWLP3Q6TRXNTIKGMZTHXAC
GZ4FB5VKL4C22KK3GSKQPLJYMRGLFXUDCOBNEBC2OKK6KVZL3OSQC
5R4WV4H5SNIM5WU2X33JJ63HIEGKCXN2HELZ6FRRKKANPLMRLF3QC
QZERCVTY5BISIKSDH6WUXGZPIBAF4KUCGSZEEGMGBCORNUXT4HXAC
5HPIIGNWB3UXJ5APQLAGFOV2CA7J2GB7AWAVVZDBB2YZS4TNCMAQC
JM7UAK777RAVDAVLQLEOBRTGNW2B47S5G55XITJXO243IUNZHVYQC
O6ZMFKDI3XO2SWPNEYHIPYFDWJR4TVDP5BAATK6LVCVETQID6E7AC
XX62GOJVDP352L4BH7MELNYXHMZNA6VAGF7B6RWWOSULX7VJR5YAC
TDAVD56MGLFSMJLPLSYLEVW7MBRMT7V5BNII4TRWVDIHH47CD2OAC
WL5WZXFJ6TONUQRSHUY4GQ5USU47ILWNN5X2JDQZO4CRJJZSRQIAC
RVST2QHYJ757ZHK4AUJ5NGPDZ44AD6RVFVXYPKQIBJXZBDNUCHXQC
UF4ODJOCV3ZL7DXRLLOFVWHUKKJX34FO4ZM6VJAWEJ3QVP3XZ2AAC
EOMCPVNQLX3IMLC46EAO67DPBH5KEG2FQTPBLGU62HIRWA3UQ7XQC
AJQVPOGLZZXMKZWDZCVYKTD7OX737GCJWIF4IRWU5JIBPDF6ZDSQC
EHSY6DVGUMI6C67WKET3GDJVLWJWGYBYQONNDK5JVT7BCTHBEZVAC
XPCGZBHHSL6MB3ORMUJI64BAERU6AZTIY6RK56BBW7SNB3IK24IAC
E5GFDGV5XJVVDZGWFQIIZ47FGGF7AEJLGGBWRUZ34HPLNFJTNLLQC
BWAQ3FHBBM6G3K3KYP75CRTR343RDQZJRYX5ZGYUEXYBAC3APDLAC
BWLTFEAHYDDL4I45B6J55SDLPNN5L6BGFD4KPNEUSP7PRQBY5AUQC
}
/* Decides whether autoprayer Right Now is a good idea. */
static bool should_autopray()
{
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() )
{
return false;
}
// We already know that we're not praying now. So if you
// just autoprayed, there's a problem.
if ( you.just_autoprayed )
{
mpr("Autoprayer failed, deactivating.", MSGCH_WARN);
Options.autoprayer_on = false;
return false;
}
return true;
}
// Actually performs autoprayer.
bool do_autopray()
{
if ( you.turn_is_over ) // can happen with autopickup, I think
return false;
if ( should_autopray() )
{
pray();
you.just_autoprayed = true;
return true;
}
else
{
you.just_autoprayed = false;
return false;
}
break;
case CMD_TOGGLE_AUTOPRAYER:
if (you.religion == GOD_NEMELEX_XOBEH)
{
mpr("Those worshipping Nemelex Xobeh don't need to autopray.");
Options.autoprayer_on = false;
}
else
_toggle_flag( &Options.autoprayer_on, "Autoprayer" );
Automatic prayers take a turn like manual prayers and happen
only if
- there is no hostile monster in sight
- some further conditions (like not standing at an altar)
Note that even when you're praying, you can renew prayer
anytime. Also note the option safe_zero_exp (see 4-a) decides
whether zero experience monsters (like plants) are considered
hostile.
If you use autoprayer, you might want to set
runrest_ignore_message to ignore the prayer messages (see the
documentation for runrest_ignore_message).