summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordshaligram <dshaligram@c06c8d41-db1a-0410-9941-cceddc491573>2007-11-17 18:33:26 +0000
committerdshaligram <dshaligram@c06c8d41-db1a-0410-9941-cceddc491573>2007-11-17 18:33:26 +0000
commit6f8e02bb67c56908d9dbaf3edb285a21bbe896b5 (patch)
treecc2540a8106db527940d01faa095f93b05c91b39
parentd6ed64e67dcad471ca9e67ed661f6cc9ed1c5535 (diff)
downloadcrawl-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.cc20
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)
{