modify the "maxsaves slider" to handle the number of autosaves instead

due to Dave's additon of removing autosaves the function of this slider
was gone anyway

someone please review my changes to make sure that i do not break
something...
This commit is contained in:
Nils Kneuper 2008-01-06 19:35:59 +00:00
parent 95e086127d
commit 2bacb85f05
4 changed files with 27 additions and 53 deletions

View file

@ -456,19 +456,9 @@ bool ask_delete_saves()
return utils::string_bool(preferences::get("ask_delete"), true);
}
int savemax()
{
return lexical_cast_default<int>(preferences::get("save_max"), preferences::INFINITE_SAVES);
}
void set_savemax(int value)
{
preferences::set("save_max", lexical_cast<std::string>(value));
}
int autosavemax()
{
return lexical_cast_default<int>(preferences::get("auto_save_max"), 5);
return lexical_cast_default<int>(preferences::get("auto_save_max"), 10);
}
void set_autosavemax(int value)

View file

@ -135,13 +135,10 @@ namespace preferences {
void set_ask_delete_saves(bool value);
bool ask_delete_saves();
void set_savemax(int value);
int savemax();
void set_autosavemax(int value);
int autosavemax();
const int INFINITE_SAVES = 61;
const int INFINITE_AUTO_SAVES = 61;
bool show_floating_labels();
void set_show_floating_labels(bool value);

View file

@ -103,7 +103,7 @@ private:
// change
gui::slider music_slider_, sound_slider_, UI_sound_slider_, bell_slider_,
scroll_slider_, gamma_slider_, chat_lines_slider_,
buffer_size_slider_, idle_anim_slider_, savemax_slider_;
buffer_size_slider_, idle_anim_slider_, autosavemax_slider_;
gui::list_slider<double> turbo_slider_;
gui::button fullscreen_button_, turbo_button_, show_ai_moves_button_,
show_grid_button_, save_replays_button_, delete_saves_button_,
@ -127,7 +127,7 @@ private:
gui::label music_label_, sound_label_, UI_sound_label_, bell_label_,
scroll_label_, gamma_label_, chat_lines_label_,
turbo_slider_label_, sample_rate_label_, buffer_size_label_,
idle_anim_slider_label_, savemax_slider_label_;
idle_anim_slider_label_, autosavemax_slider_label_;
gui::textbox sample_rate_input_, friends_input_;
unsigned slider_label_width_;
@ -152,7 +152,7 @@ preferences_dialog::preferences_dialog(display& disp, const config& game_cfg)
UI_sound_slider_(disp.video()), bell_slider_(disp.video()),
scroll_slider_(disp.video()), gamma_slider_(disp.video()),
chat_lines_slider_(disp.video()), buffer_size_slider_(disp.video()),
idle_anim_slider_(disp.video()), savemax_slider_(disp.video()),
idle_anim_slider_(disp.video()), autosavemax_slider_(disp.video()),
turbo_slider_(disp.video()),
@ -203,7 +203,7 @@ preferences_dialog::preferences_dialog(display& disp, const config& game_cfg)
turbo_slider_label_(disp.video(), "", font::SIZE_SMALL ),
sample_rate_label_(disp.video(), _("Sample Rate (Hz):")), buffer_size_label_(disp.video(), ""),
idle_anim_slider_label_(disp.video(), _("Frequency:")),
savemax_slider_label_(disp.video(), "", font::SIZE_SMALL),
autosavemax_slider_label_(disp.video(), "", font::SIZE_SMALL),
sample_rate_input_(disp.video(), 70),
friends_input_(disp.video(), 170),
@ -329,10 +329,10 @@ preferences_dialog::preferences_dialog(display& disp, const config& game_cfg)
idle_anim_slider_.set_value(idle_anim_rate());
idle_anim_slider_.set_help_string(_("Set the frequency of unit idle animations"));
savemax_slider_.set_min(0);
savemax_slider_.set_max(preferences::INFINITE_SAVES);
savemax_slider_.set_value(savemax());
savemax_slider_.set_help_string(_("Set maximum saves to be retained"));
autosavemax_slider_.set_min(1); //at least one autosave is stored
autosavemax_slider_.set_max(preferences::INFINITE_AUTO_SAVES);
autosavemax_slider_.set_value(autosavemax());
autosavemax_slider_.set_help_string(_("Set maximum number of automatic saves to be retained"));
show_ai_moves_button_.set_check(!show_ai_moves());
@ -410,7 +410,7 @@ handler_vector preferences_dialog::handler_members()
h.push_back(&chat_lines_slider_);
h.push_back(&turbo_slider_);
h.push_back(&idle_anim_slider_);
h.push_back(&savemax_slider_);
h.push_back(&autosavemax_slider_);
h.push_back(&buffer_size_slider_);
h.push_back(&fullscreen_button_);
h.push_back(&turbo_button_);
@ -460,7 +460,7 @@ handler_vector preferences_dialog::handler_members()
h.push_back(&gamma_label_);
h.push_back(&turbo_slider_label_);
h.push_back(&idle_anim_slider_label_);
h.push_back(&savemax_slider_label_);
h.push_back(&autosavemax_slider_label_);
h.push_back(&chat_lines_label_);
h.push_back(&sample_rate_label_);
h.push_back(&buffer_size_label_);
@ -508,10 +508,10 @@ void preferences_dialog::update_location(SDL_Rect const &rect)
ypos += short_interline; show_grid_button_.set_location(rect.x, ypos);
ypos += item_interline; save_replays_button_.set_location(rect.x, ypos);
ypos += short_interline; delete_saves_button_.set_location(rect.x, ypos);
ypos += short_interline; savemax_slider_label_.set_location(rect.x, ypos);
SDL_Rect savemax_rect = { rect.x, ypos+short_interline,
ypos += short_interline; autosavemax_slider_label_.set_location(rect.x, ypos);
SDL_Rect autosavemax_rect = { rect.x, ypos+short_interline,
rect.w - right_border, 0};
savemax_slider_.set_location(savemax_rect);
autosavemax_slider_.set_location(autosavemax_rect);
hotkeys_button_.set_location(rect.x, bottom_row_y - hotkeys_button_.height());
// Display tab
@ -678,7 +678,7 @@ void preferences_dialog::process_event()
}
set_scroll_speed(scroll_slider_.value());
set_savemax(savemax_slider_.value());
set_autosavemax(autosavemax_slider_.value());
set_turbo_speed(turbo_slider_.item_selected());
std::stringstream buf;
@ -686,11 +686,11 @@ void preferences_dialog::process_event()
turbo_slider_label_.set_text(buf.str());
std::stringstream buf2;
if (savemax_slider_.value() == preferences::INFINITE_SAVES)
buf2 << _("Maximum Saves: ") << _("infinite");
if (autosavemax_slider_.value() == preferences::INFINITE_AUTO_SAVES)
buf2 << _("Maximum Auto-Saves: ") << _("infinite");
else
buf2 << _("Maximum Saves: ") << savemax_slider_.value();
savemax_slider_label_.set_text(buf2.str());
buf2 << _("Maximum Auto-Saves: ") << autosavemax_slider_.value();
autosavemax_slider_label_.set_text(buf2.str());
return;
}
@ -1025,10 +1025,10 @@ void preferences_dialog::set_selection(int index)
show_grid_button_.hide(hide_general);
save_replays_button_.hide(hide_general);
delete_saves_button_.hide(hide_general);
savemax_slider_label_.hide(hide_general);
savemax_slider_label_.enable(!hide_general);
savemax_slider_.hide(hide_general);
savemax_slider_.enable(!hide_general);
autosavemax_slider_label_.hide(hide_general);
autosavemax_slider_label_.enable(!hide_general);
autosavemax_slider_.hide(hide_general);
autosavemax_slider_.enable(!hide_general);
const bool hide_display = tab_ != DISPLAY_TAB;
gamma_label_.hide(hide_display);

View file

@ -49,26 +49,13 @@
namespace {
void remove_old_saves()
{
int countdown = preferences::savemax();
if (countdown == preferences::INFINITE_SAVES)
return;
std::vector<save_info> games = get_saves_list();
LOG_NG << "Removing old saves.\n";
for (std::vector<save_info>::iterator i = games.begin(); i != games.end(); i++) {
if (countdown-- < 0) {
LOG_NG << "Deleting savegame '" << i->name << "'\n";
delete_game(i->name);
}
}
}
void remove_old_auto_saves()
{
const std::string auto_save = _("Auto-Save");
int countdown = preferences::autosavemax();
if (countdown == preferences::INFINITE_AUTO_SAVES)
return;
std::vector<save_info> games = get_saves_list(NULL, &auto_save);
for (std::vector<save_info>::iterator i = games.begin(); i != games.end(); i++) {
if (countdown-- < 0) {