Fix flood_water movement cancel check

This fixes a crash with water equalization on, with loop mode enabled, when there are high velocity particles near the edges. This can be occasionally reproduced with id:2800901

The water was moved to a new position and pmap updated, but the movement code continued, assuming water was at its old position. pmap for the WATR's old position won't be cleared once it moves, leaving a stale entry. If a particle then looks up the water in that location and tries to swap positions, this can cause a crash at the end of try_move
This commit is contained in:
jacob1 2021-10-23 00:51:50 -04:00
parent 5582d6881d
commit 0ed8d0a0be
No known key found for this signature in database
GPG Key ID: 4E58A32D510E1995

View File

@ -4441,7 +4441,7 @@ killed:
// Checking stagnant is cool, but then it doesn't update when you change it later. // Checking stagnant is cool, but then it doesn't update when you change it later.
if (water_equal_test && elements[t].Falldown == 2 && RNG::Ref().chance(1, 200)) if (water_equal_test && elements[t].Falldown == 2 && RNG::Ref().chance(1, 200))
{ {
if (!flood_water(x, y, i)) if (flood_water(x, y, i))
goto movedone; goto movedone;
} }
// liquids and powders // liquids and powders