private void PlayerTrackingBackgroundWorkerProgressChanged(object sender, ProgressChangedEventArgs e) { if (e.ProgressPercentage < 0) { lblPlayerCoords.Text = "(?,?)"; return; } PlayerLocation location = (PlayerLocation) e.UserState; if (m_LastKnownLocation.X == location.X && m_LastKnownLocation.Y == location.Y && m_LastKnownLocation.Facet == location.Facet) { // There has been no change in location. return; } m_LastKnownLocation = location; if (mapViewer.Map != location.Facet) { mapViewer.Map = location.Facet; } mapViewer.SetLocation(location.X, location.Y); lblPlayerCoords.Text = string.Concat('(', location.X, ',', location.Y, ')'); }
private void PlayerTrackingBackgroundWorkerProgressChanged(object sender, ProgressChangedEventArgs e) { if (e.ProgressPercentage < 0) { lblPlayerCoords.Text = "(?,?)"; return; } PlayerLocation location = (PlayerLocation)e.UserState; if (m_LastKnownLocation.X == location.X && m_LastKnownLocation.Y == location.Y && m_LastKnownLocation.Facet == location.Facet) { // There has been no change in location. return; } m_LastKnownLocation = location; if (mapViewer.Map != location.Facet) { mapViewer.Map = location.Facet; } mapViewer.SetLocation(location.X, location.Y); lblPlayerCoords.Text = string.Concat('(', location.X, ',', location.Y, ')'); }
private void PlayerTrackingBackgroundWorkerDoWork(object sender, DoWorkEventArgs e) { BackgroundWorker bw = (BackgroundWorker)sender; const int trackPlayerDelayInMilliseconds = 1000; DateTime nextPlayerTrackingTimestamp = DateTime.Now.AddMilliseconds(-trackPlayerDelayInMilliseconds); while (m_TrackPlayer) { while (nextPlayerTrackingTimestamp > DateTime.Now && m_TrackPlayer) { System.Threading.Thread.Sleep(1); } if (!m_TrackPlayer) { bw.ReportProgress(-1); return; } int x = 0; int y = 0; int z = 0; int facet = 0; if (!Ultima.Client.FindLocation(ref x, ref y, ref z, ref facet)) { Ultima.Client.Calibrate(); if (!Ultima.Client.FindLocation(ref x, ref y, ref z, ref facet)) { bw.ReportProgress(-1); } } PlayerLocation location = new PlayerLocation(); location.Facet = Map.Get((MapName)facet); location.X = x; location.Y = y; location.Z = z; bw.ReportProgress(1, location); nextPlayerTrackingTimestamp = DateTime.Now.AddMilliseconds(trackPlayerDelayInMilliseconds); } }
private void PlayerTrackingBackgroundWorkerDoWork(object sender, DoWorkEventArgs e) { BackgroundWorker bw = (BackgroundWorker) sender; const int trackPlayerDelayInMilliseconds = 1000; DateTime nextPlayerTrackingTimestamp = DateTime.Now.AddMilliseconds(-trackPlayerDelayInMilliseconds); while (m_TrackPlayer) { while (nextPlayerTrackingTimestamp > DateTime.Now && m_TrackPlayer) { System.Threading.Thread.Sleep(1); } if (!m_TrackPlayer) { bw.ReportProgress(-1); return; } int x = 0; int y = 0; int z = 0; int facet = 0; if (!Ultima.Client.FindLocation(ref x, ref y, ref z, ref facet)) { Ultima.Client.Calibrate(); if (!Ultima.Client.FindLocation(ref x, ref y, ref z, ref facet)) { bw.ReportProgress(-1); } } PlayerLocation location = new PlayerLocation(); location.Facet = Map.Get((MapName) facet); location.X = x; location.Y = y; location.Z = z; bw.ReportProgress(1, location); nextPlayerTrackingTimestamp = DateTime.Now.AddMilliseconds(trackPlayerDelayInMilliseconds); } }