diff --git a/Delta/Emulation/GameViewController.swift b/Delta/Emulation/GameViewController.swift index 7730610..73eb954 100644 --- a/Delta/Emulation/GameViewController.swift +++ b/Delta/Emulation/GameViewController.swift @@ -129,6 +129,13 @@ extension GameViewController pauseViewController.emulatorCore = self.emulatorCore pauseViewController.saveStatesViewControllerDelegate = self pauseViewController.cheatsViewControllerDelegate = self + + pauseViewController.fastForwardItem?.selected = (self.emulatorCore?.rate != self.emulatorCore?.configuration.supportedRates.lowerBound) + pauseViewController.fastForwardItem?.action = { [unowned self] item in + guard let emulatorCore = self.emulatorCore else { return } + emulatorCore.rate = item.selected ? emulatorCore.configuration.supportedRates.upperBound : emulatorCore.configuration.supportedRates.lowerBound + } + self.pauseViewController = pauseViewController } diff --git a/Delta/Pause Menu/PauseItem.swift b/Delta/Pause Menu/PauseItem.swift index 6cc0a86..c86986b 100644 --- a/Delta/Pause Menu/PauseItem.swift +++ b/Delta/Pause Menu/PauseItem.swift @@ -10,9 +10,9 @@ import UIKit struct PauseItem: Equatable { - let image: UIImage - let text: String - let action: ((PauseItem) -> Void) + var image: UIImage + var text: String + var action: ((PauseItem) -> Void) var selected = false diff --git a/Delta/Pause Menu/PauseViewController.swift b/Delta/Pause Menu/PauseViewController.swift index c35ea24..fe7d023 100644 --- a/Delta/Pause Menu/PauseViewController.swift +++ b/Delta/Pause Menu/PauseViewController.swift @@ -19,15 +19,15 @@ class PauseViewController: UIViewController, PauseInfoProviding } var pauseItems: [PauseItem] { - return [self.saveStateItem, self.loadStateItem, self.cheatCodesItem, self.sustainButtonsItem, self.fastForwardItem].flatMap { $0 } + return [self.saveStateItem, self.loadStateItem, self.cheatCodesItem, self.fastForwardItem, self.sustainButtonsItem].flatMap { $0 } } /// Pause Items - private(set) var saveStateItem: PauseItem? - private(set) var loadStateItem: PauseItem? - private(set) var cheatCodesItem: PauseItem? - private(set) var sustainButtonsItem: PauseItem? - private(set) var fastForwardItem: PauseItem? + var saveStateItem: PauseItem? + var loadStateItem: PauseItem? + var cheatCodesItem: PauseItem? + var fastForwardItem: PauseItem? + var sustainButtonsItem: PauseItem? /// PauseInfoProviding var pauseText: String? @@ -161,7 +161,7 @@ private extension PauseViewController self.performSegue(withIdentifier: "cheats", sender: self) }) - self.sustainButtonsItem = PauseItem(image: UIImage(named: "SmallPause")!, text: NSLocalizedString("Sustain Buttons", comment: ""), action: { _ in }) self.fastForwardItem = PauseItem(image: UIImage(named: "FastForward")!, text: NSLocalizedString("Fast Forward", comment: ""), action: { _ in }) + self.sustainButtonsItem = PauseItem(image: UIImage(named: "SmallPause")!, text: NSLocalizedString("Sustain Buttons", comment: ""), action: { _ in }) } }