//-----------------------------------------------------------------
// Inside lobby
//-----------------------------------------------------------------

// stone floor
function makelobbyvloer(px,py,pz,ax,ay,az) {
	let obj = ObjPrim_Create(OBJ_SPRITE_3D);
	ObjPrim_SetTexture(obj,afrolobbyvloer);
	Obj_SetRenderPriorityI(obj,20);
	ObjRender_SetColor(obj,64,64,64);
	ObjRender_SetAngleXYZ(obj,ax,ay,az);
	ObjRender_SetScaleXYZ(obj,1,1,0);
	ObjRender_SetPosition(obj,px,py,pz);
	
	ObjSprite3D_SetSourceDestRect(obj,0,0,1024,1024);
	ObjSprite3D_SetBillboard(obj,false);
	ObjRender_SetZWrite(obj,true);	

	stageSpriteObj = stageSpriteObj ~ [obj];
	stageSpriteZpos = stageSpriteZpos ~ [ObjRender_GetZ(obj)];
}

// carpet
function makelobbytapijt(px,py,pz,ax,ay,az) {
	let obj = ObjPrim_Create(OBJ_SPRITE_3D);
	ObjPrim_SetTexture(obj,afrolobbytapijt);
	Obj_SetRenderPriorityI(obj,20);
	ObjRender_SetColor(obj,64,64,64);
	ObjRender_SetAngleXYZ(obj,ax,ay,az);
	ObjRender_SetScaleXYZ(obj,1,1,0);
	ObjRender_SetPosition(obj,px,py,pz);
	
	ObjSprite3D_SetSourceDestRect(obj,0,0,1024,1024);
	ObjSprite3D_SetBillboard(obj,false);
	ObjRender_SetZWrite(obj,true);

	stageSpriteObj = stageSpriteObj ~ [obj];
	stageSpriteZpos = stageSpriteZpos ~ [ObjRender_GetZ(obj)];
}

// ceiling
function makelobbyceil(px,py,pz,ax,ay,az) {
	let obj = ObjPrim_Create(OBJ_SPRITE_3D);
	ObjPrim_SetTexture(obj,afrolobbyceil);
	Obj_SetRenderPriorityI(obj,20);
	ObjRender_SetColor(obj,lightBundleFogRed,lightBundleFogGreen,lightBundleFogBlue);	
	ObjRender_SetAngleXYZ(obj,ax,ay,az);
	ObjRender_SetScaleXYZ(obj,2.25,2.25,0);
	ObjRender_SetPosition(obj,px,py,pz);

	ObjSprite3D_SetSourceDestRect(obj,0,0,512,512);
	ObjSprite3D_SetBillboard(obj,false);
	ObjRender_SetZWrite(obj,true);

	updateMuurColour(obj);
	
	stageSpriteObj = stageSpriteObj ~ [obj];
	stageSpriteZpos = stageSpriteZpos ~ [ObjRender_GetZ(obj)];
}

// masked wall for the glass wall
function makelobbyglasmuur(px,py,pz,ax,ay,az) {
	let obj = ObjPrim_Create(OBJ_SPRITE_3D);
	ObjPrim_SetTexture(obj,afrolobbyglasmuur);
	ObjRender_SetColor(obj,64,64,64);
	Obj_SetRenderPriorityI(obj,20);
	ObjRender_SetAngleXYZ(obj,ax,ay,az);
	ObjRender_SetScaleXYZ(obj,1,1,0);
	ObjRender_SetPosition(obj,px,py,pz);

	ObjSprite3D_SetSourceDestRect(obj,0,0,1024,1024);
	ObjSprite3D_SetBillboard(obj,false);
	ObjRender_SetZWrite(obj,true);
	
	stageSpriteObj = stageSpriteObj ~ [obj];
	stageSpriteZpos = stageSpriteZpos ~ [ObjRender_GetZ(obj)];
}

// lobby wall glass changing colour
function makelobbyglasmuur2(px,py,pz,ax,ay,az,red,green,blue) {
	let obj = ObjPrim_Create(OBJ_SPRITE_3D);
	ObjPrim_SetTexture(obj,afrolobbyglasmuur2);
	ObjRender_SetColor(obj,red,green,blue);
	Obj_SetRenderPriorityI(obj,20);
	ObjRender_SetAngleXYZ(obj,ax,ay,az);
	ObjRender_SetScaleXYZ(obj,1,1,0);
	ObjRender_SetPosition(obj,px,py,pz);

	ObjSprite3D_SetSourceDestRect(obj,0,0,1024,1024);
	ObjSprite3D_SetBillboard(obj,false);
	ObjRender_SetZWrite(obj,true);
	
	updateMuurColour(obj);
	
	stageSpriteObj = stageSpriteObj ~ [obj];
	stageSpriteZpos = stageSpriteZpos ~ [ObjRender_GetZ(obj)];
}

