Adds mode property to SaveStatesViewController to switch between saving and loading save states
This commit is contained in:
parent
ee1e57f54b
commit
e08cc1c331
@ -154,11 +154,11 @@ class EmulationViewController: UIViewController
|
|||||||
// As a dirty workaround, we just use a weak reference, and force unwrap it if needed
|
// 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
|
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
|
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)
|
let cheatCodesItem = PauseItem(image: UIImage(named: "SmallPause")!, text: NSLocalizedString("Cheat Codes", comment: ""), action: dismissAction)
|
||||||
|
|||||||
@ -17,6 +17,7 @@ class PauseViewController: UIViewController, PauseInfoProvidable
|
|||||||
var pauseText: String? = nil
|
var pauseText: String? = nil
|
||||||
|
|
||||||
private weak var saveStatesViewControllerDelegate: SaveStatesViewControllerDelegate?
|
private weak var saveStatesViewControllerDelegate: SaveStatesViewControllerDelegate?
|
||||||
|
private var saveStatesViewControllerMode = SaveStatesViewController.Mode.Saving
|
||||||
|
|
||||||
/// UIViewController
|
/// UIViewController
|
||||||
override var preferredContentSize: CGSize {
|
override var preferredContentSize: CGSize {
|
||||||
@ -88,6 +89,7 @@ extension PauseViewController
|
|||||||
case "saveState":
|
case "saveState":
|
||||||
let saveStatesViewController = segue.destinationViewController as! SaveStatesViewController
|
let saveStatesViewController = segue.destinationViewController as! SaveStatesViewController
|
||||||
saveStatesViewController.delegate = self.saveStatesViewControllerDelegate
|
saveStatesViewController.delegate = self.saveStatesViewControllerDelegate
|
||||||
|
saveStatesViewController.mode = self.saveStatesViewControllerMode
|
||||||
|
|
||||||
default: break
|
default: break
|
||||||
}
|
}
|
||||||
@ -101,8 +103,9 @@ extension PauseViewController
|
|||||||
self.performSegueWithIdentifier("unwindFromPauseMenu", sender: self)
|
self.performSegueWithIdentifier("unwindFromPauseMenu", sender: self)
|
||||||
}
|
}
|
||||||
|
|
||||||
func presentSaveStateViewController(delegate delegate: SaveStatesViewControllerDelegate)
|
func presentSaveStateViewControllerWithMode(mode: SaveStatesViewController.Mode, delegate: SaveStatesViewControllerDelegate)
|
||||||
{
|
{
|
||||||
|
self.saveStatesViewControllerMode = mode
|
||||||
self.saveStatesViewControllerDelegate = delegate
|
self.saveStatesViewControllerDelegate = delegate
|
||||||
|
|
||||||
self.performSegueWithIdentifier("saveState", sender: self)
|
self.performSegueWithIdentifier("saveState", sender: self)
|
||||||
|
|||||||
@ -19,6 +19,15 @@ protocol SaveStatesViewControllerDelegate: class
|
|||||||
func saveStatesViewController(saveStatesViewController: SaveStatesViewController, loadSaveState saveState: SaveState)
|
func saveStatesViewController(saveStatesViewController: SaveStatesViewController, loadSaveState saveState: SaveState)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
extension SaveStatesViewController
|
||||||
|
{
|
||||||
|
enum Mode
|
||||||
|
{
|
||||||
|
case Saving
|
||||||
|
case Loading
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
class SaveStatesViewController: UICollectionViewController
|
class SaveStatesViewController: UICollectionViewController
|
||||||
{
|
{
|
||||||
weak var delegate: SaveStatesViewControllerDelegate! {
|
weak var delegate: SaveStatesViewControllerDelegate! {
|
||||||
@ -27,6 +36,8 @@ class SaveStatesViewController: UICollectionViewController
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var mode = Mode.Saving
|
||||||
|
|
||||||
private var backgroundView: RSTBackgroundView!
|
private var backgroundView: RSTBackgroundView!
|
||||||
|
|
||||||
private var prototypeCell = GridCollectionViewCell()
|
private var prototypeCell = GridCollectionViewCell()
|
||||||
@ -60,7 +71,6 @@ extension SaveStatesViewController
|
|||||||
self.backgroundView.autoresizingMask = [.FlexibleWidth, .FlexibleHeight]
|
self.backgroundView.autoresizingMask = [.FlexibleWidth, .FlexibleHeight]
|
||||||
self.backgroundView.textLabel.text = NSLocalizedString("No Save States", comment: "")
|
self.backgroundView.textLabel.text = NSLocalizedString("No Save States", comment: "")
|
||||||
self.backgroundView.textLabel.textColor = UIColor.whiteColor()
|
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.backgroundView.detailTextLabel.textColor = UIColor.whiteColor()
|
||||||
self.view.insertSubview(self.backgroundView, atIndex: 0)
|
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
|
// We'll keep the same size for landscape orientation, which will allow more to fit
|
||||||
collectionViewLayout.itemWidth = (portraitScreenWidth - (averageHorizontalInset * 3)) / 2
|
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
|
// Manually update prototype cell properties
|
||||||
self.prototypeCellWidthConstraint = self.prototypeCell.contentView.widthAnchor.constraintEqualToConstant(collectionViewLayout.itemWidth)
|
self.prototypeCellWidthConstraint = self.prototypeCell.contentView.widthAnchor.constraintEqualToConstant(collectionViewLayout.itemWidth)
|
||||||
self.prototypeCellWidthConstraint.active = true
|
self.prototypeCellWidthConstraint.active = true
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user