back to the text
/*----------------------------------------------------
 * 
 * GALLERY400.c - app variables and draw functions
 * 
 *--------------------------------------------------*/

#include "INCLUDES.h"
							
static int eye = 0;
static int CNT = 0;
static int VIDA;
static float VIDB = 0.0;

extern float POS[3], VEC_point[3], VEC_pos[3], VEC_vec[3];


void floor400();
void walls400();
void wall400();
void photos400();
void sculpture400();
void pillars400();
void pedastal400();
void video400();
void vec400();
void idesk400();

/*--------------------------------------------------*/
/*--------------------------------------------------*/
/*--------------------------------------------------*/
/*--------------------------------------------------*/
/*----------------------------------------------------
 * 
 * DRAW functions
 * 
 *--------------------------------------------------*/

void draw_G400()
{
	
	cpack(0xff000000); clear(); zclear();

	rotate(-150,'x');
	translate(0.0, .75, 0.0);
	scale(0.65, 0.65, 0.65);

	CAVENavTransform();

	
	/*----------------------------*/
		
	pushmatrix();
		scale(1.2, 1.2, 1.2);
				texbind(TX_TEXTURE_0, img_list[6]);			
			floor400();							
				texbind(0, 0);
			walls400();		
	popmatrix();
	
	/*----------------------------*/
		
	photos400();
	
	/*----------------------------*/
		
	pillars400();
	
	/*----------------------------*/	
	
	/*msalpha(MSA_MASK);*/
	texbind(TX_TEXTURE_0, img_list[7]);			
		sculpture400();							
	texbind(0, 0);
	/*msalpha(MSA_ALPHA);*/
	
	/*----------------------------*/
		
	texbind(TX_TEXTURE_0, img_list[8]);			
		pedastal400();							
	texbind(0, 0);
	
	/*----------------------------*/
	
	texbind(TX_TEXTURE_0, img_list[VIDA]);
		video400();
	texbind(0, 0);
		
	/*----------------------------*/
	
	idesk400();
	
	/*----------------------------*/
	
	if (VEC_line == 1) vec400();
	
	/*----------------------------*/
	
	if(eye)
	{
		VIDB = VIDB + .9;									
		if (VIDB < 1 && VIDB > 0) VIDA = 96;
			else if (VIDB < 2 && VIDB > 1) VIDA = 97;
			else if (VIDB < 3 && VIDB > 2) VIDA = 98;
			else if (VIDB < 4 && VIDB > 3) VIDA = 99;
			else if (VIDB < 5 && VIDB > 4) VIDA = 100;
			else if (VIDB < 6 && VIDB > 5) VIDA = 101;
			else if (VIDB < 7 && VIDB > 6) VIDA = 102;
			else if (VIDB < 8 && VIDB > 7) VIDA = 103;
			else if (VIDB < 9 && VIDB > 8) VIDA = 104;
			else if (VIDB < 10 && VIDB > 9) VIDA = 105;
			else if (VIDB < 11 && VIDB > 10) VIDA = 106;
			else if (VIDB < 12 && VIDB > 11) VIDA = 107;
			else if (VIDB < 13 && VIDB > 12) VIDA = 108;
			else if (VIDB < 14 && VIDB > 13) VIDA = 109;
			else if (VIDB < 15 && VIDB > 14) VIDA = 110;
			else if (VIDB < 16 && VIDB > 15) VIDA = 109;
			else if (VIDB < 17 && VIDB > 16) VIDA = 108;
			else if (VIDB < 18 && VIDB > 17) VIDA = 107;
			else if (VIDB < 19 && VIDB > 18) VIDA = 106;
			else if (VIDB < 20 && VIDB > 19) VIDA = 105;
			else if (VIDB < 21 && VIDB > 20) VIDA = 104;
			else if (VIDB < 22 && VIDB > 21) VIDA = 103;
			else if (VIDB < 23 && VIDB > 22) VIDA = 102;
			else if (VIDB < 24 && VIDB > 23) VIDA = 101;
			else if (VIDB < 25 && VIDB > 24) VIDA = 100;
			else if (VIDB < 26 && VIDB > 25) VIDA = 99;
			else if (VIDB < 27 && VIDB > 26) VIDA = 98;
			else if (VIDB < 28 && VIDB > 27) VIDA = 97;
			else if (VIDB >= 28)
			{
				VIDA = 96;
				VIDB = 0;
			}
	}
	
	eye=!eye;
	
	CNT = CNT + 4;
	if (CNT >3600) CNT = 0;
	
}

