Add: settings to limit your fast-forward game speed

By default this setting is set to 2500% normal game speed.

(cherry picked from commit c3dc27e37e)

# Conflicts:
#	src/gfx.cpp
#	src/gfx_func.h
#	src/settings_type.h
#	src/video/cocoa/cocoa_v.mm
#	src/video/video_driver.cpp
#	src/video/win32_v.cpp
This commit is contained in:
Patric Stout
2021-02-28 14:41:03 +00:00
committed by Jonathan G Rennison
parent 535fdb5c89
commit f183ded9fe
17 changed files with 84 additions and 69 deletions

View File

@@ -228,7 +228,7 @@ struct SaveLoadParams {
StringID error_str; ///< the translatable error message to show
char *extra_msg; ///< the error message
byte ff_state; ///< The state of fast-forward when saving started.
uint16 game_speed; ///< The game speed when saving started.
bool saveinprogress; ///< Whether there is currently a save in progress.
bool networkserversave; ///< Whether this save is being sent to a network client
};
@@ -2907,8 +2907,8 @@ static inline void ClearSaveLoadState()
*/
static void SaveFileStart()
{
_sl.ff_state = _fast_forward;
_fast_forward = 0;
_sl.game_speed = _game_speed;
_game_speed = 100;
SetMouseCursorBusy(true);
InvalidateWindowData(WC_STATUS_BAR, 0, SBI_SAVELOAD_START);
@@ -2918,7 +2918,7 @@ static void SaveFileStart()
/** Update the gui accordingly when saving is done and release locks on saveload. */
static void SaveFileDone()
{
if (_game_mode != GM_MENU) _fast_forward = _sl.ff_state;
if (_game_mode != GM_MENU) _game_speed = _sl.game_speed;
SetMouseCursorBusy(false);
InvalidateWindowData(WC_STATUS_BAR, 0, SBI_SAVELOAD_FINISH);