diff -r d70a5b0d1190 -r 0481bd74267c project_files/Android-build/SDL-android-project/src/org/hedgewars/hedgeroid/Datastructures/Weaponsets.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/project_files/Android-build/SDL-android-project/src/org/hedgewars/hedgeroid/Datastructures/Weaponsets.java Sun Aug 12 22:46:23 2012 +0200 @@ -0,0 +1,63 @@ +package org.hedgewars.hedgeroid.Datastructures; + +import java.io.File; +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; + +import org.hedgewars.hedgeroid.frontlib.Flib; +import org.hedgewars.hedgeroid.frontlib.Frontlib.WeaponsetListPtr; + +import android.content.Context; + +public final class Weaponsets { + private Weaponsets() { + throw new AssertionError("This class is not meant to be instantiated"); + } + + public static File getUserWeaponsetsFile(Context c) { + return new File(c.getFilesDir(), "weapons_user.ini"); + } + + public static File getBuiltinWeaponsetsFile(Context c) { + return new File(c.getFilesDir(), "weapons_builtin.ini"); + } + + public static List loadAllWeaponsets(Context c) throws IOException { + List result = loadBuiltinWeaponsets(c); + result.addAll(loadUserWeaponsets(c)); + return result; + } + + public static List loadUserWeaponsets(Context c) throws IOException { + return loadWeaponsets(c, getUserWeaponsetsFile(c)); + } + + public static List loadBuiltinWeaponsets(Context c) throws IOException { + return loadWeaponsets(c, getBuiltinWeaponsetsFile(c)); + } + + public static List loadWeaponsets(Context c, File weaponsetFile) throws IOException { + if(!weaponsetFile.isFile()) { + // No file == no weaponsets, no error + return new ArrayList(); + } + WeaponsetListPtr weaponsetListPtr = null; + try { + weaponsetListPtr = Flib.INSTANCE.flib_weaponsetlist_from_ini(weaponsetFile.getAbsolutePath()); + if(weaponsetListPtr == null) { + throw new IOException("Unable to read weaponsets from "+weaponsetFile); + } + return weaponsetListPtr.deref(); + } finally { + if(weaponsetListPtr != null) { + Flib.INSTANCE.flib_weaponsetlist_destroy(weaponsetListPtr); + } + } + } + + public static void saveUserWeaponsets(Context c, List weaponsets) throws IOException { + WeaponsetListPtr ptr = WeaponsetListPtr.createJavaOwned(weaponsets); + Flib.INSTANCE.flib_weaponsetlist_to_ini(getUserWeaponsetsFile(c).getAbsolutePath(), ptr); + } +}