コード例 #1
0
        public void EnableFreeCameraControls()
        {
            Injection.InjectionEntryPoint.HideCursor();

            coordinatesFuncBytes = MemoryManipulator.Read(CAMERA_COORDINATES_UPDATE_FUNC_ADDRESS, 2);
            MemoryManipulator.Write(CAMERA_COORDINATES_UPDATE_FUNC_ADDRESS, Assembly.GetPaddedReturnInstructions(1));

            focusCoordinatesFuncBytes = MemoryManipulator.Read(CAMERA_FOCUS_COORDINATES_UPDATE_FUNC_ADDRESS, 2);
            MemoryManipulator.Write(CAMERA_FOCUS_COORDINATES_UPDATE_FUNC_ADDRESS, Assembly.GetPaddedReturnInstructions(1));

            slantFuncBytes = MemoryManipulator.Read(CAMERA_SLANT_UPDATE_FUNC_ADDRESS, 8);
            MemoryManipulator.Write(CAMERA_SLANT_UPDATE_FUNC_ADDRESS, Assembly.GetPaddedReturnInstructions(7));

            fovFuncBytes = MemoryManipulator.Read(CAMERA_FOV_UPDATE_FUNC_ADDRESS, 7);
            MemoryManipulator.Write(CAMERA_FOV_UPDATE_FUNC_ADDRESS, Assembly.GetPaddedReturnInstructions(6));

            ReadDivaCameraData();

            CameraVerticalRotation = MathHelper.AngleFromPoints(
                CameraData.X, CameraData.Z,
                CameraData.FocusX, CameraData.FocusZ);

            CameraHorizontalRotation = 0f;
            CameraSlant = 0f;
        }
コード例 #2
0
        public void DisableFreeCameraControls()
        {
            Injection.InjectionEntryPoint.ShowCursor();

            MemoryManipulator.Write(CAMERA_COORDINATES_UPDATE_FUNC_ADDRESS, coordinatesFuncBytes);
            MemoryManipulator.Write(CAMERA_FOCUS_COORDINATES_UPDATE_FUNC_ADDRESS, focusCoordinatesFuncBytes);
            MemoryManipulator.Write(CAMERA_SLANT_UPDATE_FUNC_ADDRESS, slantFuncBytes);
            MemoryManipulator.Write(CAMERA_FOV_UPDATE_FUNC_ADDRESS, fovFuncBytes);
        }
コード例 #3
0
        public TouchSliderEmulator(MemoryManipulator memoryManipulator, KeyConfig keyConfig)
        {
            MemoryManipulator = memoryManipulator;
            KeyConfig         = keyConfig;

            for (int i = 0; i < sliderStopwatched.Length; i++)
            {
                sliderStopwatched[i] = new Stopwatch();
            }
        }
コード例 #4
0
 public PlayerDataManager(MemoryManipulator memoryManipulator, PlayerConfig playerConfig)
 {
     MemoryManipulator = memoryManipulator;
     PlayerConfig      = playerConfig;
 }
コード例 #5
0
 public ScaleComponent(MemoryManipulator memoryManipulator)
 {
     MemoryManipulator = memoryManipulator;
 }
コード例 #6
0
        // private static readonly UpdateTasksDelegate UpdateTasks = GetDelegateForFunctionPointer<UpdateTasksDelegate>(UPDATE_TASKS_ADDRESS);

        public FastLoader(MemoryManipulator memoryManipulator, KeyConfig keyConfig)
        {
            MemoryManipulator = memoryManipulator;
            KeyConfig         = keyConfig;
        }
コード例 #7
0
 public StageManager(MemoryManipulator memoryManipulator, KeyConfig keyConfig)
 {
     MemoryManipulator = memoryManipulator;
     KeyConfig         = keyConfig;
 }
コード例 #8
0
 public void WriteDivaCameraData()
 {
     MemoryManipulator.Write(CAMERA_OBJECT_ADDRESS, CameraData.GetBytes());
 }
コード例 #9
0
 public void ReadDivaCameraData()
 {
     byte[] buffer = MemoryManipulator.Read(CAMERA_OBJECT_ADDRESS, CameraData.BYTE_SIZE);
     CameraData = CameraData.FromBytes(buffer);
 }
