diff --git a/Delta/Emulation/EmulationViewController.swift b/Delta/Emulation/EmulationViewController.swift index 9d8ed33..819f3ce 100644 --- a/Delta/Emulation/EmulationViewController.swift +++ b/Delta/Emulation/EmulationViewController.swift @@ -154,11 +154,11 @@ class EmulationViewController: UIViewController // As a dirty workaround, we just use a weak reference, and force unwrap it if needed let saveStateItem = PauseItem(image: UIImage(named: "SmallPause")!, text: NSLocalizedString("Save State", comment: ""), action: { [weak self] _ in - pauseViewController.presentSaveStateViewController(delegate: self!) + pauseViewController.presentSaveStateViewControllerWithMode(.Saving, delegate: self!) }) let loadStateItem = PauseItem(image: UIImage(named: "SmallPause")!, text: NSLocalizedString("Load State", comment: ""), action: { [weak self] _ in - pauseViewController.presentSaveStateViewController(delegate: self!) + pauseViewController.presentSaveStateViewControllerWithMode(.Loading, delegate: self!) }) let cheatCodesItem = PauseItem(image: UIImage(named: "SmallPause")!, text: NSLocalizedString("Cheat Codes", comment: ""), action: dismissAction) diff --git a/Delta/Pause Menu/PauseViewController.swift b/Delta/Pause Menu/PauseViewController.swift index 047700e..5f12e4a 100644 --- a/Delta/Pause Menu/PauseViewController.swift +++ b/Delta/Pause Menu/PauseViewController.swift @@ -17,6 +17,7 @@ class PauseViewController: UIViewController, PauseInfoProvidable var pauseText: String? = nil private weak var saveStatesViewControllerDelegate: SaveStatesViewControllerDelegate? + private var saveStatesViewControllerMode = SaveStatesViewController.Mode.Saving /// UIViewController override var preferredContentSize: CGSize { @@ -88,6 +89,7 @@ extension PauseViewController case "saveState": let saveStatesViewController = segue.destinationViewController as! SaveStatesViewController saveStatesViewController.delegate = self.saveStatesViewControllerDelegate + saveStatesViewController.mode = self.saveStatesViewControllerMode default: break } @@ -101,8 +103,9 @@ extension PauseViewController self.performSegueWithIdentifier("unwindFromPauseMenu", sender: self) } - func presentSaveStateViewController(delegate delegate: SaveStatesViewControllerDelegate) + func presentSaveStateViewControllerWithMode(mode: SaveStatesViewController.Mode, delegate: SaveStatesViewControllerDelegate) { + self.saveStatesViewControllerMode = mode self.saveStatesViewControllerDelegate = delegate self.performSegueWithIdentifier("saveState", sender: self) diff --git a/Delta/Pause Menu/Save States/SaveStatesViewController.swift b/Delta/Pause Menu/Save States/SaveStatesViewController.swift index 4578c02..39dda0b 100644 --- a/Delta/Pause Menu/Save States/SaveStatesViewController.swift +++ b/Delta/Pause Menu/Save States/SaveStatesViewController.swift @@ -19,6 +19,15 @@ protocol SaveStatesViewControllerDelegate: class func saveStatesViewController(saveStatesViewController: SaveStatesViewController, loadSaveState saveState: SaveState) } +extension SaveStatesViewController +{ + enum Mode + { + case Saving + case Loading + } +} + class SaveStatesViewController: UICollectionViewController { weak var delegate: SaveStatesViewControllerDelegate! { @@ -27,6 +36,8 @@ class SaveStatesViewController: UICollectionViewController } } + var mode = Mode.Saving + private var backgroundView: RSTBackgroundView! private var prototypeCell = GridCollectionViewCell() @@ -60,7 +71,6 @@ extension SaveStatesViewController self.backgroundView.autoresizingMask = [.FlexibleWidth, .FlexibleHeight] self.backgroundView.textLabel.text = NSLocalizedString("No Save States", comment: "") self.backgroundView.textLabel.textColor = UIColor.whiteColor() - self.backgroundView.detailTextLabel.text = NSLocalizedString("You can create a new save state by pressing the + button in the top right.", comment: "") self.backgroundView.detailTextLabel.textColor = UIColor.whiteColor() self.view.insertSubview(self.backgroundView, atIndex: 0) @@ -72,6 +82,18 @@ extension SaveStatesViewController // We'll keep the same size for landscape orientation, which will allow more to fit collectionViewLayout.itemWidth = (portraitScreenWidth - (averageHorizontalInset * 3)) / 2 + switch self.mode + { + case .Saving: + self.title = NSLocalizedString("Save State", comment: "") + self.backgroundView.detailTextLabel.text = NSLocalizedString("You can create a new save state by pressing the + button in the top right.", comment: "") + + case .Loading: + self.title = NSLocalizedString("Load State", comment: "") + self.backgroundView.detailTextLabel.text = NSLocalizedString("You can create a new save state by pressing the Save State option in the pause menu.", comment: "") + self.navigationItem.rightBarButtonItem = nil + } + // Manually update prototype cell properties self.prototypeCellWidthConstraint = self.prototypeCell.contentView.widthAnchor.constraintEqualToConstant(collectionViewLayout.itemWidth) self.prototypeCellWidthConstraint.active = true