Ejemplo n.º 1
0
        private bool LoadGameFile()
        {
            SetCurrentDirectory();

            if (!File.Exists(m_project.GameFilePath))
            {
                LogLine("Game project file path is not set or is invalid. Go to project options and specify valid path.",
                        MessageType.Warning, false);

                return(false);
            }

            m_treeResources.Nodes.Clear();

            try {
                m_gmFile = new GameMakerFile();
                SetLoggedStatus("Loading " + Path.GetFileName(m_project.GameFilePath) + "...");

                m_gmFile.Open(m_project.GameFilePath);

                SetStatus("File loaded successfully.");
                LogLine("File loaded successfully.", MessageType.Success, false);
                GenerateResourceTree();

                return(true);
            }
            catch (GameMaker.Format.Exceptions.FileCorrupted e) {
                LogLine("Failed to read the game project -- file is corrupted at position " + e.Position + ": " + e.Message,
                        MessageType.Error, false);
            }
            catch (GameMaker.Format.Exceptions.UnknownFormat) {
                LogLine("Error: File is not a Game Maker game project or it is corrupted.", MessageType.Error, false);
            }
            catch (GameMaker.Format.Exceptions.UnsupportedVersion e) {
                LogLine("Error: Game project was created with an unsupported version of Game Maker or it is corrupted." +
                        " (Version == " + e.Version + "?)", MessageType.Error, false);
            }
            catch (IOException e) {
                LogLine("Error occurred while trying to read the file: " + e.Message, MessageType.Error, false);
            }

            m_gmFile = null;
            SetStatus("Failed to the load game project.");
            return(false);
        }
Ejemplo n.º 2
0
        private void m_itemAsm_Click(object sender, EventArgs e)
        {
            SetCurrentDirectory();

            var importer = new XmlImporter(m_project.ResourceDirectory);

            if (!importer.IsValidImportDirectory())
            {
                LogLine("Cannot assemble game project: specified resource directory lacks essential data files.", MessageType.Warning, false);
                return;
            }

            importer.ProcessStarted          += Importer_ProcessStarted;
            importer.ProcessFinished         += Importer_ProcessFinished;
            importer.ProcessAborted          += Importer_ProcessAborted;
            importer.CategoryProcessing      += Importer_CategoryProcessing;
            importer.ProcessingErrorOccurred += Importer_ProcessingErrorOccurred;
            importer.XmlParseErrorOccurred   += Importer_XmlParseErrorOccurred;

            if (Settings.Default.VerboseLog)
            {
                importer.ResourceProcessed += Importer_ResourceProcessed;
            }

            m_gmFile = new GameMakerFile();
            SetStatus("Assembling game project...");

            if (importer.Process(m_gmFile))
            {
                LogLine("Project data collected!", MessageType.Information, false);

                if (SaveGameFile())
                {
                    SetLoggedStatus("Game project created.");
                }
                else
                {
                    LogLine("Process aborted.", MessageType.Warning, false);
                    SetStatus("Process aborted.");
                }
            }

            m_statusProgress.Value = m_statusProgress.Maximum;
            GenerateResourceTree();
        }
Ejemplo n.º 3
0
        public override bool Process(GameMakerFile aGmFile)
        {
            m_gmk = aGmFile;
            OnProcessStarted();

            Directory.SetCurrentDirectory(m_directory);

            try {
                ProcessResources();
                OnProcessFinished();
            }
            catch (Exceptions.ProcessingAborted) {
                OnProcessAborted();
                return(false);
            }

            return(true);
        }
Ejemplo n.º 4
0
 public abstract bool Process(GameMakerFile aGmFile);