mirror of
https://gitea.tendokyu.moe/beerpsi/sinmai-mods.git
synced 2025-02-14 18:02:38 +01:00
61 lines
1.9 KiB
C#
61 lines
1.9 KiB
C#
// ReSharper disable CheckNamespace
|
|
// ReSharper disable InconsistentNaming
|
|
|
|
using System.Globalization;
|
|
using MAI2System;
|
|
using Manager;
|
|
|
|
namespace IO;
|
|
|
|
class patch_NewTouchPanel : NewTouchPanel
|
|
{
|
|
private int _touchPanelDelayMsec;
|
|
private Dictionary<InputManager.TouchPanelArea, byte> _sensitivityOverrides = new();
|
|
|
|
public extern void orig_Initialize(uint index);
|
|
public new void Initialize(uint index)
|
|
{
|
|
orig_Initialize(index);
|
|
|
|
using var ini = new IniFile("mai2.ini");
|
|
|
|
_touchPanelDelayMsec = ini.getIntValue("TouchPanel", "DelayMs", 0);
|
|
foreach (InputManager.TouchPanelArea sensor in Enum.GetValues(typeof(InputManager.TouchPanelArea)))
|
|
{
|
|
var sensitivityStr = ini.getValue("TouchPanel", $"Sensitivity{sensor}", null);
|
|
|
|
if (sensitivityStr == null)
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if (byte.TryParse(sensitivityStr, NumberStyles.Integer, CultureInfo.InvariantCulture, out var sensitivity))
|
|
{
|
|
System.Console.WriteLine($"[TouchPanel] [WARN] Invalid value for TouchPanel.Sensitivity{sensor}: {sensitivityStr}");
|
|
continue;
|
|
}
|
|
|
|
_sensitivityOverrides[sensor] = sensitivity;
|
|
}
|
|
|
|
}
|
|
|
|
private extern void orig_Recv();
|
|
private void Recv()
|
|
{
|
|
Thread.Sleep(_touchPanelDelayMsec);
|
|
orig_Recv();
|
|
}
|
|
|
|
private extern void orig_SetTouchPanelSensitivity(List<byte> sensitivity);
|
|
private void SetTouchPanelSensitivity(List<byte> sensitivity)
|
|
{
|
|
foreach (var s in _sensitivityOverrides)
|
|
{
|
|
System.Console.WriteLine($"[TouchPanel] Overriding sensitivity for panel {s.Key}: {s.Value}");
|
|
sensitivity[(int)s.Key] = s.Value;
|
|
}
|
|
|
|
orig_SetTouchPanelSensitivity(sensitivity);
|
|
}
|
|
} |