// light bundle, exists out of 2 sprites crossed. 
function makelichtbundel(px,py,pz,red,green,blue,id) {
	let faceY = atan2(0-px, -256-pz);
	let faceX = atan2(-64-py, -256-pz) * -1;

	// crossing bundle 1
	let obj = ObjPrim_Create(OBJ_SPRITE_3D);
	ObjPrim_SetTexture(obj,afrolichtbundel);
	ObjRender_SetColor(obj,red,green,blue);
	Obj_SetRenderPriorityI(obj,20);

	ObjRender_SetAngleXYZ(obj,-45,180,270);
	ObjRender_SetScaleXYZ(obj,2.25,1.5,0);
	ObjRender_SetPosition(obj,px,py-64,pz+64);

	ObjSprite3D_SetSourceDestRect(obj,1,1,64,512);
	ObjSprite3D_SetBillboard(obj,false);
	ObjRender_SetZWrite(obj,true);
	
	// crossing bundle 2
	let obj2 = ObjPrim_Create(OBJ_SPRITE_3D);
	ObjPrim_SetTexture(obj2,afrolichtbundel);
	ObjRender_SetColor(obj2,red,green,blue);
	Obj_SetRenderPriorityI(obj2,20);

	ObjRender_SetAngleXYZ(obj2,45,180,270);
	ObjRender_SetScaleXYZ(obj2,2.25,1.5,0);
	ObjRender_SetPosition(obj2,px,py-64,pz+64);

	ObjSprite3D_SetSourceDestRect(obj2,1,1,64,512);
	ObjSprite3D_SetBillboard(obj2,false);
	ObjRender_SetZWrite(obj2,true);
	
	// seperate task to summon colour update
	updateBundelColour(obj,obj2,id);
	
	lightBundleID = lightBundleID ~ [obj,id];
	lightBundleID2 = lightBundleID2 ~ [obj2,id];
	
	stageSpriteObj = stageSpriteObj ~ [obj];
	stageSpriteZpos = stageSpriteZpos ~ [ObjRender_GetZ(obj)];	
	stageSpriteObj = stageSpriteObj ~ [obj2];
	stageSpriteZpos = stageSpriteZpos ~ [ObjRender_GetZ(obj2)];		
}

// mirror ball
function makemirrorbal(px,py,pz,ax,ay,az){
	let distance = absolute(pz-(cos(20)*1024-256));
	let obj = ObjPrim_Create(OBJ_SPRITE_3D);
	ObjPrim_SetTexture(obj,afrolobbybal);
	Obj_SetRenderPriorityI(obj,20);
	ObjRender_SetColor(obj,155,155,155);	
	ObjRender_SetAngleXYZ(obj,ax,ay,az);
	ObjRender_SetScaleXYZ(obj,1,1,0);
	ObjRender_SetPosition(obj,px,py,pz);

	ObjSprite3D_SetSourceDestRect(obj,0,0,256,256);
	ObjSprite3D_SetBillboard(obj,true);
	ObjRender_SetZWrite(obj,true);
	
	stageSpriteObj = stageSpriteObj ~ [obj];
	stageSpriteZpos = stageSpriteZpos ~ [ObjRender_GetZ(obj)];

	if(distance<=startFade && distance>50){
		let increments = (startFade-endFade)/255;
		ObjRender_SetAlpha(obj,(distance-endFade)*increments);
	}
}

// ball flare
function makemirrorlicht(px,py,pz,ax,ay,az){
	let distance = absolute(pz-(cos(20)*1024-256));

	let obj = ObjPrim_Create(OBJ_SPRITE_3D);
	ObjPrim_SetTexture(obj,flare);
	Obj_SetRenderPriorityI(obj,20);
	ObjRender_SetAlpha(obj,100);
	ObjRender_SetColor(obj,255,255,255);	
	ObjRender_SetAngleXYZ(obj,ax,ay,az);
	ObjRender_SetScaleXYZ(obj,5,5,0);
	ObjRender_SetPosition(obj,px,py+16,pz);

	ObjSprite3D_SetSourceDestRect(obj,0,0,128,128);
	ObjSprite3D_SetBillboard(obj,true);
	ObjRender_SetZWrite(obj,true);
	
	updateMuurColour(obj);
		
	stageSpriteObj = stageSpriteObj ~ [obj];
	stageSpriteZpos = stageSpriteZpos ~ [ObjRender_GetZ(obj)];

	if(distance<=startFade && distance>50){
		let increments = (startFade-endFade)/255;
		ObjRender_SetAlpha(obj,(distance-endFade)*increments);
	}
}

