diff --git a/src/simulation/elements/FIRE.cpp b/src/simulation/elements/FIRE.cpp index 10d23f7f3..7e5585801 100644 --- a/src/simulation/elements/FIRE.cpp +++ b/src/simulation/elements/FIRE.cpp @@ -252,9 +252,9 @@ 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) + else if (parts[i].ctype == PT_SALT && rt == PT_GLAS && parts[ID(r)].life < 234 * 120) { - parts[ID(r)].life = 10; + parts[ID(r)].life++; } } diff --git a/src/simulation/elements/GLAS.cpp b/src/simulation/elements/GLAS.cpp index 3fd64091c..d80bb2d7a 100644 --- a/src/simulation/elements/GLAS.cpp +++ b/src/simulation/elements/GLAS.cpp @@ -52,28 +52,16 @@ static int update(UPDATE_FUNC_ARGS) auto press = int(sim->pv[y/CELL][x/CELL] * 64); auto diff = press - parts[i].tmp3; - // Determine whether the GLAS is chemically strengthened via life setting. - if (parts[i].life > 0) + // Determine whether the GLAS is chemically strengthened via .life setting. (250 = Max., 16 = Min.) + int strength = (parts[i].life / 120) + 16; + if (strength < 16) + strength = 16; + if (diff > strength || diff < -1 * strength) { - // 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); - } + 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)