INWR+CRAY(SMTH) = create tmp number of NON-decorated SMTH, don't stop at obstacles, stop at any wall
INWR+CRAY(SPRK) = spark tmp number of conductive particles (except for SWCH), don't stop at obstacles, stop at any wall
INST+CRAY(SMTH) = create tmp number of decorated SMTH, don't stop at all
PSCN+CRAY(SMTH) = create tmp number of decorated SMTH, destroy obstacles (but don't create SMTH at this spot), stop at DMND, stop at any wall
OTHER+CRAY(SMTH) = create tmp number of SMTH, stop at the first obstacle, stop at any wall
CRAY and FILT are not obstacles.
UPD
I'm looking at CRAY.cpp and realize that half of CRAY's "features" are most probably just bugs, lawl. OK... I think you just have to change:
if (nr!=-1) {
parts[nr].dcolour = colored;
parts[nr].temp = parts[i].temp;
if(!--partsRemaining)
docontinue = 0;
}
To:
if (nr!=-1) {
if (colored)
parts[nr].dcolour = colored;
parts[nr].temp = parts[i].temp;
if(!--partsRemaining)
docontinue = 0;
}
How about DTEC(SPRK)?
Also (I hope) INWR(or METL or INST)+CRAY(CRAY)+CRAY(SOAP) (at least something like that) would delete colour. Would be third easy way to erase deco. Fourth way, replace it with BIZR :D