/*--------------------------------------------------*/

void floor400()
{
	cpack(0xffffffff);
	pushmatrix();							
		rotate(900,'x');
		scale(20.0, 20.0, 0.0);	
		scale(-1.0, 2.6451613, 0.0  );
		callobj(GLobjSqrIndex);
	popmatrix();
}

/*--------------------------------------------------*/

void wall400()
{
	pushmatrix();							
		scale(10.0, 10.0, 0.0);
		callobj(GLobjSqrIndex);
	popmatrix();
}

/*--------------------------------------------------*/

void walls400()
{	
	/*gallery-east*/
	pushmatrix();			 
			cpack(0xffffffff);
			translate(-15.0, 3.0, -47.5);
		wall400();
	popmatrix();
	
	pushmatrix();			 
			cpack(0xffffffff);
			translate(15.0, 3.0, -47.5);
		wall400();
	popmatrix();
	
	pushmatrix();			 
			cpack(0xffdddddd);
			translate(0.0, 3.0, -52.5);
		wall400();
	popmatrix();
	
	/*gallery-north*/
	pushmatrix();			 
			cpack(0xffffffff);
			translate(-15.0, 3.0, 0.0);
			scale(1.0, 1.0, 6.0);
			rotate(900,'y');
		wall400();
	popmatrix();
	
	/*gallery-west*/
	pushmatrix();			 
			cpack(0xffffffff);
			translate(0.0, 3.0, 50.0);
			scale(1.7, 1.0, 1.0);
		wall400();
	popmatrix();
	
	/*gallery-south*/
	pushmatrix();			 
			cpack(0xffffffff);
			translate(15.0, 3.0, 10.0);
			scale(1.0, 1.0, 5.0);
			rotate(900,'y');
		wall400();
	popmatrix();
	
	/*theater-white*/
	/*north*/
	pushmatrix();			 
			cpack(0xffffffff);
			translate(0.0, 2.0, 45.0);
			scale(1.0, 1.0, 1.0);
			rotate(900,'y');
		wall400();
	popmatrix();
	
	/*east*/
	pushmatrix();			 
			cpack(0xffffffff);
			translate(5.0, 2.0, 35.0);
			scale(0.5, 1.0, 1.0);
		wall400();
	popmatrix();
	
	pushmatrix();			 
			cpack(0xffffffff);
			translate(10.0, 2.0, 30.0);
			scale(0.5, 1.0, 1.0);
		wall400();
	popmatrix();
	
	/*theater-black*/
	/*north*/
	pushmatrix();			 
			cpack(0xff000000);
			translate(0.1, 2.0, 45.0);
			scale(1.0, 1.0, 1.0);
			rotate(900,'y');
		wall400();
	popmatrix();
	
	/*east*/
	pushmatrix();			 
			cpack(0xff000000);
			translate(5.0, 2.0, 35.1);
			scale(0.5, 1.0, 1.0);
		wall400();
	popmatrix();
	
	pushmatrix();			 
			cpack(0xff000000);
			translate(10.0, 2.0, 30.1);
			scale(0.5, 1.0, 1.0);
		wall400();
	popmatrix();
	
	/*south*/
	pushmatrix();			 
			cpack(0xff000000);
			translate(14.9, 3.1, 40.1);
			scale(2.0, 1.0, 1.0);
			rotate(900,'y');
		wall400();
	popmatrix();
	
	/*west*/
	pushmatrix();			 
			cpack(0xff000000);
			translate(10.1, 3.0, 49.9);
			scale(1.0, 1.0, 1.0);
		wall400();
	popmatrix();
	
	/*column*/
	pushmatrix();			 
			cpack(0xff000000);
			translate(2.65, 2.0, 37.65);
			scale(0.25, 1.0, 1.0);
			rotate(150,'y');
		wall400();
	popmatrix();
	
	/*floor*/
	pushmatrix();			 
		cpack(0xffffffff);
		texbind(TX_TEXTURE_0, img_list[95]);
		blendfunction(BF_SA, BF_MSA);	
			translate(10.1, 0.1, 40.1);
			scale(1.0, 0.0, -1.0);
			rotate(900,'x');
		wall400();
		blendfunction(BF_ONE, BF_ZERO);	
		texbind(TX_TEXTURE_0, 0);
	popmatrix();
	
	/*ceiling*/
	pushmatrix();			 
		cpack(0xff000000);
			translate(10.1, 11.0, 45.1);
			scale(1.0, 0.0, -1.0);
			rotate(900,'x');
		wall400();	
	popmatrix();
	
	pushmatrix();			 
		cpack(0xff000000);
			translate(20.1, 11.0, 40.1);
			scale(1.0, 0.0, -1.0);
			rotate(900,'x');
		wall400();	
	popmatrix();
	
	
	
}

