Skip to content

Commit 79a0525

Browse files
committed
fix: Additionally map string-parsed IDs when mapping coils.
1 parent fd7b548 commit 79a0525

File tree

1 file changed

+18
-4
lines changed

1 file changed

+18
-4
lines changed

VisualPinball.Unity/VisualPinball.Unity/Game/CoilPlayer.cs

+18-4
Original file line numberDiff line numberDiff line change
@@ -107,18 +107,32 @@ public void OnStart()
107107
}
108108
}
109109

110+
/// <summary>
111+
/// Assigns a coil mapping with the coil's ID, but also with an int-parsed ID,
112+
/// so we can name them "01" and it still works with PinMAME.
113+
/// </summary>
114+
/// <param name="coilMapping">Mapping to assign</param>
115+
/// <param name="isLampCoil">If it's a flasher</param>
110116
private void AssignCoilMapping(CoilMapping coilMapping, bool isLampCoil)
111117
{
112-
if (!_coilAssignments.ContainsKey(coilMapping.Id)) {
113-
_coilAssignments[coilMapping.Id] = new List<CoilDestConfig>();
118+
AssignCoilMapping(coilMapping.Id, coilMapping, isLampCoil);
119+
if (int.TryParse(coilMapping.Id, out var id) && id.ToString() != coilMapping.Id) {
120+
AssignCoilMapping(id.ToString(), coilMapping, isLampCoil);
121+
}
122+
}
123+
124+
private void AssignCoilMapping(string id, CoilMapping coilMapping, bool isLampCoil)
125+
{
126+
if (!_coilAssignments.ContainsKey(id)) {
127+
_coilAssignments[id] = new List<CoilDestConfig>();
114128
}
115129
var hasDynamicWire = _tableComponent!.MappingConfig.Wires.FirstOrDefault(w =>
116130
w.DestinationDevice == coilMapping.Device &&
117131
w.DestinationDeviceItem == coilMapping.DeviceItem &&
118132
w.IsDynamic) != null;
119133

120-
_coilAssignments[coilMapping.Id].Add(new CoilDestConfig(coilMapping.Device, coilMapping.DeviceItem, isLampCoil, hasDynamicWire));
121-
CoilStatuses[coilMapping.Id] = false;
134+
_coilAssignments[id].Add(new CoilDestConfig(coilMapping.Device, coilMapping.DeviceItem, isLampCoil, hasDynamicWire));
135+
CoilStatuses[id] = false;
122136
}
123137

124138
private void HandleCoilEvent(object sender, CoilEventArgs coilEvent)

0 commit comments

Comments
 (0)