int do_difficulty_menu() { int s; newmenu_item m[5]; m[0].type=NM_TYPE_MENU; m[0].text=MENU_DIFFICULTY_TEXT(0); m[1].type=NM_TYPE_MENU; m[1].text=MENU_DIFFICULTY_TEXT(1); m[2].type=NM_TYPE_MENU; m[2].text=MENU_DIFFICULTY_TEXT(2); m[3].type=NM_TYPE_MENU; m[3].text=MENU_DIFFICULTY_TEXT(3); m[4].type=NM_TYPE_MENU; m[4].text=MENU_DIFFICULTY_TEXT(4); s = newmenu_do1( NULL, TXT_DIFFICULTY_LEVEL, NDL, m, NULL, Difficulty_level); if (s > -1 ) { if (s != Difficulty_level) { Player_default_difficulty = s; write_player_file(); } Difficulty_level = s; mprintf((0, "%s %s %i\n", TXT_DIFFICULTY_LEVEL, TXT_SET_TO, Difficulty_level)); return 1; } return 0; }
// ----------------------------------------------------------------------------- void do_detail_level_menu(void) { int s; newmenu_item m[7]; m[0].type=NM_TYPE_MENU; m[0].text=MENU_DETAIL_TEXT(0); m[1].type=NM_TYPE_MENU; m[1].text=MENU_DETAIL_TEXT(1); m[2].type=NM_TYPE_MENU; m[2].text=MENU_DETAIL_TEXT(2); m[3].type=NM_TYPE_MENU; m[3].text=MENU_DETAIL_TEXT(3); m[4].type=NM_TYPE_MENU; m[4].text=MENU_DETAIL_TEXT(4); m[5].type=NM_TYPE_TEXT; m[5].text=""; m[6].type=NM_TYPE_MENU; m[6].text=MENU_DETAIL_TEXT(5); s = newmenu_do1( NULL, TXT_DETAIL_LEVEL , NDL+2, m, NULL, Detail_level); if (s > -1 ) { switch (s) { case 0: case 1: case 2: case 3: case 4: Detail_level = s; mprintf((0, "Detail level set to %i\n", Detail_level)); set_detail_level_parameters(Detail_level); break; case 6: Detail_level = 5; do_detail_level_menu_custom(); break; } } }
void do_ip_manual_join_menu() { int menu_choice[3]; newmenu_item m[3]; int choice = 0, num_options = 0; int old_game_mode; char buf[128]=""; do { old_game_mode = Game_mode; num_options = 0; m[num_options].type = NM_TYPE_INPUT; m[num_options].text=buf; m[num_options].text_len=128;menu_choice[num_options]=-1; num_options++; choice = newmenu_do1( NULL, TXT_MULTIPLAYER, num_options, m, NULL, choice ); if ( choice > -1 ){ ip_connect_manual(buf); // do_option(menu_choice[choice]); } if (old_game_mode != Game_mode) break; // leave menu } while( choice > -1 ); }
void do_ip_multi_player_menu() { int menu_choice[3]; newmenu_item m[3]; int choice = 0, num_options = 0; int old_game_mode; if (ipx_set_driver("ip"))return; do { old_game_mode = Game_mode; num_options = 0; ADD_ITEM("Connect to game list server",MENU_IP_SERV_CONNECT, -1 ); ADD_ITEM(TXT_START_NET_GAME, MENU_START_NETGAME, -1 ); ADD_ITEM(TXT_JOIN_NET_GAME, MENU_MANUAL_IP_JOIN, -1 ); choice = newmenu_do1( NULL, TXT_MULTIPLAYER, num_options, m, NULL, choice ); if ( choice > -1 ) do_option(menu_choice[choice]); if (old_game_mode != Game_mode) break; // leave menu } while( choice > -1 ); }
void do_multi_player_menu() { int menu_choice[4]; newmenu_item m[4]; int choice = 0, num_options = 0; int old_game_mode; do { old_game_mode = Game_mode; num_options = 0; ADD_ITEM("IPX", MENU_IPX_MULTIPLAYER, -1 ); #ifdef SUPPORTS_NET_IP ADD_ITEM("udp/ip", MENU_IP_MULTIPLAYER, -1 ); #endif #ifdef __LINUX__ ADD_ITEM("Kalinix", MENU_KALI_MULTIPLAYER, -1 ); #endif ADD_ITEM(TXT_MODEM_GAME, MENU_START_SERIAL, -1); choice = newmenu_do1( NULL, TXT_MULTIPLAYER, num_options, m, NULL, choice ); if ( choice > -1 ) do_option(menu_choice[choice]); if (old_game_mode != Game_mode) break; // leave menu } while( choice > -1 ); }
void do_kali_multi_player_menu() { #ifdef __LINUX__ int menu_choice[3]; newmenu_item m[3]; int choice = 0, num_options = 0; int old_game_mode; if (ipx_set_driver("kali"))return; do { old_game_mode = Game_mode; num_options = 0; ADD_ITEM(TXT_START_NET_GAME, MENU_START_NETGAME, -1 ); ADD_ITEM(TXT_JOIN_NET_GAME, MENU_JOIN_NETGAME, -1 ); choice = newmenu_do1( NULL, TXT_MULTIPLAYER, num_options, m, NULL, choice ); if ( choice > -1 ) do_option(menu_choice[choice]); if (old_game_mode != Game_mode) break; // leave menu } while( choice > -1 ); #endif }
void joydefs_config() { newmenu_item m[9]; int i1 = 3; int nitems = 9; m[0].type = NM_TYPE_CHECK; m[0].text = TXT_CONTROL_JOYSTICK; m[0].value = Config_control_joystick.intval; m[1].type = NM_TYPE_CHECK; m[1].text = TXT_CONTROL_MOUSE; m[1].value = Config_control_mouse.intval; m[2].type = NM_TYPE_TEXT; m[2].text = ""; m[3].type = NM_TYPE_MENU; m[3].text = TXT_CUST_KEYBOARD; m[4].type = NM_TYPE_MENU; m[4].text = "CUSTOMIZE ANALOG CONTROLS"; m[5].type = NM_TYPE_MENU; m[5].text = "CUSTOMIZE D2X KEYS"; m[6].type = NM_TYPE_TEXT; m[6].text = ""; m[7].type = NM_TYPE_MENU; m[7].text = TXT_JOYS_SENSITIVITY; m[8].type = NM_TYPE_MENU; m[8].text = TXT_CAL_JOYSTICK; do { i1 = newmenu_do1(NULL, TXT_CONTROLS, nitems, m, joydef_menuset_1, i1); cvar_setint(&Config_control_joystick, m[0].value); cvar_setint(&Config_control_mouse, m[1].value); switch (i1) { case 3: kconfig(0, TXT_KEYBOARD); break; case 4: kconfig(1, TXT_AXES); break; case 5: kconfig(2, "D2X KEYS"); break; case 7: joydefs_sensitivity(); break; case 8: joydefs_calibrate(); break; } } while (i1>-1); }
int state_get_save_file(char * fname, char * dsc, int multi ) { FILE * fp; int i, choice, version; newmenu_item m[NUM_SAVES+1]; char filename[NUM_SAVES][FILENAME_MAX]; char desc[NUM_SAVES][DESC_LENGTH+16]; char id[5]; int valid=0; for (i=0;i<NUM_SAVES; i++ ) { sc_bmp[i] = NULL; if ( !multi ) sprintf( filename[i], "%s/%s.sg%d", Document_path, Players[Player_num].callsign, i ); else sprintf( filename[i], "%s/%s.mg%d", Document_path, Players[Player_num].callsign, i ); valid = 0; fp = fopen( filename[i], "rb" ); if ( fp ) { //Read id fread( id, sizeof(char)*4, 1, fp ); if ( !memcmp( id, dgss_id, 4 )) { //Read version fread( &version, sizeof(int), 1, fp ); if (version >= STATE_COMPATIBLE_VERSION) { // Read description fread( desc[i], sizeof(char)*DESC_LENGTH, 1, fp ); //rpad_string( desc[i], DESC_LENGTH-1 ); // Read thumbnail //sc_bmp[i] = gr_create_bitmap(THUMBNAIL_W,THUMBNAIL_H ); //fread( sc_bmp[i]->bm_data, THUMBNAIL_W * THUMBNAIL_H, 1, fp ); valid = 1; } } fclose(fp); } if (!valid) { strcpy( desc[i], TXT_EMPTY ); //rpad_string( desc[i], DESC_LENGTH-1 ); } m[i].type = NM_TYPE_INPUT_MENU; m[i].text = desc[i]; m[i].text_len = DESC_LENGTH-1; } sc_last_item = -1; choice = newmenu_do1( NULL, "Save Game", NUM_SAVES, m, NULL, state_default_item ); for (i=0; i<NUM_SAVES; i++ ) { if ( sc_bmp[i] ) gr_free_bitmap( sc_bmp[i] ); } if (choice > -1) { strcpy( fname, filename[choice] ); strcpy( dsc, desc[choice] ); state_default_item = choice; return choice+1; } return 0; }
void joydefs_sensitivity(void) { newmenu_item m[23]; int i1 = 0; int nitems = 0; m[nitems].type = NM_TYPE_TEXT; m[nitems].text = "Joystick Sensitivity"; nitems++; ADD_SLIDER(TXT_TURN_LR, f2i(8 * Config_joystick_sensitivity[AXIS_TURN-1].fixval), 0, 16); ADD_SLIDER(TXT_PITCH_UD, f2i(8 * Config_joystick_sensitivity[AXIS_PITCH-1].fixval), 0, 16); ADD_SLIDER(TXT_SLIDE_LR, f2i(8 * Config_joystick_sensitivity[AXIS_LEFTRIGHT-1].fixval), 0, 16); ADD_SLIDER(TXT_SLIDE_UD, f2i(8 * Config_joystick_sensitivity[AXIS_UPDOWN-1].fixval), 0, 16); ADD_SLIDER(TXT_BANK_LR, f2i(8 * Config_joystick_sensitivity[AXIS_BANK-1].fixval), 0, 16); ADD_SLIDER(TXT_THROTTLE, f2i(8 * Config_joystick_sensitivity[AXIS_THROTTLE-1].fixval), 0, 16); m[nitems].type = NM_TYPE_TEXT; m[nitems].text = ""; nitems++; m[nitems].type = NM_TYPE_TEXT; m[nitems].text = "Joystick Deadzone"; nitems++; ADD_SLIDER(TXT_TURN_LR, f2i(8 * Config_joystick_deadzone[AXIS_TURN-1].fixval), 0, 16); ADD_SLIDER(TXT_PITCH_UD, f2i(8 * Config_joystick_deadzone[AXIS_PITCH-1].fixval), 0, 16); ADD_SLIDER(TXT_SLIDE_LR, f2i(8 * Config_joystick_deadzone[AXIS_LEFTRIGHT-1].fixval), 0, 16); ADD_SLIDER(TXT_SLIDE_UD, f2i(8 * Config_joystick_deadzone[AXIS_UPDOWN-1].fixval), 0, 16); ADD_SLIDER(TXT_BANK_LR, f2i(8 * Config_joystick_deadzone[AXIS_BANK-1].fixval), 0, 16); ADD_SLIDER(TXT_THROTTLE, f2i(8 * Config_joystick_deadzone[AXIS_THROTTLE-1].fixval), 0, 16); m[nitems].type = NM_TYPE_TEXT; m[nitems].text = ""; nitems++; m[nitems].type = NM_TYPE_TEXT; m[nitems].text = "Mouse Sensitivity"; nitems++; ADD_SLIDER(TXT_TURN_LR, f2i(8 * Config_mouse_sensitivity[AXIS_TURN-1].fixval), 0, 16); ADD_SLIDER(TXT_PITCH_UD, f2i(8 * Config_mouse_sensitivity[AXIS_PITCH-1].fixval), 0, 16); ADD_SLIDER(TXT_SLIDE_LR, f2i(8 * Config_mouse_sensitivity[AXIS_LEFTRIGHT-1].fixval), 0, 16); ADD_SLIDER(TXT_SLIDE_UD, f2i(8 * Config_mouse_sensitivity[AXIS_UPDOWN-1].fixval), 0, 16); ADD_SLIDER(TXT_BANK_LR, f2i(8 * Config_mouse_sensitivity[AXIS_BANK-1].fixval), 0, 16); ADD_SLIDER(TXT_THROTTLE, f2i(8 * Config_mouse_sensitivity[AXIS_THROTTLE-1].fixval), 0, 16); do i1 = newmenu_do1(NULL, "Sensitivity", nitems, m, NULL, i1); while ( i1 > -1 ); cvar_setfl(&Config_joystick_sensitivity[AXIS_TURN-1], m[1].value / 8.0); cvar_setfl(&Config_joystick_sensitivity[AXIS_PITCH-1], m[2].value / 8.0); cvar_setfl(&Config_joystick_sensitivity[AXIS_LEFTRIGHT-1], m[3].value / 8.0); cvar_setfl(&Config_joystick_sensitivity[AXIS_UPDOWN-1], m[4].value / 8.0); cvar_setfl(&Config_joystick_sensitivity[AXIS_BANK-1], m[5].value / 8.0); cvar_setfl(&Config_joystick_sensitivity[AXIS_THROTTLE-1], m[6].value / 8.0); cvar_setfl(&Config_joystick_deadzone[AXIS_TURN-1], m[ 9].value / 16.0); cvar_setfl(&Config_joystick_deadzone[AXIS_PITCH-1], m[10].value / 16.0); cvar_setfl(&Config_joystick_deadzone[AXIS_LEFTRIGHT-1], m[11].value / 16.0); cvar_setfl(&Config_joystick_deadzone[AXIS_UPDOWN-1], m[12].value / 16.0); cvar_setfl(&Config_joystick_deadzone[AXIS_BANK-1], m[13].value / 16.0); cvar_setfl(&Config_joystick_deadzone[AXIS_THROTTLE-1], m[14].value / 16.0); cvar_setfl(&Config_mouse_sensitivity[AXIS_TURN-1], m[17].value / 8.0); cvar_setfl(&Config_mouse_sensitivity[AXIS_PITCH-1], m[18].value / 8.0); cvar_setfl(&Config_mouse_sensitivity[AXIS_LEFTRIGHT-1], m[19].value / 8.0); cvar_setfl(&Config_mouse_sensitivity[AXIS_UPDOWN-1], m[20].value / 8.0); cvar_setfl(&Config_mouse_sensitivity[AXIS_BANK-1], m[21].value / 8.0); cvar_setfl(&Config_mouse_sensitivity[AXIS_THROTTLE-1], m[22].value / 8.0); }
// ----------------------------------------------------------------------------- void do_detail_level_menu_custom(void) { int s=0; newmenu_item m[7]; do { m[0].type = NM_TYPE_SLIDER; m[0].text = TXT_OBJ_COMPLEXITY; m[0].value = Object_complexity; m[0].min_value = 0; m[0].max_value = NDL-1; m[1].type = NM_TYPE_SLIDER; m[1].text = TXT_OBJ_DETAIL; m[1].value = Object_detail; m[1].min_value = 0; m[1].max_value = NDL-1; m[2].type = NM_TYPE_SLIDER; m[2].text = TXT_WALL_DETAIL; m[2].value = Wall_detail; m[2].min_value = 0; m[2].max_value = NDL-1; m[3].type = NM_TYPE_SLIDER; m[3].text = TXT_WALL_RENDER_DEPTH; m[3].value = Wall_render_depth; m[3].min_value = 0; m[3].max_value = NDL-1; m[4].type = NM_TYPE_SLIDER; m[4].text= TXT_DEBRIS_AMOUNT; m[4].value = Debris_amount; m[4].min_value = 0; m[4].max_value = NDL-1; m[5].type = NM_TYPE_SLIDER; m[5].text= TXT_SOUND_CHANNELS; m[5].value = SoundChannels; m[5].min_value = 0; m[5].max_value = NDL-1; m[6].type = NM_TYPE_TEXT; m[6].text= TXT_LO_HI; s = newmenu_do1( NULL, TXT_DETAIL_CUSTOM, 7, m, do_detail_level_menu_custom_menuset, s); } while (s > -1); set_custom_detail_vars(); }
void do_options_menu() { // newmenu_item m[14]; newmenu_item m[14]; int i = 0; do { m[0].type = NM_TYPE_SLIDER; m[0].text=TXT_FX_VOLUME; m[0].value=Config_digi_volume;m[0].min_value=0; m[0].max_value=8; m[1].type = NM_TYPE_SLIDER; m[1].text=TXT_MUSIC_VOLUME; m[1].value=Config_midi_volume;m[1].min_value=0; m[1].max_value=8; m[2].type = NM_TYPE_CHECK; m[2].text=TXT_REVERSE_STEREO; m[2].value=Config_channels_reversed; m[3].type = NM_TYPE_TEXT; m[3].text=""; //added/changed on 10/27/98 by Victor Rachels to increase brightness range m[4].type = NM_TYPE_SLIDER; m[4].text=TXT_BRIGHTNESS; m[4].value=gr_palette_get_gamma();m[4].min_value=0; m[4].max_value=16; //end this section addition - Victor Rachels m[5].type = NM_TYPE_TEXT; m[5].text=""; m[6].type = NM_TYPE_MENU; m[6].text=TXT_CONTROLS_; m[7].type = NM_TYPE_MENU; m[7].text=TXT_DETAIL_LEVELS; m[8].type = NM_TYPE_MENU; m[8].text=TXT_CAL_JOYSTICK; //added/changed on 10/27/98 by Victor Rachels to increase sensitivity range m[9].type = NM_TYPE_SLIDER; m[9].text=TXT_JOYS_SENSITIVITY; m[9].value=Config_joystick_sensitivity; m[9].min_value =0; m[9].max_value = 8; //end this section addition - Victor Rachels //added on 4/13/99 by Victor Rachels to add joystick deadzone option m[10].type = NM_TYPE_SLIDER; m[10].text="Joystick Deadzone"; m[10].value=joy_deadzone; m[10].min_value=0; m[10].max_value=16; //end this section addition - VR m[11].type = NM_TYPE_TEXT; m[11].text=""; m[12].type = NM_TYPE_CHECK; m[12].text="Ship auto-leveling"; m[12].value=Auto_leveling_on; m[13].type = NM_TYPE_MENU; m[13].text="D1X options..."; i = newmenu_do1( NULL, TXT_OPTIONS, 14, m, joydef_menuset, i ); switch(i) { case 6: joydefs_config(); break; case 7: do_detail_level_menu(); break; case 8: joydefs_calibrate(); break; case 13: d1x_options_menu(); break; } Config_channels_reversed = m[2].value; Config_joystick_sensitivity = m[9].value; joy_deadzone = m[10].value; Auto_leveling_on = m[12].value; } while( i>-1 ); if ( Config_midi_volume < 1 ) { digi_play_midi_song( NULL, NULL, NULL, 0 ); } write_player_file(); }
void change_res() { //edited 05/27/99 Matt Mueller - ingame fullscreen changing newmenu_item m[11]; u_int32_t modes[11]; int i=0, mc=0, num_presets=0; char customres[16]; #ifdef GR_SUPPORTS_FULLSCREEN_TOGGLE int fullscreenc; #endif //end edit -MM u_int32_t screen_mode = 0; int screen_width = 0; int screen_height = 0; int vr_mode = VR_NONE; int screen_compatible = 0; int use_double_buffer = 0; //changed 6/15/1999 by Owen Evans to fix some platform-related problems #ifdef __MSDOS__ m[mc].type = NM_TYPE_RADIO; m[mc].text = "320x100"; m[mc].value=(Game_screen_mode==SM(320,100)); m[mc].group=0; modes[mc] = SM(320,100); mc++; #endif m[mc].type = NM_TYPE_RADIO; m[mc].text = "320x200"; m[mc].value=(Game_screen_mode==SM(320,200)); m[mc].group=0; modes[mc] = SM(320,200); mc++; m[mc].type = NM_TYPE_RADIO; m[mc].text = "320x240"; m[mc].value=(Game_screen_mode==SM(320,240)); m[mc].group=0; modes[mc] = SM(320,240); mc++; m[mc].type = NM_TYPE_RADIO; m[mc].text = "320x400"; m[mc].value=(Game_screen_mode==SM(320,400)); m[mc].group=0; modes[mc] = SM(320,400); mc++; //#ifndef __LINUX__ - heh? 640x400 is perfectly fine on linux m[mc].type = NM_TYPE_RADIO; m[mc].text = "640x400"; m[mc].value=(Game_screen_mode==SM(640,400)); m[mc].group=0; modes[mc] = SM(640,400); mc++; //#endif m[mc].type = NM_TYPE_RADIO; m[mc].text = "640x480"; m[mc].value=(Game_screen_mode==SM(640,480)); m[mc].group=0; modes[mc] = SM(640,480); mc++; m[mc].type = NM_TYPE_RADIO; m[mc].text = "800x600"; m[mc].value=(Game_screen_mode==SM(800,600)); m[mc].group=0; modes[mc] = SM(800,600); mc++; m[mc].type = NM_TYPE_RADIO; m[mc].text = "1024x768"; m[mc].value=(Game_screen_mode==SM(1024,768)); m[mc].group=0; modes[mc] = SM(1024,768); mc++; //end section - OE num_presets = mc; for (i=0; i<mc; i++) if (m[mc].value) break; m[mc].type = NM_TYPE_RADIO; m[mc].text = "custom:"; m[mc].value=(i==mc); m[mc].group=0; modes[mc] = 0; mc++; sprintf(customres, "%ix%i", SM_W(Game_screen_mode), SM_H(Game_screen_mode)); m[mc].type = NM_TYPE_INPUT; m[mc].text = customres; m[mc].text_len=11; modes[mc] = 0; mc++; // m[mc].type = NM_TYPE_CHECK; m[mc].text = "No Doublebuffer"; m[mc].value = use_double_buffer; //added 05/27/99 Matt Mueller - ingame fullscreen changing #ifdef GR_SUPPORTS_FULLSCREEN_TOGGLE fullscreenc=mc;m[mc].type = NM_TYPE_CHECK; m[mc].text = "Fullscreen"; m[mc].value = gr_check_fullscreen();mc++; #endif //end addition -MM i=newmenu_do1( NULL, "Screen Resolution", mc, m, &change_res_poll, 0); //added 05/27/99 Matt Mueller - ingame fullscreen changing #ifdef GR_SUPPORTS_FULLSCREEN_TOGGLE if (m[fullscreenc].value != gr_check_fullscreen()){ gr_toggle_fullscreen(); Game_screen_mode = -1; } #endif //end addition -MM for(i=0;(m[i].value==0)&&(i<num_presets);i++); if (modes[i]==0){ char *h=strchr(customres, 'x'); if (!h) return; screen_mode = SM(atoi(customres), atoi(h+1)); }else{ screen_mode = modes[i]; } screen_width = SM_W(screen_mode); screen_height = SM_H(screen_mode); if (screen_height<=0 || screen_width<=0) return; switch(screen_mode) { case SM(320,100)://19: screen_compatible = 0; use_double_buffer = 0; break; case SM(320,200)://SM_320x200C: screen_compatible = 1; use_double_buffer = 0; break; default: screen_compatible = 0; use_double_buffer = 1; break; } #ifdef __MSDOS__ if ( FindArg( "-nodoublebuffer" ) ) #endif use_double_buffer = 0; //added 6/15/1999 by Owen Evans to eliminate unneccesary mode modification if (Game_screen_mode == screen_mode) return; // gr_set_mode(Game_screen_mode); //end section - OE VR_offscreen_buffer = 0; //Disable VR (so that VR_Screen_mode doesnt mess us up Game_screen_mode = screen_mode; Game_window_w=screen_width; Game_window_h=screen_height; game_init_render_buffers(screen_mode, screen_width, screen_height, use_double_buffer, vr_mode, screen_compatible); mprintf( (0, "\nInitializing palette system..." )); gr_use_palette_table( "PALETTE.256" ); mprintf( (0, "\nInitializing font system..." )); gamefont_init(); // must load after palette data loaded. reset_palette_add(); init_cockpit(); last_drawn_cockpit[0]=-1; last_drawn_cockpit[1]=-1; // init_gauges(); vr_reset_display(); }
void d1x_options_menu() { newmenu_item m[14]; int i=0; int opt=0; int inputs,checks,commands; char smaxfps[4]; char shudmaxnumdisp[4]; char thogdir[64]; extern int gr_message_color_level; sprintf(thogdir,AltHogDir); sprintf(smaxfps,"%d",maxfps); sprintf(shudmaxnumdisp,"%d",HUD_max_num_disp); m[opt].type = NM_TYPE_MENU; m[opt].text = "Primary autoselect ordering..."; opt++; m[opt].type = NM_TYPE_MENU; m[opt].text = "Secondary autoselect ordering..."; opt++; //added on 2/4/99 by Victor Rachels for new key menu m[opt].type = NM_TYPE_MENU; m[opt].text = "D1X Keys"; opt++; //end this section addition - VR //enabled 3/24/99 - Owen Evans m[opt].type = NM_TYPE_MENU; m[opt].text = "Change Screen Resolution"; opt++; //end enabled stuff - OE commands=opt; //added on 2/2/99 by Victor Rachels for bans #ifdef NETWORK m[opt].type = NM_TYPE_MENU; m[opt].text = "Save bans now"; opt++; #endif //end this section addition - VR m[opt].type = NM_TYPE_TEXT; m[opt].text = "Maximum Framerate (1-80):"; opt++; inputs=opt; m[opt].type = NM_TYPE_INPUT; m[opt].text = smaxfps; m[opt].text_len=3; opt++; m[opt].type = NM_TYPE_TEXT; m[opt].text = "Mission Directory"; opt++; m[opt].type = NM_TYPE_INPUT; m[opt].text = thogdir; m[opt].text_len=64; opt++; m[opt].type = NM_TYPE_TEXT; m[opt].text = "Hud Messages lines (1-80):"; opt++; m[opt].type = NM_TYPE_INPUT; m[opt].text = shudmaxnumdisp; m[opt].text_len=3; opt++; m[opt].type = NM_TYPE_SLIDER; m[opt].text = "Message colorization level"; m[opt].value=gr_message_color_level;m[opt].min_value=0;m[opt].max_value=3; opt++; checks=opt; #ifdef __MSDOS__ m[opt].type = NM_TYPE_CHECK; m[opt].text = "Joy is sidewinder"; m[opt].value=Joy_is_Sidewinder; opt++; #endif #ifdef SUPPORTS_NICEFPS m[opt].type = NM_TYPE_CHECK; m[opt].text = "Nice FPS (free cpu cycles)"; m[opt].value = use_nice_fps; opt++; #endif for(;;) { i=newmenu_do1( NULL, "D1X options", opt, m, &d1x_options_menu_poll, i); if(i>-1) { if(i<commands) { switch(i) { case 0: reorder_primary(); break; case 1: reorder_secondary(); break; //added on 2/4/99 by Victor Rachels for new key menu case 2: kconfig(3,"D1X Keys"); break; //end this section addition - VR //enabled 3/24/99 - Owen Evans case 3: change_res(); break; //end enabled stuff - OE } } //added on 2/4/99 by Victor Rachels for bans #ifdef NETWORK if(i==commands+0) { nm_messagebox(NULL,1,TXT_OK, "%i Bans saved",writebans()); } #endif //end this section addition - VR if(i==inputs+0) { maxfps = atoi(smaxfps); if(maxfps < 1||maxfps>80) { nm_messagebox(TXT_ERROR, 1, TXT_OK, "Invalid value for maximum framerate"); maxfps=80; i=(inputs+0); } } else if(i==inputs+2) cfile_use_alternate_hogdir(thogdir); else if(i==inputs+4) { HUD_max_num_disp = atoi(shudmaxnumdisp); if(HUD_max_num_disp < 1||HUD_max_num_disp>HUD_MAX_NUM) { nm_messagebox(TXT_ERROR, 1, TXT_OK, "Invalid value for hud lines"); HUD_max_num_disp=4; // i=(inputs+4);//??? } } gr_message_color_level=m[inputs+5].value; sprintf(shudmaxnumdisp,"%d",HUD_max_num_disp); sprintf(smaxfps,"%d",maxfps); // m[inputs+0].text=smaxfps;//redundant.. its not going anywhere sprintf(thogdir,AltHogDir); // m[inputs+2].text=thogdir;//redundant } else break; } write_player_file(); #ifdef __MSDOS__ Joy_is_Sidewinder=m[(checks+0)].value; #endif #ifdef __LINUX__ Joy_is_Sidewinder=0; #endif #ifdef SUPPORTS_NICEFPS use_nice_fps=m[(checks+0)].value; #else use_nice_fps=0; #endif }
int state_get_save_file(char * fname, char * dsc, int multi, int blind_save) { PHYSFS_file *fp; int i, choice, version; newmenu_item m[NUM_SAVES+2]; char filename[NUM_SAVES+1][30]; char desc[NUM_SAVES+1][DESC_LENGTH+16]; char id[5]; int valid=0; for (i=0;i<NUM_SAVES; i++ ) { sc_bmp[i] = NULL; if ( !multi ) sprintf( filename[i], PLAYER_DIR "%s.sg%x", Players[Player_num].callsign, i ); else sprintf( filename[i], PLAYER_DIR "%s.mg%x", Players[Player_num].callsign, i ); valid = 0; fp = PHYSFSX_openReadBuffered(filename[i]); if ( fp ) { //Read id //FIXME: check for swapped file, react accordingly... PHYSFS_read(fp, id, sizeof(char) * 4, 1); if ( !memcmp( id, dgss_id, 4 )) { //Read version PHYSFS_read(fp, &version, sizeof(int), 1); if (version >= STATE_COMPATIBLE_VERSION) { // Read description PHYSFS_read(fp, desc[i], sizeof(char) * DESC_LENGTH, 1); //rpad_string( desc[i], DESC_LENGTH-1 ); // Read thumbnail //sc_bmp[i] = gr_create_bitmap(THUMBNAIL_W,THUMBNAIL_H ); //PHYSFS_read(fp, sc_bmp[i]->bm_data, THUMBNAIL_W * THUMBNAIL_H, 1); valid = 1; } } PHYSFS_close(fp); } if (!valid) { strcpy( desc[i], TXT_EMPTY ); //rpad_string( desc[i], DESC_LENGTH-1 ); } m[i].type = NM_TYPE_INPUT_MENU; m[i].text = desc[i]; m[i].text_len = DESC_LENGTH-1; } sc_last_item = -1; if (blind_save && state_default_item >= 0) choice = state_default_item; else choice = newmenu_do1(NULL, "Save Game", NUM_SAVES, m, NULL, state_default_item); for (i=0; i<NUM_SAVES; i++ ) { if ( sc_bmp[i] ) gr_free_bitmap( sc_bmp[i] ); } if (choice > -1) { strcpy( fname, filename[choice] ); strcpy( dsc, desc[choice] ); state_default_item = choice; return choice+1; } return 0; }
void joydefs_config() { //added/changed/killed on 10/17/98 by Hans de Goede for joystick/mouse # fix //-killed- char xtext[128]; //-killed- int i, old_masks, masks; newmenu_item m[13]; //-killed- int i1=5; //-killed- int nitems; //-killed- //-killed- do { //-killed- nitems = 6; int i, i1=5, j, nitems=7; //end this section kill/change - Hans m[0].type = NM_TYPE_RADIO; m[0].text = "KEYBOARD"; m[0].value = 0; m[0].group = 0; m[1].type = NM_TYPE_RADIO; m[1].text = "JOYSTICK"; m[1].value = 0; m[1].group = 0; m[2].type = NM_TYPE_RADIO; m[2].text = "MOUSE"; m[2].value = 0; m[2].group = 0; m[3].type = NM_TYPE_TEXT; m[3].text=""; m[4].type = NM_TYPE_MENU; m[4].text="CUSTOMIZE ABOVE"; m[5].type = NM_TYPE_MENU; m[5].text="CUSTOMIZE KEYBOARD"; //added on 2/5/99 by Victor Rachels for D1X keys menu m[6].type = NM_TYPE_MENU; m[6].text="CUSTOMIZE D1X KEYS"; //end this section addition - VR //added/changed/killed on 10/17/98 by Hans de Goede for joystick/mouse # fix //-killed- m[Config_control_type].value = 1; do { i = Config_control_type; if(i==CONTROL_MOUSE) i = 2; m[i].value=1; //end section - OE //end this section change/addition - Hans i1 = newmenu_do1( NULL, TXT_CONTROLS, nitems, m, joydef_menuset_1, i1 ); //added 6-15-99 Owen Evans for (j = 0; j <= 2; j++) if (m[j].value) Config_control_type = j; i = Config_control_type; if (Config_control_type == 2) Config_control_type = CONTROL_MOUSE; //end added - OE switch(i1) { case 4: //added/changed on 10/17/98 by Hans de Goede for joystick/mouse # fix //-killed- kconfig(Config_control_type, m[Config_control_type].text); kconfig (i, m[i].text); //end this section change - Hans break; case 5: kconfig(0, "KEYBOARD"); break; //added on 2/5/99 by Victor Rachels for D1X keys menu case 6: kconfig(3, "D1X KEYS"); break; //end this section addition - VR } } while(i1>-1); }