Changeset 693


Ignore:
Timestamp:
12/25/10 04:05:05 (9 years ago)
Author:
technomage
Message:

Patch Technomage

  • Added a placeholder character creation screen accessible from the

main menu via the "New Game" button and an in-game character screen
using the same Pychan XML script.

Location:
trunk/game
Files:
3 added
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/game/scripts/gamescenecontroller.py

    r671 r693  
    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/>. 
    17 """This file contains the GameSceneController that handles  
    18 input when the game is exploring a scene""" 
     17"""This file contains the GameSceneController that handles input when the game 
     18  is exploring a scene""" 
    1919 
    2020 
     
    140140            # F10 shows/hides the console 
    141141            self.engine.getGuiManager().getConsole().toggleShowHide() 
     142        if(key_val == key.C): 
     143            # C opens and closes the character screen. 
     144            self.view.hud.toggleCharacterScreen() 
    142145        if(key_val == key.I): 
    143146            # I opens and closes the inventory 
  • trunk/game/scripts/gui/hud.py

    r653 r693  
    5252        self.settings = settings 
    5353        self.inventory = None 
     54        self.character_screen = None 
    5455 
    5556        self.save_game_callback = callbacks['saveGame'] 
     
    161162            self.inventory.inventory_storage = self.inventory_storage 
    162163        self.refreshReadyImages() 
    163  
     164     
     165    def initializeCharacterScreen(self): 
     166        """Initialize the character screen.""" 
     167        # TODO Technomage 2010-12-24:  
     168        if not self.character_screen: 
     169            self.character_screen = pychan.loadXML('gui/character_screen.xml') 
     170         
     171     
    164172    def initializeContextMenu(self): 
    165173        """Initialize the Context Menu 
     
    355363            self.initializeInventory() 
    356364        self.inventory.toggleInventory(toggle_image) 
    357  
     365     
     366    def toggleCharacterScreen(self): 
     367        if not self.character_screen: 
     368            self.initializeCharacterScreen() 
     369        if not self.character_screen.isVisible(): 
     370            self.character_screen.show() 
     371        else: 
     372            self.character_screen.hide() 
     373     
    358374    def refreshReadyImages(self): 
    359375        """Make the Ready slot images on the HUD be the same as those  
  • trunk/game/scripts/mainmenucontroller.py

    r659 r693  
    1717 
    1818from controllerbase import ControllerBase 
     19from charactercreationview import CharacterCreationView 
     20from charactercreationcontroller import CharacterCreationController 
    1921from gamescenecontroller import GameSceneController 
    2022from gamesceneview import GameSceneView 
     
    3032    """Controller for handling the main menu state""" 
    3133 
    32     def __init__(self, 
    33                  engine,  
    34                  view,  
    35                  model,  
    36                  application): 
     34    def __init__(self, engine, view, model, application): 
    3735        """Constructor""" 
    38         ControllerBase.__init__(self, 
    39                                 engine, 
    40                                 view, 
    41                                 model, 
    42                                 application) 
     36        ControllerBase.__init__(self, engine, view, model, application) 
    4337     
    4438        #this can be helpful for IDEs code analysis 
     
    5549        self.view.showMenu() 
    5650        self.resetMouseCursor() 
    57             
     51     
    5852    def newGame(self): 
    59         """Starts a new game""" 
    60         view = GameSceneView(self.engine, 
    61                              self.model) 
    62         controller = GameSceneController(self.engine, 
    63                                          view, 
    64                                          self.model, 
    65                                          self.application)         
     53        """Start a new game and switch to the character creation controller.""" 
     54        view = CharacterCreationView(self.engine, self.model) 
     55        controller = CharacterCreationController(self.engine, view, self.model, 
     56                                                 self.application) 
    6657        self.application.view = view 
    6758        self.application.switchController(controller) 
    68         start_map = self.model.settings.get("PARPG", "Map") 
    69         self.model.changeMap(start_map) 
     59     
     60#    def newGame(self): 
     61#        """Starts a new game""" 
     62#        view = GameSceneView(self.engine, 
     63#                             self.model) 
     64#        controller = GameSceneController(self.engine, 
     65#                                         view, 
     66#                                         self.model, 
     67#                                         self.application)         
     68#        self.application.view = view 
     69#        self.application.switchController(controller) 
     70#        start_map = self.model.settings.get("PARPG", "Map") 
     71#        self.model.changeMap(start_map) 
    7072 
    7173    def loadGame(self, *args, **kwargs): 
  • trunk/game/scripts/mainmenuview.py

    r656 r693  
    3737        self.quit_callback = None 
    3838        self.main_menu = None 
     39        self.character_screen = None 
    3940         
    4041    def showMenu(self): 
     
    5051    def initalizeMainMenu(self, new_game, load_game, quit_game): 
    5152        """Initialized the main menu and sets the callbacks""" 
     53        # Set a simple background to display the main screen. 
    5254        self.main_menu_background = pychan.loadXML("gui/main_menu_background.xml") 
     55         
     56        # Initialize the main menu screen. 
    5357        screen_mode = self.engine.getRenderBackend().getCurrentScreenMode() 
    5458        self.main_menu_background.width = screen_mode.getWidth() 
     
    6569        menu_events["quitButton"] = self.quitGame 
    6670        self.main_menu.mapEvents(menu_events) 
     71         
    6772        self.initializeQuitDialog() 
    6873     
    69          
    7074    def newGame(self): 
    7175        """Called when user request to start a new game. 
    7276           @return: None""" 
    7377        self.new_game_callback() 
    74              
     78     
    7579    def loadGame(self): 
    7680        """ Called when the user wants to load a game. 
Note: See TracChangeset for help on using the changeset viewer.