comparison application.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 76041ed90a5d
children bfd3a4ef7f2b
comparison
equal deleted inserted replaced
166:a6bbb732b27b 167:b3b82c2aebee
110 self.controller is the controller""" 110 self.controller is the controller"""
111 111
112 def __init__(self, setting): 112 def __init__(self, setting):
113 """Initialise the instance. 113 """Initialise the instance.
114 @return: None""" 114 @return: None"""
115 self._setting = setting 115 ApplicationBase.__init__(self, setting)
116 self.manager = FifeManager() 116 self.manager = FifeManager()
117 self.engine = fife.Engine()
118 self.loadSettings()
119 self.engine.init()
120 # KLUDGE M. George Hansen 2011-06-04: See parpg/vfs.py. 117 # KLUDGE M. George Hansen 2011-06-04: See parpg/vfs.py.
121 vfs.VFS = self.engine.getVFS() 118 vfs.VFS = self.engine.getVFS()
122 vfs.VFS.addNewSource(setting.parpg.DataPath) 119 print(vfs.VFS)
120 vfs.VFS.addNewSource(setting.get("parpg","DataPath"))
123 121
124 pychan.init(self.engine, debug = True) 122 pychan.init(self.engine, debug = True)
125 pychan.setupModalExecution(self.mainLoop,self.breakFromMainLoop) 123 pychan.setupModalExecution(self.mainLoop,self.breakFromMainLoop)
126 124
127 self.quitRequested = False 125 self.quitRequested = False
134 self.model.getAgentImportFiles() 132 self.model.getAgentImportFiles()
135 self.model.readAllAgents() 133 self.model.readAllAgents()
136 self.model.getDialogues() 134 self.model.getDialogues()
137 # KLUDGE M. George Hansen 2011-06-04: Hack to allow loaded PyChan XML 135 # KLUDGE M. George Hansen 2011-06-04: Hack to allow loaded PyChan XML
138 # scripts to locate their resources. 136 # scripts to locate their resources.
139 os.chdir(setting.parpg.DataPath) 137 os.chdir(setting.get("parpg","DataPath"))
140 self.view = MainMenuView(self.engine, self.model) 138 self.view = MainMenuView(self.engine, self.model)
141 self.loadFonts() 139 self.loadFonts()
142 self.event_listener = EventListener(self.engine) 140 self.event_listener = EventListener(self.engine)
143 controller = MainMenuController(self.engine, self.view, self.model, 141 controller = MainMenuController(self.engine, self.view, self.model,
144 self) 142 self)
146 self.manager.push_mode(controller) 144 self.manager.push_mode(controller)
147 self.listener = ApplicationListener(self.event_listener, 145 self.listener = ApplicationListener(self.event_listener,
148 self.engine, 146 self.engine,
149 self.view, 147 self.view,
150 self.model) 148 self.model)
151 #start_map = self._setting.fife.get("PARPG", "Map")
152 #self.model.changeMap(start_map)
153 149
154 def loadFonts(self): 150 def loadFonts(self):
155 # add the fonts path to the system path to import font definitons 151 # add the fonts path to the system path to import font definitons
156 sys.path.insert(0, os.path.join(self._setting.parpg.DataPath, 'fonts')) 152 sys.path.insert(0, os.path.join(self._setting.get("parpg", "DataPath"), 'fonts'))
157 from oldtypewriter import fontdefs 153 from oldtypewriter import fontdefs
158 154
159 for fontdef in fontdefs: 155 for fontdef in fontdefs:
160 pychan.internal.get_manager().addFont(PARPGFont(fontdef, 156 pychan.internal.get_manager().addFont(PARPGFont(fontdef,
161 self._setting)) 157 self._setting))
162 158
163
164 def loadSettings(self):
165 """
166 Load the settings from a python file and load them into the engine.
167 Called in the ApplicationBase constructor.
168 """
169
170 engineSetting = self.engine.getSettings()
171 assert(isinstance(engineSetting, fife.EngineSettings))
172 engineSetting.setDefaultFontGlyphs(self._setting.fife.FontGlyphs)
173 engineSetting.setDefaultFontPath(
174 '{0}/fonts/{1}'.format(self._setting.parpg.DataPath,
175 self._setting.fife.Font)
176 )
177 engineSetting.setDefaultFontSize(self._setting.fife.DefaultFontSize)
178 engineSetting.setBitsPerPixel(self._setting.fife.BitsPerPixel)
179 engineSetting.setInitialVolume(self._setting.fife.InitialVolume)
180 engineSetting.setSDLRemoveFakeAlpha(
181 self._setting.fife.SDLRemoveFakeAlpha
182 )
183 engineSetting.setGLUseFramebuffer(self._setting.fife.GLUseFramebuffer)
184 engineSetting.setGLUseNPOT(self._setting.fife.GLUseNPOT)
185 engineSetting.setScreenWidth(self._setting.fife.ScreenWidth)
186 engineSetting.setScreenHeight(self._setting.fife.ScreenHeight)
187 engineSetting.setRenderBackend(self._setting.fife.RenderBackend)
188 engineSetting.setFullScreen(self._setting.fife.FullScreen)
189 engineSetting.setVideoDriver(self._setting.fife.VideoDriver)
190 engineSetting.setLightingModel(self._setting.fife.Lighting)
191 engineSetting.setColorKeyEnabled(self._setting.fife.ColorKeyEnabled)
192 engineSetting.setMouseSensitivity(self._setting.fife.MouseSensitivity)
193 engineSetting.setMouseAcceleration(
194 self._setting.fife.MouseAcceleration
195 )
196
197 engineSetting.setColorKey(*[int(digit)
198 for digit in self._setting.fife.ColorKey])
199
200 engineSetting.setWindowTitle(self._setting.fife.WindowTitle)
201 engineSetting.setWindowIcon(
202 '/'.join(['gui/icons', self._setting.fife.WindowIcon])
203 )
204 159
205 def createListener(self): 160 def createListener(self):
206 """ __init__ takes care of creating an event listener, so 161 """ __init__ takes care of creating an event listener, so
207 basicapplication's createListener is harmful. Without 162 basicapplication's createListener is harmful. Without
208 overriding it, the program quit's on esc press, rather than 163 overriding it, the program quit's on esc press, rather than