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); }
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(); }
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); }
public abstract bool Process(GameMakerFile aGmFile);