Prevent PlaceUniqueMonster() loop from finding random location for quest monsters with a set position #7464
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.
Fixes: #7463
PlaceUniqueMonst()
is a function that does what the name suggests, with logic as follows:position
position
with a set locationWhile this may not be the fix for the linked issue report, this does change the order of operations, to prevent running the loop to find a spawn location for monsters that already have a predefined location. Since these quest monsters have a very specific location, typically involving set pieces or set levels, their spawning conditions are predetermined to be valid, and we don't need to run the checks like we do with randomly placed unique monsters. As a result, the infinite loop problem will no longer occur with Lazarus and his minion uniques.
An explanation for the infinite loop where every map tile is considered "Solid" and causes spawning condition checks to fail can be found here: #7463 (comment)
The proper solution can be found here: #7465