Here's another interesting one. It's a type of issue I come across a lot. The compiler tells me there's an error, but if I just rearrange things, or delete and re-edit, it works again.
HEre's the game telling me that "dark_zone" must refer to a zone.
I have a dark zone test which I took from the manual....
is_dark : boolean_dynamic {(
is_at "dark_zone" &&
is_present "torch" == false
)}
The compiler tells me that "dark_zone" must be a zone... which it is:
zones {
dark_zone : zone {
locations = [ road_12, road_13]
}}
Now, if I comment out the is_dark test, like this:
// is_dark : boolean_dynamic
//{(
// is_at "dark_zone" &&
//is_present "torch" == false
//)}
Then the error correctly moves to a light test which relies on it. It tells me there's no function "is_dark". Which is correct. Now the strange thing happens.....
If I go back and UNCOMMENT the is_dark test, making no other changes other than to remove the // comment symbols, suddenly the parser is happy, and the game will compile.
This does happen very occasionally... I just have to cut a block of code to force the error away, and then pasting it back resolves the issue.