diff options
author | dshaligram <dshaligram@c06c8d41-db1a-0410-9941-cceddc491573> | 2007-11-17 18:28:35 +0000 |
---|---|---|
committer | dshaligram <dshaligram@c06c8d41-db1a-0410-9941-cceddc491573> | 2007-11-17 18:28:35 +0000 |
commit | 64ec0ec52abbb5729f5a01aa674325a30c2f21a0 (patch) | |
tree | 7e1b41455e94d79c033e4f42baa55bf9b324d3e6 /crawl-ref/source/mutation.cc | |
parent | 7665b1aa4c0c0118b3de1679969c8e25942408ed (diff) | |
download | crawl-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.cc | 20 |
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) { |