void do_save_game_menu() { newmenu_item m[N_SAVE_SLOTS]; char *saved_text_ptrs[N_SAVE_SLOTS]; char menu_text[N_SAVE_SLOTS][GAME_NAME_LEN+1]; //+1 for terminating zero int i,choice; get_game_list(saved_text_ptrs); for (i=0;i<N_SAVE_SLOTS;i++) { strcpy(menu_text[i],saved_text_ptrs[i]); m[i].type = NM_TYPE_INPUT_MENU; m[i].text_len = GAME_NAME_LEN; m[i].text = menu_text[i]; if (!menu_text[i][0]) strcpy(menu_text[i],TXT_EMPTY); } choice = newmenu_do( NULL, TXT_SAVE_GAME_SLOTS, N_SAVE_SLOTS, m, NULL ); if (choice != -1) { int ret; if ((ret=save_player_game(choice,m[choice].text)) != EZERO) nm_messagebox( NULL,1, TXT_CONTINUE,"%s\n%s\n\n", TXT_SAVE_ERROR, strerror(ret)); } }
// ----------------------------------------------------------------------------- // Create the main menu. void create_main_menu(newmenu_item *m, int *menu_choice, int *callers_num_options) { int num_options; #ifndef DEMO_ONLY num_options = 0; // // Move down to allow for space to display "Destination Saturn" // if (Saturn) { // int i; // // for (i=0; i<4; i++) // ADD_ITEM("", 0, -1); // // if (First_time) { // main_menu_choice = 4; // First_time = 0; // } // } ADD_ITEM(TXT_NEW_GAME,MENU_NEW_GAME,KEY_N); #ifdef SHAREWARE if (get_game_list(NULL)>0) #endif ADD_ITEM(TXT_LOAD_GAME,MENU_LOAD_GAME,KEY_L); ADD_ITEM(TXT_MULTIPLAYER_,MENU_MULTIPLAYER,-1); ADD_ITEM(TXT_OPTIONS_, MENU_CONFIG, -1 ); ADD_ITEM(TXT_CHANGE_PILOTS,MENU_NEW_PLAYER,unused); ADD_ITEM(TXT_VIEW_DEMO,MENU_DEMO_PLAY,0); ADD_ITEM(TXT_VIEW_SCORES,MENU_VIEW_SCORES,KEY_V); #ifdef MAC_SHAREWARE ADD_ITEM(TXT_ORDERING_INFO,MENU_ORDER_INFO,-1); #endif ADD_ITEM(TXT_CREDITS,MENU_SHOW_CREDITS,-1); #endif ADD_ITEM(TXT_QUIT,MENU_QUIT,KEY_Q); #ifndef RELEASE if (!(Game_mode & GM_MULTI )) { //m[num_options].type=NM_TYPE_TEXT; //m[num_options++].text=" Debug options:"; ADD_ITEM(" Load level...",MENU_LOAD_LEVEL ,KEY_N); #ifdef EDITOR ADD_ITEM(" Editor", MENU_EDITOR, KEY_E); #endif } // ADD_ITEM( " Play song", MENU_PLAY_SONG, -1 ); #endif *callers_num_options = num_options; }
void do_load_game_menu() { newmenu_item m[N_SAVE_SLOTS]; char *saved_text[N_SAVE_SLOTS]; int i,choice; get_game_list(saved_text); for (i=0;i<N_SAVE_SLOTS;i++) { if (saved_text[i][0]) { m[i].type = NM_TYPE_MENU; m[i].text = saved_text[i]; } else { m[i].type = NM_TYPE_TEXT; m[i].text = TXT_EMPTY; } } choice = newmenu_do( NULL, TXT_LOAD_GAME, N_SAVE_SLOTS, m, NULL ); if (choice != -1) { int ret; if ((ret=load_player_game(choice)) == EZERO) ResumeSavedGame(Players[Player_num].level); else { newmenu_item m1[3]; m1[0].type = NM_TYPE_TEXT; m1[0].text = strerror(ret); m1[1].type = NM_TYPE_TEXT; m1[1].text = ""; m1[2].type = NM_TYPE_TEXT; m1[2].text = TXT_ENTER_TO_CONT; newmenu_do( NULL, TXT_ERR_LOADING_GAME, 3, m1, NULL ); } } }