Mercurial > fife-parpg
diff clients/rio_de_hola/run.py @ 121:ae3b8139c7c7
* Applying settings patch by greyghost
* See: #274
author | mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222 |
---|---|
date | Tue, 05 Aug 2008 14:44:15 +0000 |
parents | 5f32bfdc4232 |
children | bb9902910067 |
line wrap: on
line diff
--- a/clients/rio_de_hola/run.py Mon Aug 04 15:45:07 2008 +0000 +++ b/clients/rio_de_hola/run.py Tue Aug 05 14:44:15 2008 +0000 @@ -2,7 +2,7 @@ # coding: utf-8 # This is the rio de hola client for FIFE. -import sys, os, re, math, random +import sys, os, re, math, random, shutil def _jp(path): return os.path.sep.join(path.split('/')) @@ -12,14 +12,18 @@ if p not in sys.path: sys.path.append(_jp(p)) +if not os.path.exists('settings.xml'): + shutil.copyfile('settings-dist.xml', 'settings.xml') + import fife, fifelog from scripts import world from scripts.common import eventlistenerbase from basicapplication import ApplicationBase import pychan import pychan.widgets as widgets -import settings as TDS +from settings import Setting +TDS = Setting() class ApplicationListener(eventlistenerbase.EventListenerBase): def __init__(self, engine, world): @@ -41,6 +45,7 @@ self.rootpanel.mapEvents({ 'quitButton' : self.onQuitButtonPress, 'aboutButton' : self.onAboutButtonPress, + 'optionsButton' : TDS.onOptionsPress }) self.rootpanel.show() @@ -95,19 +100,18 @@ self.aboutWindow.distributeData({ 'helpText' : open("misc/infotext.txt").read() }) self.aboutWindow.show() - class IslandDemo(ApplicationBase): def __init__(self): super(IslandDemo,self).__init__() - pychan.init(self.engine, debug=TDS.PychanDebug) + pychan.init(self.engine, debug=TDS.readSetting("PychanDebug", type='bool')) self.world = world.World(self.engine) self.listener = ApplicationListener(self.engine, self.world) - self.world.load(TDS.MapFile) + self.world.load(str(TDS.readSetting("MapFile"))) self.soundmanager = self.engine.getSoundManager() self.soundmanager.init() - if TDS.PlaySounds: + if int(TDS.readSetting("PlaySounds")): # play track as background music emitter = self.soundmanager.createEmitter() id = self.engine.getSoundClipPool().addResourceFromFile('music/rio_de_hola.ogg') @@ -115,6 +119,45 @@ emitter.setLooping(True) emitter.play() + def loadSettings(self): + """ + Load the settings from a python file and load them into the engine. + Called in the ApplicationBase constructor. + """ + import settings + self.settings = settings + + engineSetting = self.engine.getSettings() + engineSetting.setDefaultFontGlyphs(str(TDS.readSetting("FontGlyphs", strip=False))) + engineSetting.setDefaultFontPath(str(TDS.readSetting("Font"))) + engineSetting.setDefaultFontSize(12) + engineSetting.setBitsPerPixel(int(TDS.readSetting("BitsPerPixel"))) + engineSetting.setInitialVolume(float(TDS.readSetting("InitialVolume"))) + engineSetting.setSDLRemoveFakeAlpha(int(TDS.readSetting("SDLRemoveFakeAlpha"))) + engineSetting.setScreenWidth(int(TDS.readSetting("ScreenWidth"))) + engineSetting.setScreenHeight(int(TDS.readSetting("ScreenHeight"))) + engineSetting.setRenderBackend(str(TDS.readSetting("RenderBackend"))) + engineSetting.setFullScreen(int(TDS.readSetting("FullScreen"))) + + try: + engineSetting.setWindowTitle(str(TDS.readSetting("WindowTitle"))) + engineSetting.setWindowIcon(str(TDS.readSetting("WindowIcon"))) + except: + pass + try: + engineSetting.setImageChunkingSize(int(TDS.readSetting("ImageChunkSize"))) + except: + pass + + def initLogging(self): + """ + Initialize the LogManager. + """ + LogModules = TDS.readSetting("LogModules", type='list') + self.log = fifelog.LogManager(self.engine, int(TDS.readSetting("LogToPrompt")), int(TDS.readSetting("LogToFile"))) + if LogModules: + self.log.setVisibleModules(*LogModules) + def createListener(self): pass # already created in constructor @@ -131,7 +174,7 @@ if __name__ == '__main__': - if TDS.ProfilingOn: + if TDS.readSetting("ProfilingOn", type='bool'): import hotshot, hotshot.stats print "Starting profiler" prof = hotshot.Profile("fife.prof") @@ -143,7 +186,7 @@ stats.sort_stats('time', 'calls') stats.print_stats(20) else: - if TDS.UsePsyco: + if TDS.readSetting("UsePsyco", type='bool'): # Import Psyco if available try: import psyco