From 6e5fc0433956e44ba9ae92b544e51ac15c27c451 Mon Sep 17 00:00:00 2001 From: =?utf8?q?C=C3=B4me=20BERNIGAUD?= Date: Wed, 11 May 2011 19:21:56 +0200 Subject: [PATCH] No more black background for the map, some little cleanup --- Source/Account.cpp | 10 +++--- Source/Account.h | 1 + Source/GameDraw.cpp | 84 ++++++++++++++------------------------------- Source/GameTick.cpp | 6 ++-- 4 files changed, 36 insertions(+), 65 deletions(-) diff --git a/Source/Account.cpp b/Source/Account.cpp index beb5f46..1388b7e 100644 --- a/Source/Account.cpp +++ b/Source/Account.cpp @@ -46,10 +46,12 @@ Account::Account(string n) : campaignProgress() { void Account::setCurrentCampaign(string name) { currentCampaign = name; - campaignProgress[name].highscore = 0; - campaignProgress[name].fasttime = 0; - campaignProgress[name].score = 0; - campaignProgress[name].time = 0; + if(campaignProgress.find(name)==campaignProgress.end()) { + campaignProgress[name].highscore = 0; + campaignProgress[name].fasttime = 0; + campaignProgress[name].score = 0; + campaignProgress[name].time = 0; + } } Account* Account::add(string name) { diff --git a/Source/Account.h b/Source/Account.h index 388c064..599384c 100644 --- a/Source/Account.h +++ b/Source/Account.h @@ -73,6 +73,7 @@ class Account { float getHighScore(int i) { return highscore[i]; }; float getFastTime(int i) { return fasttime[i]; }; int getProgress() { return progress; }; + std::string getCurrentCampaign() { return currentCampaign; }; void setCurrentCampaign(std::string name); static int getNbAccounts() { return accounts.size(); }; diff --git a/Source/GameDraw.cpp b/Source/GameDraw.cpp index ad542f1..7fe9f19 100644 --- a/Source/GameDraw.cpp +++ b/Source/GameDraw.cpp @@ -1997,10 +1997,12 @@ int Game::DrawGLScene(StereoSide side) } void Game::LoadCampaign() { - ifstream ipstream(ConvertFileName(":Data:Campaigns:main.txt")); + if(!accountactive) + return; + ifstream ipstream(ConvertFileName((":Data:Campaigns:"+accountactive->getCurrentCampaign()+".txt").c_str())); ipstream.ignore(256,':'); ipstream >> campaignnumlevels; - for(int i=0;igetCampaignChoice(i)]; levelvisible[levelorder[i+1]]=1; } - int whichlevelstart = (accountactive?accountactive->getCampaignChoicesMade():0)-1; + int whichlevelstart = accountactive->getCampaignChoicesMade()-1; if(whichlevelstart<0){ - if(accountactive) { - accountactive->setCampaignScore(0); - accountactive->resetFasttime(); - } + accountactive->setCampaignScore(0); + accountactive->resetFasttime(); campaignchoicenum=1; campaignchoicewhich[0]=0; } @@ -2333,6 +2333,7 @@ void Game::DrawMenu() starty[9]=10; endy[9]=starty[9]+20; } + if(mainmenu==5){ nummenuitems=7+(accountactive?accountactive->getCampaignChoicesMade():0)+campaignchoicenum; @@ -2617,7 +2618,7 @@ void Game::DrawMenu() } if(mainmenu==1||mainmenu==2){ - nummenuitems=7; + nummenuitems=4; startx[0]=150; starty[0]=480-128; endx[0]=150+256; @@ -2647,45 +2648,16 @@ void Game::DrawMenu() endy[3]=480-306; } - /*startx[4]=150; - starty[4]=480-256; - endx[4]=150+256; - endy[4]=480; - */ - /*if(anim==0){ - startx[4]=380; - starty[4]=480-140-256; - endx[4]=380+256; - endy[4]=480-140; - - startx[5]=145; - starty[5]=480-138-256; - endx[5]=145+256; - endy[5]=480-138; - - startx[6]=254; - starty[6]=480-144-256; - endx[6]=254+256; - endy[6]=480-144; - }*/ } selected=-1; - if(mainmenu==1||mainmenu==2) - for(i=1;i<4;i++){ - if((mousecoordh/screenwidth*640)>startx[i]&&(mousecoordh/screenwidth*640)starty[i]&&480-(mousecoordv/screenheight*480)startx[i]&&(mousecoordh/screenwidth*640)starty[i]&&480-(mousecoordv/screenheight*480)startx[i]&&(mousecoordh/screenwidth*640)starty[i]&&480-(mousecoordv/screenheight*480)=4&&(mainmenu==1||mainmenu==2)){ - selectedlong[i]=0; - offsetx[i]=(startx[i]+endx[i])/2-(640+190)/2; - offsety[i]=(starty[i]+endy[i])/2-(336+150)/2; - offsetx[i]*=.06f; - offsety[i]*=.06f; - } } if(mainmenu==1||mainmenu==2){ @@ -2800,8 +2765,6 @@ void Game::DrawMenu() glEnable(GL_TEXTURE_2D); for(j=0;j3 && (mainmenu==1||mainmenu==2)) - continue; //glDisable(GL_BLEND); glEnable(GL_ALPHA_TEST); glEnable(GL_BLEND); @@ -2829,7 +2792,7 @@ void Game::DrawMenu() glPopMatrix(); glEnable(GL_BLEND); //glDisable(GL_ALPHA_TEST); - if(j<4)glBlendFunc(GL_SRC_ALPHA,GL_ONE); + glBlendFunc(GL_SRC_ALPHA,GL_ONE); for(i=0;i<10;i++) { if(1-((float)i)/10-(1-selectedlong[j])>0) @@ -2898,6 +2861,11 @@ void Game::DrawMenu() } else { + if(j==6) { + //glBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA); // black background for the map + glBlendFunc(GL_SRC_ALPHA,GL_ONE); // no background + } + glClear(GL_DEPTH_BUFFER_BIT); glEnable(GL_ALPHA_TEST); glAlphaFunc(GL_GREATER, 0.001f); @@ -2905,8 +2873,8 @@ void Game::DrawMenu() glDisable(GL_DEPTH_TEST); // Disables Depth Testing glDisable(GL_CULL_FACE); glDisable(GL_LIGHTING); - if(j==6)glColor4f(1,1,1,1); - else glColor4f(1,0,0,1); + if(j==6) glColor4f(1,1,1,1); + else glColor4f(1,0,0,1);ss glMatrixMode(GL_PROJECTION); // Select The Projection Matrix glPushMatrix(); // Store The Projection Matrix @@ -2976,13 +2944,13 @@ void Game::DrawMenu() } - if(j==6)glBindTexture( GL_TEXTURE_2D, Mainmenuitems[7]); + if(j==6) glBindTexture( GL_TEXTURE_2D, Mainmenuitems[7]); else glBindTexture( GL_TEXTURE_2D, Mapcircletexture); glTexParameterf( GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE ); glTexParameterf( GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE ); - if(j-7<(accountactive?accountactive->getCampaignChoicesMade():0))glColor4f(0.5,0,0,1); - if(j-7>=(accountactive?accountactive->getCampaignChoicesMade():0))glColor4f(1,0,0,1); - if(j==6)glColor4f(1,1,1,1); + if(j-7<(accountactive?accountactive->getCampaignChoicesMade():0)) glColor4f(0.5,0,0,1); + if(j-7>=(accountactive?accountactive->getCampaignChoicesMade():0)) glColor4f(1,0,0,1); + if(j==6) glColor4f(1,1,1,1); XYZ midpoint; float itemsize; itemsize=abs(startx[j]-endx[j])/2; diff --git a/Source/GameTick.cpp b/Source/GameTick.cpp index 2a9cbd5..c9e3a96 100644 --- a/Source/GameTick.cpp +++ b/Source/GameTick.cpp @@ -5924,7 +5924,7 @@ void Game::Tick(){ 18 stereo configuration */ - if(!console){ + if(!console) { //campaign over? if(mainmenu&&endgame==1) mainmenu=10; @@ -5984,11 +5984,11 @@ void Game::Tick(){ } } - if(mainmenu){ + if(mainmenu) { MenuTick(); } - if(!mainmenu){ + if(!mainmenu) { if(hostile==1)hostiletime+=multiplier; else hostiletime=0; if(!winfreeze)leveltime+=multiplier; -- 2.39.2