@@ -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