From 86dc398a7beae94fc5a6be15143a6a50d500c916 Mon Sep 17 00:00:00 2001 From: zelgadis Date: Thu, 1 Jan 2009 04:38:06 +0000 Subject: Bug #2025033: To prevent a vault's rock walls from being changed to match the walls of the rest of the level in the Vaults, the Crypt and in Dis you can use the tag no_wall_fixup git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@8073 c06c8d41-db1a-0410-9941-cceddc491573 --- crawl-ref/source/dat/levdes.vim | 2 +- crawl-ref/source/dungeon.cc | 5 ++++- crawl-ref/source/dungeon.h | 3 ++- 3 files changed, 7 insertions(+), 3 deletions(-) (limited to 'crawl-ref/source') diff --git a/crawl-ref/source/dat/levdes.vim b/crawl-ref/source/dat/levdes.vim index 7a72d236a2..c64caf7580 100644 --- a/crawl-ref/source/dat/levdes.vim +++ b/crawl-ref/source/dat/levdes.vim @@ -55,7 +55,7 @@ syn keyword desDeclarator NAME: ORIENT: DEPTH: PLACE: MONS: FLAGS: default-depth syn keyword desOrientation encompass north south east west northeast northwest southeast southwest float syn keyword desOrientation no_hmirror no_vmirror no_rotate syn keyword desOrientation entry pan lab bazaar allow_dup dummy mini_float minotaur -syn keyword desOrientation no_pool_fixup no_monster_gen generate_awake no_item_gen no_tele_control not_mappable no_magic_map no_secret_doors generate_loot +syn keyword desOrientation no_pool_fixup no_wall_fixup no_monster_gen generate_awake no_item_gen no_tele_control not_mappable no_magic_map no_secret_doors generate_loot syn keyword desOrientation Temple Orc Elf Lair Swamp Shoal Slime Snake Hive Vault Blade Crypt Tomb Hell Dis Geh Coc Tar syn keyword desOrientation D: contained diff --git a/crawl-ref/source/dungeon.cc b/crawl-ref/source/dungeon.cc index b16ec0e371..b9eaf73704 100644 --- a/crawl-ref/source/dungeon.cc +++ b/crawl-ref/source/dungeon.cc @@ -774,6 +774,9 @@ void dgn_register_place(const vault_placement &place, bool register_vault) if (place.map.has_tag("no_pool_fixup")) _mask_vault(place, MMT_NO_POOL); + if (place.map.has_tag("no_wall_fixup")) + _mask_vault(place, MMT_NO_WALL); + if (!place.map.has_tag("transparent")) _mask_vault(place, MMT_OPAQUE); @@ -1076,7 +1079,7 @@ static void _fixup_walls() vault_wall = DNGN_STONE_WALL; } - _replace_area(0,0,GXM-1,GYM-1,DNGN_ROCK_WALL,vault_wall); + _replace_area(0,0,GXM-1,GYM-1,DNGN_ROCK_WALL,vault_wall,MMT_NO_WALL); } } diff --git a/crawl-ref/source/dungeon.h b/crawl-ref/source/dungeon.h index 04c84cdfd3..02d5c05fac 100644 --- a/crawl-ref/source/dungeon.h +++ b/crawl-ref/source/dungeon.h @@ -49,7 +49,8 @@ enum map_mask_type MMT_NO_MONS = 0x04, // Random monsters should not be placed here. MMT_NO_POOL = 0x08, // Pool fixup should not be applied here. MMT_NO_DOOR = 0x10, // No secret-doorisation. - MMT_OPAQUE = 0x20 // Vault may impede connectivity. + MMT_NO_WALL = 0x20, // Wall fixup should not be applied here. + MMT_OPAQUE = 0x40 // Vault may impede connectivity. }; class dgn_region; -- cgit v1.2.3-54-g00ecf