]> www.infradead.org Git - users/mchehab/andors-trail.git/commitdiff
Provide setting to disable confirmation dialog box when overwriting a savegame slot.
authorOskar Wiksten <oskar.wiksten@gmail.com>
Sun, 21 Oct 2012 16:26:43 +0000 (18:26 +0200)
committerOskar Wiksten <oskar.wiksten@gmail.com>
Sun, 21 Oct 2012 16:26:43 +0000 (18:26 +0200)
AndorsTrail/res/values/strings.xml
AndorsTrail/res/xml/preferences.xml
AndorsTrail/src/com/gpl/rpg/AndorsTrail/AndorsTrailApplication.java
AndorsTrail/src/com/gpl/rpg/AndorsTrail/AndorsTrailPreferences.java
AndorsTrail/src/com/gpl/rpg/AndorsTrail/activity/LoadSaveActivity.java

index e03f53f71b9203bb48f84cc0ab8a0e0a01ed080e..a826bf0ba72cc3bce83b5a830f0503b7fe158038 100644 (file)
        <!-- Added in v0.6.10 -->
        
        <string name="preferences_movement_dpad_position_title">Virtual d-pad</string>
-       <string name="preferences_movement_dpad_position">Enables a virtual on-screen directional pad to guide movement</string>
+       <string name="preferences_movement_dpad_position">Enables a virtual on-screen directional pad to guide movement.</string>
        <string name="preferences_movement_dpad_minimizeable_title">Minimizable d-pad</string>
        <string name="preferences_movement_dpad_minimizeable">If the virtual d-pad is enabled, this setting allows the d-pad to be minimized by pressing its center.</string>
        
        <string name="iteminfo_effect_decrease_reequip_cost">Lowers AP cost of equipping items in combat by %1$d AP</string>
        
        <string name="loadsave_save_overwrite_confirmation_all">Are you sure you want to overwrite this savegame?</string> 
-               
+       <string-array name="preferences_display_overwrite_savegame_entries">
+               <item>Always show confirmation dialog box</item>
+               <item>Only show when overwriting a different playername</item>
+               <item>Never display confirmation dialog box</item>
+       </string-array>
+       <string-array name="preferences_display_overwrite_savegame_values">
+               <item>0</item>
+               <item>1</item>
+               <item>2</item>
+       </string-array>
+       <string name="preferences_dialog_overwrite_savegame_title">Confirm overwriting savegames</string>
+       <string name="preferences_dialog_overwrite_savegame">Gives a question about whether you want to overwrite when saving to a savegame slot that already contains a savegame.</string>
+       
+                       
 </resources>
index 656df7d0afe17566a5852b7d7dd1f38265952baf..8605f2621a7de53e40c9745466ad8a15ad222519 100644 (file)
                        android:defaultValue="0"
                        android:entries="@array/preferences_display_loot"
                        android:entryValues="@array/preferences_display_loot_values" />
+               <ListPreference
+                       android:title="@string/preferences_dialog_overwrite_savegame_title"
+                       android:summary="@string/preferences_dialog_overwrite_savegame"
+                       android:key="display_overwrite_savegame"
+                       android:defaultValue="0"
+                       android:entries="@array/preferences_display_overwrite_savegame_entries"
+                       android:entryValues="@array/preferences_display_overwrite_savegame_values" />
        </PreferenceCategory>
        <PreferenceCategory
                android:title="@string/preferences_combat_category">
