invalid recipe id "meal_bone_mill...
Describe the bug
Examine the tiny canine skull
DEBUG : invalid recipe id "meal_bone_mill_2_1"
FUNCTION : const T& string_id<T>::obj() const [with T = recipe]
FILE : src/recipe_dictionary.cpp
LINE : 66
VERSION : cdda-experimental-2024-09-10-0339 c73e4c6
Examine the small canine skull
DEBUG : invalid recipe id "meal_bone_mill_1_1"
FUNCTION : const T& string_id<T>::obj() const [with T = recipe]
FILE : src/recipe_dictionary.cpp
LINE : 66
VERSION : cdda-experimental-2024-09-10-0339 c73e4c6
Attach save file
n/a
Steps to reproduce
Kill and butcher a dachshund (small) and a dachshund puppy (tiny). Check the skull
Expected behavior
n/a
Screenshots
No response
Versions and configuration
- OS: Windows
- OS Version: 10.0.19043 (21H1)
- Game Version: cdda-experimental-2024-09-10-0339 c73e4c6 [64-bit]
- Graphics Version: Tiles
- Game Language: English [en]
- Mods loaded: [ Dark Days Ahead [dda], Disable NPC Needs [no_npc_food], Portal Storms Ignore NPCs [personal_portal_storms], Slowdown Fungal Growth [no_fungal_growth] ]
Additional context
Skull spawning causes the game to crash
- #76332
Looks like I made a bad assumption about how milling recipes are added when adding those. Would have expected it to throw errors on load, though...
EDIT: Or not? It seems there are no manually written milling recipes anywhere in the JSON to things I didn't touch either. Weird.
no manually written milling recipe
check
https://github.com/CleverRaven/Cataclysm-DDA/blob/98be1d4185bb06b07b18929057fef378eefd2f9e/data/json/recipes/food/milling.json#L562-L580
It looks like if there is meal_bone_mill_1_4 - there should be "result": "meal_bone" with "id_suffix": "mill_1_4",
Like this. This seems to fix 2_1 and 1_1 skulls from bone.json:
[
{
"id": "skull_small",
"type": "requirement",
"//": "Small skulls",
"components": [ [ [ "skull_feline_small", 1 ], [ "skull_canis_small", 1 ], [ "skull_opossum", 1 ], [ "skull_skunk", 1 ] ] ]
},
{
"id": "skull_medium",
"type": "requirement",
"//": "Medium skulls",
"components": [ [ [ "skull_feline_medium", 1 ], [ "skull_canis_medium", 1 ], [ "skull_raccoon", 1 ], [ "skull_rabbit", 1 ] ] ]
},
{
"//": "For use by mills, so the only entries used are the charges and components.",
"//1": "Note that there should only be a single component with no extras such as lubricants, etc.",
"result": "meal_bone",
"type": "recipe",
"activity_level": "NO_EXERCISE",
"id_suffix": "mill_2_1",
"category": "CC_FOOD",
"subcategory": "CSC_FOOD_OTHER",
"skill_used": "cooking",
"difficulty": 2,
"charges": 1,
"time": "0 s",
"autolearn": false,
"flags": [ "SECRET" ],
"tools": [ ],
"components": [ [ [ "skull_small", 2, "LIST" ] ] ]
},
{
"//": "For use by mills, so the only entries used are the charges and components.",
"//1": "Note that there should only be a single component with no extras such as lubricants, etc.",
"result": "meal_bone",
"type": "recipe",
"activity_level": "NO_EXERCISE",
"id_suffix": "mill_1_1",
"category": "CC_FOOD",
"subcategory": "CSC_FOOD_OTHER",
"skill_used": "cooking",
"difficulty": 2,
"charges": 1,
"time": "0 s",
"autolearn": false,
"flags": [ "SECRET" ],
"tools": [ ],
"components": [ [ [ "skull_medium", 1, "LIST" ] ] ]
}
]
check
Ah I was searching for the full ID, didn't expect an ID suffix. That explains it. I can fix that up when PRs can be merged again, currently the Basic Build seems to be failing on everything.
Yes, the fact that the milling recipe are made from a base and a suffix has the unfortunate effect of them not being found via a normal search.