/*--------------------------------------------------*/

void pillars400()
{
	cpack(0xffcccccc);
	pushmatrix();							
		translate(0.0, 2.0, -58.0);
		rotate(900,'x');
		scale(.075, .075, .12);
		callobj(GLobjCylIndex);
	popmatrix();
	
	cpack(0xffffffff);
	texbind(TX_TEXTURE_0, img_list[0]); /* 1 */
	pushmatrix();							
		translate(0.0, 2.0, -38.0);
		rotate(900,'x');
		scale(.075, .075, .12);
		callobj(GLobjCylIndex);
	popmatrix();
	texbind(0, 0);
	
	texbind(TX_TEXTURE_0, img_list[1]); /* 2 */
	pushmatrix();							
		translate(0.0, 2.0, -18.0);
		rotate(900,'x');
		scale(.075, .075, .12);
		callobj(GLobjCylIndex);
	popmatrix();
	texbind(0, 0);
	
	texbind(TX_TEXTURE_0, img_list[2]); /* 3 */
	pushmatrix();							
		translate(0.0, 2.0, 2.0);
		rotate(900,'x');
		scale(.075, .075, .12);
		callobj(GLobjCylIndex);
	popmatrix();
	texbind(0, 0);
	
	texbind(TX_TEXTURE_0, img_list[3]); /* 4 */
	pushmatrix();							
		translate(0.0, 2.0, 22.0);
		rotate(900,'x');
		scale(.075, .075, .12);
		callobj(GLobjCylIndex);
	popmatrix();
	texbind(0, 0);
	
	texbind(TX_TEXTURE_0, img_list[4]); /* 5 */
	pushmatrix();							
		translate(0.0, 2.0, 42.0);
		rotate(900,'x');
		scale(.075, .075, .12);
		callobj(GLobjCylIndex);
	popmatrix();
	texbind(0, 0);
	
}

/*--------------------------------------------------*/

void sculpture400()
{	
	cpack(0xffffffff);
	pushmatrix();		 						
		translate(10.0, 5.0, -27.5);
		/*rotate(-CNT,'y');*/
		scale(0.005, 0.005, 0.005);
		callobj(GLobjsculptureIndex);	 
	popmatrix();
	
	pushmatrix();		 						
		translate(-10.0, 5.5, -27.5);
		/*rotate(CNT,'y');*/
		scale(0.006, 0.006, 0.006);
		callobj(GLobjsculpture2Index);	 
	popmatrix();

}

/*--------------------------------------------------*/

