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();
}
}
/*--------------------------------------------------*/