Changeset 162


Ignore:
Timestamp:
06/23/09 17:13:48 (10 years ago)
Author:
bretzel_parpg
Message:

You can now select the file you want to save to or load from. filebrowser.py is actually
built into FIFE, but I copied it to the scripts folder because I had to make some
modifications to it.

Location:
trunk/PARPG
Files:
3 added
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/PARPG/scripts/engine.py

    r156 r162  
    1717 
    1818# there should be NO references to FIFE here! 
    19 import pickle 
     19import pickle, sys 
    2020from agents.hero import Hero 
    2121from agents.npc import NPC 
     
    6767        self.doors = {} 
    6868 
    69     def save(self, filename): 
     69    def save(self, path, filename): 
    7070        """Writes the saver to a file. 
    7171           @type filename: string 
     
    7373           @return: None""" 
    7474        self.updateGameState() 
     75        fname = '/'.join([path,filename]) 
    7576        try: 
    76             f = open(filename, 'r') 
     77            f = open(fname, 'w') 
    7778        except(IOError): 
    7879            sys.stderr.write("Error: Can't find save game\n") 
     
    8384        f.close() 
    8485 
    85     def load(self, filename): 
     86    def load(self, path, filename): 
    8687        """Loads a saver from a file. 
    8788           @type filename: string 
    8889           @param filename: the name of the file to load from 
    8990           @return: None""" 
     91        fname = '/'.join([path, filename]) 
    9092        try: 
    91             f = open(filename, 'r') 
     93            f = open(fname, 'r') 
    9294        except(IOError): 
    9395            sys.stderr.write("Error: Can't find save game file\n") 
     
    9799        self.currentMap = pickle.load(f) 
    98100        f.close() 
    99         if self.gameState.currentMap: 
    100             self.loadMap(self.gameState.currentMap) 
     101        if self.currentMap: 
     102            self.loadMap(self.currentMap) 
    101103             
    102104    def updateGameState(self): 
  • trunk/PARPG/scripts/world.py

    r160 r162  
    1818import fife, time 
    1919import pychan 
     20from scripts.filebrowser import FileBrowser 
    2021from datetime import date 
    2122from scripts.common.eventlistenerbase import EventListenerBase 
     
    3132 
    3233TDS = Setting() 
    33 SAVE_FILE = 'my-save.pic' 
    3434 
    3535# this file should be the meta-file for all FIFE-related code 
     
    366366 
    367367            hbox = pychan.widgets.HBox() 
    368             label = pychan.widgets.Label(text=unicode("Are you sure you want to quit?")) 
     368            are_you_sure = "Are you sure you want to quit?" 
     369            label = pychan.widgets.Label(text=unicode(are_you_sure)) 
    369370            yes_button = pychan.widgets.Button(name="yes_button",  
    370371                                               text=unicode("Yes")) 
     
    387388            TODO: allow the user to select a file 
    388389            @return: None""" 
    389         self.data.save(SAVE_FILE) 
     390        self.save_browser = FileBrowser(self.engine, 
     391                                        self.data.save, 
     392                                        savefile=True, 
     393                                        guixmlpath="gui/savebrowser.xml", 
     394                                        extensions = ('.dat')) 
     395        self.save_browser.showBrowser() 
     396             
    390397 
    391398    def loadGame(self): 
    392399        """ Called when the user wants to load a game. 
    393             TODO: allow the user to select a file 
    394400            @return: None""" 
    395         self.data.load(SAVE_FILE) 
     401        self.load_browser = FileBrowser(self.engine, 
     402                                        self.data.load, 
     403                                        savefile=True, 
     404                                        guixmlpath='gui/loadbrowser.xml', 
     405                                        extensions=('.dat')) 
     406        self.load_browser.showBrowser() 
    396407 
    397408    def pump(self): 
Note: See TracChangeset for help on using the changeset viewer.