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/docs/level_design.txt | 4 ++++ crawl-ref/source/dat/levdes.vim | 2 +- crawl-ref/source/dungeon.cc | 5 ++++- crawl-ref/source/dungeon.h | 3 ++- 4 files changed, 11 insertions(+), 3 deletions(-) (limited to 'crawl-ref') diff --git a/crawl-ref/docs/level_design.txt b/crawl-ref/docs/level_design.txt index 262e52f173..20e8cb1c26 100644 --- a/crawl-ref/docs/level_design.txt +++ b/crawl-ref/docs/level_design.txt @@ -420,6 +420,10 @@ TAGS: Tags go an a TAGS: line and are space-separated. You can have several Can be applied only to particular symbols with KMASK. * "no_pool_fixup": prevents water squares next to land from being randomly converted from deep water (the default) to shallow. + * "no_wall_fixup": In Dis, the Vaults and the Crypt a vault's + rock walls will be changed to be the same as the wall type of + the rest of the level. If you don't want that to happen then + use this tag. * "uniq_BAR": (uniq_ with any suffix) specifies that only one of the vaults with this tag can be used in a game. * "luniq": specifies that this vault can be used only once on a 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