add 'is already active?' checks to bumpers to ensure same behavior as sticks. In addition to the existing check for a previous mapping, this check only overwrites the value if the previous mapping had activity

This commit is contained in:
amwatson 2024-01-28 14:39:22 -06:00
parent 569a98382b
commit 5aa8a4cae5

View file

@ -296,23 +296,35 @@ open class EmulationActivity : AppCompatActivity() {
}
NativeLibrary.ButtonType.TRIGGER_L -> {
val isAlreadyMappedToActive = isTriggerPressedL
isTriggerPressedLMapped = true
isTriggerPressedL = value != 0f
if (isCurrentAxisActive || !isAlreadyMappedToActive) {
isTriggerPressedL = value != 0f
}
}
NativeLibrary.ButtonType.TRIGGER_R -> {
val isAlreadyMappedToActive = isTriggerPressedR
isTriggerPressedRMapped = true
isTriggerPressedR = value != 0f
if (isCurrentAxisActive || !isAlreadyMappedToActive) {
isTriggerPressedR = value != 0f
}
}
NativeLibrary.ButtonType.BUTTON_ZL -> {
val isAlreadyMappedToActive = isTriggerPressedZL
isTriggerPressedZLMapped = true
isTriggerPressedZL = value != 0f
if (isCurrentAxisActive || !isAlreadyMappedToActive) {
isTriggerPressedZL = value != 0f
}
}
NativeLibrary.ButtonType.BUTTON_ZR -> {
val isAlreadyMappedToActive = isTriggerPressedZR
isTriggerPressedZRMapped = true
isTriggerPressedZR = value != 0f
if (isCurrentAxisActive || !isAlreadyMappedToActive) {
isTriggerPressedZR = value != 0f
}
}
}
}