예제 #1
0
        public FrameSyncInput(FrameSyncInputConfig inputConfig)
        {
            if (_inputConfig != null)
            {
                throw new InvalidOperationException("SWFrameSyncInputConfig cannot be changed");
            }

            _inputConfig = new FrameSyncInputConfig(inputConfig);
            int index = 0;

            foreach (FrameSyncInputSetting inputSetting in _inputConfig.InputSettings)
            {
                _inputIndexDictionary[inputSetting.Name] = index;
                index++;
            }
        }
예제 #2
0
        internal Dictionary <string, string> ExportDictionary(FrameSyncInputConfig inputConfig, SWBytes bytes)
        {
            bytes.ReadByteArray(_inputOffset, _exportByteArray);
            _exportBitArray = new BitArray(_exportByteArray);

            int index = 0;

            foreach (FrameSyncInputSetting s in inputConfig.InputSettings)
            {
                string displayValue = _inputDataControllers[index].DisplayValue(_exportBitArray);
                _debugDict[s.Name] = displayValue;
                index++;
            }

            return(_debugDict);
        }
예제 #3
0
        public FrameSyncPlayer(byte playerID, FrameSyncInputConfig config)
        {
            _playerID = playerID;

            byte bitOffset = 0;

            foreach (FrameSyncInputSetting inputSetting in config.InputSettings)
            {
                _inputDataControllers.Add(inputSetting.MakeInputDataController(bitOffset));
                bitOffset = (byte)(bitOffset + inputSetting.BitSize);
            }

            _byteSize        = config.ByteSize;
            _byteArray       = new byte[_byteSize];
            _exportByteArray = new byte[_byteSize];
            _exportBitArray  = new BitArray(_exportByteArray);
            _inputOffset     = (byte)((_playerID - 1) * _byteSize);
        }
예제 #4
0
 public void SetFrameSyncInputConfig(FrameSyncInputConfig inputConfig)
 {
     _input = new FrameSyncInput(inputConfig);
     _input.SetInputProvider(this);
 }
예제 #5
0
 public FrameSyncInputConfig(FrameSyncInputConfig other)
 {
     InputSettings = new FrameSyncInputSetting[other.InputSettings.Length];
     Array.Copy(other.InputSettings, InputSettings, other.InputSettings.Length);
     _byteSize = other._byteSize;
 }