- added ability to turn on photo mode and zoom out while in a non network game (default key is f8)

This commit is contained in:
Mark Vejvoda 2010-10-30 03:03:44 +00:00
parent 44563b6f73
commit b1ff035f9e
3 changed files with 24 additions and 5 deletions

View File

@ -40,6 +40,8 @@ Game *thisGamePtr = NULL;
// ===================== PUBLIC ========================
const float PHOTO_MODE_MAXHEIGHT = 500.0;
Game::Game(Program *program, const GameSettings *gameSettings):
ProgramState(program), lastMousePos(0), isFirstRender(true)
{
@ -1174,6 +1176,14 @@ void Game::keyDown(char key) {
}
else if(key == configKeys.getCharKey("TogglePhotoMode")) {
photoModeEnabled = !photoModeEnabled;
if( photoModeEnabled == true &&
this->gameSettings.isNetworkGame() == false) {
gameCamera.setMaxHeight(PHOTO_MODE_MAXHEIGHT);
}
else if(photoModeEnabled == false) {
gameCamera.setMaxHeight(-1);
}
}
//Toggle music
else if(key == configKeys.getCharKey("ToggleMusic")) {
@ -1740,7 +1750,7 @@ void Game::checkWinnerStandard(){
// This caused too much LAG for network games
if(this->gameSettings.isNetworkGame() == false) {
Renderer::getInstance().setPhotoMode(true);
gameCamera.setMaxHeight(500);
gameCamera.setMaxHeight(PHOTO_MODE_MAXHEIGHT);
}
// END
}
@ -1770,7 +1780,7 @@ void Game::checkWinnerStandard(){
// This caused too much LAG for network games
if(this->gameSettings.isNetworkGame() == false) {
Renderer::getInstance().setPhotoMode(true);
gameCamera.setMaxHeight(500);
gameCamera.setMaxHeight(PHOTO_MODE_MAXHEIGHT);
}
// END
@ -1814,7 +1824,7 @@ void Game::checkWinnerStandard(){
// This caused too much LAG for network games
if(this->gameSettings.isNetworkGame() == false) {
Renderer::getInstance().setPhotoMode(true);
gameCamera.setMaxHeight(500);
gameCamera.setMaxHeight(PHOTO_MODE_MAXHEIGHT);
}
// END
}
@ -1844,7 +1854,7 @@ void Game::checkWinnerScripted() {
// This caused too much LAG for network games
if(this->gameSettings.isNetworkGame() == false) {
Renderer::getInstance().setPhotoMode(true);
gameCamera.setMaxHeight(500);
gameCamera.setMaxHeight(PHOTO_MODE_MAXHEIGHT);
}
// END
}

View File

@ -76,6 +76,15 @@ GameCamera::~GameCamera() {
cacheVisibleQuad.clear();
}
void GameCamera::setMaxHeight(float value) {
if(value < 0) {
maxHeight = Config::getInstance().getFloat("CameraMaxDistance","20");
}
else {
maxHeight = value;
}
}
void GameCamera::init(int limitX, int limitY){
this->limitX= limitX;
this->limitY= limitY;

View File

@ -129,7 +129,7 @@ public:
void save(XmlNode *node) const;
void setClampBounds(bool value) { clampBounds = value; }
void setMaxHeight(float value) { maxHeight = value; }
void setMaxHeight(float value);
void setFov(float value) { fov = value; }
void setMinVAng(float value) { minVAng = value; }
void setMaxVAng(float value) { maxVAng = value; }