fix: Repair Item activity occasionally encountering a bad pointer when initiated from vehicle/grid #3611
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.
Summary
SUMMARY: Bugfixes "Fix Repair Item activity occasionally encountering a bad pointer when initiated from vehicle/grid"
Purpose of change
Repair Item activity was crashing because it tries to construct an item from an invalid pointer when the activity is initiated from vehicle/grid, as the fake_item used to initiate the activity stops existing after initiating the activity. Prior to item identity this wasn't an issue as item location can lead to invalid locations so long as you don't actually use it.
Describe the solution
Cleaned up
repair_item_finish
a bit, restructuring it so it doesn't even try to call the pointer unless it's confirmed it should have a valid one.Describe alternatives you've considered
crafting_pseudo_item
. JSONize freezers and fridges. Update Freezers/Fridges to useiexamine::transform
#2172.Testing
This is... difficult, as the bug was random to begin with.
Additional context
Spaghetti and shiny new features colliding is such great fun.
Checklist