# HG changeset patch
# User Thibaut Girka <thib@sitedethib.com>
# Date 1341054144 -7200
# Node ID 16ed1ab1e14b3cf1c015c3a8bf39c20199c1b0d3
# Parent  1bb78c469f6406541ef2e21a0c4edba54480c63b
Add a GameRunner.load_game method to allow level changes.

This will probably get changed later, but this is sufficient to change levels
for a story mode or a boss rush mode, for instance.
* * *
Fix previous patch

diff --git a/pytouhou/ui/gamerenderer.pyx b/pytouhou/ui/gamerenderer.pyx
--- a/pytouhou/ui/gamerenderer.pyx
+++ b/pytouhou/ui/gamerenderer.pyx
@@ -29,7 +29,10 @@ cdef class GameRenderer(Renderer):
 
     def __init__(self, resource_loader, game=None, background=None):
         Renderer.__init__(self, resource_loader)
+        self.load_game(game, background)
 
+
+    cpdef load_game(self, game=None, background=None):
         self.game = game
         self.background = background
 
diff --git a/pytouhou/ui/gamerunner.py b/pytouhou/ui/gamerunner.py
--- a/pytouhou/ui/gamerunner.py
+++ b/pytouhou/ui/gamerunner.py
@@ -44,6 +44,14 @@ class GameRunner(pyglet.window.Window, G
                                       caption='PyTouhou', resizable=False)
 
         self.replay_level = None
+        self.load_game(game, background, replay)
+
+        self.clock = pyglet.clock.get_default()
+
+
+    def load_game(self, game=None, background=None, replay=None):
+        GameRenderer.load_game(self, game, background)
+        self.replay_level = None
         if not replay or not replay.levels[game.stage-1]:
             self.keys = pyglet.window.key.KeyStateHandler()
             self.push_handlers(self.keys)
@@ -55,8 +63,6 @@ class GameRunner(pyglet.window.Window, G
             self.game.players[0].state.bombs = self.replay_level.bombs
             self.game.difficulty = self.replay_level.difficulty
 
-        self.clock = pyglet.clock.get_default()
-
 
     def start(self, width=None, height=None):
         width = width or (self.game.interface.width if self.game else 640)