public GMString Text; // it's basically an RTF document. public GMHelp(BinaryReader binaryReader) : base(binaryReader) { CheckHeader("HELP"); BackgroundColor = new GMColor(binaryReader.ReadUInt32()); Mimic = ReadBool(binaryReader); Caption = new GMString(binaryReader); Left = binaryReader.ReadInt32(); Top = binaryReader.ReadInt32(); Width = binaryReader.ReadInt32(); Height = binaryReader.ReadInt32(); Border = ReadBool(binaryReader); Sizable = ReadBool(binaryReader); OnTop = ReadBool(binaryReader); Modal = ReadBool(binaryReader); Text = new GMString(binaryReader); FixChunkAddr(binaryReader); }
public GMOptions(BinaryReader binaryReader) : base(binaryReader) { CheckHeader("OPTN"); FullScreen = ReadBool(binaryReader); InterpolatePixels = ReadBool(binaryReader); NoBorder = ReadBool(binaryReader); ShowCursor = ReadBool(binaryReader); Scale = binaryReader.ReadInt32(); Sizeable = ReadBool(binaryReader); StayOnTop = ReadBool(binaryReader); WindowColor = new GMColor(binaryReader.ReadUInt32()); ChangeResolution = ReadBool(binaryReader); ColorDepth = binaryReader.ReadInt32(); Resolution = binaryReader.ReadInt32(); Frequency = binaryReader.ReadInt32(); NoBorder = ReadBool(binaryReader); VSync = ReadBool(binaryReader); ScreenKey = ReadBool(binaryReader); HelpKey = ReadBool(binaryReader); QuitKey = ReadBool(binaryReader); SaveKey = ReadBool(binaryReader); ScreenshotKey = ReadBool(binaryReader); CloseSec = ReadBool(binaryReader); Priority = binaryReader.ReadInt32(); Freeze = ReadBool(binaryReader); ShowProgress = ReadBool(binaryReader); var tpeBackImageAddr = binaryReader.ReadUInt32(); if (tpeBackImageAddr == 0) { tpeBackImage = null; } var tpeFrontImageAddr = binaryReader.ReadUInt32(); if (tpeFrontImageAddr == 0) { tpeFrontImage = null; } var tpeLoadImageAddr = binaryReader.ReadUInt32(); if (tpeLoadImageAddr == 0) { tpeLoadImage = null; } LoadTransparent = ReadBool(binaryReader); LoadAlpha = binaryReader.ReadInt32(); ScaleProgress = ReadBool(binaryReader); DisplayErrors = ReadBool(binaryReader); WriteErrors = ReadBool(binaryReader); AbortErrors = ReadBool(binaryReader); VariableErrors = ReadBool(binaryReader); ConstantCount = binaryReader.ReadInt32(); Constants = new List <GMGMLConstant>(); for (int c = 0; c < ConstantCount; c++) { var constant = new GMGMLConstant(binaryReader); Constants.Add(constant); } FixChunkAddr(binaryReader); }
public GMRoom(BinaryReader binaryReader, GMWAD ww) { Name = new GMString(binaryReader); Caption = new GMString(binaryReader); Width = binaryReader.ReadInt32(); Height = binaryReader.ReadInt32(); Speed = binaryReader.ReadInt32(); Persistent = ReadBool(binaryReader); Color = new GMColor(binaryReader.ReadUInt32()); ShowColor = ReadBool(binaryReader); CreationCode = new GMString(binaryReader); EnableViews = ReadBool(binaryReader); var bg_ptr = binaryReader.ReadUInt32(); var bg_prev_addr = binaryReader.BaseStream.Position; binaryReader.BaseStream.Position = bg_ptr; //Read backgrounds here var bg_count = binaryReader.ReadInt32(); Backgrounds = new List <GMRoomBackground>(bg_count); for (int bg = 0; bg < bg_count; bg++) { var bg_bg_ptr = binaryReader.ReadUInt32(); var bg_bg_prev_addr = binaryReader.BaseStream.Position; binaryReader.BaseStream.Position = bg_bg_ptr; Backgrounds.Add(new GMRoomBackground(binaryReader, ww)); binaryReader.BaseStream.Position = bg_bg_prev_addr; } binaryReader.BaseStream.Position = bg_prev_addr; var vi_ptr = binaryReader.ReadUInt32(); var vi_prev_addr = binaryReader.BaseStream.Position; binaryReader.BaseStream.Position = vi_ptr; //Read Views here var vi_count = binaryReader.ReadInt32(); Views = new List <GMRoomView>(vi_count); for (int vi = 0; vi < vi_count; vi++) { var vi_vi_ptr = binaryReader.ReadUInt32(); var vi_vi_prev_addr = binaryReader.BaseStream.Position; binaryReader.BaseStream.Position = vi_vi_ptr; Views.Add(new GMRoomView(binaryReader, ww)); binaryReader.BaseStream.Position = vi_vi_prev_addr; } binaryReader.BaseStream.Position = vi_prev_addr; var in_ptr = binaryReader.ReadUInt32(); var in_prev_addr = binaryReader.BaseStream.Position; binaryReader.BaseStream.Position = in_ptr; //Read Room Instances here var in_count = binaryReader.ReadInt32(); Instances = new List <GMRoomInstance>(in_count); for (int ins = 0; ins < in_count; ins++) { var in_in_ptr = binaryReader.ReadUInt32(); var in_in_prev_addr = binaryReader.BaseStream.Position; binaryReader.BaseStream.Position = in_in_ptr; Instances.Add(new GMRoomInstance(binaryReader, ww)); binaryReader.BaseStream.Position = in_in_prev_addr; } binaryReader.BaseStream.Position = in_prev_addr; var ti_ptr = binaryReader.ReadUInt32(); var ti_prev_addr = binaryReader.BaseStream.Position; binaryReader.BaseStream.Position = ti_ptr; //Read Room Tiles here var ti_count = binaryReader.ReadInt32(); Tiles = new List <GMRoomTile>(ti_count); for (int ti = 0; ti < ti_count; ti++) { var ti_ti_ptr = binaryReader.ReadUInt32(); var ti_ti_prev_addr = binaryReader.BaseStream.Position; binaryReader.BaseStream.Position = ti_ti_ptr; Tiles.Add(new GMRoomTile(binaryReader, ww)); binaryReader.BaseStream.Position = ti_ti_prev_addr; } binaryReader.BaseStream.Position = ti_prev_addr; }