Example #1
0
void drawTurretStuff(turret_struct* t)
{
	if(!t || !t->used || t->dead)return;
	
	drawLaser(t->laserOrigin,t->laserDestination);
	if(t->laserThroughPortal)drawLaser(t->laserOrigin2,t->laserDestination2);

	//TEMP TEST BILLBOARD
		vect3D u1=vect(t->OBB->transformationMatrix[0],t->OBB->transformationMatrix[3],t->OBB->transformationMatrix[6]);
		vect3D u2=vect(t->OBB->transformationMatrix[1],t->OBB->transformationMatrix[4],t->OBB->transformationMatrix[7]);
		vect3D u3=vect(t->OBB->transformationMatrix[2],t->OBB->transformationMatrix[5],t->OBB->transformationMatrix[8]);

		glPolyFmt(POLY_ALPHA(31) | POLY_CULL_BACK | POLY_ID(63));
		GFX_COLOR=RGB15(31,31,31);
		applyMTL(turretShotTexture);

		if(t->drawShot[0])
		{
			glPushMatrix();
				glTranslatef32(t->laserOrigin.x, t->laserOrigin.y, t->laserOrigin.z);
				glTranslatef32(u3.x/128, u3.y/128, u3.z/128);
				glTranslatef32(u1.x/32, u1.y/32, u1.z/32);
				glScalef32(inttof32(1)/16,inttof32(1)/16,inttof32(1)/16);
				glRotatef32i(t->shotAngle[0],u3.x,u3.y,u3.z);
				glBegin(GL_QUADS);
					GFX_TEX_COORD = TEXTURE_PACK(inttot16(0), inttot16(0));
					glVertex3v16(-u1.x/2-u2.x, -u1.y/2-u2.y, -u1.z/2-u2.z);
					GFX_TEX_COORD = TEXTURE_PACK(inttot16(32), inttot16(0));
					glVertex3v16(+u1.x/2-u2.x, +u1.y/2-u2.y, +u1.z/2-u2.z);
					GFX_TEX_COORD = TEXTURE_PACK(inttot16(32), inttot16(64));
					glVertex3v16(+u1.x/2+u2.x, +u1.y/2+u2.y, +u1.z/2+u2.z);
					GFX_TEX_COORD = TEXTURE_PACK(inttot16(0), inttot16(64));
					glVertex3v16(-u1.x/2+u2.x, -u1.y/2+u2.y, -u1.z/2+u2.z);
			glPopMatrix(1);
		}

		if(t->drawShot[1])
		{
			glPushMatrix();
				glTranslatef32(t->laserOrigin.x, t->laserOrigin.y, t->laserOrigin.z);
				glTranslatef32(u3.x/128, u3.y/128, u3.z/128);
				glTranslatef32(-u1.x/32, -u1.y/32, -u1.z/32);
				glScalef32(inttof32(1)/16,inttof32(1)/16,inttof32(1)/16);
				glRotatef32i(t->shotAngle[1],u3.x,u3.y,u3.z);
				glBegin(GL_QUADS);
					GFX_TEX_COORD = TEXTURE_PACK(inttot16(0), inttot16(0));
					glVertex3v16(-u1.x/2-u2.x, -u1.y/2-u2.y, -u1.z/2-u2.z);
					GFX_TEX_COORD = TEXTURE_PACK(inttot16(32), inttot16(0));
					glVertex3v16(+u1.x/2-u2.x, +u1.y/2-u2.y, +u1.z/2-u2.z);
					GFX_TEX_COORD = TEXTURE_PACK(inttot16(32), inttot16(64));
					glVertex3v16(+u1.x/2+u2.x, +u1.y/2+u2.y, +u1.z/2+u2.z);
					GFX_TEX_COORD = TEXTURE_PACK(inttot16(0), inttot16(64));
					glVertex3v16(-u1.x/2+u2.x, -u1.y/2+u2.y, -u1.z/2+u2.z);
			glPopMatrix(1);
		}
}
Example #2
0
static void renderScene(void)
{

    glMatrixMode(GL_MODELVIEW);
    glLoadIdentity();

    gluLookAt(C.eye[0],C.eye[1],C.eye[2],
              C.center[0],C.center[1],C.center[2],
              C.up[0],C.up[1],C.up[2]);

    glRotatef32i(angle,inttov16(0),inttov16(1),inttov16(0));

    switch(selectedModel)
    {
        case DRAGON:
            DRAW_MODEL(dragon);
        break;
        case GISELE:
            DRAW_MODEL(gisele);
        break;
        case BOX:
            DRAW_MODEL(box);
        break;
        case TEAPOT:
            DRAW_MODEL(teapot);
        break;
        case SPIDER:
            DRAW_MODEL(spider);
        break;
        case WU:
            DRAW_MODEL(wu);
        break;
    }

}
Example #3
0
//-------------------------------------------------------
void renderPyramid(int angle){
//-------------------------------------------------------
 
	glPushMatrix();
	glTranslatef(0, 0, -4);
	glRotatef32i(degreesToAngle(angle), inttof32(1),inttof32(1),inttof32(1)); 
	
	glBegin(GL_QUADS);
		glColor3b(255,0,0);		glVertex3f(-1.0f, -1.0f,  1.0f);					
		glColor3b(0,255,0);		glVertex3f( 1.0f, -1.0f,  1.0f);					
		glColor3b(0,0,255);		glVertex3f( 1.0f, -1.0f, -1.0f);					
		glColor3b(255,255,0);	glVertex3f(-1.0f, -1.0f, -1.0f);					
	glEnd();

	glBegin(GL_TRIANGLES);
		glColor3b(255,0,0);		glVertex3f( 0.0f,  1.0f,  0.0f);					
		glColor3b(0,255,0);		glVertex3f(-1.0f, -1.0f,  1.0f);					
		glColor3b(0,0,255);		glVertex3f( 1.0f, -1.0f,  1.0f);					

		glColor3b(255,0,0);		glVertex3f( 0.0f,  1.0f,  0.0f);					
		glColor3b(0,255,0);		glVertex3f(-1.0f, -1.0f, -1.0f);					
		glColor3b(0,0,255);		glVertex3f( 1.0f, -1.0f, -1.0f);					

		glColor3b(255,0,0);		glVertex3f( 0.0f,  1.0f,  0.0f);					
		glColor3b(0,255,0);		glVertex3f(-1.0f, -1.0f,  1.0f);					
		glColor3b(0,0,255);		glVertex3f(-1.0f, -1.0f, -1.0f);					

		glColor3b(255,0,0);		glVertex3f( 0.0f,  1.0f,  0.0f);					
		glColor3b(0,255,0);		glVertex3f( 1.0f, -1.0f,  1.0f);					
		glColor3b(0,0,255);		glVertex3f( 1.0f, -1.0f, -1.0f);					
	glEnd();
 
	glPopMatrix(1);
}