# HG changeset patch # User Simon Cross # Date 1316292217 -7200 # Node ID e522db37e5c52c773611ef26b0da2e1b69cdfdf7 # Parent c3767a45355774a65719cc93ac8940de06022c5b Refactor level saving to allow saving to a passed in file (e.g. StringIO object). diff -r c3767a453557 -r e522db37e5c5 mamba/habitats/editor.py --- a/mamba/habitats/editor.py Sat Sep 17 22:42:33 2011 +0200 +++ b/mamba/habitats/editor.py Sat Sep 17 22:43:37 2011 +0200 @@ -4,6 +4,7 @@ from pygame.locals import SWSURFACE, KEYDOWN, K_1, K_2, MOUSEBUTTONDOWN import sys import traceback +from StringIO import StringIO from mamba.engine import Habitat, NewHabitatEvent from mamba.widgets.level import EditLevelWidget @@ -232,7 +233,9 @@ if message: self.display_dialog(message) return - print "Upload!" + save_file = StringIO() + self.level.save_level(save_file=save_file) + # print save_file.getvalue() return True def load(self, ev, widget, level_dir=None, is_user_dir=False, subdir=''): diff -r c3767a453557 -r e522db37e5c5 mamba/level.py --- a/mamba/level.py Sat Sep 17 22:42:33 2011 +0200 +++ b/mamba/level.py Sat Sep 17 22:43:37 2011 +0200 @@ -129,12 +129,13 @@ self.tiles = old_tiles self.tiles_ascii = old_tiles_ascii - def save_level(self, level_dir=None, is_user_dir=False): + def save_level(self, level_dir=None, is_user_dir=False, save_file=None): """Save the current state of the level""" - if level_dir is None: - level_dir = 'levels' - file_path = '%s/%s.txt' % (level_dir, self.level_name) - save_file = load_file(file_path, 'wb', is_user_dir=is_user_dir) + if save_file is None: + if level_dir is None: + level_dir = 'levels' + file_path = '%s/%s.txt' % (level_dir, self.level_name) + save_file = load_file(file_path, 'wb', is_user_dir=is_user_dir) save_file.write('%s\n' % self.name) save_file.write('%s\n' % self.tileset.name) save_file.write('%s\n' % self.background_track)