summaryrefslogtreecommitdiff
path: root/src/elements
diff options
context:
space:
mode:
authorSimon Robertshaw <simon@hardwired.org.uk>2012-04-18 17:52:37 (GMT)
committer Simon Robertshaw <simon@hardwired.org.uk>2012-04-18 17:52:37 (GMT)
commita8483798cca834beb8d8657ab9e7508912dc5ebf (patch)
tree6f26f061b75f2b8e4c9d89fa9d140849de335dc4 /src/elements
parentbf935ac7d8900d62db5007f0a6be13a0afb1491b (diff)
downloadpowder-a8483798cca834beb8d8657ab9e7508912dc5ebf.zip
powder-a8483798cca834beb8d8657ab9e7508912dc5ebf.tar.gz
TPT: fusion step 3 8db6230414
Diffstat (limited to 'src/elements')
-rw-r--r--src/elements/co2.cpp15
-rw-r--r--src/elements/h2.cpp4
-rw-r--r--src/elements/nble.cpp8
3 files changed, 21 insertions, 6 deletions
diff --git a/src/elements/co2.cpp b/src/elements/co2.cpp
index 62bc646..b267a73 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 8ebc1a9..fc2e6c8 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 c35859f..13e4845 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;