private void UpdateFormControls(object sender, GameMemoryArgs args) { if (this.IsHandleCreated) { this.BeginInvoke((MethodInvoker) delegate { gbPlayer.Enabled = args.PlayerLoaded; gbPlayerPositions.Enabled = args.PlayerLoaded; btnPlayerPositions.Enabled = args.PlayerLoaded; gbEnemy.Enabled = args.EnemyListLoaded; gbPedestrian.Enabled = args.PedestrianListLoaded; gbGeneral.Enabled = args.GeneralLoaded; // Player lblPlayerModelNameValue.Text = args.PlayerModelName; lblPlayerHealthCurrentValue.Text = args.PlayerHealthCurrent; lblPlayerHealthMaxValue.Text = args.PlayerHealthMax; lblPlayerPowerCurrentValue.Text = args.PlayerPowerCurrent; lblPlayerPowerMaxValue.Text = args.PlayerPowerMax; lblPlayerRepCurrentValue.Text = args.PlayerRepCurrent; lblPlayerRepMaxValue.Text = args.PlayerRepMax; lblPlayerPositionXValue.Text = args.PlayerPositionX; lblPlayerPositionYValue.Text = args.PlayerPositionY; lblPlayerPositionZValue.Text = args.PlayerPositionZ; lblPlayerRotationYawValue.Text = args.PlayerRotationYaw; // Enemy List if (cbEnemySelected.Items.Count != args.EnemyList.Length) { tblEnemySelected.Enabled = false; cbEnemySelected.Items.Clear(); cbEnemySelected.Items.AddRange(args.EnemyList); _gameMemory.EnemySelectedIndex = -1; } lblEnemyCountValue.Text = args.EnemyCount; // Enemy Selected lblEnemyHealthCurrentValue.Text = args.EnemySelectedHealthCurrent; lblEnemyHealthMaxValue.Text = args.EnemySelectedHealthMax; lblEnemyPositionXValue.Text = args.EnemySelectedPositionX; lblEnemyPositionYValue.Text = args.EnemySelectedPositionY; lblEnemyPositionZValue.Text = args.EnemySelectedPositionZ; lblEnemyRotationYawValue.Text = args.EnemySelectedRotationYaw; // Pedestrian List if (cbPedestrianSelected.Items.Count != args.PedestrianList.Length) { tblPedestrianSelected.Enabled = false; cbPedestrianSelected.Items.Clear(); cbPedestrianSelected.Items.AddRange(args.PedestrianList); _gameMemory.PedestrianSelectedIndex = -1; } lblPedestrianCountValue.Text = args.PedestrianCount; // Pedestrian Selected lblPedestrianPositionXValue.Text = args.PedestrianSelectedPositionX; lblPedestrianPositionYValue.Text = args.PedestrianSelectedPositionY; lblPedestrianPositionZValue.Text = args.PedestrianSelectedPositionZ; // General lblGeneralMapValue.Text = args.GeneralMap; lblGeneralCanPressureValue.Text = args.GeneralCanPressure; }); } }
private void SendEventGameMemory() { GameMemoryArgs gameMemoryArgs = new GameMemoryArgs(); gameMemoryArgs.PlayerLoaded = _player.BaseAddress != IntPtr.Zero; gameMemoryArgs.EnemyListLoaded = _enemyList.Count > 0; gameMemoryArgs.PedestrianListLoaded = _pedestrianList.Count > 0; gameMemoryArgs.GeneralLoaded = _general.Loaded; // Player gameMemoryArgs.PlayerModelName = _player.ModelName.Value; gameMemoryArgs.PlayerHealthCurrent = _player.HealthCurrent.Value.ToString(); gameMemoryArgs.PlayerHealthMax = _player.HealthMax.Value.ToString(); gameMemoryArgs.PlayerPowerCurrent = _player.PowerCurrent.Value.ToString(); gameMemoryArgs.PlayerPowerMax = _player.PowerMax.Value.ToString(); gameMemoryArgs.PlayerRepCurrent = _player.RepCurrent.Value.ToString(); gameMemoryArgs.PlayerRepMax = _player.RepMax.Value.ToString(); gameMemoryArgs.PlayerPositionX = _player.PositionX.Value.ToString(); gameMemoryArgs.PlayerPositionY = _player.PositionY.Value.ToString(); gameMemoryArgs.PlayerPositionZ = _player.PositionZ.Value.ToString(); gameMemoryArgs.PlayerRotationYaw = _player.RotationYaw.Value.ToString(); // Enemy List gameMemoryArgs.EnemyList = _enemyList.Select((i, index) => $"{(index + 1).ToString()}: {i.ModelName.Value}").ToArray(); gameMemoryArgs.EnemyCount = _enemyList.Count.ToString(); // Enemy Selected if (_enemySelectedIndex > -1) { if (_enemySelectedIndex >= _enemyList.Count) { _enemySelectedIndex = -1; // Out of bounds: clear index } else { Character enemySelected = _enemyList[_enemySelectedIndex]; gameMemoryArgs.EnemySelectedHealthCurrent = enemySelected.HealthCurrent.Value.ToString(); gameMemoryArgs.EnemySelectedHealthMax = enemySelected.HealthMax.Value.ToString(); gameMemoryArgs.EnemySelectedPositionX = enemySelected.PositionX.Value.ToString(); gameMemoryArgs.EnemySelectedPositionY = enemySelected.PositionY.Value.ToString(); gameMemoryArgs.EnemySelectedPositionZ = enemySelected.PositionZ.Value.ToString(); gameMemoryArgs.EnemySelectedRotationYaw = enemySelected.RotationYaw.Value.ToString(); } } // Pedestrian List gameMemoryArgs.PedestrianList = _pedestrianList.Select((i, index) => $"Pedestrian {(index + 1).ToString()}").ToArray(); gameMemoryArgs.PedestrianCount = _pedestrianList.Count.ToString(); // Pedestrian Selected if (_pedestrianSelectedIndex > -1) { if (_pedestrianSelectedIndex >= _pedestrianList.Count) { _pedestrianSelectedIndex = -1; // Out of bounds: clear index } else { Pedestrian pedestrianSelected = _pedestrianList[_pedestrianSelectedIndex]; gameMemoryArgs.PedestrianSelectedPositionX = pedestrianSelected.PositionX.Value.ToString(); gameMemoryArgs.PedestrianSelectedPositionY = pedestrianSelected.PositionY.Value.ToString(); gameMemoryArgs.PedestrianSelectedPositionZ = pedestrianSelected.PositionZ.Value.ToString(); } } // General gameMemoryArgs.GeneralMap = _general.Map.Value; gameMemoryArgs.GeneralCanPressure = _general.CanPressure.Value.ToString(); MemoryWatchEventHandler.Invoke(this, gameMemoryArgs); }