No duplicate linear predecessors #67773
Merged
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
None
Purpose of change
Replaces the hacky function I added in #67223 with a better and consistent solution
Needed for #67470
Describe the solution
Prevents the duplicates ever getting added rather than dealing with them when they enter reality bubble
I tried making predecessors_ a cata::flat_set too but couldn't figure out the savegame stuff, I were trying to do something vaguely like:
(L657 of src/savegame.cpp)
but it doesn't like the uninitialised auto flattened_predecessors and I couldn't think of a good way around it
Describe alternatives you've considered
Testing
Tested on my trail PR and it looks good just wanted to make this a separate PR
Actually nvm this seems to break the crossroad manholes somehowFalse alarm the manhole id sometimes being overwritten appears intended (or at least is happening in vanilla)Additional context