コード例 #10
0
 public CameraController(MemoryManipulator memoryManipulator, KeyConfig keyConfig)
 {
     MemoryManipulator = memoryManipulator;
     KeyConfig         = keyConfig;
     return;
 }
コード例 #11
0
        public void UpdateInputTick(TimeSpan deltaTime)
        {
            float elapsedMs = (float)deltaTime.TotalMilliseconds;

            bool fastCamera = InputEmulator.KeyConfig.FastCameraSpeedBinding.IsAnyDown();

            float cameraDistance = elapsedMs * (fastCamera ? FastCameraSpeed : CameraSpeed);

            ReadDivaCameraData();

            {
                var bounds = MemoryManipulator.GetMainWindowBounds();
                var center = bounds.Center;

                var mouseMovement = InputHelper.Instance.CurrentMouseState.Position.ToPoint() - center;

                CameraVerticalRotation += mouseMovement.X * elapsedMs * .01f;

                CameraHorizontalRotation += mouseMovement.Y * elapsedMs * -.01f;
                CameraHorizontalRotation  = MathHelper.Clamp(CameraHorizontalRotation, -90, 90);

                Mouse.SetMousePosition(center);
            }

            Vector2 cameraPosition = new Vector2(CameraData.X, CameraData.Z);

            bool forwards  = KeyConfig.MoveCameraForwardBinding.IsAnyDown();
            bool backwards = KeyConfig.MoveCameraBackwardBinding.IsAnyDown();
            bool left      = KeyConfig.MoveCameraLeftBinding.IsAnyDown();
            bool right     = KeyConfig.MoveCameraRightBinding.IsAnyDown();

            if (forwards || backwards)
            {
                cameraPosition += MathHelper.PointFromAngle(forwards ? CameraVerticalRotation : CameraVerticalRotation - 180f, cameraDistance);
            }

            if (left || right)
            {
                cameraPosition += MathHelper.PointFromAngle(CameraVerticalRotation + (right ? +90f : -90f), cameraDistance);
            }

            bool up   = KeyConfig.MoveCameraUpBinding.IsAnyDown();
            bool down = KeyConfig.MoveCameraDownBinding.IsAnyDown();

            if (up || down)
            {
                CameraData.Height += elapsedMs * (fastCamera ? FastCameraSpeed : CameraSpeed) * .5f * (up ? +1f : -1f);
            }

            if (KeyConfig.ResetCameraFovBinding.IsAnyTapped())
            {
                CameraData.FieldOfView = DEFAULT_FOV;
            }

            bool increaseFov = KeyConfig.IncreaseCameraFovBinding.IsAnyDown();
            bool decreaseFov = KeyConfig.DecreaseCameraFovBinding.IsAnyDown();

            if (increaseFov || decreaseFov)
            {
                CameraData.FieldOfView += elapsedMs * .25f * (increaseFov ? +1f : -1f);
                CameraData.FieldOfView  = MathHelper.Clamp(CameraData.FieldOfView, MIN_FOV, MAX_FOV);
            }

            CameraData.X = cameraPosition.X;
            CameraData.Z = cameraPosition.Y;

            Vector2 focus = cameraPosition + MathHelper.PointFromAngle(CameraVerticalRotation, 1f);

            CameraData.FocusX = focus.X;
            CameraData.FocusZ = focus.Y;

            CameraData.FocusHeight = CameraData.Height + MathHelper.PointFromAngle(CameraHorizontalRotation, 1f).X;

            CameraData.Slant = CameraSlant;

            WriteDivaCameraData();
        }
コード例 #12
0
 public JvsEmulator(MemoryManipulator memoryManipulator, KeyConfig keyConfig)
 {
     MemoryManipulator = memoryManipulator;
     KeyConfig         = keyConfig;
 }
コード例 #13
0
        // private static readonly ChangeSubState changeSubState = Marshal.GetDelegateForFunctionPointer<ChangeSubState>((IntPtr)CHANGE_SUB_MODE_ADDRESS);

        public DebugComponent(MemoryManipulator memoryManipulator, KeyConfig keyConfig)
        {
            MemoryManipulator = memoryManipulator;
            KeyConfig         = keyConfig;
        }
コード例 #14
0
 public TouchPanelEmulator(MemoryManipulator memoryManipulator, KeyConfig keyConfig)
 {
     MemoryManipulator = memoryManipulator;
     KeyConfig         = keyConfig;
 }