anchor.diff:      fOnPageChange: TKMMenuChangeEventText; // will be in ancestor class
   
       fMainSettings: TKMainSettings;
  -    fGameSettings: TKMGameSettings;
       fResolutions: TKMResolutions;
   
       // We remember old values to enable/disable "Apply" button dynamicaly
  
positive.code: // hence we need to pass either gGameApp.Settings or a direct Settings link
  procedure TKMMenuOptions.Refresh;
  begin
    CheckBox_Options_Autosave.Checked        := fGameSettings.Autosave;
    CheckBox_Options_AutosaveAtGameEnd.Checked := fGameSettings.AutosaveAtGameEnd;
    CheckBox_Options_ReplayAutopause.Checked := fGameSettings.ReplayAutopause;
    TrackBar_Options_Brightness.Position     := fGameSettings.Brightness;
    CheckBox_Options_VSync.Checked           := fMainSettings.VSync;
    CheckBox_Options_FullFonts.Enabled       := not gResLocales.LocaleByCode(fGameSettings.Locale).NeedsFullFonts;
    CheckBox_Options_FullFonts.Checked       := fGameSettings.LoadFullFonts or not CheckBox_Options_FullFonts.Enabled;
    CheckBox_Options_ShadowQuality.Checked   := fGameSettings.AlphaShadows;
    TrackBar_Options_ScrollSpeed.Position    := fGameSettings.ScrollSpeed;
    TrackBar_Options_SFX.Position            := Round(fGameSettings.SoundFXVolume * TrackBar_Options_SFX.MaxValue);
    TrackBar_Options_Music.Position          := Round(fGameSettings.MusicVolume * TrackBar_Options_Music.MaxValue);
    CheckBox_Options_MusicOff.Checked        := fGameSettings.MusicOff;
    TrackBar_Options_Music.Enabled           := not CheckBox_Options_MusicOff.Checked;
    CheckBox_Options_ShuffleOn.Checked       := fGameSettings.ShuffleOn;
    CheckBox_Options_ShuffleOn.Enabled       := not CheckBox_Options_MusicOff.Checked;
    CheckBox_Options_VideoEnable.Checked     := fGameSettings.VideoOn;
    CheckBox_Options_VideoStretch.Checked    := fGameSettings.VideoStretch;
    CheckBox_Options_VideoStretch.Enabled    := fGameSettings.VideoOn;
    CheckBox_Options_VideoStartup.Checked    := fGameSettings.VideoStartup;
    CheckBox_Options_VideoStartup.Enabled    := fGameSettings.VideoOn;
    TrackBar_Options_VideoVolume.Position    := Round(fGameSettings.VideoVolume * TrackBar_Options_VideoVolume.MaxValue);
    //Disable Video volume util we will fix it
    //Video volume is set via windows mixer now, and it affect all other game sounds/music after the end of video playback
    TrackBar_Options_VideoVolume.Enabled     := False; //fGameSettings.VideoOn;
    Button_Options_VideoTest.Enabled         := fGameSettings.VideoOn;
    CheckBox_Options_SnowHouses.Checked      := fGameSettings.AllowSnowHouses;
    CheckBox_MakeSavePoints.Checked          := fGameSettings.SaveCheckpoints;
  
    Radio_Options_Lang.ItemIndex := gResLocales.IndexByCode(fGameSettings.Locale);
  
    // We need to reset dropboxes every time we enter Options page
    RefreshResolutions;
  
negative.code:   // (we do that on Show because Create gets called from Main/Game constructor and fMain/gGameApp are not yet assigned)
    // Ideally we could pass them as parameters here
    fMainSettings := gMain.Settings;
    gGameSettings := gGameSettings;
    fResolutions := gMain.Resolutions;
    fLastAlphaShadows := gGameSettings.AlphaShadows;
  
    Refresh;
    Panel_Options.Show;
  