Пример #1
0
        static void Main(string[] args)
        {
            ConsoleWriter.Instance.BaseWriter = Console.Out;
            Console.SetOut(ConsoleWriter.Instance);

            var    ver   = Assembly.GetExecutingAssembly().GetName().Version;
            string title = String.Format("ScriptDev2 Script Checker v{0}.{1}.{2}", ver.Major, ver.Minor, ver.Build);

            Console.Title = title;
            Console.WriteLine(title);
            Console.WriteLine();

            if (!File.Exists("system/ScriptLoader.cpp"))
            {
                Console.WriteLine("Error: 'system/ScriptLoader.cpp' file not found");
                Console.ReadLine();
                return;
            }

            if (!Directory.Exists("scripts"))
            {
                Console.WriteLine("Error: 'scripts' directory not found");
                Console.ReadLine();
                return;
            }

            try
            {
                // Load all script files into memory
                LoadScriptFiles();

                // Check ScriptLoader.cpp and loaders consistency
                CheckScriptLoader();

                // Check clearing gossip menus on add new items or sending menu again
                CheckClearGossipMenu();
            }
            catch (Exception ex)
            {
                Console.WriteLine("Error: An exception occured while running checks: " + ex.ToString());
            }

            /*********** SUMMARY ***********/

            Console.WriteLine();
            Console.WriteLine("Total Warnings: {0}", Warnings);
            Console.WriteLine("Total Errors: {0}", Errors);

            ConsoleWriter.Instance.Close();
            ScriptFiles.Clear();
            ScriptLoaders.Clear();

            Console.ReadLine();
        }
Пример #2
0
 public void Reset()
 {
     this.Text = $"{Program.AssemblyTitle} {Program.Version} - ";
     FileTree.Nodes.Clear();
     ScriptFiles.Clear();
     Viewport.TabPages.Clear();
     ParamFile   = null;
     Manager     = new WorkspaceManager();
     MotionTable = null;
     IDEMode     = IDE_MODE.NONE;
 }
Пример #3
0
        void UpdateScripts()
        {
            SortedList <string, string> items      = new SortedList <string, string>();
            SortedList <string, string> extensions = new SortedList <string, string>(StringComparer.OrdinalIgnoreCase);

            foreach (string v in GetParameters("ScriptItems", Parameters.ScriptItems, "Content;Compile;EmbeddedResource;None"))
            {
                if (!items.ContainsKey(v))
                {
                    items.Add(v, "Item");
                }
            }

            foreach (string v in GetParameters("ScriptExtensions", Parameters.ScriptExtensions, null))
            {
                string ext = v;

                if (!ext.StartsWith("."))
                {
                    ext = '.' + ext;
                }

                if (!extensions.ContainsKey(ext))
                {
                    extensions.Add(ext, "Item");
                }
            }

            foreach (ProjectItem i in BuildItems)
            {
                string name;
                if (!items.TryGetValue(i.Name, out name))
                {
                    continue;
                }

                string extension = Path.GetExtension(i.Include);

                if (!extensions.ContainsKey(extension))
                {
                    continue;
                }

                ScriptFiles.AddUnique(i.Include);
            }
        }
        public void CollectScriptFiles(DeltinScript deltinScript, ScriptFile scriptFile)
        {
            ScriptFiles.Add(scriptFile);

            FileImporter importer = new FileImporter(scriptFile.Diagnostics, this);

            // Get the imported files.
            foreach (var importFileContext in scriptFile.Context.Imports)
            {
                if (importFileContext.File)
                {
                    string directory = GetImportedFile(deltinScript, scriptFile, importer, importFileContext);
                    if (Directory.Exists(directory))
                    {
                        AddImportCompletion(deltinScript, scriptFile, directory, importFileContext.File.Range);
                    }
                }
            }
        }
        public void CollectScriptFiles(ScriptFile scriptFile)
        {
            ScriptFiles.Add(scriptFile);

            FileImporter importer = new FileImporter(scriptFile.Diagnostics, this);

            // Get the imported files.
            if (scriptFile.Context.import_file() != null)
            {
                foreach (var importFileContext in scriptFile.Context.import_file())
                {
                    string directory = GetImportedFile(scriptFile, importer, importFileContext);
                    if (Directory.Exists(directory))
                    {
                        AddImportCompletion(scriptFile, directory, DocRange.GetRange(importFileContext.STRINGLITERAL()));
                    }
                }
            }
        }
