<!-- 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>
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">
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
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
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
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
dest.dpadMinimizeable = true;\r
dest.optimizedDrawing = false;\r
dest.enableUiAnimations = true;\r
+ dest.displayOverwriteSavegame = CONFIRM_OVERWRITE_SAVEGAME_ALWAYS;\r
}\r
}\r
\r
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
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
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
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