function worldPlay03_0 {
	wait(120);
	// --------------------- pattern 00 -----------------------------------
	
	ascent(i in 0..2) { 
		enyDjFlightFairy00(GetCenterX-128,GetClipMinY,SMALL_RED,16,-0.5);
		wait(10);
		enyDjFlightFairy00(GetCenterX-48,GetClipMinY,SMALL_RED,32,-0.8);
		wait(10);
		enyDjFlightFairy00(GetCenterX+128,GetClipMinY,SMALL_BLUE,96,0.8);
		wait(10);
		enyDjFlightFairy00(GetCenterX-96,GetClipMinY,SMALL_RED,128,-0.5);
		wait(10);
		enyDjFlightFairy00(GetCenterX+112,GetClipMinY,SMALL_RED,112,0.8);
		wait(10);
		enyDjFlightFairy00(GetCenterX-64,GetClipMinY,SMALL_RED,32,-0.8);
		wait(10);
		enyDjFlightFairy00(GetCenterX,GetClipMinY,SMALL_RED,128,0.8);
		wait(10);
		enyDjFlightFairy00(GetCenterX-128,GetClipMinY,SMALL_RED,16,-0.5);
		wait(10);
		enyDjFlightFairy00(GetCenterX-16,GetClipMinY,SMALL_RED,32,-0.8);
		wait(10);
		enyDjFlightFairy00(GetCenterX+128,GetClipMinY,SMALL_BLUE,96,0.8);
		wait(10);
		enyDjFlightFairy00(GetCenterX-96,GetClipMinY,SMALL_RED,128,-0.5);
		wait(10);
		enyDjFlightFairy00(GetCenterX-48,GetClipMinY,SMALL_RED,32,-0.8);
		wait(10);
	}
	// Logo pause
	wait(360);
	
	// --------------------- pattern 01 -----------------------------------
	
	task deltaFormation(t) {
		ascent(i in 0..t) { 
			// delta formation
			enyDjFlightFairy02(GetCenterX-64,GetClipMinY,SMALL_RED,64,0);
			wait(5);
			enyDjFlightFairy01(GetCenterX-16-64,GetClipMinY,SMALL_BLUE,64,0.3);
			enyDjFlightFairy01(GetCenterX+16-64,GetClipMinY,SMALL_BLUE,64,-0.3);
			wait(5);
			enyDjFlightFairy01(GetCenterX-32-64,GetClipMinY,SMALL_BLUE,64,0.5);
			enyDjFlightFairy01(GetCenterX+32-64,GetClipMinY,SMALL_BLUE,64,-0.5);	
			wait(5);	
			enyDjFlightFairy02(GetCenterX-48-64,GetClipMinY,SMALL_RED,64,0.8);
			enyDjFlightFairy02(GetCenterX+48-64,GetClipMinY,SMALL_RED,64,-0.8);
			wait(60);
			
			// delta formation
			enyDjFlightFairy02(GetCenterX+64,GetClipMinY,SMALL_RED,64,0);
			wait(5);
			enyDjFlightFairy01(GetCenterX-16+64,GetClipMinY,SMALL_BLUE,64,0.3);
			enyDjFlightFairy01(GetCenterX+16+64,GetClipMinY,SMALL_BLUE,64,-0.3);
			wait(5);
			enyDjFlightFairy01(GetCenterX-32+64,GetClipMinY,SMALL_BLUE,64,0.5);
			enyDjFlightFairy01(GetCenterX+32+64,GetClipMinY,SMALL_BLUE,64,-0.5);	
			wait(5);	
			enyDjFlightFairy02(GetCenterX-48+64,GetClipMinY,SMALL_RED,64,0.8);
			enyDjFlightFairy02(GetCenterX+48+64,GetClipMinY,SMALL_RED,64,-0.8);
			wait(60);
		}
	}
	
	deltaFormation(2);
	wait(420);
	
	// --------------------- pattern 03 -----------------------------------
	
	wait(160);
	enyDjFairyFamWave(GetClipMaxX+16,GetClipMinY+72,SMALL_BLUE,FAM_RED,-2,-512);
	wait(30);
	ascent(i in 0..7) { 
		enyDjBallAppear00(GetClipMinX+32,GetClipMinY+32+i*64,YINYANG_RED,"left");
		wait(25);
	}
	wait(240);
	enyDjFairyFamWave(GetClipMinX-16,GetClipMinY+72,SMALL_RED,FAM_RED,2,512); 	
	wait(30);
	ascent(i in 0..7) { 
		enyDjBallAppear00(GetClipMaxX-32,GetClipMinY+32+i*64,YINYANG_RED,"right");
		wait(25);
	}
	wait(300);
	
	// --------------------- pattern 04 -----------------------------------
	
	enyDjAceFairy(GetCenterX-88,GetClipMinY,96,-0.8);
	wait(60);
	enyDjAceFairy(GetCenterX+88,GetClipMinY,96,0.8);
	wait(180);
	
	enyDjGunnerLarge(GetClipMinX-16,GetCenterY-64,0.3,1.2,300);
	wait(60); 
	enyDjGunnerLarge(GetClipMaxX+16,GetCenterY-64,-0.3,1.2,240);
	wait(60);
	deltaFormation(1);
	wait(180);
	
	enyDjGunnerLarge(GetClipMinX-16,GetCenterY,0.3,1.3,310);
	wait(60); 
	enyDjGunnerLarge(GetClipMaxX+16,GetCenterY-16,-0.3,1.3,230);
	wait(60); 	
	deltaFormation(1);
	wait(300);
	
	enyDjAceFairy(GetCenterX-96,GetClipMinY,64,-0.8);
	wait(30);
	enyDjAceFairy(GetCenterX-64,GetClipMinY,96,-0.8);
	wait(180);
	enyDjAceFairy(GetCenterX+96,GetClipMinY,64,0.8);
	wait(60);
	enyDjAceFairy(GetCenterX+64,GetClipMinY,96,0.8);
	wait(240);
	
	loop(120) {
		fogStart-=20;
		fogEnd-=20;
		yield;
	}
	cleanupWorld;	
}

