Pause game when in background, closes #609

dev-time-step
krzys-h 2016-02-13 21:35:01 +01:00
parent c93fa12552
commit a3477edc8e
13 changed files with 128 additions and 29 deletions

View File

@ -286,6 +286,9 @@ msgstr ""
msgid "Custom levels\\Levels from mods created by the users" msgid "Custom levels\\Levels from mods created by the users"
msgstr "" msgstr ""
msgid "SatCom"
msgstr ""
msgid "Change player\\Change player" msgid "Change player\\Change player"
msgstr "" msgstr ""
@ -379,6 +382,9 @@ msgstr ""
msgid "Quake at explosions\\The screen shakes at explosions" msgid "Quake at explosions\\The screen shakes at explosions"
msgstr "" msgstr ""
msgid "Pause in background\\Pause the game when the window is unfocused"
msgstr ""
msgid "Automatic indent\\When program editing" msgid "Automatic indent\\When program editing"
msgstr "" msgstr ""
@ -509,6 +515,9 @@ msgstr ""
msgid "Pause\\Pause the game without opening menu" msgid "Pause\\Pause the game without opening menu"
msgstr "" msgstr ""
msgid "Cheat console\\Show cheat console"
msgstr ""
msgid "Sound effects:\\Volume of engines, voice, shooting, etc." msgid "Sound effects:\\Volume of engines, voice, shooting, etc."
msgstr "" msgstr ""
@ -530,13 +539,13 @@ msgstr ""
msgid "Normal\\Normal sound volume" msgid "Normal\\Normal sound volume"
msgstr "" msgstr ""
msgid "Use a joystick\\Joystick or keyboard"
msgstr ""
msgid "" msgid ""
"Access to solution\\Shows the solution (detailed instructions for missions)" "Access to solution\\Shows the solution (detailed instructions for missions)"
msgstr "" msgstr ""
msgid "Invert\\Invert values on this axis"
msgstr ""
msgid "\\New player name" msgid "\\New player name"
msgstr "" msgstr ""

View File

@ -376,6 +376,9 @@ msgstr "Andere Kamera\\Sichtpunkt einstellen"
msgid "Change player\\Change player" msgid "Change player\\Change player"
msgstr "Anderer Spieler\\Spielername ändern" msgstr "Anderer Spieler\\Spielername ändern"
msgid "Cheat console\\Show cheat console"
msgstr ""
msgid "Checkpoint" msgid "Checkpoint"
msgstr "Checkpoint" msgstr "Checkpoint"
@ -751,6 +754,9 @@ msgstr "Anweisungen\\Anweisungen für die Mission oder Übung"
msgid "Internal error - tell the developers" msgid "Internal error - tell the developers"
msgstr "Interner Fehler - Benachrichtige die Entwickler" msgstr "Interner Fehler - Benachrichtige die Entwickler"
msgid "Invert\\Invert values on this axis"
msgstr ""
msgid "Jet temperature" msgid "Jet temperature"
msgstr "Triebwerktemperatur" msgstr "Triebwerktemperatur"
@ -1040,6 +1046,9 @@ msgstr "Partikel in den Menüs\\Funken und Sterne in den Menüs"
msgid "Paste (Ctrl+v)" msgid "Paste (Ctrl+v)"
msgstr "Einfügen (Ctrl+v)" msgstr "Einfügen (Ctrl+v)"
msgid "Pause in background\\Pause the game when the window is unfocused"
msgstr ""
msgid "Pause/continue" msgid "Pause/continue"
msgstr "Pause/Weitermachen" msgstr "Pause/Weitermachen"
@ -1281,6 +1290,9 @@ msgstr "Forschungsprogramm Kettenantrieb"
msgid "Run research program for winged bots" msgid "Run research program for winged bots"
msgstr "Forschungsprogramm Jetantrieb" msgstr "Forschungsprogramm Jetantrieb"
msgid "SatCom"
msgstr "SatCom"
msgid "Satellite report" msgid "Satellite report"
msgstr "Satellitenbericht" msgstr "Satellitenbericht"
@ -1610,9 +1622,6 @@ msgstr "Markierung für unterirdisches Platinvorkommen"
msgid "Uranium ore" msgid "Uranium ore"
msgstr "Platinerz" msgstr "Platinerz"
msgid "Use a joystick\\Joystick or keyboard"
msgstr "Joystick\\Joystick oder Tastatur"
msgid "User levels" msgid "User levels"
msgstr "Userlevels" msgstr "Userlevels"
@ -1896,9 +1905,6 @@ msgstr "www.epsitec.com"
#~ msgid "Robbie\\Your assistant" #~ msgid "Robbie\\Your assistant"
#~ msgstr "Robby\\Ihr Assistent" #~ msgstr "Robby\\Ihr Assistent"
#~ msgid "SatCom"
#~ msgstr "SatCom"
#~ msgid "Sky\\Clouds and nebulae" #~ msgid "Sky\\Clouds and nebulae"
#~ msgstr "Himmel\\Himmel und Wolken" #~ msgstr "Himmel\\Himmel und Wolken"
@ -1916,6 +1922,9 @@ msgstr "www.epsitec.com"
#~ "working.\n" #~ "working.\n"
#~ msgstr "Die Liste ist ohne \\l;Radar\\u object\\radar; nicht verfügbar.\n" #~ msgstr "Die Liste ist ohne \\l;Radar\\u object\\radar; nicht verfügbar.\n"
#~ msgid "Use a joystick\\Joystick or keyboard"
#~ msgstr "Joystick\\Joystick oder Tastatur"
#~ msgid "User\\User levels" #~ msgid "User\\User levels"
#~ msgstr "User\\Userlevels" #~ msgstr "User\\Userlevels"

