v0.4.2: improved error handling in preferences
This commit is contained in:
parent
806217e209
commit
e770d13d39
|
@ -30,6 +30,8 @@ public class Challenges {
|
|||
public static final int DARKNESS = 32;
|
||||
public static final int NO_SCROLLS = 64;
|
||||
|
||||
public static final int MAX_VALUE = 127;
|
||||
|
||||
public static final String[] NAME_IDS = {
|
||||
"no_food",
|
||||
"no_armor",
|
||||
|
|
|
@ -55,30 +55,53 @@ enum Preferences {
|
|||
}
|
||||
return prefs;
|
||||
}
|
||||
|
||||
int getInt( String key, int defValue ) {
|
||||
return getInt(key, defValue, Integer.MIN_VALUE, Integer.MAX_VALUE);
|
||||
}
|
||||
|
||||
int getInt( String key, int defValue ) {
|
||||
int getInt( String key, int defValue, int min, int max ) {
|
||||
try {
|
||||
return get().getInt( key, defValue );
|
||||
int i = get().getInt( key, defValue );
|
||||
if (i < min || i > max){
|
||||
put(key, defValue);
|
||||
return defValue;
|
||||
} else {
|
||||
return i;
|
||||
}
|
||||
} catch (ClassCastException e) {
|
||||
ShatteredPixelDungeon.reportException(e);
|
||||
put(key, defValue);
|
||||
return defValue;
|
||||
}
|
||||
}
|
||||
|
||||
boolean getBoolean( String key, boolean defValue ) {
|
||||
boolean getBoolean( String key, boolean defValue ) {
|
||||
try {
|
||||
return get().getBoolean(key, defValue);
|
||||
} catch (ClassCastException e) {
|
||||
ShatteredPixelDungeon.reportException(e);
|
||||
put(key, defValue);
|
||||
return defValue;
|
||||
}
|
||||
}
|
||||
|
||||
String getString( String key, String defValue ) {
|
||||
return getString(key, defValue, Integer.MAX_VALUE);
|
||||
}
|
||||
|
||||
String getString( String key, String defValue ) {
|
||||
String getString( String key, String defValue, int maxLength ) {
|
||||
try {
|
||||
return get().getString( key, defValue );
|
||||
String s = get().getString( key, defValue );
|
||||
if (s.length() > maxLength) {
|
||||
put(key, defValue);
|
||||
return defValue;
|
||||
} else {
|
||||
return s;
|
||||
}
|
||||
} catch (ClassCastException e) {
|
||||
ShatteredPixelDungeon.reportException(e);
|
||||
put(key, defValue);
|
||||
return defValue;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -365,7 +365,7 @@ public class ShatteredPixelDungeon extends Game {
|
|||
}
|
||||
|
||||
public static int musicVol(){
|
||||
return Preferences.INSTANCE.getInt( Preferences.KEY_MUSIC_VOL, 10 );
|
||||
return Preferences.INSTANCE.getInt( Preferences.KEY_MUSIC_VOL, 10, 0, 10 );
|
||||
}
|
||||
|
||||
public static void soundFx( boolean value ) {
|
||||
|
@ -382,7 +382,7 @@ public class ShatteredPixelDungeon extends Game {
|
|||
}
|
||||
|
||||
public static int SFXVol() {
|
||||
return Preferences.INSTANCE.getInt( Preferences.KEY_SFX_VOL, 10 );
|
||||
return Preferences.INSTANCE.getInt( Preferences.KEY_SFX_VOL, 10, 0, 10 );
|
||||
}
|
||||
|
||||
public static void brightness( int value ) {
|
||||
|
@ -393,7 +393,7 @@ public class ShatteredPixelDungeon extends Game {
|
|||
}
|
||||
|
||||
public static int brightness() {
|
||||
return Preferences.INSTANCE.getInt( Preferences.KEY_BRIGHTNESS, 0 );
|
||||
return Preferences.INSTANCE.getInt( Preferences.KEY_BRIGHTNESS, 0, -2, 4 );
|
||||
}
|
||||
|
||||
public static void language(Languages lang) {
|
||||
|
@ -431,7 +431,7 @@ public class ShatteredPixelDungeon extends Game {
|
|||
}
|
||||
|
||||
public static int lastClass() {
|
||||
return Preferences.INSTANCE.getInt( Preferences.KEY_LAST_CLASS, 0 );
|
||||
return Preferences.INSTANCE.getInt( Preferences.KEY_LAST_CLASS, 0, 0, 3 );
|
||||
}
|
||||
|
||||
public static void challenges( int value ) {
|
||||
|
@ -439,12 +439,12 @@ public class ShatteredPixelDungeon extends Game {
|
|||
}
|
||||
|
||||
public static int challenges() {
|
||||
return Preferences.INSTANCE.getInt( Preferences.KEY_CHALLENGES, 0 );
|
||||
return Preferences.INSTANCE.getInt( Preferences.KEY_CHALLENGES, 0, 0, Challenges.MAX_VALUE );
|
||||
}
|
||||
|
||||
public static void quickSlots( int value ){ Preferences.INSTANCE.put( Preferences.KEY_QUICKSLOTS, value ); }
|
||||
|
||||
public static int quickSlots(){ return Preferences.INSTANCE.getInt( Preferences.KEY_QUICKSLOTS, 4); }
|
||||
public static int quickSlots(){ return Preferences.INSTANCE.getInt( Preferences.KEY_QUICKSLOTS, 4, 0, 4); }
|
||||
|
||||
public static void flipToolbar( boolean value) {
|
||||
Preferences.INSTANCE.put(Preferences.KEY_FLIPTOOLBAR, value );
|
||||
|
|
Loading…
Reference in New Issue
Block a user