Fix 0125892: Don't crash when towns upgrade road tiles during expansion #8651
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.
Motivation / Problem
0125892 introduced a fix for converting road types not updating infrastructure counters.
When a town expands in a game with multiple town-buildable road types introduced over time, it may result in a road tile being upgraded by the build road command. This causes an assert when the new code tries to get a company from the company pool using company ID 15.
Fixes #8650
Description
This fix checks that the current company ID is a valid company before attempting to get the company from the pool and update infrastructure counters.
Limitations
There do not appear to be any other attempts to get companies from the pool introduced by the mentioned commit, so this should be sufficient to fix the observed bug. I haven't done an exhaustive search for other cases, although my experience is this bug has only occurred in versions build after December 28th so it's likely that is the sole cause.
Checklist for review
Some things are not automated, and forgotten often. This list is a reminder for the reviewers.