View File

@ -373,6 +373,9 @@ msgstr "Changement de caméra\\Autre de point de vue"
msgid "Change player\\Change player" msgid "Change player\\Change player"
msgstr "Autre joueur\\Choix du nom du joueur" msgstr "Autre joueur\\Choix du nom du joueur"
msgid "Cheat console\\Show cheat console"
msgstr ""
msgid "Checkpoint" msgid "Checkpoint"
msgstr "Indicateur" msgstr "Indicateur"
@ -745,6 +748,9 @@ msgstr "Instructions mission\\Marche à suivre"
msgid "Internal error - tell the developers" msgid "Internal error - tell the developers"
msgstr "Erreur interne - contacter les développeurs" msgstr "Erreur interne - contacter les développeurs"
msgid "Invert\\Invert values on this axis"
msgstr ""
msgid "Jet temperature" msgid "Jet temperature"
msgstr "Température du réacteur" msgstr "Température du réacteur"
@ -1032,6 +1038,9 @@ msgstr "Particules dans l'interface\\Pluie de particules"
msgid "Paste (Ctrl+v)" msgid "Paste (Ctrl+v)"
msgstr "Coller (Ctrl+v)" msgstr "Coller (Ctrl+v)"
msgid "Pause in background\\Pause the game when the window is unfocused"
msgstr ""
msgid "Pause/continue" msgid "Pause/continue"
msgstr "Pause/continuer" msgstr "Pause/continuer"
@ -1269,6 +1278,9 @@ msgstr "Recherche les chenilles"
msgid "Run research program for winged bots" msgid "Run research program for winged bots"
msgstr "Recherche les robots volants" msgstr "Recherche les robots volants"
msgid "SatCom"
msgstr "SatCom"
msgid "Satellite report" msgid "Satellite report"
msgstr "Rapport du satellite" msgstr "Rapport du satellite"
@ -1596,9 +1608,6 @@ msgstr "Emplacement pour derrick (uranium)"
msgid "Uranium ore" msgid "Uranium ore"
msgstr "Minerai d'uranium" msgstr "Minerai d'uranium"
msgid "Use a joystick\\Joystick or keyboard"
msgstr "Utilise un joystick\\Joystick ou clavier"
msgid "User levels" msgid "User levels"
msgstr "Niveaux supplémentaires" msgstr "Niveaux supplémentaires"
@ -1883,9 +1892,6 @@ msgstr "www.epsitec.com"
#~ msgid "Robbie\\Your assistant" #~ msgid "Robbie\\Your assistant"
#~ msgstr "Robbie\\Votre assistant" #~ msgstr "Robbie\\Votre assistant"
#~ msgid "SatCom"
#~ msgstr "SatCom"
#~ msgid "Sky\\Clouds and nebulae" #~ msgid "Sky\\Clouds and nebulae"
#~ msgstr "Ciel\\Ciel et nuages" #~ msgstr "Ciel\\Ciel et nuages"
@ -1906,6 +1912,9 @@ msgstr "www.epsitec.com"
#~ "working.\n" #~ "working.\n"
#~ msgstr "Liste non disponible sans \\l;radar\\u object\\radar;.\n" #~ msgstr "Liste non disponible sans \\l;radar\\u object\\radar;.\n"
#~ msgid "Use a joystick\\Joystick or keyboard"
#~ msgstr "Utilise un joystick\\Joystick ou clavier"
#~ msgid "User\\User levels" #~ msgid "User\\User levels"
#~ msgstr "Suppl.\\Niveaux supplémentaires" #~ msgstr "Suppl.\\Niveaux supplémentaires"

