back to the text
/*----------------------------------------------------
*
* GROW.c - app variables and draw functions
*
*--------------------------------------------------*/
#include "INCLUDES.h"
static float alphanameA[4] = {1.0, 1.0, 1.0, 1.0};
static float alphanameB[4] = {1.0, 1.0, 1.0, 0.6};
static float alphanameC[4] = {1.0, 1.0, 1.0, 0.3};
int growA=0;
int blueA=15;
static int eye = 0;
static int growROT1 = 0;
static int growROT2 = 0;
static int growROT3 = 0;
static float growGROW1 = 3.0;
static float growGROW2 = 3.0;
static float growGROW3 = 3.0;
static int blueROT1 = 0;
static int blueROT2 = 0;
static int blueROT3 = 0;
static float blueGROW1 = -2.0;
static float blueGROW2 = -2.0;
static float blueGROW3 = -2.0;
static float growB=1.0;
static float growCNT=1.0;
int growstrobe=1;
static int growC;
/*--------------------------------------------------*/
void grow_spheres(int, int, int, float, float, float);
void blue_spheres(int, int, int, float, float, float);
void grostro_lines();
/*--------------------------------------------------*/
/*--------------------------------------------------*/
/*--------------------------------------------------*/
/*--------------------------------------------------*/
/*----------------------------------------------------
*
* DRAW functions
*
*--------------------------------------------------*/
void draw_GROW()
{
/*cpack(0xff10ffff); clear(); zclear();*/
translate(0.0, 2.75, 0.0);
if (growC==1){
cpack(0xffffffff);
}
else
cpack(0xff10ffff);
clear();
zclear();
/*----------------------------*/
zbuffer(FALSE);
/*backface(TRUE);*/
/*msalpha(MSA_MASK);*/
texbind(TX_TEXTURE_0, img_list[growA]);
blendfunction(BF_SA, BF_MSA);
grow_spheres(growROT1, growROT2, growROT3,
growGROW1, growGROW2, growGROW3);
blendfunction(BF_ONE, BF_ZERO);
texbind(TX_TEXTURE_0, 0);
/*msalpha(MSA_ALPHA);*/
/*----------------------------*/
texbind(TX_TEXTURE_0, img_list[blueA]);
blendfunction(BF_SA, BF_MSA);
blue_spheres(blueROT1, blueROT2, blueROT3,
blueGROW1, blueGROW2, blueGROW3);
blendfunction(BF_ONE, BF_ZERO);
texbind(TX_TEXTURE_0, 0);
zbuffer(TRUE);
/*backface(FALSE);*/
/*----------------------------*/
grostro_lines();
/*----------------------------*/
/*----------------------------*/
if(eye)
{
growB = growB + .999;
if (growB < 1 && growB > 0) {growA = 56; blueA=71;}
else if (growB < 2 && growB > 1) {growA = 57; blueA=72;}
else if (growB < 3 && growB > 2) {growA = 58; blueA=73;}
else if (growB < 4 && growB > 3) {growA = 59; blueA=74;}
else if (growB < 5 && growB > 4) {growA = 60; blueA=75;}
else if (growB < 6 && growB > 5) {growA = 61; blueA=76;}
else if (growB < 7 && growB > 6) {growA = 62; blueA=77;}
else if (growB < 8 && growB > 7) {growA = 63; blueA=78;}
else if (growB < 9 && growB > 8) {growA = 64; blueA=79;}
else if (growB < 10 && growB > 9) {growA = 65; blueA=80;}
else if (growB < 11 && growB > 10) {growA = 66; blueA=81;}
else if (growB < 12 && growB > 11) {growA = 67; blueA=82;}
else if (growB < 13 && growB > 12) {growA = 68; blueA=83;}
else if (growB < 14 && growB > 13) {growA = 69; blueA=84;}
else if (growB < 15 && growB > 14) {growA = 70; blueA=85;}
else if (growB >= 15)
{
growA = 56;
blueA = 71;
growB = 0;
}
growCNT = growCNT + .999;
if (growCNT < 1 && growCNT > 0) alphanameA[3] = 0.1;
else if (growCNT < 2 && growCNT > 1) alphanameA[3] = 0.2;
else if (growCNT < 3 && growCNT > 2) alphanameA[3] = 0.3;
else if (growCNT < 4 && growCNT > 3) alphanameA[3] = 0.4;
else if (growCNT < 5 && growCNT > 4) alphanameA[3] = 0.5;
else if (growCNT < 6 && growCNT > 5) alphanameA[3] = 0.6;
else if (growCNT < 7 && growCNT > 6) alphanameA[3] = 0.7;
else if (growCNT < 8 && growCNT > 7) alphanameA[3] = 0.8;
else if (growCNT < 9 && growCNT > 8) alphanameA[3] = 0.9;
else if (growCNT < 10 && growCNT > 9) alphanameA[3] = 0.8;
else if (growCNT < 11 && growCNT > 10) alphanameA[3] = 0.7;
else if (growCNT < 12 && growCNT > 11) alphanameA[3] = 0.6;
else if (growCNT < 13 && growCNT > 12) alphanameA[3] = 0.5;
else if (growCNT < 14 && growCNT > 13) alphanameA[3] = 0.4;
else if (growCNT < 15 && growCNT > 14) alphanameA[3] = 0.3;
else if (growCNT < 16 && growCNT > 15) alphanameA[3] = 0.2;
else if (growCNT >= 16)
{
alphanameA[3] = 0.1;
growCNT = 0;
}
if (growCNT < 1 && growCNT > 0) alphanameB[3] = 0.6;
else if (growCNT < 2 && growCNT > 1) alphanameB[3] = 0.7;
else if (growCNT < 3 && growCNT > 2) alphanameB[3] = 0.8;
else if (growCNT < 4 && growCNT > 3) alphanameB[3] = 0.9;
else if (growCNT < 5 && growCNT > 4) alphanameB[3] = 0.8;
else if (growCNT < 6 && growCNT > 5) alphanameB[3] = 0.7;
else if (growCNT < 7 && growCNT > 6) alphanameB[3] = 0.6;
else if (growCNT < 8 && growCNT > 7) alphanameB[3] = 0.5;
else if (growCNT < 9 && growCNT > 8) alphanameB[3] = 0.4;
else if (growCNT < 10 && growCNT > 9) alphanameB[3] = 0.3;
else if (growCNT < 11 && growCNT > 10) alphanameB[3] = 0.2;
else if (growCNT < 12 && growCNT > 11) alphanameB[3] = 0.1;
else if (growCNT < 13 && growCNT > 12) alphanameB[3] = 0.2;
else if (growCNT < 14 && growCNT > 13) alphanameB[3] = 0.3;
else if (growCNT < 15 && growCNT > 14) alphanameB[3] = 0.4;
else if (growCNT < 16 && growCNT > 15) alphanameB[3] = 0.5;
else if (growCNT >= 16)
{
alphanameB[3] = 0.6;
growCNT = 0;
}
if (growCNT < 1 && growCNT > 0) alphanameC[3] = 0.3;
else if (growCNT < 2 && growCNT > 1) alphanameC[3] = 0.2;
else if (growCNT < 3 && growCNT > 2) alphanameC[3] = 0.1;
else if (growCNT < 4 && growCNT > 3) alphanameC[3] = 0.2;
else if (growCNT < 5 && growCNT > 4) alphanameC[3] = 0.3;
else if (growCNT < 6 && growCNT > 5) alphanameC[3] = 0.4;
else if (growCNT < 7 && growCNT > 6) alphanameC[3] = 0.5;
else if (growCNT < 8 && growCNT > 7) alphanameC[3] = 0.6;
else if (growCNT < 9 && growCNT > 8) alphanameC[3] = 0.7;
else if (growCNT < 10 && growCNT > 9) alphanameC[3] = 0.8;
else if (growCNT < 11 && growCNT > 10) alphanameC[3] = 0.9;
else if (growCNT < 12 && growCNT > 11) alphanameC[3] = 0.8;
else if (growCNT < 13 && growCNT > 12) alphanameC[3] = 0.7;
else if (growCNT < 14 && growCNT > 13) alphanameC[3] = 0.6;
else if (growCNT < 15 && growCNT > 14) alphanameC[3] = 0.5;
else if (growCNT < 16 && growCNT > 15) alphanameC[3] = 0.4;
else if (growCNT >= 16)
{
alphanameC[3] = 0.3;
growCNT = 0;
}
growstrobe = growstrobe + 1;
if (growstrobe==5) growstrobe = 1;
growC = growC + 1;
if (growC==5) growC = 1;
growROT1 = growROT1 + 1;
if (growROT1 >3500) growROT1 = 0;
growROT2 = growROT2 + 1;
if (growROT2 >3500) growROT2 = 0;
growROT3 = growROT3 + 1;
if (growROT3 >3500) growROT3 = 0;
growGROW1 = growGROW1 + .03;
if (growGROW1 >= 10.0) growGROW1 = 1.0;
growGROW2 = growGROW2 + .03;
if (growGROW2 >= 10.0) growGROW2 = 1.0;
growGROW3 = growGROW3 + .03;
if (growGROW3 >= 10.0) growGROW3 = 1.0;
blueROT1 = blueROT1 + 1;
if (blueROT1 >3500) blueROT1 = 0;
blueROT2 = blueROT2 + 1;
if (blueROT2 >3500) blueROT2 = 0;
blueROT3 = blueROT3 + 1;
if (blueROT3 >3500) blueROT3 = 0;
blueGROW1 = blueGROW1 + .1;
if (blueGROW1 >= 10.0) blueGROW1 = drand48();
blueGROW2 = blueGROW2 + .1;
if (blueGROW2 >= 10.0) blueGROW2 = drand48();
blueGROW3 = blueGROW3 + .1;
if (blueGROW3 >= 10.0) blueGROW3 = drand48();
}
eye=!eye;
}
/*--------------------------------------------------*/
void grow_spheres(int growROT1, int growROT2, int growROT3,
float growGROW1, float growGROW2, float growGROW3)
{
pushmatrix();
c4f(alphanameA);
translate(-7.0, 5.0, 0.0);
rotate(growROT3, 'z');
scale(growGROW3, growGROW3, growGROW3);
callobj(GLobjSphIndex);
popmatrix();
pushmatrix();
c4f(alphanameB);
translate(0.0, 5.0, -5.0);
rotate(growROT2, 'y');
scale(growGROW2, growGROW2, growGROW2);
callobj(GLobjSphIndex);
popmatrix();
pushmatrix();
c4f(alphanameC);
translate(7.0, 5.0, 0.0);
rotate(growROT1, 'x');
scale(growGROW1, growGROW1, growGROW1);
callobj(GLobjSphIndex);
popmatrix();
}
/*--------------------------------------------------*/
void blue_spheres(int blueROT1, int blueROT2, int blueROT3,
float blueGROW1, float blueGROW2, float blueGROW3)
{
pushmatrix();
c4f(alphanameA);
translate(-7 + drand48() *20, 0.0, -5.0);
rotate(blueROT3, 'z');
scale(blueGROW3, blueGROW3, blueGROW3);
callobj(GLobjSphIndex);
popmatrix();
pushmatrix();
c4f(alphanameB);
translate(0.0, 0.0, 5.0);
rotate(blueROT2, 'y');
scale(blueGROW2, blueGROW2, blueGROW2);
callobj(GLobjSphIndex);
popmatrix();
pushmatrix();
c4f(alphanameC);
translate(-7 + drand48() *20, 0.0, -5.0);
rotate(blueROT1, 'x');
scale(blueGROW1, blueGROW1, blueGROW1);
callobj(GLobjSphIndex);
popmatrix();
}
/*--------------------------------------------------*/
void grostro_lines()
{
pushmatrix();
if (growstrobe==1){
cpack(0xffffff);
}
else
cpack(0x000000);
translate(7.0, 0.0, -5.0);
scale(5.0, .1, 0.0);
callobj(GLobjSqrIndex);
popmatrix();
pushmatrix();
if (growstrobe==1){
cpack(0xffffffff);
}
else
cpack(0x000000);
translate(-7.0, 0.0, -5.0);
scale(5.0, .1, 0.0);
callobj(GLobjSqrIndex);
popmatrix();
}
/*--------------------------------------------------*/