index a593c79b0471a394611d807d5ad86bcab9317f19..e3dfdef33884d4dd3a1506e2e9d241b042112b84 100644 (file)
@@ -16,7 +16,7 @@ public final class AndorsTrailApplication extends Application {
        public static final boolean DEVELOPMENT_DEBUGRESOURCES = false;\r
        public static final boolean DEVELOPMENT_FORCE_STARTNEWGAME = false;\r
        public static final boolean DEVELOPMENT_FORCE_CONTINUEGAME = false;\r
-       public static final boolean DEVELOPMENT_DEBUGBUTTONS = true;\r
+       public static final boolean DEVELOPMENT_DEBUGBUTTONS = false;\r
        public static final boolean DEVELOPMENT_VALIDATEDATA = false;\r
        public static final boolean DEVELOPMENT_DEBUGMESSAGES = false;\r
        public static final boolean DEVELOPMENT_INCOMPATIBLE_SAVEGAMES = DEVELOPMENT_DEBUGRESOURCES;\r
index 3993bb79659562efa5501aceef89af2ed8eedb37..1daefb2914d3a53d25ad4c2ab35ede1ff814b435 100644 (file)
@@ -22,6 +22,9 @@ public class AndorsTrailPreferences {
        public static final int DPAD_POSITION_UPPER_LEFT = 6;\r
        public static final int DPAD_POSITION_UPPER_RIGHT = 7;\r
        public static final int DPAD_POSITION_UPPER_CENTER = 8;\r
+       public static final int CONFIRM_OVERWRITE_SAVEGAME_ALWAYS = 0;\r
+       public static final int CONFIRM_OVERWRITE_SAVEGAME_WHEN_PLAYERNAME_DIFFERS = 1;\r
+       public static final int CONFIRM_OVERWRITE_SAVEGAME_NEVER = 2;\r
        \r
        public boolean confirmRest = true;\r
        public boolean confirmAttack = true;\r
@@ -35,6 +38,7 @@ public class AndorsTrailPreferences {
        public boolean dpadMinimizeable = true;\r
        public boolean optimizedDrawing = false;\r
        public boolean enableUiAnimations = true;\r
+       public int displayOverwriteSavegame = CONFIRM_OVERWRITE_SAVEGAME_ALWAYS;\r
        \r
        public static void read(final Context androidContext, AndorsTrailPreferences dest) {\r
                try {\r
@@ -50,6 +54,7 @@ public class AndorsTrailPreferences {
                        dest.dpadMinimizeable = prefs.getBoolean("dpadMinimizeable", true);\r
                        dest.optimizedDrawing = prefs.getBoolean("optimized_drawing", false);\r
                        dest.enableUiAnimations = prefs.getBoolean("enableUiAnimations", true);\r
+                       dest.displayOverwriteSavegame = Integer.parseInt(prefs.getString("display_overwrite_savegame", Integer.toString(CONFIRM_OVERWRITE_SAVEGAME_ALWAYS)));\r
                        \r
                        // This might be implemented as a skill in the future.\r
                        //dest.movementAggressiveness = Integer.parseInt(prefs.getString("movementaggressiveness", Integer.toString(MOVEMENTAGGRESSIVENESS_NORMAL)));\r
@@ -66,6 +71,7 @@ public class AndorsTrailPreferences {
                        dest.dpadMinimizeable = true;\r
                        dest.optimizedDrawing = false;\r
                        dest.enableUiAnimations = true;\r
+                       dest.displayOverwriteSavegame = CONFIRM_OVERWRITE_SAVEGAME_ALWAYS;\r
                }\r
        }\r
        \r
index 79c93659f0e7a5dc051a08280d60b51e519348c2..ca1adb95aeb1fd19edd1934019ef1354a5d0f3f8 100644 (file)
@@ -16,6 +16,7 @@ import android.widget.Button;
 import android.widget.TextView;\r
 \r
 import com.gpl.rpg.AndorsTrail.AndorsTrailApplication;\r
+import com.gpl.rpg.AndorsTrail.AndorsTrailPreferences;\r
 import com.gpl.rpg.AndorsTrail.R;\r
 import com.gpl.rpg.AndorsTrail.Savegames;\r
 import com.gpl.rpg.AndorsTrail.Savegames.FileHeader;\r
@@ -26,7 +27,7 @@ public final class LoadSaveActivity extends Activity implements OnClickListener
        private static final int SLOT_NUMBER_CREATE_NEW_SLOT = -1;\r
        private static final int SLOT_NUMBER_FIRST_SLOT = 1;\r
        private ModelContainer model;\r
-       \r
+       private AndorsTrailPreferences preferences;\r
        \r
     @Override\r
     public void onCreate(Bundle savedInstanceState) {\r
@@ -35,6 +36,7 @@ public final class LoadSaveActivity extends Activity implements OnClickListener
         final AndorsTrailApplication app = AndorsTrailApplication.getApplicationFromActivity(this);\r
         AndorsTrailApplication.setWindowParameters(this, app.preferences);\r
         this.model = app.world.model;\r
+        this.preferences = app.preferences;\r
         \r
         String loadsave = getIntent().getData().getLastPathSegment().toString();\r
         isLoading = (loadsave.equalsIgnoreCase("load"));\r
@@ -97,20 +99,36 @@ public final class LoadSaveActivity extends Activity implements OnClickListener
        LoadSaveActivity.this.finish();\r
     }\r
 \r
-       private boolean requiresConfirmation(int slot) {\r
-               if (isLoading) return false;\r
-               if (slot == SLOT_NUMBER_CREATE_NEW_SLOT) return false;                                  // if we're creating a new slot\r
-               return true;\r
+       private String getConfirmOverwriteQuestion(int slot) {\r
+               if (isLoading) return null;\r
+               if (slot == SLOT_NUMBER_CREATE_NEW_SLOT) return null;                                   // if we're creating a new slot\r
+               \r
+               if (preferences.displayOverwriteSavegame == AndorsTrailPreferences.CONFIRM_OVERWRITE_SAVEGAME_ALWAYS) { \r
+                       return getString(R.string.loadsave_save_overwrite_confirmation_all);\r
+               } else if (preferences.displayOverwriteSavegame == AndorsTrailPreferences.CONFIRM_OVERWRITE_SAVEGAME_NEVER) { \r
+                       return null;\r
+               }\r
+               \r
+               final String currentPlayerName = model.player.actorTraits.name;\r
+               final FileHeader header = Savegames.quickload(this, slot);\r
+               if (header == null) return null;\r
+\r
+               final String savedPlayerName = header.playerName;\r
+               if (currentPlayerName.equals(savedPlayerName)) return null;                     // if the names match\r
+               \r
+               return getString(R.string.loadsave_save_overwrite_confirmation, savedPlayerName, currentPlayerName);\r
        }\r
        \r
        @Override\r
        public void onClick(View view) {\r
                final int slot = (Integer) view.getTag();\r
-               if (requiresConfirmation(slot)) {\r
+               final String message = getConfirmOverwriteQuestion(slot);\r
+               \r
+               if (message != null) {\r
                        new AlertDialog.Builder(this)\r
                        .setIcon(android.R.drawable.ic_dialog_alert)\r
                        .setTitle(R.string.loadsave_save_overwrite_confirmation_title)\r
-                       .setMessage(getString(R.string.loadsave_save_overwrite_confirmation_all))\r
+                       .setMessage(message)\r
                        .setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() {\r
                            @Override\r
                            public void onClick(DialogInterface dialog, int which) {\r