view mamba/__main__.py @ 348:ca2c98447453

Gracefull Ctrl-C.
author Simon Cross <hodgestar@gmail.com>
date Fri, 16 Sep 2011 23:21:04 +0200
parents fba74abad7b7
children 7d5bf8e72c61
line wrap: on
line source

"""Main module for the game"""

import sys
import pygame
from pygame.locals import SWSURFACE

from mamba.constants import SCREEN, NAME
from mamba.options import options, parse_args, check_args
from mamba.engine import Engine
from mamba.gamestate import load_state, load_levels
from mamba.sound import SoundSystem
from mamba.habitats.mainmenu import MainMenu
from mamba.habitats.level import LevelHabitat
from mamba.habitats.editor import EditorHabitat
from mamba.level import Level


def main():
    """Launch the currently unnamed mamab game"""
    parse_args(sys.argv)
    if not check_args():
        sys.exit(1)

    SoundSystem(options.sound)
    pygame.display.init()
    pygame.font.init()
    pygame.display.set_mode(SCREEN, SWSURFACE)
    pygame.display.set_caption(NAME)

    load_state()
    load_levels()

    if options.edit:
        start = EditorHabitat(Level(options.level))
    elif options.level is not None:
        start = LevelHabitat(Level(options.level))
    else:
        start = MainMenu()

    engine = Engine()
    engine.set_habitat(start)
    try:
        engine.run()
    except KeyboardInterrupt:
        pass
    engine.set_habitat(None)  # clear habitat