diasurgical / devilution

Diablo devolved - magic behind the 1996 computer game
Other
8.79k stars 919 forks source link

drlg_l1: add BUGFIX for DRLG_L5 #2285

Open mewmew opened 1 year ago

mewmew commented 1 year ago

When generating dlvl=2 dungeons containing a staircase down to the Poisoned Water Supply, a check is missing to ensure that doneflag is not set to FALSE by the first call to DRLG_PlaceMiniSet(PWATERIN, ...).

If that was the case, then a second call to DRLG_PlaceMiniSet may be made, to place L5STAIRSUP even though doneflag may have been set to FALSE.

For the correct logic, cross reference against the drlg_l2 code for placing staircases using DRLG_L2PlaceMiniSet.

For a PoC triggering the incorrect behaviour, see dlvl=2, seed=0x0000007B with quest=Poisoned Water Supply active.

galaxyhaxz commented 1 year ago

So technically it would be possible to get a map that can't spawn the poisoned water entrance but fits the stairs meaning the quest is active but there's no way to reach it....

I guess the townspeople will have to drink something else xD