Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix: Assertion failure when post road-works cleanup removes all road pieces #7903

Conversation

@JGRennison
Copy link
Contributor

JGRennison commented Jan 5, 2020

When road works have completed on a tile, if _settings_game.economy.mod_road_rebuild is true, CleanUpRoadBits() may remove all road bits currently on the tile.
In this case, after RemoveRoad() is called, the tile is no longer a road tile.
The subsequent call to GetRoadOwner() causes an assertion failure.

Once RemoveRoad() is called in this case, TileLoop_Road() should return early as the tile is no longer a road tile and all subsequent road tile checks/actions are no longer applicable.

@nielsmh
nielsmh approved these changes Jan 5, 2020
Copy link
Contributor

nielsmh left a comment

Looks correct. I don't understand why this can remove all road bits from a tile though, that sounds slightly weird, but is a separate discussion.

@LordAro
LordAro approved these changes Jan 5, 2020
@LordAro LordAro merged commit 12380fc into OpenTTD:master Jan 5, 2020
8 checks passed
8 checks passed
OpenTTD CI Build #20200105.4 succeeded
Details
OpenTTD CI (Linux commit-checker) Linux commit-checker succeeded
Details
OpenTTD CI (Linux linux-amd64-clang-3.9) Linux linux-amd64-clang-3.9 succeeded
Details
OpenTTD CI (Linux linux-amd64-gcc-6) Linux linux-amd64-gcc-6 succeeded
Details
OpenTTD CI (Linux linux-i386-gcc-6) Linux linux-i386-gcc-6 succeeded
Details
OpenTTD CI (MacOS) MacOS succeeded
Details
OpenTTD CI (Windows Win32) Windows Win32 succeeded
Details
OpenTTD CI (Windows Win64) Windows Win64 succeeded
Details
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Linked issues

Successfully merging this pull request may close these issues.

None yet

3 participants
You can’t perform that action at this time.