Esempio n. 1
0
 private static void UpdateRadarData(RadarData radarData)
 {
     if (sendMessageThread == null || sendMessageThread.IsAlive)
     {
         sendMessageThread = new Thread(new ParameterizedThreadStart(Program.SendMessage));
         sendMessageThread.Start(radarData);
     }
 }
Esempio n. 2
0
 private void ClearAlerts(RadarData RadarData)
 {
     if (this.alerts.Any())
     {
         foreach (var guid in RadarData.Objects.Select(t => t.GUID).Where(g => !this.alerts.Keys.Contains(g)))
             this.alerts.Remove(guid);
     }
 }
Esempio n. 3
0
 private void UpdateRadarData(RadarData RadarData)
 {
     lock (this.lockRadarData)
     {
         this.RadarData = RadarData;
         this.SetText(this.RadarData.WindowTitle);
         this.UpdateRadar(this.RadarData);
         frmRadar.IsUpdating = false;
     }
 }
Esempio n. 4
0
        private void UpdateRadar(RadarData RadarData)
        {
            if (ResizingRadar) return;
            try
            {
                lock (this.lockdevice)
                {
                    if (this.device != null && RadarData.Me != null)
                    {
                        this.focusObject = null;

                        if (focusObjectOverrideGuid != null)
                        {
                            var focusObjectOverride = RadarData.GetWowObjectByGuid(focusObjectOverrideGuid.Value);

                            if (focusObjectOverride != null)
                                this.focusObject = focusObjectOverride;
                            //else
                            // focusObjectOverrideGuid = null;
                        }

                        if (this.focusObject == null)
                            this.focusObject = RadarData.Me;

                        var zoneId = ((WowPlayerMe)RadarData.Me).ZoneID;

                        this.device.Clear(ClearFlags.Target, Color.Black, 1f, 0);

                        float valueZ = 100000f;
                        Microsoft.DirectX.Vector3 cameraPosition = new Microsoft.DirectX.Vector3(0f, 0f, valueZ);
                        Microsoft.DirectX.Vector3 cameraTarget = new Microsoft.DirectX.Vector3(0f, 0f, 0f);
                        Microsoft.DirectX.Vector3 cameraUpVector = new Microsoft.DirectX.Vector3(0f, -1f, 0f);

                        Microsoft.DirectX.Matrix sourceMatrix = Microsoft.DirectX.Matrix.RotationY(Rotation) * Microsoft.DirectX.Matrix.RotationX(Rotation);
                        if (this.settings.RotateMap)
                        {
                            sourceMatrix *= Microsoft.DirectX.Matrix.RotationZ(6.283185f - this.focusObject.Facing);
                        }

                        cameraPosition.TransformCoordinate(sourceMatrix);
                        cameraTarget.TransformCoordinate(sourceMatrix);
                        cameraUpVector.TransformCoordinate(sourceMatrix);
                        cameraTarget.Add(new Microsoft.DirectX.Vector3(this.focusObject.X, this.focusObject.Y, this.focusObject.Z));
                        cameraPosition.Add(new Microsoft.DirectX.Vector3(this.focusObject.X, this.focusObject.Y, this.focusObject.Z));

                        this.device.Transform.View = Microsoft.DirectX.Matrix.LookAtLH(cameraPosition, cameraTarget, cameraUpVector);
                        this.device.Transform.Projection = Microsoft.DirectX.Matrix.PerspectiveLH(((float)base.Width) / (valueZ * this.scale), ((float)base.Height) / (valueZ * this.scale), 1f, 1000000f);
                        this.device.BeginScene();

                        if (this.showMapTexturesOverride && this.settings.ShowMinimap)
                        {
                            this.DrawMinimap();
                        }

                        foreach (var WowObject in RadarData.Objects)
                        {
                            PresentWowObject(WowObject);
                        }

                        PresentWowObject(RadarData.Me);

                        var ArchaeologyCacheList = BlackRain.Cache.ArchaeologyCache.ObjList.Where(t => t.ZoneID == zoneId);

                        foreach (var WowGameObject in ArchaeologyCacheList)
                        {
                            PresentWowObject(WowGameObject);
                        }

                        this.device.EndScene();
                        this.device.Present();

                        ClearAlerts(RadarData);
                    }
                }
            }
            catch (Exception exception)
            {
                Console.WriteLine(exception);

                this.InitializeDXDevice();

            }

        }
Esempio n. 5
0
 private void ProcessOnRecievedMessage(object buffer)
 {
     lock (this.lockRadarData)
     {
         using (var ms = new System.IO.MemoryStream((buffer as byte[])))
         {
             this.RadarData = BlackRain.Serialization.BinarySerializer.DeSerializeObject<RadarData>(ms);
             buffer = null;
         }
         this.SetText(this.RadarData.WindowTitle);
         this.UpdateRadar(this.RadarData);
         frmRadar.IsUpdating = false;
     }
 }