46 lines
1.2 KiB
Swift
46 lines
1.2 KiB
Swift
//
|
|
// SaveStateMigrationPolicy.swift
|
|
// Delta
|
|
//
|
|
// Created by Riley Testut on 9/28/17.
|
|
// Copyright © 2017 Riley Testut. All rights reserved.
|
|
//
|
|
|
|
import UIKit
|
|
|
|
import DeltaCore
|
|
|
|
import struct DSDeltaCore.DS
|
|
|
|
@objc(SaveStateToSaveStateMigrationPolicy)
|
|
class SaveStateToSaveStateMigrationPolicy: NSEntityMigrationPolicy
|
|
{
|
|
@objc(migrateSaveStateType:)
|
|
func migrateSaveStateType(_ rawValue: NSNumber) -> NSNumber
|
|
{
|
|
switch rawValue.intValue
|
|
{
|
|
case 0: return NSNumber(value: SaveStateType.auto.rawValue)
|
|
case 1: return NSNumber(value: SaveStateType.general.rawValue)
|
|
case 2: return NSNumber(value: SaveStateType.locked.rawValue)
|
|
default: return rawValue
|
|
}
|
|
}
|
|
}
|
|
|
|
// Delta5 to Delta6
|
|
extension SaveStateToSaveStateMigrationPolicy
|
|
{
|
|
@objc(defaultCoreIdentifierForGameType:)
|
|
func defaultCoreIdentifier(for gameType: GameType) -> String?
|
|
{
|
|
guard let system = System(gameType: gameType) else { return nil }
|
|
|
|
switch system
|
|
{
|
|
case .ds: return DS.core.identifier // Assume any existing save state is from DeSmuME.
|
|
default: return system.deltaCore.identifier
|
|
}
|
|
}
|
|
}
|