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