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(); }
void D_CheckNetGame (void) { net_gamesettings_t settings; D_RegisterLoopCallbacks(&doom_loop_interface); if (netgame) { autostart = true; } SaveGameSettings(&settings); D_StartNetGame(&settings, NULL); LoadGameSettings(&settings); }
void ShutdownGame(void) { // handle shutdown of game with respect to preloaded mapscreen graphics HandleRemovalOfPreLoadedMapGraphics( ); ShutdownJA2( ); //Save the general save game settings to disk SaveGameSettings(); //shutdown the file database manager ShutDownFileDatabase( ); //Deletes all the Temp files in the Maps\Temp directory InitTacticalSave( FALSE ); }
// // D_CheckNetGame // Works out player numbers among the net participants // void D_CheckNetGame (void) { net_gamesettings_t settings; if (netgame) { autostart = true; } D_RegisterLoopCallbacks(&doom_loop_interface); SaveGameSettings(&settings); D_StartNetGame(&settings, NULL); LoadGameSettings(&settings); DEH_printf("startskill %i deathmatch: %i startmap: %i startepisode: %i\n", startskill, deathmatch, startmap, startepisode); DEH_printf("player %i of %i (%i nodes)\n", consoleplayer+1, settings.num_players, settings.num_players); // Show players here; the server might have specified a time limit if (timelimit > 0 && deathmatch) { // Gross hack to work like Vanilla: if (timelimit == 20 && M_CheckParm("-avg")) { DEH_printf("Austin Virtual Gaming: Levels will end " "after 20 minutes\n"); } else { DEH_printf("Levels will end after %d minute", timelimit); if (timelimit > 1) printf("s"); printf(".\n"); } } }
void D_CheckNetGame(void) { net_gamesettings_t settings; D_RegisterLoopCallbacks(&hexen_loop_interface); if (netgame) { autostart = true; } SaveGameSettings(&settings); D_StartNetGame(&settings, StartupProgress); LoadGameSettings(&settings); // Finish netgame progress on startup screen. if (netgame) { StartupProgress(settings.num_players, settings.num_players); ST_NetDone(); } }
void LoadGameSettings(char* pszGameName) { bool fNew = false; HKEY hDefaultKey = 0; char szDefaultKey[MAX_PATH]; lstrcpy(szDefaultKey, REG_BASEKEY); lstrcat(szDefaultKey, "\\"); lstrcat(szDefaultKey, REG_DEFAULT); if ( RegOpenKeyEx(HKEY_CURRENT_USER, szDefaultKey, 0, KEY_QUERY_VALUE, &hDefaultKey)!=ERROR_SUCCESS ) hDefaultKey = 0; HKEY hGameKey = 0; if ( pszGameName && *pszGameName ) { char szGameKey[MAX_PATH]; lstrcpy(szGameKey, REG_BASEKEY); lstrcat(szGameKey, "\\"); lstrcat(szGameKey, pszGameName); if ( RegOpenKeyEx(HKEY_CURRENT_USER, szGameKey, 0, KEY_QUERY_VALUE, &hGameKey)!=ERROR_SUCCESS ) hGameKey = 0; } char szValue[4096]; rc_option* opts[10]; int sp = 0; opts[sp] = ::opts; while ( sp>=0 ) { switch ( opts[sp]->type ) { case rc_bool: case rc_string: case rc_int: case rc_float: if ( IsGlobalSetting(opts[sp]->name) || IgnoreSetting(opts[sp]->name) ) break; char szDefault[4096]; RegLoadOpts(hDefaultKey, opts[sp], NULL, szDefault); fNew |= RegLoadOpts(hGameKey, opts[sp], szDefault, szValue); rc_set_option3(opts[sp], szValue, 0); break; case rc_end: sp--; continue; case rc_link: opts[sp+1] = (rc_option*) opts[sp]->dest; opts[sp]++; sp++; continue; } opts[sp]++; } if ( hGameKey ) RegCloseKey(hGameKey); if ( hDefaultKey ) RegCloseKey(hDefaultKey); if ( fNew ) SaveGameSettings(pszGameName); }