summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/mutation.cc
diff options
context:
space:
mode:
Diffstat (limited to 'crawl-ref/source/mutation.cc')
-rw-r--r--crawl-ref/source/mutation.cc20
1 files changed, 11 insertions, 9 deletions
diff --git a/crawl-ref/source/mutation.cc b/crawl-ref/source/mutation.cc
index 3a65ec0694..a09ee6313f 100644
--- a/crawl-ref/source/mutation.cc
+++ b/crawl-ref/source/mutation.cc
@@ -1524,7 +1524,8 @@ bool mutate(mutation_type which_mutation, bool failMsg, bool force_mutation,
return (false);
}
- if (which_mutation == RANDOM_MUTATION)
+ if (which_mutation == RANDOM_MUTATION
+ || which_mutation == RANDOM_XOM_MUTATION)
{
if ( random2(15) < how_mutated() )
{
@@ -1533,15 +1534,16 @@ bool mutate(mutation_type which_mutation, bool failMsg, bool force_mutation,
else
return (delete_mutation(RANDOM_MUTATION));
}
- else
+ }
+
+ if (which_mutation == RANDOM_MUTATION)
+ {
+ do
{
- do
- {
- mutat = static_cast<mutation_type>(random2(NUM_MUTATIONS));
- if (one_chance_in(1000))
- return false;
- } while ( !accept_mutation(mutat) );
- }
+ mutat = static_cast<mutation_type>(random2(NUM_MUTATIONS));
+ if (one_chance_in(1000))
+ return false;
+ } while ( !accept_mutation(mutat) );
}
else if (which_mutation == RANDOM_XOM_MUTATION)
{