// stoel
function makestoel(px,py,pz,dir) {
	let obj = ObjMesh_Create;
	ObjMesh_Load(obj,meshChair);
	ObjRender_SetPosition(obj,px,py,pz);
	ObjRender_SetAngleXYZ(obj,0,dir,0);
	Obj_SetRenderPriorityI(obj,20);
	ObjMesh_SetColor(obj,128,128,128);
	ObjRender_SetScaleXYZ(obj,2,2.5,2);
	ObjRender_SetBlendType(obj,BLEND_ALPHA);
	ObjRender_SetZWrite(obj,true);
	
	stageSpriteObj = stageSpriteObj ~ [obj];
	stageSpriteZpos = stageSpriteZpos ~ [ObjRender_GetZ(obj)];	
} 

function maketafel(px,py,pz) {
	let obj = ObjPrim_Create(OBJ_SPRITE_3D);
	ObjPrim_SetTexture(obj,afrolobbytafel);
	Obj_SetRenderPriorityI(obj,20);
	ObjRender_SetColor(obj,100,100,100);
	ObjRender_SetAngleXYZ(obj,90,0,0);
	ObjRender_SetScaleXYZ(obj,1.25,1.25,0);
	ObjRender_SetPosition(obj,px,py,pz);
	
	ObjSprite3D_SetSourceDestRect(obj,1,1,256,256);
	ObjSprite3D_SetBillboard(obj,false);
	ObjRender_SetZWrite(obj,true);
	
	let obj2 = ObjPrim_Create(OBJ_SPRITE_3D);
	ObjPrim_SetTexture(obj2,afrolobbytafel);
	Obj_SetRenderPriorityI(obj2,20);
	ObjRender_SetColor(obj2,100,100,100);
	ObjRender_SetAngleXYZ(obj2,0,0,0);
	ObjRender_SetScaleXYZ(obj2,1,1,0);
	ObjRender_SetPosition(obj2,px,py-129,pz);
	
	ObjSprite3D_SetSourceDestRect(obj2,448,0,512,256);
	ObjSprite3D_SetBillboard(obj2,false);
	ObjRender_SetZWrite(obj2,true);

	let obj3 = ObjPrim_Create(OBJ_SPRITE_3D);
	ObjPrim_SetTexture(obj3,afrolobbytafel);
	Obj_SetRenderPriorityI(obj3,20);
	ObjRender_SetColor(obj3,100,100,100);
	ObjRender_SetAngleXYZ(obj3,0,90,0);
	ObjRender_SetScaleXYZ(obj3,1,1,0);
	ObjRender_SetPosition(obj3,px,py-129,pz);
	
	ObjSprite3D_SetSourceDestRect(obj3,448,0,512,256);
	ObjSprite3D_SetBillboard(obj3,false);
	ObjRender_SetZWrite(obj3,true);
	
	stageSpriteObj = stageSpriteObj ~ [obj];
	stageSpriteZpos = stageSpriteZpos ~ [ObjRender_GetZ(obj)];	
	
	stageSpriteObj = stageSpriteObj ~ [obj2];
	stageSpriteZpos = stageSpriteZpos ~ [ObjRender_GetZ(obj2)];	
	
	stageSpriteObj = stageSpriteObj ~ [obj3];
	stageSpriteZpos = stageSpriteZpos ~ [ObjRender_GetZ(obj3)];	
}

//-----------------------------------------------------------------
// outside skyscraper climb
//-----------------------------------------------------------------

// city landscape
function makeafrolucht(px,py,pz,ax,ay,az) {
	let obj = ObjPrim_Create(OBJ_SPRITE_3D);
	ObjPrim_SetTexture(obj,afrolucht);
	ObjRender_SetColor(obj,215,215,215);
	Obj_SetRenderPriorityI(obj,20);
	ObjRender_SetAngleXYZ(obj,ax,ay,az);
	ObjRender_SetScaleXYZ(obj,2,2.1,0);
	ObjRender_SetPosition(obj,px,py,pz);

	ObjSprite3D_SetSourceDestRect(obj,0,0,2048,1024);
	ObjSprite3D_SetBillboard(obj,false);
	ObjRender_SetZWrite(obj,true);
	
	stageSpriteYObj2 = stageSpriteYObj2 ~ [obj];
	stageSpriteYpos2 = stageSpriteYpos2 ~ [ObjRender_GetY(obj)];
}

