diff --git a/Cores/DSDeltaCore b/Cores/DSDeltaCore index 12f1432..6c84366 160000 --- a/Cores/DSDeltaCore +++ b/Cores/DSDeltaCore @@ -1 +1 @@ -Subproject commit 12f1432f2aa48ed24f324d31b405fe4e5c73d6f6 +Subproject commit 6c84366b3a76045782905293c9616e33f5da1a35 diff --git a/Cores/DeltaCore b/Cores/DeltaCore index c40ae8b..c9ac6b5 160000 --- a/Cores/DeltaCore +++ b/Cores/DeltaCore @@ -1 +1 @@ -Subproject commit c40ae8b069433159627903b43b4b4154d9a03ea2 +Subproject commit c9ac6b5f4f50e9ae4b5fa7f8b420f240003df127 diff --git a/Cores/GBADeltaCore b/Cores/GBADeltaCore index 27b9698..8ea36df 160000 --- a/Cores/GBADeltaCore +++ b/Cores/GBADeltaCore @@ -1 +1 @@ -Subproject commit 27b969810857d8b62436fec612291177d909e087 +Subproject commit 8ea36dff87bc1f787765de45fa8ccbcc1256a0e3 diff --git a/Cores/GBCDeltaCore b/Cores/GBCDeltaCore index a577511..81f8ffb 160000 --- a/Cores/GBCDeltaCore +++ b/Cores/GBCDeltaCore @@ -1 +1 @@ -Subproject commit a57751156ba7df394903893ff8c37f08024d5500 +Subproject commit 81f8ffba56823637706689fb5c6bc634ee4d9b32 diff --git a/Cores/GPGXDeltaCore b/Cores/GPGXDeltaCore index e3a957f..18c5958 160000 --- a/Cores/GPGXDeltaCore +++ b/Cores/GPGXDeltaCore @@ -1 +1 @@ -Subproject commit e3a957f4e841694f90cd6f64f421130dfa6e9727 +Subproject commit 18c595887a12ef23e0d54c63f83c91c99e7f4827 diff --git a/Cores/MelonDSDeltaCore b/Cores/MelonDSDeltaCore index 694b73f..b0eeb87 160000 --- a/Cores/MelonDSDeltaCore +++ b/Cores/MelonDSDeltaCore @@ -1 +1 @@ -Subproject commit 694b73f87ce9fb83d37eaeea862bcf79e0cfc080 +Subproject commit b0eeb87c41cf5d78182879a10a51f7c147a60ef7 diff --git a/Cores/N64DeltaCore b/Cores/N64DeltaCore index d669530..c8816c5 160000 --- a/Cores/N64DeltaCore +++ b/Cores/N64DeltaCore @@ -1 +1 @@ -Subproject commit d66953070113b961adb55b44ee6d20f00947b6fd +Subproject commit c8816c51f82210a9c4cc62b1a7c53fa21bc705ee diff --git a/Cores/NESDeltaCore b/Cores/NESDeltaCore index 5ffdc3b..bc3e017 160000 --- a/Cores/NESDeltaCore +++ b/Cores/NESDeltaCore @@ -1 +1 @@ -Subproject commit 5ffdc3bc615a280ec1b78d2c82772ff78aa04368 +Subproject commit bc3e0178caa29b4c1e8872133dd00aa55cc9da2a diff --git a/Cores/SNESDeltaCore b/Cores/SNESDeltaCore index d296fe0..d571729 160000 --- a/Cores/SNESDeltaCore +++ b/Cores/SNESDeltaCore @@ -1 +1 @@ -Subproject commit d296fe001652c282c43dacc8f5504f7fdff15265 +Subproject commit d5717291325578f64d519822aeb2be81217c67f3 diff --git a/Delta/Settings/Controllers/ControllersSettingsViewController.swift b/Delta/Settings/Controllers/ControllersSettingsViewController.swift index 2c9169d..523df21 100644 --- a/Delta/Settings/Controllers/ControllersSettingsViewController.swift +++ b/Delta/Settings/Controllers/ControllersSettingsViewController.swift @@ -15,6 +15,7 @@ extension ControllersSettingsViewController { private enum Section: Int { + case none case localDevice case externalControllers case customizeControls @@ -149,6 +150,18 @@ private extension ControllersSettingsViewController switch Section(rawValue: indexPath.section)! { + case .none: + cell.textLabel?.text = NSLocalizedString("None", comment: "") + + if self.gameController == nil + { + cell.accessoryType = .checkmark + } + else + { + cell.accessoryType = .none + } + case .localDevice, .externalControllers: let controller: GameController @@ -172,7 +185,7 @@ private extension ControllersSettingsViewController cell.accessoryType = .checkmark } else - { + { cell.accessoryType = .none } @@ -257,18 +270,20 @@ extension ControllersSettingsViewController { override func numberOfSections(in tableView: UITableView) -> Int { - if self.gameController == self.localDeviceController + if self.gameController == self.localDeviceController || self.gameController == nil { - return 2 + return 3 } - return 3 + return 4 } override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { switch Section(rawValue: section)! { + case .none where self.playerIndex == 0: return 0 + case .none: return 1 case .localDevice: return 1 case .externalControllers: return self.connectedControllers.isEmpty ? 1 : self.connectedControllers.count case .customizeControls: return 1 @@ -294,11 +309,30 @@ extension ControllersSettingsViewController { switch Section(rawValue: section)! { + case .none: return nil case .localDevice: return NSLocalizedString("This Device", comment: "") case .externalControllers: return NSLocalizedString("Game Controllers", comment: "") case .customizeControls: return nil } } + + override func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat + { + switch Section(rawValue: section)! + { + case .none where self.playerIndex == 0: return 1 + default: return UITableView.automaticDimension + } + } + + override func tableView(_ tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat + { + switch Section(rawValue: section)! + { + case .none where self.playerIndex == 0: return 1 + default: return UITableView.automaticDimension + } + } } extension ControllersSettingsViewController @@ -309,6 +343,7 @@ extension ControllersSettingsViewController switch Section(rawValue: indexPath.section)! { + case .none: self.gameController = nil case .localDevice: self.gameController = self.localDeviceController case .externalControllers where self.connectedControllers.isEmpty: return case .externalControllers: self.gameController = self.connectedControllers[indexPath.row] @@ -338,7 +373,7 @@ extension ControllersSettingsViewController } else { - previousIndexPath = nil + previousIndexPath = IndexPath(row: 0, section: Section.none.rawValue) } self.tableView.beginUpdates() diff --git a/Delta/Settings/SettingsViewController.swift b/Delta/Settings/SettingsViewController.swift index 62ffe5f..b59c4e2 100644 --- a/Delta/Settings/SettingsViewController.swift +++ b/Delta/Settings/SettingsViewController.swift @@ -330,7 +330,7 @@ extension SettingsViewController let section = Section(rawValue: sectionIndex)! switch section { - case .controllers: return 1 // Temporarily hide other controller indexes until controller logic is finalized + case .controllers: return 4 case .controllerSkins: return System.registeredSystems.count case .syncing: return SyncManager.shared.coordinator?.account == nil ? 1 : super.tableView(tableView, numberOfRowsInSection: sectionIndex) default: