public NavigationService() { var navProcPtr = LoadLibrary(Paths.Navigation); var calculatePathPtr = GetProcAddress(navProcPtr, "CalculatePath"); calculatePath = Marshal.GetDelegateForFunctionPointer <CalculatePathDelegate>(calculatePathPtr); var freePathPtr = GetProcAddress(navProcPtr, "FreePathArr"); freePathArr = Marshal.GetDelegateForFunctionPointer <FreePathArrDelegate>(freePathPtr); }
private Navigation() { var calculatePathPtr = WinImports.GetProcAddress(Libs.Instance.PathfinderPtr, "CalculatePath"); _calculatePath = Memory.Reader.RegisterDelegate <CalculatePathDelegate>(calculatePathPtr); var freePathPtr = WinImports.GetProcAddress(Libs.Instance.PathfinderPtr, "FreePathArr"); _freePathArr = Memory.Reader.RegisterDelegate <FreePathArr>(freePathPtr); //Memory.ErasePeHeader(Libs.Instance.PathfinderPtr); //Memory.UnlinkFromPeb("038.mmap"); }
/// <summary> /// Calculates path asynchronously and fires callback when done /// </summary> /// <param name="start"></param> /// <param name="goal"></param> /// <param name="callback"></param> public void CalculatePathAsync(Vector3I start, Vector3I goal, PathCalculatedDeleagte callback) { var d = new CalculatePathDelegate(CalculatePath); d.BeginInvoke(start, goal, PathCalculated, callback); }