void Start()
 {
     save = GameObject.Find ("SaveState").GetComponent<SaveState> ();
     if (save.loaded_data.lvl == 0) {
         GameObject.Find("ContinueButton").SetActive(false);
     }
 }
示例#2
0
 public void Save(int level, float animationSpeed = 1f, float delayScale = 1f)
 {
     _saveState = new SaveState {
         Started        = false,
         Level          = level,
         AnimationSpeed = animationSpeed,
         DelayScale     = delayScale
     };
 }
示例#3
0
        public static AbstractPhysicalObject Orig_AbstractPhysicalObjectFromString(World world, string str)
        {
            // Generating a trampoline may cause a segfault
            apofsDetour.Undo();
            AbstractPhysicalObject ret = SaveState.AbstractPhysicalObjectFromString(world, str);

            apofsDetour.Apply();
            return(ret);
        }
示例#4
0
 public void Save(SaveState state)
 {
     state.Resources.Add(new ResourceState()
     {
         Name      = GetType().Name,
         Amount    = Amount,
         IsVisible = IsVisible
     });
 }
示例#5
0
 public void SyncState(Serializer ser)
 {
     SaveState.SyncObject(ser, this);
     for (int i = 0; i < 8; i++)
     {
         ser.BeginSection("sprite" + i.ToString());
         SaveState.SyncObject(ser, sprites[i]);
         ser.EndSection();
     }
 }
示例#6
0
        public void ReadSave(SaveState state)
        {
            int counter = state.Reader.ReadInt32();

            for (int i = 0; i < counter; i++)
            {
                var  guid    = state.ReadIndexedGUID();
                byte unknown = state.Reader.ReadByte();
            }
        }
    public bool CreateSaveState()
    {
        //SWITCH LOCATION FOR ACTUAL PLAYER LOCATION WHEN AVAILABLE
        SaveState toAdd = new SaveState("Save " + (int)(saves.Count + 1), SceneManager.GetActiveScene().buildIndex, remainingActions,
                                        playerReference.transform.position, InTimeVariables, intimeCountdownActive);

        saves.Add(toAdd);
        Debug.Log("Saved " + toAdd.ToString());
        return(true);
    }
示例#8
0
        /// <summary>
        /// Invoked when this page will no longer be displayed in a Frame.
        /// This method calls <see cref="SaveState"/>, where all page specific
        /// navigation and process lifetime management logic should be placed.
        /// </summary>
        /// <param name="e">Event data that describes how this page was reached.  The Parameter
        /// property provides the group to be displayed.</param>
        public void OnNavigatedFrom(NavigationEventArgs e)
        {
            var frameState = SuspensionManager.SessionStateForFrame(Frame);
            var pageState  = new Dictionary <String, Object>();

            SaveState?.Invoke(this, new SaveStateEventArgs(pageState));
            frameState[_pageKey] = pageState;

            SystemNavigationManager.GetForCurrentView().AppViewBackButtonVisibility = CanGoBack() ? AppViewBackButtonVisibility.Visible : AppViewBackButtonVisibility.Collapsed;
        }
示例#9
0
 // Move this to a state saving manager or something?
 public void LoadGame(SaveState savedState)
 {
     SetGameReadyValues();
     difficulty = savedState.difficulty;
     lang       = savedState.language;
     score      = savedState.score;
     lives      = savedState.lives;
     holyWaters = savedState.holyWaters;
     LoadScene(savedState.level);
 }
    public void SaveCurrentState()
    {
        print("Saving");

        saveState = new SaveState();

        saveState.GoldCount = GlobalVars.GoldCount;

        Application.LoadLevel("testScene");
    }
示例#11
0
        public void UpdateProgress(SaveState state, float progress)
        {
            State    = state;
            Progress = progress;

            if (OnProgress != null)
            {
                OnProgress(state, progress);
            }
        }
示例#12
0
 public static string Serialize<T>(SaveState toSerialize)
 {
     XmlSerializer xml = new XmlSerializer(typeof(SaveState));
     /*FileStream fs = new FileStream(Application.dataPath + "/test.xml", FileMode.Create);
     xml.Serialize(fs, toSerialize);
     fs.Close();*/
     StringWriter writer = new StringWriter();
     xml.Serialize(writer, toSerialize);
     return writer.ToString();
 }
