void barracks_button_pressed(int n) { switch (n) { case B_PILOT_SCROLL_UP_BUTTON: barracks_scroll_callsign_up(); break; case B_PILOT_SCROLL_DOWN_BUTTON: barracks_scroll_callsign_down(); break; case B_STATS_SCROLL_UP_BUTTON: barracks_scroll_stats_up(); break; case B_STATS_SCROLL_DOWN_BUTTON: barracks_scroll_stats_down(); break; case B_PIC_PREV_PILOT_BUTTON: barracks_prev_pic(); break; case B_PIC_NEXT_PILOT_BUTTON: barracks_next_pic(); break; case B_SQUAD_PREV_BUTTON: barracks_prev_squad_pic(); break; case B_SQUAD_NEXT_BUTTON: barracks_next_squad_pic(); break; case B_PILOT_SET_ACTIVE_BUTTON: if (barracks_new_pilot_selected()){ gamesnd_play_iface(SND_GENERAL_FAIL); // if it's just the missing campaign file that failed for us then don't give the second popup if (Campaign_file_missing) { break; } } else { gamesnd_play_iface(SND_SCROLL); if (Campaign_file_missing) { popup(PF_USE_AFFIRMATIVE_ICON, 1, POPUP_OK, XSTR( "The currently active campaign cannot be found. Please select another...", 1600)); gameseq_post_event(GS_EVENT_CAMPAIGN_ROOM); } } break; case B_ACCEPT_BUTTON: if (Num_pilots && !barracks_pilot_accepted()) { gamesnd_play_iface(SND_COMMIT_PRESSED); if (Campaign_file_missing) { popup(PF_USE_AFFIRMATIVE_ICON, 1, POPUP_OK, XSTR( "The currently active campaign cannot be found. Please select another...", 1600)); gameseq_post_event(GS_EVENT_CAMPAIGN_ROOM); } else { gameseq_post_event(GS_EVENT_MAIN_MENU); } } else { gamesnd_play_iface(SND_GENERAL_FAIL); // if it's just the missing campaign file that failed for us then don't give the second popup if (Campaign_file_missing) { break; } } break; case B_PILOT_CLONE_BUTTON: if (Num_pilots < 1) { gamesnd_play_error_beep(); break; } Clone_flag = 1; barracks_create_new_pilot(); break; case B_PILOT_CONVERT_BUTTON: { /* New Pilot code no longer needs a conversion function. */ popup(PF_TITLE_BIG | PF_TITLE_BLUE | PF_USE_AFFIRMATIVE_ICON, 1, POPUP_OK, XSTR("Disabled!\n\n\nMulti and Single Player Pilot files are now identical.\n\n" "Conversion between the two is no longer necessary.", 1601)); /* // no actual conversion with new pilot code if (Player_sel_mode == PLAYER_SELECT_MODE_SINGLE) { barracks_init_player_stuff(PLAYER_SELECT_MODE_MULTI); } else { // make sure we don't carry over the multi flag if (Cur_pilot->flags & PLAYER_FLAGS_IS_MULTI) { Cur_pilot->flags &= ~PLAYER_FLAGS_IS_MULTI; } barracks_init_player_stuff(PLAYER_SELECT_MODE_SINGLE); } gamesnd_play_iface(SND_USER_SELECT); */ break; } case B_PILOT_CREATE_BUTTON: Clone_flag = 0; barracks_create_new_pilot(); break; case B_HELP_BUTTON: launch_context_help(); gamesnd_play_iface(SND_HELP_PRESSED); break; case B_OPTION_BUTTON: gamesnd_play_iface(SND_SWITCH_SCREENS); gameseq_post_event(GS_EVENT_OPTIONS_MENU); break; case B_STATS_MEDAL_BUTTON: gamesnd_play_iface(SND_SWITCH_SCREENS); gameseq_post_event(GS_EVENT_VIEW_MEDALS); break; case B_PILOT_DELETE_BUTTON: barracks_delete_pilot(); break; case B_PILOT_SINGLE_MODE_BUTTON: if (Player_sel_mode != PLAYER_SELECT_MODE_SINGLE) { gamesnd_play_iface(SND_USER_SELECT); // make sure we don't carry over the multi flag if (Cur_pilot->flags & PLAYER_FLAGS_IS_MULTI) { Cur_pilot->flags &= ~PLAYER_FLAGS_IS_MULTI; } Pilot.save_player(Cur_pilot); barracks_init_player_stuff(PLAYER_SELECT_MODE_SINGLE); } break; case B_PILOT_MULTI_MODE_BUTTON: if ( Networking_disabled ) { game_feature_disabled_popup(); break; } if (Player_sel_mode != PLAYER_SELECT_MODE_MULTI) { gamesnd_play_iface(SND_USER_SELECT); Cur_pilot->flags |= PLAYER_FLAGS_IS_MULTI; Pilot.save_player(Cur_pilot); barracks_init_player_stuff(PLAYER_SELECT_MODE_MULTI); } break; } }
void pilot_manage_button_pressed(int n) { switch (n) { //scroll pilot list up case PM_UP_BUTTON: pilot_manage_scroll_callsign_up(); break; // scroll pilot list down case PM_DOWN_BUTTON: pilot_manage_scroll_callsign_down(); break; // switch to single mode case PM_SINGLE_MODE_BUTTON: if (Player_sel_mode != PLAYER_SELECT_MODE_SINGLE) { gamesnd_play_iface(SND_USER_SELECT); // switching to multi so save multi player offset prev_multi_player = Selected_line; pilot_manage_init_player_stuff(PLAYER_SELECT_MODE_SINGLE); } break; // switch to multi mode case PM_MULTI_MODE_BUTTON: if (Player_sel_mode != PLAYER_SELECT_MODE_MULTI) { gamesnd_play_iface(SND_USER_SELECT); // switching to multi so save single player offset prev_single_player = Selected_line; pilot_manage_init_player_stuff(PLAYER_SELECT_MODE_MULTI); } break; //create new pilot case PM_CREATE_BUTTON: Clone_flag = 0; pilot_manage_create_new_pilot(); break; // select pilot case PM_ACTIVE_BUTTON: if (pilot_manage_new_pilot_selected()){ gamesnd_play_iface(SND_GENERAL_FAIL); // throw up a popup telling the player that he should create a pilot first if(Player_sel_mode == PLAYER_SELECT_MODE_SINGLE){ popup(PF_USE_AFFIRMATIVE_ICON,1,POPUP_OK,XSTR( "You must create a single player pilot.", 66)); } else { popup(PF_USE_AFFIRMATIVE_ICON,1,POPUP_OK,XSTR( "You must create a multi player pilot.", 67)); } } else { gamesnd_play_iface(SND_SCROLL); } break; // clone pilot case PM_CLONE_BUTTON: //case B_PILOT_CLONE_BUTTON: if (Num_pilots < 1) { gamesnd_play_error_beep(); break; } Clone_flag = 1; pilot_manage_create_new_pilot(); break; // convert pilot single/multi case PM_CONVERT_BUTTON: { char temp[256], *str; char old_pic[256] = ""; char old_squad_pic[256] = ""; char old_squad[256] = ""; int z; if (!pilot_manage_new_pilot_selected()) { if (Player_sel_mode == PLAYER_SELECT_MODE_SINGLE) str = XSTR( "multiplayer", 68); else str = XSTR( "single player", 69); sprintf(temp, XSTR( "This will overwrite your %s pilot. Proceed?", 70), str); if (!verify_pilot_file(Cur_pilot->callsign, Player_sel_mode == PLAYER_SELECT_MODE_MULTI)) { z = popup(0, 2, POPUP_CANCEL, POPUP_OK, temp); if (z != 1) break; } strcpy(old_pic, Cur_pilot->image_filename); strcpy(old_squad_pic, Cur_pilot->squad_filename); strcpy(old_squad, Cur_pilot->squad_name); init_new_pilot(Cur_pilot, 0); strcpy(Cur_pilot->image_filename, old_pic); strcpy(Cur_pilot->squad_filename, old_squad_pic); strcpy(Cur_pilot->squad_name, old_squad); if (Player_sel_mode == PLAYER_SELECT_MODE_SINGLE) { Cur_pilot->flags |= PLAYER_FLAGS_IS_MULTI; write_pilot_file(); pilot_manage_init_player_stuff(PLAYER_SELECT_MODE_MULTI); } else { write_pilot_file(); pilot_manage_init_player_stuff(PLAYER_SELECT_MODE_SINGLE); } gamesnd_play_iface(SND_USER_SELECT); } else { gamesnd_play_iface(SND_GENERAL_FAIL); } break; } // delete pilot case PM_DELETE_BUTTON: pilot_manage_delete_pilot(); break; // exit pilot selection case PM_EXIT_BUTTON: if (Num_pilots && !pilot_manage_pilot_accepted()) { gamesnd_play_iface(SND_COMMIT_PRESSED); gameseq_post_event(GS_EVENT_PREVIOUS_STATE); } else { gamesnd_play_iface(SND_GENERAL_FAIL); // throw up a popup telling the player that he should create a pilot first if(Player_sel_mode == PLAYER_SELECT_MODE_SINGLE){ popup(PF_USE_AFFIRMATIVE_ICON,1,POPUP_OK,XSTR( "You must create a single player pilot.", 66)); } else { popup(PF_USE_AFFIRMATIVE_ICON,1,POPUP_OK,XSTR( "You must create a multi player pilot.", 67)); } } break; case PM_TC_BUTTON: popup_tc(); // want to switch it over to multiplayer pilots prev_single_player = Selected_line; pilot_manage_init_player_stuff(PLAYER_SELECT_MODE_MULTI); break; } }