Пример #1
0
        public void Open(Route route)
        {
            _route = route;
            ctrlRouteDetails.PopulateControls(route);

            Waypoints wp = null;

            try
            {
                // Fill waypoints
                wp = RouteListManager.LoadWaypoints(route.WaypointFileName);
            }
            catch (Exception e)
            {
                ShowErrorMessage(e);
                Dispose();
                return;
            }

            // Fill data table
            foreach (Vector3D v in wp.List)
            {
                dgWaypoints.Rows.Add(v.X, v.Y, v.Z);
            }

            // Select last
            int last = dgWaypoints.Rows.Count - 1;

            dgWaypoints.FirstDisplayedScrollingRowIndex = last;

            // Assign event on shown
            Shown += SelectLastRecord;

            ShowDialog();
        }
Пример #2
0
        private void btnSave_Click(object sender, EventArgs e)
        {
            // Make route
            AbstractListEndpoint point_a = ctrlRouteDetails.
                                           cbTypeA.SelectedItem as AbstractListEndpoint;
            AbstractListEndpoint point_b = ctrlRouteDetails.
                                           cbTypeB.SelectedItem as AbstractListEndpoint;

            if (_route == null)
            {
                // Make new route
                _route = ctrlRouteDetails.GetRoute(MakeVector(dgWaypoints.Rows[0]),
                                                   MakeVector(dgWaypoints.Rows[dgWaypoints.Rows.Count - 2]));
                if (_route == null)
                {
                    return;
                }
            }
            else
            {
                // Update existing
                _route.PointA = point_a.GetEndpoint(ctrlRouteDetails.tbZoneA.Text,
                                                    MakeVector(dgWaypoints.Rows[0]));
                _route.PointB = point_b.GetEndpoint(ctrlRouteDetails.tbZoneB.Text,
                                                    MakeVector(dgWaypoints.Rows[dgWaypoints.Rows.Count - 2]));
                _route.Description = ctrlRouteDetails.tbDescr.Text;
                _route.Reversible  = ctrlRouteDetails.cbReversible.Checked;
            }

            // Add waypoints except  last empty line
            Waypoints waypoints = GetWaypointsList(_route.FileName);

            // Save route
            if (RouteListManager.SaveRoute(_route, waypoints, _lfs))
            {
                string s = "Route successfully saved";

                if (_route.FileName == null)
                {
                    s += ". No export file generated.";
                }
                else
                {
                    s += ".\nExport data located in the file '" +
                         _route.FileName + "'";
                }

                ctrlRouteDetails.lblWaypointFile.Text =
                    "Waypoint : " + _route.WaypointFileName;

                ShowSuccessMessage(s);
                IsChanged = false;
            }
        }
Пример #3
0
        private void exportRouteToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Route r = GetSelectedRoute();

            // Load waypoints
            Waypoints wp = RouteListManager.LoadWaypoints(r.WaypointFileName);

            if (RouteListManager.ExportRoute(r, wp))
            {
                ShowSuccessMsg(r, "exported", true);
            }
        }
Пример #4
0
        private Waypoints GetWaypoints(Route r)
        {
            Waypoints wp = RouteListManager.LoadWaypoints(r.WaypointFileName);

            if (wp != null)
            {
                if (r.NeedReverse)
                {
                    wp.List.Reverse();
                }

                UsedRoutes.Add(r);
            }
            return(wp);
        }
Пример #5
0
        private void btnSave_Click(object sender, EventArgs e)
        {
            Route route = GetRoute();

            // Save route
            if (RouteListManager.SaveRoute(route, _lfs))
            {
                IsChanged = false;

                // Replace saved node
                SetTreeNode(route, tvRoutes.SelectedNode);
                tvRoutes.Sort();

                ShowSuccessMsg(route, "saved", false);
            }
        }
Пример #6
0
        private void DeleteRoute()
        {
            // Confirm
            if (!GetConfirmation("Are you sure delete selected route ???"))
            {
                return;
            }

            // Delete from the list
            Route r = GetSelectedRoute();

            RouteListManager.DeleteRoute(r, _lfs);

            // Delete from the Tree View
            tvRoutes.Nodes.Remove(tvRoutes.SelectedNode);
        }