Пример #6
0
        public BitmapViewer()
        {
            _browserImageFormat      = BrowserImageFormat.Auto;
            _browserJpegQuality      = 70;
            _firstBitmapAccess       = true;
            _imageLoadMode           = ImageLoadMode.AdaptiveTile;
            _previewImageResizeRatio = 8;
            _previewImageEnabled     = true;
            _tileSize    = 300;
            _postedState = BitmapViewerState.Empty;

            _fileCache = FileCache.GetInstance();

            if (!DesignMode)
            {
                _bitmapChanged = false;
            }

            ScriptFiles.Add("BitmapViewer");
            ScriptClassName = "Aurigma.GraphicsMill.BitmapViewer";
        }
Пример #7
0
        private void fitOpen_Click(object sender, EventArgs e)
        {
            if (fsDlg.ShowDialog() == DialogResult.OK)
            {
                this.Reset();
                foreach (var p in Directory.EnumerateFiles(fsDlg.SelectedPath))
                {
                    if (p.EndsWith(".bin"))
                    {
                        var acmd = new ACMDFile(p);
                        ScriptFiles.Add(p, acmd);
                        Runtime.WorkingEndian = acmd.Endian;
                    }
                    else if (p.EndsWith(".mtable"))
                    {
                        MotionTable = new MTable(p, Runtime.WorkingEndian);
                    }
                }
                var acmdnode = new TreeNode("ACMD")
                {
                    Name = "nACMD"
                };

                for (int i = 0; i < MotionTable.Count; i++)
                {
                    var node = new ScriptNode(MotionTable[i], $"{i:X} - [{MotionTable[i]:X8}]");
                    foreach (var keypair in ScriptFiles)
                    {
                        if (keypair.Value.Scripts.Keys.Contains(MotionTable[i]))
                        {
                            node.Scripts.Add(Path.GetFileNameWithoutExtension(keypair.Key), keypair.Value.Scripts[MotionTable[i]]);
                        }
                    }
                    acmdnode.Nodes.Add(node);
                }
                FileTree.Nodes.Add(acmdnode);
                IDEMode    = IDE_MODE.Fighter;
                this.Text += fsDlg.SelectedPath;
            }
        }
Пример #8
0
        private void FindContentAndScripts(XPathDocument doc)
        {
            SortedList <string, string> extensions = new SortedList <string, string>(StringComparer.OrdinalIgnoreCase);

            if (Parameters.ScriptExtensions != null)
            {
                foreach (string extension in Parameters.ScriptExtensions)
                {
                    string ext = extension;

                    if (!ext.StartsWith("."))
                    {
                        ext = '.' + ext;
                    }

                    if (!extensions.ContainsKey(ext))
                    {
                        extensions.Add(ext, "Item");
                    }
                }
            }

            foreach (XPathNavigator nav in doc.CreateNavigator().Select("//File[@RelativePath]"))
            {
                string file = nav.GetAttribute("RelativePath", "");
                bool   deploymentContent = ("true" == nav.GetAttribute("DeploymentContent", ""));

                if (deploymentContent)
                {
                    ContentFiles.AddUnique(file);
                }

                if (extensions.ContainsKey(Path.GetExtension(file)))
                {
                    ScriptFiles.AddUnique(file);
                }
            }
        }
    /// <summary>
    /// Prepares the layout of the web part.
    /// </summary>
    protected override void PrepareLayout()
    {
        StartLayout();

        if (IsDesign)
        {
            Append("<table class=\"LayoutTable\" cellspacing=\"0\" style=\"width: 100%;\">");

            if (ViewModeIsDesign())
            {
                Append("<tr><td class=\"LayoutHeader\">");

                // Add header container
                AddHeaderContainer();

                Append("</td></tr>");
            }

            Append("<tr><td>");
        }

        // Content before zones
        Append(BeforeZones);

        string separator = Separator;
        string before    = BeforeZone;
        string after     = AfterZone;

        string zoneclass = ZoneCSSClass;
        string zonewidth = ZoneWidth;

        // Render the zones
        for (int i = 1; i <= Zones; i++)
        {
            if (i > 1)
            {
                Append(separator);
            }
            Append("<div");

            // Zone class
            if (!String.IsNullOrEmpty(zoneclass))
            {
                Append(" class=\"", zoneclass, "\"");
            }

            // Zone width
            if (!String.IsNullOrEmpty(zonewidth))
            {
                Append(" style=\"width: ", zonewidth, "\";");
            }

            Append(">", before);

            // Add the zone
            CMSWebPartZone zone = AddZone(ID + "_" + i, "[" + i + "]");

            Append(after, "</div>");
        }

        // Content after zones
        Append(AfterZones);

        if (IsDesign)
        {
            Append("</td></tr>");

            // Footer
            if (AllowDesignMode)
            {
                Append("<tr><td class=\"LayoutFooter cms-bootstrap\" colspan=\"2\"><div class=\"LayoutFooterContent\">");

                // Zone actions
                AppendRemoveAction(ResHelper.GetString("Layout.RemoveZone"), "Zones");
                Append("&nbsp;&nbsp;");
                AppendAddAction(ResHelper.GetString("Layout.AddZone"), "Zones");

                Append("</div></td></tr>");
            }

            Append("</table>");
        }

        // Register scripts
        string[] scripts = ScriptFiles.Split('\r', '\n');
        foreach (string script in scripts)
        {
            // Register the script file
            string sfile = script.Trim();
            if (!String.IsNullOrEmpty(sfile))
            {
                ScriptHelper.RegisterScriptFile(Page, sfile);
            }
        }

        // Add init script
        string resolvedInitScript = MacroResolver.Resolve(InitScript);

        if (!string.IsNullOrEmpty(resolvedInitScript))
        {
            ScriptHelper.RegisterStartupScript(this, typeof(string), ShortClientID + "_Init", ScriptHelper.GetScript(resolvedInitScript));
        }

        // Register CSS files
        string[] cssFiles = CSSFiles.Split(new char[] { '\r', '\n' }, StringSplitOptions.RemoveEmptyEntries);
        Array.ForEach(cssFiles, cssFile => CssRegistration.RegisterCssLink(Page, cssFile.Trim()));

        // Add inline CSS
        string inlinecss = MacroResolver.Resolve(InlineCSS);

        if (!string.IsNullOrEmpty(inlinecss))
        {
            // Add css to page header
            CssRegistration.RegisterCssBlock(Page, "zonesWithEffectInlineCss_" + ClientID, inlinecss);
        }

        FinishLayout();
    }
 public ScriptFile ScriptFromUri(Uri uri) => ScriptFiles.FirstOrDefault(script => script.Uri.Compare(uri));
