/// <summary>
        /// Saves user settings and database data to disk.
        /// </summary>
        internal bool Save()
        {
            try
            {
                ConfigManager.SaveConfig();

                BeatmapManager.DatabaseSerialize();
                PresenceCache.DatabaseSerialize();

                CollectionManager.SaveToDisk();
                ScoreManager.SaveToDisk();
                return(true);
            }
            catch (Exception e)
            {
                ErrorSubmission.Submit(new OsuError(e)
                {
                    Feedback = "background-save"
                });
                return(false);
            }
            finally
            {
                lastSave        = GameBase.Time;
                modeChangeCount = 0;
            }
        }
        private static void Exit()
        {
            BeatmapManager.OnlineFavouritesLoaded = false;
            forceFullRefresh  = false;
            doNewBeatmapCheck = false;

            if (GameBase.Mode == OsuModes.BeatmapImport)
            {
                GameBase.ChangeModeInstant(GameBase.CallbackMode);
            }

            if (GameBase.Tournament && GameBase.TournamentManager)
            {
                BeatmapManager.DatabaseSerialize();
            }
        }
Exemple #3
0
        public override void Initialize()
        {
            BeatmapManager.Initialize();

            BeatmapManager.DatabaseSerialize();

            if (!(ConfigManager.sSaveUsername && ConfigManager.sSavePassword))
            {
                TopMostMessageBox.Show(LocalisationManager.GetString(OsuString.Tournament_MessageRememberCredentials));
                OsuMain.ExitImmediately();
                return;
            }

            int connectPeriod = 10000;

            while (!BanchoClient.Connected && (connectPeriod -= 50) > 0)
            {
                Thread.Sleep(50);
            }

            if (!BanchoClient.Connected)
            {
                TopMostMessageBox.Show(LocalisationManager.GetString(OsuString.Tournament_ClientCouldNotConnect));
                OsuMain.ExitImmediately();
                return;
            }

#if !DEBUG
            if ((BanchoClient.Permission & Permissions.Tournament) == 0)
            {
                TopMostMessageBox.Show(LocalisationManager.GetString(OsuString.Tournament_MessageNoAccess));
                OsuMain.ExitImmediately();
                return;
            }
#endif

            initializeSprites();

            clients = new TournamentClientManager(this, spriteManager);
            Lobby   = new TournamentLobby(this, spriteManager, 1.01f);

            base.Initialize();

            StateChanged += stateChanged;
            State         = TourneyState.Idle;
        }