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 etcOf 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 lichMONS: orange crystal statue / silver statue / ice statue
MONS: patrolling Orb Guardian, Killer Klown, electric golem, orb of fireMONS: ancient lich, orange crystal statue / silver statue / ice statue