-void updateSettingsMenu(){
- char sbuf[256];
- if((float)newscreenwidth>(float)newscreenheight*1.61||(float)newscreenwidth<(float)newscreenheight*1.59)
- sprintf (sbuf, "Resolution: %d*%d",(int)newscreenwidth,(int)newscreenheight);
- else
- sprintf (sbuf, "Resolution: %d*%d (widescreen)",(int)newscreenwidth,(int)newscreenheight);
- Menu::setText(0,sbuf);
- if(newdetail==0) Menu::setText(1,"Detail: Low");
- if(newdetail==1) Menu::setText(1,"Detail: Medium");
- if(newdetail==2) Menu::setText(1,"Detail: High");
- if(bloodtoggle==0) Menu::setText(2,"Blood: Off");
- if(bloodtoggle==1) Menu::setText(2,"Blood: On, low detail");
- if(bloodtoggle==2) Menu::setText(2,"Blood: On, high detail (slower)");
- if(difficulty==0) Menu::setText(3,"Difficulty: Easier");
- if(difficulty==1) Menu::setText(3,"Difficulty: Difficult");
- if(difficulty==2) Menu::setText(3,"Difficulty: Insane");
- Menu::setText(4,ismotionblur?"Blur Effects: Enabled (less compatible)":"Blur Effects: Disabled (more compatible)");
- Menu::setText(5,decals?"Decals: Enabled (slower)":"Decals: Disabled");
- Menu::setText(6,musictoggle?"Music: Enabled":"Music: Disabled");
- Menu::setText(9,invertmouse?"Invert mouse: Yes":"Invert mouse: No");
- sprintf (sbuf, "Mouse Speed: %d", (int)(usermousesensitivity*5));
- Menu::setText(10,sbuf);
- sprintf (sbuf, "Volume: %d%%", (int)(volume*100));
- Menu::setText(11,sbuf);
- Menu::setText(13,showdamagebar?"Damage Bar: On":"Damage Bar: Off");
- if(newdetail==detail&&newscreenheight==(int)screenheight&&newscreenwidth==(int)screenwidth)
- sprintf (sbuf, "Back");
- else
- sprintf (sbuf, "Back (some changes take effect next time Lugaru is opened)");
- Menu::setText(8,sbuf);
-}
-
-void updateStereoConfigMenu(){
- char sbuf[256];
- sprintf(sbuf, "Stereo mode: %s", StereoModeName(newstereomode));
- Menu::setText(0,sbuf);
- sprintf(sbuf, "Stereo separation: %.3f", stereoseparation);
- Menu::setText(1,sbuf);
- sprintf(sbuf, "Reverse stereo: %s", stereoreverse ? "Yes" : "No");
- Menu::setText(2,sbuf);
-}
-
-void updateControlsMenu(){
- Menu::setText(0,(string)"Forwards: "+(keyselect==0?"_":Input::keyToChar(forwardkey)));
- Menu::setText(1,(string)"Back: " +(keyselect==1?"_":Input::keyToChar(backkey)));
- Menu::setText(2,(string)"Left: " +(keyselect==2?"_":Input::keyToChar(leftkey)));
- Menu::setText(3,(string)"Right: " +(keyselect==3?"_":Input::keyToChar(rightkey)));
- Menu::setText(4,(string)"Crouch: " +(keyselect==4?"_":Input::keyToChar(crouchkey)));
- Menu::setText(5,(string)"Jump: " +(keyselect==5?"_":Input::keyToChar(jumpkey)));
- Menu::setText(6,(string)"Draw: " +(keyselect==6?"_":Input::keyToChar(drawkey)));
- Menu::setText(7,(string)"Throw: " +(keyselect==7?"_":Input::keyToChar(throwkey)));
- Menu::setText(8,(string)"Attack: " +(keyselect==8?"_":Input::keyToChar(attackkey)));
- if(debugmode)
- Menu::setText(9,(string)"Console: "+(keyselect==9?"_":Input::keyToChar(consolekey)));
-}
-
-/*
-Values of mainmenu :
-1 Main menu
-2 Menu pause (resume/end game)
-3 Option menu
-4 Controls configuration menu
-5 Main game menu (choose level or challenge)
-6 Deleting user menu
-7 User managment menu (select/add)
-8 Choose difficulty menu
-9 Challenge level selection menu
-10 End of the campaign congratulation (is that really a menu?)
-11 Same that 9 ??? => unused
-18 stereo configuration
-*/
-
-void Game::LoadMenu(){
- Menu::clearMenu();
- switch(mainmenu) {
- case 1:
- case 2:
- Menu::addImage(0,Mainmenuitems[0],150,480-128,256,128);
- Menu::addButtonImage(1,Mainmenuitems[mainmenu==1?1:5],18,480-152-32,128,32);
- Menu::addButtonImage(2,Mainmenuitems[2],18,480-228-32,112,32);
- Menu::addButtonImage(3,Mainmenuitems[mainmenu==1?3:6],18,480-306-32,mainmenu==1?68:132,32);
- break;
- case 3:
- Menu::addButton( 0,"",10+20,440);
- Menu::addButton( 1,"",10+60,405);
- Menu::addButton( 2,"",10+70,370);
- Menu::addButton( 3,"",10+20-1000,335-1000);
- Menu::addButton( 4,"",10 ,335);
- Menu::addButton( 5,"",10+60,300);
- Menu::addButton( 6,"",10+70,265);
- Menu::addButton( 9,"",10 ,230);
- Menu::addButton(10,"",20 ,195);
- Menu::addButton(11,"",10+60,160);
- Menu::addButton(13,"",30 ,125);
- Menu::addButton( 7,"-Configure Controls-",10+15, 90);
- Menu::addButton(12,"-Configure Stereo -",10+15, 55);
- Menu::addButton(8,"Back",10,10);
- updateSettingsMenu();
- break;
- case 4:
- Menu::addButton(0,"",10 ,400);
- Menu::addButton(1,"",10+40,360);
- Menu::addButton(2,"",10+40,320);
- Menu::addButton(3,"",10+30,280);
- Menu::addButton(4,"",10+20,240);
- Menu::addButton(5,"",10+40,200);
- Menu::addButton(6,"",10+40,160);
- Menu::addButton(7,"",10+30,120);
- Menu::addButton(8,"",10+20,80);
- if(debugmode)
- Menu::addButton(9,"",10+10,40);
- Menu::addButton(debugmode?10:9,"Back",10,10);
- updateControlsMenu();
- break;
- case 5: {
- LoadCampaign();
- Menu::addLabel(-1,accountactive->getName(),5,400);
- Menu::addButton(1,"Tutorial",5,300);
- Menu::addButton(2,"Challenge",5,240);
- Menu::addButton(3,"Delete User",400,10);
- Menu::addButton(4,"Main Menu",5,10);
- Menu::addButton(5,"Change User",5,180);
- Menu::addButton(6,"Campaign : "+accountactive->getCurrentCampaign(),200,420);
-
- //show campaign map
- //with (2,-5) offset from old code
- Menu::addImage(-1,Mainmenuitems[7],150+2,60-5,400,400);
- //show levels
- int numlevels = accountactive->getCampaignChoicesMade();
- numlevels += numlevels>0 ? campaignlevels[numlevels-1].nextlevel.size() : 1;
- for(int i=0;i<numlevels;i++){
- XYZ midpoint=campaignlevels[i].getCenter();
- float itemsize=campaignlevels[i].getWidth();
- const bool active=i>=accountactive->getCampaignChoicesMade();
- if(!active)
- itemsize/=2;
-
- if(i>=1){
- XYZ start=campaignlevels[i-1].getCenter();
- Menu::addMapLine(start.x,start.y,midpoint.x-start.x,midpoint.y-start.y,0.5,active?1:0.5,active?1:0.5,0,0);
- }
- Menu::addMapMarker(NB_CAMPAIGN_MENU_ITEM+i, Mapcircletexture,
- midpoint.x-itemsize/2, midpoint.y-itemsize/2, itemsize, itemsize, active?1:0.5, 0, 0);
-
- if(active){
- Menu::addMapLabel(-2,campaignlevels[i].description,
- campaignlevels[i].getStartX()+10,
- campaignlevels[i].getStartY()-4);
- }
- }
- } break;
- case 6:
- Menu::addLabel(-1,"Are you sure you want to delete this user?",10,400);
- Menu::addButton(1,"Yes",10,360);
- Menu::addButton(2,"No",10,320);
- break;
- case 7:
- if(Account::getNbAccounts()<8)
- Menu::addButton(0,"New User",10,400);
- else
- Menu::addLabel(0,"No More Users",10,400);
- Menu::addLabel(-2,"",20,400);
- Menu::addButton(Account::getNbAccounts()+1,"Back",10,10);
- for(int i=0;i<Account::getNbAccounts();i++)
- Menu::addButton(i+1,Account::get(i)->getName(),10,340-20*(i+1));
- break;
- case 8:
- Menu::addButton(0,"Easier",10,400);
- Menu::addButton(1,"Difficult",10,360);
- Menu::addButton(2,"Insane",10,320);
- break;
- case 9:
- for(int i=0;i<numchallengelevels;i++){
- char temp[255];
- string name="";
- sprintf (temp, "Level %d",i+1);
- for(int j=strlen(temp);j<17;j++)
- strcat(temp," ");
- name+=temp;
- sprintf (temp, "%d",(int)accountactive->getHighScore(i));
- for(int j=strlen(temp);j<(32-17);j++)
- strcat(temp," ");
- name+=temp;
- sprintf (temp, "%d:",(int)(((int)accountactive->getFastTime(i)-(int)(accountactive->getFastTime(i))%60)/60));
- if((int)(accountactive->getFastTime(i))%60<10)strcat(temp,"0");
- name+=temp;
- sprintf (temp, "%d",(int)(accountactive->getFastTime(i))%60);
- name+=temp;
-
- Menu::addButton(i,name,10,400-i*25,i>accountactive->getProgress()?0.5:1,0,0);
- }
-
- Menu::addButton(-1," High Score Best Time",10,440);
- Menu::addButton(numchallengelevels,"Back",10,10);
- break;
- case 10: {
- Menu::addLabel(0,"Congratulations!",220,330);
- Menu::addLabel(1,"You have avenged your family and",140,300);
- Menu::addLabel(2,"restored peace to the island of Lugaru.",110,270);
- Menu::addButton(3,"Back",10,10);
- char sbuf[256];
- sprintf(sbuf,"Your score: %d",(int)accountactive->getCampaignScore());
- Menu::addLabel(4,sbuf,190,200);
- sprintf(sbuf,"Highest score: %d",(int)accountactive->getCampaignHighScore());
- Menu::addLabel(5,sbuf,190,180);
- } break;
- case 18:
- Menu::addButton(0,"",70,400);
- Menu::addButton(1,"",10,360);
- Menu::addButton(2,"",40,320);
- Menu::addButton(3,"Back",10,10);
- updateStereoConfigMenu();
- break;
- }
-}