oxygen fusion, fix two small bugs
This commit is contained in:
parent
be2fe943c0
commit
1c7fdb0c26
@ -18,28 +18,47 @@
|
|||||||
int update_O2(UPDATE_FUNC_ARGS)
|
int update_O2(UPDATE_FUNC_ARGS)
|
||||||
{
|
{
|
||||||
int r,rx,ry;
|
int r,rx,ry;
|
||||||
for (rx=-2; rx<3; rx++)
|
if (parts[i].temp < 9773.15)
|
||||||
for (ry=-2; ry<3; ry++)
|
{
|
||||||
if (x+rx>=0 && y+ry>=0 && x+rx<XRES && y+ry<YRES && (rx || ry))
|
for (rx=-2; rx<3; rx++)
|
||||||
{
|
for (ry=-2; ry<3; ry++)
|
||||||
r = pmap[y+ry][x+rx];
|
if (x+rx>=0 && y+ry>=0 && x+rx<XRES && y+ry<YRES && (rx || ry))
|
||||||
if (!r)
|
|
||||||
continue;
|
|
||||||
|
|
||||||
if ((r&0xFF)==PT_FIRE)
|
|
||||||
{
|
{
|
||||||
parts[r>>8].temp+=(rand()/(RAND_MAX/100));
|
r = pmap[y+ry][x+rx];
|
||||||
if(parts[r>>8].tmp&0x01)
|
if (!r)
|
||||||
parts[r>>8].temp=3473;
|
continue;
|
||||||
parts[r>>8].tmp |= 2;
|
|
||||||
}
|
|
||||||
if ((r&0xFF)==PT_FIRE || (r&0xFF)==PT_PLSM)
|
|
||||||
{
|
|
||||||
create_part(i,x,y,PT_FIRE);
|
|
||||||
parts[i].temp+=(rand()/(RAND_MAX/100));
|
|
||||||
parts[i].tmp |= 2;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
if ((r&0xFF)==PT_FIRE)
|
||||||
|
{
|
||||||
|
parts[r>>8].temp+=(rand()/(RAND_MAX/100));
|
||||||
|
if(parts[r>>8].tmp&0x01)
|
||||||
|
parts[r>>8].temp=3473;
|
||||||
|
parts[r>>8].tmp |= 2;
|
||||||
|
}
|
||||||
|
if ((r&0xFF)==PT_FIRE || (r&0xFF)==PT_PLSM)
|
||||||
|
{
|
||||||
|
create_part(i,x,y,PT_FIRE);
|
||||||
|
parts[i].temp+=(rand()/(RAND_MAX/100));
|
||||||
|
parts[i].tmp |= 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (parts[i].temp > 9973.15 && pv[y/CELL][x/CELL] > 250.0f && abs(gravx[(((y/sdl_scale)/CELL)*(XRES/CELL))+((x/sdl_scale)/CELL)]) + abs(gravy[(((y/sdl_scale)/CELL)*(XRES/CELL))+((x/sdl_scale)/CELL)]) > 50)
|
||||||
|
{
|
||||||
|
if (rand()%5 < 1)
|
||||||
|
{
|
||||||
|
int j;
|
||||||
|
part_change_type(i,x,y,PT_PLSM);
|
||||||
|
parts[i].life = rand()%150+50;
|
||||||
|
j = create_part(-3,x+rand()%3-1,y+rand()%3-1,PT_NEUT); if (j != -1) parts[j].temp = 15000;
|
||||||
|
j = create_part(-3,x+rand()%3-1,y+rand()%3-1,PT_PHOT); if (j != -1) parts[j].temp = 15000;
|
||||||
|
j = create_part(-3,x+rand()%3-1,y+rand()%3-1,PT_BRMT); if (j != -1) parts[j].temp = 15000;
|
||||||
|
j = 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;
|
||||||
|
pv[y/CELL][x/CELL] += 300;
|
||||||
|
}
|
||||||
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -51,10 +51,11 @@ int update_CO2(UPDATE_FUNC_ARGS) {
|
|||||||
j = create_part(-3,x+rand()%3-1,y+rand()%3-1,PT_NEUT); if (j != -1) parts[j].temp = 15000;
|
j = create_part(-3,x+rand()%3-1,y+rand()%3-1,PT_NEUT); if (j != -1) parts[j].temp = 15000;
|
||||||
j = create_part(-3,x+rand()%3-1,y+rand()%3-1,PT_ELEC); if (j != -1) parts[j].temp = 15000;
|
j = create_part(-3,x+rand()%3-1,y+rand()%3-1,PT_ELEC); if (j != -1) parts[j].temp = 15000;
|
||||||
j = create_part(-3,x+rand()%3-1,y+rand()%3-1,PT_O2); if (j != -1) parts[j].temp = 15000;
|
j = create_part(-3,x+rand()%3-1,y+rand()%3-1,PT_O2); if (j != -1) parts[j].temp = 15000;
|
||||||
j = 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; }
|
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;
|
||||||
pv[y/CELL][x/CELL] += 100;
|
pv[y/CELL][x/CELL] += 100;
|
||||||
|
return 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -94,7 +94,7 @@ int update_ELEC(UPDATE_FUNC_ARGS) {
|
|||||||
kill_part(i);
|
kill_part(i);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
if (ptypes[r&0xFF].properties & PROP_CONDUCTS && ((r&0xFF)!=PT_H2||parts[i].temp<2273.15))
|
if (ptypes[r&0xFF].properties & PROP_CONDUCTS && ((r&0xFF)!=PT_NBLE||parts[i].temp<2273.15))
|
||||||
{
|
{
|
||||||
create_part(-1, x+rx, y+ry, PT_SPRK);
|
create_part(-1, x+rx, y+ry, PT_SPRK);
|
||||||
kill_part(i);
|
kill_part(i);
|
||||||
|
Loading…
Reference in New Issue
Block a user