now you can increase the speed step by step up to "FastSpeedLoops"

This commit is contained in:
Titus Tscharntke
2013-01-31 12:36:51 +00:00
parent d0a4d40526
commit 11cd3b4a17
2 changed files with 20 additions and 34 deletions

View File

@@ -90,7 +90,7 @@ Game::Game() : ProgramState(NULL) {
camRightButtonDown=false; camRightButtonDown=false;
camUpButtonDown=false; camUpButtonDown=false;
camDownButtonDown=false; camDownButtonDown=false;
speed=sNormal; speed=1;
weatherParticleSystem=NULL; weatherParticleSystem=NULL;
isFirstRender=false; isFirstRender=false;
quitTriggeredIndicator=false; quitTriggeredIndicator=false;
@@ -234,7 +234,7 @@ void Game::resetMembers() {
paused= false; paused= false;
gameOver= false; gameOver= false;
renderNetworkStatus= false; renderNetworkStatus= false;
speed= sNormal; speed= 1;
showFullConsole= false; showFullConsole= false;
setMarker = false; setMarker = false;
camLeftButtonDown=false; camLeftButtonDown=false;
@@ -4786,33 +4786,25 @@ bool Game::hasBuilding(const Faction *faction) {
void Game::incSpeed() { void Game::incSpeed() {
Lang &lang= Lang::getInstance(); Lang &lang= Lang::getInstance();
switch(speed){
case sSlow: if(speed < Config::getInstance().getInt("FastSpeedLoops"))
speed= sNormal; {
console.addLine(lang.get("GameSpeedSet")+" "+lang.get("Normal")); if(speed==0)
break; {
case sNormal: speed=1;
speed= sFast; }
console.addLine(lang.get("GameSpeedSet")+" "+lang.get("Fast")); else
break; speed++;
default: console.addLine(lang.get("GameSpeedSet")+" "+((speed==0)?lang.get("Slow"):(speed==1)?lang.get("Normal"):"x"+intToStr(speed)));
break;
} }
} }
void Game::decSpeed() { void Game::decSpeed() {
Lang &lang= Lang::getInstance(); Lang &lang= Lang::getInstance();
switch(speed){ if(speed > 0)
case sNormal: {
speed= sSlow; speed--;
console.addLine(lang.get("GameSpeedSet")+" "+lang.get("Slow")); console.addLine(lang.get("GameSpeedSet")+" "+((speed==0)?lang.get("Slow"):(speed==1)?lang.get("Normal"):"x"+intToStr(speed)));
break;
case sFast:
speed= sNormal;
console.addLine(lang.get("GameSpeedSet")+" "+lang.get("Normal"));
break;
default:
break;
} }
} }
@@ -4861,12 +4853,11 @@ int Game::getUpdateLoops() {
if(getPaused()) { if(getPaused()) {
return 0; return 0;
} }
else if(speed == sFast) { else if(speed == 0) {
return Config::getInstance().getInt("FastSpeedLoops");
}
else if(speed == sSlow) {
return updateFps % 2 == 0? 1: 0; return updateFps % 2 == 0? 1: 0;
} }
else
return speed;
return 1; return 1;
} }

View File

@@ -61,11 +61,6 @@ enum LoadGameItem {
class Game: public ProgramState, public FileCRCPreCacheThreadCallbackInterface, public CustomInputCallbackInterface { class Game: public ProgramState, public FileCRCPreCacheThreadCallbackInterface, public CustomInputCallbackInterface {
public: public:
static const float highlightTime; static const float highlightTime;
enum Speed{
sFast,
sNormal,
sSlow
};
private: private:
typedef vector<Ai*> Ais; typedef vector<Ai*> Ais;
@@ -106,7 +101,7 @@ private:
bool camUpButtonDown; bool camUpButtonDown;
bool camDownButtonDown; bool camDownButtonDown;
Speed speed; int speed;
GraphicMessageBox mainMessageBox; GraphicMessageBox mainMessageBox;
GraphicMessageBox errorMessageBox; GraphicMessageBox errorMessageBox;