fix sltw + liquid rubiduim explosion, make it work like water's

This commit is contained in:
jacob1 2012-12-18 15:17:57 -05:00
parent b236c75209
commit 9a2df6b824
2 changed files with 8 additions and 7 deletions

View File

@ -39,7 +39,7 @@
#define FLAG_STAGNANT 0x1
#define FLAG_SKIPMOVE 0x2 // skip movement for one frame, only implemented for PHOT
#define FLAG_WATEREQUAL 0x4
#define FLAG_WATEREQUAL 0x4 //if a liquid was already checked during equalization
#define FLAG_MOVABLE 0x8 // if can move
#define ST_NONE 0

View File

@ -61,17 +61,18 @@ int Element_SLTW::update(UPDATE_FUNC_ARGS)
sim->part_change_type(r>>8,x+rx,y+ry,PT_SLTW);
if ((r&0xFF)==PT_PLNT&&5>(rand()%1000))
sim->kill_part(r>>8);
if (((r&0xFF)==PT_RBDM||(r&0xFF)==PT_LRBD) && !sim->legacy_enable && parts[i].temp>(273.15f+12.0f) && 1>(rand()%500))
if (((r&0xFF)==PT_RBDM||(r&0xFF)==PT_LRBD) && (sim->legacy_enable||parts[i].temp>(273.15f+12.0f)) && 1>(rand()%500))
{
sim->part_change_type(i,x,y,PT_FIRE);
parts[i].life = 4;
parts[i].ctype = PT_WATR;
}
if ((r&0xFF)==PT_FIRE){
if ((r&0xFF)==PT_FIRE && parts[r>>8].ctype!=PT_WATR){
sim->kill_part(r>>8);
if(1>(rand()%150)){
sim->kill_part(i);
return 1;
}
if(1>(rand()%150)){
sim->kill_part(i);
return 1;
}
}
}
return 0;