Changeset 833


Ignore:
Timestamp:
04/04/11 16:51:28 (8 years ago)
Author:
aspidites
Message:

Patch by Aspidites: Game now loads if launched from a different directory. Just need to remove relative paths from xml files

Location:
trunk/game/parpg
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/game/parpg/charactercreationview.py

    r818 r833  
    1414#   along with PARPG.  If not, see <http://www.gnu.org/licenses/>. 
    1515"""Provides the view for displaying the character creation screen.""" 
     16 
     17import os 
     18 
    1619from fife.extensions import pychan 
    1720 
     
    3033       @type character_screen: L{pychan.Widget}""" 
    3134 
    32     def __init__(self, engine, model): 
     35    def __init__(self, engine, model, settings): 
    3336        """Construct a new L{CharacterCreationView} instance. 
    3437           @param engine: Rendering engine used to display the view. 
     
    3740           @type model: L{GameState}""" 
    3841        ViewBase.__init__(self, engine, model) 
    39         self.background = pychan.loadXML('gui/main_menu_background.xml') 
     42        self.settings = settings 
     43        gui_path = os.path.join(self.settings.system_path, 
     44                                self.settings.parpg.GuiPath) 
     45        self.background = pychan.loadXML(os.path.join(gui_path,  
     46                                                    'main_menu_background.xml')) 
    4047        screen_mode = self.engine.getRenderBackend().getCurrentScreenMode() 
    4148        self.background.width = screen_mode.getWidth() 
     
    4350        self.start_new_game_callback = None 
    4451        self.cancel_new_game_callback = None 
    45         self.character_screen = pychan.loadXML('gui/character_screen.xml') 
     52        self.character_screen = pychan.loadXML(os.path.join(gui_path, 
     53                                                       'character_screen.xml')) 
    4654        self.character_screen.adaptLayout() 
    4755        character_screen_events = {} 
  • trunk/game/parpg/gui/dialogs.py

    r818 r833  
    1414#   along with PARPG.  If not, see <http://www.gnu.org/licenses/>. 
    1515 
     16import os 
     17 
    1618from fife.extensions import pychan 
    1719 
    1820class RestartDialog(object): 
    19     def __init__(self): 
    20         self.window = pychan.loadXML('gui/restart_dialog.xml') 
     21    def __init__(self, settings): 
     22        self.settings = settings 
     23        self.window = pychan.loadXML(os.path.join(self.settings.system_path, 
     24                                                  self.settings.parpg.GuiPath, 
     25                                                  'restart_dialog.xml')) 
    2126        self.window.mapEvents({'closeButton': self.hide}) 
    2227 
  • trunk/game/parpg/gui/menus.py

    r818 r833  
    1414#   along with PARPG.  If not, see <http://www.gnu.org/licenses/>. 
    1515 
     16import os 
    1617import logging 
    1718 
     
    9697        self.sound = self.settings.fife.EnableSound 
    9798 
    98         self.window = pychan.loadXML('gui/settings_menu.xml') 
    99         self.restart_dialog = RestartDialog() 
     99        self.window = pychan.loadXML(os.path.join(self.settings.system_path, 
     100                                                 self.settings.parpg.GuiPath, 
     101                                                 'settings_menu.xml')) 
     102        self.restart_dialog = RestartDialog(self.settings) 
    100103        self.window.mapEvents({'okButton': self.save, 
    101104                               'cancelButton': self.hide, 
  • trunk/game/parpg/mainmenucontroller.py

    r818 r833  
    5151    def newGame(self): 
    5252        """Start a new game and switch to the character creation controller.""" 
    53         view = CharacterCreationView(self.engine, self.model) 
     53        view = CharacterCreationView(self.engine, self.model, 
     54                                     self.model.settings) 
    5455        controller = CharacterCreationController(self.engine, view, self.model, 
    5556                                                 self.application) 
  • trunk/game/parpg/mainmenuview.py

    r828 r833  
    3939        self.main_menu = None 
    4040        self.character_screen = None 
     41        self.gui_path = os.path.join(self.model.settings.system_path, 
     42                                     self.model.settings.parpg.GuiPath) 
    4143         
    4244    def showMenu(self): 
     
    5355        """Initialized the main menu and sets the callbacks""" 
    5456        # Set a simple background to display the main screen. 
    55         self.main_menu_background = pychan.loadXML("gui/main_menu_background.xml") 
     57        self.main_menu_background = pychan.loadXML(os.path.join(self.gui_path, 
     58                                                   'main_menu_background.xml')) 
    5659         
    5760        # Initialize the main menu screen. 
     
    5962        self.main_menu_background.width = screen_mode.getWidth() 
    6063        self.main_menu_background.height = screen_mode.getHeight() 
    61         self.main_menu = pychan.loadXML("gui/main_menu.xml") 
     64        self.main_menu = pychan.loadXML(os.path.join(self.gui_path, 
     65                                                     'main_menu.xml')) 
     66 
     67        # Setup images for variables widgets  
     68        self.main_menu.background_image = os.path.join(self.gui_path, 
     69                                                       'notebook', 
     70                                                       'notebook_background.png') 
     71        quit_button = self.main_menu.findChild(name='quitButton') 
     72        quit_button.up_image = os.path.join(self.gui_path, 'notebook', 'tabs', 
     73                                            'tab2_bg_dark_bottom.png') 
     74        quit_button.hover_image = os.path.join(self.gui_path, 'notebook', 
     75                                               'tabs', 
     76                                               'tab2_bg_normal_bottom.png') 
     77        quit_button.down_image = os.path.join(self.gui_path, 'notebook', 
     78                                              'tabs', 
     79                                              'tab2_bg_normal_bottom.png') 
     80 
    6281        self.main_menu.adaptLayout() 
    6382        self.new_game_callback = new_game 
     
    82101        """ Called when the user wants to load a game. 
    83102            @return: None""" 
    84         xml_path = os.path.join(self.model.settings.system_path, 
    85                                 self.model.settings.parpg.GuiPath, 
    86                                 'loadbrowser.xml') 
    87103        load_browser = FileBrowser(self.engine, 
    88104                                   self.model.settings, 
    89105                                   self.load_game_callback, 
    90                                    gui_xml_path=xml_path, 
     106                                   gui_xml_path=os.path.join(self.gui_path, 
     107                                                             'loadbrowser.xml'), 
    91108                                   save_file=False, 
    92109                                   extensions=('.dat')) 
  • trunk/game/parpg/settings.py

    r828 r833  
    130130        and the options defined within those sections. 
    131131    """ 
    132     def __init__(self, system_path='', user_path='', settings_path='', suffix='.cfg'): 
     132    def __init__(self, settings_path='', system_path='', user_path='', suffix='.cfg'): 
    133133        """ initializes a new settings object. If no paths are given, they are 
    134134            guessed based on whatever platform the script was run on. 
     
    326326        return self.paths['user'] 
    327327 
     328    @property 
     329    def settings_path(self): 
     330        return self.paths['settings'] 
     331 
    328332DEFAULT_SETTINGS = """\ 
    329333[fife] 
     334#------------------------------------------------------------------------------ 
    330335# Options marked with ? are untested/unknown 
    331336 
     
    400405 
    401406[parpg] 
     407#------------------------------------------------------------------------------ 
    402408 
    403409# System subdirectory to load maps from (path) 
Note: See TracChangeset for help on using the changeset viewer.