function worldPlay03_1 {
	// --------------------- STAGE MUTATION -----------------------------------
	// City flight
	// 4000 / 13000
	fogStart = 30; fogEnd = 130; 		// real fog
	//fogStart = 19000; fogEnd = 20000;		// test fog
	fogRed = 30; fogGreen = 10; fogBlue = 10;	
	
	//cameraShift = 0; cameraLift = 256; cameraZoom = 1024; cameraTurn = 90; cameraTilt = 15; camRadius = 5;			// real 
	cameraShift = 0; cameraLift = 8192; cameraZoom = 2048; cameraTurn = 90; cameraTilt = 30; camRadius = 5;			// air approach, experimental
	
	buildDj02; stagelook = 7;
	SetFogParam(fogStart,fogEnd,30,10,10);
	
	// Nested tasks for camera effect and fog
	task cityFlightDownCam {
		while(cameraLift > 256 || cameraTilt > 15 || cameraZoom > 1024) { 
			if(cameraLift > 256) { cameraLift-=8; } 
			if(cameraZoom > 640) { cameraZoom-=32; } 
			if(cameraTilt > 15) { cameraTilt-=0.025; } 
			yield;
		}
	}
	task cityFlightDownFog { 
		while(fogStart < 5000) { fogStart+=80; fogEnd+=200; yield; }
	}
	cityFlightDownFog;
	cityFlightDownCam;

	// --------------------- pattern 05 -----------------------------------
	
	enyDjBall00(GetClipMinX+32,GetClipMinY-16,GetClipMinX+72,GetClipMinY+64,YINYANG_RED,"left");
	enyDjBall00(GetClipMaxX-32,GetClipMinY-16,GetClipMaxX-72,GetClipMinY+64,YINYANG_RED,"right");
	wait(120);
	enyDjBall00(GetClipMinX+32,GetClipMinY-16,GetClipMinX+32,GetClipMinY+64,YINYANG_RED,"left");
	enyDjBall00(GetClipMaxX-32,GetClipMinY-16,GetClipMaxX-32,GetClipMinY+64,YINYANG_RED,"right");
	wait(90);
	enyDjBall00(GetCenterX-16,GetClipMinY-16,GetCenterX+32,GetClipMinY+64,YINYANG_RED,"right");
	enyDjBall00(GetCenterX+16,GetClipMinY-16,GetCenterX-32,GetClipMinY+64,YINYANG_RED,"left");	
	wait(120);
	enyDjBall00(GetClipMinX+16,GetClipMinY-16,GetClipMinX+32,GetClipMinY+48,YINYANG_RED,"left");
	enyDjBall00(GetClipMinX+32,GetClipMinY-16,GetClipMinX+64,GetClipMinY+48,YINYANG_RED,"left");
	enyDjBall00(GetClipMaxX-16,GetClipMinY-16,GetClipMaxX-32,GetClipMinY+48,YINYANG_RED,"right");
	enyDjBall00(GetClipMaxX-32,GetClipMinY-16,GetClipMaxX-64,GetClipMinY+48,YINYANG_RED,"right");
	wait(60);
	ascent(i in 0..7) { 
		enyDjFairy00(GetClipMinX-16,100+(i*16),128-(i*16),SMALL_BLUE,"left"); 
		wait(15);
	}
	ascent(i in 0..7) { 
		enyDjFairy00(GetClipMaxX+16,100+(i*16),-128+(i*16),SMALL_RED,"right"); 
		wait(15);
	}
	wait(300);
	enyDjLargeFairy00(GetClipMinX-16,GetCenterY,96);
	enyDjLargeFairy00(GetClipMaxX+16,GetCenterY,-96);	
	ascent(i in 0..7) { 
		enyDjFairy00(GetClipMinX-16,100+(i*16),128-(i*16),SMALL_BLUE,"left"); 
		wait(15);
	}
	ascent(i in 0..7) { 
		enyDjFairy00(GetClipMaxX+16,100+(i*16),-128+(i*16),SMALL_RED,"right"); 
		wait(15);
	}	
	wait(240);
	
	// --------------------- pattern 07 -----------------------------------

	enyDjStopLightFairy(GetCenterX,GetClipMinY-16,AURA_BLUE);
	wait(60);
	
	enyDjFairy02(GetClipMinX-16,GetCenterY-32,SMALL_RED,64,48);
	wait(15);
	enyDjFairy02(GetClipMinX-16,GetCenterY-64,SMALL_BLUE,32,-32);
	wait(15);
	enyDjFairy02(GetClipMinX-16,GetCenterY-92,SMALL_RED,48,32);
	wait(15);
	enyDjFairy02(GetClipMinX-16,GetCenterY-112,SMALL_BLUE,48,32);
	wait(5);
	enyDjFairy02(GetClipMaxX+16,GetCenterY-48,SMALL_RED,-16,0);
	wait(15);
	enyDjFairy02(GetClipMaxX-16,GetCenterY-112,SMALL_BLUE,-48,-44);
	wait(15);
	enyDjFairy02(GetClipMinX-16,GetCenterY,SMALL_RED,48,32);
	wait(5);
	enyDjFairy02(GetClipMaxX+16,GetCenterY-16,SMALL_BLUE,-16,0);	
	
	wait(300);
	enyDjStopLightFairy(GetCenterX-96,GetClipMinY-16,AURA_BLUE);
	enyDjStopLightFairy(GetCenterX+96,GetClipMinY-16,AURA_BLUE);
	
	// nested task
	task trafficRush00 { 
		ascent(i in 0..1) { 
			enyDjFairy02(GetClipMinX-16,GetCenterY-32,SMALL_RED,64,112);
			wait(10);
			enyDjFairy02(GetClipMinX-16,GetCenterY-144,SMALL_BLUE,32,-256);
			wait(15);
			enyDjFairy02(GetClipMinX-16,GetCenterY+48,SMALL_RED,48,-32);
			wait(5);
			enyDjFairy02(GetClipMaxX+16,GetCenterY-48,SMALL_BLUE,-16,0);
			wait(10);
			enyDjFairy02(GetClipMinX-16,GetCenterY-112,SMALL_BLUE,48,144);
			wait(5);
			enyDjFairy02(GetClipMaxX+16,GetCenterY-48,SMALL_RED,-16,-128);
			wait(15);
			enyDjFairy02(GetClipMinX-16,GetCenterY+64,SMALL_RED,48,96);
			enyDjFairy02(GetClipMinX-16,GetCenterY-72,SMALL_RED,48,-112);
			wait(10);
			enyDjFairy02(GetClipMaxX-16,GetCenterY-48,SMALL_BLUE,-48,-256);
			enyDjFairy02(GetClipMaxX+16,GetCenterY+32,SMALL_BLUE,-16,112);
			wait(10);
			enyDjFairy02(GetClipMinX-16,GetCenterY,SMALL_RED,48,-128);
			wait(5);
			enyDjFairy02(GetClipMinX-16,GetCenterY-108,SMALL_BLUE,48,96);
			wait(10);
			enyDjFairy02(GetClipMaxX-16,GetCenterY-132,SMALL_BLUE,-48,-44);
			wait(5);
			enyDjFairy02(GetClipMaxX+16,GetCenterY-96,SMALL_RED,-16,128);	
		} 
	}
	trafficRush00;	
	
	wait(240);
	
	// --------------------- CAM PREPARE  ------------------------------------- 

	// Nested task for cam
	task midbossCamPrepare {
		stagelook = 8;
		cameraSwitch = 0;
		ascent(i in 0..64) { 
			cameraLift+=42;
			cameraTilt++;
			cameraZoom-=16;
			yield;
		}
	}
	midbossCamPrepare;
	wait(120);
	
	// --------------------- pattern 08 -----------------------------------
	wait(60);
	let trainDir = -25;
	enyDjGunnerLarge(GetClipMinX-16,GetCenterY+16,0.3,1.2,300);
	ascent(i in 0..8) { 
		enyTrainBall(GetClipMinX-16,GetClipMinY-16,"left",YINYANG_GREEN,trainDir);
		trainDir+=25;
		wait(10);
	}
	wait(200);
	trainDir = 205;
	enyDjGunnerLarge(GetClipMaxX+16,GetCenterY+16,-0.3,1.2,240);
	ascent(i in 0..8) { 
		enyTrainBall(GetClipMaxX+16,GetCenterY-16,"right",YINYANG_PURPLE,trainDir);
		trainDir-=25;
		wait(10);
	}
	wait(240);
	trainDir = 205;
	enyDjGunnerLarge(GetClipMaxX+16,GetCenterY,-0.3,1.2,240);
	ascent(i in 0..8) { 
		enyTrainBall(GetClipMaxX+16,GetCenterY-16,"right",YINYANG_PURPLE,trainDir);
		trainDir-=25;
		wait(10);
	}
	wait(200);
	trainDir = -25;
	enyDjGunnerLarge(GetClipMinX-16,GetCenterY,0.3,1.2,300);
	ascent(i in 0..8) { 
		enyTrainBall(GetClipMinX-16,GetClipMinY-16,"left",YINYANG_GREEN,trainDir);
		trainDir+=25;
		wait(10);
	}	
	
	wait(300);
	
	// --------------------- pattern 09 -----------------------------------
	
	enyDjCarFairy00(GetClipMaxX-64,GetClipMinY-16,90,0.5);	
	ascent(i in 0..10) { 
		enyDjFairyTrain00(GetClipMinX+48,GetClipMaxY+16,SMALL_RED,270,"left",3,false); 
		enyDjFairyTrain00(GetClipMinX+80,GetClipMaxY+16,SMALL_RED,270,"left",3,true); 		
		wait(15);
	}
	wait(240);
	enyDjCarFairy00(GetClipMinX+64,GetClipMaxY+16,270,0.5);	
	ascent(i in 0..10) { 
		enyDjFairyTrain00(GetClipMaxX-48,GetClipMinY-16,SMALL_BLUE,90,"right",3,false); 
		enyDjFairyTrain00(GetClipMaxX-80,GetClipMinY-16,SMALL_BLUE,90,"right",3,true); 		
		wait(15);
	}
	wait(180);
	
	// --------------------- pattern 10 -----------------------------------
	enyDjCarFairy01(GetClipMaxX-64,GetClipMinY-16,90,0.5);	
	wait(60);
	enyDjCarFairy01(GetClipMaxX-128,GetClipMinY-16,90,0.5);	
	enyDjCarFairy01(GetClipMinX+128,GetClipMaxY+16,270,0.5);	
	wait(60);
	enyDjCarFairy01(GetClipMinX+64,GetClipMaxY+16,270,0.5);	
	wait(90);
	
	// regular
	enyDjCarFairy01(GetClipMaxX-64,GetClipMinY-16,90,0.5);	
	wait(15);
	enyDjCarFairy01(GetClipMinX+128,GetClipMaxY+16,270,0.5);
	wait(60);
	enyDjCarFairy01(GetClipMaxX-128,GetClipMinY-16,90,0.5);	
	enyDjCarFairy01(GetClipMinX+64,GetClipMaxY+16,270,0.5);	
	wait(30);
	enyDjCarFairy01(GetClipMaxX-64,GetClipMinY-16,90,0.5);	
	wait(30);
	enyDjCarFairy01(GetClipMinX+128,GetClipMaxY+16,270,0.5);	
	enyDjCarFairy01(GetClipMinX+64,GetClipMaxY+16,270,0.5);	

	wait(120);
	// reverse
	ascent(i in 0..2) { 
		enyDjCarFairy01(GetClipMinX+64,GetClipMinY-16,90,0.5);	
		wait(15);
		enyDjCarFairy01(GetClipMaxX-128,GetClipMaxY+16,270,0.5);
		wait(60);
		enyDjCarFairy01(GetClipMinX+128,GetClipMinY-16,90,0.5);	
		enyDjCarFairy01(GetClipMaxX-64,GetClipMaxY+16,270,0.5);	
		wait(30);
		enyDjCarFairy01(GetClipMinX+64,GetClipMinY-16,90,0.5);	
		wait(30);
		enyDjCarFairy01(GetClipMaxX-128,GetClipMaxY+16,270,0.5);	
		enyDjCarFairy01(GetClipMaxX-64,GetClipMaxY+16,270,0.5);	
		wait(90);	
	}	
	
	//makepolcar(320,-352,1024,0,180,0,"police");
	wait(360);
}

