summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/mutation.cc
diff options
context:
space:
mode:
authordshaligram <dshaligram@c06c8d41-db1a-0410-9941-cceddc491573>2007-11-17 18:28:35 +0000
committerdshaligram <dshaligram@c06c8d41-db1a-0410-9941-cceddc491573>2007-11-17 18:28:35 +0000
commit64ec0ec52abbb5729f5a01aa674325a30c2f21a0 (patch)
tree7e1b41455e94d79c033e4f42baa55bf9b324d3e6 /crawl-ref/source/mutation.cc
parent7665b1aa4c0c0118b3de1679969c8e25942408ed (diff)
downloadcrawl-ref-64ec0ec52abbb5729f5a01aa674325a30c2f21a0.tar.gz
crawl-ref-64ec0ec52abbb5729f5a01aa674325a30c2f21a0.zip
Fixed buggy Xom mutation handling.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@2863 c06c8d41-db1a-0410-9941-cceddc491573
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)
{