Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        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;
        }