@@ -207,8 +207,9 @@ private void CreateDisplays(IEnumerable<DisplayAuthoring> sceneDisplays)
207
207
208
208
auth . Id = id ;
209
209
auth . NumChars = layout . Length ;
210
- var displayFrameFormat = PinMameGamelogicEngine . GetDisplayType ( layout . Type ) ;
211
- auth . SegmentType = auth . ConvertSegmentType ( displayFrameFormat ) ;
210
+ auth . NumSegments = ConvertNumSegments ( layout . Type ) ;
211
+ auth . SeparatorType = ConvertSeparatorType ( layout . Type ) ;
212
+ auth . SeparatorEveryThreeOnly = ConvertSeparatorEveryThree ( layout . Type ) ;
212
213
auth . SegmentTypeName = layout . Type . ToString ( ) ;
213
214
214
215
go . name = $ "Segment Display [{ index } ]";
@@ -226,10 +227,96 @@ private void CreateDisplays(IEnumerable<DisplayAuthoring> sceneDisplays)
226
227
1.1f ) ;
227
228
}
228
229
}
229
-
230
-
231
230
var str = string . Join ( "\n " , displayLayouts . Keys . Select ( t => $ "{ t } : { displayLayouts [ t ] } ") ) ;
232
231
Debug . Log ( $ "OnDisplaysAvailable ({ displayLayouts . Count } ): displays=\n { str } \n { tableWidth } - { totalWidth } ") ;
233
232
}
233
+
234
+ private int ConvertSeparatorType ( PinMameDisplayType layoutType )
235
+ {
236
+ switch ( layoutType ) {
237
+
238
+ case PinMameDisplayType . Seg7S :
239
+ case PinMameDisplayType . Seg7 :
240
+ case PinMameDisplayType . Seg9 :
241
+ case PinMameDisplayType . Seg16N :
242
+ return 0 ;
243
+
244
+ case PinMameDisplayType . Seg16D :
245
+ case PinMameDisplayType . Seg8D :
246
+ return 1 ;
247
+
248
+ case PinMameDisplayType . Seg7SCH :
249
+ case PinMameDisplayType . Seg7H :
250
+ case PinMameDisplayType . Seg7SH :
251
+ case PinMameDisplayType . Seg7SC :
252
+ case PinMameDisplayType . Seg8 :
253
+ case PinMameDisplayType . Seg87 :
254
+ case PinMameDisplayType . Seg87F :
255
+ case PinMameDisplayType . Seg8H :
256
+ case PinMameDisplayType . Seg87H :
257
+ case PinMameDisplayType . Seg87FH :
258
+ case PinMameDisplayType . Seg98 :
259
+ case PinMameDisplayType . Seg98F :
260
+ case PinMameDisplayType . Seg10 :
261
+ case PinMameDisplayType . Seg16 :
262
+ case PinMameDisplayType . Seg16S :
263
+ case PinMameDisplayType . Seg16R :
264
+ return 2 ;
265
+
266
+ default :
267
+ throw new ArgumentOutOfRangeException ( nameof ( layoutType ) , layoutType , "Unknown segment display size" ) ;
268
+ }
269
+ }
270
+
271
+ private static bool ConvertSeparatorEveryThree ( PinMameDisplayType layoutType )
272
+ {
273
+ switch ( layoutType ) {
274
+ case PinMameDisplayType . Seg98F :
275
+ case PinMameDisplayType . Seg98 :
276
+ case PinMameDisplayType . Seg87F :
277
+ case PinMameDisplayType . Seg87 :
278
+ return true ;
279
+
280
+ default :
281
+ return false ;
282
+ }
283
+ }
284
+
285
+ private static int ConvertNumSegments ( PinMameDisplayType layoutType )
286
+ {
287
+ switch ( layoutType ) {
288
+
289
+ case PinMameDisplayType . Seg7 :
290
+ case PinMameDisplayType . Seg7S :
291
+ case PinMameDisplayType . Seg7SC :
292
+ case PinMameDisplayType . Seg7SCH :
293
+ case PinMameDisplayType . Seg7H :
294
+ case PinMameDisplayType . Seg7SH :
295
+ case PinMameDisplayType . Seg8 :
296
+ case PinMameDisplayType . Seg8D :
297
+ case PinMameDisplayType . Seg8H :
298
+ case PinMameDisplayType . Seg87 :
299
+ case PinMameDisplayType . Seg87F :
300
+ case PinMameDisplayType . Seg87H :
301
+ case PinMameDisplayType . Seg87FH :
302
+ return 7 ;
303
+
304
+ case PinMameDisplayType . Seg9 :
305
+ case PinMameDisplayType . Seg10 :
306
+ case PinMameDisplayType . Seg98 :
307
+ case PinMameDisplayType . Seg98F :
308
+ return 9 ;
309
+
310
+ case PinMameDisplayType . Seg16 :
311
+ case PinMameDisplayType . Seg16R :
312
+ case PinMameDisplayType . Seg16S :
313
+ case PinMameDisplayType . Seg16N :
314
+ case PinMameDisplayType . Seg16D :
315
+ return 14 ;
316
+
317
+ default :
318
+ throw new ArgumentOutOfRangeException ( nameof ( layoutType ) , layoutType , "Unknown segment display size" ) ;
319
+ }
320
+ }
234
321
}
235
322
}
0 commit comments