void InitGameSettings() { memset( &gGameSettings, 0, sizeof( GAME_SETTINGS ) ); //Init the Game Settings gGameSettings.bLastSavedGameSlot = -1; gGameSettings.ubMusicVolumeSetting = 63; gGameSettings.ubSoundEffectsVolume = 63; gGameSettings.ubSpeechVolume = 63; //Set the settings SetSoundEffectsVolume( gGameSettings.ubSoundEffectsVolume ); SetSpeechVolume( gGameSettings.ubSpeechVolume ); MusicSetVolume( gGameSettings.ubMusicVolumeSetting ); gGameSettings.fOptions[ TOPTION_SUBTITLES ] = TRUE; gGameSettings.fOptions[ TOPTION_SPEECH ] = TRUE; gGameSettings.fOptions[ TOPTION_KEY_ADVANCE_SPEECH ] = FALSE; gGameSettings.fOptions[ TOPTION_RTCONFIRM ] = FALSE; gGameSettings.fOptions[ TOPTION_HIDE_BULLETS ] = FALSE; gGameSettings.fOptions[ TOPTION_TRACKING_MODE ] = TRUE; gGameSettings.fOptions[ TOPTION_MUTE_CONFIRMATIONS ] = FALSE; gGameSettings.fOptions[ TOPTION_ANIMATE_SMOKE ] = TRUE; gGameSettings.fOptions[ TOPTION_BLOOD_N_GORE ] = TRUE; gGameSettings.fOptions[ TOPTION_DONT_MOVE_MOUSE ] = FALSE; gGameSettings.fOptions[ TOPTION_OLD_SELECTION_METHOD ] = FALSE; gGameSettings.fOptions[ TOPTION_ALWAYS_SHOW_MOVEMENT_PATH ] = FALSE; gGameSettings.fOptions[ TOPTION_SLEEPWAKE_NOTIFICATION ] = TRUE; gGameSettings.fOptions[ TOPTION_USE_METRIC_SYSTEM ] = FALSE; #ifndef BLOOD_N_GORE_ENABLED gGameSettings.fOptions[ TOPTION_BLOOD_N_GORE ] = FALSE; #endif gGameSettings.fOptions[ TOPTION_MERC_ALWAYS_LIGHT_UP ] = FALSE; gGameSettings.fOptions[ TOPTION_SMART_CURSOR ] = FALSE; gGameSettings.fOptions[ TOPTION_SNAP_CURSOR_TO_DOOR ] = TRUE; gGameSettings.fOptions[ TOPTION_GLOW_ITEMS ] = TRUE; gGameSettings.fOptions[ TOPTION_TOGGLE_TREE_TOPS ] = TRUE; gGameSettings.fOptions[ TOPTION_TOGGLE_WIREFRAME ] = TRUE; gGameSettings.fOptions[ TOPTION_3D_CURSOR ] = FALSE; // JA2Gold gGameSettings.fOptions[ TOPTION_MERC_CASTS_LIGHT ] = TRUE; gGameSettings.ubSizeOfDisplayCover = 4; gGameSettings.ubSizeOfLOS = 4; //Since we just set the settings, save them SaveGameSettings(); }
BOOLEAN LoadGameSettings() { HWFILE hFile; UINT32 uiNumBytesRead; //if the game settings file does NOT exist, or if it is smaller then what it should be if( !FileExists( GAME_SETTINGS_FILE ) || FileSize( GAME_SETTINGS_FILE ) != sizeof( GAME_SETTINGS ) ) { //Initialize the settings InitGameSettings(); //delete the shade tables aswell DeleteShadeTableDir( ); } else { hFile = FileOpen( GAME_SETTINGS_FILE, FILE_ACCESS_READ | FILE_OPEN_EXISTING, FALSE ); if( !hFile ) { FileClose( hFile ); InitGameSettings(); return(FALSE); } FileRead( hFile, &gGameSettings, sizeof( GAME_SETTINGS ), &uiNumBytesRead ); if( uiNumBytesRead != sizeof( GAME_SETTINGS ) ) { FileClose( hFile ); InitGameSettings(); return(FALSE); } FileClose( hFile ); } //if the version in the game setting file is older then the we want, init the game settings if( gGameSettings.uiSettingsVersionNumber < GAME_SETTING_CURRENT_VERSION ) { //Initialize the settings InitGameSettings(); //delete the shade tables aswell DeleteShadeTableDir( ); return( TRUE ); } // //Do checking to make sure the settings are valid // if( gGameSettings.bLastSavedGameSlot < 0 || gGameSettings.bLastSavedGameSlot >= NUM_SAVE_GAMES ) gGameSettings.bLastSavedGameSlot = -1; if( gGameSettings.ubMusicVolumeSetting > HIGHVOLUME ) gGameSettings.ubMusicVolumeSetting = MIDVOLUME; if( gGameSettings.ubSoundEffectsVolume > HIGHVOLUME ) gGameSettings.ubSoundEffectsVolume = MIDVOLUME; if( gGameSettings.ubSpeechVolume > HIGHVOLUME ) gGameSettings.ubSpeechVolume = MIDVOLUME; //make sure that at least subtitles or speech is enabled if( !gGameSettings.fOptions[ TOPTION_SUBTITLES ] && !gGameSettings.fOptions[ TOPTION_SPEECH ] ) { gGameSettings.fOptions[ TOPTION_SUBTITLES ] = TRUE; gGameSettings.fOptions[ TOPTION_SPEECH ] = TRUE; } // // Set the settings // SetSoundEffectsVolume( gGameSettings.ubSoundEffectsVolume ); SetSpeechVolume( gGameSettings.ubSpeechVolume ); MusicSetVolume( gGameSettings.ubMusicVolumeSetting ); #ifndef BLOOD_N_GORE_ENABLED gGameSettings.fOptions[ TOPTION_BLOOD_N_GORE ] = FALSE; #endif //if the user doesnt want the help screens present if( gGameSettings.fHideHelpInAllScreens ) { gHelpScreen.usHasPlayerSeenHelpScreenInCurrentScreen = 0; } else { //Set it so that every screens help will come up the first time ( the 'x' will be set ) gHelpScreen.usHasPlayerSeenHelpScreenInCurrentScreen = 0xffff; } return( TRUE ); }
UINT32 InitializeJA2(void) { #ifdef LASERLOCK_ENABLED HandleLaserLockResult( PrepareLaserLockSystem() ); #endif HandleJA2CDCheck( ); gfWorldLoaded = FALSE; // Load external text LoadAllExternalText(); // Init JA2 sounds InitJA2Sound( ); gsRenderCenterX = 805; gsRenderCenterY = 805; // Init data InitializeSystemVideoObjects( ); // Init animation system if ( !InitAnimationSystem( ) ) { return( ERROR_SCREEN ); } // Init lighting system InitLightingSystem(); // Init dialog queue system InitalizeDialogueControl(); if ( !InitStrategicEngine( ) ) { return( ERROR_SCREEN ); } //needs to be called here to init the SectorInfo struct InitStrategicMovementCosts( ); // Init tactical engine if ( !InitTacticalEngine( ) ) { return( ERROR_SCREEN ); } // Init timer system //Moved to the splash screen code. //InitializeJA2Clock( ); // INit shade tables BuildShadeTable( ); // INit intensity tables BuildIntensityTable( ); // Init Event Manager if ( !InitializeEventManager( ) ) { return( ERROR_SCREEN ); } // Initailize World if ( !InitializeWorld( ) ) { return( ERROR_SCREEN ); } InitTileCache( ); InitMercPopupBox( ); // Set global volume MusicSetVolume( gGameSettings.ubMusicVolumeSetting ); DetermineRGBDistributionSettings(); #ifdef JA2BETAVERSION #ifdef JA2EDITOR //UNCOMMENT NEXT LINE TO ALLOW FORCE UPDATES... //LoadGlobalSummary(); if( gfMustForceUpdateAllMaps ) { ApologizeOverrideAndForceUpdateEverything(); } #endif #endif #ifdef JA2BETAVERSION if( ProcessIfMultilingualCmdLineArgDetected( gzCommandLine ) ) { //If the multilingual text code generator has activated, quit now. gfProgramIsRunning = FALSE; return( INIT_SCREEN ); } #endif #ifdef JA2BETAVERSION // CHECK COMMANDLINE FOR SPECIAL UTILITY if ( strcmp( gzCommandLine, "-DOMAPS" ) == 0 ) { return( MAPUTILITY_SCREEN ); } #endif #ifdef JA2BETAVERSION //This allows the QuickSave Slots to be autoincremented, ie everytime the user saves, there will be a new quick save file if ( _stricmp( gzCommandLine, "-quicksave" ) == 0 ) { gfUseConsecutiveQuickSaveSlots = TRUE; } #endif #ifdef JA2BETAVERSION #ifdef JA2EDITOR // CHECK COMMANDLINE FOR SPECIAL UTILITY if( !strcmp( gzCommandLine, "-EDITORAUTO" ) ) { OutputDebugString( "Beginning JA2 using -EDITORAUTO commandline argument...\n" ); //For editor purposes, need to know the default map file. sprintf( gubFilename, "none"); //also set the sector gWorldSectorX = 0; gWorldSectorY = 0; gfAutoLoadA9 = TRUE; gfIntendOnEnteringEditor = TRUE; gGameOptions.fGunNut = TRUE; return( GAME_SCREEN ); } if ( strcmp( gzCommandLine, "-EDITOR" ) == 0 ) { OutputDebugString( "Beginning JA2 using -EDITOR commandline argument...\n" ); //For editor purposes, need to know the default map file. sprintf( gubFilename, "none"); //also set the sector gWorldSectorX = 0; gWorldSectorY = 0; gfAutoLoadA9 = FALSE; gfIntendOnEnteringEditor = TRUE; gGameOptions.fGunNut = TRUE; return( GAME_SCREEN ); } #endif #endif return( INIT_SCREEN ); }