Esempio n. 1
0
		public MovieZone(IMovie movie, int start, int length, string key = "")
		{
			Bk2LogEntryGenerator lg = Global.MovieSession.LogGeneratorInstance() as Bk2LogEntryGenerator;
			lg.SetSource(Global.MovieSession.MovieControllerAdapter);
			targetController = new Bk2ControllerAdapter();
			targetController.Type = Global.Emulator.ControllerDefinition;
			targetController.LatchFromSource(targetController); // Reference and create all buttons

			if (key == "")
				key = lg.GenerateLogKey();
			key = key.Replace("LogKey:", "").Replace("#", "");
			key = key.Substring(0, key.Length - 1);

			_inputKey = key;
			Length = length;
			_log = new string[length];

			// Get a IController that only contains buttons in key.
			string[] keys = key.Split('|');
			ControllerDefinition d = new ControllerDefinition();
			for (int i = 0; i < keys.Length; i++)
			{
				if (Global.Emulator.ControllerDefinition.BoolButtons.Contains(keys[i]))
					d.BoolButtons.Add(keys[i]);
				else
					d.FloatControls.Add(keys[i]);
			}

			controller = new Bk2ControllerAdapter() { Type = d };
			Bk2LogEntryGenerator logGenerator = new Bk2LogEntryGenerator("");
			logGenerator.SetSource(controller);
			logGenerator.GenerateLogEntry(); // Reference and create all buttons.

			string movieKey = logGenerator.GenerateLogKey().Replace("LogKey:", "").Replace("#", "");
			movieKey = movieKey.Substring(0, movieKey.Length - 1);
			if (key == movieKey)
			{
				for (int i = 0; i < length; i++)
					_log[i] = movie.GetInputLogEntry(i + start);
			}
			else
			{
				for (int i = 0; i < length; i++)
				{
					controller.LatchFromSource(movie.GetInputState(i + start));
					_log[i] = logGenerator.GenerateLogEntry();
				}
			}
		}
Esempio n. 2
0
        /// <summary>
        /// Takes a log entry from a line in an input log,
        /// If the log key differs from the system's, it will be coverted
        /// </summary>
        /// <param name="line">a log entry line of text from the input log</param>
        /// /// <param name="logKey">a log entry line of text from the input log</param>
        private string ConvertLogEntryFromFile(string line, string logKey)
        {
            var adapter = new Bk2LogEntryGenerator(logKey).MovieControllerAdapter;
            adapter.Type = Global.MovieSession.MovieControllerAdapter.Type;
            adapter.SetControllersAsMnemonic(line);

            var lg = LogGeneratorInstance();
            lg.SetSource(adapter);
            return lg.GenerateLogEntry();
        }
Esempio n. 3
0
        protected StringBuilder RawInputLog()
        {
            var lg = new Bk2LogEntryGenerator(LogKey);
            lg.SetSource(Global.MovieOutputHardpoint);

            var sb = new StringBuilder();
            sb.AppendLine(lg.GenerateLogKey());
            foreach (var record in _log)
            {
                sb.AppendLine(record);
            }

            return sb;
        }
Esempio n. 4
0
		private void ReSetLog()
		{
			// Get a IController that only contains buttons in key.
			string[] keys = _inputKey.Split('|');
			ControllerDefinition d = new ControllerDefinition();
			for (int i = 0; i < keys.Length; i++)
			{
				if (Global.Emulator.ControllerDefinition.BoolButtons.Contains(keys[i]))
					d.BoolButtons.Add(keys[i]);
				else
					d.FloatControls.Add(keys[i]);
			}
			Bk2ControllerAdapter newController = new Bk2ControllerAdapter() { Type = d };

			Bk2LogEntryGenerator logGenerator = new Bk2LogEntryGenerator("");
			logGenerator.SetSource(newController);
			logGenerator.GenerateLogEntry(); // Reference and create all buttons.
			// Reset all buttons in targetController (it may still have buttons that aren't being set here set true)
			Bk2LogEntryGenerator tC = new Bk2LogEntryGenerator("");
			tC.SetSource(targetController);
			targetController.SetControllersAsMnemonic(tC.EmptyEntry);
			for (int i = 0; i < Length; i++)
			{
				controller.SetControllersAsMnemonic(_log[i]);
				LatchFromSourceButtons(targetController, controller);
				newController.LatchFromSource(targetController);
				_log[i] = logGenerator.GenerateLogEntry();
			}

			controller = newController;
		}
Esempio n. 5
0
		protected void WriteRawInputLog(TextWriter writer)
		{
			var lg = new Bk2LogEntryGenerator(LogKey);
			lg.SetSource(Global.MovieOutputHardpoint);

			writer.WriteLine(lg.GenerateLogKey());

			foreach (var record in _log)
			{
				writer.WriteLine(record);
			}
		}