mirror of
https://github.com/The-Powder-Toy/The-Powder-Toy.git
synced 2025-08-29 19:00:33 +02:00
Attempt at fixing fuse crashes
This commit is contained in:
24
src/powder.c
24
src/powder.c
@@ -1352,16 +1352,18 @@ void update_particles_i(pixel *vid, int start, int inc)
|
|||||||
else if(t==PT_FUSE)
|
else if(t==PT_FUSE)
|
||||||
{
|
{
|
||||||
if(parts[i].life<=0) {
|
if(parts[i].life<=0) {
|
||||||
t = PT_NONE;
|
//t = parts[i].life = PT_NONE;
|
||||||
kill_part(i);
|
kill_part(i);
|
||||||
r = create_part(-1, x, y, PT_PLSM);
|
r = create_part(-1, x, y, PT_PLSM);
|
||||||
parts[r].life = 50;
|
if(r!=-1)
|
||||||
goto killed;
|
parts[r].life = 50;
|
||||||
|
//goto killed;
|
||||||
} else if (parts[i].life < 40) {
|
} else if (parts[i].life < 40) {
|
||||||
parts[i].life--;
|
parts[i].life--;
|
||||||
if((rand()%100)==0) {
|
if((rand()%100)==0) {
|
||||||
r = create_part(-1, (nx=x+rand()%3-1), (ny=y+rand()%3-1), PT_PLSM);
|
r = create_part(-1, (nx=x+rand()%3-1), (ny=y+rand()%3-1), PT_PLSM);
|
||||||
parts[r].life = 50;
|
if(r!=-1)
|
||||||
|
parts[r].life = 50;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if((pv[y/CELL][x/CELL] > 2.7f)&&parts[i].tmp>40)
|
if((pv[y/CELL][x/CELL] > 2.7f)&&parts[i].tmp>40)
|
||||||
@@ -1369,10 +1371,10 @@ void update_particles_i(pixel *vid, int start, int inc)
|
|||||||
else if(parts[i].tmp<40&&parts[i].tmp>0)
|
else if(parts[i].tmp<40&&parts[i].tmp>0)
|
||||||
parts[i].tmp--;
|
parts[i].tmp--;
|
||||||
else if(parts[i].tmp<=0) {
|
else if(parts[i].tmp<=0) {
|
||||||
t = PT_NONE;
|
//t = PT_NONE;
|
||||||
kill_part(i);
|
kill_part(i);
|
||||||
r = create_part(-1, x, y, PT_FSEP);
|
r = create_part(-1, x, y, PT_FSEP);
|
||||||
goto killed;
|
//goto killed;
|
||||||
}
|
}
|
||||||
for(nx=-2; nx<3; nx++)
|
for(nx=-2; nx<3; nx++)
|
||||||
for(ny=-2; ny<3; ny++)
|
for(ny=-2; ny<3; ny++)
|
||||||
@@ -1393,16 +1395,18 @@ void update_particles_i(pixel *vid, int start, int inc)
|
|||||||
else if(t==PT_FSEP)
|
else if(t==PT_FSEP)
|
||||||
{
|
{
|
||||||
if(parts[i].life<=0) {
|
if(parts[i].life<=0) {
|
||||||
t = PT_NONE;
|
//t = PT_NONE;
|
||||||
kill_part(i);
|
kill_part(i);
|
||||||
r = create_part(-1, x, y, PT_PLSM);
|
r = create_part(-1, x, y, PT_PLSM);
|
||||||
parts[r].life = 50;
|
if(r!=-1)
|
||||||
goto killed;
|
parts[r].life = 50;
|
||||||
|
//goto killed;
|
||||||
} else if (parts[i].life < 40) {
|
} else if (parts[i].life < 40) {
|
||||||
parts[i].life--;
|
parts[i].life--;
|
||||||
if((rand()%10)==0) {
|
if((rand()%10)==0) {
|
||||||
r = create_part(-1, (nx=x+rand()%3-1), (ny=y+rand()%3-1), PT_PLSM);
|
r = create_part(-1, (nx=x+rand()%3-1), (ny=y+rand()%3-1), PT_PLSM);
|
||||||
parts[r].life = 50;
|
if(r!=-1)
|
||||||
|
parts[r].life = 50;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
for(nx=-2; nx<3; nx++)
|
for(nx=-2; nx<3; nx++)
|
||||||
|
Reference in New Issue
Block a user