/* * CS 453 - Final project : An OpenGL version of the pegboard game IQ * Due : June 5, 1997 * Author : Kiri Wagstaff * * File : gliq.c * Description : Main board display file. * * 5/22 : Displays the board selection screen, and uses keyboard * input to manipulate it and select. * */ #include "gliq.h" /* globals */ #if 0 //GLuint cone; #endif int curstate; int mouse_state=-1; int mouse_button=-1; int pegs=0; int totalpegs=0; int lastpicked = 0; /* functions */ void init(void); void reshape(int width, int height); void display(void); void special(int key, int x, int y); void keyboard(unsigned char key, int x, int y); void mouse(int button, int state, int x, int y); void motion(int x, int y); void idle(void); int main(int argc, char** argv) { glutInit(&argc, argv); glutInitWindowSize(512, 512); glutInitWindowPosition(0, 0); glutInitDisplayMode(GLUT_RGB | GLUT_DEPTH | GLUT_DOUBLE); glutCreateWindow("GLIQ"); glutReshapeFunc(reshape); glutDisplayFunc(display); glutKeyboardFunc(keyboard); glutSpecialFunc(special); glutMouseFunc(mouse); glutMotionFunc(motion); glutPassiveMotionFunc(passive); glutIdleFunc(idle); init(); glutMainLoop(); return 0; } void init(void) { int i, j; /* lighting */ glEnable(GL_LIGHTING); glEnable(GL_LIGHT0); glEnable(GL_COLOR_MATERIAL); glEnable(GL_DEPTH_TEST); glDepthFunc(GL_LEQUAL); /* glEnable(GL_CULL_FACE);*/ /* put the identity in the trackball transform */ tbInit(GLUT_RIGHT_BUTTON); glSelectBuffer(SELECT_BUFFER, select_buffer); /* make the star cone */ /* cone = glGenLists(1); glNewList(cone, GL_COMPILE); glPushMatrix(); for (i=0; i<3; i++) { glRotatef(45.0, 1.0, 0.0, 0.0); glutSolidCone(0.2, 2.0, 8, 8); } glPopMatrix(); glEndList();*/ /* Initialize the state */ for (i=0; i=numboards) curboard = 0; /* Set up filled array */ for (i=0; i minpegs)) { curstate = HIGHSC; numentered = 0; written = 0; glutKeyboardFunc(keyscores); glutIdleFunc(idlescore); break; } curstate = SELBOARD; glutIdleFunc(idle); totalpegs = 0; for (i=0; i