summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/newgame.cc
diff options
context:
space:
mode:
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);