@@ -101,6 +101,65 @@ public Blob EncodedFlagString()
101101 return Encoding . UTF8 . GetBytes ( GenerateFlagString ( ) ) ;
102102 }
103103
104+ public bool SetToggleFlag ( string flagname , bool value )
105+ {
106+ var flaglist = this . GetType ( ) . GetProperties ( ) ;
107+ if ( flaglist . TryFind ( f => f . Name == flagname , out var flag ) )
108+ {
109+ flag . SetValue ( this , value ) ;
110+ return true ;
111+ }
112+ else
113+ {
114+ return false ;
115+ }
116+ }
117+ public bool GetToggleFlag ( string flagname )
118+ {
119+ var flaglist = this . GetType ( ) . GetProperties ( ) ;
120+ if ( flaglist . TryFind ( f => f . Name == flagname , out var flag ) )
121+ {
122+ return Convert . ToBoolean ( flag . GetValue ( this , null ) ) ;
123+ }
124+ else
125+ {
126+ return false ;
127+ }
128+ }
129+ public bool SetEnumFlag ( string flagname , int value )
130+ {
131+ var flaglist = this . GetType ( ) . GetProperties ( ) ;
132+ if ( flaglist . TryFind ( f => f . Name == flagname , out var flag ) )
133+ {
134+ var enumValues = flag . PropertyType . GetEnumValues ( ) ;
135+ foreach ( var enumValue in enumValues )
136+ {
137+ if ( Convert . ToUInt32 ( enumValue ) == ( uint ) value )
138+ {
139+ flag . SetValue ( this , enumValue ) ;
140+ return true ;
141+ }
142+ }
143+ return false ;
144+ }
145+ else
146+ {
147+ return false ;
148+ }
149+ }
150+ public int GetEnumFlag ( string flagname )
151+ {
152+ var flaglist = this . GetType ( ) . GetProperties ( ) ;
153+ if ( flaglist . TryFind ( f => f . Name == flagname , out var flag ) )
154+ {
155+ return Convert . ToInt32 ( flag . GetValue ( this , null ) ) ;
156+ }
157+ else
158+ {
159+ return - 1 ;
160+ }
161+ }
162+
104163 public void ReadFlagString ( string flagstring )
105164 {
106165 flagstring = flagstring . Replace ( '-' , '+' ) . Replace ( '_' , '/' ) . Replace ( '~' , '=' ) ;
@@ -375,7 +434,6 @@ public class Preferences
375434 public MusicMode MusicMode { get ; set ; } = MusicMode . Normal ;
376435 public bool DarkKingTrueForm { get ; set ; } = false ;
377436 public ushort WindowPalette { get ; set ; } = 0x5140 ;
378- public bool DumpGameInfoScreen { get ; set ; } = false ;
379437 public bool ReduceBattleFlash { get ; set ; } = false ;
380438 public bool AutoDownloadRom { get ; set ; } = false ;
381439 public string PlayerSprite { get ; set ; } = "default" ;
0 commit comments