Put fast save back, using Alt-F1 instead of F6

This commit is contained in:
kreatordxx 2010-02-25 03:08:10 +00:00
parent 1300fe7ffc
commit 700156eb36
7 changed files with 39 additions and 16 deletions

View file

@ -1,5 +1,9 @@
D1X-Rebirth Changelog
20100225
--------
main/game.c, main/gamecntl.c, main/gameseq.c, main/state.c, main/state.h: Put fast save back, using Alt-F1 instead of F6
20100224
--------
main/kconfig.c: Due to the change of GameCfg.ControlType, Mouselook was broken - fixed

View file

@ -734,7 +734,7 @@ extern int Death_sequence_aborted;
void show_help()
{
int nitems = 0;
newmenu_item m[25];
newmenu_item m[26];
m[nitems].type = NM_TYPE_TEXT; m[nitems++].text = TXT_HELP_ESC;
m[nitems].type = NM_TYPE_TEXT; m[nitems++].text = "SHIFT-ESC\t SHOW GAME LOG";
@ -742,8 +742,10 @@ void show_help()
m[nitems].type = NM_TYPE_TEXT; m[nitems++].text = TXT_HELP_F2;
#if !(defined(__APPLE__) || defined(macintosh))
m[nitems].type = NM_TYPE_TEXT; m[nitems++].text = "Alt-F2/F3\t SAVE/LOAD GAME";
m[nitems].type = NM_TYPE_TEXT; m[nitems++].text = "Alt-F1\t Fast Save";
#else
m[nitems].type = NM_TYPE_TEXT; m[nitems++].text = "Alt-F2/F3 (\x85-s/o)\t SAVE/LOAD GAME";
m[nitems].type = NM_TYPE_TEXT; m[nitems++].text = "Alt-F2/F3 (\x85-SHIFT-s/\x85-o)\t SAVE/LOAD GAME";
m[nitems].type = NM_TYPE_TEXT; m[nitems++].text = "Alt-F1 (\x85-s)\t Fast Save";
#endif
m[nitems].type = NM_TYPE_TEXT; m[nitems++].text = "F3\t SWITCH COCKPIT MODES";
m[nitems].type = NM_TYPE_TEXT; m[nitems++].text = TXT_HELP_F5;

View file

@ -656,9 +656,11 @@ void HandleGameKey(int key)
break;
}
KEY_MAC(case KEY_COMMAND+KEY_S:)
KEY_MAC(case KEY_COMMAND+KEY_SHIFTED+KEY_S:)
KEY_MAC(case KEY_COMMAND+KEY_ALTED+KEY_2:)
case KEY_ALTED+KEY_F2: if (!Player_is_dead) state_save_all( 0 ); break; // 0 means not between levels.
case KEY_ALTED+KEY_F2: if (!Player_is_dead) state_save_all( 0, 0 ); break;
KEY_MAC(case KEY_COMMAND+KEY_S:)
case KEY_ALTED+KEY_F1: if (!Player_is_dead) state_save_all(0, 1); break;
KEY_MAC(case KEY_COMMAND+KEY_O:)
KEY_MAC(case KEY_COMMAND+KEY_ALTED+KEY_3:)
case KEY_ALTED+KEY_F3: if (!Player_is_dead) state_restore_all(1); break;

View file

