Esempio n. 1
0
void NETHER::draw_status(void)
{
    /* Clear the color and depth buffers. */ 
    glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);

    glMatrixMode(GL_MODELVIEW);
    glLoadIdentity();

	/* Draw buttons: */ 
	{
		List<STATUSBUTTON> l;
		STATUSBUTTON *b;
		float angle,cf;

		l.Instance(buttons);
		l.Rewind();
		while(l.Iterate(b)) {
			if (b->status>=-16) {
				angle=(float(b->status)*90.0)/16.0;
				cf=float((16-abs(b->status)))/16.0;
				glPushMatrix();
				glTranslatef(b->x,b->y,0);
				glRotatef(angle,0,1,0);

				/* Draw button: */ 
				glColor3f(b->r*cf,b->g*cf,b->b*cf);
				glutSolidBox(b->sx/2,b->sy/2,10.0);
				glTranslatef(0,0,11);

				glColor3f(1.0,1.0,1.0);
				if (b->text1[0]!=0) {
					if (b->text2[0]!=0) {
						glTranslatef(0,-12,0);
						scaledglprintf(0.1f,0.1f,b->text2);
						glTranslatef(0,17,0);
						scaledglprintf(0.1f,0.1f,b->text1);
					} else {
						glTranslatef(0,-3,0);
						scaledglprintf(0.1f,0.1f,b->text1);
					} /* if */ 
				} /* if */ 

				glPopMatrix();
			} /* if */ 
		} /* while */ 
	}

	glPushMatrix();
	switch(act_menu) {
	case GENERAL_MENU:
		{
			STATUSBUTTON *b;
			b=getbutton(STATUS_BUTTON);
			if (b!=0 && b->status==0) {
				statistics[0][7]=robots[0].Length();
				statistics[1][7]=robots[1].Length();

				glColor3f(0.5f,0.5f,1.0f);
				glTranslatef(70,356,0);
				scaledglprintf(0.1f,0.1f,"%i WARBASES %i",statistics[1][0],statistics[0][0]);
				glTranslatef(0,-18,0);
				scaledglprintf(0.1f,0.1f,"%i ELECTR'S %i",statistics[1][1],statistics[0][1]);
				glTranslatef(0,-18,0);
				scaledglprintf(0.1f,0.1f,"%i NUCLEAR  %i",statistics[1][2],statistics[0][2]);
				glTranslatef(0,-18,0);
				scaledglprintf(0.1f,0.1f,"%i PHASERS  %i",statistics[1][3],statistics[0][3]);
				glTranslatef(0,-18,0);
				scaledglprintf(0.1f,0.1f,"%i MISSILES %i",statistics[1][4],statistics[0][4]);
				glTranslatef(0,-18,0);
				scaledglprintf(0.1f,0.1f,"%i  CANNON  %i",statistics[1][5],statistics[0][5]);
				glTranslatef(0,-18,0);
				scaledglprintf(0.1f,0.1f,"%i CHASSIS  %i",statistics[1][6],statistics[0][6]);
				glTranslatef(0,-18,0);
				scaledglprintf(0.1f,0.1f,"%.2i ROBOTS %.2i",statistics[1][7],statistics[0][7]);

				glColor3f(0.0f,0.8f,0.0f);
				glTranslatef(0,-65,0);
				scaledglprintf(0.1f,0.1f,"GENERAL %.2i",resources[0][0]);
				glTranslatef(0,-18,0);
				scaledglprintf(0.1f,0.1f,"ELECTR' %.2i",resources[0][1]);
				glTranslatef(0,-18,0);
				scaledglprintf(0.1f,0.1f,"NUCLEAR %.2i",resources[0][2]);
				glTranslatef(0,-18,0);
				scaledglprintf(0.1f,0.1f,"PHASERS %.2i",resources[0][3]);
				glTranslatef(0,-18,0);
				scaledglprintf(0.1f,0.1f,"MISSILE %.2i",resources[0][4]);
				glTranslatef(0,-18,0);
				scaledglprintf(0.1f,0.1f,"CANNON  %.2i",resources[0][5]);
				glTranslatef(0,-18,0);
				scaledglprintf(0.1f,0.1f,"CHASSIS %.2i",resources[0][6]);
			} /* if */ 
		}
		break;
	case ROBOT_MENU:
	case DIRECTCONTROL_MENU:
		{
			STATUSBUTTON *b;

			b=getbutton(ROBOT1_BUTTON);
			if (b!=0 && b->status==0) {

				glTranslatef(70,140,0);
				glColor3f(1.0f,1.0f,0.0);
				scaledglprintf(0.1f,0.1f,"-ORDERS-");
				glColor3f(0.5f,0.5f,1.0f);
				switch(controlled->program) {
				case PROGRAM_STOPDEFEND:
					glTranslatef(0,-20,0);
					scaledglprintf(0.1f,0.1f,"STOP");
					glTranslatef(0,-18,0);
					scaledglprintf(0.1f,0.1f,"AND");
					glTranslatef(0,-18,0);
					scaledglprintf(0.1f,0.1f,"DEFEND");
					break;
				case PROGRAM_ADVANCE:
					glTranslatef(0,-20,0);
					scaledglprintf(0.1f,0.1f,"ADVANCE");
					glTranslatef(0,-18,0);
					scaledglprintf(0.1f,0.1f,"%.2i",controlled->program_parameter/2);
					glTranslatef(0,-18,0);
					scaledglprintf(0.1f,0.1f,"MILES");
					break;
				case PROGRAM_RETREAT:
					glTranslatef(0,-20,0);
					scaledglprintf(0.1f,0.1f,"RETREAT");
					glTranslatef(0,-18,0);
					scaledglprintf(0.1f,0.1f,"%.2i",controlled->program_parameter/2);
					glTranslatef(0,-18,0);
					scaledglprintf(0.1f,0.1f,"MILES");
					break;
				case PROGRAM_DESTROY:
					glTranslatef(0,-20,0);
					scaledglprintf(0.1f,0.1f,"DESTROY");
					switch(controlled->program_parameter) {
					case P_PARAM_ROBOTS:
						glTranslatef(0,-18,0);
						scaledglprintf(0.1f,0.1f,"ENEMY");
						glTranslatef(0,-18,0);
						scaledglprintf(0.1f,0.1f,"ROBOTS");
						break;
					case P_PARAM_WARBASES:
						glTranslatef(0,-18,0);
						scaledglprintf(0.1f,0.1f,"ENEMY");
						glTranslatef(0,-18,0);
						scaledglprintf(0.1f,0.1f,"WARBASES");
						break;
					case P_PARAM_NFACTORIES:
						glTranslatef(0,-18,0);
						scaledglprintf(0.1f,0.1f,"NEUTRAL");
						glTranslatef(0,-18,0);
						scaledglprintf(0.1f,0.1f,"FACTORIES");
						break;
					case P_PARAM_EFACTORIES:
						glTranslatef(0,-18,0);
						scaledglprintf(0.1f,0.1f,"ENEMY");
						glTranslatef(0,-18,0);
						scaledglprintf(0.1f,0.1f,"FACTORIES");
						break;
					} /* switch */ 
					break;
				case PROGRAM_CAPTURE:
					glTranslatef(0,-20,0);
					scaledglprintf(0.1f,0.1f,"CAPTURE");
					switch(controlled->program_parameter) {
					case P_PARAM_ROBOTS:
						glTranslatef(0,-18,0);
						scaledglprintf(0.1f,0.1f,"ENEMY");
						glTranslatef(0,-18,0);
						scaledglprintf(0.1f,0.1f,"ROBOTS");
						break;
					case P_PARAM_WARBASES:
						glTranslatef(0,-18,0);
						scaledglprintf(0.1f,0.1f,"ENEMY");
						glTranslatef(0,-18,0);
						scaledglprintf(0.1f,0.1f,"WARBASES");
						break;
					case P_PARAM_NFACTORIES:
						glTranslatef(0,-18,0);
						scaledglprintf(0.1f,0.1f,"NEUTRAL");
						glTranslatef(0,-18,0);
						scaledglprintf(0.1f,0.1f,"FACTORIES");
						break;
					case P_PARAM_EFACTORIES:
						glTranslatef(0,-18,0);
						scaledglprintf(0.1f,0.1f,"ENEMY");
						glTranslatef(0,-18,0);
						scaledglprintf(0.1f,0.1f,"FACTORIES");
						break;
					} /* switch */ 
					break;
				} /* switch */ 

				glTranslatef(0,-44,0);
				glColor3f(1.0f,1.0f,0.0);
				scaledglprintf(0.1f,0.1f,"STRENGTH");
				glTranslatef(0,-18,0);
				glColor3f(1.0f,1.0f,1.0f);
				scaledglprintf(0.1f,0.1f,"%.3i%c",controlled->strength,'%');
			} /* if */ 
		}
		break;

	case COMBATMODE_MENU:
	case DIRECTCONTROL2_MENU:

		glTranslatef(70,40,0);
		glColor3f(1.0f,1.0f,0.0);
		scaledglprintf(0.1f,0.1f,"STRENGTH");
		glTranslatef(0,-18,0);
		glColor3f(1.0f,1.0f,1.0f);
		scaledglprintf(0.1f,0.1f,"%.3i%c",controlled->strength,'%');
		break;

	case ORDERS_MENU:
		{
			STATUSBUTTON *b;

			b=getbutton(ORDERS1_BUTTON);
			if (b!=0 && b->status==0) {
				glTranslatef(70,400,0);
				glColor3f(1.0f,1.0f,1.0f);
				scaledglprintf(0.1f,0.1f,"SELECT");
				glTranslatef(0,-20,0);
				scaledglprintf(0.1f,0.1f,"ORDERS");

				glTranslatef(0,-340,0);
				glColor3f(1.0f,1.0f,0.0);
				scaledglprintf(0.1f,0.1f,"STRENGTH");
				glTranslatef(0,-18,0);
				glColor3f(1.0f,1.0f,1.0f);
				scaledglprintf(0.1f,0.1f,"%.3i%c",controlled->strength,'%');
			} /* if */ 
		}
		break;

	case SELECTDISTANCE_MENU:
		{
			STATUSBUTTON *b;

			b=getbutton(ORDERS_BUTTON);
			if (b!=0 && b->status==0) {
				glTranslatef(70,300,0);
				glColor3f(0.5f,0.5f,1.0f);
				scaledglprintf(0.1f,0.1f,"SELECT");
				glTranslatef(0,-20,0);
				scaledglprintf(0.1f,0.1f,"DISTANCE");

				glColor3f(1.0f,1.0f,0.0);
				glTranslatef(0,-40,0);
				scaledglprintf(0.1f,0.1f,"%.2i MILES",controlled->program_parameter/2);

				glTranslatef(0,-200,0);
				glColor3f(1.0f,1.0f,0.0);
				scaledglprintf(0.1f,0.1f,"STRENGTH");
				glTranslatef(0,-18,0);
				glColor3f(1.0f,1.0f,1.0f);
				scaledglprintf(0.1f,0.1f,"%.3i%c",controlled->strength,'%');
			} /* if */ 
		}
		break;

	case TARGETD_MENU:
	case TARGETC_MENU:
		{
			STATUSBUTTON *b;

			b=getbutton(ORDERS_BUTTON);
			if (b!=0 && b->status==0) {
				glTranslatef(70,350,0);
				glColor3f(0.5f,0.5f,1.0f);
				scaledglprintf(0.1f,0.1f,"SELECT");
				glTranslatef(0,-20,0);
				scaledglprintf(0.1f,0.1f,"TARGET");

				glTranslatef(0,-290,0);
				glColor3f(1.0f,1.0f,0.0);
				scaledglprintf(0.1f,0.1f,"STRENGTH");
				glTranslatef(0,-18,0);
				glColor3f(1.0f,1.0f,1.0f);
				scaledglprintf(0.1f,0.1f,"%.3i%c",controlled->strength,'%');
			} /* if */ 
		}
		break;

	} /* switch */ 
	glPopMatrix();

} /* NETHER::draw_status */ 
Esempio n. 2
0
/*
void BuildFont(void){
    HFONT font;
    base = glGenLists(96);
    font = CreateFont( -24, 0, 0, 0, FW_BOLD, FALSE, FALSE, FALSE, ANSI_CHARSET, OUT_TT_PRECIS, CLIP_DEFAULT_PRECIS, ANTIALIASED_QUALITY, FF_DONTCARE|DEFAULT_PITCH, "Courier New");
}
*/
void mainmenu_draw(int width,int height)
{
    float lightpos2[4]={0,0,1000,0};
    float tmpls[4]={1.0F,1.0F,1.0F,1.0};
    float tmpld[4]={0.6F,0.6F,0.6F,1.0};
    float tmpla[4]={0.2F,0.2F,0.2F,1.0};
    float ratio;

    if (nethertittle==0) {
        nethertittle=new C3DObject("models/tittle.asc","textures/");
        nethertittle->normalize(7.0);
    } /* if */

    /* Enable Lights, etc.: */
    glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST);  // Really Nice Perspective Calculations
    glEnable(GL_LIGHT0);
    glLightfv(GL_LIGHT0,GL_AMBIENT,tmpla);
    glLightfv(GL_LIGHT0,GL_DIFFUSE,tmpld);
    glLightfv(GL_LIGHT0,GL_SPECULAR,tmpls);
    glEnable(GL_LIGHTING);
    glEnable(GL_COLOR_MATERIAL);
    glShadeModel( GL_SMOOTH );
    glCullFace( GL_BACK );
    glFrontFace( GL_CCW );
    glEnable( GL_CULL_FACE );
    glDisable( GL_SCISSOR_TEST );
    glEnable( GL_DEPTH_TEST );

    glLightfv(GL_LIGHT0,GL_POSITION,lightpos2);
    glClearColor(0,0,0,0.0);
    glViewport(0,0,width,height);
    ratio=(float)width/float(height);
    glMatrixMode( GL_PROJECTION );
    glLoadIdentity( );
    gluPerspective( 30.0, ratio, 1.0, 1024.0 );
    gluLookAt(0,0,30,0,0,0,0,1,0);

    glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);

    glMatrixMode(GL_MODELVIEW);
    glLoadIdentity();

    switch(mainmenu_status) {
    case 0:
        glTranslatef(0,3,40-mainmenu_substatus);
        //nethertittle->draw(1.0,1.0,1.0);
        break;
    case 1:
        glTranslatef(0,3,0);
        glPushMatrix();
        glRotatef(sin(mainmenu_substatus*0.02)*5.0f,0,1,0);
        nethertittle->draw(1.0,1.0,1.0);
        glPopMatrix();
        glColor3f(0.5,0.5,1.0);
        glTranslatef(-6,-6,0);
        scaledglprintf2(0.005,0.005,_("1 - START NEW GAME   "));
        glTranslatef(-0,-1,0);
        scaledglprintf2(0.005,0.005,_("2 - REDEFINE KEYBOARD"));
        glTranslatef(0,-1,0);
        scaledglprintf2(0.005,0.005,_("3 - OPTIONS          "));
        glTranslatef(0,-1,0);
        scaledglprintf2(0.005,0.005,_("4 - MAP: %s"),mapname);
        glTranslatef(0,-1,0);
        scaledglprintf2(0.005,0.005,_("5 - EXIT GAME        "));
        break;
    case 2:
    case 4:
    case 5:
    case 6:
        glTranslatef(0,3,mainmenu_substatus);
        nethertittle->draw(1.0,1.0,1.0);
        break;
    case 3:
        glColor3f(0.5,0.5,1.0);
        glTranslatef(0,3.5,0);
        if (SCREEN_X== 320) scaledglprintf(0.005,0.005,_("1 - RESOLUTION:  320x240"));
        if (SCREEN_X== 400) scaledglprintf(0.005,0.005,_("1 - RESOLUTION:  400x300"));
        if (SCREEN_X== 640) scaledglprintf(0.005,0.005,_("1 - RESOLUTION:  640x480"));
        if (SCREEN_X== 800) scaledglprintf(0.005,0.005,_("1 - RESOLUTION:  800x600"));
        if (SCREEN_X==1024) scaledglprintf(0.005,0.005,_("1 - RESOLUTION: 1024x768"));
        if (SCREEN_X==1280) scaledglprintf(0.005,0.005,_("1 - RESOLUTION: 1280x1024"));
        glTranslatef(0,-1,0);
        if (COLOUR_DEPTH== 8) scaledglprintf(0.005,0.005, _("2 - COLOR DEPTH:  8bit  "));
        if (COLOUR_DEPTH==16) scaledglprintf(0.005,0.005,_("2 - COLOR DEPTH: 16bit  "));
        if (COLOUR_DEPTH==24) scaledglprintf(0.005,0.005,_("2 - COLOR DEPTH: 24bit  "));
        if (COLOUR_DEPTH==32) scaledglprintf(0.005,0.005,_("2 - COLOR DEPTH: 32bit  "));
        glTranslatef(0,-1,0);
        if (fullscreen) scaledglprintf(0.005,0.005,_("3 - FULLSCREEN          "));
        else scaledglprintf(0.005,0.005,_("3 - WINDOWED            "));
        glTranslatef(0,-1,0);
        if (shadows==0) scaledglprintf(0.005,0.005,_("4 - SHADOWS: OFF        "));
        if (shadows==1) scaledglprintf(0.005,0.005,_("4 - SHADOWS: ON - DIAG  "));
        if (shadows==2) scaledglprintf(0.005,0.005,_("4 - SHADOWS: ON - VERT  "));
        glTranslatef(0,-1,0);
        if (detaillevel==0) scaledglprintf(0.005,0.005,_("5 - DETAIL: LOWEST      "));
        if (detaillevel==1) scaledglprintf(0.005,0.005,_("5 - DETAIL: LOW         "));
        if (detaillevel==2) scaledglprintf(0.005,0.005,_("5 - DETAIL: MEDIUM      "));
        if (detaillevel==3) scaledglprintf(0.005,0.005,_("5 - DETAIL: HIGH        "));
        if (detaillevel==4) scaledglprintf(0.005,0.005,_("5 - DETAIL: HIGHEST     "));
        glTranslatef(0,-1,0);
        if (sound) scaledglprintf(0.005,0.005,_("6 - SOUND: ON           "));
              else scaledglprintf(0.005,0.005,_("6 - SOUND: OFF          "));
        glTranslatef(0,-1,0);
        if (level==0) scaledglprintf(0.005,0.005,_("7 - LEVEL: EASY         "));
        if (level==1) scaledglprintf(0.005,0.005,_("7 - LEVEL: NORMAL       "));
        if (level==2) scaledglprintf(0.005,0.005,_("7 - LEVEL: HARD         "));
        if (level==3) scaledglprintf(0.005,0.005,_("7 - LEVEL: IMPOSSIBLE   "));
        glTranslatef(0,-1,0);
        if (show_radar) scaledglprintf(0.005,0.005,_("8 - RADAR: ON           "));
                   else scaledglprintf(0.005,0.005,_("8 - RADAR: OFF          "));
        glTranslatef(0,-1,0);
        scaledglprintf(0.005,0.005,_("9 - BACK                "));
        break;
    case 7:
        {
            char tmp[256];

            glColor3f(0.5,0.5,1.0);
            glTranslatef(0,5,0);
            scaledglprintf(0.005,0.005,"REDEFINE KEYBOARD");
            glTranslatef(0,-2,0);
            if (mainmenu_substatus!=0) glColor3f(0.5,0.5,1.0);
                                  else glColor3f(1.0,0.0,0.0);
            sprintf(tmp,_("PRESS A KEY FOR UP: %s"),strupr(SDL_GetKeyName((SDLKey)up_key)));
            scaledglprintf(0.005,0.005,tmp);
            glTranslatef(0,-1,0);
            if (mainmenu_substatus!=1) glColor3f(0.5,0.5,1.0);
                                  else glColor3f(1.0,0.0,0.0);
            sprintf(tmp,_("PRESS A KEY FOR DOWN: %s"),strupr(SDL_GetKeyName((SDLKey)down_key)));
            scaledglprintf(0.005,0.005,tmp);
            glTranslatef(0,-1,0);
            if (mainmenu_substatus!=2) glColor3f(0.5,0.5,1.0);
                                  else glColor3f(1.0,0.0,0.0);
            sprintf(tmp,_("PRESS A KEY FOR LEFT: %s"),strupr(SDL_GetKeyName((SDLKey)left_key)));
            scaledglprintf(0.005,0.005,tmp);
            glTranslatef(0,-1,0);
            if (mainmenu_substatus!=3) glColor3f(0.5,0.5,1.0);
                                  else glColor3f(1.0,0.0,0.0);
            sprintf(tmp,_("PRESS A KEY FOR RIGHT: %s"),strupr(SDL_GetKeyName((SDLKey)right_key)));
            scaledglprintf(0.005,0.005,tmp);
            glTranslatef(0,-1,0);
            if (mainmenu_substatus!=4) glColor3f(0.5,0.5,1.0);
                                  else glColor3f(1.0,0.0,0.0);
            sprintf(tmp,_("PRESS A KEY FOR FIRE: %s"),strupr(SDL_GetKeyName((SDLKey)fire_key)));
            scaledglprintf(0.005,0.005,tmp);

            glTranslatef(0,-1,0);
            if (mainmenu_substatus!=5) glColor3f(0.5,0.5,1.0);
                                  else glColor3f(1.0,0.0,0.0);
            sprintf(tmp,_("PRESS A KEY FOR PAUSE/MENU: %s"),strupr(SDL_GetKeyName((SDLKey)pause_key)));
            scaledglprintf(0.005,0.005,tmp);

            glColor3f(0.5,0.5,1.0);
            glTranslatef(0,-2,0);
            scaledglprintf(0.005,0.005,_("PG.UP/PG.DOWN CHANGE THE ZOOM"));

            if (mainmenu_substatus>5) {
                glColor3f(1,1,1);
                glTranslatef(0,-2,0);
                scaledglprintf(0.005,0.005,_("PRESS ANY KEY TO RETURN TO MAIN MENU"));
            } /* if */
        }
        break;
    } /* switch */

    SDL_GL_SwapBuffers();
} /* NETHER::draw */
Esempio n. 3
0
void NETHER::options_draw(int w,int h)
{
	float lightpos2[4]={0,0,1000,0};
	float tmpls[4]={1.0F,1.0F,1.0F,1.0};
	float tmpld[4]={0.6F,0.6F,0.6F,1.0};
	float tmpla[4]={0.2F,0.2F,0.2F,1.0};
    float ratio;
	int splitx[2]={int(w*0.3),int(w*0.7)};
	int splity[2]={int(h*0.3),int(h*0.7)};

	/* Enable Lights, etc.: */ 
	glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST);	// Really Nice Perspective Calculations
	glEnable(GL_LIGHT0);
	glLightfv(GL_LIGHT0,GL_AMBIENT,tmpla);
	glLightfv(GL_LIGHT0,GL_DIFFUSE,tmpld);
	glLightfv(GL_LIGHT0,GL_SPECULAR,tmpls);
	glEnable(GL_LIGHTING);
	glEnable(GL_COLOR_MATERIAL);
	glShadeModel( GL_SMOOTH );
	glCullFace( GL_BACK );
	glFrontFace( GL_CCW );
    glEnable( GL_CULL_FACE );
	glEnable( GL_SCISSOR_TEST );  
	glEnable( GL_DEPTH_TEST );
	
	/* Draw the MENU: */ 
	glLightfv(GL_LIGHT0,GL_POSITION,lightpos);
    glClearColor(0,0,0,0.0);
    glViewport(splitx[0],splity[0],splitx[1]-splitx[0],splity[1]-splity[0]);
	ratio=float(splitx[1]-splitx[0])/float(splity[1]-splity[0]);
    glMatrixMode( GL_PROJECTION );
    glLoadIdentity( );
    gluPerspective( 30.0, ratio, 1.0, 1024.0 );
	glScissor(splitx[0],splity[0],splitx[1]-splitx[0],splity[1]-splity[0]);
	gluLookAt(0,0,30,0,0,0,0,1,0);

    glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);

    glMatrixMode(GL_MODELVIEW);
    glLoadIdentity();

	if (game_state==STATE_PAUSE) {
		if (option_menu==0) glColor3f(1.0,0.0,0.0);
					   else glColor3f(0.5,0.5,1.0);
		glTranslatef(0,5,0);
		scaledglprintf(0.01,0.01,"RETURN TO GAME");

		if (option_menu==1) glColor3f(1.0,0.0,0.0);
					   else glColor3f(0.5,0.5,1.0);
		glTranslatef(0,-5,0);
		scaledglprintf(0.01,0.01,"LOAD GAME");

		if (option_menu==2) glColor3f(1.0,0.0,0.0);
					   else glColor3f(0.5,0.5,1.0);
		glTranslatef(0,-3,0);
		scaledglprintf(0.01,0.01,"SAVE GAME");

		if (option_menu==3) glColor3f(1.0,0.0,0.0);
					   else glColor3f(0.5,0.5,1.0);
		glTranslatef(0,-3,0);
		scaledglprintf(0.01,0.01,"QUIT GAME");
	} /* if */ 

	if (game_state==STATE_SAVINGGAME) {
		int i;
		FILE *fp;
		char filename[80];

		glColor3f(0.5,0.5,1.0);
		glTranslatef(0,6,0);
		scaledglprintf(0.01,0.01,"CHOOSE SLOT TO SAVE");

		if (option_menu==0) glColor3f(1.0,0.0,0.0);
					   else glColor3f(0.5,0.5,1.0);
		glTranslatef(0,-4,0);
		scaledglprintf(0.01,0.01,"CANCEL");

		for(i=0;i<4;i++) {
			if (option_menu==(i+1)) glColor3f(1.0,0.0,0.0);
						       else glColor3f(0.5,0.5,1.0);
			glTranslatef(0,-2,0);
			sprintf(filename,"savedgame%i.txt",i);
			fp=fopen(filename,"r");
			if (fp==0) {
				scaledglprintf(0.01,0.01,"SLOT%i - EMPTY",i+1);
			} else {
				scaledglprintf(0.01,0.01,"SLOT%i - GAME SAVED",i+1);
				fclose(fp);
			} /* if */ 
		} /* for */ 
	} /* if */ 

	if (game_state==STATE_LOADINGGAME) {
		int i;
		FILE *fp;
		char filename[80];

		glColor3f(0.5,0.5,1.0);
		glTranslatef(0,6,0);
		scaledglprintf(0.01,0.01,"CHOOSE SLOT TO LOAD");

		if (option_menu==0) glColor3f(1.0,0.0,0.0);
					   else glColor3f(0.5,0.5,1.0);
		glTranslatef(0,-4,0);
		scaledglprintf(0.01,0.01,"CANCEL");

		for(i=0;i<4;i++) {
			if (option_menu==(i+1)) glColor3f(1.0,0.0,0.0);
						       else glColor3f(0.5,0.5,1.0);
			glTranslatef(0,-2,0);
			sprintf(filename,"savedgame%i.txt",i);
			fp=fopen(filename,"r");
			if (fp==0) {
				scaledglprintf(0.01,0.01,"SLOT%i - EMPTY",i+1);
			} else {
				scaledglprintf(0.01,0.01,"SLOT%i - GAME SAVED",i+1);
				fclose(fp);
			} /* if */ 
		} /* for */ 
	} /* if */ 


} /* NETHER::options_draw */