home *** CD-ROM | disk | FTP | other *** search
/ 3D Games (Spidla) / 3dhry1.iso / carterrain / src / intro.cpp < prev    next >
Encoding:
C/C++ Source or Header  |  2003-03-17  |  2.4 KB  |  98 lines

  1. #include <allegro.h>
  2. #include <alleggl.h>
  3.  
  4. #include "timer.h"
  5.  
  6. void intro(void)
  7. {
  8.   
  9.     GLuint odelogotex, bennykramektex, allegrogllogotex;
  10.     BITMAP *bmp = load_tga("data/odelogo.tga", NULL);
  11.     if (bmp==0)
  12.     {
  13.         allegro_message("Can't open \"odelogo.tga\"!\n");
  14.         exit(-1);
  15.     }
  16.     odelogotex = allegro_gl_make_texture(bmp);
  17.     destroy_bitmap(bmp);
  18.     bmp = load_tga("data/bennykramek.tga", NULL);
  19.     if (bmp==0)
  20.     {
  21.         allegro_message("Can't open \"bennykramek.tga\"!\n");
  22.         exit(-1);
  23.     }
  24.     bennykramektex = allegro_gl_make_texture(bmp);
  25.     destroy_bitmap(bmp);
  26.     bmp = load_tga("data/allegrogllogo.tga", NULL);
  27.     if (bmp==0)
  28.     {
  29.         allegro_message("Can't open \"allegrogllogo.tga\"!\n");
  30.         exit(-1);
  31.     }
  32.     allegrogllogotex = allegro_gl_make_texture(bmp);
  33.     destroy_bitmap(bmp);
  34.  
  35.     allegro_gl_begin();
  36.     glDisable(GL_DEPTH_TEST);
  37.     allegro_gl_end();
  38.     
  39.     while(timer.ticks<15000 && !(key[KEY_SPACE] || key[KEY_ESC]))
  40.     {
  41.         allegro_gl_begin();
  42.         glClear(GL_COLOR_BUFFER_BIT);
  43.         glEnable(GL_TEXTURE_2D);
  44.         glDisable(GL_LIGHTING);
  45.         if((timer.ticks%5000)<=1000)
  46.             glColor3f(0, 0, 0);
  47.         else if((timer.ticks%5000)<2000)
  48.             glColor3f(((timer.ticks%5000)-1000)/1000.0, ((timer.ticks%5000)-1000)/1000.0, ((timer.ticks%5000)-1000)/1000.0);
  49.         else if((timer.ticks%5000)<4000)
  50.             glColor3f(1, 1, 1);
  51.         else
  52.             glColor3f((5000-(timer.ticks%5000))/1000.0, (5000-(timer.ticks%5000))/1000.0, (5000-(timer.ticks%5000))/1000.0);
  53.         if(timer.ticks<5000)
  54.         {
  55.             glBindTexture(GL_TEXTURE_2D, bennykramektex);
  56.             glBegin(GL_QUADS);
  57.             glTexCoord2f(1, 1);
  58.             glVertex3f(4, 1, -8);
  59.             glTexCoord2f(0, 1);
  60.             glVertex3f(-4, 1, -8);
  61.             glTexCoord2f(0, 0);
  62.             glVertex3f(-4, -1, -8);
  63.             glTexCoord2f(1, 0);
  64.             glVertex3f(4, -1, -8);
  65.             glEnd();
  66.         }
  67.         else
  68.         {
  69.             if(timer.ticks<10000)
  70.                 glBindTexture(GL_TEXTURE_2D, allegrogllogotex);
  71.             else
  72.                 glBindTexture(GL_TEXTURE_2D, odelogotex);
  73.             glBegin(GL_QUADS);
  74.             glTexCoord2f(1, 1);
  75.             glVertex3f(2, 1, -5);
  76.             glTexCoord2f(0, 1);
  77.             glVertex3f(-2, 1, -5);
  78.             glTexCoord2f(0, 0);
  79.             glVertex3f(-2, -1, -5);
  80.             glTexCoord2f(1, 0);
  81.             glVertex3f(2, -1, -5);
  82.             glEnd();
  83.         }
  84.         glEnable(GL_LIGHTING);
  85.         glDisable(GL_TEXTURE_2D);
  86.         glFinish();
  87.         allegro_gl_flip();
  88.         allegro_gl_end();
  89.     }
  90.  
  91.     allegro_gl_begin();
  92.     glDeleteTextures(1, &odelogotex);
  93.     glDeleteTextures(1, &allegrogllogotex);
  94.     glDeleteTextures(1, &bennykramektex);
  95.     glEnable(GL_DEPTH_TEST);
  96.     allegro_gl_end();
  97. }
  98.