nummenuitems=14;
if((float)newscreenwidth>(float)newscreenheight*1.61||(float)newscreenwidth<(float)newscreenheight*1.59)sprintf (menustring[0], "Resolution: %d*%d",(int)newscreenwidth,(int)newscreenheight);
else sprintf (menustring[0], "Resolution: %d*%d (widescreen)",(int)newscreenwidth,(int)newscreenheight);
nummenuitems=14;
if((float)newscreenwidth>(float)newscreenheight*1.61||(float)newscreenwidth<(float)newscreenheight*1.59)sprintf (menustring[0], "Resolution: %d*%d",(int)newscreenwidth,(int)newscreenheight);
else sprintf (menustring[0], "Resolution: %d*%d (widescreen)",(int)newscreenwidth,(int)newscreenheight);
if(newdetail==2)sprintf (menustring[1], "Detail: High");
else if(newdetail==1)sprintf (menustring[1], "Detail: Medium");
if(newdetail==2)sprintf (menustring[1], "Detail: High");
else if(newdetail==1)sprintf (menustring[1], "Detail: Medium");
if(bloodtoggle==2)sprintf (menustring[2], "Blood: On, high detail (slower)");
if(bloodtoggle==1)sprintf (menustring[2], "Blood: On, low detail");
if(bloodtoggle==2)sprintf (menustring[2], "Blood: On, high detail (slower)");
if(bloodtoggle==1)sprintf (menustring[2], "Blood: On, low detail");
if(difficulty==2)sprintf (menustring[3], "Difficulty: Insane");
if(difficulty==1)sprintf (menustring[3], "Difficulty: Difficult");
if(difficulty==2)sprintf (menustring[3], "Difficulty: Insane");
if(difficulty==1)sprintf (menustring[3], "Difficulty: Difficult");
if(ismotionblur==1)sprintf (menustring[4], "Blur Effects: Enabled (less compatible)");
if(ismotionblur==0)sprintf (menustring[4], "Blur Effects: Disabled (more compatible)");
if(ismotionblur==1)sprintf (menustring[4], "Blur Effects: Enabled (less compatible)");
if(ismotionblur==0)sprintf (menustring[4], "Blur Effects: Disabled (more compatible)");
if(decals==1)sprintf (menustring[5], "Decals: Enabled (slower)");
if(decals==0)sprintf (menustring[5], "Decals: Disabled");
if(decals==1)sprintf (menustring[5], "Decals: Enabled (slower)");
if(decals==0)sprintf (menustring[5], "Decals: Disabled");
if(musictoggle==1)sprintf (menustring[6], "Music: Enabled");
if(musictoggle==0)sprintf (menustring[6], "Music: Disabled");
if(musictoggle==1)sprintf (menustring[6], "Music: Enabled");
if(musictoggle==0)sprintf (menustring[6], "Music: Disabled");
if(invertmouse==1)sprintf (menustring[9], "Invert mouse: Yes");
if(invertmouse==0)sprintf (menustring[9], "Invert mouse: No");
if(invertmouse==1)sprintf (menustring[9], "Invert mouse: Yes");
if(invertmouse==0)sprintf (menustring[9], "Invert mouse: No");
sprintf (menustring[10], "Mouse Speed: %d", (int)(usermousesensitivity*5));
startx[10]=20;
starty[10]=195;
endx[10]=startx[10]+strlen(menustring[10])*10;
endy[10]=starty[10]+20;
sprintf (menustring[10], "Mouse Speed: %d", (int)(usermousesensitivity*5));
startx[10]=20;
starty[10]=195;
endx[10]=startx[10]+strlen(menustring[10])*10;
endy[10]=starty[10]+20;
sprintf (menustring[11], "Volume: %d%%", (int)(volume*100));
startx[11]=10+60;
starty[11]=160;
endx[11]=startx[11]+strlen(menustring[11])*10;
endy[11]=starty[11]+20;
sprintf (menustring[11], "Volume: %d%%", (int)(volume*100));
startx[11]=10+60;
starty[11]=160;
endx[11]=startx[11]+strlen(menustring[11])*10;
endy[11]=starty[11]+20;
sprintf (menustring[13], "Damage Bar: %s",(showdamagebar?"on":"off"));
startx[13]=30;
starty[13]=125;
endx[13]=startx[13]+strlen(menustring[13])*10;
endy[13]=starty[13]+20;
sprintf (menustring[13], "Damage Bar: %s",(showdamagebar?"on":"off"));
startx[13]=30;
starty[13]=125;
endx[13]=startx[13]+strlen(menustring[13])*10;
endy[13]=starty[13]+20;
sprintf (menustring[7], "-Configure Controls-");
startx[7]=10+15;
starty[7]=90;
endx[7]=startx[7]+strlen(menustring[7])*10;
endy[7]=starty[7]+20;
sprintf (menustring[7], "-Configure Controls-");
startx[7]=10+15;
starty[7]=90;
endx[7]=startx[7]+strlen(menustring[7])*10;
endy[7]=starty[7]+20;
sprintf (menustring[12], "-Configure Stereo -");
startx[12]=10+15;
starty[12]=55;
endx[12]=startx[12]+strlen(menustring[7])*10;
endy[12]=starty[12]+20;
sprintf (menustring[12], "-Configure Stereo -");
startx[12]=10+15;
starty[12]=55;
endx[12]=startx[12]+strlen(menustring[7])*10;
endy[12]=starty[12]+20;
if(newdetail==detail&&newscreenheight==(int)screenheight&&newscreenwidth==(int)screenwidth)sprintf (menustring[8], "Back");
else sprintf (menustring[8], "Back (some changes take effect next time Lugaru is opened)");
if(newdetail==detail&&newscreenheight==(int)screenheight&&newscreenwidth==(int)screenwidth)sprintf (menustring[8], "Back");
else sprintf (menustring[8], "Back (some changes take effect next time Lugaru is opened)");
if(keyselect!=1)sprintf (menustring[1], "Back: %s",Input::keyToChar(backkey));
else sprintf (menustring[1], "Back: _");
if(keyselect!=1)sprintf (menustring[1], "Back: %s",Input::keyToChar(backkey));
else sprintf (menustring[1], "Back: _");
if(keyselect!=2)sprintf (menustring[2], "Left: %s",Input::keyToChar(leftkey));
else sprintf (menustring[2], "Left: _");
if(keyselect!=2)sprintf (menustring[2], "Left: %s",Input::keyToChar(leftkey));
else sprintf (menustring[2], "Left: _");
if(keyselect!=3)sprintf (menustring[3], "Right: %s",Input::keyToChar(rightkey));
else sprintf (menustring[3], "Right: _");
if(keyselect!=3)sprintf (menustring[3], "Right: %s",Input::keyToChar(rightkey));
else sprintf (menustring[3], "Right: _");
if(keyselect!=4)sprintf (menustring[4], "Crouch: %s",Input::keyToChar(crouchkey));
else sprintf (menustring[4], "Crouch: _");
if(keyselect!=4)sprintf (menustring[4], "Crouch: %s",Input::keyToChar(crouchkey));
else sprintf (menustring[4], "Crouch: _");
if(keyselect!=5)sprintf (menustring[5], "Jump: %s",Input::keyToChar(jumpkey));
else sprintf (menustring[5], "Jump: _");
if(keyselect!=5)sprintf (menustring[5], "Jump: %s",Input::keyToChar(jumpkey));
else sprintf (menustring[5], "Jump: _");
if(keyselect!=6)sprintf (menustring[6], "Draw: %s",Input::keyToChar(drawkey));
else sprintf (menustring[6], "Draw: _");
if(keyselect!=6)sprintf (menustring[6], "Draw: %s",Input::keyToChar(drawkey));
else sprintf (menustring[6], "Draw: _");
if(keyselect!=7)sprintf (menustring[7], "Throw: %s",Input::keyToChar(throwkey));
else sprintf (menustring[7], "Throw: _");
if(keyselect!=7)sprintf (menustring[7], "Throw: %s",Input::keyToChar(throwkey));
else sprintf (menustring[7], "Throw: _");
if(keyselect!=8)sprintf (menustring[8], "Attack: %s",Input::keyToChar(attackkey));
else sprintf (menustring[8], "Attack: _");
if(keyselect!=8)sprintf (menustring[8], "Attack: %s",Input::keyToChar(attackkey));
else sprintf (menustring[8], "Attack: _");
sprintf (menustring[1], "Tutorial");
startx[1]=5;
starty[1]=300;
endx[1]=startx[1]+strlen(menustring[1])*10;
endy[1]=starty[1]+20;
sprintf (menustring[1], "Tutorial");
startx[1]=5;
starty[1]=300;
endx[1]=startx[1]+strlen(menustring[1])*10;
endy[1]=starty[1]+20;
sprintf (menustring[2], "Challenge");
startx[2]=5;
starty[2]=240;
endx[2]=startx[2]+strlen(menustring[2])*10;
endy[2]=starty[2]+20;
sprintf (menustring[2], "Challenge");
startx[2]=5;
starty[2]=240;
endx[2]=startx[2]+strlen(menustring[2])*10;
endy[2]=starty[2]+20;
sprintf (menustring[3], "Delete User");
startx[3]=400;
starty[3]=10;
endx[3]=startx[3]+strlen(menustring[3])*10;
endy[3]=starty[3]+20;
sprintf (menustring[3], "Delete User");
startx[3]=400;
starty[3]=10;
endx[3]=startx[3]+strlen(menustring[3])*10;
endy[3]=starty[3]+20;
sprintf (menustring[4], "Main Menu");
startx[4]=5;
starty[4]=10;
endx[4]=startx[4]+strlen(menustring[4])*10;
endy[4]=starty[4]+20;
sprintf (menustring[4], "Main Menu");
startx[4]=5;
starty[4]=10;
endx[4]=startx[4]+strlen(menustring[4])*10;
endy[4]=starty[4]+20;
sprintf (menustring[5], "Change User");
startx[5]=5;
endx[5]=startx[5]+strlen(menustring[5])*10;
starty[5]=180;
endy[5]=starty[5]+20;
sprintf (menustring[5], "Change User");
startx[5]=5;
endx[5]=startx[5]+strlen(menustring[5])*10;
starty[5]=180;
endy[5]=starty[5]+20;
if((accountactive?accountactive->getCampaignChoicesMade():0)) {
for(i=0;i<(accountactive?accountactive->getCampaignChoicesMade():0);i++) {
if((accountactive?accountactive->getCampaignChoicesMade():0)) {
for(i=0;i<(accountactive?accountactive->getCampaignChoicesMade():0);i++) {
starty[7+i]=30+30+(512-campaignlocationy[levelorder[i]])*400/512;
endx[7+i]=startx[7+i]+10;
endy[7+i]=starty[7+i]+10;
starty[7+i]=30+30+(512-campaignlocationy[levelorder[i]])*400/512;
endx[7+i]=startx[7+i]+10;
endy[7+i]=starty[7+i]+10;
starty[7+i]=30+30+(512-campaignlocationy[campaignchoicewhich[i-((accountactive?accountactive->getCampaignChoicesMade():0))]])*400/512;
endx[7+i]=startx[7+i]+10;
endy[7+i]=starty[7+i]+10;
starty[7+i]=30+30+(512-campaignlocationy[campaignchoicewhich[i-((accountactive?accountactive->getCampaignChoicesMade():0))]])*400/512;
endx[7+i]=startx[7+i]+10;
endy[7+i]=starty[7+i]+10;
sprintf (menustring[1], "Yes");
startx[1]=10;
starty[1]=360;
endx[1]=startx[1]+strlen(menustring[1])*10;
endy[1]=starty[1]+20;
sprintf (menustring[1], "Yes");
startx[1]=10;
starty[1]=360;
endx[1]=startx[1]+strlen(menustring[1])*10;
endy[1]=starty[1]+20;
sprintf (menustring[2], "No");
startx[2]=10;
starty[2]=320;
endx[2]=startx[2]+strlen(menustring[2])*10;
endy[2]=starty[2]+20;
sprintf (menustring[2], "No");
startx[2]=10;
starty[2]=320;
endx[2]=startx[2]+strlen(menustring[2])*10;
endy[2]=starty[2]+20;
sprintf (menustring[3], "Extra 4");
startx[3]=10;
starty[3]=280;
endx[3]=startx[3]+strlen(menustring[3])*10;
endy[3]=starty[3]+20;
sprintf (menustring[3], "Extra 4");
startx[3]=10;
starty[3]=280;
endx[3]=startx[3]+strlen(menustring[3])*10;
endy[3]=starty[3]+20;
sprintf (menustring[4], "Extra 5");
startx[4]=10;
starty[4]=240;
endx[4]=startx[4]+strlen(menustring[4])*10;
endy[4]=starty[4]+20;
sprintf (menustring[4], "Extra 5");
startx[4]=10;
starty[4]=240;
endx[4]=startx[4]+strlen(menustring[4])*10;
endy[4]=starty[4]+20;
sprintf (menustring[5], "Back");
startx[5]=10;
endx[5]=startx[5]+strlen(menustring[5])*10;
starty[5]=10;
endy[5]=starty[5]+20;
sprintf (menustring[5], "Back");
startx[5]=10;
endx[5]=startx[5]+strlen(menustring[5])*10;
starty[5]=10;
endy[5]=starty[5]+20;
starty[num]=360-20-20*num;
endx[num]=startx[num]+strlen(menustring[num])*10;
endy[num]=starty[num]+20;
starty[num]=360-20-20*num;
endx[num]=startx[num]+strlen(menustring[num])*10;
endy[num]=starty[num]+20;
sprintf (menustring[1], "Difficult");
startx[1]=10;
starty[1]=360;
endx[1]=startx[1]+strlen(menustring[1])*10;
endy[1]=starty[1]+20;
sprintf (menustring[1], "Difficult");
startx[1]=10;
starty[1]=360;
endx[1]=startx[1]+strlen(menustring[1])*10;
endy[1]=starty[1]+20;
sprintf (menustring[2], "Insane");
startx[2]=10;
starty[2]=320;
endx[2]=startx[2]+strlen(menustring[2])*10;
endy[2]=starty[2]+20;
sprintf (menustring[2], "Insane");
startx[2]=10;
starty[2]=320;
endx[2]=startx[2]+strlen(menustring[2])*10;
endy[2]=starty[2]+20;
endx[numchallengelevels]=startx[numchallengelevels]+strlen(menustring[numchallengelevels])*10;
starty[numchallengelevels]=10;
endy[numchallengelevels]=starty[numchallengelevels]+20;
endx[numchallengelevels]=startx[numchallengelevels]+strlen(menustring[numchallengelevels])*10;
starty[numchallengelevels]=10;
endy[numchallengelevels]=starty[numchallengelevels]+20;
sprintf (menustring[numchallengelevels+1], " High Score Best Time");
startx[numchallengelevels+1]=10;
starty[numchallengelevels+1]=440;
endx[numchallengelevels+1]=startx[numchallengelevels+1]+strlen(menustring[numchallengelevels+1])*10;
endy[numchallengelevels+1]=starty[numchallengelevels+1]+20;
sprintf (menustring[numchallengelevels+1], " High Score Best Time");
startx[numchallengelevels+1]=10;
starty[numchallengelevels+1]=440;
endx[numchallengelevels+1]=startx[numchallengelevels+1]+strlen(menustring[numchallengelevels+1])*10;
endy[numchallengelevels+1]=starty[numchallengelevels+1]+20;
sprintf (menustring[1], "You have avenged your family and");
startx[1]=140;
starty[1]=300;
endx[1]=startx[1]+strlen(menustring[1])*10;
endy[1]=starty[1]+20;
sprintf (menustring[1], "You have avenged your family and");
startx[1]=140;
starty[1]=300;
endx[1]=startx[1]+strlen(menustring[1])*10;
endy[1]=starty[1]+20;
sprintf (menustring[2], "restored peace to the island of Lugaru.");
startx[2]=110;
starty[2]=270;
endx[2]=startx[2]+strlen(menustring[2])*10;
endy[2]=starty[2]+20;
sprintf (menustring[2], "restored peace to the island of Lugaru.");
startx[2]=110;
starty[2]=270;
endx[2]=startx[2]+strlen(menustring[2])*10;
endy[2]=starty[2]+20;
sprintf (menustring[3], "Back");
startx[3]=10;
endx[3]=startx[3]+strlen(menustring[3])*10;
starty[3]=10;
endy[3]=starty[3]+20;
sprintf (menustring[3], "Back");
startx[3]=10;
endx[3]=startx[3]+strlen(menustring[3])*10;
starty[3]=10;
endy[3]=starty[3]+20;
for(i=0;i<255;i++)menustring[4][i]='\0';
sprintf (temp, "Your score:");
for(i=0;i<255;i++)menustring[4][i]='\0';
sprintf (temp, "Your score:");
for(i=0;i<255;i++)menustring[5][i]='\0';
sprintf (temp, "Highest score:");
strcpy(menustring[5],temp);
for(i=0;i<255;i++)menustring[5][i]='\0';
sprintf (temp, "Highest score:");
strcpy(menustring[5],temp);
sprintf (menustring[1], "Stereo separation: %.3f", stereoseparation);
startx[1]=10;
starty[1]=360;
endx[1]=startx[1]+strlen(menustring[1])*10;
endy[1]=starty[1]+20;
sprintf (menustring[1], "Stereo separation: %.3f", stereoseparation);
startx[1]=10;
starty[1]=360;
endx[1]=startx[1]+strlen(menustring[1])*10;
endy[1]=starty[1]+20;
sprintf (menustring[2], "Reverse stereo: %s", stereoreverse ? "Yes" : "No");
startx[2]=40;
starty[2]=320;
endx[2]=startx[2]+strlen(menustring[2])*10;
endy[2]=starty[2]+20;
sprintf (menustring[2], "Reverse stereo: %s", stereoreverse ? "Yes" : "No");
startx[2]=40;
starty[2]=320;
endx[2]=startx[2]+strlen(menustring[2])*10;
endy[2]=starty[2]+20;
sprintf (menustring[3], "Back");
startx[3]=10;
endx[3]=startx[3]+strlen(menustring[3])*10;
starty[3]=10;
endy[3]=starty[3]+20;
sprintf (menustring[3], "Back");
startx[3]=10;
endx[3]=startx[3]+strlen(menustring[3])*10;
starty[3]=10;
endy[3]=starty[3]+20;
- offsetx[i]=(startx[i]+endx[i]+movex[i]*transition)/2-(640+190)/2;
- offsety[i]=(starty[i]+endy[i]+movey[i]*transition)/2-(336+150)/2;
+ offsetx[i]=(startx[i]+endx[i])/2-(640+190)/2;
+ offsety[i]=(starty[i]+endy[i])/2-(336+150)/2;
- glVertex3f(startx[j]-((float)i)*1/2+offsetx[j]*((float)i)/2+movex[j]*transition, starty[j]-((float)i)*1/2+offsety[j]*((float)i)/2+movey[j]*transition, 0.0f);
+ glVertex3f(startx[j]-((float)i)*1/2+offsetx[j]*((float)i)/2, starty[j]-((float)i)*1/2+offsety[j]*((float)i)/2, 0.0f);
- glVertex3f(endx[j]+((float)i)*1/2+offsetx[j]*((float)i)/2+movex[j]*transition, starty[j]-((float)i)*1/2+offsety[j]*((float)i)/2+movey[j]*transition, 0.0f);
+ glVertex3f(endx[j]+((float)i)*1/2+offsetx[j]*((float)i)/2, starty[j]-((float)i)*1/2+offsety[j]*((float)i)/2, 0.0f);
- glVertex3f(endx[j]+((float)i)*1/2+offsetx[j]*((float)i)/2+movex[j]*transition, endy[j]+((float)i)*1/2+offsety[j]*((float)i)/2+movey[j]*transition, 0.0f);
+ glVertex3f(endx[j]+((float)i)*1/2+offsetx[j]*((float)i)/2, endy[j]+((float)i)*1/2+offsety[j]*((float)i)/2, 0.0f);
- glVertex3f(startx[j]-((float)i)*1/2+offsetx[j]*((float)i)/2+movex[j]*transition, endy[j]+((float)i)*1/2+offsety[j]*((float)i)/2+movey[j]*transition, 0.0f);
+ glVertex3f(startx[j]-((float)i)*1/2+offsetx[j]*((float)i)/2, endy[j]+((float)i)*1/2+offsety[j]*((float)i)/2, 0.0f);
- glVertex3f(midpoint.x-itemsize-((float)i)*1/2+offsetx[j]*((float)i)/2+movex[j]*transition, midpoint.y-itemsize-((float)i)*1/2+offsety[j]*((float)i)/2+movey[j]*transition, 0.0f);
+ glVertex3f(midpoint.x-itemsize-((float)i)*1/2+offsetx[j]*((float)i)/2, midpoint.y-itemsize-((float)i)*1/2+offsety[j]*((float)i)/2, 0.0f);
- glVertex3f(midpoint.x+itemsize+((float)i)*1/2+offsetx[j]*((float)i)/2+movex[j]*transition, midpoint.y-itemsize-((float)i)*1/2+offsety[j]*((float)i)/2+movey[j]*transition, 0.0f);
+ glVertex3f(midpoint.x+itemsize+((float)i)*1/2+offsetx[j]*((float)i)/2, midpoint.y-itemsize-((float)i)*1/2+offsety[j]*((float)i)/2, 0.0f);
- glVertex3f(midpoint.x+itemsize+((float)i)*1/2+offsetx[j]*((float)i)/2+movex[j]*transition, midpoint.y+itemsize+((float)i)*1/2+offsety[j]*((float)i)/2+movey[j]*transition, 0.0f);
+ glVertex3f(midpoint.x+itemsize+((float)i)*1/2+offsetx[j]*((float)i)/2, midpoint.y+itemsize+((float)i)*1/2+offsety[j]*((float)i)/2, 0.0f);
- glVertex3f(midpoint.x-itemsize-((float)i)*1/2+offsetx[j]*((float)i)/2+movex[j]*transition, midpoint.y+itemsize+((float)i)*1/2+offsety[j]*((float)i)/2+movey[j]*transition, 0.0f);
+ glVertex3f(midpoint.x-itemsize-((float)i)*1/2+offsetx[j]*((float)i)/2, midpoint.y+itemsize+((float)i)*1/2+offsety[j]*((float)i)/2, 0.0f);
glClear(GL_DEPTH_BUFFER_BIT);
glEnable(GL_ALPHA_TEST);
glAlphaFunc(GL_GREATER, 0.001f);
glClear(GL_DEPTH_BUFFER_BIT);
glEnable(GL_ALPHA_TEST);
glAlphaFunc(GL_GREATER, 0.001f);
- if(transition<.1)
- glColor4f(1,0,0,1-(transition*10));
- if(transition>.9)
- glColor4f(1,0,0,1-((1-transition)*10));
+ //if(transition<.1)
+ //glColor4f(1,0,0,1-(transition*10));
+ //if(transition>.9)
+ //glColor4f(1,0,0,1-((1-transition)*10));
+ glColor4f(1,0,0,1);
glMatrixMode(GL_PROJECTION); // Select The Projection Matrix
glPushMatrix(); // Store The Projection Matrix
glMatrixMode(GL_PROJECTION); // Select The Projection Matrix
glPushMatrix(); // Store The Projection Matrix