Mercurial > mamba
view mamba/gamestate.py @ 399:12d67f69e6b2
Support for user levels.
author | Jeremy Thurgood <firxen@gmail.com> |
---|---|
date | Sat, 17 Sep 2011 11:28:18 +0200 |
parents | d4062344d8f4 |
children | 001c3797a63b |
line wrap: on
line source
import os try: import json except ImportError: import simplejson as json # pyflakes:ignore from mamba.data import filepath from mamba.options import options levels = [] done_levels = set() def save_path(path): return os.path.join(options.save_location, *path.split('/')) def level_done(level_name): done_levels.add(level_name) save_state() def load_state(): done_levels.clear() fn = save_path('gamestate.json') if os.access(fn, os.R_OK): f = open(fn, 'r') state = json.load(f) f.close() done_levels.update(state['done_levels']) def save_state(): fn = save_path('gamestate.json') if not os.path.isdir(options.save_location): os.makedirs(options.save_location) f = open(fn, 'w') json.dump({ 'done_levels': list(done_levels), }, f) f.close() def get_user_levels_dir(): levels_dir = save_path('user_levels') if not os.path.isdir(levels_dir): os.makedirs(levels_dir) return levels_dir def load_levels(): f = open(filepath('levels/index.txt')) del levels[:] for line in f.readlines(): line = line.strip() if line and line[0] != '#': levels.append(line)