summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/newgame.cc
diff options
context:
space:
mode:
authorj-p-e-g <j-p-e-g@c06c8d41-db1a-0410-9941-cceddc491573>2008-07-03 22:07:11 +0000
committerj-p-e-g <j-p-e-g@c06c8d41-db1a-0410-9941-cceddc491573>2008-07-03 22:07:11 +0000
commit19283b0b952522d1d019f22fcbd35294c13c235c (patch)
treeb3218c8154e017f930b11303b30f4ac5652904ff /crawl-ref/source/newgame.cc
parenta32a2ae31db4aca7df3ea969b0c1ef456c0ba159 (diff)
downloadcrawl-ref-19283b0b952522d1d019f22fcbd35294c13c235c.tar.gz
crawl-ref-19283b0b952522d1d019f22fcbd35294c13c235c.zip
Fix 2008767: "random" not working for book choice option
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@6375 c06c8d41-db1a-0410-9941-cceddc491573
Diffstat (limited to 'crawl-ref/source/newgame.cc')
-rw-r--r--crawl-ref/source/newgame.cc13
1 files changed, 6 insertions, 7 deletions
diff --git a/crawl-ref/source/newgame.cc b/crawl-ref/source/newgame.cc
index 909591a4bc..7bb3e01029 100644
--- a/crawl-ref/source/newgame.cc
+++ b/crawl-ref/source/newgame.cc
@@ -2039,7 +2039,7 @@ static bool _choose_book( item_def& book, int firstbook, int numbooks )
if (Options.prev_book > numbooks && Options.prev_book != SBT_RANDOM)
Options.prev_book = SBT_NO_SELECTION;
- if (!Options.random_pick)
+ if (!Options.random_pick && Options.book != SBT_RANDOM)
{
_print_character_info();
@@ -2113,14 +2113,11 @@ static bool _choose_book( item_def& book, int firstbook, int numbooks )
|| keyin == '+')
{
ng_book = SBT_RANDOM;
- }
- else
- ng_book = keyin - 'a' + 1;
- if (Options.random_pick || keyin == '*' || keyin == '+')
- {
int good_choices = 0;
- if (keyin == '+' || Options.random_pick && Options.good_random)
+ if (keyin == '+'
+ || Options.good_random
+ && (Options.random_pick || Options.book == SBT_RANDOM))
{
for (int i = 0; i < numbooks; i++)
{
@@ -2137,6 +2134,8 @@ static bool _choose_book( item_def& book, int firstbook, int numbooks )
keyin += 'a';
}
+ else
+ ng_book = keyin - 'a' + 1;
book.sub_type = firstbook + keyin - 'a';
return (true);