Prevent heat convection in liquids looking farther than 1px away.

This commit is contained in:
Saveliy Skresanov
2025-01-23 01:19:07 +07:00
parent 2e27cbfddf
commit 3da994c3b8

View File

@@ -2329,8 +2329,8 @@ void Simulation::UpdateParticles(int start, int end)
{
float convGravX, convGravY;
GetGravityField(x, y, -2.0f, -2.0f, convGravX, convGravY);
auto offsetX = int(std::round(convGravX + x));
auto offsetY = int(std::round(convGravY + y));
auto offsetX = std::clamp(int(std::round(convGravX + x)), x-1, x+1);
auto offsetY = std::clamp(int(std::round(convGravY + y)), y-1, y+1);
if ((offsetX != x || offsetY != y) && offsetX >= 0 && offsetX < XRES && offsetY >= 0 && offsetY < YRES) {//some heat convection for liquids
auto r = pmap[offsetY][offsetX];
if (!(!r || parts[i].type != TYP(r))) {