From c346c0b6f9ed9029a2607c8940c1d30035bb3a99 Mon Sep 17 00:00:00 2001 From: Maleclypse <54345792+Maleclypse@users.noreply.github.com> Date: Fri, 7 Feb 2025 01:11:48 -0600 Subject: [PATCH] Hobbies can give recipes (#79555) * Hobbies can give recipes * Update src/newcharacter.cpp Co-authored-by: Marc * Update src/newcharacter.cpp Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --------- Co-authored-by: Marc Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- src/character.h | 1 + src/newcharacter.cpp | 13 +++++++++++++ src/npc.cpp | 1 + 3 files changed, 15 insertions(+) diff --git a/src/character.h b/src/character.h index 6db91a38f74cf..f61d8eb79c852 100644 --- a/src/character.h +++ b/src/character.h @@ -2507,6 +2507,7 @@ class Character : public Creature, public visitable int get_proficiency_bonus( const std::string &category, proficiency_bonus_type prof_bonus ) const; void add_default_background(); void set_proficiencies_from_hobbies(); + void set_recipes_from_hobbies(); // tests only! void set_proficiency_practice( const proficiency_id &id, const time_duration &amount ); diff --git a/src/newcharacter.cpp b/src/newcharacter.cpp index bbf1a0a803498..9a7229257a6b3 100644 --- a/src/newcharacter.cpp +++ b/src/newcharacter.cpp @@ -891,6 +891,16 @@ void Character::set_skills_from_hobbies( bool no_override ) } } +void Character::set_recipes_from_hobbies() +{ + for( const profession *profession : hobbies ) { + for( const recipe_id &recipeID : profession->recipes() ) { + const recipe &r = recipe_dictionary::get_craft( recipeID->result() ); + learn_recipe( &r ); + } + } +} + void Character::set_proficiencies_from_hobbies() { for( const profession *profession : hobbies ) { @@ -995,6 +1005,9 @@ void Character::initialize( bool learn_recipes ) // Add hobby proficiencies set_proficiencies_from_hobbies(); + // Add hobby recipes + set_recipes_from_hobbies(); + // Activate some mutations right from the start. for( const trait_id &mut : get_mutations() ) { const mutation_branch &branch = mut.obj(); diff --git a/src/npc.cpp b/src/npc.cpp index decb6573b802a..0e141544ee93a 100644 --- a/src/npc.cpp +++ b/src/npc.cpp @@ -698,6 +698,7 @@ void npc::randomize( const npc_class_id &type, const npc_template_id &tem_id ) add_default_background(); set_skills_from_hobbies( true ); // Only trains skills that are still at 0 at this point set_proficiencies_from_hobbies(); + set_recipes_from_hobbies(); set_bionics_from_hobbies(); // Just in case, for mods }