From a792e2a40b177ed0bc4bb31c40be1b6a5af9bae9 Mon Sep 17 00:00:00 2001 From: zelgadis Date: Tue, 23 Dec 2008 01:49:34 +0000 Subject: Possibly detect and work around bug #2455248: if a map for a specific place (e.g., Slime:6) tries to place a unique monster which has already been generated elsewhere then force it to be placed anyways and give an error message. git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@7913 c06c8d41-db1a-0410-9941-cceddc491573 --- crawl-ref/source/dungeon.cc | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'crawl-ref/source/dungeon.cc') diff --git a/crawl-ref/source/dungeon.cc b/crawl-ref/source/dungeon.cc index 3a43bfe349..f831d7254d 100644 --- a/crawl-ref/source/dungeon.cc +++ b/crawl-ref/source/dungeon.cc @@ -5034,7 +5034,23 @@ static void _vault_grid( vault_placement &place, monster_level = 30; if (vgrid != '8' && vgrid != '9' && vgrid != '0') + { monster_type_thing = place.map.mons.get_monster(vgrid - '1'); + // Is a map for a specific place trying to place a unique which + // somehow already got created? + if (place.map.place.is_valid() + && !invalid_monster_class(monster_type_thing.mid) + && mons_is_unique(monster_type_thing.mid) + && you.unique_creatures[monster_type_thing.mid]) + { + mprf(MSGCH_ERROR, "ERROR: %s already generated somewhere " + "else; please file a bug report.", + mons_type_name(monster_type_thing.mid, + DESC_CAP_THE).c_str()); + // Force it to be generated anyways. + you.unique_creatures[monster_type_thing.mid] = false; + } + } _dgn_place_monster(place, monster_type_thing, monster_level, where); } -- cgit v1.2.3-54-g00ecf