Пример #1
0
        void FileWatcher()
        {
            //Message("FileWatcher");
            //Thread.Sleep(100);
            //Thread.Sleep(4000);
            DateTime dt = DateTime.Now;

            // wait for 1/10 sec
            while (DateTime.Now.Subtract(dt).TotalMilliseconds < 4000)
            {
                if ((_fileState & CradleOfRomeFileState.ConfigChange) == CradleOfRomeFileState.ConfigChange)
                {
                    break;
                }
                Thread.Sleep(100);
            }
            bool profilesChange = (_fileState & CradleOfRomeFileState.ProfilesChange) == CradleOfRomeFileState.ProfilesChange;
            bool configChange   = (_fileState & CradleOfRomeFileState.ConfigChange) == CradleOfRomeFileState.ConfigChange;

            //Message("FileWatcher profilesChange {0} configChange {1}", profilesChange, configChange);
            if (profilesChange)
            {
                SaveCraddleFiles(!configChange);
            }
            _fileState          = CradleOfRomeFileState.None;
            _fileWatcherRunning = false;
        }
Пример #2
0
        public void Start()
        {
            string filter = "*.xml";

            Stop();
            GetLevelsFromSaveDirectory();
            _lastLevel                             = _currentLevel;
            _fileState                             = CradleOfRomeFileState.None;
            _fileWatcherRunning                    = false;
            _fileSystemWatcher                     = new FileSystemWatcher();
            _fileSystemWatcher.Path                = _cradleFileDirectory;
            _fileSystemWatcher.Filter              = filter;
            _fileSystemWatcher.Changed            += new FileSystemEventHandler(FileChanged);
            _fileSystemWatcher.EnableRaisingEvents = true;
            Message("Craddle of rome 2 watcher started, blitz {0}, current level easy {1} normal {2} hard {3} number {4}", _blitzLevelType, _currentLevel.EasyLevel, _currentLevel.NormalLevel, _currentLevel.HardLevel, _currentLevel.FileNumber);
        }
Пример #3
0
 void FileChanged(object sender, FileSystemEventArgs e)
 {
     // sender = FileSystemWatcher
     //wr.Print("file changed : {0} name \"{1}\"", GetTimeString(), e.Name);
     if (IsCraddleRunning())
     {
         //Message("file changed \"{0}\"", e.Name);
         StartFileWatcher();
         if (e.Name == "profiles.xml")
         {
             _fileState |= CradleOfRomeFileState.ProfilesChange;
         }
         else if (e.Name == "config.xml")
         {
             _fileState |= CradleOfRomeFileState.ConfigChange;
         }
     }
 }