def _launch_core(self, options=(), game=RootGame.ANY): if self._is_running(): return LaunchState.ALREADY_RUNNING x, y = resolution_from_config() screen_mode = ('-window', '-width', str(x), '-height', str(y)) parameters = self.opts_default + options + screen_mode if game is RootGame.ANY: if have_registered_data(): pass # prefer quake else: parameters += self.opts_open_quartz elif game is RootGame.QUAKE: if have_registered_data(): pass # ok else: return LaunchState.NO_REGISTERED_DATA elif game is RootGame.OPEN_QUARTZ: parameters += self.opts_open_quartz else: raise TypeError(f'Invalid game name "{game}"') self._engine_wrapper = EngineWrapper(parameters, self._on_error) if not self._engine_wrapper.engine_found(): return LaunchState.NOT_FOUND self._engine_wrapper.start() return LaunchState.LAUNCHED
def install_data_handler(self, event): if have_registered_data(): Info(self, 'The registered data files are already installed.') else: Info(self, ("If you've bought Quake, please select the folder where the " "registered Quake data files are. They'll be copied to the " 'AudioQuake folder. Then the textures will be extracted, so ' 'you can use them in your own maps.')) incoming = pick_directory( self, "Select folder containing pak0.pak and pak1.pak") if incoming: incoming_pak0 = path.join(incoming, 'pak0.pak') incoming_pak1 = path.join(incoming, 'pak1.pak') if path.isfile(incoming_pak0) and path.isfile(incoming_pak1): try: progress = wx.ProgressDialog('Installation', '', parent=self, style=wx.PD_APP_MODAL | wx.PD_AUTO_HIDE) copy_paks_and_create_textures_wad( progress, incoming_pak0, incoming_pak1) Info(self, 'Installation complete.') finally: progress.Destroy() else: Error(self, ('One or both of the registered data files could ' 'not be found in the chosen directory.'))
def registered_check(): if not have_registered_data(): Error(None, ( 'You must have the registered version of Quake in order to run ' 'a server that uses custom maps.\n\n' + HOW_TO_INSTALL)) return False return True
def _launch_core(self, options=(), game=RootGame.ANY): if self._is_running(): return LaunchState.ALREADY_RUNNING screen_mode = ('-fullscreen',) if config.fullscreen() else ('-window',) xstr, ystr, _ = resolution_size_from_config() if xstr == DEFAULT_WIDTH and ystr == DEFAULT_HEIGHT: resolution = () else: resolution = ('-width', xstr, '-height', ystr) parameters = self.opts_default + options + screen_mode + resolution if game is RootGame.ANY: if have_registered_data(): pass # prefer quake else: parameters += self.opts_open_quartz elif game is RootGame.QUAKE: if have_registered_data(): pass # ok else: return LaunchState.NO_REGISTERED_DATA elif game is RootGame.OPEN_QUARTZ: parameters += self.opts_open_quartz else: raise TypeError(f'Invalid game name "{game}"') self._engine_wrapper = EngineWrapper(parameters, self._on_error) if not self._engine_wrapper.engine_found(): return LaunchState.NOT_FOUND self._engine_wrapper.start() return LaunchState.LAUNCHED