changeset 48:a70ded879f46

Move argument checking into mamba.options.
author Simon Cross <hodgestar@gmail.com>
date Sun, 11 Sep 2011 15:22:41 +0200
parents 3da564107e14
children 56b69a869efb
files mamba/__main__.py mamba/options.py
diffstat 2 files changed, 18 insertions(+), 11 deletions(-) [+]
line wrap: on
line diff
--- a/mamba/__main__.py	Sun Sep 11 15:20:25 2011 +0200
+++ b/mamba/__main__.py	Sun Sep 11 15:22:41 2011 +0200
@@ -5,7 +5,7 @@
 from pygame.locals import SWSURFACE
 
 from mamba.constants import SCREEN
-from mamba.options import options, parse_args
+from mamba.options import options, parse_args, check_args
 from mamba.engine import Engine
 from mamba.sound import SoundSystem
 from mamba.habitats.mainmenu import MainMenu
@@ -16,16 +16,8 @@
 def main():
     """Launch the currently unnamed mamab game"""
     parse_args(sys.argv)
-
-    if options.edit:
-        if options.level is None:
-            print 'You must specifiy a level name when using --edit'
-            sys.exit(1)
-        start = EditorHabitat(options.level)
-    elif options.level is not None:
-        start = LevelHabitat(options.level)
-    else:
-        start = MainMenu()
+    if not check_args():
+        sys.exit(1)
 
     SoundSystem(options.sound)
     pygame.display.init()
@@ -33,6 +25,13 @@
     pygame.display.set_mode(SCREEN, SWSURFACE)
     pygame.display.set_caption('Mamba')
 
+    if options.edit:
+        start = EditorHabitat(options.level)
+    elif options.level is not None:
+        start = LevelHabitat(options.level)
+    else:
+        start = MainMenu()
+
     engine = Engine()
     engine.set_habitat(start)
     engine.run()
--- a/mamba/options.py	Sun Sep 11 15:20:25 2011 +0200
+++ b/mamba/options.py	Sun Sep 11 15:22:41 2011 +0200
@@ -51,3 +51,11 @@
         options.set_option('edit', opts.edit)
 
     options.finalize()
+
+
+def check_args(options=options):
+    """Check options and complain if they're invalid."""
+    if options.edit and options.level is None:
+        print "You must supply --level when using --edit."
+        return False
+    return True