예제 #1
0
파일: config.c 프로젝트: TermiT/sw-redux
int32 CONFIG_ReadSetup( void )
   {
   int32 dummy;
   char ret;
   extern char ds[];
   extern char PlayerNameArg[32];

#if MEGAWANG
   extern BOOL ClassicLighting;
   extern int32_t r_usenewshading;
   extern int32_t r_usetileshades;
   extern int32 useDarts;
   dnInitKeyNames();
#endif
       
   CONTROL_ClearAssignments();
   CONFIG_SetDefaults();
   
#if MEGAWANG
       if (SafeFileExists(localsetupfilename)) {
           scripthandle = SCRIPT_Load(localsetupfilename);
       }
       if (scripthandle < 0) {
           goto read_common_config;
       }
#else
   if (SafeFileExists(setupfilename))
      scripthandle = SCRIPT_Load(setupfilename);
   
   if (scripthandle < 0) return -1;
#endif
       
      SCRIPT_GetNumber( scripthandle, "Screen Setup", "ScreenMode",&ScreenMode);
      SCRIPT_GetNumber( scripthandle, "Screen Setup", "ScreenWidth",&ScreenWidth);
      SCRIPT_GetNumber( scripthandle, "Screen Setup", "ScreenHeight",&ScreenHeight);
      SCRIPT_GetNumber( scripthandle, "Screen Setup", "ScreenBPP", &ScreenBPP);
      if (ScreenBPP < 8) ScreenBPP = 8;

#ifdef RENDERTYPEWIN
      SCRIPT_GetNumber( scripthandle, "Screen Setup", "MaxRefreshFreq", (int32*)&maxrefreshfreq);
#endif
       
#if MEGAWANG
        SCRIPT_GetNumber( scripthandle, "Screen Setup", "VerticalSync",&vsync);
        SCRIPT_GetNumber( scripthandle, "Screen Setup", "MaxFPS",&max_fps);
        SCRIPT_GetNumber( scripthandle, "Options", "UseDarts", &useDarts);
        SCRIPT_GetNumber( scripthandle, "Options", "FOV", &dummy);
        if (dummy < 60) {
            dummy = 60;
        }
        if (dummy > 145) {
            dummy = 145;
        }
        xfov = dummy/90.0f;
       
       SCRIPT_GetBoolean(scripthandle, "Screen Setup", "ClassicLighting", &ClassicLighting);
       if (ClassicLighting) {
           r_usenewshading = 2;
           r_usetileshades = 1;
       } else {
           r_usenewshading = 0;
           r_usetileshades = 0;
       }
#endif
 
      SCRIPT_GetNumber( scripthandle, "Screen Setup", "GLTextureMode", &gltexfiltermode);
      SCRIPT_GetNumber( scripthandle, "Screen Setup", "GLAnisotropy", &glanisotropy);
      SCRIPT_GetNumber( scripthandle, "Screen Setup", "GLUseTextureCompr", &glusetexcompr);

#if MEGAWANG
       SCRIPT_Free(scripthandle);
   read_common_config:
       if (SafeFileExists(setupfilename))
           scripthandle = SCRIPT_Load(setupfilename);
       
       if (scripthandle < 0) return -1;
#endif
       
      SCRIPT_GetNumber( scripthandle, "Sound Setup", "FXDevice",&FXDevice);
      SCRIPT_GetNumber( scripthandle, "Sound Setup", "MusicDevice",&MusicDevice);
      SCRIPT_GetNumber( scripthandle, "Sound Setup", "FXVolume",&FXVolume);
      gs.SoundVolume = FXVolume;
      SCRIPT_GetNumber( scripthandle, "Sound Setup", "MusicVolume",&MusicVolume);
      gs.MusicVolume = MusicVolume;
 
      SCRIPT_GetNumber( scripthandle, "Sound Setup", "NumVoices",&NumVoices);
      SCRIPT_GetNumber( scripthandle, "Sound Setup", "NumChannels",&NumChannels);
      SCRIPT_GetNumber( scripthandle, "Sound Setup", "NumBits",&NumBits);
      SCRIPT_GetNumber( scripthandle, "Sound Setup", "MixRate",&MixRate);
      SCRIPT_GetNumber( scripthandle, "Sound Setup", "ReverseStereo",&dummy);
      gs.FlipStereo = dummy;
      if (gs.FlipStereo) gs.FlipStereo = 1;

      SCRIPT_GetNumber( scripthandle, "Setup", "ForceSetup",&ForceSetup);
      SCRIPT_GetNumber( scripthandle, "Controls","UseMouse",&UseMouse);
      SCRIPT_GetNumber( scripthandle, "Controls","UseJoystick",&UseJoystick);
      SCRIPT_GetString( scripthandle, "Comm Setup", "RTSName",RTSName);
   
      SCRIPT_GetString( scripthandle, "Comm Setup","PlayerName",CommPlayerName);
    
   ReadGameSetup(scripthandle);
    
   CONFIG_ReadKeys(scripthandle);

   //CONFIG_SetupMouse(scripthandle);
   //CONFIG_SetupJoystick(scripthandle);
   
   if (PlayerNameArg[0] != '\0')
      {
      strcpy(CommPlayerName, PlayerNameArg);
      }
   return 0;
   }
