view mamba/gamestate.py @ 601:915de6c7d342 default tip

Add support for making the editor fullscreen too.
author Simon Cross <hodgestar@gmail.com>
date Sat, 14 Jan 2023 19:34:26 +0100
parents 84616c7db2e7
children
line wrap: on
line source

import os

try:
    import json
except ImportError:
    import simplejson as json  # pyflakes:ignore

from mamba.options import options


levels = []
done_levels = set()


def save_path(path):
    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()


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()