def setPlaybackSpeedIdx(self, value): if self.isTimeWarpInProgress: return else: self.__savedPlaybackSpeedIdx = self.__playbackSpeedIdx self.__playbackSpeedIdx = value newSpeed = self.__playbackSpeedModifiers[self.__playbackSpeedIdx] self.__enableInGameEffects(0.0 < newSpeed < 8.0) g_replayEvents.onMuteSound(newSpeed == 0.0) player = BigWorld.player() if newSpeed != self.__replayCtrl.playbackSpeed: if newSpeed == 0: if player.gunRotator is not None: self.__gunWasLockedBeforePause = player.gunRotator._VehicleGunRotator__isLocked player.gunRotator.lock(True) self.__showInfoMessage('replayPaused') isPaused = True else: if player.gunRotator is not None: player.gunRotator.lock(self.__gunWasLockedBeforePause) newSpeedStr = self.__playbackSpeedModifiersStr[self.__playbackSpeedIdx] self.__showInfoMessage('replaySpeedChange', {'speed': newSpeedStr}) isPaused = False self.__replayCtrl.playbackSpeed = newSpeed g_replayEvents.onPause(isPaused) return
def __timeWarp(self, time): if not self.isPlaying or not self.__enableTimeWarp: return g_replayEvents.onTimeWarpStart() BigWorld.wg_enableGUIBackground(True, False) if self.__isFinished: self.setPlaybackSpeedIdx(self.__savedPlaybackSpeedIdx) self.__isFinished = False self.__warpTime = time self.__rewind = time < self.__replayCtrl.getTimeMark( REPLAY_TIME_MARK_CURRENT_TIME) AreaDestructibles.g_destructiblesManager.onBeforeReplayTimeWarp( self.__rewind) self.__updateGunOnTimeWarp = True EffectsList.EffectsListPlayer.clear() if self.__rewind: playerControlMode = BigWorld.player().inputHandler.ctrl self.__wasVideoBeforeRewind = _isVideoCameraCtrl(playerControlMode) self.__videoCameraMatrix.set(BigWorld.camera().matrix) BigWorld.PyGroundEffectManager().stopAll() g_replayEvents.onMuteSound(True) self.__enableInGameEffects(False) if self.__rewind: self.gameplay.postStateEvent(ReplayEventID.REPLAY_REWIND) if not self.__replayCtrl.beginTimeWarp(time): self.__cleanupAfterTimeWarp() return self.__rewind = False
def setPlaybackSpeedIdx(self, value): if self.isTimeWarpInProgress: return else: self.__savedPlaybackSpeedIdx = self.__playbackSpeedIdx self.__playbackSpeedIdx = value newSpeed = self.__playbackSpeedModifiers[self.__playbackSpeedIdx] self.__enableInGameEffects(0.0 < newSpeed < 8.0) g_replayEvents.onMuteSound(newSpeed == 0.0) player = BigWorld.player() if newSpeed != self.__replayCtrl.playbackSpeed: if newSpeed == 0: if player.gunRotator is not None: self.__gunWasLockedBeforePause = player.gunRotator._VehicleGunRotator__isLocked player.gunRotator.lock(True) self.__showInfoMessage('replayPaused') isPaused = True else: if player.gunRotator is not None: player.gunRotator.lock(self.__gunWasLockedBeforePause) newSpeedStr = self.__playbackSpeedModifiersStr[ self.__playbackSpeedIdx] self.__showInfoMessage('replaySpeedChange', {'speed': newSpeedStr}) isPaused = False self.__replayCtrl.playbackSpeed = newSpeed g_replayEvents.onPause(isPaused) return
def __timeWarp(self, time): if not self.isPlaying or not self.__enableTimeWarp: return else: BigWorld.wg_enableGUIBackground(True, False) if self.__isFinished: self.setPlaybackSpeedIdx(self.__savedPlaybackSpeedIdx) self.__isFinished = False self.__warpTime = time self.__rewind = time < self.__replayCtrl.getTimeMark(REPLAY_TIME_MARK_CURRENT_TIME) AreaDestructibles.g_destructiblesManager.onBeforeReplayTimeWarp(self.__rewind) self.__updateGunOnTimeWarp = True EffectsList.EffectsListPlayer.clear() if self.__rewind: playerControlMode = BigWorld.player().inputHandler.ctrl self.__wasVideoBeforeRewind = _isVideoCameraCtrl(playerControlMode) self.__videoCameraMatrix.set(BigWorld.camera().matrix) g_replayEvents.onMuteSound(True) BigWorld.PyGroundEffectManager().stopAll() self.__enableInGameEffects(False) if not self.__replayCtrl.beginTimeWarp(time): self.__cleanupAfterTimeWarp() return if self.__timeWarpCleanupCb is None: self.__timeWarpCleanupCb = BigWorld.callback(0.0, self.__cleanupAfterTimeWarp) g_replayEvents.onTimeWarpStart() g_replayEvents.onMuteSound(True) return
def __cleanupAfterTimeWarp(self): BigWorld.wg_clearDecals() if self.__replayCtrl.isTimeWarpInProgress: self.__enableInGameEffects(False) self.__timeWarpCleanupCb = BigWorld.callback( 0, self.__cleanupAfterTimeWarp) else: if self.__timeWarpCleanupCb is not None: BigWorld.cancelCallback(self.__timeWarpCleanupCb) self.__timeWarpCleanupCb = None self.__warpTime = -1.0 if not self.__rewind: BigWorld.wg_enableGUIBackground(False, False) self.__enableInGameEffects(0.0 < self.__playbackSpeedModifiers[ self.__playbackSpeedIdx] < 8.0) g_replayEvents.onMuteSound( not 0.0 < self.__playbackSpeedModifiers[ self.__playbackSpeedIdx] < 8.0) if self.__wasVideoBeforeRewind: BigWorld.player().inputHandler.onControlModeChanged( 'video', prevModeName='arcade', camMatrix=self.__videoCameraMatrix) self.__wasVideoBeforeRewind = False g_replayEvents.onTimeWarpFinish()
def setPlaybackSpeedIdx(self, value, arenaLoaded=False): if self.isTimeWarpInProgress and not arenaLoaded: return self.__savedPlaybackSpeedIdx = self.__playbackSpeedIdx self.__playbackSpeedIdx = value newSpeed = self.__playbackSpeedModifiers[self.__playbackSpeedIdx] self.__enableInGameEffects(0.0 < newSpeed < 8.0 and not self.__forceEffectDisable) g_replayEvents.onMuteSound(newSpeed == 0.0 or self.__forceEffectDisable) player = BigWorld.player() if newSpeed != self.__replayCtrl.playbackSpeed: if newSpeed == 0: self.__gunWasLockedBeforePause = player.gunRotator._VehicleGunRotator__isLocked player.gunRotator.lock(True) self.__showInfoMessage('replayPaused') g_replayEvents.onPause(True) else: player.gunRotator.lock(self.__gunWasLockedBeforePause) newSpeedStr = self.__playbackSpeedModifiersStr[ self.__playbackSpeedIdx] self.__showInfoMessage('replaySpeedChange', {'speed': newSpeedStr}) g_replayEvents.onPause(False) self.__replayCtrl.playbackSpeed = newSpeed if self.__replayCtrl.playbackSpeed == 0: BigWorld.callback(0, self.__updateAim)
def __cleanupAfterTimeWarp(self): self.__warpTime = -1.0 self.__enableInGameEffects( 0.0 < self.__playbackSpeedModifiers[self.__playbackSpeedIdx] < 8.0) mute = not 0.0 < self.__playbackSpeedModifiers[ self.__playbackSpeedIdx] < 8.0 g_replayEvents.onMuteSound(mute) if self.__wasVideoBeforeRewind: BigWorld.player().inputHandler.onControlModeChanged( 'video', prevModeName='arcade', camMatrix=self.__videoCameraMatrix) self.__wasVideoBeforeRewind = False g_replayEvents.onTimeWarpFinish()
def __cleanupAfterTimeWarp(self): BigWorld.wg_clearDecals() if self.__replayCtrl.isTimeWarpInProgress: self.__enableInGameEffects(False) self.__timeWarpCleanupCb = BigWorld.callback(0.0, self.__cleanupAfterTimeWarp) else: if self.__timeWarpCleanupCb is not None: BigWorld.cancelCallback(self.__timeWarpCleanupCb) self.__timeWarpCleanupCb = None self.__warpTime = -1.0 BigWorld.wg_enableGUIBackground(False, False) self.__enableInGameEffects(0.0 < self.__playbackSpeedModifiers[self.__playbackSpeedIdx] < 8.0) g_replayEvents.onMuteSound(not 0.0 < self.__playbackSpeedModifiers[self.__playbackSpeedIdx] < 8.0) if self.__wasVideoBeforeRewind: BigWorld.player().inputHandler.onControlModeChanged('video', prevModeName='arcade', camMatrix=self.__videoCameraMatrix) self.__wasVideoBeforeRewind = False g_replayEvents.onTimeWarpFinish() return
def setPlaybackSpeedIdx(self, value, arenaLoaded = False): if self.isTimeWarpInProgress and not arenaLoaded: return self.__savedPlaybackSpeedIdx = self.__playbackSpeedIdx self.__playbackSpeedIdx = value newSpeed = self.__playbackSpeedModifiers[self.__playbackSpeedIdx] self.__enableInGameEffects(0.0 < newSpeed < 8.0 and not self.__forceEffectDisable) g_replayEvents.onMuteSound(newSpeed == 0.0 or self.__forceEffectDisable) player = BigWorld.player() if newSpeed != self.__replayCtrl.playbackSpeed: if newSpeed == 0: self.__gunWasLockedBeforePause = player.gunRotator._VehicleGunRotator__isLocked player.gunRotator.lock(True) self.__showInfoMessage('replayPaused') g_replayEvents.onPause(True) else: player.gunRotator.lock(self.__gunWasLockedBeforePause) newSpeedStr = self.__playbackSpeedModifiersStr[self.__playbackSpeedIdx] self.__showInfoMessage('replaySpeedChange', {'speed': newSpeedStr}) g_replayEvents.onPause(False) self.__replayCtrl.playbackSpeed = newSpeed if self.__replayCtrl.playbackSpeed == 0: BigWorld.callback(0, self.__updateAim)
def __onSettingsChanging(self, diff): newSpeed = self.__playbackSpeedModifiers[self.__playbackSpeedIdx] newQuiet = newSpeed == 0 or newSpeed > 4.0 g_replayEvents.onMuteSound(newQuiet)