Mercurial > parpg-source
comparison gui/menus.py @ 167:b3b82c2aebee
Using fife settings module again instead of our own.
author | Beliar <KarstenBock@gmx.net> |
---|---|
date | Mon, 20 Feb 2012 16:50:10 +0100 |
parents | bf1dd9c24a7e |
children |
comparison
equal
deleted
inserted
replaced
166:a6bbb732b27b | 167:b3b82c2aebee |
---|---|
75 class SettingsMenu(object): | 75 class SettingsMenu(object): |
76 def __init__(self, engine, settings): | 76 def __init__(self, engine, settings): |
77 self.engine = engine | 77 self.engine = engine |
78 self.settings = settings | 78 self.settings = settings |
79 | 79 |
80 width = self.settings.fife.ScreenWidth | |
81 height = self.settings.fife.ScreenHeight | |
82 | |
83 # available options | 80 # available options |
84 screen_modes = self.engine.getDeviceCaps().getSupportedScreenModes() | 81 screen_modes = self.engine.getDeviceCaps().getSupportedScreenModes() |
85 resolutions = list(set([(mode.getWidth(), mode.getHeight()) | 82 resolutions = list(set([(mode.getWidth(), mode.getHeight()) |
86 for mode in screen_modes])) | 83 for mode in screen_modes])) |
87 self.resolutions = ["{0}x{1}".format(item[0], item[1]) | 84 self.resolutions = ["{0}x{1}".format(item[0], item[1]) |
89 | 86 |
90 self.render_backends = ['OpenGL', 'SDL'] | 87 self.render_backends = ['OpenGL', 'SDL'] |
91 self.lighting_models = range(3) | 88 self.lighting_models = range(3) |
92 | 89 |
93 # selected options | 90 # selected options |
94 self.resolution = "{0}x{1}".format(width, height) | 91 self.resolution = self.settings.get("FIFE", "ScreenResolution") |
95 self.render_backend = self.settings.fife.RenderBackend | 92 self.render_backend = self.settings.get("FIFE", "RenderBackend") |
96 self.lighting_model = self.settings.fife.Lighting | 93 self.lighting_model = self.settings.get("FIFE", "Lighting") |
97 self.fullscreen = self.settings.fife.FullScreen | 94 self.fullscreen = self.settings.get("FIFE", "FullScreen") |
98 self.sound = self.settings.fife.EnableSound | 95 self.sound = self.settings.get("FIFE", "PlaySounds") |
99 self.scroll_speed = self.settings.parpg.ScrollSpeed | 96 self.scroll_speed = self.settings.get("parpg", "ScrollSpeed") |
100 | 97 |
101 xml_file = vfs.VFS.open('gui/settings_menu.xml') | 98 xml_file = vfs.VFS.open('gui/settings_menu.xml') |
102 self.window = pychan.loadXML(xml_file) | 99 self.window = pychan.loadXML(xml_file) |
103 self.restart_dialog = RestartDialog(self.settings) | 100 self.restart_dialog = RestartDialog(self.settings) |
104 self.window.mapEvents({'okButton': self.save, | 101 self.window.mapEvents({'okButton': self.save, |
155 def save(self): | 152 def save(self): |
156 (resolution, backend, lighting, fullscreen, sound, scroll_speed) = \ | 153 (resolution, backend, lighting, fullscreen, sound, scroll_speed) = \ |
157 self.window.collectData('screen_resolution', 'render_backend', | 154 self.window.collectData('screen_resolution', 'render_backend', |
158 'lighting_model', 'enable_fullscreen', | 155 'lighting_model', 'enable_fullscreen', |
159 'enable_sound', 'scroll_speed') | 156 'enable_sound', 'scroll_speed') |
160 | 157 self.settings.set("FIFE", "ScreenResolution", self.resolutions[resolution]) |
161 width, height = self.resolutions[resolution].split('x') | 158 self.settings.set("FIFE", "RenderBackend", self.render_backends[backend]) |
162 self.settings.fife.ScreenWidth = width | 159 self.settings.set("FIFE", "Lighting", self.lighting_models[lighting]) |
163 self.settings.fife.ScreenHeight = height | 160 self.settings.set("FIFE", "FullScreen", fullscreen) |
164 self.settings.fife.RenderBackend = self.render_backends[backend] | 161 self.settings.set("FIFE", "EnableSound", sound) |
165 self.settings.fife.Lighting = self.lighting_models[lighting] | 162 self.settings.set("FIFE", "ScrollSpeed", scroll_speed) |
166 self.settings.fife.FullScreen = fullscreen | 163 self.settings.saveSettings("../settings.xml") |
167 self.settings.fife.EnableSound = sound | |
168 self.settings.parpg.ScrollSpeed = scroll_speed | |
169 self.settings.write() | |
170 | 164 |
171 self.restart_dialog.show() | 165 self.restart_dialog.show() |
172 self.hide() | 166 self.hide() |