diff --git a/src/elements/co2.cpp b/src/elements/co2.cpp index 62bc64643..b267a73bf 100644 --- a/src/elements/co2.cpp +++ b/src/elements/co2.cpp @@ -27,5 +27,20 @@ int update_CO2(UPDATE_FUNC_ARGS) { sim->kill_part(r>>8); } } + if (parts[i].temp > 9773.15 && sim->pv[y/CELL][x/CELL] > 200.0f) + { + if (rand()%5 < 1) + { + int j; + sim->kill_part(i); + j = sim->create_part(-3,x+rand()%3-1,y+rand()%3-1,PT_NEUT); if (j != -1) parts[j].temp = 15000; + j = sim->create_part(-3,x+rand()%3-1,y+rand()%3-1,PT_ELEC); if (j != -1) parts[j].temp = 15000; + j = sim->create_part(-3,x+rand()%3-1,y+rand()%3-1,PT_O2); if (j != -1) parts[j].temp = 15000; + j = sim->create_part(-3,x+rand()%3-1,y+rand()%3-1,PT_SING); if (j != -1) { parts[j].temp = 15000; parts[i].life = rand()%100+450; } + + parts[i].temp += 15000; + sim->pv[y/CELL][x/CELL] += 100; + } + } return 0; } diff --git a/src/elements/h2.cpp b/src/elements/h2.cpp index 8ebc1a9bb..fc2e6c894 100644 --- a/src/elements/h2.cpp +++ b/src/elements/h2.cpp @@ -46,8 +46,8 @@ int update_H2(UPDATE_FUNC_ARGS) float temp = parts[i].temp; sim->part_change_type(i,x,y,PT_PLSM); parts[i].life = rand()%150+50; - j = sim->create_part(-3,x+rand()%3-1,y+rand()%3-1,PT_NEUT); - j = sim->create_part(-3,x+rand()%3-1,y+rand()%3-1,PT_ELEC); + sim->create_part(-3,x+rand()%3-1,y+rand()%3-1,PT_NEUT); + sim->create_part(-3,x+rand()%3-1,y+rand()%3-1,PT_ELEC); j = sim->create_part(-3,x+rand()%3-1,y+rand()%3-1,PT_PHOT); if (j != -1) { parts[j].ctype = 0xFFFF00; parts[j].temp = temp; } diff --git a/src/elements/nble.cpp b/src/elements/nble.cpp index c35859fde..13e484504 100644 --- a/src/elements/nble.cpp +++ b/src/elements/nble.cpp @@ -2,7 +2,7 @@ int update_NBLE(UPDATE_FUNC_ARGS) { - if (parts[i].temp > 5273.15 && sim->pv[y/CELL][x/CELL] > 50.0f) + if (parts[i].temp > 5273.15 && sim->pv[y/CELL][x/CELL] > 100.0f) { parts[i].tmp = 1; if (rand()%5 < 1) @@ -11,13 +11,13 @@ int update_NBLE(UPDATE_FUNC_ARGS) float temp = parts[i].temp; sim->part_change_type(i,x,y,PT_PLSM); parts[i].life = rand()%150+50; - sim->create_part(-3,x+rand()%3-1,y+rand()%3-1,PT_NEUT); - sim->create_part(-3,x+rand()%3-1,y+rand()%3-1,PT_ELEC); + j = sim->create_part(-3,x+rand()%3-1,y+rand()%3-1,PT_NEUT); if (j != -1) + j = sim->create_part(-3,x+rand()%3-1,y+rand()%3-1,PT_ELEC); if (j != -1) j = sim->create_part(-3,x+rand()%3-1,y+rand()%3-1,PT_PHOT); if (j != -1) { parts[j].ctype = 0xFF0000; parts[j].temp = temp; } j = sim->create_part(-3,x+rand()%3-1,y+rand()%3-1,PT_CO2); - if (j != -1) parts[j].temp = temp; + if (j != -1) parts[j].temp = temp-1000; parts[i].temp += 10000; sim->pv[y/CELL][x/CELL] += 30;