View File

@ -379,6 +379,9 @@ msgstr "Zmień kamerę\\Przełącza pomiędzy kamerą pokładową i śledzącą"
msgid "Change player\\Change player" msgid "Change player\\Change player"
msgstr "Zmień gracza\\Zmień gracza" msgstr "Zmień gracza\\Zmień gracza"
msgid "Cheat console\\Show cheat console"
msgstr ""
msgid "Checkpoint" msgid "Checkpoint"
msgstr "Punkt kontrolny" msgstr "Punkt kontrolny"
@ -752,6 +755,9 @@ msgstr "Rozkazy\\Pokazuje rozkazy dotyczące bieżącej misji"
msgid "Internal error - tell the developers" msgid "Internal error - tell the developers"
msgstr "Błąd wewnętrzny - powiadom twórców gry" msgstr "Błąd wewnętrzny - powiadom twórców gry"
msgid "Invert\\Invert values on this axis"
msgstr ""
msgid "Jet temperature" msgid "Jet temperature"
msgstr "Temperatura silnika" msgstr "Temperatura silnika"
@ -1039,6 +1045,9 @@ msgstr "Cząstki w interfejsie\\Para i iskry z silników w interfejsie"
msgid "Paste (Ctrl+v)" msgid "Paste (Ctrl+v)"
msgstr "Wklej (Ctrl+V)" msgstr "Wklej (Ctrl+V)"
msgid "Pause in background\\Pause the game when the window is unfocused"
msgstr ""
msgid "Pause/continue" msgid "Pause/continue"
msgstr "Pauza/Kontynuuj" msgstr "Pauza/Kontynuuj"
@ -1277,6 +1286,9 @@ msgstr "Rozpocznij prace badawcze nad transporterem na gąsienicach"
msgid "Run research program for winged bots" msgid "Run research program for winged bots"
msgstr "Rozpocznij prace badawcze nad transporterem latającym" msgstr "Rozpocznij prace badawcze nad transporterem latającym"
msgid "SatCom"
msgstr "SatCom"
msgid "Satellite report" msgid "Satellite report"
msgstr "Raport z satelity" msgstr "Raport z satelity"
@ -1601,9 +1613,6 @@ msgstr "Złoże uranu (miejsce na kopalnię)"
msgid "Uranium ore" msgid "Uranium ore"
msgstr "Ruda uranu" msgstr "Ruda uranu"
msgid "Use a joystick\\Joystick or keyboard"
msgstr "Używaj joysticka\\Joystick lub klawiatura"
msgid "User levels" msgid "User levels"
msgstr "Poziomy użytkownika" msgstr "Poziomy użytkownika"
@ -1876,9 +1885,6 @@ msgstr "www.epsitec.com"
#~ msgid "Robbie\\Your assistant" #~ msgid "Robbie\\Your assistant"
#~ msgstr "Robbie\\Twój asystent" #~ msgstr "Robbie\\Twój asystent"
#~ msgid "SatCom"
#~ msgstr "SatCom"
#~ msgid "Sky\\Clouds and nebulae" #~ msgid "Sky\\Clouds and nebulae"
#~ msgstr "Niebo\\Chmury i mgławice" #~ msgstr "Niebo\\Chmury i mgławice"
@ -1898,6 +1904,9 @@ msgstr "www.epsitec.com"
#~ "Lista jest dostępna jedynie gdy działa \\l;stacja radarowa\\u object" #~ "Lista jest dostępna jedynie gdy działa \\l;stacja radarowa\\u object"
#~ "\\radar;.\n" #~ "\\radar;.\n"
#~ msgid "Use a joystick\\Joystick or keyboard"
#~ msgstr "Używaj joysticka\\Joystick lub klawiatura"
#~ msgid "\\b;Aliens\n" #~ msgid "\\b;Aliens\n"
#~ msgstr "\\b;Obcy\n" #~ msgstr "\\b;Obcy\n"

