Fix #9527: Crash when trying to place multitile objects at map edge #9529
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
#9527
Building objects did not do any bounds checking. Fine for 1x1 objects, less so for others
Also spotted an issue with a previous fix in the same area
Description
Add a check of all the tiles for validity. Not sure if there's a better way.
Also fix the check for zero-size objects, which was missing a bitshift (32 != 0). and bump the grf message up a level (to 0), as grf makers will probably want to see it
Example of issue:
0xF0 & 0x22 === 0x20 === 32 !== 2
Therefore if the lower nibble is 0, it would not be correctly detected as such.Limitations
Checklist for review
Some things are not automated, and forgotten often. This list is a reminder for the reviewers.