Revert "Don't reset decorations when sparking with INWR+CRAY(most things)"

This reverts commit 5ad67f7778.
This commit is contained in:
jacksonmj
2013-09-08 17:28:51 +01:00
parent 7270461985
commit 45dc8ac757

View File

@@ -80,7 +80,7 @@ int Element_CRAY::update(UPDATE_FUNC_ARGS)
unsigned int colored = 0; unsigned int colored = 0;
bool destroy = parts[r>>8].ctype==PT_PSCN; bool destroy = parts[r>>8].ctype==PT_PSCN;
bool nostop = parts[r>>8].ctype==PT_INST; bool nostop = parts[r>>8].ctype==PT_INST;
bool createOnExisting = (parts[r>>8].ctype==PT_INWR); bool createSpark = (parts[r>>8].ctype==PT_INWR);
int partsRemaining = 255; int partsRemaining = 255;
if (parts[i].tmp) //how far it shoots if (parts[i].tmp) //how far it shoots
partsRemaining = parts[i].tmp; partsRemaining = parts[i].tmp;
@@ -89,36 +89,17 @@ int Element_CRAY::update(UPDATE_FUNC_ARGS)
break; break;
} }
r = pmap[y+nyi+nyy][x+nxi+nxx]; r = pmap[y+nyi+nyy][x+nxi+nxx];
if (!sim->IsWallBlocking(x+nxi+nxx, y+nyi+nyy, parts[i].ctype) && (!r || createOnExisting)) { // create, also set color if it has passed through FILT if (!sim->IsWallBlocking(x+nxi+nxx, y+nyi+nyy, parts[i].ctype) && (!sim->pmap[y+nyi+nyy][x+nxi+nxx] || createSpark)) { // create, also set color if it has passed through FILT
int nr; int nr;
if (createOnExisting) if (parts[i].ctype == PT_LIFE)
{ nr = sim->create_part(-1, x+nxi+nxx, y+nyi+nyy, parts[i].ctype|(parts[i].tmp2<<8));
if (r&0xFF)
{
if (parts[i].ctype == PT_SOAP)
parts[r>>8].dcolour = 0;
else if (parts[i].ctype == PT_FILT)
parts[r>>8].dcolour = colored;
else
nr = sim->create_part(-1, x+nxi+nxx, y+nyi+nyy, PT_SPRK);
if ((r&0xFF)==PT_FILT)
colored = wavelengthToDecoColour(Element_FILT::getWavelengths(&parts[r>>8]));
if (!--partsRemaining)
docontinue = 0;
}
}
else else
{ nr = sim->create_part(-1, x+nxi+nxx, y+nyi+nyy, parts[i].ctype);
if (parts[i].ctype == PT_LIFE) if (nr!=-1) {
nr = sim->create_part(-1, x+nxi+nxx, y+nyi+nyy, parts[i].ctype|(parts[i].tmp2<<8)); parts[nr].dcolour = colored;
else parts[nr].temp = parts[i].temp;
nr = sim->create_part(-1, x+nxi+nxx, y+nyi+nyy, parts[i].ctype); if(!--partsRemaining)
if (nr!=-1) { docontinue = 0;
parts[nr].dcolour = colored;
parts[nr].temp = parts[i].temp;
if(!--partsRemaining)
docontinue = 0;
}
} }
} else if ((r&0xFF)==PT_FILT) { // get color if passed through FILT } else if ((r&0xFF)==PT_FILT) { // get color if passed through FILT
colored = wavelengthToDecoColour(Element_FILT::getWavelengths(&parts[r>>8])); colored = wavelengthToDecoColour(Element_FILT::getWavelengths(&parts[r>>8]));