fix: crafted items no longer try to set default ammotype for items spawned empty #6009
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Purpose of change (The Why)
Fixes #4860 by making it so crafting tools won't create a weird situation where the item is empty but counts as having an ammotype assigned under the hood.
Describe the solution (The How)
In crafting.cpp, added a check in the
complete_craft
where it asks if the item being created has no ammo loaded into it, and if so makes sure to unset the ammotype from it so it won't be in a paradoxical "I'm loaded but empty" situation which is only possible to clear by loading the exact ammo it wants and then unloading it.Describe alternatives you've considered
I was real tempted to be lazy and just fix any items affected by this stupid bug in JSON by removing use of
initial_charges
from offending items...Testing
home_hw
to confirm that soda can stove kits still spawn fully-loaded in it.Additional context
Checklist
Mandatory
closes #1234
in Summary of the PR so it can be closed automatically.main
so it won't cause conflict when updatingmain
branch later.