Introduced state_quick_item so we can safly check if there is a valid quicksave slot wihtout messing around with state_Default_item which is supposed to always show a valid slot in the first place

This commit is contained in:
zicodxx 2010-07-19 17:07:12 +00:00
parent 785fffca90
commit bc775b1331
4 changed files with 9 additions and 8 deletions

View file

@ -3,6 +3,7 @@ D1X-Rebirth Changelog
20100719
--------
misc/hmp.c: Did not close hmp after MIDI conversion which caused some unfree memory - fixed
main/gameseq.c, main/state.c, main/state.h: Introduced state_quick_item so we can safly check if there is a valid quicksave slot wihtout messing around with state_Default_item which is supposed to always show a valid slot in the first place
20100718
--------

View file

@ -731,12 +731,11 @@ 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
state_quick_item = -1; // for first blind save, pick slot to save in
Game_mode = GM_NORMAL;

View file

@ -147,7 +147,10 @@ void rpad_string( char * string, int max_chars )
}
#endif
int state_default_item = 0;
static int state_default_item = 0;
//Since state_default_item should ALWAYS point to a valid savegame slot, we use this to check if we once already actually SAVED a game. If yes, state_quick_item will be equal state_default_item, otherwise it should be -1 on every new mission and tell us we need to select a slot for quicksave.
int state_quick_item = -1;
/* Present a menu for selection of a savegame filename.
* For saving, dsc should be a pre-allocated buffer into which the new
@ -212,11 +215,8 @@ int state_get_savegame_filename(char * fname, char * dsc, char * caption, int bl
sc_last_item = -1;
if (blind_save && state_default_item < 0)
{
if (blind_save && state_quick_item < 0)
blind_save = 0; // haven't picked a slot yet
state_default_item = 0;
}
if (blind_save)
choice = state_default_item + 1;
@ -231,7 +231,7 @@ int state_get_savegame_filename(char * fname, char * dsc, char * caption, int bl
if (choice > 0) {
strcpy( fname, filename[choice-1] );
if ( dsc != NULL ) strcpy( dsc, desc[choice-1] );
state_default_item = choice - 1;
state_quick_item = state_default_item = choice - 1;
return choice;
}
return 0;

View file

@ -32,6 +32,7 @@ int state_save_all_sub(char *filename, char *desc, int between_levels);
int state_restore_all_sub(char *filename);
extern uint state_game_id;
extern int state_quick_item;
int state_get_save_file(char * fname, char * dsc, int blind_save);
int state_get_restore_file(char * fname );