# HG changeset patch # User Neil Muller # Date 1259449715 0 # Node ID a1032ab5c1d60c2c2d08152e651623b5d20d4039 # Parent 41864335aeee1f8d436afc2a31d074e6cc5dad6d Add check for windows display mode problems diff -r 41864335aeee -r a1032ab5c1d6 gamelib/main.py --- a/gamelib/main.py Sat Nov 28 23:05:12 2009 +0000 +++ b/gamelib/main.py Sat Nov 28 23:08:35 2009 +0000 @@ -10,13 +10,14 @@ import pygame from pgu import gui -from pygame.locals import SWSURFACE +from pygame.locals import SWSURFACE, SRCALPHA #from engine import Engine, MainMenuState from sound import init_sound import constants from config import config import data +from misc import WarnDialog def create_main_app(screen): """Create an app with a background widget.""" @@ -26,10 +27,32 @@ app.init(widget, screen) return app +def complaint_dialog(message): + """Create a complaint dialog""" + app = gui.App() + + def close(_w): + app.quit() + + app.close = close + + dialog = WarnDialog('Problem starting Fox Assault', + message) + app.run(dialog) + sys.exit(1) + +def sanity_check(): + """Run some sanity checks, and complain if they fail""" + try: + pygame.Surface((100, 100), flags=SRCALPHA) + except Exception, e: + complaint_dialog("Unable to create a suitable screen, please check your display settings") + def main(): """Main script.""" config.configure(sys.argv[1:]) init_sound() + sanity_check() screen = pygame.display.set_mode(constants.SCREEN, SWSURFACE) pygame.display.set_icon(pygame.image.load( data.filepath('icons/foxassault24x24.png')))