-vector<string> Game::ListCampaigns() {
- DIR *campaigns = opendir(ConvertFileName(":Data:Campaigns"));
- struct dirent *campaign = NULL;
- if(!campaigns) {
- perror("Problem while loading campaigns");
- cerr << "campaign folder was : " << ConvertFileName(":Data:Campaigns") << endl;
- exit(EXIT_FAILURE);
- }
- vector<string> campaignNames;
- while ((campaign = readdir(campaigns)) != NULL) {
- string name(campaign->d_name);
- if(name.length()<5)
- continue;
- if(!name.compare(name.length()-4,4,".txt")) {
- campaignNames.push_back(name.substr(0,name.length()-4));
- }
- }
- closedir(campaigns);
- return campaignNames;
-}
-
-void Game::LoadCampaign() {
- if(!accountactive)
- return;
- ifstream ipstream(ConvertFileName((":Data:Campaigns:"+accountactive->getCurrentCampaign()+".txt").c_str()));
- ipstream.ignore(256,':');
- int numlevels;
- ipstream >> numlevels;
- campaignlevels.clear();
- for(int i=0;i<numlevels;i++) {
- CampaignLevel cl;
- ipstream >> cl;
- campaignlevels.push_back(cl);
- }
- ipstream.close();
-
- ifstream test(ConvertFileName((":Data:Textures:"+accountactive->getCurrentCampaign()+":World.png").c_str()));
- if(test.good()) {
- LoadTexture((":Data:Textures:"+accountactive->getCurrentCampaign()+":World.png").c_str(),&Mainmenuitems[7],0,0);
- } else {
- LoadTexture(":Data:Textures:World.png",&Mainmenuitems[7],0,0);
- }
-
- if(accountactive->getCampaignChoicesMade()==0) {
- accountactive->setCampaignScore(0);
- accountactive->resetFasttime();
- }
-}
-
-void Game::DrawMenu() {