fix: crash concurrent modification/casting in tile management #3107
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.
Description
This PR adds the implementation for dynamically determining the type of tile (HouseTile, StaticTile, DynamicTile) when creating a new tile object. The motivation is to correctly identify and assign specific tile types, which enhances code readability and maintainability. The change also ensures that houses have associated HouseTile objects for better data integrity. No additional dependencies are required for this change.
Fixes this crash: crash house.txt
Behaviour
Actual
Tiles are being created without properly distinguishing between house, static, and dynamic types.
Expected
House tiles should be identified and instantiated as HouseTile objects, and other tiles should be correctly instantiated as StaticTile or DynamicTile based on the cached tile data.
Type of change
How Has This Been Tested
The changes have been tested by:
Checklist