View File

@ -371,6 +371,9 @@ msgstr "Изменить вид\\Переключение между борто
msgid "Change player\\Change player" msgid "Change player\\Change player"
msgstr "Новый игрок\\Выберите имя для игрока" msgstr "Новый игрок\\Выберите имя для игрока"
msgid "Cheat console\\Show cheat console"
msgstr ""
msgid "Checkpoint" msgid "Checkpoint"
msgstr "Контрольная точка" msgstr "Контрольная точка"
@ -744,6 +747,9 @@ msgstr "Инструкции\\Показывает инструкции по т
msgid "Internal error - tell the developers" msgid "Internal error - tell the developers"
msgstr "" msgstr ""
msgid "Invert\\Invert values on this axis"
msgstr ""
msgid "Jet temperature" msgid "Jet temperature"
msgstr "Температура реактивного двигателя" msgstr "Температура реактивного двигателя"
@ -1035,6 +1041,9 @@ msgstr "Частицы в интерфейсе меню\\Пар из труб и
msgid "Paste (Ctrl+v)" msgid "Paste (Ctrl+v)"
msgstr "Вставить (Ctrl+V)" msgstr "Вставить (Ctrl+V)"
msgid "Pause in background\\Pause the game when the window is unfocused"
msgstr ""
msgid "Pause/continue" msgid "Pause/continue"
msgstr "Пауза/продолжить" msgstr "Пауза/продолжить"
@ -1276,6 +1285,9 @@ msgstr "Начать исследование программы для гусе
msgid "Run research program for winged bots" msgid "Run research program for winged bots"
msgstr "Начать исследование программы для летающего бота" msgstr "Начать исследование программы для летающего бота"
msgid "SatCom"
msgstr "SatCom"
msgid "Satellite report" msgid "Satellite report"
msgstr "Спутниковый отчет" msgstr "Спутниковый отчет"
@ -1601,9 +1613,6 @@ msgstr "Запасы урана (место для буровой вышки)"
msgid "Uranium ore" msgid "Uranium ore"
msgstr "Урановая руда" msgstr "Урановая руда"
msgid "Use a joystick\\Joystick or keyboard"
msgstr "Использовать джойстик\\Джойстик или клавиатура"
msgid "User levels" msgid "User levels"
msgstr "Пользовательские уровни" msgstr "Пользовательские уровни"
@ -1887,9 +1896,6 @@ msgstr "www.epsitec.com"
#~ msgid "Robbie\\Your assistant" #~ msgid "Robbie\\Your assistant"
#~ msgstr "Робби\\Ваш помощник" #~ msgstr "Робби\\Ваш помощник"
#~ msgid "SatCom"
#~ msgstr "SatCom"
#~ msgid "Sky\\Clouds and nebulae" #~ msgid "Sky\\Clouds and nebulae"
#~ msgstr "Небо\\Облака и туманности" #~ msgstr "Небо\\Облака и туманности"
@ -1908,6 +1914,9 @@ msgstr "www.epsitec.com"
#~ msgstr "" #~ msgstr ""
#~ "Список доступен только если \\l;radar station\\u object\\radar; работают\n" #~ "Список доступен только если \\l;radar station\\u object\\radar; работают\n"
#~ msgid "Use a joystick\\Joystick or keyboard"
#~ msgstr "Использовать джойстик\\Джойстик или клавиатура"
#~ msgid "User\\User levels" #~ msgid "User\\User levels"
#~ msgstr "Польз.\\Пользовательские уровни" #~ msgstr "Польз.\\Пользовательские уровни"

View File

