summaryrefslogtreecommitdiffstats
path: root/crawl-ref
diff options
context:
space:
mode:
authordolorous <dolorous@c06c8d41-db1a-0410-9941-cceddc491573>2009-03-08 00:12:21 +0000
committerdolorous <dolorous@c06c8d41-db1a-0410-9941-cceddc491573>2009-03-08 00:12:21 +0000
commitff81fe1844a5f0e0ebb7d3f91ffb9d9e92637e29 (patch)
tree111ba004414c151cfeadf0cd9e74394051801ede /crawl-ref
parent43c5095baf88dd12236616009273f6fd787d6ded (diff)
downloadcrawl-ref-ff81fe1844a5f0e0ebb7d3f91ffb9d9e92637e29.tar.gz
crawl-ref-ff81fe1844a5f0e0ebb7d3f91ffb9d9e92637e29.zip
Consolidate routines for picking a random draconian monster species.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@9374 c06c8d41-db1a-0410-9941-cceddc491573
Diffstat (limited to 'crawl-ref')
-rw-r--r--crawl-ref/source/mon-util.cc40
-rw-r--r--crawl-ref/source/newgame.cc8
2 files changed, 27 insertions, 21 deletions
diff --git a/crawl-ref/source/mon-util.cc b/crawl-ref/source/mon-util.cc
index 9dfcfe71d9..41f6192500 100644
--- a/crawl-ref/source/mon-util.cc
+++ b/crawl-ref/source/mon-util.cc
@@ -714,16 +714,16 @@ monster_type draco_subspecies(const monsters *mon)
switch (mon->colour)
{
case RED:
- return MONS_RED_DRACONIAN;
+ return (MONS_RED_DRACONIAN);
case WHITE:
- return MONS_WHITE_DRACONIAN;
+ return (MONS_WHITE_DRACONIAN);
case BLUE: // black
case DARKGREY:
- return MONS_BLACK_DRACONIAN;
+ return (MONS_BLACK_DRACONIAN);
case GREEN:
- return MONS_GREEN_DRACONIAN;
+ return (MONS_GREEN_DRACONIAN);
case MAGENTA:
- return MONS_PURPLE_DRACONIAN;
+ return (MONS_PURPLE_DRACONIAN);
default:
break;
}
@@ -732,7 +732,7 @@ monster_type draco_subspecies(const monsters *mon)
monster_type ret = mons_species(mon->type);
if (ret == MONS_DRACONIAN && mon->type != MONS_DRACONIAN)
- ret = static_cast<monster_type>( mon->base_monster );
+ ret = static_cast<monster_type>(mon->base_monster);
return (ret);
}
@@ -1708,6 +1708,12 @@ void mons_load_spells( monsters *mon, mon_spellbook_type book )
mon->load_spells(book);
}
+static monster_type _random_draconian_monster_species()
+{
+ const int num_drac = MONS_PALE_DRACONIAN - MONS_BLACK_DRACONIAN + 1;
+ return static_cast<monster_type>(SP_BLACK_DRACONIAN + random2(num_drac));
+}
+
void define_monster(int index)
{
define_monster(menv[index]);
@@ -1803,7 +1809,7 @@ void define_monster(monsters &mons)
case MONS_DEEP_ELF_CONJURER:
spells =
- (coinflip()? MST_DEEP_ELF_CONJURER_I : MST_DEEP_ELF_CONJURER_II);
+ (coinflip() ? MST_DEEP_ELF_CONJURER_I : MST_DEEP_ELF_CONJURER_II);
break;
case MONS_BUTTERFLY:
@@ -1838,11 +1844,11 @@ void define_monster(monsters &mons)
// White draconians will never be draconian scorchers, but
// apart from that, anything goes.
do
- monbase =
- static_cast<monster_type>(MONS_BLACK_DRACONIAN + random2(8));
+ monbase = _random_draconian_monster_species();
while (drac_colour_incompatible(mcls, monbase));
break;
}
+
case MONS_DRACONIAN_KNIGHT:
{
temp_rand = random2(10);
@@ -1857,7 +1863,7 @@ void define_monster(monsters &mons)
: MST_DEEP_ELF_CONJURER_II);
}
- monbase = static_cast<monster_type>(MONS_BLACK_DRACONIAN + random2(8));
+ monbase = _random_draconian_monster_species();
break;
}
@@ -1871,8 +1877,8 @@ void define_monster(monsters &mons)
break;
default:
- if (mons_is_mimic( mcls ))
- col = get_mimic_colour( &mons );
+ if (mons_is_mimic(mcls))
+ col = get_mimic_colour(&mons);
break;
}
@@ -1883,8 +1889,8 @@ void define_monster(monsters &mons)
spells = m->sec;
// Some calculations.
- hp = hit_points(hd, m->hpdice[1], m->hpdice[2]);
- hp += m->hpdice[3];
+ hp = hit_points(hd, m->hpdice[1], m->hpdice[2]);
+ hp += m->hpdice[3];
hp_max = hp;
// So let it be written, so let it be done.
@@ -1902,11 +1908,11 @@ void define_monster(monsters &mons)
if (mons.number == 0)
mons.number = monnumber;
- mons.flags = 0L;
+ mons.flags = 0L;
mons.experience = 0L;
- mons.colour = col;
+ mons.colour = col;
- mons_load_spells( &mons, spells );
+ mons_load_spells(&mons, spells);
// Reset monster enchantments.
mons.enchantments.clear();
diff --git a/crawl-ref/source/newgame.cc b/crawl-ref/source/newgame.cc
index db063392ed..165cce0cc1 100644
--- a/crawl-ref/source/newgame.cc
+++ b/crawl-ref/source/newgame.cc
@@ -155,9 +155,9 @@ static species_type new_species_order[] = {
SP_VAMPIRE
};
-static species_type _random_draconian_species()
+static species_type _random_draconian_player_species()
{
- const int num_drac = SP_BASE_DRACONIAN - SP_RED_DRACONIAN;
+ const int num_drac = SP_PALE_DRACONIAN - SP_RED_DRACONIAN + 1;
return static_cast<species_type>(SP_RED_DRACONIAN + random2(num_drac));
}
@@ -610,7 +610,7 @@ static void _pick_random_species_and_class( bool unrestricted_only )
// Return draconian variety here.
if (species == SP_RED_DRACONIAN)
- you.species = _random_draconian_species();
+ you.species = _random_draconian_player_species();
else
you.species = species;
@@ -1196,7 +1196,7 @@ game_start:
// Pick random draconian type.
if (you.species == SP_RED_DRACONIAN)
- you.species = _random_draconian_species();
+ you.species = _random_draconian_player_species();
strcpy( you.class_name, get_class_name(you.char_class) );