示例#13
0
        /// <summary>
        /// Set the correct number of destroyed enemies for Quinn.
        /// </summary>
        private static void LoadDestroyedEnemies(SaveState state, Room room)
        {
            WorldObject destroyedEnemy = new BlankObject(Vector2.Zero, room);

            destroyedEnemy.SetEnemy(WorldObject.EnemyTypes.Plant, "ForestShroom");
            for (int e = 0; e < state.EnemiesKilled; e++)
            {
                Map.EnemiesDefeated.Add(destroyedEnemy);
            }
        }
        /// <summary>
        ///     Invoked when this page will no longer be displayed in a Frame.
        ///     This method calls <see cref="SaveState" />, where all page specific
        ///     navigation and process lifetime management logic should be placed.
        /// </summary>
        /// <param name="e">
        ///     Event data that describes how this page was reached.  The Parameter
        ///     property provides the group to be displayed.
        /// </param>
        public virtual void OnNavigatedFrom(NavigationEventArgs e)
        {
            var frameState = GetSessionState();
            var pageState  = new Dictionary <string, object>();

            //NOTE saving state of view model.
            UwpToolkitExtensions.ApplicationStateManager.OnSaveState(Page, pageState, e);
            SaveState?.Invoke(this, new SaveStateEventArgs(pageState));
            frameState[_pageKey] = pageState;
        }
示例#15
0
    // load the game
    public void load()
    {
        // Do we have the save?
        if (PlayerPrefs.HasKey("save"))
        {
            state = OtherMethod.deserialize <SaveState>(PlayerPrefs.GetString("save"));
        }

        GameManager.instance.saveFile = state;
    }
示例#16
0
    protected override void OnDeactivated(object sender, EventArgs args)
    {
        AppMain.isForeground = false;
        if (SaveState.saveLater)
        {
            SaveState._saveFile((object)SaveState.save);
        }

        AppMain._am_sample_count = 2;
    }
示例#17
0
    public static void Load()
    {
        string    path      = Path.Combine(Application.persistentDataPath, "save.json");
        string    json      = File.ReadAllText(path);
        SaveState saveState = JsonUtility.FromJson <SaveState>(json);

        SceneManager.LoadScene(saveState.sceneName);
        Vector3 playerPos = saveState.playerPos;
        float   health    = saveState.playerHealth;
    }
 private static void SaveState_SessionEnded(On.SaveState.orig_SessionEnded orig, SaveState self, RainWorldGame game, bool survived, bool newMalnourished)
 {
     KarmaAppetite_ExtraInventory.SaveEnabled = survived;
     orig.Invoke(self, game, survived, newMalnourished);
     KarmaAppetite_ExtraInventory.SaveEnabled = true;
     if (!survived)
     {
         KarmaAppetite_ExtraInventory.Inventories.Clear();
     }
 }
示例#19
0
    public IEnumerator Save()
    {
        while (true)
        {
            yield return(new WaitForSeconds(5));

            Debug.Log("saving player data...");
            SaveState.SavePlayer(this);
        }
    }
示例#20
0
 private void Apply(SaveState s)
 {
     if (s._frameState != null)
     {
         SelectedCHR0 = s._animation;
         CurrentFrame = s._frameIndex;
         SelectedBone = s._bone;
         chr0Editor.ApplyState(s);
     }
 }
示例#21
0
 public void SyncState(Serializer ser)
 {
     SaveState.SyncObject(ser, this);
     if (ser.IsReader)
     {
         UpdateBorder();
         UpdatePins();
         UpdateVideoMode();
     }
 }
