diff --git a/src/simulation/elements/FIRE.cpp b/src/simulation/elements/FIRE.cpp index 0b2e51823..851d8c04c 100644 --- a/src/simulation/elements/FIRE.cpp +++ b/src/simulation/elements/FIRE.cpp @@ -251,6 +251,10 @@ int Element_FIRE_update(UPDATE_FUNC_ARGS) if (rx > 1 || rx < -1) // Trend veins vertical parts[i].tmp = 1; } + else if (parts[i].ctype == PT_SALT && rt == PT_GLAS) + { + parts[ID(r)].life = 10; + } } if ((surround_space || sim->elements[rt].Explosive) && diff --git a/src/simulation/elements/GLAS.cpp b/src/simulation/elements/GLAS.cpp index 9361d5aec..3fd64091c 100644 --- a/src/simulation/elements/GLAS.cpp +++ b/src/simulation/elements/GLAS.cpp @@ -51,12 +51,29 @@ static int update(UPDATE_FUNC_ARGS) { auto press = int(sim->pv[y/CELL][x/CELL] * 64); auto diff = press - parts[i].tmp3; - if (diff > 16 || diff < -16) + + // Determine whether the GLAS is chemically strengthened via life setting. + if (parts[i].life > 0) { - sim->part_change_type(i,x,y,PT_BGLA); + // determined to be strengthened GLAS, increase the pressure by which it shatters + // set to 160 because that's a value where the effect is noticable. the 3x increase didn't do much + if (diff > 160 || diff < -160) + { + sim->part_change_type(i, x, y, PT_BGLA); + } } + else + { + // regular ol' GLAS + if (diff > 16 || diff < -16) + { + sim->part_change_type(i, x, y, PT_BGLA); + } + } + parts[i].tmp3 = press; return 0; + } static void create(ELEMENT_CREATE_FUNC_ARGS)