This code:
if(Game->LItems[level]&LI_COMPASS != 0){
//etc
Causes the compiler to flag up a 'cast from float to bool' error.
Not a warning, an error. Script does not compile.
However, this code:
int a = Game->LItems[level]&LI_COMPASS;
if(a != 0){
Does not.
The first one shouldn't either.
What you see:
if( (Game->LItems[level] & LI_COMPASS) != 0) {
//etc
What the compiler sees:
if( Game->LItems[level] & (LI_COMPASS != 0)) {
//etc
I think the AND operator should have a higher priority than comparison, but it clearly does not.
Oh right.
Well it used to work the other way, so obviously something's changed.
OK, nevermind this one.
Not a bug.
EDIT:
But I can't seem to find the 'change thread icon' whatsit.
Thread tools at the top of this thread. Then goto edit thread.
Aha, thanks.
Perhaps not the most obvious place?
'spose I didn't look too hard.