示例#22
0
 public IUserService CreateUserService(State currentState)
 {
     return(currentState switch
     {
         SaveState _ => new SaveContextUserService(storage),
         DefaultState _ => new RegistrationContextUserService(storage, logger),
         InitState _ => new InitUserService(storage),
         GetState _ => new GetContextUserService(storage),
         _ => throw new Exception($"{nameof(currentState)}:{currentState}")
     });
示例#23
0
        private async void tsbtnNew_Click(object sender, EventArgs e)
        {
            if (MessageBox.Show(I18n.Translate("Msg.DiscardChange"), "Clear workspace", MessageBoxButtons.YesNo)
                == DialogResult.Yes)
            {
                currentWorkspace = new SaveState();
                await mainWebBrowser.BkyResetWorkspace();

                updateTitleAndSaveBtn();
            }
        }
示例#24
0
 private void Start()
 {
     if (!NewGame)
     {
         SaveState.LoadGame();
     }
     enEscena = GameObject.FindGameObjectsWithTag("EnemigoMachete").
                Concat(GameObject.FindGameObjectsWithTag("EnemigoRango").
                       Concat(GameObject.FindGameObjectsWithTag("EnemigoNormalCuchillo").
                              Concat(GameObject.FindGameObjectsWithTag("Pesado")))).ToArray();
 }
示例#25
0
 public void Save()
 {
     if (PlayerPrefs.HasKey("Save"))
     {
         saveState = SaveReader.ReturnSave();
     }
     FillItem();
     PlayerPrefs.SetString("Save", SaveHelper.Serialize <SaveState>(saveState));
     PlayerPrefs.SetString("Gun", SaveHelper.Serialize <bool[]>(gun));
     PlayerPrefs.SetString("Body", SaveHelper.Serialize <bool[]>(body));
 }
示例#26
0
    void Start()
    {
        save = GameObject.Find ("SaveState").GetComponent<SaveState> ();

        puzzlepiece = new bool[16];
        for (int i = 1; i < puzzlepiece.Length; i++) {
            puzzlepiece[i] = false;
        }
        ReadSaveState ();
        OnEnable ();
    }
示例#27
0
        private void btn_save_Click(object sender, EventArgs e)
        {
            if (!Directory.Exists(SaveState.lollipop.results_folder))
            {
                return;
            }
            string timestamp = SaveState.time_stamp();

            ResultsSummaryGenerator.save_all(SaveState.lollipop.results_folder, timestamp);
            ((ProteoformSweet)MdiParent).save_all_plots(SaveState.lollipop.results_folder, timestamp);
        }
        public void DeserializeStateObject(SaveState state)
        {
            int itemCount = state.ReadVariableLengthOffset();

            for (int i = 0; i < itemCount; i++)
            {
                var newObj = state.DeserializeType <T>();

                Add(newObj);
            }
        }
示例#29
0
    public int Load()
    {
        //if()
        {
            state      = sm.Load();
            nodes      = new List <Node>();
            PartsTypes = new List <PrefabType>();
            Parts      = new List <GameObject>();
            for (int i = 0; i < state.node.Count; i++)
            {
                nodes.Add(state.node[i].ConvertToNode());
            }
            MazeSize = state.levelSize;
            SaveManager.levelSize = state.levelSize;
            for (int i = 0; i < state.node.Count; i++)
            {
                GameObject tempObj = new GameObject();
                switch (nodes[i].Type)
                {
                case (PrefabType.Part01):
                    tempObj = Instantiate(Part01, nodes[i].transform.position, nodes[i].transform.rotation, Maze.transform);
                    PartsTypes.Add(PrefabType.Part01);
                    break;

                case (PrefabType.Part02):
                    tempObj = Instantiate(Part02, nodes[i].transform.position, nodes[i].transform.rotation, Maze.transform);
                    PartsTypes.Add(PrefabType.Part02);
                    break;

                case (PrefabType.Part03):
                    tempObj = Instantiate(Part03, nodes[i].transform.position, nodes[i].transform.rotation, Maze.transform);
                    PartsTypes.Add(PrefabType.Part03);
                    break;

                case (PrefabType.Part04):
                    tempObj = Instantiate(Part04, nodes[i].transform.position, nodes[i].transform.rotation, Maze.transform);
                    PartsTypes.Add(PrefabType.Part04);
                    break;

                case (PrefabType.Part05):
                    tempObj = Instantiate(Part05, nodes[i].transform.position, nodes[i].transform.rotation, Maze.transform);
                    PartsTypes.Add(PrefabType.Part05);
                    break;
                }

                tempObj.GetComponent <Renderer>().material = onMaze;
                Parts.Add(tempObj);
            }
            noOfParts = state.node.Count;
            mainCamera.orthographicSize = SaveManager.levelSize + 1;
            return(1);
        }
        //else
    }
示例#30
0
 private void AddState(SaveState state)
 {
     if (!AwaitingRedoSave)
     {
         AddUndo(state);
     }
     else
     {
         AddRedo(state);
     }
 }
示例#31
0
        public override void Update()
        {
            if (_lastState != _state)
            {
                _lastState = _state;
                SoundManager.PlaySoundEffect("menu_move");
                SetSelectorPos();
            }

            base.Update();
        }
示例#32
0
    public static void Save(string filePath)
    {
        SaveState data = new SaveState();

        Stream          stream     = File.Open(filePath, FileMode.Create);
        BinaryFormatter bformatter = new BinaryFormatter();

        bformatter.Binder = new VersionDeserializationBinder();
        bformatter.Serialize(stream, data);
        stream.Close();
    }
    void Start()
    {
        State = SaveSystem.LoadGame();

        DescriptionText = transform.Find("Description").GetComponent <TextMeshProUGUI>();
        TitleText       = transform.Find("Title").GetComponent <Text>();
        TitleText       = transform.Find("Title").GetComponent <Text>();

        DescriptionText.text = "";
        TitleText.text       = "";
    }
 internal void LastSaveToDB()
 {
     m_StartLastSaveResult = SaveState.Initial;
     if (m_LastSaveState != SaveState.Initial || m_CurrentDBSaveState == SaveState.Saving) {
         LogSys.Log(LOG_TYPE.ERROR, "Start LastSaveToDB failed because the previous operation is not finish");
         m_StartLastSaveResult = SaveState.Failed;
         return;
     }
     m_StartLastSaveResult = SaveState.Success;
     m_LastSaveState = SaveState.Saving;
     m_CurrentDBSaveState = SaveState.Saving;
     m_NextSaveCount = c_UltimateSaveCount;
     SaveDirtyDataToDB(m_NextSaveCount, DataOpSystem.Instance.GlobalDBDataVersion);
     DataOpSystem.Instance.IncreaseGlobalDataVersion();
 }
示例#35
0
        public void Save()
        {
            if (!CanExecuteSave)
                return;
            State = SaveState.Saving;
            TotalProgress = 0;
            CurrentFileProgress = 0;
            CurrentFileName = string.Empty;
            savedFile.Clear();

            var mods = modules.ToArray();
            new Thread(() => SaveAsync(mods)).Start();
        }
示例#36
0
        public void Save()
        {
            if (!CanExecuteSave)
                return;
            State = SaveState.Saving;
            TotalProgress = 0;
            CurrentFileProgress = 0;
            CurrentFileName = string.Empty;
            savedFile.Clear();

            var mods = modules.ToArray();
            MmapUtils.DisableMemoryMappedIO(mods.Select(a => a.FileName));
            new Thread(() => SaveAsync(mods)).Start();
        }
示例#37
0
        public void CancelSave()
        {
            if (!IsSaving)
                return;
            var ms = moduleSaver;
            if (ms == null)
                return;

            State = SaveState.Canceling;
            ms.CancelAsync();
        }
示例#38
0
 private void backgroundWorker1_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
 {
     if (whenStarted.Ticks > 0)
     {
         TimeSpan ts = DateTime.Now.Subtract(whenStarted);
         this.RemuxProgressTimeTextBox.Text = "elapsed: " + ts.TotalSeconds.ToString("#.00") + " sec.";
     }
     RemuxButton.Text = "Remux";
     InputFileBrowseButton.Enabled = true;
     OutputFileBrowseButton.Enabled = true;
     InputFileTextBox.Enabled = true;
     OutputFileTextBox.Enabled = true;
     FormatBox.Enabled = true;
     TsFormatRadioButton.Enabled = true;
     MKVFormatRadioButton.Enabled = true;
     DemuxFormatRadioButton.Enabled = true;
     cbxUseAsyncIO.Enabled = true;
     cbxBypassAudioProcessing.Enabled = true;
     EnableCbxMlp();
     if (length > TimeSpan.Zero)
     {
         M2tsFormatRadioButton.Enabled = true;
         BluRayFormatRadioButton.Enabled = true;
     }
     Quit.Enabled = true;
     ElementaryStreamsListBox.Enabled = true;
     if (length > TimeSpan.Zero)
         EnableNumerics();
     this.Cursor = Cursors.Default;
     state = SaveState.Remux;
     elmName = String.Empty;
     elmPid = 0;
     /***********
      * some artifact of the remux process causes extreme performance degradation, IF
      * you just re-remux the same file over again.  re-opening the input seems to
      * clear this condition.  So here we force user to do that in order to re-remux
      */
     if (InputFileTextBox.Text.Length > 0 && OutputFileTextBox.Text.Length > 0)
         RemuxButton.Enabled = true;
     else
         RemuxButton.Enabled = false;
     // * *********/
     //RemuxButton.Enabled = false;
     if (e.Error != null)
         MessageBox.Show(e.Error.Message + "\n" + e.Error.StackTrace);
 }
示例#39
0
    /**
     * Produces a singleton on awake
     */
    public override void Start()
    {
        if (state == null) {
            DontDestroyOnLoad(gameObject);
            state = this;
        } else if (state != this) {
            Destroy(gameObject);
        }

        state.resourceBuildings = new Dictionary<Tuple, ResourceBuilding>();
        state.decorativeBuildings = new Dictionary<Tuple, DecorativeBuilding>();
        state.residenceBuildings = new Dictionary<Tuple, ResidenceBuilding>();

        buildingInformationManager = new BuildingInformationManager();
        woolyBeans = 0;
        poofLimit = 0;
    }
示例#40
0
        private void init()
        {
            InitializeComponent();
            inFile = null;
            length = new TimeSpan();
            pidList = new List<ushort>();
            pidsToKeep = new List<ushort>();
            OutputFileBrowseButton.Enabled = false;
            RemuxButton.Enabled = false;
            OpenOutputFileDialog.OverwritePrompt = false;
            DisableNumerics();
            RemuxButton.Text = "Remux";
            AssemblyName an = Assembly.GetExecutingAssembly().GetName();
            this.Text = an.Name + " v." + an.Version.ToString(4) + " by dmz, modified by spacecat56 and hobBIT";
            state = SaveState.Remux;
            elmName = string.Empty;
            elmPid = 0;
            supPresent = false;
            supFile = null;

            // hobBIT
            _bAutoFilled = false;
            _LogAddons = new ArrayList();
        }
示例#41
0
 private void DemuxSup_Click(object sender, EventArgs e)
 {
     state = SaveState.DemuxSup;
     SaveElementaryStream.ShowDialog();
 }
示例#42
0
        private void LoadSaveStateFiles()
        {
            saveSlots = new SaveState[10];
            for (int i = 0; i < 10; i++)
            {
                if (File.Exists(Path.Combine(config["savestateDir"], cpu.rom.fileName + ".s" + i.ToString("D2"))))
                {
                    FileStream stream = new FileStream(Path.Combine(config["savestateDir"], cpu.rom.fileName + ".s" + i.ToString("D2")), FileMode.Open, FileAccess.Read, FileShare.Read);
                    SaveState newstate = new SaveState();
                    byte[] buffer = new byte[stream.Length];
                    stream.Read(buffer, 0, (int)stream.Length);
                    newstate.stateStream = new MemoryStream(buffer);
                    newstate.isStored = true;
                    saveSlots[i] = newstate;
                    stream.Close();
                }

            }
        }
示例#43
0
        void SaveAsync(SaveModuleOptionsVM[] mods)
        {
            try {
                moduleSaver = new ModuleSaver(mods);
                moduleSaver.OnProgressUpdated += moduleSaver_OnProgressUpdated;
                moduleSaver.OnLogMessage += moduleSaver_OnLogMessage;
                moduleSaver.OnWritingFile += moduleSaver_OnWritingFile;
                moduleSaver.SaveAll();
                AsyncAddMessage("All files written to disk.", false, false);
            }
            catch (TaskCanceledException) {
                AsyncAddMessage("Save was canceled by user.", true, false);
            }
            catch (UnauthorizedAccessException ex) {
                AsyncAddMessage(string.Format("Access error: {0}", ex.Message), true, false);
            }
            catch (IOException ex) {
                AsyncAddMessage(string.Format("File error: {0}", ex.Message), true, false);
            }
            catch (Exception ex) {
                AsyncAddMessage(string.Format("An exception occurred\n\n{0}", ex), true, false);
            }
            moduleSaver = null;

            ExecInOldThread(() => {
                CurrentFileName = string.Empty;
                State = SaveState.Saved;
            });
        }
示例#44
0
文件: Form1.cs 项目: dpnebert/Todo
        // Save State
        private void setSaveState(SaveState saveState)
        {
            if (saveState == SaveState.INITIAL)
            {
                // Change menu items
                saveToolStripMenuItem.Enabled = false;
            //                saveAsToolStripMenuItem.Enabled = false;
            }
            else if(saveState == SaveState.UNSAVED)
            {

                // Change menu items
                saveToolStripMenuItem.Enabled = false;
                saveAsToolStripMenuItem.Enabled = true;
            }
            else if(saveState == SaveState.SAVED)
            {

                // Change menu items
                saveToolStripMenuItem.Enabled = true;
                saveAsToolStripMenuItem.Enabled = true;
            }
        }
示例#45
0
文件: Map.cs 项目: mellinja/TD2
        public void SaveNextState()
        {
            if (saveStates.Count > 1000)
                saveStates.RemoveAt(0);
            SaveState nextState = new SaveState();
            nextState.enemies = new List<Enemy>();
            nextState.towers = new List<Tower>();
            nextState.counter = this.updateCounter;

            if (this.wave != null)
            {
                nextState.wave = new Wave(this.wave.Enemy,0);

                for (int i = 0; i < this.wave.Enemies.Count; i++)
                {
                    nextState.wave.Enemies.Push(this.wave.Enemies.Peek().Clone());
                }
            }

            for (int i = 0; i < this.Towers.Count; i++)
            {
                nextState.towers.Add(this.Towers[i]);
            }
            for (int i = 0; i < this.Enemies.Count; i++)
            {
                Enemy temp = this.Enemies[i];
                Enemy enemy = new Enemy(temp.MaxHealth, temp.Speed, temp.Type, temp.Gold, temp.Location);
                enemy.Health = temp.Health;
                nextState.enemies.Add(enemy);
            }
            nextState.score = this.Score;
            nextState.money = this.Money;
            saveStates.Add(nextState);
        }
示例#46
0
文件: UIManager.cs 项目: aimozs/perma
	public static void DisplaySaveState(SaveState state){
		Instance.ShowCanvas(Instance.currentState.GetComponent<CanvasGroup>(), true);
		Image currentStateImage = Instance.currentState.GetComponent<Image>();
		currentStateImage.color = Color.white;
		switch(state){
		case SaveState.open:
			currentStateImage.sprite = instance.SSopen;
			break;
		case SaveState.saved:
			currentStateImage.sprite = instance.SSsaved;
			break;
		case SaveState.loaded:
			currentStateImage.sprite = instance.SSloaded;
			break;
		case SaveState.savedOnline:
			currentStateImage.sprite = instance.SSonline;
			break;
		case SaveState.loadOnline:
			currentStateImage.sprite = instance.SSonline;
			currentStateImage.color = Color.green;
			break;
		}
	}
示例#47
0
文件: Map.cs 项目: mellinja/TD2
        public void LoadPreviousState()
        {
            if (saveStates.Count == 0)
                return;
            SaveState previousState = new SaveState();
            previousState = this.saveStates[saveStates.Count - 1];
            this.Money = previousState.money;
            this.Score = previousState.score;
            this.Towers = new List<Tower>();
            this.Enemies = new List<Enemy>();
            this.updateCounter = previousState.counter;

            if (previousState.wave != null)
            {
                this.wave = new Wave(previousState.wave.Enemy, 0);
                for (int i = 0; i < previousState.wave.Enemies.Count; i++)
                {
                    this.wave.Enemies.Push(previousState.wave.Enemies.Peek().Clone());
                }
            }
            for (int i = 0; i < previousState.towers.Count; i++)
                this.Towers.Add(previousState.towers[i]);
            for (int i = 0; i < previousState.enemies.Count; i++)
            {
                Enemy temp = previousState.enemies[i];
                Enemy enemy = new Enemy(temp.MaxHealth, temp.Speed, temp.Type, temp.Gold, temp.Location);
                enemy.Castle = this.castle;
                enemy.Health = temp.Health;
                enemy.Map = this;
                this.Enemies.Add(enemy);
            }
            this.saveStates.RemoveAt(saveStates.Count - 1);
        }
 internal void Tick()
 {
     try {
         long curTime = TimeUtility.GetLocalMilliseconds();
         if (m_LastTickTime + m_SaveDataToDBInterval < curTime) {
             m_LastTickTime = curTime;
             if (m_NextSaveCount != c_UltimateSaveCount && m_CurrentDBSaveState != SaveState.Saving) {
                 m_CurrentDBSaveState = SaveState.Saving;
                 SaveDirtyDataToDB(m_NextSaveCount, DataOpSystem.Instance.GlobalDBDataVersion);
                 DataOpSystem.Instance.IncreaseGlobalDataVersion();
                 m_NextSaveCount++;
             }
         }
         if (curTime - m_LastCheckTime > c_SaveDataFinishInterval) {
             m_LastCheckTime = curTime;
             if (m_CurrentDBSaveState == SaveState.Saving) {
                 int unfinishedCount = 0;
                 int failedCount = 0;
                 foreach (var pair in m_CurrentSaveCounts) {
                     int saveCount = pair.Value;
                     if (saveCount == c_InitialSaveCount) {
                         unfinishedCount++;
                     } else if (saveCount == c_FailedSaveCount) {
                         failedCount++;
                     }
                 }
                 if (unfinishedCount == 0) {
                     //存储DB操作完成
                     if (failedCount == 0) {
                         m_CurrentDBSaveState = SaveState.Success;    //存储DB操作成功
                     } else {
                         m_CurrentDBSaveState = SaveState.Failed;     //存储DB操作有失败
                     }
                     LogSys.Log(LOG_TYPE.MONITOR, "SaveDirtyDataToDB finished. Result:{0}, NextSaveCount:{1}, CurrentSaveCounts:{2}, FailedCount:{3}",
                       m_CurrentDBSaveState, m_NextSaveCount, m_CurrentSaveCounts.Count, failedCount);
                 }
             }
             if (m_LastSaveState == SaveState.Saving && m_NextSaveCount == c_UltimateSaveCount) {
                 //最后一次存储结果
                 if (m_CurrentDBSaveState == SaveState.Success) {
                     m_LastSaveState = SaveState.Success;
                     LogSys.Log(LOG_TYPE.INFO, "LastSaveFinished Result:{0}", m_LastSaveState);
                 } else if (m_CurrentDBSaveState == SaveState.Failed) {
                     m_LastSaveState = SaveState.Failed;
                     LogSys.Log(LOG_TYPE.INFO, "LastSaveFinished Result:{0}", m_LastSaveState);
                 }
             }
         }
     } catch (Exception ex) {
         LogSys.Log(LOG_TYPE.ERROR, "DataCacheSystem ERROR:{0} \n StackTrace:{1}", ex.Message, ex.StackTrace);
     }
 }
示例#49
0
 public void copy(SaveState save)
 {
     canJump = save.canJump;
     canSword = save.canSword;
     canBow = save.canBow;
     switchesActivated = new List<string>(save.switchesActivated);
     requiredEnemyKills = new List<string>(save.requiredEnemyKills);
     lastMap = save.lastMap;
     lastDoor = save.lastDoor;
 }
示例#50
0
        public void saveClose()
        {
            gameState.changeLvl(false, map.tiles, this, map.entx, map.enty, map.exx, map.exy, true);

            SaveState tosave = new SaveState(gameState, player);
            IFormatter serializer = new BinaryFormatter();
            Stream save = new FileStream(Globals.SAVE, FileMode.Create, FileAccess.Write, FileShare.None);
            serializer.Serialize(save, tosave);
            save.Close();

            Environment.Exit(0);
        }