changeset 17:236de980209a

Add simple command line processing
author Neil Muller <drnlmuller@gmail.com>
date Sun, 11 Sep 2011 13:46:30 +0200
parents ad2bcbf492bf
children a0604a61762e
files mamba/__main__.py mamba/constants.py
diffstat 2 files changed, 37 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/mamba/__main__.py	Sun Sep 11 13:34:18 2011 +0200
+++ b/mamba/__main__.py	Sun Sep 11 13:46:30 2011 +0200
@@ -2,10 +2,11 @@
 
 import sys
 import os
+import optparse
 import pygame
 from pygame.locals import SWSURFACE
 
-from mamba.constants import SCREEN
+from mamba.constants import SCREEN, DEFAULTS
 from mamba.engine import Engine
 from mamba.habitats.mainmenu import MainMenu
 
@@ -15,9 +16,27 @@
     DEBUG = True
 
 
+def parse_args(args, options):
+    parser = optparse.OptionParser()
+    parser.add_option("--no-sound", action="store_false", default=True,
+            dest="sound", help="disable sound")
+    if DEBUG:
+        parser.add_option("--level", type="str", default=None,
+                dest="level", help="Initial level")
+        parser.add_option('--edit', type="store_true", default=False,
+                dest="edit", help="Edit given level")
+    opts, _ = parser.parse_args(args)
+    options['sound'] = opts.sound
+    if DEBUG:
+        options['level'] = opts.level
+        options['edit'] = opts.edit
+
+
 def main():
     """Launch the currently unnamed mamab game"""
 
+    options = DEFAULTS.copy()
+    parse_args(sys.argv, options)
     pygame.display.init()
     pygame.font.init()
     # TODO: Sound initialisation
@@ -25,5 +44,15 @@
     pygame.display.set_caption('Mamba')
 
     engine = Engine()
-    engine.set_habitat(MainMenu())
+    if options['level'] is None:
+        if options['edit']:
+            print 'You must specifiy a level name when using --edit'
+            sys.exit(1)
+        start = MainMenu()
+    else:
+        start = None
+        pass
+        # TODO: turn level name into a level
+        # TODO: Hook up firing up editor
+    engine.set_habitat(start)
     engine.run()
--- a/mamba/constants.py	Sun Sep 11 13:34:18 2011 +0200
+++ b/mamba/constants.py	Sun Sep 11 13:46:30 2011 +0200
@@ -8,3 +8,9 @@
 BITSIZE = -16  # unsigned 16 bit
 CHANNELS = 2   # 1 == mono, 2 == stereo
 BUFFER = 1024  # audio buffer size in no. of samples
+
+DEFAULTS = {
+    'sound': True,
+    'level': None,
+    'edit': False,
+}