Skip to content

Commit 7894ff8

Browse files
committed
AutoSave menu included
1 parent 2a89788 commit 7894ff8

File tree

5 files changed

+136
-8
lines changed

5 files changed

+136
-8
lines changed

Source/Menu/Options.Designer.cs

Lines changed: 74 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Source/Menu/Options.cs

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -440,6 +440,8 @@ void buttonOK_Click(object sender, EventArgs e)
440440
Settings.PressureUnit = comboPressureUnit.SelectedValue.ToString();
441441
Settings.Units = comboOtherUnits.SelectedValue.ToString();
442442
Settings.DisableTCSScripts = !checkEnableTCSScripts.Checked; // Inverted as "Enable scripts" is better UI than "Disable scripts"
443+
Settings.AutoSaveActive = checkAutoSaveActive.Checked;
444+
Settings.AutoSaveInterval = ButtonAutoSave15.Checked ? 15 : ButtonAutoSave30.Checked ? 30 : 60;
443445

444446
// Audio tab
445447
Settings.SoundVolumePercent = (int)numericSoundVolumePercent.Value;
@@ -798,6 +800,56 @@ private void checkPerformanceTuner_Click(object sender, EventArgs e)
798800
labelPerformanceTunerTarget.Enabled = checkPerformanceTuner.Checked;
799801
}
800802

803+
private void checkAutoSave_checkchanged(object sender, EventArgs e)
804+
{
805+
if (checkAutoSaveActive.Checked)
806+
{
807+
ButtonAutoSave15.Enabled = true;
808+
ButtonAutoSave15.Checked = Settings.AutoSaveInterval == 15;
809+
ButtonAutoSave30.Enabled = true;
810+
ButtonAutoSave30.Checked = Settings.AutoSaveInterval == 30;
811+
ButtonAutoSave60.Enabled = true;
812+
ButtonAutoSave60.Checked = Settings.AutoSaveInterval == 60;
813+
}
814+
else
815+
{
816+
ButtonAutoSave15.Checked = false;
817+
ButtonAutoSave15.Enabled = false;
818+
ButtonAutoSave30.Checked = false;
819+
ButtonAutoSave30.Enabled = false;
820+
ButtonAutoSave60.Checked = false;
821+
ButtonAutoSave60.Enabled = false;
822+
}
823+
}
824+
825+
private void buttonAutoSaveInterval_checkchanged(object sender, EventArgs e)
826+
{
827+
if (ButtonAutoSave15.Checked)
828+
{
829+
Settings.AutoSaveInterval = 15;
830+
ButtonAutoSave30.Checked = false;
831+
ButtonAutoSave60.Checked = false;
832+
}
833+
else if (ButtonAutoSave30.Checked)
834+
{
835+
Settings.AutoSaveInterval = 30;
836+
ButtonAutoSave15.Checked = false;
837+
ButtonAutoSave60.Checked = false;
838+
}
839+
else if (ButtonAutoSave60.Checked)
840+
{
841+
Settings.AutoSaveInterval = 60;
842+
ButtonAutoSave15.Checked = false;
843+
ButtonAutoSave30.Checked = false;
844+
}
845+
else
846+
{
847+
Settings.AutoSaveInterval = 15;
848+
ButtonAutoSave30.Checked = false;
849+
ButtonAutoSave60.Checked = false;
850+
}
851+
}
852+
801853
#region Help for Options
802854
// The icons all share the same code which assumes they are named according to a simple scheme as follows:
803855
// 1. To add a new Help Icon, copy an existing one and paste it onto the tab.
@@ -1081,5 +1133,6 @@ private void HelpIcon_MouseLeave(object sender, EventArgs _)
10811133
hover.Leave();
10821134
}
10831135
#endregion
1136+
10841137
}
10851138
}

Source/ORTS.Settings/UserSettings.cs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -169,6 +169,10 @@ public enum DirectXFeature
169169
public String Units { get; set; }
170170
[Default(false)]
171171
public bool DisableTCSScripts { get; set; }
172+
[Default(false)]
173+
public bool AutoSaveActive { get; set; }
174+
[Default (15)]
175+
public int AutoSaveInterval { get; set; }
172176

173177
// Audio settings:
174178
[Default(100)]

Source/RunActivity/Viewer3D/Popups/QuitWindow.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ void buttonQuit_Click(Control arg1, Point arg2)
7070
void buttonSave_Click(Control arg1, Point arg2)
7171
{
7272
GameStateRunActivity.Save();
73-
Owner.Viewer.LastSave = Owner.Viewer.RealTime + 60 * 15;
73+
Owner.Viewer.LastSave = Owner.Viewer.RealTime + 60 * Owner.Viewer.Simulator.Settings.AutoSaveInterval;
7474
}
7575

7676
void buttonContinue_Click(Control arg1, Point arg2)

Source/RunActivity/Viewer3D/Viewer.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -297,7 +297,7 @@ public Viewer(Simulator simulator, Orts.Viewer3D.Processes.Game game)
297297
Settings = simulator.Settings;
298298
Use3DCabProperty = Settings.GetSavingProperty<bool>("Use3DCab");
299299

300-
LastSave = 15 * 60;
300+
LastSave = Simulator.Settings.AutoSaveInterval * 60;
301301

302302
RenderProcess = game.RenderProcess;
303303
UpdaterProcess = game.UpdaterProcess;
@@ -740,10 +740,10 @@ public void Update(RenderFrame frame, float elapsedRealTime)
740740
var elapsedTime = new ElapsedTime(Simulator.GetElapsedClockSeconds(elapsedRealTime), elapsedRealTime);
741741

742742
// auto save
743-
if (RealTime > LastSave && !Simulator.Paused)
743+
if (Simulator.Settings.AutoSaveActive && RealTime > LastSave && !Simulator.Paused)
744744
{
745745
GameStateRunActivity.Save();
746-
LastSave = RealTime + 15 * 60;
746+
LastSave = RealTime + Simulator.Settings.AutoSaveInterval * 60;
747747
}
748748

749749
// show message
@@ -944,7 +944,7 @@ void HandleUserInput(ElapsedTime elapsedTime)
944944
if (UserInput.IsPressed(UserCommand.GameSave))
945945
{
946946
GameStateRunActivity.Save();
947-
LastSave = RealTime + 60 * 15;
947+
LastSave = RealTime + 60 * Simulator.Settings.AutoSaveInterval;
948948
}
949949
if (UserInput.IsPressed(UserCommand.DisplayHelpWindow)) if (UserInput.IsDown(UserCommand.DisplayNextWindowTab)) HelpWindow.TabAction(); else HelpWindow.Visible = !HelpWindow.Visible;
950950
if (UserInput.IsPressed(UserCommand.DisplayTrackMonitorWindow)) if (UserInput.IsDown(UserCommand.DisplayNextWindowTab)) TrackMonitorWindow.TabAction(); else TrackMonitorWindow.Visible = !TrackMonitorWindow.Visible;

0 commit comments

Comments
 (0)