Exemple #1
0
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;
}
Exemple #2
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;
		}
	}

}
Exemple #3
0
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 );
}
Exemple #4
0
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 );

}
Exemple #5
0
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 );

}
Exemple #6
0
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
}
Exemple #7
0
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);

}
Exemple #8
0
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;
}
Exemple #9
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);
}
Exemple #10
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();
}
Exemple #11
0
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();
}
Exemple #12
0
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();
}
Exemple #13
0
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
}
Exemple #14
0
Fichier : state.c Projet : btb/d2x
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;
}
Exemple #15
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);

}