diff options
author | dshaligram <dshaligram@c06c8d41-db1a-0410-9941-cceddc491573> | 2007-11-17 18:33:26 +0000 |
---|---|---|
committer | dshaligram <dshaligram@c06c8d41-db1a-0410-9941-cceddc491573> | 2007-11-17 18:33:26 +0000 |
commit | 6f8e02bb67c56908d9dbaf3edb285a21bbe896b5 (patch) | |
tree | cc2540a8106db527940d01faa095f93b05c91b39 | |
parent | d6ed64e67dcad471ca9e67ed661f6cc9ed1c5535 (diff) | |
download | crawl-ref-6f8e02bb67c56908d9dbaf3edb285a21bbe896b5.tar.gz crawl-ref-6f8e02bb67c56908d9dbaf3edb285a21bbe896b5.zip |
Trunk->0.3 merge (2863): Xom mutation fix for 0.3.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/branches/stone_soup-0.3@2864 c06c8d41-db1a-0410-9941-cceddc491573
-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 19e9191c8e..d001a6eb45 100644 --- a/crawl-ref/source/mutation.cc +++ b/crawl-ref/source/mutation.cc @@ -1449,7 +1449,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() ) { @@ -1458,15 +1459,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) { |