summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordshaligram <dshaligram@c06c8d41-db1a-0410-9941-cceddc491573>2006-12-15 07:25:34 +0000
committerdshaligram <dshaligram@c06c8d41-db1a-0410-9941-cceddc491573>2006-12-15 07:25:34 +0000
commit03b3a2e419e1a6c9dd44211756abd47331fe0880 (patch)
tree5134a12cac0da445cfd28ec887b84863f37d3e40
parent8237492467b84eeb29b96b2f15278eff2423915b (diff)
downloadcrawl-ref-03b3a2e419e1a6c9dd44211756abd47331fe0880.tar.gz
crawl-ref-03b3a2e419e1a6c9dd44211756abd47331fe0880.zip
Fix Pan demonlords getting the wrong runes for 0.1.6.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/branches/stone_soup-0.1.6@633 c06c8d41-db1a-0410-9941-cceddc491573
-rw-r--r--crawl-ref/source/dungeon.cc35
1 files changed, 22 insertions, 13 deletions
diff --git a/crawl-ref/source/dungeon.cc b/crawl-ref/source/dungeon.cc
index 011b46444b..8944413aef 100644
--- a/crawl-ref/source/dungeon.cc
+++ b/crawl-ref/source/dungeon.cc
@@ -145,11 +145,12 @@ static void jelly_pit(int level_number, spec_room &sr);
// VAULT FUNCTIONS
static void build_vaults(int level_number, int vault_number);
static void build_minivaults(int level_number, int force_vault);
-static int vault_grid( int level_number, int vx, int vy, int altar_count,
+static int vault_grid( const vault_placement &place,
+ int level_number, int vx, int vy, int altar_count,
FixedVector < char, 7 > &acq_item_class,
FixedVector < int, 7 > &mons_array,
char vgrid, int &initial_x, int &initial_y,
- int force_vault, int &num_runes );
+ int &num_runes );
// ALTAR FUNCTIONS
static int pick_an_altar(void);
@@ -5284,10 +5285,11 @@ static void build_minivaults(int level_number, int force_vault)
{
for (vy = v1y; vy < v1y + place.height; vy++)
{
- altar_count = vault_grid( level_number, vx, vy, altar_count,
+ altar_count = vault_grid( place,
+ level_number, vx, vy, altar_count,
acq_item_class, mons_array,
grd[vx][vy], initial_x, initial_y,
- force_vault, num_runes );
+ num_runes );
}
}
} // end build_minivaults()
@@ -5351,10 +5353,10 @@ static void build_vaults(int level_number, int force_vault)
{
for (vy = 0; vy < GYM; vy++)
{
- altar_count = vault_grid( level_number, vx, vy, altar_count,
+ altar_count = vault_grid( place, level_number, vx, vy, altar_count,
acq_item_class, mons_array,
vgrid[vy][vx], initial_x, initial_y,
- force_vault, num_runes );
+ num_runes );
}
}
@@ -5545,11 +5547,12 @@ static void build_vaults(int level_number, int force_vault)
// returns altar_count - seems rather odd to me to force such a return
// when I believe the value is only used in the case of the ecumenical
// temple - oh, well... {dlb}
-static int vault_grid( int level_number, int vx, int vy, int altar_count,
+static int vault_grid( const vault_placement &place,
+ int level_number, int vx, int vy, int altar_count,
FixedVector < char, 7 > &acq_item_class,
FixedVector < int, 7 > &mons_array,
char vgrid, int &initial_x, int &initial_y,
- int force_vault, int &num_runes)
+ int &num_runes)
{
int not_used;
@@ -5662,14 +5665,20 @@ static int vault_grid( int level_number, int vx, int vy, int altar_count,
if (you.level_type == LEVEL_PANDEMONIUM)
{
- if (force_vault >= 60 && force_vault <= 63)
- spec = force_vault;
+ if (place.map->has_tag("mnoleg"))
+ spec = RUNE_MNOLEG;
+ else if (place.map->has_tag("lom_lobon"))
+ spec = RUNE_LOM_LOBON;
+ else if (place.map->has_tag("gloorx_vloq"))
+ spec = RUNE_GLOORX_VLOQ;
+ else if (place.map->has_tag("cerebov"))
+ spec = RUNE_CEREBOV;
else
- spec = 50;
+ spec = RUNE_DEMONIC;
}
else if (you.level_type == LEVEL_ABYSS)
- spec = 51;
- else
+ spec = RUNE_ABYSSAL;
+ else
spec = you.where_are_you;
}