summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/spl-book.cc
diff options
context:
space:
mode:
authorj-p-e-g <j-p-e-g@c06c8d41-db1a-0410-9941-cceddc491573>2009-01-25 14:24:54 +0000
committerj-p-e-g <j-p-e-g@c06c8d41-db1a-0410-9941-cceddc491573>2009-01-25 14:24:54 +0000
commitd54f454b7fc085b792e569ed131bc7be460768f7 (patch)
tree781338bfe86b9f6d7bf1c85b496d1e82634db520 /crawl-ref/source/spl-book.cc
parent90159f80a56c4f294ca5adc0a0b25a034e09ff81 (diff)
downloadcrawl-ref-d54f454b7fc085b792e569ed131bc7be460768f7.tar.gz
crawl-ref-d54f454b7fc085b792e569ed131bc7be460768f7.zip
* Move randart book names into a new file, randbook.txt.
* Remove quotes from book names (use the props vector instead for book_has_title()), and occasionally allow random owner names for Sif's gifts (25% chance), as per FR 2532818. git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@8741 c06c8d41-db1a-0410-9941-cceddc491573
Diffstat (limited to 'crawl-ref/source/spl-book.cc')
-rw-r--r--crawl-ref/source/spl-book.cc32
1 files changed, 17 insertions, 15 deletions
diff --git a/crawl-ref/source/spl-book.cc b/crawl-ref/source/spl-book.cc
index 616a0a0c86..711592b957 100644
--- a/crawl-ref/source/spl-book.cc
+++ b/crawl-ref/source/spl-book.cc
@@ -1947,8 +1947,7 @@ bool make_book_level_randart(item_def &book, int level, int num_spells)
spell_vec[i] = (long) chosen_spells[i];
bool has_owner = true;
- std::string name = "\"";
-
+ std::string name = "";
if (god != GOD_NO_GOD)
name += apostrophise(god_name(god, false)) + " ";
else if (one_chance_in(3))
@@ -1956,6 +1955,9 @@ bool make_book_level_randart(item_def &book, int level, int num_spells)
else
has_owner = false;
+ // None of these books need a definite article prepended.
+ book.props["is_named"].get_bool() = true;
+
std::string lookup;
if (level <= 3)
lookup = "easy";
@@ -1980,7 +1982,6 @@ bool make_book_level_randart(item_def &book, int level, int num_spells)
bookname = getRandNameString("book");
name += bookname;
- name += '"';
set_randart_name(book, name);
@@ -2399,21 +2400,24 @@ bool make_book_theme_randart(item_def &book, int disc1, int disc2,
std::string name;
- bool need_quotes = true;
+ const bool god_gift = (god != GOD_NO_GOD);
+ bool has_owner = true;
if (!owner.empty())
name = owner;
- else if (god != GOD_NO_GOD)
+ else if (god_gift && !one_chance_in(4))
name = god_name(god, false);
- else if (one_chance_in(5)) // Occasionally, use a random name.
+ else if (god_gift || one_chance_in(5)) // Occasionally, use a random name.
name = make_name(random_int(), false);
else
- need_quotes = false;
+ has_owner = false;
- if (need_quotes)
- name = "\"" + apostrophise(name) + " ";
+ if (has_owner)
+ {
+ book.props["is_named"].get_bool() = true;
+ name = apostrophise(name) + " ";
+ }
- name += getRandNameString("book_noun");
- name += " of ";
+ name += getRandNameString("book_name") + " ";
// For the actual name there's a 50% chance of getting something like
// Flames and Displacement (Fire/Translocation), else
@@ -2465,9 +2469,6 @@ bool make_book_theme_randart(item_def &book, int disc1, int disc2,
name += bookname;
}
- if (need_quotes)
- name += '"';
-
set_randart_name(book, name);
book.plus = disc1;
@@ -2492,5 +2493,6 @@ bool book_has_title(const item_def &book)
if (!is_artefact(book))
return (false);
- return (get_artefact_name(book)[0] == '"');
+ return (book.props.exists("is_named")
+ && book.props["is_named"].get_bool() == true);
}