function worldPlay03_mid1 {
	// --------------------- MID BOSS 1 -------------------------------------
	
	// vs Marisa & Alice
	if(GetAreaCommonData("game","team",0) == 0) { idScript = LoadScriptInThread("script/thdcs/stage/stage03/djmid_magic.txt"); }
	
	// vs Reimu & Yukari
	if(GetAreaCommonData("game","team",0) == 1) { idScript = LoadScriptInThread("script/thdcs/stage/stage03/djmid_border.txt"); } 
	
	StartScript(idScript);
	wait(60);
	while(!IsCloseScript(idScript) && GetPlayerState() != STATE_END) { yield; }	
	plySpell(GetCenterX-72,100);
	
	// --------------------- pattern 11 -----------------------------------
	
	// Nested task for cam
	task midBossCamEnd { 
		ascent(i in 0..64) { 
			cameraLift-=42;
			cameraTilt--;
			cameraZoom+=16;
			yield;
		}
		stagelook = 7;
	}
	midBossCamEnd;
	wait(60);
	
	cameraSwitch = 1;
	
	enyDjBall02(GetCenterX,GetCenterY,YINYANG_PURPLE);
	wait(60);
	enyDjBall02(GetCenterX-64,GetCenterY-64,YINYANG_PURPLE);
	wait(60);
	enyDjBall02(GetCenterX+128,GetCenterY-64,YINYANG_PURPLE);
	wait(30);
	enyDjBall02(GetCenterX-160,GetCenterY-96,YINYANG_PURPLE);	
	enyDjBall02(GetCenterX+160,GetCenterY-72,YINYANG_PURPLE);	
	
	wait(240);
	
	// --------------------- pattern 12 -----------------------------------
	
	task deltaFormationLeft(t) {
		ascent(i in 0..t) { 
			// delta formation
			enyDjFlightFairy01(GetCenterX-64,GetClipMinY,SMALL_RED,64,0);
			wait(5);
			enyDjFlightFairy01(GetCenterX-16-64,GetClipMinY,SMALL_RED,64,0.3);
			enyDjFlightFairy01(GetCenterX+16-64,GetClipMinY,SMALL_RED,64,-0.3);
			wait(5);
			enyDjFlightFairy01(GetCenterX-32-64,GetClipMinY,SMALL_RED,64,0.5);
			enyDjFlightFairy01(GetCenterX+32-64,GetClipMinY,SMALL_RED,64,-0.5);	
			wait(5);	
			enyDjFlightFairy01(GetCenterX-48-64,GetClipMinY,SMALL_RED,64,0.8);
			enyDjFlightFairy01(GetCenterX+48-64,GetClipMinY,SMALL_RED,64,-0.8);
			wait(60);
		}
	}
	task deltaFormationRight(t) {	
		ascent(i in 0..t) { 
			// delta formation
			enyDjFlightFairy01(GetCenterX+64,GetClipMinY,SMALL_RED,64,0);
			wait(5);
			enyDjFlightFairy01(GetCenterX-16+64,GetClipMinY,SMALL_RED,64,0.3);
			enyDjFlightFairy01(GetCenterX+16+64,GetClipMinY,SMALL_RED,64,-0.3);
			wait(5);
			enyDjFlightFairy01(GetCenterX-32+64,GetClipMinY,SMALL_RED,64,0.5);
			enyDjFlightFairy01(GetCenterX+32+64,GetClipMinY,SMALL_RED,64,-0.5);	
			wait(5);	
			enyDjFlightFairy01(GetCenterX-48+64,GetClipMinY,SMALL_RED,64,0.8);
			enyDjFlightFairy01(GetCenterX+48+64,GetClipMinY,SMALL_RED,64,-0.8);
			wait(60);
		}
	}
	wait(30);
	deltaFormationLeft(1);
	wait(120);
	deltaFormationRight(1);	
	wait(60);
	enyDjAceFairy(GetCenterX-88,GetClipMinY,128,-1.5);
	enyDjAceFairy(GetCenterX+88,GetClipMinY,128,1.5);
	wait(300);	
	
	// --------------------- pattern 13 -----------------------------------
	
	enyDjFairyFamWave(GetClipMinX-16,GetClipMinY+128,SMALL_RED,FAM_RED,3,512); 
	wait(60);
	enyDjFairyFamWave(GetClipMaxX+16,GetClipMinY+128,SMALL_RED,FAM_RED,-3,-512); 
	wait(90);	
	enyDjFairyFamWave(GetClipMinX-16,GetClipMinY+128,SMALL_RED,FAM_RED,3,512); 
	wait(60);
	enyDjFairyFamWave(GetClipMaxX+16,GetClipMinY+128,SMALL_RED,FAM_RED,-3,-512); 
	wait(90);
	enyDjFairyFamWave(GetClipMinX-16,GetClipMinY+128,SMALL_RED,FAM_RED,3,512); 
	wait(360);

	loop(120) { 
		fogStart-=96; 
		fogEnd-=96; 
		yield; 
	} 
	cleanupWorld;
}