@ -728,10 +728,13 @@ void InitPlayerObject()
}
extern void game_disable_cheats();
extern int state_default_item;
//starts a new game on the given level
void StartNewGame(int start_level)
{
state_default_item = -2; // for first blind save, pick slot to save in
Game_mode = GM_NORMAL;
Function_mode = FMODE_GAME;

View file

@ -147,13 +147,15 @@ void rpad_string( char * string, int max_chars )
}
#endif
int state_default_item = 0;
/* Present a menu for selection of a savegame filename.
* For saving, dsc should be a pre-allocated buffer into which the new
* savegame description will be stored.
* For restoring, dsc should be NULL, in which case empty slots will not be
* selectable and savagames descriptions will not be editable.
*/
int state_get_savegame_filename(char * fname, char * dsc, char * caption )
int state_get_savegame_filename(char * fname, char * dsc, char * caption, int blind_save)
{
PHYSFS_file * fp;
int i, choice, version, nsaves;
@ -163,7 +165,6 @@ int state_get_savegame_filename(char * fname, char * dsc, char * caption )
grs_bitmap *sc_bmp[NUM_SAVES];
char id[5];
int valid;
static int state_default_item = 0;
nsaves=0;
m[0].type = NM_TYPE_TEXT; m[0].text = "\n\n\n\n";
@ -210,7 +211,17 @@ int state_get_savegame_filename(char * fname, char * dsc, char * caption )
}
sc_last_item = -1;
choice = newmenu_do3( NULL, caption, NUM_SAVES+1, m, (int (*)(newmenu *, d_event *, void *))state_callback, sc_bmp, state_default_item + 1, NULL, -1, -1 );
if (blind_save && state_default_item < 0)
{
blind_save = 0; // haven't picked a slot yet
state_default_item = 0;
}
if (blind_save)
choice = state_default_item + 1;
else
choice = newmenu_do3( NULL, caption, NUM_SAVES+1, m, (int (*)(newmenu *, d_event *, void *))state_callback, sc_bmp, state_default_item + 1, NULL, -1, -1 );
for (i=0; i<NUM_SAVES; i++ ) {
if ( sc_bmp[i] )
@ -226,14 +237,14 @@ int state_get_savegame_filename(char * fname, char * dsc, char * caption )
return 0;
}
int state_get_save_file(char * fname, char * dsc )
int state_get_save_file(char * fname, char * dsc, int blind_save)
{
return state_get_savegame_filename(fname, dsc, "Save Game");
return state_get_savegame_filename(fname, dsc, "Save Game", blind_save);
}
int state_get_restore_file(char * fname )
{
return state_get_savegame_filename(fname, NULL, "Select Game to Restore");
return state_get_savegame_filename(fname, NULL, "Select Game to Restore", 0);
}
int state_save_old_game(int slotnum, char * sg_name, player * sg_player,
@ -365,7 +376,7 @@ int state_save_old_game(int slotnum, char * sg_name, player * sg_player,
// -----------------------------------------------------------------------------------
int state_save_all(int between_levels)
int state_save_all(int between_levels, int blind_save)
{
int rval;
char filename[128], desc[DESC_LENGTH+1];
@ -378,7 +389,8 @@ int state_save_all(int between_levels)
stop_time();
if (!state_get_save_file(filename,desc)) {
if (!state_get_save_file(filename, desc, blind_save))
{
start_time();
return 0;
}
@ -386,7 +398,7 @@ int state_save_all(int between_levels)
rval = state_save_all_sub(filename, desc, between_levels);
if (rval)
HUD_init_message("Game saved.");
HUD_init_message("Game saved");
return rval;
}

View file

@ -21,7 +21,7 @@ COPYRIGHT 1993-1998 PARALLAX SOFTWARE CORPORATION. ALL RIGHTS RESERVED.
#ifndef _STATE_H
#define _STATE_H
int state_save_all(int between_levels);
int state_save_all(int between_levels, int blind_save);
int state_restore_all(int in_game );
extern int state_save_old_game(int slotnum, char * sg_name, player * sg_player,
@ -33,7 +33,7 @@ int state_restore_all_sub(char *filename);
extern uint state_game_id;
int state_get_save_file(char * fname, char * dsc );
int state_get_save_file(char * fname, char * dsc, int blind_save);
int state_get_restore_file(char * fname );
#endif

View file

@ -602,7 +602,7 @@ void title_save_game()
gr_palette_read( palette );
gr_palette_load( gr_palette );
#ifndef SHAREWARE
state_save_all(1);
state_save_all(1, 0);
#endif
gr_set_current_canvas(save_canv);