and add it to Orb Guardians in Zot:5. At least in theory, they should now be returning to their starting points if you flee and stay away for long enough.
"In theory" because the bad monster pathfinding prevents them from actually finding their way back. We've got the same problem with minotaurs in labyrinths, who've also got this flag set. Because of these restrictions it's almost impossible to test whether it would work without such problems. In any case, it's there for later.
Also: spacing and commenting fixes in dungeon.cc.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@5253 c06c8d41-db1a-0410-9941-cceddc491573
3UKFCWWS5BLFQWZRB5FUA46CE2XGX5VRCEWC3K3XH5RCGQK64N2AC
VDXZLX3IUUV7JDTTGXN4SW56TQKSLWD6PK4G3WNMYV5GNBK2IDPAC
TV7L2BAXA5U3X7EXFQMXSBNEMXJ3TVU5EWLFWEXFEWJ4MZA6ZY6AC
6LWF2Q64D2FHZHSODMJ2OEXQXKUI3X5BIWWUQIFS3I4GULWBI4SQC
P5TRGRH7XMQSPCZKM5IEEO34TY6WMLGHHX7BU6Y453JFRXLUR2VQC
6ZCKL3LCJ2QYYRI6CVK7CU4VXZMIZ6RIOTFUDEM2QTM4EHKVUKMAC
K2CS6TCX2NDVL2ASEHGP4J4K4IJ6FP3ANNKTSIWVG43HPYSBX6ZQC
NVSFIV2ZKP44XHCSCXG6OZVGL67OIFINC34J2EMKTA4KULCERUEAC
RPOZZWKG5GLPHVZZ7ZKMKS64ZMV2LDCQSARBJFJ6FZOTOKCQO7FAC
KCHX2F3JFEWOZT3WMJVZAAQUU2QSZ5Q7RDCD7WUJ7VE65J52JFUQC
FSD7GIK3YLZXWLEH37BU6KV3IUCFGXPQL6IZ7H65YWNRBEKDBX5AC
AO3KHGKGSX2ZR24KJVIOTUY7EHYHMMI5W4HN3CAG4YGQHBOHLGDQC
WLX2RQMMOMP2PYPAGJRM4VFD2WTLJTOAZZPPY3MV76FU2EGEJ54QC
KXUQB3WNWC5IFL6VFWADEPQMMU3VV3NDI5FLA666PGOEWFYUHCLQC
W52PCSHX72WAMWKG6L4BPUBVMO6E72KYYBNKAA7554KNOTY6V7WQC
JQFQX7IWSJ4TYWVUVXAFMCPSAN67PRMNECDQI5WMON2JFMQVVUEQC
KFJEFN377VIZ7OH2XCYOGCELNEGO4CIOOP7DNXEMX3LFKIKWXVTAC
IVVTHLTTLOP5TSULXJWUSSXHOKYWVU3OWKYVK45A7RIB6V34MYQAC
2ZZD6EYMSPVCXZTICL4VGYGGQRRWDLZ24KBCDBVIYC54OZ4C6GGAC
C22455VGUQOSUX2OORA32LROFQ7NNYDMD2ZDTTUZSAQLXK4AD6QAC
6X36L3WFJHVRAZ2KD6VQMG7O2BBTYKHVU7EMIRHUFUNE7VDMXA7AC
MSQI3TH6T62JAXQGLL52QZCWAMC372TGB6ZNNRDGUGMJKBNNV2VAC
JT672SIJK4BOIUAGL2WQ6NR2NF4PSWP3BT6Q4HMNRF25UN6JQ2MAC
OYTCBRC7LE44EUVRZVYTOOVKQWJ6P6YE3FXTOGUTNKEMLNWPHKSQC
SVUM62ARSXH6RUBFRWS6KAQC7PTNTMGSV2GPZJQQJ4GNEML2HBVQC
7Y5HSDFKA5TPLS2TWTRFMQVX6UXUDHXU5MUMXQSDFAIY4THQ3BIQC
EH4VJW3I5Y4V6DT3YMLNDA3NW2DEAV4LRE4T5IEXAVB4WB3JJMGAC
7YSKYUNV34XIWRTJUHJV4QMQRTXXYDIXM5AZSPSDPAYDW4B4PU6QC
GPEJOT73KMACP33IPAKFR5ROGHCOIP22VXZMQNYTGLEA2OSZUM2AC
WW6THKR7JN447YC23YYHYYNH7ABMCFFSECNUFTIJBZX6JHX6W7TAC
GRH4XPIYHDOXXF3R3QPMZTFHGLO2OJAZS4FLNBBXG3DHTQQM7RDQC
ED62QWGKBPORWVKDFOQRKJXEIWZVNGR3O4KWQBDSRNPT36AYOQYAC
442VGKMARB6LTQUEBIB5P447EI34BRJL6JALZKXLWPDHWCM6KKCQC
JDM27QE4HR52AYFSQE763BFF57ANOTF5MXKMO377PP5EXMN7SAOAC
A3CO4KBFTFU3ZSHWRY2OPPX3MMTFV7OUCZGL7Q4Y2FU7JO4AP7MAC
NCDWWDJQLAU5ORSAQGZKJJ5E22VTDGGPJMVVBWQFHQ2B3U3UFHDQC
WF2DSJGR6PKLGQSXEFF4ZW4EZZFGMHXPXWUYAKYBPFJH6KJKAANQC
B3SRWSFITQMJRVEBHGQQJARETYPSSDV6XKMQSSUTXEHTXRZKIQJQC
UPU5QYUWCXSX233JNGE37QEN5TG5HDRGLNSCEKHH3GPU4AEXW3KAC
WKTZHLOJ65WSK6FR5MF7RWGSMZ22T2D6LHB66FV3IPGXIBLYHHNAC
A3M4LSO6PBVRZ5DYRGLIVZRRNG5GFZ6YAFCKJCE7PVOX5ZYSIF5AC
ZJLJGSB2XSBQU42OFQMXL3EG4CXAQGOYAU6YTV2SAWZEJIPFH2CAC
TLO257LZSB6ZO36STDUEWJBO2LETXFKTFGXELA6Y4BZBVAEIIINAC
JTTHP2BEYEPBQMSDM7IKANTMKRPY6ACGL2JN4D3OBZ7HFXKAYEGQC
WE3JT43OR4L6675GINGU4B3YDBMURJZHDDYY3VLHUJEBAKH2HYEAC
LY6WZIBS6CVHJQJGFPTFGA74PGXM4MJ7GDDPGRK73E4RCXOVNUIQC
OAPAH3WEFTT2T7NVSSENRR5JCIZYA6UZSQQ6LQEHAAXCX6FIM7HQC
APGCKU4AFOV7Z7XIEO5A27H4IFUGDU227I3Z7OIRROYSLOFFBJ5AC
IE3INS4WUXZOBVXB5VWRBYPVPXADD2U2W5H3TBTOYNWJ3EGRSGQQC
XXM3S2BFZVJEAO3VLVHDLKB37QJCT4RCPNJYMKFHTTLF24G3TBXAC
34C4U6EQWERY75GZJKUCM5KVGU2OUICETS5LGZF6RMKMZT4R5SQAC
EOMCPVNQLX3IMLC46EAO67DPBH5KEG2FQTPBLGU62HIRWA3UQ7XQC
CREW3VTGN2BV622ZXHCPHUEZWBAGEQMNUELDLTHLEKG4VBXGMRPQC
3C2VE43SHCSBY4LTRTFYFLIPRWFUN6DXU6D34QVWDQTSNRBUFG7AC
XAFFD52IHN6FWFR2TT5F2KCUS7HAVCBI5CWTFMKPQG77GGTGAHLAC
UZ6N6HOUPGVSPC5NQROEEDWMEGJA5XUWUY2AKH5QG65AZ25PVXDAC
GQL5SIGBHLU3FMCE54XVGLRY5AZHRM6DUEB722REA2DPLGJSN6EQC
L4RYVF46EQKMVOEADGRG4WMPVTQ6NNFGYMU4SHAH6XJIKWVHT77QC
3XZOL3FFQZITUJIGDD6B6V6ZYMBN524JKNN6ZPJAXEC7RY433I3QC
JNB3PBPBJHDUHH47ZICB25QENPTMLYK7CXC5BXRVWZ3J3ZZPKCUAC
E5JKWMBVQQGVSCAX4UOGHI6QW5RFOX6PJB77LHL3UI2NJ427BFFQC
W45PMU4HNPSAMMEBJ4XH4MTHLPVIASZT4FXTBPID5LFXKIMNUBKAC
B7MSPF6X2RLGWN4M6ZZF3WSOPKGYPTTD7LIJVST7DXN27DG6JHNAC
2WRXQTGYDBLV46WRNVIUKGNA5QS563XZNNW3N2L6PVOCHIP2YGHQC
45EMD3KLQPMERNMIKU5G76H6556XOMIW352TSBP7VLWJX2YYGS7AC
5UVDIVD4NSXA52U4QMQIVST3GSZJ2A2YZK3RUEXKPM43YVQ7LI5AC
SWE3F3BLKHYMJEJLXNFH3MR2E6VDEYXJ6DL7QLPP47BJEKEUCAMAC
74LQ7JXVLAFSHLI7LCBKFX47CNTYSKGUQSXNX5FCIUIGCC2JTR3QC
56C44YMFHZ62GXAAOLYSLLGBVGRWXB53W2VI37Q26ZECEK2XG5SQC
4RFKVDJKTCRBZU6WPJ2E5OVI5IRPY3UTRPOBLC5QHY4CQJJTLZKQC
HZK3YN3SAISTDS5JI4COBYFG7YB4ABDVENXWZZEYLFA2LDI232VAC
K6ELQ4HEZYDROC7CJFLPJS64AAJQ4G6RVLL4GBRUG6FJMKSBDDIQC
5KJCHLIUFKRPMIVWUAYT6EOF7SW4PTQF6Y5OPEFWXGLE7DUGYLZAC
ILN2K6ASDZSMEHOPJ22IZLZJUO6DDGZTKAKXM3YXG6JZZHJNLX4AC
NTFA3ZSJFTVLTTKI6ONJE33PGGDW36IVGWMO6GXRA4ZG57TOWNFAC
XJUQANMY7JJTA3KDICDXEOBE22YQTMZQSDPP4PFBTTGJJDK4X5KAC
KA5FM5FELFEKHCCICIQCKVKOLHOYXOCODGK4NFJWRSPJ4UXULC2AC
CQO4TZ3Z2LL6TRJGO4SXVFUNDTAEVPUVVPO52SJLTJ73RCXBEIJQC
CQ24AVAI6SW3AHTIDMLPSTRRBEU6FHRF5I5FD6G5QIYE6PO4BQMQC
UHDT225XZQLYFE7S4LZECR5C2QSI6PNDTP2WWLCIGHAJ3YNFHPXQC
QZERCVTY5BISIKSDH6WUXGZPIBAF4KUCGSZEEGMGBCORNUXT4HXAC
KFULGQQOHWUTXOM3BXCCYPGGVGGY4Z6265XUFRCBPNLTZAEHJZSQC
OY7KHQPESOUHPBXRZ2JSNUKPAC7DCDY73TAUHCSJG5V6TPAHBVYQC
NHZ3VSRYE72XHSNDHOL2P6IX7DS3FK4FDAD2MDEULM3YFJDYTYDAC
ILOED4VB4I6VPAUTR75ZWX6MXDYXB5DO2EDK2UH67O3HNKWV23RQC
7UQJTYJTHTDW55ZUKG4TINZTNALGPK5CB7UB7PJ2Y2SKQ5XOYP5AC
475LL4U4ND6PTNV4XKC7WQAOJC7RF2VCCVX3DRILP2PKIBFYWE6QC
H3552BCIAVBLKAYKE4DHFLBLFW5RGRMYBMRRYHYEB5IPIJRUVU5QC
MXOCLQAUGWLOS7AOTYZ46JZDMRL4EVRK5YN4JJUQ76GLKBOBHEVAC
R6XS2HO5QX2FJUGL5UQQRNETKCMYWTUFPHPPS5SYWK3OQA4UDUQQC
int vault_main(
map_type vgrid,
vault_placement &place,
int which_vault,
bool check_place,
bool clobber)
int vault_main( map_type vgrid,
vault_placement &place,
int which_vault,
bool check_place,
bool clobber)
// If level part of Dis -> all walls metal;
// If part of vaults -> walls depend on level;
// If part of crypt -> all walls stone:
// If level part of Dis -> all walls metal.
// If part of vaults -> walls depend on level.
// If part of crypt -> all walls stone.
// bottom level of branch - replaces down stairs with up ladders:
if ( player_branch_depth() == your_branch().depth &&
you.level_type == LEVEL_DUNGEON &&
you.where_are_you != BRANCH_VESTIBULE_OF_HELL )
// Bottom level of branch - replaces down stairs with up ladders:
if (player_branch_depth() == your_branch().depth
&& you.level_type == LEVEL_DUNGEON
&& you.where_are_you != BRANCH_VESTIBULE_OF_HELL )
if (grd(c) >= DNGN_STONE_STAIRS_DOWN_I &&
grd(c) <= DNGN_STONE_STAIRS_DOWN_III &&
num_down_stairs < max_stairs)
if (grd(c) >= DNGN_STONE_STAIRS_DOWN_I
&& grd(c) <= DNGN_STONE_STAIRS_DOWN_III
&& num_down_stairs < max_stairs)
if ((level_number > 13 && spec_room_type == SROOM_LAIR_KOBOLD)
|| (level_number < 16 && spec_room_type == SROOM_MORGUE)
|| (level_number < 14 && spec_room_type == SROOM_JELLY_PIT)
|| (level_number < 17 && one_chance_in(4)))
// Replace overly dangerous special rooms with a room full of orcs.
if (level_number > 13 && spec_room_type == SROOM_LAIR_KOBOLD
|| level_number < 16 && spec_room_type == SROOM_MORGUE
|| level_number < 14 && spec_room_type == SROOM_JELLY_PIT
|| level_number < 17 && one_chance_in(4))
// hack - passing chars through '...' promotes them to ints, which
// barfs under gcc in fixvec.h. So don't. -- GDL
// XXX: Hack - passing chars through '...' promotes them to ints,
// which barfs under gcc in fixvec.h. So don't. -- GDL
return dgn_place_monster(mspec, monster_level, vx, vy, generate_awake);
const bool patrolling
= mspec.patrolling || place.map.has_tag("patrolling");
return dgn_place_monster(mspec, monster_level, vx, vy, generate_awake,
patrolling);
// then, handle grids that place "stuff" {dlb}:
switch (vgrid) // yes, I know this is a bit ugly ... {dlb}
// Then, handle grids that place "stuff" {dlb}:
// yes, I know this is a bit ugly ... {dlb}
switch (vgrid)
// make bazaar items more valuable (up to double value)
if (you.level_type == LEVEL_PORTAL_VAULT && you.level_type_name == "bazaar")
// Make bazaar items more valuable (up to double value).
if (you.level_type == LEVEL_PORTAL_VAULT
&& you.level_type_name == "bazaar")
/* Draws a room, then another and links them together, then another and etc
Of course, this can easily end up looking just like a make_trail level.
*/
// Draws a room, then another and links them together, then another and etc.
// Of course, this can easily end up looking just like a make_trail level.
&& (between(pos.y, other.pos.y, other.pos.y + other.size.y - 1)
|| between(pos.y + size.y - 1, other.pos.y,
other.pos.y + other.size.y - 1));
&& (between(pos.y, other.pos.y, other.pos.y + other.size.y - 1)
|| between(pos.y + size.y - 1, other.pos.y,
other.pos.y + other.size.y - 1));
MONS: Orb Guardian, Killer Klown, electric golem, orb of fire, ancient lich
MONS: orange crystal statue / silver statue / ice statue
MONS: patrolling Orb Guardian, Killer Klown, electric golem, orb of fire
MONS: ancient lich, orange crystal statue / silver statue / ice statue