- Now the quicksave slot must be selected explicitly like in original Doom.

This commit is contained in:
drfrag 2019-08-16 17:28:34 +02:00
parent 7b8754c740
commit 9639956fa4
4 changed files with 12 additions and 5 deletions

View file

@ -164,6 +164,7 @@ bool sendsave; // send a save event next tic
bool sendturn180; // [RH] send a 180 degree turn next tic
bool usergame; // ok to save / end game
bool insave; // Game is saving - used to block exit commands
bool doquicksave = false;
bool timingdemo; // if true, exit with report on completion
bool nodrawers; // for comparative timing purposes
@ -1082,12 +1083,13 @@ void G_Ticker ()
G_DoLoadGame ();
break;
case ga_savegame:
G_DoSaveGame (true, false, savegamefile, savedescription);
G_DoSaveGame (doquicksave, false, savegamefile, savedescription);
gameaction = ga_nothing;
savegamefile = "";
savedescription = "";
break;
case ga_autosave:
doquicksave = false;
G_DoAutoSave ();
gameaction = ga_nothing;
break;
@ -2066,7 +2068,7 @@ void G_DoAutoSave ()
UCVarValue num;
const char *readableTime;
int count = autosavecount != 0 ? autosavecount : 1;
if (nextautosave == -1)
{
nextautosave = (autosavenum + 1) % count;
@ -2089,7 +2091,7 @@ void G_DoAutoSave ()
readableTime = myasctime ();
description.Format("Autosave %s", readableTime);
G_DoSaveGame (false, false, file, description);
G_DoSaveGame (doquicksave, false, file, description);
}
void G_DoQuickSave ()
@ -2100,7 +2102,7 @@ void G_DoQuickSave ()
UCVarValue num;
const char *readableTime;
int count = quicksaverotationcount != 0 ? quicksaverotationcount : 1;
if (quicksavenum < 0)
{
lastquicksave = 0;
@ -2117,7 +2119,7 @@ void G_DoQuickSave ()
readableTime = myasctime ();
description.Format("Quicksave %s", readableTime);
G_DoSaveGame (true, true, file, description);
G_DoSaveGame (doquicksave, true, file, description);
}

View file

@ -38,6 +38,7 @@ class AActor;
//
// GAME
//
void G_DeathMatchSpawnPlayer (int playernum);
struct FPlayerStart *G_PickPlayerStart (int playernum, int flags = 0);
@ -102,6 +103,7 @@ void G_AddViewAngle (int yaw, bool mouse = false);
extern const AActor *SendItemUse, *SendItemDrop;
extern int SendItemDropAmount;
extern bool doquicksave;
#endif

View file

@ -912,6 +912,7 @@ CCMD (menu_load)
CCMD (menu_save)
{ // F2
doquicksave = false;
M_StartControlPanel (true);
M_SetMenu(NAME_Savegamemenu, -1);
}

View file

@ -180,6 +180,8 @@ CCMD (quicksave)
if (gamestate != GS_LEVEL)
return;
doquicksave = true;
// If the quick save rotation is enabled, it handles the save slot.
if (quicksaverotation)
{