void pedastal400()
{	
	cpack(0xffeeeeee);
	pushmatrix();		 						
		translate(10.0, 0.0, -27.5);
		scale(1.2, 4.3, 1.2);
		callobj(GLobjCubeIndex);	 
	popmatrix();
	
	pushmatrix();		 						
		translate(-10.0, 0.0, -27.5);
		scale(1.2, 4.3, 1.2);
		callobj(GLobjCubeIndex);	 
	popmatrix();

}

/*--------------------------------------------------*/

void photos400()
{	
	pushmatrix();
	rotate(900,'y');
	translate(27.5, 0.0, 0.0);
		texbind(TX_TEXTURE_0, img_list[86]); /* 1 */
			pushmatrix();							
				 cpack(0xffffffff);
				 translate(0.0, 6.0, 17.5);
				 scale(-6.0, -4.0, 0.0);
				 callobj(GLobjSqrIndex);
			popmatrix();
		texbind(TX_TEXTURE_0, 0);
		
		texbind(TX_TEXTURE_0, img_list[87]); /* 2 */
			pushmatrix();							
				 cpack(0xffffffff);
				 translate(-20.0, 6.0, 17.5);		
				 scale(-6.0, -4.0, 0.0);
				 callobj(GLobjSqrIndex);
			popmatrix();
		texbind(TX_TEXTURE_0, 0);
		
		texbind(TX_TEXTURE_0, img_list[88]); /* 3 */
			pushmatrix();							
				 cpack(0xffffffff);
				 translate(0.0, 6.0, -17.5);
				 scale(-6.0, -4.0, 0.0);
				 callobj(GLobjSqrIndex);
			popmatrix();
		texbind(TX_TEXTURE_0, 0);
		
		texbind(TX_TEXTURE_0, img_list[89]); /* 4 */		
			pushmatrix();							
				 cpack(0xffffffff);
				 translate(-20.0, 6.0, -17.5);
				 scale(-6.0, -4.0, 0.0);
				 callobj(GLobjSqrIndex);
			popmatrix();
		texbind(TX_TEXTURE_0, 0);
		
		texbind(TX_TEXTURE_0, img_list[90]); /* 5 */
			pushmatrix();							
				 cpack(0xffffffff);
				 translate(-40.0, 6.0, -17.5);
				 scale(-6.0, -4.0, 0.0);
				 callobj(GLobjSqrIndex);
			popmatrix();
		texbind(TX_TEXTURE_0, 0);	
		
		texbind(TX_TEXTURE_0, img_list[91]);	/* 6 */
			pushmatrix();							
				 cpack(0xffffffff);
				 translate(-60.0, 6.0, -17.5);		
				 scale(6.0, -4.0, 0.0);
				 callobj(GLobjSqrIndex);
			popmatrix();
		texbind(0, 0);	
	popmatrix();
}

/*--------------------------------------------------*/

void video400()
{
	
	pushmatrix();
		cpack(0xffffffff);							
		translate(4.0, 8.0, 46.0);
		rotate(450,'y');
		rotate(150,'x');
		scale(-3.0, -2.0, 0.0);
		callobj(GLobjSqrIndex);
	popmatrix();
	
}
	
/*--------------------------------------------------*/

void vec400()
{
	cpack(0xff0000);	
		bgnline();
		v3f(VEC_pos); v3f(VEC_point);				
		endline();
}
		
/*--------------------------------------------------*/

void idesk400()
{
	pushmatrix();
		translate(13.0, 4.0, 13.0);
		scale(1.0, 1.0, 1.0);
		cpack(0xff9e9e9e);
		wfDrawObject(csoftarray[0]);
		cpack(0xff101010);
		wfDrawObject(csoftarray[1]);
		cpack(0xff837a0b);
		wfDrawObject(csoftarray[2]);
	popmatrix();
	pushmatrix();
		cpack(0xffffffff);
		texbind(TX_TEXTURE_0, img_list[111]);							
		translate(11.2, 5.0, 13.0);
		rotate(900,'y');
		rotate(450,'x');
		scale(3.4, -2.7, 0.0);
		callobj(GLobjSqrIndex);
		texbind(0, 0);
	popmatrix();

}

/*--------------------------------------------------*/