diff options
| author | Simon 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) |
| commit | 971fbc71f94a85298e3a688ca772e7bb5de90ed6 (patch) | |
| tree | 5648a18159a484dce6d2ba398b5c9984db42e3b8 /src/simulation | |
| parent | 2135d886442f6d44a07ca8b34ec410e9ed0a4126 (diff) | |
| download | powder-971fbc71f94a85298e3a688ca772e7bb5de90ed6.zip powder-971fbc71f94a85298e3a688ca772e7bb5de90ed6.tar.gz | |
TPT: fix compression during fusion 287822229f
Diffstat (limited to 'src/simulation')
| -rw-r--r-- | src/simulation/elements/CO2.cpp | 11 | ||||
| -rw-r--r-- | src/simulation/elements/H2.cpp | 14 | ||||
| -rw-r--r-- | src/simulation/elements/NBLE.cpp | 22 | ||||
| -rw-r--r-- | src/simulation/elements/O2.cpp | 15 |
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; } } |
