diff application.py @ 8:708a6f651c31

Modifications to use the grease manager and modes
author KarstenBock@gmx.net
date Tue, 12 Jul 2011 12:31:53 +0200
parents 06145a6ee387
children 7b31de1dc964
line wrap: on
line diff
--- a/application.py	Tue Jul 12 12:30:41 2011 +0200
+++ b/application.py	Tue Jul 12 12:31:53 2011 +0200
@@ -19,7 +19,6 @@
 from fife import fife
 from fife.extensions import pychan
 from fife.extensions.serializers.xmlanimation import XMLAnimationLoader
-from fife.extensions.basicapplication import ApplicationBase
 
 from parpg import console, vfs
 from parpg.font import PARPGFont
@@ -32,6 +31,7 @@
 from parpg.common.listeners.command_listener import CommandListener
 from parpg.common.listeners.console_executor import ConsoleExecuter
 from parpg.common.listeners.widget_listener import WidgetListener
+from parpg.mode import FifeManager
 
 class KeyFilter(fife.IKeyFilter):
     """
@@ -103,7 +103,7 @@
             self.quit = True
             command.consume()
 
-class PARPGApplication(ApplicationBase):
+class PARPGApplication(FifeManager):
     """Main Application class
        We use an MVC model model
        self.gamesceneview is our view,self.model is our model
@@ -112,7 +112,8 @@
     def __init__(self, setting):
         """Initialise the instance.
            @return: None"""
-        self._setting = setting
+	self.modes = []
+	self._setting = setting
         self.engine = fife.Engine()
         self.loadSettings()
         self.engine.init()
@@ -142,11 +143,10 @@
         self.view = MainMenuView(self.engine, self.model)
         self.loadFonts()
         self.event_listener = EventListener(self.engine)
-        self.controllers = []
         controller = MainMenuController(self.engine, self.view, self.model, 
                                         self)
         #controller.initHud()
-        self.controllers.append(controller)
+        self.push_mode(controller)
         self.listener = ApplicationListener(self.event_listener,
                                             self.engine, 
                                             self.view, 
@@ -204,27 +204,6 @@
         """
         pass
 
-    def pushController(self, controller):
-        """Adds a controller to the list to be the current active one."""
-        self.controllers[-1].pause(True)
-        self.controllers.append(controller)
-    
-    def popController(self):
-        """Removes and returns the current active controller, unless its the last one"""
-        ret_controller = None
-        if self.controllers.count > 1:
-            ret_controller = self.controllers.pop()
-            self.controllers[-1].pause(False)
-        ret_controller.onStop()
-        return ret_controller
-    
-    def switchController(self, controller):
-        """Clears the controller list and adds a controller to be the current active one"""
-        for old_controller in self.controllers:
-            old_controller.onStop()
-        self.controllers = []
-        self.controllers.append(controller)
-    
     def _pump(self):
         """Main game loop.
            There are in fact 2 main loops, this one and the one in GameSceneView.
@@ -232,5 +211,4 @@
         if self.listener.quit:
             self.breakRequested = True #pylint: disable-msg=C0103
         else:
-            for controller in self.controllers:
-                controller.pump()
+            FifeManager._pump(self)