summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/mutation.cc
diff options
context:
space:
mode:
authordolorous <dolorous@c06c8d41-db1a-0410-9941-cceddc491573>2008-04-27 16:08:56 +0000
committerdolorous <dolorous@c06c8d41-db1a-0410-9941-cceddc491573>2008-04-27 16:08:56 +0000
commitb9c5dfc47cb4581657edfd4bb04922a5d81d8465 (patch)
tree44765721e325f0013414e8ca84be430a01e16239 /crawl-ref/source/mutation.cc
parent97d889a6a77d15d59dd0f67da91df989e91c4b38 (diff)
downloadcrawl-ref-b9c5dfc47cb4581657edfd4bb04922a5d81d8465.tar.gz
crawl-ref-b9c5dfc47cb4581657edfd4bb04922a5d81d8465.zip
Simplify special-case mutation handling.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@4696 c06c8d41-db1a-0410-9941-cceddc491573
Diffstat (limited to 'crawl-ref/source/mutation.cc')
-rw-r--r--crawl-ref/source/mutation.cc21
1 files changed, 12 insertions, 9 deletions
diff --git a/crawl-ref/source/mutation.cc b/crawl-ref/source/mutation.cc
index 53d424c211..1399422a4c 100644
--- a/crawl-ref/source/mutation.cc
+++ b/crawl-ref/source/mutation.cc
@@ -2055,10 +2055,11 @@ bool mutate(mutation_type which_mutation, bool failMsg,
return true;
}
mpr(gain_mutation[mutat][you.mutation[mutat]], MSGCH_MUTATION);
+ // special-case check
you.mutation[mutat]++;
calc_hp();
- // special-case check
- goto mutate_done;
+ you.mutation[mutat]--;
+ break;
case MUT_ROBUST:
if (you.mutation[MUT_FRAIL] > 0)
@@ -2067,10 +2068,11 @@ bool mutate(mutation_type which_mutation, bool failMsg,
return true;
}
mpr(gain_mutation[mutat][you.mutation[mutat]], MSGCH_MUTATION);
+ // special-case check
you.mutation[mutat]++;
calc_hp();
- // special-case check
- goto mutate_done;
+ you.mutation[mutat]--;
+ break;
case MUT_LOW_MAGIC:
if (you.mutation[MUT_HIGH_MAGIC] > 0)
@@ -2079,10 +2081,11 @@ bool mutate(mutation_type which_mutation, bool failMsg,
return true;
}
mpr(gain_mutation[mutat][you.mutation[mutat]], MSGCH_MUTATION);
+ // special-case check
you.mutation[mutat]++;
calc_mp();
- // special-case check
- goto mutate_done;
+ you.mutation[mutat]--;
+ break;
case MUT_HIGH_MAGIC:
if (you.mutation[MUT_LOW_MAGIC] > 0)
@@ -2091,10 +2094,11 @@ bool mutate(mutation_type which_mutation, bool failMsg,
return true;
}
mpr(gain_mutation[mutat][you.mutation[mutat]], MSGCH_MUTATION);
+ // special-case check
you.mutation[mutat]++;
calc_mp();
- // special-case check
- goto mutate_done;
+ you.mutation[mutat]--;
+ break;
case MUT_BLACK_SCALES:
case MUT_BONEY_PLATES:
@@ -2133,7 +2137,6 @@ bool mutate(mutation_type which_mutation, bool failMsg,
you.mutation[mutat]++;
-mutate_done:
// amusement value will be 16 * (11-rarity) * Xom's-sense-of-humor
int amusementvalue = calc_mutation_amusement_value(mutat);
xom_is_stimulated(amusementvalue);