summaryrefslogtreecommitdiff
path: root/src/birth.cc
diff options
context:
space:
mode:
authorBardur Arantsson <bardur@scientician.net>2018-03-25 20:07:30 +0200
committerBardur Arantsson <bardur@scientician.net>2018-03-25 20:07:30 +0200
commit5034252fa024de1082084a84fde3c925d89a51e0 (patch)
treeb75e385c34dd1abcb3aef8511d76c110ee6fbad9 /src/birth.cc
parentbfa9713ee6e8299cb6cd26dd291b024191926070 (diff)
Aggressively signal missing spells as errors
Diffstat (limited to 'src/birth.cc')
-rw-r--r--src/birth.cc19
1 files changed, 13 insertions, 6 deletions
diff --git a/src/birth.cc b/src/birth.cc
index 81ee38c4..8d27c4e2 100644
--- a/src/birth.cc
+++ b/src/birth.cc
@@ -796,12 +796,19 @@ static void player_outfit_object(int qty, int tval, int sval)
*/
static void player_outfit_spellbook(cptr spell_name)
{
- object_type forge;
- object_type *q_ptr = &forge;
- object_prep(q_ptr, lookup_kind(TV_BOOK, 255));
- q_ptr->pval = find_spell(spell_name);
- q_ptr->ident |= IDENT_MENTAL | IDENT_KNOWN;
- inven_carry(q_ptr, FALSE);
+ if (auto spell_idx = find_spell(spell_name))
+ {
+ object_type forge;
+ object_type *q_ptr = &forge;
+ object_prep(q_ptr, lookup_kind(TV_BOOK, 255));
+ q_ptr->pval = *spell_idx;
+ q_ptr->ident |= IDENT_MENTAL | IDENT_KNOWN;
+ inven_carry(q_ptr, FALSE);
+ }
+ else
+ {
+ quit_fmt("Couldn't find spell '%s'\n");
+ }
}