Add accessors for game core options to OECorePlugin

This commit is contained in:
J-rg
2023-02-24 17:43:19 +01:00
parent f5fdbb504f
commit 233e8daeb7
+61 -4
View File
@@ -108,16 +108,15 @@ public class OECorePlugin: OEPlugin {
return infoDictionary[OEGameCoreSystemIdentifiersKey] as? [String] ?? []
}
public var coreOptions: [String: Any] {
return infoDictionary[OEGameCoreOptionsKey] as? [String: Any] ?? [:]
public var coreOptions: [String: [String: Any]] {
return infoDictionary[OEGameCoreOptionsKey] as? [String: [String: Any]] ?? [:]
}
public var requiredFiles: [[String: Any]] {
var allRequiredFiles: [[String: Any]] = []
for value in coreOptions.values {
if let resultDict = value as? [String: Any],
let object = resultDict[OEGameCoreRequiredFilesKey] as? [[String: Any]] {
if let object = value[OEGameCoreRequiredFilesKey] as? [[String: Any]] {
allRequiredFiles.append(contentsOf: object)
}
}
@@ -216,3 +215,61 @@ public class OECorePlugin: OEPlugin {
}
}
}
public extension OECorePlugin {
func requiredFiles(forSystemIdentifier systemIdentifier: String) -> [[String: Any]]? {
let options = coreOptions[systemIdentifier]
return options?[OEGameCoreRequiredFilesKey] as? [[String: Any]] ?? nil
}
func requiresFiles(forSystemIdentifier systemIdentifier: String) -> Bool {
let options = coreOptions[systemIdentifier]
return options?[OEGameCoreRequiresFilesKey] as? Bool ?? false
}
func supportsCheatCode(forSystemIdentifier systemIdentifier: String) -> Bool {
let options = coreOptions[systemIdentifier]
return options?[OEGameCoreSupportsCheatCodeKey] as? Bool ?? false
}
func hasGlitches(forSystemIdentifier systemIdentifier: String) -> Bool {
let options = coreOptions[systemIdentifier]
return options?[OEGameCoreHasGlitchesKey] as? Bool ?? false
}
func saveStatesNotSupported(forSystemIdentifier systemIdentifier: String) -> Bool {
let options = coreOptions[systemIdentifier]
return options?[OEGameCoreSaveStatesNotSupportedKey] as? Bool ?? false
}
func supportsMultipleDiscs(forSystemIdentifier systemIdentifier: String) -> Bool {
let options = coreOptions[systemIdentifier]
return options?[OEGameCoreSupportsMultipleDiscsKey] as? Bool ?? false
}
func supportsRewinding(forSystemIdentifier systemIdentifier: String) -> Bool {
let options = coreOptions[systemIdentifier]
return options?[OEGameCoreSupportsRewindingKey] as? Bool ?? false
}
func supportsFileInsertion(forSystemIdentifier systemIdentifier: String) -> Bool {
let options = coreOptions[systemIdentifier]
return options?[OEGameCoreSupportsFileInsertionKey] as? Bool ?? false
}
func supportsDisplayModeChange(forSystemIdentifier systemIdentifier: String) -> Bool {
let options = coreOptions[systemIdentifier]
return options?[OEGameCoreSupportsDisplayModeChangeKey] as? Bool ?? false
}
func rewindInterval(forSystemIdentifier systemIdentifier: String) -> Int {
let options = coreOptions[systemIdentifier]
return options?[OEGameCoreRewindIntervalKey] as? Int ?? 0
}
func rewindBufferSeconds(forSystemIdentifier systemIdentifier: String) -> Int {
let options = coreOptions[systemIdentifier]
return options?[OEGameCoreRewindBufferSecondsKey] as? Int ?? 0
}
}