def __init__(self, windows): super(SingleplayerMenu, self).__init__(windows) self._mode = None self._gui = load_uh_widget('singleplayermenu.xml') self._gui.mapEvents({ 'cancel': self._windows.close, 'okay': self.act, 'scenario': Callback(self._select_mode, 'scenario'), 'random': Callback(self._select_mode, 'random'), 'free_maps': Callback(self._select_mode, 'free_maps') }) self._playerdata = PlayerDataSelection() self._aidata = AIDataSelection() self._gui.findChild(name="playerdataselectioncontainer").addChild( self._playerdata.get_widget()) self._gui.findChild(name="aidataselectioncontainer").addChild( self._aidata.get_widget())
def show_single(self, show='scenario'): # show scenarios to highlight tutorials """ @param show: string, which type of games to show """ # save player name before removing playerdata container self._save_player_name() self.hide() # start with default single player settings self.widgets.reload('singleplayermenu') self._switch_current_widget('singleplayermenu', center=True) self.active_right_side = None for mode in ('random', 'scenario', 'free_maps'): self.widgets.reload('sp_%s' % mode) right_side = self.widgets['sp_%s' % mode] self.current.findChild(name="right_side_box").addChild(right_side) right_side.parent.hideChild(right_side) # create and add permanent left side widgets self.current.playerdata = PlayerDataSelection(self.current, self.widgets) self.current.aidata = AIDataSelection(self.current, self.widgets) self.map_preview = MapPreview(lambda: self.current) self._select_single(show)