Changeset 222


Ignore:
Timestamp:
08/04/09 21:17:53 (10 years ago)
Author:
bretzel_parpg
Message:

You can now load and save with the the commands: save [path] [filename] and load [path] [filename]
Example: load /home/brett/parpg/saves/ save1.dat

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/PARPG/run.py

    r220 r222  
    1414#   along with this program.  If not, see <http://www.gnu.org/licenses/>. 
    1515 
    16 import sys, os, shutil 
     16import sys, os, shutil, re 
    1717 
    1818from scripts.common import utils 
     
    2727from scripts import world 
    2828from scripts import engine 
     29from scripts.engine import Engine 
    2930from scripts.common import eventlistenerbase 
    3031from basicapplication import ApplicationBase 
     
    3940 
    4041class ApplicationListener(eventlistenerbase.EventListenerBase): 
    41     def __init__(self, engine, world): 
     42    def __init__(self, engine, world, model): 
    4243        """Initialise the instance. 
    4344           @type engine: ??? 
     
    4546           @type world: ??? 
    4647           @param world: ??? 
    47            @return: None""" 
     48           @type model: engine.Engine 
     49           @param model: an instance of PARPG's engine""" 
    4850        super(ApplicationListener, self).__init__(engine, 
    4951                                                  regKeys=True,regCmd=True, 
     
    5355        self.engine = engine 
    5456        self.world = world 
     57        self.model = model 
    5558        engine.getEventManager().setNonConsumableKeys([fife.Key.ESCAPE,]) 
    5659        self.quit = False 
     
    6972        @return: result 
    7073        """ 
     74        result = None 
     75 
    7176        if (command.lower() in ('quit', 'exit')): 
    7277            self.quitGame() 
     78 
     79        load_regex = re.compile('^load') 
     80        l_matches = load_regex.match(command.lower()) 
     81        if (l_matches != None): 
     82            end_load = l_matches.end() 
     83            try: 
     84                l_args = command.lower()[end_load+1:].strip() 
     85                l_path, l_filename = l_args.split(' ') 
     86                self.model.load(l_path, l_filename) 
     87                result = "Loaded file: " + l_path + l_filename 
     88 
     89            except Exception, l_error: 
     90                self.engine.getGuiManager().getConsole().println('Error: ' + str(l_error)) 
     91 
     92        save_regex = re.compile('^save') 
     93        s_matches = save_regex.match(command.lower()) 
     94        if (s_matches != None): 
     95            end_save = s_matches.end() 
     96            try: 
     97                s_args = command.lower()[end_save+1:].strip() 
     98                s_path, s_filename = s_args.split(' ') 
     99                self.model.save(s_path, s_filename) 
     100                result = "Saved to file: " + s_path + s_filename 
     101 
     102            except Exception, s_error: 
     103                self.engine.getGuiManager().getConsole().println('Error: ' + str(s_error)) 
    73104                    
    74105        else: 
     
    104135        self.model = engine.Engine(self.world) 
    105136        self.world.data = self.model 
    106         self.listener = ApplicationListener(self.engine,self.world) 
     137        self.listener = ApplicationListener(self.engine,self.world,self.model) 
    107138        self.world.quitFunction = self.listener.quitGame 
    108139        self.model.loadMap(str(TDS.readSetting("MapFile")))    
Note: See TracChangeset for help on using the changeset viewer.