File fretsonfire-1.3.110-settings.patch of Package fretsonfire
--- src/Settings.py
+++ src/Settings.py
@@ -127,12 +127,13 @@
class SettingsMenu(Menu.Menu):
def __init__(self, engine):
+ self.engine = engine
applyItem = [(_("Apply New Settings"), self.applySettings)]
modSettings = [
ConfigChoice(engine.config, "mods", "mod_" + m) for m in Mod.getAvailableMods(engine)
] + applyItem
-
+
gameSettings = [
(_("Mod settings"), modSettings),
ConfigChoice(engine.config, "game", "language"),
@@ -142,6 +143,10 @@
]
gameSettingsMenu = Menu.Menu(engine, gameSettings + applyItem)
+ restartItem = [(_("Please restart the game"), lambda: self.engine.view.popLayer(self.restartMenu) )]
+ restartMenu = Menu.Menu(engine, restartItem)
+ self.restartMenu = restartMenu
+
keySettings = [
(_("Test Keys"), lambda: Dialogs.testKeys(engine)),
KeyConfigChoice(engine, engine.config, "player", "key_action1"),
@@ -158,7 +163,7 @@
KeyConfigChoice(engine, engine.config, "player", "key_cancel"),
]
keySettingsMenu = Menu.Menu(engine, keySettings)
-
+
modes = engine.video.getVideoModes()
modes.reverse()
Config.define("video", "resolution", str, "640x480", text = _("Video Resolution"), options = ["%dx%d" % (m[0], m[1]) for m in modes])
@@ -196,7 +201,7 @@
(_("Video Settings"), videoSettingsMenu),
(_("Audio Settings"), audioSettingsMenu),
]
-
+
self.settingsToApply = settings + \
videoSettings + \
audioSettings + \
@@ -205,13 +210,15 @@
modSettings
Menu.Menu.__init__(self, engine, settings)
-
+
def applySettings(self):
for option in self.settingsToApply:
if isinstance(option, ConfigChoice):
option.apply()
- self.engine.restart()
+ self.engine.view.pushLayer(self.restartMenu)
+ return
+
class GameSettingsMenu(Menu.Menu):
def __init__(self, engine):
settings = [