// buiten maak
function makeafrocity(px,py,pz,ax,ay,az,soort){
	let obj = ObjPrim_Create(OBJ_SPRITE_3D);
	if(soort == 1) { ObjPrim_SetTexture(obj,afrocity1); } 
	else if(soort == 2) { ObjPrim_SetTexture(obj,afrocity2); } 
	ObjRender_SetColor(obj,255,255,255);
	Obj_SetRenderPriorityI(obj,20);
	ObjRender_SetAngleXYZ(obj,ax,ay,az);
	ObjRender_SetScaleXYZ(obj,4.1,4,0);
	ObjRender_SetPosition(obj,px,py,pz);

	ObjSprite3D_SetSourceDestRect(obj,0,1,1024,512);
	ObjSprite3D_SetBillboard(obj,false);
	ObjRender_SetZWrite(obj,true);
	
	stageSpriteYObj2 = stageSpriteYObj2 ~ [obj];
	stageSpriteYpos2 = stageSpriteYpos2 ~ [ObjRender_GetY(obj)];
}

// flat gebouw
function makeafroflat(px,py,pz,ax,ay,az){
	let obj = ObjPrim_Create(OBJ_SPRITE_3D);
	ObjPrim_SetTexture(obj,afroflat); 
	ObjRender_SetColor(obj,255,255,255);
	Obj_SetRenderPriorityI(obj,20);
	ObjRender_SetAngleXYZ(obj,ax,ay,az);
	ObjRender_SetScaleXYZ(obj,0.75,1,0);
	ObjRender_SetPosition(obj,px,py,pz);

	ObjSprite3D_SetSourceDestRect(obj,0,0,512,768);
	ObjSprite3D_SetBillboard(obj,false);
	ObjRender_SetZWrite(obj,true);
	
	scrollSprite(obj);
	
	stageSpriteYObj2 = stageSpriteYObj2 ~ [obj];
	stageSpriteYpos2 = stageSpriteYpos2 ~ [ObjRender_GetY(obj)];
}

// wolken
function makeafrowolk(px,py,pz,ax,ay,az,red,green,blue,size){
	let obj = ObjPrim_Create(OBJ_SPRITE_3D);
	ObjPrim_SetTexture(obj,afrowolk2); 
	ObjRender_SetColor(obj,red,green,blue);
	Obj_SetRenderPriorityI(obj,20);
	ObjRender_SetAngleXYZ(obj,ax,ay,az);
	ObjRender_SetScaleXYZ(obj,size,size,0);
	ObjRender_SetPosition(obj,px,py,pz);

	ObjSprite3D_SetSourceDestRect(obj,0,0,256,256);
	ObjSprite3D_SetBillboard(obj,true);
	ObjRender_SetZWrite(obj,false);
	
	stageSpriteYObj = stageSpriteYObj ~ [obj];
	stageSpriteYpos = stageSpriteYpos ~ [ObjRender_GetY(obj)];
}

//-----------------------------------------------------------------
// outside roof top
//-----------------------------------------------------------------

// flat gebouw
function makeafroflat2(px,py,pz,ax,ay,az){
	let obj = ObjPrim_Create(OBJ_SPRITE_3D);
	ObjPrim_SetTexture(obj,afroflat); 
	ObjRender_SetColor(obj,255,255,255);
	Obj_SetRenderPriorityI(obj,20);
	ObjRender_SetAngleXYZ(obj,ax,ay,az);
	ObjRender_SetScaleXYZ(obj,0.75,1,0);
	ObjRender_SetPosition(obj,px,py,pz);

	ObjSprite3D_SetSourceDestRect(obj,0,0,512,768);
	ObjSprite3D_SetBillboard(obj,false);
	ObjRender_SetZWrite(obj,true);
	
	stageNonMoveObj = stageNonMoveObj ~ [obj];	
}

