Fill chokes on itself on the last meters in games with both minimal players and full players #4224
Labels
affects: core
Issues/PRs that touch core and may need additional validation.
is: bug/fix
Issues that are reporting bugs or pull requests that are fixing bugs.
What happened?
When an
accessibility: full
player's item ends up on an unreachableaccessibility: minimal
player's location during progression fill, it is supposed to be left there and re-placed byaccessibility_corrections
. That is the express purpose ofaccessibility_corrections
.Now, consider the following scenario in a generation with a full player and a minimal player.
The gen goes into swap during progression fill. As a result, cleanup_required will be set to True. (Even if safe swap)
If cleanup_required is set, all unreachable locations containing prog items for the full player will have their items forcefully ripped out then and there
Fill then runs a check for whether there are any unplaced items. This errors because there is an unplaced item.
But had this "required cleanup" not happened, the unreachable item would have been properly corrected by
accessibility_corrections
on the very next line.In fact, if you comment out the cleanup, the seed actually generates just fine.
Reproduction Steps
Be on this #4188
Use these yamls: players (1).zip
Set seed to 95140043061228385161
Generate -> Fail
Generate with if cleanup_required changed to
if False
-> Success.What were the expected results?
The item should've been left on its check so that
accessibility_corrections
can correct it properly.Software
Local generation
The text was updated successfully, but these errors were encountered: