I've marked these characters with GDT_GAME_START, so that
Once the player returns to the Dungeon (via an exit or with Lugonu's first power) char_direction is properly set to GDT_DESCENDING and from then on the game continues as if they had started in the Dungeon.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@6245 c06c8d41-db1a-0410-9941-cceddc491573
RWSXCNYUGDSMP2GKN22HROC5Q2GHSAVJJUDRT3Z53WU2DAI4IZOQC T6HIHZTSKZ2W2P5ADH37CFU6REFSO53OVGMPMMH3PBVZHKTK5H7QC AXB2FZCJPA5YETYDCAEQ7ZS5HBT2KAS4NBVUVWKH5TQJI2O2DMVQC PO3IATZV4JX3I3522UAGF53ZLZ4FW7C2J32Z23PEWQVHGGEUO7SAC VQD5BW56OTUNPILMCASXZ6YZ3OQGXKQ7CSNDMNZUX72AQZXKOE3QC K2CS6TCX2NDVL2ASEHGP4J4K4IJ6FP3ANNKTSIWVG43HPYSBX6ZQC 6YE7VMQJZ633V2FJFP2JQC5R37MMOBPE2PVIZWW7VYAO6BOJB73AC DOZORMA366M4HB5JKSS27BMCR6ET7QNZNND2B7KV3NVEEPR5H7EAC WQIEW3O4MANA2KKYRUWEZP44KHVJ4RRHEZTDXSF4EDELX66LO26QC 3FRPKD2JSN7RA2HKWAO3XV7MMKCIAMWIMU6JNJ452VZEUSXM6PWQC JDM5R3HYGXKQKZWY35QZ2KOB24TFZ3FW2PCNXCRCMWG72AZC5ZXQC SDLKLUNFGVKDS55DDJZCBAVIB7NL3RRYPTACAY65SCUQKV6APFSAC CQ24AVAI6SW3AHTIDMLPSTRRBEU6FHRF5I5FD6G5QIYE6PO4BQMQC KFULGQQOHWUTXOM3BXCCYPGGVGGY4Z6265XUFRCBPNLTZAEHJZSQC BW3XFNOS6LDAQLHOZ6RXARCMKCY5JVLVDSXDSSAX4DSYM3FANQBAC BPSH3LUDUTXMK2QZKSMFDTBNDD6HPILMCBLZNMCRLZZQKPS5QOQQC IVVRQ52VA3MAD25ZMPID3GCRBBFYR54CH33DKXYTRAGUBLTRAZNAC 6TEISZD7HYSSL24EOKIBNURU66KGSQX7B7SNAHBP4DQSAOTGH2MQC 5BJPWUPLJFS34FUTFJVKA4A52YMIGV6EWDXLNSDCWBJWBGVSQFGQC DTO3EUKWHZ5RJNGNCFYXSOVTIPVXPP637F2W7WFGYKJ7JK7VNKNQC Q3DNEB5OOJ34P5ML4CMK3L6SCP7RLW7DDOZEG24KZBX3C7BJRQDAC O6ZMFKDI3XO2SWPNEYHIPYFDWJR4TVDP5BAATK6LVCVETQID6E7AC RPOZZWKG5GLPHVZZ7ZKMKS64ZMV2LDCQSARBJFJ6FZOTOKCQO7FAC 74LQ7JXVLAFSHLI7LCBKFX47CNTYSKGUQSXNX5FCIUIGCC2JTR3QC ZJLJGSB2XSBQU42OFQMXL3EG4CXAQGOYAU6YTV2SAWZEJIPFH2CAC F2ZJ55CL3T66DFM34BQWCJNHIT4XJFCGTWTA5KESV6NHWFLTGUYAC 7AMQN7MITMXBNVDAK5VOXTQ4TZIAOD6ZLOFJG7GQMBTY23Y2BKSAC XYBPIU6AQ77EID4VNOMI7KQZULZI4VBZHHIGBRYO7QRJVCODEKYAC AVCMVFA3MKCXHO6H44UK5KJNIHTGQV7UA7GYXM26VI6TXXU5ZN6QC GQL5SIGBHLU3FMCE54XVGLRY5AZHRM6DUEB722REA2DPLGJSN6EQC SCWXQW5H65OXUP2MEJ2MEEAVPSRJDT3RQGKYCMKVTORS2334PQSQC 3PY3L3A4QRW3Z5Y7SHO4TMVOOP2VNCO27X2MX4DTOP2SADLBQUOAC K2MLPJIAXXZRWEWZCNSGICCBNIU2WAAPT7SPIMOH7FLLTOB4QFRAC ZGUJWUFJ4NFFJ6PGXLFGQWCWBCZHPWGWI44NJHJEVPRG5L36PADQC UEI5JAVCMN7Y2SACTEZPZSNFJWOJTC55G24Q6LKQCT4XNDH5ZQIAC VIFZ6DO6GWJGYMXJZKFZ2JYNPHNE74H3OFAOCPISQG7M7A4LCOHAC 5HJJGIOOIIQNCRIL33ZQAY6S57MPTSTG27UETJW3HE3BUUPUKPQAC YF2GZWXNV6NVFFEBEOYS67JQJQK2IUS5BZMGJW3XQPYIJYHQJCEQC PTTMNNTIGICZAIGUYMYVUJ5CRBIDVTY5BQCMJAY3OBDDGH3N6M2QC ILOED4VB4I6VPAUTR75ZWX6MXDYXB5DO2EDK2UH67O3HNKWV23RQC SLDR32H45VDN74AVZ2JDPLNK7AZWXDS2YRTLMGK7E3FYW6OWOFJAC 7VVRO5HMNNOXVRLBLJUCHUJP6MDIRMC2BWCO7MWH4OLQRM3LMTMQC LOJYD6QZRNLNDDZJKVBMKQIBPTKSRN2ETCYGNVV47M7L3QLUJUJAC OTADS6FRT25MVJ3NVA2XBFFX22JS6C6F3IAJBG3OAHYFYTLMYUIAC builder( you.your_level, you.level_type );
if (you.char_direction == GDT_GAME_START&& you.level_type == LEVEL_DUNGEON){// If we're leaving the Abyss for the first time as a Chaos Knight// of Lugonu (who start out there), force a return into the first// dungeon level and enable normal monster generation.you.your_level = 0;you.char_direction = GDT_DESCENDING;}builder(you.your_level, you.level_type);
grd[45][35] = DNGN_FLOOR;if (one_chance_in(5))
// If we're starting out in the Abyss, make sure the starting grid is// an altar to Lugonu and there's an exit near-by.// Otherwise, we start out on floor and there's a chance there's an// altar near-by.if (you.char_direction == GDT_GAME_START)
thing_created = items(1, OBJ_RANDOM,OBJ_RANDOM, true, 51, 250);
if (you.char_direction == GDT_GAME_START){// Number and level of items as that on level 1.const int num_items = 3 + roll_dice( 3, 11 );const int items_level = 0;thing_created = items(1, OBJ_RANDOM, OBJ_RANDOM,true, items_level, num_items);}else{thing_created = items(1, OBJ_RANDOM,OBJ_RANDOM, true, 51, 250);}
grd[i][j] = static_cast<dungeon_feature_type>(DNGN_ALTAR_ZIN + random2(NUM_GODS-1) );}while (grd[i][j] == DNGN_ALTAR_ZIN|| grd[i][j] == DNGN_ALTAR_SHINING_ONE|| grd[i][j] == DNGN_ALTAR_ELYVILON);
do{grd[i][j] = static_cast<dungeon_feature_type>(DNGN_ALTAR_ZIN + random2(NUM_GODS-1) );}while (grd[i][j] == DNGN_ALTAR_ZIN|| grd[i][j] == DNGN_ALTAR_SHINING_ONE|| grd[i][j] == DNGN_ALTAR_ELYVILON);
// Lugonu has a flat 50% chance of corrupting the altar.if (coinflip())grd[i][j] = DNGN_ALTAR_LUGONU;
// Lugonu has a flat 50% chance of corrupting the altar.if (coinflip())grd[i][j] = DNGN_ALTAR_LUGONU;