VISIBLE gibt es nicht mehr, nur noch die Flags INVISIBLE (für Level-Entities) und SHOW (für View-Entities).

set und reset sind Makros, die sich, wie bereits von dir bezweifelt, nur auf die gewöhnlichen flags auswirken. Du kannst dir für flags2 selbst solche definieren oder die betreffenden flags direkt setzen, bspw. wie folgt:
sky_1.flags2 |= SHOW; // an
sky_1.flags2 &= ~SHOW; // aus

Deine Funktion "time" ist zudem nicht sonderlich gut durchdacht, nicht nur, dass Variable und Funktionenname gleich heißen, sondern auch, dass der Bereich hinter der while-Schleife niemals ausgeführt wird. Zudem empfehle ich, die Verwendung der wait-Funktion mit negativem Argument zu vermeiden. Wenn ich die Absicht der Funktion korrekt verstehe, lässt sie sich alternativ schreiben wie folgt:

Code:
void do_sky()
{
	var time = 0;
	sky_1.flags2 |= SHOW;
	sky_2.flags2 &= ~SHOW;
	while(1)
	{
		while(time < 12*16) // 16 ticks = 1 Sekunde
		{
			time += time_step;
			wait(1);
		}
		sky_1.flags2 &= ~SHOW;
		sky_2.flags2 |= SHOW;
		time = 0;
		while(time < 12*16)
		{
			time += time_step;
			wait(1);
		}
		sky_1.flags2 |= SHOW;
		sky_2.flags2 &= ~SHOW;
		wait(1);
	}
}



"Falls das Resultat nicht einfach nur dermassen gut aussieht, sollten Sie nochmal von vorn anfangen..." - Manual

Check out my new game: Pogostuck: Rage With Your Friends