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;