function worldPlay03_mid2 {
	// --------------------- STAGE MUTATION -----------------------------------
	// Front entrance Sunrise dome
	//fogStart = 4000; fogEnd = 5000; 		// real fog
	fogStart = 1; fogEnd = 2;
	fogRed = 30; fogGreen = 10; fogBlue = 10;	
	cameraShift = 0; cameraLift = 256; cameraZoom = -2560; cameraTurn = 90; cameraTilt = 15; camRadius = 5;			// real 
	f = 0; s = 0;
	buildDj03; stagelook = 9; cameraSwitch = 0;
	
	loop(90) { 
		fogStart+=4000/90; 
		fogEnd+=6000/90; 
		yield; 
	} 
	wait(120);
	
	// --------------------- MID BOSS 2 -------------------------------------
	
	// vs  Marisa & Alice
	if(GetAreaCommonData("game","team",0) == 0) { idScript = LoadScriptInThread("script/thdcs/stage/stage03/djmid_magic2.txt"); } 
	
	// vs Reimu & Yukari
	if(GetAreaCommonData("game","team",0) == 1) { idScript = LoadScriptInThread("script/thdcs/stage/stage03/djmid_border2.txt"); }

	StartScript(idScript);
	wait(60);
	while(!IsCloseScript(idScript) && GetPlayerState() != STATE_END) { yield; }		
	plyExtend(GetCenterX+72,100);
	cameraSwitch = 1;
	isMutatingStage = true; 
	wait(90);
	
	// Fog it up for transition. 
	loop(90) { 
		fogStart-=48; 
		fogEnd-=48; 
		cameraZoom-=64; 
		yield; 
	} 	
	cleanupWorld;
}

