git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@5146 c06c8d41-db1a-0410-9941-cceddc491573
HIPFIMUOA7DFOFV3DQ55YZJVGNU2GNDYFUCB4MRPUR5DTYDO5YMAC
HIJA2PEGEFA2BL6CPI6S74CCEQUHZSFYIFQ7VR6NEYGLBPZJ6G2QC
25BU4E7ND5KWNWCNIEOQPI5ITHMRNVQUQNJURBFSEP5FVASYDVQQC
PGOFY6C4EVHQAKOGOOYCKIDYTWBKHAX22C4FAKYZN4TD7FMJPLWQC
K5V7BNN65MEQBOOOA5XRJO4WJ7RP6TDOTQ7DSTICECW4MM64QRAQC
XT2KFG7OWPSVHRMC7N63L34PICCG6JGI3WA2BNX5UKMRUCO6VHCQC
GZ4FB5VKL4C22KK3GSKQPLJYMRGLFXUDCOBNEBC2OKK6KVZL3OSQC
KEANRIMF5CGFVZ2XJYNFPOAKLXOSOJUOVA73IWBWOG576265ERHAC
627CM2ZOKVBMPVPBYGWBWWPT2FBMVRRH2VDGPT6Z5XCVJ5R4YQWQC
OSAAG64ITU6GP25G2CK5TKYNMMAYVTGPZRGVVPQSY6YIGGIEDETAC
SDLKLUNFGVKDS55DDJZCBAVIB7NL3RRYPTACAY65SCUQKV6APFSAC
RPOZZWKG5GLPHVZZ7ZKMKS64ZMV2LDCQSARBJFJ6FZOTOKCQO7FAC
45FTVJJ5FMXBXQ2GVUZVJZU6Y6NUYG2JZIHWVMONA7QYYCZQSM2QC
QDWDUURSNLMT6AXNNJ3DEQCWAKCAIHV6MP5F7QGIBGXOG2BI2NPQC
DK362IHKSDADMUPD35NOTKM4WESQM37KG2PNOJRV2FGELDWULYPQC
LDBTCT5WIPLJPZWXS2RUQ26QKISCUUTLO77M464WOE6VSYSNPKYAC
TAHSTXR7ROOMDFUSBUU4ZAIEWQLAS5CIRCTARLD4Q2BGNLSL7E5QC
XP3TQISCLEST3ZNTF6OZ6FYMHIIPMVTNVBIIG47LA5PS7J234SQAC
GWGKGHFGBLVPDSSDWYFORHZHMWOR3SFC5PJNF732V7FEKWWJKPOAC
547JREUJXTZNYVGHNNAET5F5O5JYYGNTDQB6ABZNT7YX5EY64OHAC
3YK4G4IQBXW63HPGU5WRTV6L2FCMKAK4DOTCHFK2FNSB5B3Y3PVQC
RS2Q66UPKG2NLNBE6UMX273UEVNGTNLVEITB2PCRVHZWTS2WXTAQC
LLKV4OYGEDB4GVJS5JVBZP5JQFW7VMPZ2CBRSITJ5XCFS3QNWIBQC
ILOED4VB4I6VPAUTR75ZWX6MXDYXB5DO2EDK2UH67O3HNKWV23RQC
LXLUKS5CKXBUSVV3QTZ4SM7NWSY6JFQEBHUBQW2VUEU5DOL3RRLAC
2WRXQTGYDBLV46WRNVIUKGNA5QS563XZNNW3N2L6PVOCHIP2YGHQC
UOW2X5KTUHYCM73SWNOSJPHUKWVLF3OJTNSISSSENEURBX2XWHVQC
IPXXB4VRVZWOU5DKQ5ZTD37LS3QNK2R6APNZUO672YEEJT6OFAYQC
TJISAZK5RWKXIIC5UTQNY4KT3UX3ASGBUQQNWZ7ZDULPRYFRZXQQC
RC6L3CIBLJEH4GWRFD7UQNGI6PZT74FRUVOYHSAN2XCC74NZUASQC
H3EEUJYQCVEXQSDP62GBIC47T4BKBAC4Z65HRKGJK2M5MFXZWYOAC
F2ZJ55CL3T66DFM34BQWCJNHIT4XJFCGTWTA5KESV6NHWFLTGUYAC
BTLE3LHDYNCTGW36TBD7BWLRMGAYNQJ23KVD32ZCRESZEQXEMC2QC
SSQP7MS6LZYY73QEF66EYNNQJJSB6TVLLWXLWL7JJAYBLXCEY2XAC
C6QWJ7O4HS2IGJZTDQLGFPXPD5OBFS4U364IRZFV7V2LXVPP4DXQC
PL6I2CMSTHY5ZHWVMIQE5YTM5S5VPKBNZM6QJVHZSSKOJGIJ5W4AC
V26TVLNNESUAUJY24SEXIWRQB7A4JJ6TVQU3JVZV54IEEKCB3WOQC
6HG6JFO47Y3BZLU7Y6G3R2CX6JFGN4X5PKK6S5IGUXUYQ5GVZYFQC
ZHFUXYUHS6V47WK2NRH7OU6RX77NRKTXOZC3MND2GG7PEEWSGFTAC
5UVDIVD4NSXA52U4QMQIVST3GSZJ2A2YZK3RUEXKPM43YVQ7LI5AC
M47QBURKKRV2JFK6U7GQNVWK7RUTBVPBJ5FHURC55SKQSXAUFSBAC
NXIVXEHVXS22UDSQL4KZQ4VHK3XTW7DAGA5LLL3EXY5MHPIUXL7AC
777QS3HZPW7YHEZPCMEOFVMAPW47RHZNUMBKERJEGOTOG4B54CEAC
JJULXW764V5C2HJKZNWQAEWB6QM5YZADD7ZCE35LYTBFEM6PMYCAC
2G55UEHQ7554OPNSZVTUCZTWSHIFKGT56QEGSYFKCTX547I4AL3AC
RS24ZF3Y47QA2534EHQWZ35O2CI4JUOIVHUPRANCCNLVINSCYFXQC
ANBVGN4RZOMY5LI4QSHOV2477FN55H353ZYLSVCPTXC7AWWSQZBAC
NJDPIHOREOTAZJXOMZA5QA4TBADDWLFZ25NVAIFDQ7BUBVUWCEEAC
XHNJ2W4AQHIF32P2ENIMMDLWAIFWP442KJIZC6RKS4HBJNZIHHBAC
G4JT6UMXZW2M4GLNPX7C5NLHZIEJ5KGVHKRAXX7PEZEFVQCGN4DAC
T4IH76FA5TWHFOZUJFHLQXQJENJHWTUZZP4EGNA7D4GTZY7D4ZKAC
ND6XK6Z4XFRB3L42TK3G34SZQYETLPNVOIKBA65SJMB4FYAGOWPAC
Y66ZAXN24E3HLIBOSW4OXUTQ4X4PRGNJII4KVDQH4GQJVA6GO3NAC
GQL5SIGBHLU3FMCE54XVGLRY5AZHRM6DUEB722REA2DPLGJSN6EQC
3WRAJZ5ZLOSIZHFBUH5552QC4F3GAK7AXF6VIQFVN6VY7PUO6HPQC
WJSQFRBUSDKGMQLKIBDVXTWJQHIL45GVBAYXB43AG3NACXYE3BBQC
GMSGNBZKUJ3DDTOGLQJ3VUBUYIECAW6PDDHYFPGSOHSG2TUUKJRAC
SVY2PTCLXR3KNPQAWXVXTTGCC5DR334HOAKHYO3VDDRWM2BWMALAC
AS2IQQJNNCEQNXXKTGYHLB7RO3ZKCF4F7GK6FJH66BOOKDDRGNIQC
LVCBY444HPB4RRFMUAZPHVZ67IC3L6DB27AEMCW3DEXHLBF73TMQC
MFONX2CQ4V7HA5NSD6P5NDDBXYDSKIOCYUKRZXJ4ZER2OKJWT2HQC
QEEJFAETO6B2J4IWDIDCJ5UNIFNNHHG22IWF2CUJRTJJBNE47CWQC
ASLW3Z5PAVZSWJEMMMVZT226P44EKSAD47QS72JIFJESAI3RPN3AC
VXSORUQOM2VZA4CAZDC6KPAY373NQIN3UT7CXQXTRCYXO2WM62DAC
K2CS6TCX2NDVL2ASEHGP4J4K4IJ6FP3ANNKTSIWVG43HPYSBX6ZQC
ED62QWGKBPORWVKDFOQRKJXEIWZVNGR3O4KWQBDSRNPT36AYOQYAC
KYKFOLADMUWUGJG2YWH2SSQRPRU5VOLSORANZKHDYGJSLIKVAXUQC
J7KCPTGASQNRAKVKQ5FCXZ75E75PK7I2BB6MFSI3COWU6HRKTWSAC
UWMN4HLG6YA2YFQEVIVMDISD6APKEPIZXMMPMNUYCBQDSAUYSXPQC
JN4GPMQCXOY5ICTLPLWP6DXBFULN4GMAEK7T4GXTZVIJAUUKBBYAC
VNIAJEGE3PYE6F6EAMCQDWMAS52EQTKJUPAFXK7ARCITZ326WTTQC
LFBNFE3PZBXTR2ROPKYPARUWLJAYWAKGTS7VBWADZWVVSJ5CLX6AC
static command_type trans_negotiate_stairs();
static bool find_transtravel_square(const level_pos &pos,
bool verbose = true);
static command_type _trans_negotiate_stairs();
static bool _find_transtravel_square(const level_pos &pos,
bool verbose = true);
static bool loadlev_populate_stair_distances(const level_pos &target);
static void populate_stair_distances(const level_pos &target);
static bool is_greed_inducing_square(const LevelStashes *ls,
const coord_def &c);
static bool _loadlev_populate_stair_distances(const level_pos &target);
static void _populate_stair_distances(const level_pos &target);
static bool _is_greed_inducing_square(const LevelStashes *ls,
const coord_def &c);
return runmode == RMODE_TRAVEL? "travel" :
runmode == RMODE_INTERLEVEL? "intertravel" :
runmode == RMODE_EXPLORE? "explore" :
runmode == RMODE_EXPLORE_GREEDY? "explore_greedy" :
runmode > 0? "run" :
"";
return (runmode == RMODE_TRAVEL ? "travel" :
runmode == RMODE_INTERLEVEL ? "intertravel" :
runmode == RMODE_EXPLORE ? "explore" :
runmode == RMODE_EXPLORE_GREEDY ? "explore_greedy" :
runmode > 0 ? "run"
: "");
set_pass_feature(DNGN_DEEP_WATER, IMPASSABLE);
set_pass_feature(DNGN_LAVA, IMPASSABLE);
set_pass_feature(DNGN_TRAP_MECHANICAL, IMPASSABLE);
_set_pass_feature(DNGN_DEEP_WATER, IMPASSABLE);
_set_pass_feature(DNGN_LAVA, IMPASSABLE);
_set_pass_feature(DNGN_TRAP_MECHANICAL, IMPASSABLE);
|| gridc == DNGN_ENTER_ABYSS
|| gridc == DNGN_ENTER_LABYRINTH
|| gridc == DNGN_ENTER_PANDEMONIUM
|| gridc == DNGN_EXIT_PANDEMONIUM
|| gridc == DNGN_TRANSIT_PANDEMONIUM);
|| gridc == DNGN_ENTER_ABYSS
|| gridc == DNGN_ENTER_LABYRINTH
|| gridc == DNGN_ENTER_PANDEMONIUM
|| gridc == DNGN_EXIT_PANDEMONIUM
|| gridc == DNGN_TRANSIT_PANDEMONIUM);
{
check_interesting_square(x, y, discoveries);
}
_check_interesting_square(x, y, discoveries);
if (branch == BRANCH_MAIN_DUNGEON &&
(player_in_branch( BRANCH_VESTIBULE_OF_HELL ) ||
player_in_branch( BRANCH_COCYTUS ) ||
player_in_branch( BRANCH_TARTARUS ) ||
player_in_branch( BRANCH_DIS ) ||
player_in_branch( BRANCH_GEHENNA )))
if (branch == BRANCH_MAIN_DUNGEON
&& (player_in_branch(BRANCH_VESTIBULE_OF_HELL)
|| player_in_branch(BRANCH_COCYTUS)
|| player_in_branch(BRANCH_TARTARUS)
|| player_in_branch(BRANCH_DIS)
|| player_in_branch(BRANCH_GEHENNA)))
{
static int find_transtravel_stair( const level_id &cur,
const level_pos &target,
int distance,
// This is actually the current position on cur,
// not necessarily a stair.
const coord_def &stair,
level_id &closest_level,
int &best_level_distance,
coord_def &best_stair,
const bool target_has_excludes )
static int _find_transtravel_stair( const level_id &cur,
const level_pos &target,
int distance,
// This is actually the current position
// on cur, not necessarily a stair.
const coord_def &stair,
level_id &closest_level,
int &best_level_distance,
coord_def &best_stair,
const bool target_has_excludes )
find_transtravel_stair(dest.id, target,
dist2stair, dest.pos, closest_level,
best_level_distance, best_stair,
target_has_excludes);
if (newdist != -1 &&
(local_distance == -1 || local_distance > newdist))
_find_transtravel_stair(dest.id, target,
dist2stair, dest.pos, closest_level,
best_level_distance, best_stair,
target_has_excludes);
if (newdist != -1
&& (local_distance == -1 || local_distance > newdist))
find_transtravel_stair(current, target,
0, cur_stair, closest_level,
best_level_distance, best_stair,
!target_level.get_excludes().empty());
_find_transtravel_stair(current, target,
0, cur_stair, closest_level,
best_level_distance, best_stair,
!target_level.get_excludes().empty());
&& (current_dist == -1 || best_level_distance < current_dist))
return find_transtravel_square(newlev, verbose);
&& (current_dist == -1 || best_level_distance < current_dist))
{
return _find_transtravel_square(newlev, verbose);
}
std::string branch =
cpos != std::string::npos? s.substr(0, cpos) : s;
std::string depth =
cpos != std::string::npos? s.substr(cpos + 1) : "";
std::string branch = (cpos != std::string::npos? s.substr(0, cpos) : s);
std::string depth = (cpos != std::string::npos? s.substr(cpos + 1) : "");
return
make_stringf(
" (-> %s@(%d,%d)%s%s)", lp.id.describe().c_str(),
lp.pos.x, lp.pos.y,
guessed_pos? " guess" : "",
type == PLACEHOLDER? " placeholder" : "");
return make_stringf( " (-> %s@(%d,%d)%s%s)", lp.id.describe().c_str(),
lp.pos.x, lp.pos.y,
guessed_pos? " guess" : "",
type == PLACEHOLDER? " placeholder" : "" );
if (id.branch == BRANCH_MAIN_DUNGEON &&
si.destination.id.branch == BRANCH_VESTIBULE_OF_HELL &&
!travel_hell_entry.is_valid() &&
si.destination.is_valid())
if (id.branch == BRANCH_MAIN_DUNGEON
&& si.destination.id.branch == BRANCH_VESTIBULE_OF_HELL
&& !travel_hell_entry.is_valid()
&& si.destination.is_valid())
{
return ((id.level_type == LEVEL_DUNGEON && can_travel_interlevel())
|| (id.level_type == you.level_type && player_in_mappable_area()));
return (id.level_type == LEVEL_DUNGEON && can_travel_interlevel()
|| id.level_type == you.level_type && player_in_mappable_area());
return grid == DNGN_DEEP_WATER? "You hear a splash."
: grid == DNGN_LAVA ? "You hear a sizzling splash."
: "You hear a crunching noise.";
return (grid == DNGN_DEEP_WATER ? "You hear a splash." :
grid == DNGN_LAVA ? "You hear a sizzling splash."
: "You hear a crunching noise.");