Fix water flow in barrier removal #1199
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.
This PR fixes water flows by replacing barriers with water source if there are two water sources as their neighbor.
This PR is ready for review. Some maps not extending their border into the ocean (e.g. Desert Spikes) can now be fixed.
The logic
The code only works on barriers that should be replaced by air (i.e.
replacement_id == ID_AIR
). On each such node, four neighbor nodes of the same Y-coordinate (i.e. z +/- 1, x +/- 1) are listed and checked. If two of them are water sources, the current barrier will be replaced by water source instead of air.Due to the above code, the
d[vi] == ID_AIR
check is no longer necessary and is removed in this PR.Gallery
Before (
f44e0ed
):After: