summaryrefslogtreecommitdiff
path: root/src/simulation/elements
diff options
context:
space:
mode:
authorSimon Robertshaw <simon@hardwired.org.uk>2012-07-25 17:01:15 (GMT)
committer Simon Robertshaw <simon@hardwired.org.uk>2012-07-25 17:01:15 (GMT)
commit971fbc71f94a85298e3a688ca772e7bb5de90ed6 (patch)
tree5648a18159a484dce6d2ba398b5c9984db42e3b8 /src/simulation/elements
parent2135d886442f6d44a07ca8b34ec410e9ed0a4126 (diff)
downloadpowder-971fbc71f94a85298e3a688ca772e7bb5de90ed6.zip
powder-971fbc71f94a85298e3a688ca772e7bb5de90ed6.tar.gz
TPT: fix compression during fusion 287822229f
Diffstat (limited to 'src/simulation/elements')
-rw-r--r--src/simulation/elements/CO2.cpp11
-rw-r--r--src/simulation/elements/H2.cpp14
-rw-r--r--src/simulation/elements/NBLE.cpp22
-rw-r--r--src/simulation/elements/O2.cpp15
4 files changed, 32 insertions, 30 deletions
diff --git a/src/simulation/elements/CO2.cpp b/src/simulation/elements/CO2.cpp
index 745dedd..6b33795 100644
--- a/src/simulation/elements/CO2.cpp
+++ b/src/simulation/elements/CO2.cpp
@@ -83,15 +83,14 @@ int Element_CO2::update(UPDATE_FUNC_ARGS)
if (rand()%5 < 1)
{
int j;
- sim->kill_part(i);
+ sim->create_part(i,x,y,PT_O2);
+
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;
- if (rand()%1000 < 1) { 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 = 3; } }
+ if (!(rand()%50)) { j = sim->create_part(-3,x+rand()%3-1,y+rand()%3-1,PT_ELEC); if (j != -1) parts[j].temp = 15000; }
+ //if (rand()%1000 < 1) { j = create_part(-3,x+rand()%3-1,y+rand()%3-1,PT_SING); if (j != -1) { parts[j].temp = 15000; parts[i].life = 3; } }
- parts[i].temp += 15000;
+ parts[i].temp = 15000;
sim->pv[y/CELL][x/CELL] += 100;
- return 1;
}
}
return 0;
diff --git a/src/simulation/elements/H2.cpp b/src/simulation/elements/H2.cpp
index 8d5bf0d..f4f2822 100644
--- a/src/simulation/elements/H2.cpp
+++ b/src/simulation/elements/H2.cpp
@@ -91,21 +91,21 @@ int Element_H2::update(UPDATE_FUNC_ARGS)
{
int j;
float temp = parts[i].temp;
- sim->part_change_type(i,x,y,PT_PLSM);
- parts[i].life = rand()%150+50;
+ sim->create_part(i,x,y,PT_NBLE);
+
j = sim->create_part(-3,x+rand()%3-1,y+rand()%3-1,PT_NEUT); if (j != -1) parts[j].temp = temp;
- j = sim->create_part(-3,x+rand()%3-1,y+rand()%3-1,PT_ELEC); if (j != -1) parts[j].temp = temp;
- 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; }
+ if (!(rand()%10)) { j = sim->create_part(-3,x+rand()%3-1,y+rand()%3-1,PT_ELEC); if (j != -1) parts[j].temp = temp; }
+ 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; }
- j = sim->create_part(-3,x+rand()%3-1,y+rand()%3-1,PT_NBLE); if (j != -1) parts[j].temp = temp;
+ j = sim->create_part(-3,x+rand()%3-1,y+rand()%3-1,PT_PLSM); if (j != -1) parts[j].temp = temp;
if (rand()%2)
{
j = sim->create_part(-3,x+rand()%3-1,y+rand()%3-1,PT_NBLE);
if (j != -1) { parts[j].tmp = 1; parts[j].temp = temp; }
}
- parts[i].temp += 750+rand()%500;
+
+ parts[i].temp = temp+750+rand()%500;
sim->pv[y/CELL][x/CELL] += 30;
}
}
diff --git a/src/simulation/elements/NBLE.cpp b/src/simulation/elements/NBLE.cpp
index d087102..2854c6c 100644
--- a/src/simulation/elements/NBLE.cpp
+++ b/src/simulation/elements/NBLE.cpp
@@ -55,20 +55,18 @@ int Element_NBLE::update(UPDATE_FUNC_ARGS)
parts[i].tmp = 1;
if (rand()%5 < 1)
{
- int j;
- 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); 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; }
+ int j;
+ float temp = parts[i].temp;
+ sim->create_part(i,x,y,PT_CO2);
- j = sim->create_part(-3,x+rand()%3-1,y+rand()%3-1,PT_CO2);
- if (j != -1) parts[j].temp = temp-1000;
+ j = sim->create_part(-3,x+rand()%3-1,y+rand()%3-1,PT_NEUT); if (j != -1) parts[j].temp = temp;
+ if (!(rand()%25)) { j = sim->create_part(-3,x+rand()%3-1,y+rand()%3-1,PT_ELEC); if (j != -1) parts[j].temp = temp; }
+ 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; }
- parts[i].temp += 10000;
- sim->pv[y/CELL][x/CELL] += 30;
+ j = sim->create_part(-3,x+rand()%3-1,y+rand()%3-1,PT_PLSM); if (j != -1) parts[j].temp = temp;
+
+ parts[i].temp = temp+1750+rand()%500;
+ sim->pv[y/CELL][x/CELL] += 50;
}
}
return 0;
diff --git a/src/simulation/elements/O2.cpp b/src/simulation/elements/O2.cpp
index 1167e76..4a48512 100644
--- a/src/simulation/elements/O2.cpp
+++ b/src/simulation/elements/O2.cpp
@@ -81,14 +81,19 @@ int Element_O2::update(UPDATE_FUNC_ARGS)
if (rand()%5 < 1)
{
int j;
- sim->part_change_type(i,x,y,PT_PLSM);
- parts[i].life = rand()%150+50;
+ sim->create_part(i,x,y,PT_BRMT);
+
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_PHOT); if (j != -1) parts[j].temp = 15000;
- j = sim->create_part(-3,x+rand()%3-1,y+rand()%3-1,PT_BRMT); 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()%25+50; }
+ j = sim->create_part(-3,x+rand()%3-1,y+rand()%3-1,PT_PLSM); if (j != -1) parts[j].temp = 15000;
+ if (rand()%5 < 2) {
+ 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()%25+50;
+ }
+ }
- parts[i].temp += 15000;
+ parts[i].temp = 15000;
sim->pv[y/CELL][x/CELL] += 300;
}
}