// stone floor
function makeafrodak(px,py,pz,ax,ay,az) {
	let obj = ObjPrim_Create(OBJ_SPRITE_3D);
	ObjPrim_SetTexture(obj,afrodak);
	Obj_SetRenderPriorityI(obj,20);
	ObjRender_SetColor(obj,64,64,64);
	ObjRender_SetAngleXYZ(obj,ax,ay,az);
	ObjRender_SetScaleXYZ(obj,2,2,0);
	ObjRender_SetPosition(obj,px,py,pz);
	
	ObjSprite3D_SetSourceDestRect(obj,0,0,1024,1024);
	ObjSprite3D_SetBillboard(obj,false);
	ObjRender_SetZWrite(obj,true);
	
	stageNonMoveObj = stageNonMoveObj ~ [obj];	
}

// heli pad
function makeafrohpad(px,py,pz,ax,ay,az){
	let obj = ObjPrim_Create(OBJ_SPRITE_3D);
	ObjPrim_SetTexture(obj,afrohpad);
	Obj_SetRenderPriorityI(obj,20);
	ObjRender_SetColor(obj,112,112,112);
	ObjRender_SetAngleXYZ(obj,ax,ay,az);
	ObjRender_SetScaleXYZ(obj,3,3,0);
	ObjRender_SetPosition(obj,px,py,pz);
	
	ObjSprite3D_SetSourceDestRect(obj,0,0,256,256);
	ObjSprite3D_SetBillboard(obj,false);
	ObjRender_SetZWrite(obj,true);

	stageNonMoveObj = stageNonMoveObj ~ [obj];	
}

// links/rechts
function makeafrodakrand(px,py,pz,ax,ay,az,type){
	let obj = ObjPrim_Create(OBJ_SPRITE_3D);
	ObjPrim_SetTexture(obj,afrodakrand);
	Obj_SetRenderPriorityI(obj,20);
	ObjRender_SetColor(obj,96,96,112);
	ObjRender_SetAngleXYZ(obj,ax,ay,az);
	ObjRender_SetScaleXYZ(obj,1,0.25,0);
	ObjRender_SetPosition(obj,px,py,pz);
	
	ObjSprite3D_SetSourceDestRect(obj,0,0,2048,256);
	ObjSprite3D_SetBillboard(obj,false);
	ObjRender_SetZWrite(obj,true);
	
	let obj2 = ObjPrim_Create(OBJ_SPRITE_3D);
	ObjPrim_SetTexture(obj2,afrodakrand);
	Obj_SetRenderPriorityI(obj2,20);
	ObjRender_SetColor(obj2,96,96,112);
	if(type == "sides") { ObjRender_SetAngleXYZ(obj2,ax,ay,az); }
	if(type == "fronts") { ObjRender_SetAngleXYZ(obj2,ax,ay,az); }
	ObjRender_SetScaleXYZ(obj2,1,0.25,0);
	ObjRender_SetPosition(obj2,px+32,py,pz);
	
	ObjSprite3D_SetSourceDestRect(obj2,0,0,2048,256);
	ObjSprite3D_SetBillboard(obj2,false);
	ObjRender_SetZWrite(obj2,true);

	let obj3 = ObjPrim_Create(OBJ_SPRITE_3D);
	ObjPrim_SetTexture(obj3,afrodakrand);
	Obj_SetRenderPriorityI(obj3,20);
	ObjRender_SetColor(obj3,96,96,96);
	ObjRender_SetAngleXYZ(obj3,ax+90,ay,az);
	ObjRender_SetScaleXYZ(obj3,1,0.25,0);
	ObjRender_SetPosition(obj3,px+16,py+32,pz);
	
	ObjSprite3D_SetSourceDestRect(obj3,0,256,2048,384);
	ObjSprite3D_SetBillboard(obj3,false);
	ObjRender_SetZWrite(obj3,true);
	
	stageNonMoveObj = stageNonMoveObj ~ [obj];	
	stageNonMoveObj = stageNonMoveObj ~ [obj2];	
	stageNonMoveObj = stageNonMoveObj ~ [obj3];	
}

// airco
function makeafroairco(px,py,pz,dir) {
	let obj = ObjMesh_Create;
	ObjMesh_Load(obj, "script/thdcs/tex/stg02/airco.mqo");
	ObjRender_SetPosition(obj,px,py,pz);
	ObjRender_SetAngleXYZ(obj,0,dir,0);
	Obj_SetRenderPriorityI(obj,20);
	ObjMesh_SetColor(obj,128,128,128);
	ObjRender_SetScaleXYZ(obj,3,3,3);
	ObjRender_SetBlendType(obj,BLEND_ALPHA);
	ObjRender_SetZWrite(obj,true);

	stageNonMoveObj = stageNonMoveObj ~ [obj];	
} 