Пример #7
0
        private void btnImportRoute_Click(object sender, EventArgs e)
        {
            var dlg = new OpenFileDialog
            {
                RestoreDirectory = true,
                Multiselect      = true,
                Filter           = "Routes (*.route)|*.route"
            };

            dlg.InitialDirectory = "Data" + Path.DirectorySeparatorChar + "Import";

            if (dlg.ShowDialog() != DialogResult.OK)
            {
                return;
            }

            foreach (string fname in dlg.FileNames)
            {
                string err = "Failed import data from " + fname +
                             ". Check format and try again";
                try
                {
                    Route r = RouteListManager.ImportRoute(fname, _lfs);
                    if (r == null)
                    {
                        ShowErrorMessage(err);
                    }
                    else
                    {
                        // Add note
                        tvRoutes.Nodes.Add(GetTreeNode(r));
                        tvRoutes.Sort();
                    }
                }
                catch
                {
                    ShowErrorMessage(err);
                }
            }
        }
Пример #8
0
        /// <summary>
        /// Initialize configuration parameters.
        /// This method must be first called on application start
        /// For GUI mode from Main Form constructor
        /// For CMD mode from main thread
        /// The rest of events can be bind later but those 3 are mandatory
        /// </summary>
        /// <param name="OnFirstTimeRun">OnFirstTimeRun event handler</param>
        /// <param name="OnConfigFileChanged">OnConfigFileChanged event handler</param>
        /// <param name="OnShowErrorMessage">OnShowErrorMessage event handler</param>
        public static void Initialize(FirstTimeRunHandler OnFirstTimeRun,
                                      ConfigFileChangedHandler OnConfigFileChanged,
                                      ShowErrorMessageHandler OnShowErrorMessage)
        {
            Process.EnterDebugMode();

            // Load the configuration file
            // Configuration must be loaded first of all.
            FirstTimeRun      += OnFirstTimeRun;
            ConfigFileChanged += OnConfigFileChanged;
            ShowErrorMessage  += OnShowErrorMessage;

            XmlManager.Init();

            //\\ TEST
            // SaveNpcData();

            // Everything else after
            LoadConfig();
            XmlManager.Merge(config.WoWInfo.Version);
            XmlManager.AfterInit();

#if DEBUG
            List <Route> lr = new List <Route>();
            Route        r1 = new Route(new Endpoint(EndpointTypes.UNDEF, "", new Vector3D(1, 1, 1)),
                                        new Endpoint(EndpointTypes.UNDEF, "", new Vector3D(100, 100, 100)), "", true);
            lr.Add(r1);
            RouteListManager.Waypoints.Add(1F, lr);

            Route r2 = RouteListManager.FindRoute(new Vector3D(2, 2, 2));
            if (!ReferenceEquals(r1, r2))
            {
                throw new Exception("Waypoints access failed");
            }

            //\\ Test
            // Quest merge test
            Quest q1 = new Quest(1, "Test 1", "Test", "", 1, new int[6], new string[3], "", "", "");
            Quest q2 = new Quest(1, "Test 1", "Test", "", 1, new int[6], new string[3], "", "", "");

            if (!q1.Equals(q2))
            {
                throw new Exception("Quest Test 1 failed");
            }

            // Add link  and dest
            q2.Relations.Add(11);
            q2.DestName = "npc";

            // Merge
            q1.MergeWith(q2);

            // check
            if (!q1.DestName.Equals("npc"))
            {
                throw new Exception("Quest Test 2 failed");
            }

            if (!q1.RelatedTo.Equals("11"))
            {
                throw new Exception("Quest Test 3 failed");
            }

            // Add extra relation
            q2.Relations.Add("10");
            q1.MergeWith(q2);
            if (!q1.RelatedTo.Equals("10,11"))
            {
                throw new Exception("Quest Test 4 failed");
            }

            if (!typeof(IMergeable).IsAssignableFrom(typeof(Quest)))
            {
                throw new Exception("Quest Test 5 failed");
            }

            /*
             * NPC npc1 = ndata.Items[0].Items[2];
             * NPC npc2 = ndata.Items[0].Items[2];
             *
             * if (!npc1.Equals(npc2))
             *  Environment.Exit(1);
             */
            /*
             * LuaFunction lf = CurWoWVersion.FindLuaFunction("GetNpcDialogInfo");
             * string c = lf.Code;
             * // string c = "{0} {{}} {{'dd','xx'}}";
             * string s = string.Format(c, 1);
             */
            /*
             * NPC npc = new NPC();
             *
             * npc.Name = "Test XXX";
             * npc.WPList.Add(new Vector3D(1, 2, 3));
             * npc.AddService(new ClassTrainingService("HUNTER"));
             * npc.AddQuest(new QuestHeader("Catch if u can", 1));
             *
             * SaveNpcData(); */
#endif
        }