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

#include "INCLUDES.h"
							
static int eye = 0;
int JT=25, JA, JB, JC, JCNT;
float JD;
void crazywall(int, int, int);

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

void draw_JAWS()
{
	if (JC==1) cpack(0xffffff);/* strobes background */		
	else cpack(0x000000);clear();zclear();
	
	rotate(-200,'x');
	translate(0.0, .75, -4.0); 
	scale(0.65, 0.65, 0.65);

	if (JT>TEXNAME) JT=25;
	
	/*----------------------------*/
	
	texbind(TX_TEXTURE_0, img_list[JT]);
		
		 pushmatrix();
			rotate(900,'y');
			crazywall(JA, JB, JCNT);
		 popmatrix();
		 pushmatrix();
			rotate(-900,'y');
			crazywall(JA, JB, JCNT);
		 popmatrix();
		 
		 crazywall(JA, JB, JCNT);
		 
	texbind(TX_TEXTURE_0, 0);
	/*----------------------------*/

	if(eye)
	{	
		JCNT = JCNT + 8;
		
		JD = JD + .9;	
									
		if (JD < 1 && JD > 0) JT = 25;
			else if (JD < 2 && JD > 1) JT = 26;
			else if (JD < 3 && JD > 2) JT = 27;
			else if (JD < 4 && JD > 3) JT = 28;
			else if (JD < 5 && JD > 4) JT = 29;
			else if (JD < 6 && JD > 5) JT = 30;
			else if (JD < 7 && JD > 6) JT = 31;
			else if (JD < 8 && JD > 7) JT = 32;
			else if (JD < 9 && JD > 8) JT = 33;
			
			else if (JD >= 9)
			{
				JT = 25;
				JD = 0;
			}
			
		JC = JC + 1;
		if (JC==5) JC = 1;
		
		JB = JB + 1;
		if (JB == 50) JB = 0;
	}
	eye=!eye;
	
}

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

void crazywall(int JA, int JB, int JCNT)
{
	cpack(0xffffff);
	/* bars */
	pushmatrix();
		translate(-30.0, 5.0, -35.0);
		scale(20.0, 1.0, 1.0);
		callobj(GLobjSqrIndex);
	popmatrix();
	
	pushmatrix();
		translate(30.0, 5.0, -35.0);
		scale(20.0, 1.0, 1.0);
		callobj(GLobjSqrIndex);
	popmatrix();
	
	pushmatrix();
		translate(0.0, 35.0, -35.0);
		rotate(900,'z');               
		scale(20.0, 3.0, 1.0);
		callobj(GLobjSqrIndex);
	popmatrix();
	
	pushmatrix();
		translate(0.0, -25.0, -35.0);
		rotate(900,'z');                
		scale(20.0, 3.0, 1.0);
		callobj(GLobjSqrIndex);
	popmatrix();
	
	/* cross */
	pushmatrix();
		translate(0.0, 5.0, -25.0);
		rotate(0+JCNT,'z');
		scale(5.0, 1.5, 1.0);
		callobj(GLobjSqrIndex);
	popmatrix();
	
	pushmatrix();
		translate(0.0, 5.0, -25.0);
		rotate(900+JCNT,'z');
		scale(5.0, 1.5, 1.0);
		callobj(GLobjSqrIndex);
	popmatrix();
	
	/* pyrs */
	for (JA = -27; JA < 27; JA+=3)
	{		
		pushmatrix();
			translate(0.0, JB, 0.0);
			translate(JA, -20.0, -20.0);
			scale(1.5, 2.5, 1.0);
			callobj(GLobjTriangleIndex);
		popmatrix();
		
		pushmatrix();
			translate(0.0, -JB, 0.0);
			translate(JA, 30.0, -20.0);
			scale(1.5, 2.5, 1.0);
			rotate(1800,'x');
			callobj(GLobjTriangleIndex);
		popmatrix();
		
		pushmatrix();
			translate(0.0, -JB, 0.0);
			translate(JA, 30.0, -20.0);
			scale(1.5, 2.5, 1.0);
			callobj(GLobjTriangleIndex);
		popmatrix();
		
		pushmatrix();
			translate(0.0, JB, 0.0);
			translate(JA, -20.0, -20.0);
			scale(1.5, 2.5, 1.0);
			rotate(1800,'x');
			callobj(GLobjTriangleIndex);
		popmatrix();
	}
}

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