mirror of
https://github.com/Lime3DS/Lime3DS.git
synced 2026-06-02 04:55:28 -06:00
Changed the combo_key string into button_combo, added functionality (impl could be better), added combo key as an input bindable setting within the buttons tab
This commit is contained in:
parent
77cfb162e3
commit
f62a5f2510
@ -131,6 +131,7 @@ class Settings {
|
||||
const val KEY_BUTTON_R = "button_r"
|
||||
const val KEY_BUTTON_ZL = "button_zl"
|
||||
const val KEY_BUTTON_ZR = "button_zr"
|
||||
const val KEY_BUTTON_COMBO = "button_combo"
|
||||
const val KEY_CIRCLEPAD_AXIS_VERTICAL = "circlepad_axis_vertical"
|
||||
const val KEY_CIRCLEPAD_AXIS_HORIZONTAL = "circlepad_axis_horizontal"
|
||||
const val KEY_CSTICK_AXIS_VERTICAL = "cstick_axis_vertical"
|
||||
@ -152,7 +153,8 @@ class Settings {
|
||||
KEY_BUTTON_Y,
|
||||
KEY_BUTTON_SELECT,
|
||||
KEY_BUTTON_START,
|
||||
KEY_BUTTON_HOME
|
||||
KEY_BUTTON_HOME,
|
||||
KEY_BUTTON_COMBO
|
||||
)
|
||||
val buttonTitles = listOf(
|
||||
R.string.button_a,
|
||||
@ -161,7 +163,8 @@ class Settings {
|
||||
R.string.button_y,
|
||||
R.string.button_select,
|
||||
R.string.button_start,
|
||||
R.string.button_home
|
||||
R.string.button_home,
|
||||
R.string.button_combo
|
||||
)
|
||||
val circlePadKeys = listOf(
|
||||
KEY_CIRCLEPAD_AXIS_VERTICAL,
|
||||
|
||||
@ -123,6 +123,7 @@ class InputBindingSetting(
|
||||
Settings.KEY_BUTTON_SELECT -> NativeLibrary.ButtonType.BUTTON_SELECT
|
||||
Settings.KEY_BUTTON_START -> NativeLibrary.ButtonType.BUTTON_START
|
||||
Settings.KEY_BUTTON_HOME -> NativeLibrary.ButtonType.BUTTON_HOME
|
||||
Settings.KEY_BUTTON_COMBO -> NativeLibrary.ButtonType.BUTTON_COMBO
|
||||
Settings.KEY_BUTTON_UP -> NativeLibrary.ButtonType.DPAD_UP
|
||||
Settings.KEY_BUTTON_DOWN -> NativeLibrary.ButtonType.DPAD_DOWN
|
||||
Settings.KEY_BUTTON_LEFT -> NativeLibrary.ButtonType.DPAD_LEFT
|
||||
@ -277,6 +278,7 @@ class InputBindingSetting(
|
||||
NativeLibrary.ButtonType.BUTTON_SELECT -> Settings.KEY_BUTTON_SELECT
|
||||
NativeLibrary.ButtonType.BUTTON_START -> Settings.KEY_BUTTON_START
|
||||
NativeLibrary.ButtonType.BUTTON_HOME -> Settings.KEY_BUTTON_HOME
|
||||
NativeLibrary.ButtonType.BUTTON_COMBO -> Settings.KEY_BUTTON_COMBO
|
||||
NativeLibrary.ButtonType.DPAD_UP -> Settings.KEY_BUTTON_UP
|
||||
NativeLibrary.ButtonType.DPAD_DOWN -> Settings.KEY_BUTTON_DOWN
|
||||
NativeLibrary.ButtonType.DPAD_LEFT -> Settings.KEY_BUTTON_LEFT
|
||||
|
||||
@ -46,6 +46,7 @@ import org.citra.citra_emu.features.settings.model.AbstractStringSetting
|
||||
import org.citra.citra_emu.features.settings.model.FloatSetting
|
||||
import org.citra.citra_emu.features.settings.model.ScaledFloatSetting
|
||||
import org.citra.citra_emu.features.settings.model.AbstractShortSetting
|
||||
import org.citra.citra_emu.features.settings.model.Settings
|
||||
import org.citra.citra_emu.features.settings.model.view.DateTimeSetting
|
||||
import org.citra.citra_emu.features.settings.model.view.InputBindingSetting
|
||||
import org.citra.citra_emu.features.settings.model.view.MultiChoiceSetting
|
||||
@ -745,6 +746,9 @@ class SettingsAdapter(
|
||||
}
|
||||
|
||||
*/
|
||||
|
||||
//TODO: Don't fully know how to grab the setting itself for the buttons so I'm adding them to a backing array to be called later
|
||||
//TODO: Likely need to be reimplemented
|
||||
is StringMultiChoiceSetting -> {
|
||||
val scSetting = clickedItem as? StringMultiChoiceSetting
|
||||
scSetting?.let {
|
||||
@ -752,16 +756,20 @@ class SettingsAdapter(
|
||||
is AbstractMultiStringSetting -> {
|
||||
val value = it.getValueAt(which)
|
||||
if (value in it.selectedValues && !is_checked) {
|
||||
Settings.comboSelection.remove(value ?: "")
|
||||
it.removeSelectedValue(value ?: "")
|
||||
} else {
|
||||
Settings.comboSelection.add(value ?: "")
|
||||
it.addSelectedValue(value ?: "")
|
||||
}
|
||||
}
|
||||
|
||||
is AbstractMultiShortSetting -> {
|
||||
if (is_checked != it.selectValueIndices[which]) {
|
||||
Settings.comboSelection.remove((it.getValueAt(which)?.toShort() ?: 1).toString())
|
||||
it.removeSelectedValue(it.getValueAt(which)?.toShort() ?: 1)
|
||||
} else {
|
||||
Settings.comboSelection.add((it.getValueAt(which)?.toShort() ?: 1).toString())
|
||||
it.addSelectedValue(it.getValueAt(which)?.toShort() ?: 1)
|
||||
}
|
||||
}
|
||||
|
||||
@ -34,7 +34,6 @@ import org.citra.citra_emu.features.settings.model.StringSetting
|
||||
import org.citra.citra_emu.features.settings.model.view.DateTimeSetting
|
||||
import org.citra.citra_emu.features.settings.model.view.HeaderSetting
|
||||
import org.citra.citra_emu.features.settings.model.view.InputBindingSetting
|
||||
import org.citra.citra_emu.features.settings.model.view.MultiChoiceSetting
|
||||
import org.citra.citra_emu.features.settings.model.view.RunnableSetting
|
||||
import org.citra.citra_emu.features.settings.model.view.SettingsItem
|
||||
import org.citra.citra_emu.features.settings.model.view.SingleChoiceSetting
|
||||
@ -821,7 +820,7 @@ class SettingsFragmentPresenter(private val fragmentView: SettingsFragmentView)
|
||||
}
|
||||
|
||||
private fun addComboButtonSettings(sl: ArrayList<SettingsItem>) {
|
||||
settingsActivity.setToolbarTitle(settingsActivity.getString(R.string.combo_key))
|
||||
settingsActivity.setToolbarTitle(settingsActivity.getString(R.string.button_combo))
|
||||
val comboSetting = object : AbstractMultiStringSetting {
|
||||
override var strings: MutableSet<String>
|
||||
get() {
|
||||
|
||||
@ -26,6 +26,7 @@ import org.citra.citra_emu.NativeLibrary
|
||||
import org.citra.citra_emu.R
|
||||
import org.citra.citra_emu.utils.EmulationMenuSettings
|
||||
import org.citra.citra_emu.utils.TurboHelper
|
||||
import org.citra.citra_emu.utils.ComboHelper
|
||||
import java.lang.NullPointerException
|
||||
import kotlin.math.min
|
||||
|
||||
@ -140,11 +141,10 @@ class InputOverlay(context: Context?, attrs: AttributeSet?) : SurfaceView(contex
|
||||
else if (button.id == NativeLibrary.ButtonType.BUTTON_TURBO && button.status == NativeLibrary.ButtonState.PRESSED) {
|
||||
TurboHelper.toggleTurbo(true)
|
||||
}
|
||||
/*
|
||||
else if (button.id == NativeLibrary.ButtonType.BUTTON_COMBO && button.status == NativeLibrary.ButtonState.PRESSED) {
|
||||
var comboButtonArray =
|
||||
else if (button.id == NativeLibrary.ButtonType.BUTTON_COMBO) {
|
||||
ComboHelper.comboActivate(button)
|
||||
}
|
||||
*/
|
||||
|
||||
|
||||
NativeLibrary.onGamePadEvent(
|
||||
NativeLibrary.TouchScreenDevice,
|
||||
|
||||
@ -0,0 +1,47 @@
|
||||
// Copyright Citra Emulator Project / Azahar Emulator Project
|
||||
// Licensed under GPLv2 or any later version
|
||||
// Refer to the license.txt file included.
|
||||
|
||||
package org.citra.citra_emu.utils
|
||||
|
||||
import org.citra.citra_emu.CitraApplication
|
||||
import org.citra.citra_emu.NativeLibrary
|
||||
import org.citra.citra_emu.R
|
||||
import org.citra.citra_emu.features.settings.model.BooleanSetting
|
||||
import org.citra.citra_emu.features.settings.model.Settings
|
||||
import org.citra.citra_emu.overlay.InputOverlayDrawableButton
|
||||
|
||||
object ComboHelper {
|
||||
|
||||
fun getButton(button: String): Int {
|
||||
when (button) {
|
||||
"A" -> return NativeLibrary.ButtonType.BUTTON_A
|
||||
"B" -> return NativeLibrary.ButtonType.BUTTON_B
|
||||
"X" -> return NativeLibrary.ButtonType.BUTTON_X
|
||||
"Y" -> return NativeLibrary.ButtonType.BUTTON_Y
|
||||
"L" -> return NativeLibrary.ButtonType.TRIGGER_L
|
||||
"R" -> return NativeLibrary.ButtonType.TRIGGER_R
|
||||
"ZL" -> return NativeLibrary.ButtonType.BUTTON_ZL
|
||||
"ZR" -> return NativeLibrary.ButtonType.BUTTON_ZR
|
||||
"START" -> return NativeLibrary.ButtonType.BUTTON_START
|
||||
"SELECT" -> return NativeLibrary.ButtonType.BUTTON_SELECT
|
||||
}
|
||||
return -1
|
||||
}
|
||||
|
||||
fun comboActivate(button: InputOverlayDrawableButton) {
|
||||
var comboArray = Settings.comboSelection
|
||||
for (selectedbutton in comboArray) {
|
||||
var nativebutton = getButton(selectedbutton)
|
||||
if (nativebutton == -1) {
|
||||
println("Bad Button")
|
||||
} else {
|
||||
NativeLibrary.onGamePadEvent(NativeLibrary.TouchScreenDevice, nativebutton, button.status)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
@ -142,6 +142,7 @@
|
||||
<string name="button_home">HOME</string>
|
||||
<string name="button_swap">Swap Screens</string>
|
||||
<string name="button_turbo">Turbo</string>
|
||||
<string name="button_combo">Combo Key</string>
|
||||
<string name="button_x" translatable="false">X</string>
|
||||
<string name="button_y" translatable="false">Y</string>
|
||||
<string name="button_l" translatable="false">L</string>
|
||||
@ -153,7 +154,6 @@
|
||||
<string name="turbo_limit_hotkey">Turbo Speed</string>
|
||||
<string name="turbo_enabled_toast">Turbo Speed Enabled</string>
|
||||
<string name="turbo_disabled_toast">Turbo Speed Disabled</string>
|
||||
<string name="combo_key">Combo Key</string>
|
||||
<string name="combo_key_enable">Enable Combo Button</string>
|
||||
<string name="combo_key_options">Combo Key Settings</string>
|
||||
<string name="combo_key_description">Enable and Change Combo Button Bindings.</string>
|
||||
|
||||
Loading…
Reference in New Issue
Block a user