コード例 #1
0
ファイル: TileOptions.cs プロジェクト: anttirt/roads.editor
        public TileOptions(Level aLevel)
        {
            mLevel = aLevel;

            InitializeComponent();
            mCurrentSel = colorSelection1;
        }
コード例 #2
0
ファイル: MainForm.cs プロジェクト: anttirt/roads.editor
        public MainForm(string fileName)
        {
            try
            {
                using (FileStream stream = File.Open(fileName, FileMode.Open))
                {
                    using (BinaryReader reader = new BinaryReader(stream))
                    {
                        mLevel = new Level(reader);
                    }
                }
            }
            catch (FileNotFoundException)
            {
                mLevel = new Level();
                GridRow row = new GridRow();

                for (int i = 0; i < 30; ++i) mLevel.Grid.AddLast(new LinkedListNode<GridRow>(new GridRow(row)));
                numGravity_ValueChanged(null, null);
                numOxygen_ValueChanged(null, null);
            }

            InitializeComponent();
            //tileOptions1.EntryUpdated += new DSRoads.LevelEditor.Controls.EntryUpdated(tileOptions1_EntryUpdated);
            tileOptions1.EntryUpdated += delegate() { gridDisplay1.Invalidate(); };
            gridDisplay1.SelectionChanged += new DSRoads.LevelEditor.Controls.SelectionChangedEvent(tileOptions1.Select);

            numGravity.Value = (decimal)(mLevel.Gravity);
            numOxygen.Value = (decimal)(20 * (float)mLevel.OxygenLeak / 0.004f);
        }
コード例 #3
0
ファイル: ASMWriter.cs プロジェクト: anttirt/roads.editor
        public static int Write(Level level, Stream file, string fileName, string guid)
        {
            string result;
            fileName += "_data_";
            guid = "data_" + guid;
            int length = 0;
            using (MemoryStream memStream = new MemoryStream())
            {
                StringBuilder builder = new StringBuilder();

                using (BinaryWriter writer = new BinaryWriter(memStream))
                {
                    level.Write(writer);
                    length = (int)memStream.Length;
                    memStream.Seek(0, SeekOrigin.Begin);

                    builder.Append("\n@{{BLOCK(" + guid + ")\n\n");
                    builder.Append("\t.section .rodata\n");
                    builder.Append("\t.align 2\n");
                    builder.Append("\t.global " + guid + " @ " + memStream.Length + " bytes\n");
                    builder.Append(guid + ":\n");

                    long dqwords = memStream.Length / 16;
                    long mod = memStream.Length % 16;

                    for (long i = 0; i < dqwords; ++i)
                    {
                        builder.Append("\t.byte ");
                        int read = memStream.ReadByte();
                        byte tempByte = (byte)(read & 0xFF);
                        builder.Append("0x" + tempByte.ToString("X02"));

                        for (int j = 1; j < 16; ++j)
                        {
                            builder.Append(",0x" + ((byte)memStream.ReadByte()).ToString("X02"));
                        }
                        builder.Append('\n');
                    }

                    if (mod > 0)
                    {
                        builder.Append("\t.byte 0x" + ((byte)memStream.ReadByte()).ToString("X02"));
                        for (int i = 1; i < mod; ++i)
                            builder.Append(",0x" + ((byte)memStream.ReadByte()).ToString("X02"));
                    }
                    builder.Append("\n\n@}}BLOCK(" + guid + ")\n");
                }
                result = builder.ToString();
            }

            byte[] arr = Encoding.ASCII.GetBytes(result);
            file.Write(arr, 0, arr.Length);

            return length;
        }
コード例 #4
0
ファイル: MainForm.cs プロジェクト: anttirt/roads.editor
        public MainForm()
        {
            mLevel = new Level();
            GridRow row = new GridRow();

            for (int i = 0; i < 30; ++i) mLevel.Grid.AddLast(new LinkedListNode<GridRow>(new GridRow(row)));

            InitializeComponent();
            tileOptions1.EntryUpdated += new DSRoads.LevelEditor.Controls.EntryUpdated(tileOptions1_EntryUpdated);
            gridDisplay1.SelectionChanged += new DSRoads.LevelEditor.Controls.SelectionChangedEvent(tileOptions1.Select);

            numGravity_ValueChanged(null, null);
            numOxygen_ValueChanged(null, null);
        }
