@@ -15,36 +15,38 @@ public partial class TrainerEnumButton : UserControl, ITrainerUI<byte>
1515 {
1616
1717 private byte value ;
18- private SortedList < byte , MyButton > buttons ;
18+ private SortedList < byte , MyButton > buttons ;
19+
20+ List < byte > byteList = new List < byte > ( ) ;
1921
2022 public TrainerEnumButton ( string title , params ValueStringPair [ ] values )
2123 {
2224 InitializeComponent ( ) ;
2325 label1 . Text = title ;
2426
25- buttons = new SortedList < byte , MyButton > ( ) ;
27+ buttons = new SortedList < byte , MyButton > ( ) ;
2628
2729 for ( int i = 0 ; i < values . Length ; i ++ )
2830 {
2931
3032 // vals[i] = values[i];
3133
3234 var val = values [ i ] . value ;
35+ byteList . Add ( val ) ;
36+
3337 MyButton butt = new MyButton ( ) ;
3438 butt . Text = values [ i ] . display ;
3539 butt . Appearance = Appearance . Button ;
36-
40+
3741 flowLayoutPanel1 . Controls . Add ( butt ) ;
3842 buttons . Add ( val , butt ) ;
3943 butt . Click += new EventHandler ( ( sender , eventArgs ) => OnButtonPress ( sender , eventArgs , butt , val ) ) ;
40-
41-
4244 }
4345 }
4446
4547 private void OnButtonPress ( object sender , EventArgs eventArgs , MyButton butt , byte value )
4648 {
47-
49+
4850 this . value = value ;
4951 SelectButton ( value ) ;
5052
@@ -53,18 +55,18 @@ private void OnButtonPress(object sender, EventArgs eventArgs, MyButton butt, by
5355 onValueChanged . Invoke ( value ) ;
5456 }
5557
56- void SelectButton ( byte value )
58+ void SelectButton ( byte value )
5759 {
5860 foreach ( var item in buttons )
5961 {
6062 item . Value . Checked = ( value == item . Key ) ;
61-
63+
6264 }
6365 }
6466
65-
6667
67- public ValueChanged < byte > onValueChanged { get ; set ; }
68+
69+ public ValueChanged < byte > onValueChanged { get ; set ; }
6870
6971 public byte GetValue ( )
7072 {
@@ -76,19 +78,22 @@ public void SetValue(byte value)
7678 this . value = value ;
7779 SelectButton ( value ) ;
7880
79-
81+
8082 }
8183
8284 public void AttemptShuffle ( )
8385 {
8486 if ( ! LoopBox . Checked ) return ;
8587
86- int index = buttons . IndexOfKey ( value ) + 1 ;
87- index %= buttons . Count ( ) ;
8888
89- byte newValue = buttons . Keys [ index ] ;
89+ int index = byteList . IndexOf ( value ) + 1 ;
90+ index %= byteList . Count ( ) ;
91+
92+ byte newValue = byteList [ index ] ;
9093
9194 SetValue ( newValue ) ;
95+
96+ onValueChanged . Invoke ( newValue ) ;
9297 }
9398 }
9499}
0 commit comments