Archipelago icon indicating copy to clipboard operation
Archipelago copied to clipboard

Fill: Crash if there are remaining unfilled locations

Open alwaysintreble opened this issue 1 year ago • 4 comments

What is this fixing or adding?

Lots of various bugs that are a bit hard to track down arise from this issue so it's better to just crash loudly with a clear error.

How was this tested?

commented out my filler gen and watched it crash

If this makes graphical changes, please attach screenshots.

alwaysintreble avatar Feb 16 '24 03:02 alwaysintreble

I disagree with this

If I'm running an 100 slot async generation, I'd rather have a couple "nothings" than to have to redo the whole thing after an hour. I'm probably just going to revert this on my local installation

Could we have the old behavior as an arg? --loose_generation_requirements or something

NewSoupVi avatar Feb 16 '24 12:02 NewSoupVi

The old behavior is having unfilled locations and causing rom games to crash when they try to get the items in locations or the locations not existing in the multiworld.

alwaysintreble avatar Feb 16 '24 17:02 alwaysintreble

Could add a prompt, instead of the Exception, explicitly informing the person generating of the risks and allowing them to type 'y' if they are willing to proceed, and throwing the Exception if they send anything else. But also this shouldn't come up often as worlds are expected to submit an equal location/itempool, no?

qwint avatar Feb 16 '24 17:02 qwint

Could add a prompt, instead of the Exception, explicitly informing the person generating of the risks and allowing them to type 'y' if they are willing to proceed, and throwing the Exception if they send anything else. But also this shouldn't come up often as worlds are expected to submit an equal location/itempool, no?

This doesn't make any sense to do. "Would you like to continue?" and then it just crashes due to the aforementioned issues 10 minutes later.

alwaysintreble avatar Apr 23 '24 09:04 alwaysintreble

Idea: How about the above per-player counts gets turned into a differential and then an exception is raised with its info, such as : "Player wags had 3 more locations than items" (as exception) or "Player Berserker had 4 more items than locations" (as logging.warning)

Berserker66 avatar May 17 '24 10:05 Berserker66

I'm fairly sure these if trees could be condensed quite a bit with this little trick:

>>>  collections.Counter({"a": 1, "b": 1})-collections.Counter({"a": 1})
Counter({'b': 1})

Berserker66 avatar Jul 10 '24 15:07 Berserker66