コード例 #5
0
 public ColorSelection(Level aLevel)
 {
     mLevel = aLevel;
     InitializeComponent();
 }
コード例 #6
0
 public ColorSelection()
 {
     mLevel = new Level();
     InitializeComponent();
 }
コード例 #7
0
ファイル: MainForm.cs プロジェクト: anttirt/roads.editor
 private void btnOpen_Click(object sender, EventArgs e)
 {
     Stream stream;
     if (openFileDialog1.ShowDialog() == DialogResult.OK)
     {
         try
         {
             if ((stream = openFileDialog1.OpenFile()) != null)
             {
                 using (stream)
                 {
                     using (BinaryReader reader = new BinaryReader(stream))
                     {
                         this.SuspendLayout();
                         mLevel = new Level(reader);
                         tileOptions1.Level = mLevel;
                         gridDisplay1.Level = mLevel;
                         numGravity.Value = (decimal)mLevel.Gravity;
                         numOxygen.Value = (decimal)(20 * (float)mLevel.OxygenLeak / 0.004f);
                         gridDisplay1.Invalidate();
                         this.ResumeLayout(true);
                     }
                 }
             }
         }
         catch (Exception ex)
         {
             MessageBox.Show("Error: unable to open file for reading.\n" + ex.Message + '\n' + ex.StackTrace);
         }
     }
 }
コード例 #8
0
ファイル: TileOptions.cs プロジェクト: anttirt/roads.editor
 public TileOptions()
 {
     mLevel = new Level();
     InitializeComponent();
     mCurrentSel = colorSelection1;
 }
コード例 #9
0
ファイル: GridDisplay.cs プロジェクト: anttirt/roads.editor
        public GridDisplay()
        {
            mLevel = new Level();
            GridRow row = new GridRow();

            row[0].Tile = true;
            for (int i = 0; i < 10; ++i) mLevel.Grid.AddLast(new LinkedListNode<GridRow>(new GridRow(row)));
            row[0].Tile = false; row[1].Tile = true;
            for (int i = 0; i < 10; ++i) mLevel.Grid.AddLast(new LinkedListNode<GridRow>(new GridRow(row)));
            row[1].Tile = false; row[2].Tile = true;
            for (int i = 0; i < 10; ++i) mLevel.Grid.AddLast(new LinkedListNode<GridRow>(new GridRow(row)));
            row[2].Tile = false; row[3].Tile = true;
            for (int i = 0; i < 10; ++i) mLevel.Grid.AddLast(new LinkedListNode<GridRow>(new GridRow(row)));

            DoubleBuffered = true;

            InitializeComponent();
            AutoScrollMinSize = ContentSize;
            mLevel.Grid.GridChanged += new Grid.GridChangedEventHandler(GridChangedHandler);
            AutoScrollMinSize = ContentSize;
            mWindow = new DisplayWindow(this);
            mOldHeight = this.Height;
        }
コード例 #10
0
ファイル: GridDisplay.cs プロジェクト: anttirt/roads.editor
        /// <summary>
        /// Constructs a new GridDisplay instance
        /// </summary>
        /// <param name="aLevel">The Level instance to which a
        /// reference is stored, and which is used to retrieve
        /// row and palette data.</param>
        public GridDisplay(Level aLevel)
        {
            mLevel = aLevel;

            DoubleBuffered = true;
            InitializeComponent();
            AutoScrollMinSize = ContentSize;
            mLevel.Grid.GridChanged += new Grid.GridChangedEventHandler(GridChangedHandler);
            AutoScrollMinSize = ContentSize;
            mWindow = new DisplayWindow(this);
            mOldHeight = this.Height;
            mWindow.Reset();
        }