@ -212,6 +212,7 @@ void InitializeEventTypeTexts()
EVENT_TYPE_TEXT[EVENT_INTERFACE_INVERTX] = "EVENT_INTERFACE_INVERTX"; EVENT_TYPE_TEXT[EVENT_INTERFACE_INVERTX] = "EVENT_INTERFACE_INVERTX";
EVENT_TYPE_TEXT[EVENT_INTERFACE_INVERTY] = "EVENT_INTERFACE_INVERTY"; EVENT_TYPE_TEXT[EVENT_INTERFACE_INVERTY] = "EVENT_INTERFACE_INVERTY";
EVENT_TYPE_TEXT[EVENT_INTERFACE_EFFECT] = "EVENT_INTERFACE_EFFECT"; EVENT_TYPE_TEXT[EVENT_INTERFACE_EFFECT] = "EVENT_INTERFACE_EFFECT";
EVENT_TYPE_TEXT[EVENT_INTERFACE_BGPAUSE] = "EVENT_INTERFACE_BGPAUSE";
EVENT_TYPE_TEXT[EVENT_INTERFACE_FOG] = "EVENT_INTERFACE_FOG"; EVENT_TYPE_TEXT[EVENT_INTERFACE_FOG] = "EVENT_INTERFACE_FOG";
EVENT_TYPE_TEXT[EVENT_INTERFACE_EDITMODE]= "EVENT_INTERFACE_EDITMODE"; EVENT_TYPE_TEXT[EVENT_INTERFACE_EDITMODE]= "EVENT_INTERFACE_EDITMODE";
EVENT_TYPE_TEXT[EVENT_INTERFACE_EDITVALUE]= "EVENT_INTERFACE_EDITVALUE"; EVENT_TYPE_TEXT[EVENT_INTERFACE_EDITVALUE]= "EVENT_INTERFACE_EDITVALUE";

View File

@ -241,6 +241,7 @@ enum EventType
EVENT_INTERFACE_INVERTX = 468, EVENT_INTERFACE_INVERTX = 468,
EVENT_INTERFACE_INVERTY = 469, EVENT_INTERFACE_INVERTY = 469,
EVENT_INTERFACE_EFFECT = 470, EVENT_INTERFACE_EFFECT = 470,
EVENT_INTERFACE_BGPAUSE = 471,
EVENT_INTERFACE_FOG = 474, EVENT_INTERFACE_FOG = 474,
EVENT_INTERFACE_EDITMODE= 476, EVENT_INTERFACE_EDITMODE= 476,
EVENT_INTERFACE_EDITVALUE= 477, EVENT_INTERFACE_EDITVALUE= 477,

View File

@ -194,6 +194,7 @@ void InitializeRestext()
stringsEvent[EVENT_INTERFACE_INVERTX] = TR("Mouse inversion X\\Inversion of the scrolling direction on the X axis"); stringsEvent[EVENT_INTERFACE_INVERTX] = TR("Mouse inversion X\\Inversion of the scrolling direction on the X axis");
stringsEvent[EVENT_INTERFACE_INVERTY] = TR("Mouse inversion Y\\Inversion of the scrolling direction on the Y axis"); stringsEvent[EVENT_INTERFACE_INVERTY] = TR("Mouse inversion Y\\Inversion of the scrolling direction on the Y axis");
stringsEvent[EVENT_INTERFACE_EFFECT] = TR("Quake at explosions\\The screen shakes at explosions"); stringsEvent[EVENT_INTERFACE_EFFECT] = TR("Quake at explosions\\The screen shakes at explosions");
stringsEvent[EVENT_INTERFACE_BGPAUSE] = TR("Pause in background\\Pause the game when the window is unfocused");
stringsEvent[EVENT_INTERFACE_EDITMODE] = TR("Automatic indent\\When program editing"); stringsEvent[EVENT_INTERFACE_EDITMODE] = TR("Automatic indent\\When program editing");
stringsEvent[EVENT_INTERFACE_EDITVALUE] = TR("Big indent\\Indent 2 or 4 spaces per level defined by braces"); stringsEvent[EVENT_INTERFACE_EDITVALUE] = TR("Big indent\\Indent 2 or 4 spaces per level defined by braces");
stringsEvent[EVENT_INTERFACE_SOLUCE4] = TR("Access to solutions\\Show program \"4: Solution\" in the exercises"); stringsEvent[EVENT_INTERFACE_SOLUCE4] = TR("Access to solutions\\Show program \"4: Solution\" in the exercises");

