TPT: fix compression during fusion 287822229f

This commit is contained in:
Simon Robertshaw 2012-07-25 18:01:15 +01:00
parent 2135d88644
commit 971fbc71f9
4 changed files with 34 additions and 32 deletions

View File

@ -83,15 +83,14 @@ int Element_CO2::update(UPDATE_FUNC_ARGS)
if (rand()%5 < 1) if (rand()%5 < 1)
{ {
int j; 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; } }
parts[i].temp += 15000; j = sim->create_part(-3,x+rand()%3-1,y+rand()%3-1,PT_NEUT); if (j != -1) parts[j].temp = 15000;
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;
sim->pv[y/CELL][x/CELL] += 100; sim->pv[y/CELL][x/CELL] += 100;
return 1;
} }
} }
return 0; return 0;

View File

@ -91,21 +91,21 @@ int Element_H2::update(UPDATE_FUNC_ARGS)
{ {
int j; int j;
float temp = parts[i].temp; float temp = parts[i].temp;
sim->part_change_type(i,x,y,PT_PLSM); sim->create_part(i,x,y,PT_NBLE);
parts[i].life = rand()%150+50;
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; }
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_NEUT); if (j != -1) 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_PLSM); if (j != -1) parts[j].temp = temp;
if (rand()%2) if (rand()%2)
{ {
j = sim->create_part(-3,x+rand()%3-1,y+rand()%3-1,PT_NBLE); 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; } 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; sim->pv[y/CELL][x/CELL] += 30;
} }
} }

View File

@ -57,18 +57,16 @@ int Element_NBLE::update(UPDATE_FUNC_ARGS)
{ {
int j; int j;
float temp = parts[i].temp; float temp = parts[i].temp;
sim->part_change_type(i,x,y,PT_PLSM); sim->create_part(i,x,y,PT_CO2);
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; }
j = sim->create_part(-3,x+rand()%3-1,y+rand()%3-1,PT_CO2); j = sim->create_part(-3,x+rand()%3-1,y+rand()%3-1,PT_NEUT); if (j != -1) parts[j].temp = temp;
if (j != -1) parts[j].temp = temp-1000; 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; j = sim->create_part(-3,x+rand()%3-1,y+rand()%3-1,PT_PLSM); if (j != -1) parts[j].temp = temp;
sim->pv[y/CELL][x/CELL] += 30;
parts[i].temp = temp+1750+rand()%500;
sim->pv[y/CELL][x/CELL] += 50;
} }
} }
return 0; return 0;

View File

@ -81,14 +81,19 @@ int Element_O2::update(UPDATE_FUNC_ARGS)
if (rand()%5 < 1) if (rand()%5 < 1)
{ {
int j; int j;
sim->part_change_type(i,x,y,PT_PLSM); sim->create_part(i,x,y,PT_BRMT);
parts[i].life = rand()%150+50;
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_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_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_PLSM); 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; } 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; sim->pv[y/CELL][x/CELL] += 300;
} }
} }