git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@1255 c06c8d41-db1a-0410-9941-cceddc491573
3XZOL3FFQZITUJIGDD6B6V6ZYMBN524JKNN6ZPJAXEC7RY433I3QC 3LGOU6N53GZ2QSPWL7Y74JGIY7BDNBJHLNQAOGUDJNMFCKO7IZ2QC K2CS6TCX2NDVL2ASEHGP4J4K4IJ6FP3ANNKTSIWVG43HPYSBX6ZQC RPOZZWKG5GLPHVZZ7ZKMKS64ZMV2LDCQSARBJFJ6FZOTOKCQO7FAC KCHX2F3JFEWOZT3WMJVZAAQUU2QSZ5Q7RDCD7WUJ7VE65J52JFUQC 6QWZDCP5HGYLTJO3WWYJJGRRT7QFY6IG64TC7TUB553Z7GAA2HIQC 5UVDIVD4NSXA52U4QMQIVST3GSZJ2A2YZK3RUEXKPM43YVQ7LI5AC MSQI3TH6T62JAXQGLL52QZCWAMC372TGB6ZNNRDGUGMJKBNNV2VAC SH6NU4H5TG4O7CRXRHZ7MDHABZLWWXQ77NJDBHI7KCVHXHQYK46QC 34C4U6EQWERY75GZJKUCM5KVGU2OUICETS5LGZF6RMKMZT4R5SQAC static int builder_by_type(int level_number, char level_type);static int builder_by_branch(int level_number);static int builder_normal(int level_number, char level_type, spec_room &s);static int builder_basic(int level_number);
static builder_rc_type builder_by_type(int level_number, char level_type);static builder_rc_type builder_by_branch(int level_number);static builder_rc_type builder_normal(int level_number, char level_type, spec_room &s);static builder_rc_type builder_basic(int level_number);
int skip_build = builder_by_type(level_number, level_type);if (skip_build < 0)
builder_rc_type skip_build = builder_by_type(level_number, level_type);if (skip_build == BUILD_QUIT) // quit immediately
// Try to place minivaults that really badly want to be placed. Still// no guarantees, seeing this is a minivault.place_special_minivaults(level_number, level_type);// hook up the special room (if there is one, and it hasn't// been hooked up already in roguey_level()if (sr.created && !sr.hooked_up)specr_2(sr);// now place items, monster, gates, etc.// stairs must exist by this point. Some items and monsters// already exist.// time to make the swamp {dlb}:if (player_in_branch( BRANCH_SWAMP ))prepare_swamp();
if (mon_wanted > 60)mon_wanted = 60;
if (player_in_hell())mon_wanted += roll_dice( 3, 8 );else if (player_in_branch( BRANCH_HALL_OF_BLADES ))mon_wanted += roll_dice( 6, 8 );// unlikely - now only possible in HoB {dlb} 10mar2000if (mon_wanted > 60)mon_wanted = 60;}place_branch_entrances( level_number, level_type );check_doors();if (!player_in_branch( BRANCH_DIS ) && !player_in_branch( BRANCH_VAULTS ))hide_doors();if (!player_in_branch( BRANCH_ECUMENICAL_TEMPLE ))place_traps(level_number);int items_wanted = 3 + roll_dice( 3, 11 );if (level_number > 5 && one_chance_in(500 - 5 * level_number))items_wanted = 10 + random2avg( 90, 2 ); // rich level!// change pre-rock (105) to rock, and pre-floor (106) to floorreplace_area( 0,0,GXM-1,GYM-1, DNGN_BUILDER_SPECIAL_WALL, DNGN_ROCK_WALL );replace_area( 0,0,GXM-1,GYM-1, DNGN_BUILDER_SPECIAL_FLOOR, DNGN_FLOOR );// place itemsbuilder_items(level_number, level_type, items_wanted);// place monstersbuilder_monsters(level_number, level_type, mon_wanted);// place shops, if appropriateif (player_in_branch( BRANCH_MAIN_DUNGEON )|| player_in_branch( BRANCH_ORCISH_MINES )|| player_in_branch( BRANCH_ELVEN_HALLS )|| player_in_branch( BRANCH_LAIR )|| player_in_branch( BRANCH_VAULTS )|| player_in_branch( BRANCH_SNAKE_PIT )|| player_in_branch( BRANCH_SWAMP )){place_shops(level_number);}
static void fixup_walls(){
reset_level();build_layout_skeleton(level_number, level_type, sr);if (you.level_type == LEVEL_LABYRINTH)return;// Try to place minivaults that really badly want to be placed. Still// no guarantees, seeing this is a minivault.place_special_minivaults(level_number, level_type);// hook up the special room (if there is one, and it hasn't// been hooked up already in roguey_level()if (sr.created && !sr.hooked_up)specr_2(sr);// now place items, monster, gates, etc.// stairs must exist by this point. Some items and monsters// already exist.// time to make the swamp {dlb}:if (player_in_branch( BRANCH_SWAMP ))prepare_swamp();place_branch_entrances( level_number, level_type );check_doors();if (!player_in_branch( BRANCH_DIS ) && !player_in_branch( BRANCH_VAULTS ))hide_doors();if (!player_in_branch( BRANCH_ECUMENICAL_TEMPLE ))place_traps(level_number);int items_wanted = 3 + roll_dice( 3, 11 );if (level_number > 5 && one_chance_in(500 - 5 * level_number))items_wanted = 10 + random2avg( 90, 2 ); // rich level!// change pre-rock (105) to rock, and pre-floor (106) to floorreplace_area( 0,0,GXM-1,GYM-1, DNGN_BUILDER_SPECIAL_WALL, DNGN_ROCK_WALL );replace_area( 0,0,GXM-1,GYM-1, DNGN_BUILDER_SPECIAL_FLOOR, DNGN_FLOOR );// place itemsbuilder_items(level_number, level_type, items_wanted);// place monstersbuilder_monsters(level_number, level_type, num_mons_wanted(level_type));// place shops, if appropriateif ( branches[(int)you.where_are_you].has_shops )place_shops(level_number);fixup_walls();fixup_branch_stairs();if (player_in_branch( BRANCH_CRYPT )){if (one_chance_in(3))mons_place( MONS_CURSE_SKULL, BEH_SLEEP, MHITNOT, false, 0, 0 );if (one_chance_in(7))mons_place( MONS_CURSE_SKULL, BEH_SLEEP, MHITNOT, false, 0, 0 );}place_altars();
&& !player_in_hell()&& !player_in_branch( BRANCH_ORCISH_MINES )&& !player_in_branch( BRANCH_HIVE )&& !player_in_branch( BRANCH_LAIR )&& !player_in_branch( BRANCH_SLIME_PITS )&& !player_in_branch( BRANCH_ECUMENICAL_TEMPLE ))
&& branches[(int)you.where_are_you].has_uniques)