function worldPlay03_boss {	
	cleanupWorld;
	// --------------------- STAGE MUTATION -----------------------------------
	// Sunrise dome
	//fogStart = 2600; fogEnd = 4096;	// test fog 
	//fogStart = 1600; fogEnd = 4096;		// true
	isMutatingStage = false;
	fogStart = 1; fogEnd = 2;
	fogRed = 255; fogGreen = 64; fogBlue = 64;	
	f = 0; s = 0; cameraSwitch = 0; 
	cameraShift = 0; cameraLift = 128; cameraZoom = 1024; cameraTurn = 90; cameraTilt = 6; camRadius = 5; cameraRoll = 0; 	// true
	buildDj04; stagelook = 10;	
	
	updateDjStageFog; 
	foggy3;
	PlaySFX(SFX_CROWD00);	
	// Nested task to control fog
	task foggy3 { 
		loop(60) {
			fogStart+=1600/50;
			fogEnd+=4096/50;
			yield;
		}
	}
	// Delay to show around the inside of the dome. 
	wait(500);
	
	// --------------------- STAGE BOSS -----------------------------------
	// DJ Boss
	idScript = LoadScriptInThread("script/thdcs/stage/stage03/djboss_main.txt");
	StartScript(idScript);
	wait(60);
	while(!IsCloseScript(idScript) && GetPlayerState() != STATE_END) { yield; }	
}