	SetCameraFocusX(0);
	SetCameraFocusY(0);
	SetCameraFocusZ(0);
	//SetCameraRadius(40);
    SetCameraElevationAngle(0);
	SetCameraAzimuthAngle(90);
	StageBG;
	StageBG2;
	StageBG2; //Wooo!
	Elevator;

task Elevator{
	let boop = 0;
	ascent(i in 0..900){
	SetCameraRadius(100+i);
	SetCameraRoll(5*sin(i));
	SetCameraFocusX(50*sin(i/100));
	boop = i;
	loop(1){yield;}
	}
	
	loop{
	SetCameraFocusX(50*sin(boop/100));
	SetCameraRoll(5*sin(boop));
	boop++;
	yield;
	}
}


task StageBG{
let mult = 0;
let speed = 6;
let cap = 4;
let obj = ObjPrim_Create(OBJ_SPRITE_3D);
ObjPrim_SetTexture(obj, GetCurrentScriptDirectory ~ "./img/stage02a.png");
Obj_SetRenderPriorityI(obj,20);
ObjRender_SetAngleX(obj,-30);
ObjRender_SetScaleXYZ(obj,2,2,1.5);
ObjRender_SetBlendType(obj,BLEND_ADD_ARGB);
loop{
ObjSprite3D_SetSourceDestRect(obj,0,0+(mult*speed),256*2,256*3+(mult*speed));
mult++;
if(speed<cap){speed-=0.01;}
yield;
}
}

task StageBG2{
let mult = 0;
let obj = ObjPrim_Create(OBJ_SPRITE_3D);
ObjPrim_SetTexture(obj, GetCurrentScriptDirectory ~ "./img/stage02b.png");
Obj_SetRenderPriorityI(obj,20);
ObjRender_SetAngleX(obj,-30);
ObjRender_SetScaleXYZ(obj,25,25,1.5);
ObjRender_SetBlendType(obj,BLEND_ALPHA);
ObjRender_SetAlpha(obj, 0);
loop{
ObjSprite3D_SetSourceDestRect(obj,0,0+(mult),256*2,256*3+(mult));
ObjRender_SetAlpha(obj, (mult/12));
mult++;
yield;
}
}