diff options
author | zelgadis <zelgadis@c06c8d41-db1a-0410-9941-cceddc491573> | 2007-10-05 07:05:22 +0000 |
---|---|---|
committer | zelgadis <zelgadis@c06c8d41-db1a-0410-9941-cceddc491573> | 2007-10-05 07:05:22 +0000 |
commit | 16bfc009e44684b7c3f0dc29febdfbb54ae7a2f3 (patch) | |
tree | 9a8f954685c7504159d7d75ca451a4e8bc117147 /crawl-ref/source/dungeon.cc | |
parent | 1db9c68406e0892e1ac7331dfd3b412b31741cb7 (diff) | |
download | crawl-ref-16bfc009e44684b7c3f0dc29febdfbb54ae7a2f3.tar.gz crawl-ref-16bfc009e44684b7c3f0dc29febdfbb54ae7a2f3.zip |
Oops, was calling dgn_set_floor_colours() in wrong place, leading to some
levels getting the wrong colours. Also, make dgn_set_colours_from_monsters()
be paranoid about improprely set up env.mons_alloc[].
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@2329 c06c8d41-db1a-0410-9941-cceddc491573
Diffstat (limited to 'crawl-ref/source/dungeon.cc')
-rw-r--r-- | crawl-ref/source/dungeon.cc | 25 |
1 files changed, 20 insertions, 5 deletions
diff --git a/crawl-ref/source/dungeon.cc b/crawl-ref/source/dungeon.cc index 118f960e15..66a8cf0795 100644 --- a/crawl-ref/source/dungeon.cc +++ b/crawl-ref/source/dungeon.cc @@ -277,6 +277,7 @@ bool builder(int level_number, int level_type) use_random_maps = false; build_dungeon_level(level_number, level_type); + dgn_set_floor_colours(); #ifdef DEBUG_DIAGNOSTICS if (dgn_level_vetoed) @@ -630,6 +631,9 @@ static void reset_level() for (int i = 0; i < MAX_MONSTERS; i++) menv[i].type = -1; + for (int i = 0; i < 20; i++) + env.mons_alloc[i] = -1; + mgrd.init(NON_MONSTER); igrd.init(NON_ITEM); @@ -852,7 +856,6 @@ static void build_dungeon_level(int level_number, int level_type) || you.level_type == LEVEL_PORTAL_VAULT || dgn_level_vetoed) { - dgn_set_floor_colours(); return; } @@ -927,8 +930,6 @@ static void build_dungeon_level(int level_number, int level_type) // Translate stairs for pandemonium levels: if (level_type == LEVEL_PANDEMONIUM) fixup_pandemonium_stairs(); - - dgn_set_floor_colours(); } // end builder() @@ -942,8 +943,22 @@ static char fix_black_colour(char incol) void dgn_set_colours_from_monsters() { - env.floor_colour = fix_black_colour(mcolour[env.mons_alloc[9]]); - env.rock_colour = fix_black_colour(mcolour[env.mons_alloc[8]]); + if (env.mons_alloc[9] < 0 || env.mons_alloc[9] == MONS_PROGRAM_BUG + || env.mons_alloc[9] >= NUM_MONSTERS) + { + env.floor_colour = LIGHTGREY; + } + else + env.floor_colour = fix_black_colour(mcolour[env.mons_alloc[9]]); + + + if (env.mons_alloc[8] < 0 || env.mons_alloc[8] == MONS_PROGRAM_BUG + || env.mons_alloc[8] >= NUM_MONSTERS) + { + env.rock_colour = BROWN; + } + else + env.rock_colour = fix_black_colour(mcolour[env.mons_alloc[8]]); } static void dgn_set_floor_colours() |