# HG changeset patch # User Neil Muller # Date 1353447466 -7200 # Node ID 84616c7db2e790a1b77ee4c2a1a28e5cdae342f2 # Parent cb8cc5b4d6be7428229134b0f20675b6f7a81493 ensure save dir exists before trying to save diff -r cb8cc5b4d6be -r 84616c7db2e7 mamba/gamestate.py --- a/mamba/gamestate.py Tue Nov 20 23:24:16 2012 +0200 +++ b/mamba/gamestate.py Tue Nov 20 23:37:46 2012 +0200 @@ -16,6 +16,12 @@ return os.path.join(options.save_location, *path.split('/')) +def ensure_save_path_exists(path): + location = save_path(path) + if not os.path.isdir(location): + os.makedirs(location) + + def level_done(level_name): done_levels.add(level_name) save_state() diff -r cb8cc5b4d6be -r 84616c7db2e7 mamba/habitats/editor.py --- a/mamba/habitats/editor.py Tue Nov 20 23:24:16 2012 +0200 +++ b/mamba/habitats/editor.py Tue Nov 20 23:37:46 2012 +0200 @@ -12,6 +12,7 @@ from mamba.engine import (Habitat, NewHabitatEvent, SnakeDiedEvent, LevelCompletedEvent) from mamba.sprites import find_special_sprites +from mamba.gamestate import ensure_save_path_exists from mamba.widgets.level import EditLevelWidget from mamba.widgets.text import TextWidget, TextButton from mamba.widgets.imagebutton import ImageButtonWidget @@ -321,6 +322,7 @@ self.display_dialog(message) return True try: + ensure_save_path_exists('user_levels') self.level.save_level('user_levels', is_user_dir=True) self.refresh_display() message = MessageBox((300, 300),