Changeset 648


Ignore:
Timestamp:
08/14/10 21:49:10 (9 years ago)
Author:
beliar
Message:

Ticket #118: Patch by Beliar

  • Added a simple main menu
  • Removed unnnecessary und harmful calls to pychan.init() in hud.py and popups.py
  • Moved methods from GameSceneController? to ControllerBase? that set/reset the mouse cursor

fixes[s:trac, t:118]

Location:
trunk/game
Files:
1 added
7 edited
1 moved

Legend:

Unmodified
Added
Removed
  • trunk/game/gui/hud_pause_menu.xml

    r644 r648  
    66--> 
    77 
    8 <Container position_technique="center:center" size="145,172"> 
     8<Container name="PauseMenue" position_technique="center:center" size="145,172"> 
    99  <Button name="newButton"     text="New Game"    position="25,7" min_size="95,20" max_size="95,20" /> 
    1010  <Button name="resumeButton"  text="Resume Game" position="25,30" min_size="95,20" max_size="95,20"/> 
  • trunk/game/scripts/controllerbase.py

    r632 r648  
    1515#   You should have received a copy of the GNU General Public License 
    1616#   along with PARPG.  If not, see <http://www.gnu.org/licenses/>. 
     17from fife import fife 
     18 
    1719from scripts.common.listeners.key_listener import KeyListener 
    1820from scripts.common.listeners.mouse_listener import MouseListener 
     
    5456            KeyListener.attach(self, self.application.event_listener) 
    5557            MouseListener.attach(self, self.application.event_listener) 
     58     
     59    def setMouseCursor(self, image, dummy_image, mc_type="native"):  
     60        """Set the mouse cursor to an image. 
     61           @type image: string 
     62           @param image: The image you want to set the cursor to 
     63           @type dummy_image: string 
     64           @param dummy_image: ??? 
     65           @type type: string 
     66           @param type: ??? 
     67           @return: None""" 
     68        cursor = self.engine.getCursor() 
     69        cursor_type = fife.CURSOR_IMAGE 
     70        img_pool = self.engine.getImagePool() 
     71        if(mc_type == "target"): 
     72            target_cursor_id = img_pool.addResourceFromFile(image)   
     73            dummy_cursor_id = img_pool.addResourceFromFile(dummy_image) 
     74            cursor.set(cursor_type, dummy_cursor_id) 
     75            cursor.setDrag(cursor_type, target_cursor_id, -16, -16) 
     76        else: 
     77            cursor_type = fife.CURSOR_IMAGE 
     78            zero_cursor_id = img_pool.addResourceFromFile(image) 
     79            cursor.set(cursor_type, zero_cursor_id) 
     80            cursor.setDrag(cursor_type, zero_cursor_id) 
    5681 
     82    def resetMouseCursor(self): 
     83        """Reset cursor to default image. 
     84           @return: None""" 
     85        image = self.model.settings.get("PARPG", "CursorDefault") 
     86        self.setMouseCursor(image, image) 
     87         
     88    def onStop(self): 
     89        """Called when the controller is removed from the list""" 
     90        pass 
     91         
     92    def pump(self): 
     93        """This method gets called every frame""" 
     94        pass 
     95     
  • trunk/game/scripts/gamemodel.py

    r643 r648  
    335335        """ Pause/Unpause the game 
    336336        @return: nothing""" 
    337  
    338         self.active_map.pause(paused) 
     337        if self.active_map: 
     338            self.active_map.pause(paused) 
    339339     
    340340    def togglePause(self): 
  • trunk/game/scripts/gamescenecontroller.py

    r642 r648  
    9797                                                                  "*.ogg"))) 
    9898                self.view.sounds.playMusic(music_file)  
    99  
     99        self.initHud() 
     100                 
    100101 
    101102    def initHud(self): 
     
    162163            self.model.active_map.centerCameraOnPlayer()  
    163164     
    164     def setMouseCursor(self, image, dummy_image, mc_type="native"):  
    165         """Set the mouse cursor to an image. 
    166            @type image: string 
    167            @param image: The image you want to set the cursor to 
    168            @type dummy_image: string 
    169            @param dummy_image: ??? 
    170            @type type: string 
    171            @param type: ??? 
    172            @return: None""" 
    173         cursor = self.engine.getCursor() 
    174         cursor_type = fife.CURSOR_IMAGE 
    175         img_pool = self.engine.getImagePool() 
    176         if(mc_type == "target"): 
    177             target_cursor_id = img_pool.addResourceFromFile(image)   
    178             dummy_cursor_id = img_pool.addResourceFromFile(dummy_image) 
    179             cursor.set(cursor_type, dummy_cursor_id) 
    180             cursor.setDrag(cursor_type, target_cursor_id, -16, -16) 
    181         else: 
    182             cursor_type = fife.CURSOR_IMAGE 
    183             zero_cursor_id = img_pool.addResourceFromFile(image) 
    184             cursor.set(cursor_type, zero_cursor_id) 
    185             cursor.setDrag(cursor_type, zero_cursor_id) 
    186  
    187     def resetMouseCursor(self): 
    188         """Reset cursor to default image. 
    189            @return: None""" 
    190         image = self.model.settings.get("PARPG", "CursorDefault") 
    191         self.setMouseCursor(image, image) 
    192          
    193165    def mouseReleased(self, evt): 
    194166        """If a mouse button is released, fife calls this routine. 
  • trunk/game/scripts/gamesceneview.py

    r620 r648  
    2323    """GameSceneView is responsible for drawing the scene""" 
    2424    def __init__(self, engine, model): 
    25         """Constructor for engine 
     25        """Constructor for GameSceneView 
    2626           @param engine: A fife.Engine instance 
    2727           @type engine: fife.Engine 
  • trunk/game/scripts/gui/hud.py

    r642 r648  
    4242               quitGame: called when the user clicks on Quit 
    4343           @return: None""" 
    44         pychan.init(controller.engine, debug = True) 
    4544 
    4645        # TODO: perhaps this should not be hard-coded here 
     
    6766         
    6867        self.actions_box = self.hud.findChild(name="actionsBox") 
    69         #self.actions_text = "" 
    7068        self.menu_displayed = False 
    7169        self.inventory_storage = None 
     
    201199        """Initalize the main menu. 
    202200           @return: None""" 
    203         self.main_menu = pychan.loadXML("gui/hud_main_menu.xml") 
     201        self.main_menu = pychan.loadXML("gui/hud_pause_menu.xml") 
    204202        self.menu_events = {"resumeButton":self.hideMenu,  
    205203                            "optionsButton":self.settings.onOptionsPress, 
     
    312310        load_browser = FileBrowser(self.engine, 
    313311                                   self.load_game_callback, 
    314                                    self.loadsave_close, 
     312                                   close_callback = self.loadsave_close, 
    315313                                   save_file=False, 
    316314                                   gui_xml_path='gui/loadbrowser.xml', 
  • trunk/game/scripts/gui/popups.py

    r583 r648  
    3131           @return: None""" 
    3232        self.engine = engine 
    33         pychan.init(self.engine, debug=True) 
    3433 
    3534        self.examine_window = pychan.widgets.\ 
  • trunk/game/scripts/parpg.py

    r632 r648  
    2121from fife.extensions.basicapplication import ApplicationBase 
    2222 
    23 from scripts import gamemodel 
    24 from scripts import gamesceneview 
     23from scripts.gamemodel import GameModel 
     24from scripts.mainmenuview import MainMenuView 
    2525from scripts import console 
    26 from scripts import gamescenecontroller 
     26from scripts.mainmenucontroller import MainMenuController 
    2727from scripts.common.listeners.event_listener import EventListener 
    2828from scripts.common.listeners.key_listener import KeyListener 
     
    5555    def __init__(self, event_listener, engine, view, model): 
    5656        """Initialize the instance. 
    57            @type engine: fife.GameModel 
     57           @type engine: fife.engine 
    5858           @param engine: ??? 
    5959           @type view: viewbase.ViewBase 
    6060           @param view: View that draws the current state 
    61            @type model: script.GameModel 
     61           @type model: GameModel 
    6262           @param model: The game model""" 
    6363        KeyListener.__init__(self, event_listener) 
     
    111111           @return: None""" 
    112112        super(PARPGApplication, self).__init__(setting) 
     113        pychan.init(self.engine, debug = True) 
    113114        #self.engine.getModel(self) 
    114         self.model = gamemodel.GameModel(self.engine, setting) 
     115        self.model = GameModel(self.engine, setting) 
    115116        self.model.maps_file = self._setting.get("PARPG", "MapsFile") 
    116117        self.model.readMapFiles() 
     
    126127                                                           "DialoguesDirectory") 
    127128        self.model.getDialogues() 
    128         self.view = gamesceneview.GameSceneView(self.engine, self.model) 
     129        self.view = MainMenuView(self.engine, self.model) 
    129130        self.event_listener = EventListener(self.engine) 
    130131        self.controllers = [] 
    131         controller = gamescenecontroller.GameSceneController(self.engine,  
     132        controller = MainMenuController(self.engine,  
    132133                                                        self.view,  
    133134                                                        self.model, 
    134135                                                        self) 
    135         controller.initHud() 
     136        #controller.initHud() 
    136137        self.controllers.append(controller) 
    137138        self.listener = ApplicationListener(self.event_listener, 
     
    139140                                            self.view,  
    140141                                            self.model) 
    141         start_map = self._setting.get("PARPG", "Map") 
    142         self.model.changeMap(start_map) 
    143         pychan.init(self.engine, debug = True) 
     142        #start_map = self._setting.get("PARPG", "Map") 
     143        #self.model.changeMap(start_map) 
    144144 
    145145    def createListener(self): 
     
    150150     
    151151    def pushController(self, controller): 
    152         """Adds a controller to the list to be the current active one""" 
     152        """Adds a controller to the list to be the current active one.""" 
    153153        self.controllers[-1].pause(True) 
    154154        self.controllers.append(controller) 
     
    160160            ret_controller = self.controllers.pop() 
    161161            self.controllers[-1].pause(False) 
     162        ret_controller.onStop() 
    162163        return ret_controller 
    163164     
    164165    def switchController(self, controller): 
    165166        """Clears the controller list and adds a controller to be the current active one""" 
     167        for old_controller in self.controllers: 
     168            old_controller.onStop() 
    166169        self.controllers = [] 
    167170        self.controllers.append(controller) 
Note: See TracChangeset for help on using the changeset viewer.