예제 #2
0
int32 CONFIG_ReadSetup( void )
{
	int32 dummy,i;
	char commmacro[] = "CommbatMacro# ";
	extern int32 CommandWeaponChoice;

    dnInitKeyNames();   
	CONTROL_ClearAssignments();
	CONFIG_SetDefaults();

	setupread = 1;
    
    if (SafeFileExists(localsetupfilename)) {
        scripthandle = SCRIPT_Load(localsetupfilename);
        if (scripthandle >= 0) {
            SCRIPT_GetNumber( scripthandle, "Screen Setup", "Shadows",&ud.shadows);
            SCRIPT_GetString( scripthandle, "Screen Setup", "Password",&ud.pwlockout[0]);
            SCRIPT_GetNumber( scripthandle, "Screen Setup", "Detail",&ud.detail);
            SCRIPT_GetNumber( scripthandle, "Screen Setup", "Tilt",&ud.screen_tilting);
            SCRIPT_GetNumber( scripthandle, "Screen Setup", "Messages",&ud.fta_on);
            SCRIPT_GetNumber( scripthandle, "Screen Setup", "ScreenWidth",&ScreenWidth);
            SCRIPT_GetNumber( scripthandle, "Screen Setup", "ScreenHeight",&ScreenHeight);
            SCRIPT_GetNumber( scripthandle, "Screen Setup", "ScreenMode",&ScreenMode);
            SCRIPT_GetNumber( scripthandle, "Screen Setup", "ScreenGamma",&ud.brightness);
            SCRIPT_GetNumber( scripthandle, "Screen Setup", "ScreenSize",&ud.screen_size);
            SCRIPT_GetNumber( scripthandle, "Screen Setup", "Out",&ud.lockout);
            SCRIPT_GetNumber( scripthandle, "Screen Setup", "ScreenBPP", &ScreenBPP);
			SCRIPT_GetBoolean( scripthandle, "Screen Setup", "VerticalSync", &ud.vsync);
			SCRIPT_GetNumber( scripthandle, "Screen Setup", "MaxFPS", &ud.fps_max);
            if (ScreenBPP < 24) ScreenBPP = 24;
            #ifdef RENDERTYPEWIN
            SCRIPT_GetNumber( scripthandle, "Screen Setup", "MaxRefreshFreq", (int32*)&maxrefreshfreq);
            #endif
            SCRIPT_GetNumber( scripthandle, "Screen Setup", "GLTextureMode", &gltexfiltermode);
            SCRIPT_GetNumber( scripthandle, "Screen Setup", "GLAnisotropy", &glanisotropy);
            SCRIPT_GetNumber( scripthandle, "Screen Setup", "GLUseTextureCompr", &glusetexcompr);
            SCRIPT_GetNumber( scripthandle, "Screen Setup", "GLUseCompressedTextureCache", &glusetexcache);
        }
    }
	
	if (SafeFileExists(setupfilename))	// JBF 20031211
	   scripthandle = SCRIPT_Load( setupfilename );

	if (scripthandle < 0) return -1;

	for(dummy = 0;dummy < 10;dummy++)
	{
		commmacro[13] = dummy+'0';
		SCRIPT_GetString( scripthandle, "Comm Setup",commmacro,&ud.ridecule[dummy][0]);
	}
	SCRIPT_GetString( scripthandle, "Comm Setup","PlayerName",&myname[0]);
	SCRIPT_GetString( scripthandle, "Comm Setup","RTSName",&ud.rtsname[0]);


	SCRIPT_GetNumber( scripthandle, "Setup", "ForceSetup",&ForceSetup);
	SCRIPT_GetNumber( scripthandle, "Misc", "Executions",&ud.executions); ud.executions++;
	SCRIPT_GetNumber( scripthandle, "Misc", "RunMode",&RunMode);
	SCRIPT_GetNumber( scripthandle, "Misc", "Crosshairs",&ud.crosshair);
	SCRIPT_GetNumber( scripthandle, "Misc", "StatusBarScale",&ud.statusbarscale);
	SCRIPT_GetNumber( scripthandle, "Misc", "ShowLevelStats",&ud.levelstats);
	SCRIPT_GetNumber( scripthandle, "Misc", "ShowOpponentWeapons",&ShowOpponentWeapons);
	dummy = useprecache; SCRIPT_GetNumber( scripthandle, "Misc", "UsePrecache",&dummy); useprecache = dummy != 0;
	// weapon choices are defaulted in checkcommandline, which may override them
	if (!CommandWeaponChoice) for(i=0;i<10;i++)
	{
		Bsprintf(buf,"WeaponChoice%ld",i);
		dummy = -1;
		SCRIPT_GetNumber( scripthandle, "Misc", buf, &dummy);
		if (dummy >= 0) ud.wchoice[0][i] = dummy;
	}

	SCRIPT_GetNumber( scripthandle, "Sound Setup", "FXDevice",&FXDevice);
	SCRIPT_GetNumber( scripthandle, "Sound Setup", "MusicDevice",&MusicDevice);
	SCRIPT_GetNumber( scripthandle, "Sound Setup", "FXVolume",&FXVolume);
	SCRIPT_GetNumber( scripthandle, "Sound Setup", "MusicVolume",&MusicVolume);
	SCRIPT_GetNumber( scripthandle, "Sound Setup", "SoundToggle",&SoundToggle);
	SCRIPT_GetNumber( scripthandle, "Sound Setup", "MusicToggle",&MusicToggle);
	SCRIPT_GetNumber( scripthandle, "Sound Setup", "VoiceToggle",&VoiceToggle);
	SCRIPT_GetNumber( scripthandle, "Sound Setup", "AmbienceToggle",&AmbienceToggle);
	SCRIPT_GetNumber( scripthandle, "Sound Setup", "NumVoices",&NumVoices);
	SCRIPT_GetNumber( scripthandle, "Sound Setup", "NumChannels",&NumChannels);
	SCRIPT_GetNumber( scripthandle, "Sound Setup", "NumBits",&NumBits);
	SCRIPT_GetNumber( scripthandle, "Sound Setup", "MixRate",&MixRate);
	SCRIPT_GetNumber( scripthandle, "Sound Setup", "ReverseStereo",&ReverseStereo);

	SCRIPT_GetNumber( scripthandle, "Controls","UseJoystick",&UseJoystick);
	SCRIPT_GetNumber( scripthandle, "Controls","UseMouse",&UseMouse);
	SCRIPT_GetNumber( scripthandle, "Controls","MouseAimingFlipped",&ud.mouseflip);	// mouse aiming inverted
	SCRIPT_GetNumber( scripthandle, "Controls","MouseAiming",&ud.mouseaiming);		// 1=momentary/0=toggle
	//SCRIPT_GetNumber( scripthandle, "Controls","GameMouseAiming",(int32 *)&ps[0].aim_mode);	// dupe of below (?)
	ps[0].aim_mode = ud.mouseaiming;
	SCRIPT_GetNumber( scripthandle, "Controls","AimingFlag",(int32 *)&myaimmode);	// (if toggle mode) gives state
	SCRIPT_GetNumber( scripthandle, "Controls","RunKeyBehaviour",&ud.runkey_mode);	// JBF 20031125
	SCRIPT_GetNumber( scripthandle, "Controls","AutoAim",&AutoAim);			// JBF 20031125
	ps[0].auto_aim = AutoAim;
	SCRIPT_GetNumber( scripthandle, "Controls","WeaponSwitchMode",&ud.weaponswitch);

	CONFIG_ReadKeys();

	//CONFIG_SetupMouse(scripthandle);
	//CONFIG_SetupJoystick(scripthandle);
	return 0;
}