diff --git a/src/simulation/elements/HEAC.cpp b/src/simulation/elements/HEAC.cpp index a88fde782d..84e6ab9bfb 100644 --- a/src/simulation/elements/HEAC.cpp +++ b/src/simulation/elements/HEAC.cpp @@ -136,13 +136,13 @@ int Element_HEAC::update(UPDATE_FUNC_ARGS) if (x+rrx >= 0 && x+rrx < XRES && y+rry >= 0 && y+rry < YRES && !Element_HEAC::CheckLine(sim, x, y, x+rrx, y+rry, isInsulator)) { r = pmap[y+rry][x+rrx]; - if (r && sim->elements[r&0xFF].HeatConduct > 0) + if (r && sim->elements[r&0xFF].HeatConduct > 0 && (parts[r>>8].type != PT_HSWC || parts[r>>8].life == 10)) { count++; tempAgg += parts[r>>8].temp; } r = sim->photons[y+rry][x+rrx]; - if (r && sim->elements[r&0xFF].HeatConduct > 0) + if (r && sim->elements[r&0xFF].HeatConduct > 0 && (parts[r>>8].type != PT_HSWC || parts[r>>8].life == 10)) { count++; tempAgg += parts[r>>8].temp; @@ -164,12 +164,12 @@ int Element_HEAC::update(UPDATE_FUNC_ARGS) if (x+rrx >= 0 && x+rrx < XRES && y+rry >= 0 && y+rry < YRES && !Element_HEAC::CheckLine(sim, x, y, x+rrx, y+rry, isInsulator)) { r = pmap[y+rry][x+rrx]; - if (r && sim->elements[r&0xFF].HeatConduct > 0) + if (r && sim->elements[r&0xFF].HeatConduct > 0 && (parts[r>>8].type != PT_HSWC || parts[r>>8].life == 10)) { parts[r>>8].temp = parts[i].temp; } r = sim->photons[y+rry][x+rrx]; - if (r && sim->elements[r&0xFF].HeatConduct > 0) + if (r && sim->elements[r&0xFF].HeatConduct > 0 && (parts[r>>8].type != PT_HSWC || parts[r>>8].life == 10)) { parts[r>>8].temp = parts[i].temp; }