summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/stuff.cc
diff options
context:
space:
mode:
authorj-p-e-g <j-p-e-g@c06c8d41-db1a-0410-9941-cceddc491573>2008-07-06 16:47:06 +0000
committerj-p-e-g <j-p-e-g@c06c8d41-db1a-0410-9941-cceddc491573>2008-07-06 16:47:06 +0000
commit200b4c0e08504a7c8df898d77a9d72b3fa573c04 (patch)
treeb6cf73c902a55861ab60656e0225f0385c2c3a59 /crawl-ref/source/stuff.cc
parent7f2ded93231941b48fba24bcc9a55602295f72bd (diff)
downloadcrawl-ref-200b4c0e08504a7c8df898d77a9d72b3fa573c04.tar.gz
crawl-ref-200b4c0e08504a7c8df898d77a9d72b3fa573c04.zip
Add a function x_chance_in_y(x,y) to replace the various
random2(y) < x checks, e.g. x_chance_in_y(weight, totalweight). This should make things a bit more readable. Apply it to a number of files. git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@6428 c06c8d41-db1a-0410-9941-cceddc491573
Diffstat (limited to 'crawl-ref/source/stuff.cc')
-rw-r--r--crawl-ref/source/stuff.cc23
1 files changed, 17 insertions, 6 deletions
diff --git a/crawl-ref/source/stuff.cc b/crawl-ref/source/stuff.cc
index 159b09ae48..6fef267f58 100644
--- a/crawl-ref/source/stuff.cc
+++ b/crawl-ref/source/stuff.cc
@@ -866,30 +866,41 @@ bool one_chance_in(int a_million)
return (random2(a_million) == 0);
}
-// simple little function to quickly modify all three stats
+bool x_chance_in_y(int x, int y)
+{
+ if (x <= 0 || y <= 0)
+ return (false);
+
+ if (x >= y)
+ return (true);
+
+ return (random2(y) < x);
+}
+
+// Simple little function to quickly modify all three stats
// at once - does check for '0' modifiers to prevent needless
// adding .. could use checking for sums less than zero, I guess.
-// used in conjunction with newgame::species_stat_init() and
-// newgame::job_stat_init() routines 24jan2000 {dlb}
+// Used in conjunction with newgame::species_stat_init() and
+// newgame::job_stat_init() routines 24jan2000. {dlb}
void modify_all_stats(int STmod, int IQmod, int DXmod)
{
if (STmod)
{
- you.strength += STmod;
+ you.strength += STmod;
you.max_strength += STmod;
you.redraw_strength = true;
}
if (IQmod)
{
- you.intel += IQmod;
+ you.intel += IQmod;
you.max_intel += IQmod;
you.redraw_intelligence = true;
}
if (DXmod)
{
- you.dex += DXmod;
+ you.dex += DXmod;
you.max_dex += DXmod;
you.redraw_dexterity = true;
}