- special game widget: YSLT for genshinImpact

- rename YSxx1 cmds to YSxx
This commit is contained in:
TrueZhuangjia
2025-03-22 01:11:35 +08:00
committed by TrueZhuanjia
parent 9ade4b5ae0
commit eca0b30728
3 changed files with 19 additions and 14 deletions
+6 -5
View File
@@ -63,9 +63,10 @@ import UIKit
@objc public static let oscButtonMappings: [String: Int32] = [
"YSRT1" : 0, // RT button & RsvPad in GenshinImpact
"YSRB1" : RB_FLAG, // RB button & RsvPad in GenshinImpact
"YSB1" : B_FLAG, // B button & RsvPad in GenshinImpact
"YSLT" : 0,
"YSRT" : 0, // RT button & RsvPad in GenshinImpact
"YSRB" : RB_FLAG, // RB button & RsvPad in GenshinImpact
"YSB" : B_FLAG, // B button & RsvPad in GenshinImpact
"OSCA" : A_FLAG,
"OSCB" : B_FLAG,
"OSCX" : X_FLAG,
@@ -96,8 +97,8 @@ import UIKit
@objc public static let nonVectorStickPads: [String] = ["LSPAD", "RSPAD"]
@objc public static let specialOverlayButtonCmds: [String] = ["SETTINGS"]
@objc public static let specialGameWidgets: [String] = ["YSRT1", "YSRB1", "YSB1", "YSRT2", "YSRB2", "YSB2", "YSEM", "YSML", "YSMR", "YSWASD"]
@objc public static let yuanshenRsvButtonCmds: [String] = ["YSRT1", "YSRB1", "YSB1"]
@objc public static let specialGameWidgets: [String] = ["YSLT", "YSRT", "YSRB", "YSB", "YSRT2", "YSRB2", "YSB2", "YSEM", "YSML", "YSMR", "YSWASD"]
@objc public static let yuanshenStickPadButtonCmds: [String] = ["YSLT", "YSRT", "YSRB", "YSB"]
@objc public static let yuanshenMouseMoveButtonCmds: [String] = ["YSEM", "YSML", "YSMR"]
static let keyboardButtonMappings: [String: Int16] = [
+12 -8
View File
@@ -778,17 +778,19 @@ import UIKit
private func sendOscButtonDownEvent(keyString: String){
let buttonFlag = CommandManager.oscButtonMappings[keyString]
if buttonFlag != 0 {self.onScreenControls.pressDownControllerButton(buttonFlag!)}
if keyString == "OSCL2" {
if keyString == "OSCL2" || keyString == "YSLT" {
self.onScreenControls.updateLeftTrigger(0xFF)
}
if keyString == "OSCR2" || keyString == "YSRT1" {self.onScreenControls.updateRightTrigger(0xFF)}
if keyString == "OSCR2" || keyString == "YSRT" {self.onScreenControls.updateRightTrigger(0xFF)}
}
private func sendOscButtonUpEvent(keyString: String){
let buttonFlag = CommandManager.oscButtonMappings[keyString]
if buttonFlag != 0 {self.onScreenControls.releaseControllerButton(buttonFlag!)}
if keyString == "OSCL2" {self.onScreenControls.updateLeftTrigger(0x00)}
if keyString == "OSCR2" || keyString == "YSRT1" {self.onScreenControls.updateRightTrigger(0x00)}
if keyString == "OSCL2" || keyString == "YSLT" {
self.onScreenControls.updateLeftTrigger(0x00)
}
if keyString == "OSCR2" || keyString == "YSRT" {self.onScreenControls.updateRightTrigger(0x00)}
}
//==============================================================================
@@ -1003,7 +1005,7 @@ import UIKit
case "MOUSEPAD","YSEM","YSML","YSMR":
LiSendMouseMoveEvent(Int16(truncatingIfNeeded: Int(deltaX * 1.7 * sensitivityFactor)), Int16(truncatingIfNeeded: Int(deltaY * 1.7 * sensitivityFactor)))
break
case "LSPAD":
case "LSPAD", "YSLT":
self.sendLeftStickTouchPadEvent(inputX: offSetX * sensitivityFactor, inputY: offSetY*sensitivityFactor)
updateStickIndicator()
case "RSPAD":
@@ -1011,7 +1013,7 @@ import UIKit
updateStickIndicator()
case "LSVPAD":
self.sendLeftStickTouchPadEvent(inputX: deltaX*1.5167*sensitivityFactor, inputY: deltaY*1.5167*sensitivityFactor)
case "RSVPAD", "YSB1", "YSRT1", "YSRB1":
case "RSVPAD", "YSB", "YSRT", "YSRB":
self.sendRightStickTouchPadEvent(inputX: deltaX*1.5167*sensitivityFactor, inputY: deltaY*1.5167*sensitivityFactor);
case "DPAD", "WASDPAD", "ARROWPAD", "YSWASD":
handleLrudTouchMove()
@@ -1048,17 +1050,19 @@ import UIKit
}
// then other types of pads
if !OnScreenWidgetView.editMode && (CommandManager.touchPadCmds.contains(self.keyString) || CommandManager.yuanshenRsvButtonCmds.contains(self.keyString)) {
if !OnScreenWidgetView.editMode && (CommandManager.touchPadCmds.contains(self.keyString) || CommandManager.yuanshenStickPadButtonCmds.contains(self.keyString)) {
switch self.keyString{
case "LSPAD":
self.onScreenControls.clearLeftStickTouchPadFlag()
self.resetStickBallPositionAndRemoveIndicator()
case "YSLT":
self.onScreenControls.clearLeftStickTouchPadFlag()
case "RSPAD":
self.onScreenControls.clearRightStickTouchPadFlag()
self.resetStickBallPositionAndRemoveIndicator()
case "LSVPAD":
self.onScreenControls.clearLeftStickTouchPadFlag()
case "RSVPAD", "YSB1", "YSRT1", "YSRB1":
case "RSVPAD", "YSB", "YSRT", "YSRB":
self.onScreenControls.clearRightStickTouchPadFlag()
case "WASDPAD","YSWASD":
LiSendKeyboardEvent(CommandManager.keyboardButtonMappings["W"]!,Int8(KEY_ACTION_UP), 0)
@@ -438,7 +438,7 @@
[self.widgetAlphaSlider setValue: self->selectedWidgetView.backgroundAlpha];
[self.widgetBorderWidthSlider setValue:self->selectedWidgetView.borderWidth];
NSSet *stickAndMouseTouchpads = [NSSet setWithObjects:@"YSB1", @"YSRT1", @"YSRB1",@"YSB2", @"YSRT2", @"YSRB2", @"YSEM", @"YSML", @"YSMR", @"LSPAD", @"RSPAD", @"LSVPAD", @"RSVPAD", @"MOUSEPAD", nil];
NSSet *stickAndMouseTouchpads = [NSSet setWithObjects:@"YSB", @"YSLT", @"YSRT", @"YSRB",@"YSB2", @"YSRT2", @"YSRB2", @"YSEM", @"YSML", @"YSMR", @"LSPAD", @"RSPAD", @"LSVPAD", @"RSVPAD", @"MOUSEPAD", nil];
NSSet *nonVectorStickPads = [NSSet setWithObjects: @"LSPAD", @"RSPAD", nil];