View File

@ -41,6 +41,7 @@ CSettings::CSettings()
m_interfaceRain = true; m_interfaceRain = true;
m_soluce4 = true; m_soluce4 = true;
m_movies = true; m_movies = true;
m_focusLostPause = true;
m_fontSize = 19.0f; m_fontSize = 19.0f;
m_windowPos = Math::Point(0.15f, 0.17f); m_windowPos = Math::Point(0.15f, 0.17f);
@ -78,6 +79,7 @@ void CSettings::SaveSettings()
GetConfigFile().SetBoolProperty("Setup", "InterfaceRain", m_interfaceRain); GetConfigFile().SetBoolProperty("Setup", "InterfaceRain", m_interfaceRain);
GetConfigFile().SetBoolProperty("Setup", "Soluce4", m_soluce4); GetConfigFile().SetBoolProperty("Setup", "Soluce4", m_soluce4);
GetConfigFile().SetBoolProperty("Setup", "Movies", m_movies); GetConfigFile().SetBoolProperty("Setup", "Movies", m_movies);
GetConfigFile().SetBoolProperty("Setup", "FocusLostPause", m_focusLostPause);
GetConfigFile().SetBoolProperty("Setup", "CameraScroll", camera->GetCameraScroll()); GetConfigFile().SetBoolProperty("Setup", "CameraScroll", camera->GetCameraScroll());
GetConfigFile().SetBoolProperty("Setup", "CameraInvertX", camera->GetCameraInvertX()); GetConfigFile().SetBoolProperty("Setup", "CameraInvertX", camera->GetCameraInvertX());
GetConfigFile().SetBoolProperty("Setup", "CameraInvertY", camera->GetCameraInvertY()); GetConfigFile().SetBoolProperty("Setup", "CameraInvertY", camera->GetCameraInvertY());
@ -148,6 +150,7 @@ void CSettings::LoadSettings()
GetConfigFile().GetBoolProperty("Setup", "InterfaceRain", m_interfaceRain); GetConfigFile().GetBoolProperty("Setup", "InterfaceRain", m_interfaceRain);
GetConfigFile().GetBoolProperty("Setup", "Soluce4", m_soluce4); GetConfigFile().GetBoolProperty("Setup", "Soluce4", m_soluce4);
GetConfigFile().GetBoolProperty("Setup", "Movies", m_movies); GetConfigFile().GetBoolProperty("Setup", "Movies", m_movies);
GetConfigFile().GetBoolProperty("Setup", "FocusLostPause", m_focusLostPause);
if (GetConfigFile().GetBoolProperty("Setup", "CameraScroll", bValue)) if (GetConfigFile().GetBoolProperty("Setup", "CameraScroll", bValue))
camera->SetCameraScroll(bValue); camera->SetCameraScroll(bValue);
@ -334,6 +337,15 @@ bool CSettings::GetMovies()
return m_movies; return m_movies;
} }
void CSettings::SetFocusLostPause(bool focusLostPause)
{
m_focusLostPause = focusLostPause;
}
bool CSettings::GetFocusLostPause()
{
return m_focusLostPause;
}
void CSettings::SetFontSize(float size) void CSettings::SetFontSize(float size)
{ {

View File

@ -53,6 +53,9 @@ public:
void SetMovies(bool movies); void SetMovies(bool movies);
bool GetMovies(); bool GetMovies();
void SetFocusLostPause(bool focusLostPause);
bool GetFocusLostPause();
//! Managing the size of the default fonts //! Managing the size of the default fonts
//@{ //@{
@ -90,6 +93,7 @@ protected:
bool m_interfaceRain; bool m_interfaceRain;
bool m_soluce4; bool m_soluce4;
bool m_movies; bool m_movies;
bool m_focusLostPause;
float m_fontSize; float m_fontSize;
Math::Point m_windowPos; Math::Point m_windowPos;

View File

@ -695,6 +695,26 @@ bool CRobotMain::ProcessEvent(Event &event)
return EventFrame(event); return EventFrame(event);
} }
if (event.type == EVENT_FOCUS_LOST)
{
GetLogger()->Trace("Window unfocused\n");
if (m_settings->GetFocusLostPause())
{
m_focusPause = m_pause->ActivatePause(PAUSE_ENGINE);
}
return false;
}
if (event.type == EVENT_FOCUS_GAINED)
{
GetLogger()->Trace("Window focused\n");
if (m_focusPause != nullptr)
{
m_pause->DeactivatePause(m_focusPause);
}
return false;
}
if (event.type == EVENT_WRITE_SCENE_FINISHED) if (event.type == EVENT_WRITE_SCENE_FINISHED)
{ {
IOWriteSceneFinished(); IOWriteSceneFinished();

View File

@ -460,6 +460,7 @@ protected:
Phase m_phase = PHASE_WELCOME1; Phase m_phase = PHASE_WELCOME1;
ActivePause* m_userPause = nullptr; ActivePause* m_userPause = nullptr;
ActivePause* m_focusPause = nullptr;
ActivePause* m_freePhotoPause = nullptr; ActivePause* m_freePhotoPause = nullptr;
bool m_cmdEdit = false; bool m_cmdEdit = false;
ActivePause* m_cmdEditPause = nullptr; ActivePause* m_cmdEditPause = nullptr;

View File

@ -123,6 +123,9 @@ void CScreenSetupGame::CreateInterface()
pc = pw->CreateCheck(pos, ddim, -1, EVENT_INTERFACE_RAIN); pc = pw->CreateCheck(pos, ddim, -1, EVENT_INTERFACE_RAIN);
pc->SetState(STATE_SHADOW); pc->SetState(STATE_SHADOW);
pos.y -= 0.048f; pos.y -= 0.048f;
pc = pw->CreateCheck(pos, ddim, -1, EVENT_INTERFACE_BGPAUSE);
pc->SetState(STATE_SHADOW);
pos.y -= 0.048f;
pos.y -= 0.048f; pos.y -= 0.048f;
pc = pw->CreateCheck(pos, ddim, -1, EVENT_INTERFACE_EDITMODE); pc = pw->CreateCheck(pos, ddim, -1, EVENT_INTERFACE_EDITMODE);
pc->SetState(STATE_SHADOW); pc->SetState(STATE_SHADOW);
@ -133,7 +136,6 @@ void CScreenSetupGame::CreateInterface()
pos.y -= 0.048f; pos.y -= 0.048f;
pc = pw->CreateCheck(pos, ddim, -1, EVENT_INTERFACE_EDITVALUE); pc = pw->CreateCheck(pos, ddim, -1, EVENT_INTERFACE_EDITVALUE);
pc->SetState(STATE_SHADOW); pc->SetState(STATE_SHADOW);
pos.y -= 0.048f;
ddim.y = dim.y*3.0f; ddim.y = dim.y*3.0f;
pos.y -= ddim.y; pos.y -= ddim.y;
@ -174,6 +176,12 @@ bool CScreenSetupGame::EventProcess(const Event &event)
UpdateSetupButtons(); UpdateSetupButtons();
break; break;
case EVENT_INTERFACE_BGPAUSE:
m_settings->SetFocusLostPause(!m_settings->GetFocusLostPause());
ChangeSetupButtons();
UpdateSetupButtons();
break;
case EVENT_INTERFACE_EDITMODE: case EVENT_INTERFACE_EDITMODE:
m_engine->SetEditIndentMode(!m_engine->GetEditIndentMode()); m_engine->SetEditIndentMode(!m_engine->GetEditIndentMode());
ChangeSetupButtons(); ChangeSetupButtons();
@ -284,6 +292,12 @@ void CScreenSetupGame::UpdateSetupButtons()
pc->SetState(STATE_CHECK, m_settings->GetInterfaceRain()); pc->SetState(STATE_CHECK, m_settings->GetInterfaceRain());
} }
pc = static_cast<CCheck*>(pw->SearchControl(EVENT_INTERFACE_BGPAUSE));
if ( pc != nullptr )
{
pc->SetState(STATE_CHECK, m_settings->GetFocusLostPause());
}
pc = static_cast<CCheck*>(pw->SearchControl(EVENT_INTERFACE_EDITMODE)); pc = static_cast<CCheck*>(pw->SearchControl(EVENT_INTERFACE_EDITMODE));
if ( pc != nullptr ) if ( pc != nullptr )
{ {