diff options
author | Bardur Arantsson <bardur@scientician.net> | 2018-03-25 20:07:30 +0200 |
---|---|---|
committer | Bardur Arantsson <bardur@scientician.net> | 2018-03-25 20:07:30 +0200 |
commit | 5034252fa024de1082084a84fde3c925d89a51e0 (patch) | |
tree | b75e385c34dd1abcb3aef8511d76c110ee6fbad9 /src/birth.cc | |
parent | bfa9713ee6e8299cb6cd26dd291b024191926070 (diff) |
Aggressively signal missing spells as errors
Diffstat (limited to 'src/birth.cc')
-rw-r--r-- | src/birth.cc | 19 |
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"); + } } |