public void SaveGMSPR(ProjectWriter writer) { writer.Write(GMProject.GMMagic); var zlib_w = new ProjectWriter(new MemoryStream()); zlib_w.Write(Version); zlib_w.Write(Origin); zlib_w.Write(Subimages.Count); for (int i = 0; i < Subimages.Count; i++) { var frame = Subimages[i]; zlib_w.Write(800); zlib_w.Write(frame.Size); if (frame.Width * frame.Height != 0) { zlib_w.Write(frame, true); } } zlib_w.Write((int)MaskMode); zlib_w.Write(AlphaTolerance); zlib_w.Write(SeparateMasks); zlib_w.Write((int)BBoxMode); zlib_w.Write(BBox); writer.WriteZlibChunk(zlib_w); // zlib_w gets disposed automatically wew. }
public void SaveGMBCK(ProjectWriter writer) { const int Magic = 1234321; writer.Write(Magic); var zlib_w = new ProjectWriter(new MemoryStream()); zlib_w.Write(Version); zlib_w.Write(UseAsTileset); zlib_w.Write(TileWidth); zlib_w.Write(TileHeight); zlib_w.Write(OffsetH); zlib_w.Write(OffsetV); zlib_w.Write(SepH); zlib_w.Write(SepV); zlib_w.Write(FrameVersion); if (Background != null) { zlib_w.Write(Background.Size); zlib_w.Write(Background, true); } else { // w = 0, h = 0, no image. zlib_w.Write(0); zlib_w.Write(0); } writer.WriteZlibChunk(zlib_w); }
private void Save_GameInformation(ProjectWriter writer) { writer.Write(GameInformation.Version); var z_writer = new ProjectWriter(new MemoryStream()); GameInformation.Save(z_writer); writer.WriteZlibChunk(z_writer); }
private void Save_Options(ProjectWriter writer) { writer.Write(Options.FormatVersion); var z_writer = new ProjectWriter(new MemoryStream()); Options.Write(z_writer); writer.WriteZlibChunk(z_writer); }
private void Save_NullItem(ProjectWriter writer) { var stream = new MemoryStream(); var w = new ProjectWriter(stream); w.Write(0); writer.WriteZlibChunk(w); }
public static void WriteGameInformation(ProjectWriter main_writer, GMGameInformation self) { main_writer.Write(self.Version); var stream = new MemoryStream(); var writer = new ProjectWriter(stream); writer.Write(self.BackgroundColor); writer.Write(self.SeparateWindow); writer.Write(self.Caption); writer.Write(self.Position); writer.Write(self.ShowBorder); writer.Write(self.AllowResize); writer.Write(self.AlwaysOnTop); writer.Write(self.Freeze); writer.Write(self.Text); main_writer.WriteZlibChunk(writer); stream.Dispose(); writer.Dispose(); }
private void Save_IncludedFiles(ProjectWriter writer) { writer.Write(800); writer.Write(IncludedFiles.Count); for (int i = 0; i < IncludedFiles.Count; i++) { var f = IncludedFiles[i]; if (f == null) { Save_NullItem(writer); } else { var z_writer = new ProjectWriter(new MemoryStream()); z_writer.Write(1); f.Save(z_writer); writer.WriteZlibChunk(z_writer); } } }
private void Save_Rooms(ProjectWriter writer) { writer.Write(800); writer.Write(Rooms.Count); for (int i = 0; i < Rooms.Count; i++) { var r = Rooms[i]; if (r == null) { Save_NullItem(writer); } else { var z_writer = new ProjectWriter(new MemoryStream()); z_writer.Write(1); r.Save(z_writer, this); writer.WriteZlibChunk(z_writer); } } }
private void Save_Objects(ProjectWriter writer) { writer.Write(800); writer.Write(Objects.Count); for (int i = 0; i < Objects.Count; i++) { var o = Objects[i]; if (o == null) { Save_NullItem(writer); } else { var z_writer = new ProjectWriter(new MemoryStream()); z_writer.Write(1); o.Save(z_writer, this); writer.WriteZlibChunk(z_writer); } } }
private void Save_Timelines(ProjectWriter writer) { writer.Write(800); writer.Write(Timelines.Count); for (int i = 0; i < Timelines.Count; i++) { var t = Timelines[i]; if (t == null) { Save_NullItem(writer); } else { var z_writer = new ProjectWriter(new MemoryStream()); z_writer.Write(1); t.Save(z_writer, this); writer.WriteZlibChunk(z_writer); } } }
private void Save_Scripts(ProjectWriter writer) { writer.Write(800); writer.Write(Scripts.Count); for (int i = 0; i < Scripts.Count; i++) { var s = Scripts[i]; if (s == null) { Save_NullItem(writer); } else { var z_writer = new ProjectWriter(new MemoryStream()); z_writer.Write(1); s.Save(z_writer); writer.WriteZlibChunk(z_writer); } } }
private void Save_Paths(ProjectWriter writer) { writer.Write(800); writer.Write(Paths.Count); for (int i = 0; i < Paths.Count; i++) { var p = Paths[i]; if (p == null) { Save_NullItem(writer); } else { var z_writer = new ProjectWriter(new MemoryStream()); z_writer.Write(1); p.Save(z_writer, this); writer.WriteZlibChunk(z_writer); } } }
private void Save_Backgrounds(ProjectWriter writer) { writer.Write(800); writer.Write(Backgrounds.Count); for (int i = 0; i < Backgrounds.Count; i++) { var b = Backgrounds[i]; if (b == null) { Save_NullItem(writer); } else { var z_writer = new ProjectWriter(new MemoryStream()); z_writer.Write(1); b.Save(z_writer); writer.WriteZlibChunk(z_writer); } } }
private void Save_Triggers(ProjectWriter writer) { writer.Write(800); // version writer.Write(Triggers.Count); for (int i = 0; i < Triggers.Count; i++) { var t = Triggers[i]; if (t == null) { Save_NullItem(writer); } else { var z_writer = new ProjectWriter(new MemoryStream()); t.Save(z_writer); writer.WriteZlibChunk(z_writer); } } writer.Write(TriggersLastChanged); }
public static void WriteAsset <T>(ProjectWriter writer, List <T> assets, Action <ProjectWriter, T, GMProject> assetDelegate, GMProject proj = null) { writer.Write(800); writer.Write(assets.Count); foreach (var self in assets) { ProjectWriter zlibA = new ProjectWriter(new MemoryStream()); // null asset if (self == null) { zlibA.Write(false); // does the asset exist? } else { zlibA.Write(true); // the asset exists // execute the delegate... assetDelegate(zlibA, self, proj); } writer.WriteZlibChunk(zlibA); } }
public static void WriteOptions(ProjectWriter main_writer, GMOptions go) { main_writer.Write(go.FormatVersion); var stream = new MemoryStream(); var writer = new ProjectWriter(stream); writer.Write(go.StartInFullscreen); writer.Write(go.InterpolatePixels); writer.Write(go.DontDrawBorder); writer.Write(go.DisplayCursor); writer.Write(go.Scaling); writer.Write(go.AllowWindowResize); writer.Write(go.AlwaysOnTop); writer.Write(go.OutsideRoom); writer.Write(go.SetResolution); writer.Write((int)go.ColorDepth); writer.Write((int)go.ScreenResolution); writer.Write((int)go.Frequency); writer.Write(go.Borderless); uint vsync = go.VSync ? 1U : 0U; if (go.SoftwareVertex) { vsync |= 0x80000000; } writer.Write(vsync); writer.Write(go.DisableScreensavers); writer.Write(go.LetF4Fullscreen); writer.Write(go.LetF1GameInfo); writer.Write(go.LetESCEndGame); writer.Write(go.LetF5F6SaveLoad); writer.Write(go.LetF9Screenshot); writer.Write(go.TreatCloseAsESC); writer.Write((int)go.Priority); writer.Write(go.FreezeWhenFocusLost); writer.Write((int)go.LoadingBarMode); string AppDir = AppDomain.CurrentDomain.BaseDirectory; if (go.LoadingBarMode == GMOptions.ProgBars.BAR_CUSTOM) { writer.Write(go.BackLoadingBar); writer.Write(go.FrontLoadingBar); } else if (go.LoadingBarMode == GMOptions.ProgBars.BAR_DEFAULT) { string back = Path.Combine(AppDir, "back.png"); if (File.Exists(back)) { Image defBack = Image.FromFile(back); writer.Write(defBack); defBack.Dispose(); } string front = Path.Combine(AppDir, "front.png"); if (File.Exists(front)) { Image defFront = Image.FromFile(front); writer.Write(defFront); defFront.Dispose(); } } if (go.ShowCustomLoadImage && go.LoadingImage != null) { writer.Write(go.LoadingImage); } else { string load = Path.Combine(AppDir, "load.png"); if (File.Exists(load)) { Image defLoad = Image.FromFile(load); writer.Write(defLoad); defLoad.Dispose(); } else { writer.Write(false); } } writer.Write(go.LoadimgImagePartTransparent); writer.Write(go.LoadImageAlpha); writer.Write(go.ScaleProgressBar); writer.Write(go.DisplayErrors); writer.Write(go.WriteToLog); writer.Write(go.AbortOnAllErrors); writer.Write(go.TreatUninitAsZero); main_writer.WriteZlibChunk(writer); stream.Dispose(); writer.Dispose(); }