diff --git a/src/simulation/elements/PSNS.cpp b/src/simulation/elements/PSNS.cpp index 8e93988fa..f43166048 100644 --- a/src/simulation/elements/PSNS.cpp +++ b/src/simulation/elements/PSNS.cpp @@ -48,7 +48,7 @@ Element_PSNS::Element_PSNS() int Element_PSNS::update(UPDATE_FUNC_ARGS) { int r, rx, ry, rt; - if (sim->pv[y/CELL][x/CELL] > parts[i].temp-273.15f) + if ((parts[i].tmp == 0 && sim->pv[y/CELL][x/CELL] > parts[i].temp-273.15f) || (parts[i].tmp == 2 && sim->pv[y/CELL][x/CELL] < parts[i].temp-273.15f)) { parts[i].life = 0; for (rx = -2; rx <= 2; rx++) diff --git a/src/simulation/elements/TSNS.cpp b/src/simulation/elements/TSNS.cpp index 4fd5709bb..ce9fd153a 100644 --- a/src/simulation/elements/TSNS.cpp +++ b/src/simulation/elements/TSNS.cpp @@ -83,7 +83,9 @@ int Element_TSNS::update(UPDATE_FUNC_ARGS) r = sim->photons[y+ry][x+rx]; if (!r) continue; - if (TYP(r) != PT_TSNS && TYP(r) != PT_METL && parts[ID(r)].temp > parts[i].temp) + if (parts[i].tmp == 0 && TYP(r) != PT_TSNS && TYP(r) != PT_METL && parts[ID(r)].temp > parts[i].temp) + parts[i].life = 1; + if (parts[i].tmp == 2 && TYP(r) != PT_TSNS && TYP(r) != PT_METL && parts[ID(r)].temp < parts[i].temp) parts[i].life = 1; if (parts[i].tmp == 1 && TYP(r) != PT_TSNS && TYP(r) != PT_FILT) {