Пример #11
0
        private unsafe void fOpen_Click(object sender, EventArgs e)
        {
            if (ofDlg.ShowDialog() == DialogResult.OK)
            {
                this.Reset();
                if (ofDlg.FileName.EndsWith(".bin"))
                {
                    DataSource source = new DataSource(FileMap.FromFile(ofDlg.FileName));
                    if (*(buint *)source.Address == 0x41434D44) // ACMD
                    {
                        if (*(byte *)(source.Address + 0x04) == 0x02)
                        {
                            Runtime.WorkingEndian = Endianness.Little;
                        }
                        else if ((*(byte *)(source.Address + 0x04) == 0x00))
                        {
                            Runtime.WorkingEndian = Endianness.Big;
                        }

                        var f = new ACMDFile(source);
                        ScriptFiles.Add(ofDlg.FileName, f);
                        var node = new TreeNode("ACMD")
                        {
                            Name = "nACMD"
                        };
                        foreach (var keypair in f.Scripts)
                        {
                            node.Nodes.Add(new ScriptNode(keypair.Key, $"{keypair.Key:X8}", keypair.Value));
                        }
                        FileTree.Nodes.Add(node);
                    }
                    else if (*(buint *)source.Address == 0xFFFF0000)
                    {
                        source.Close();
                        ParamFile = new ParamFile(ofDlg.FileName);
                        var node = new TreeNode("PARAMS")
                        {
                            Name = "nPARAMS"
                        };
                        FileTree.Nodes.Add(node);
                        PopulateParams();
                    }
                }
                else if (ofDlg.FileName.EndsWith(".mscsb")) // MSC
                {
                    var f = new MSCFile(ofDlg.FileName);
                    ScriptFiles.Add(ofDlg.FileName, f);

                    var node = new TreeNode("MSC")
                    {
                        Name = "nMSC"
                    };
                    for (int i = 0; i < f.Scripts.Count; i++)
                    {
                        var sn = new ScriptNode((uint)i, $"{i:D8}", f.Scripts.Values[i]);
                        if (((MSCScript)f.Scripts.Values[i]).IsEntrypoint)
                        {
                            sn.Text = "Entrypoint";
                        }
                        else if (i == 0)
                        {
                            sn.Text = "Init";
                        }

                        node.Nodes.Add(sn);
                    }
                    FileTree.Nodes.Add(node);
                }
                IDEMode    = IDE_MODE.File;
                this.Text += ofDlg.FileName;
            }
        }
Пример #12
0
 protected UserInputController()
     : base()
 {
     ScriptFiles.Add("Controller");
 }
Пример #13
0
 protected void Page_Load(object sender, EventArgs e)
 {
     ScriptFiles.RegisterControlsForJS(this, new Control[] { credentialPicker });
 }