예제 #1
0
        private void btnOK_Click(object sender, EventArgs e)
        {
            if (string.IsNullOrEmpty(txtName.Text) || string.IsNullOrEmpty(txtLocation.Text))
            {
                MessageBox.Show(@"You must enter a name and location.", @"Error");
                DialogResult = DialogResult.Cancel;
                return;
            }

            if (File.Exists(System.IO.Path.Combine(Editor.Instance.curGame.Path + @"\Graphic\Tileset\", txtName.Text + ".jrpts")))
            {
                MessageBox.Show(@"You already have a tileset with the name same; you must alter the name.", @"Error");
                DialogResult = DialogResult.Cancel;
                return;
            }

            if (File.Exists(txtLocation.Text) != true)
            {
                MessageBox.Show(@"No such file exist at this location.", @"Error");
                DialogResult = DialogResult.Cancel;
                return;
            }

            _newTS = new Tileset(Editor.Instance.curGame.GM.myResource.Count, txtName.Text);

            if (txtLocation.Text != Editor.Instance.curGame.Path + @"\Graphic\Tileset\" + txtName.Text + ".jrpts")
            {
                System.IO.File.Copy(txtLocation.Text, Editor.Instance.curGame.Path + @"\Graphic\Tileset\" + txtName.Text + ".jrpts", true);
            }

            _gr = new GResource(Editor.Instance.curGame.Path + @"\Graphic\Tileset\" + txtName.Text + ".jrpts");
            _gr.Type = 0;

            Editor.Instance.curGame.GM.myResource.Add(_gr);

            Editor.Instance.DatabaseUpdate();

            Editor.Instance.curGame.TM.myTileset.Add(_newTS);

            Editor.Instance.graphicDatabase.UpdateDatabase();

            Editor.Instance.ChangeMade = true;
            Editor.Instance.UpdateTitle();

            Close();
        }
예제 #2
0
        // Load the actual project. This will be the load game function for the actual game as well. Along with others game-only-related stuffs like Character save and such
        public void LoadProject(string path, Game obj)
        {
            Tile _tempTile = new Tile();
            Tileset _tempTileset = new Tileset();
            TileLayer _tempLayer = new TileLayer();
            TileLayer _tempMiniLayer = new TileLayer();
            TileMap _tempMap = new TileMap();
            Actor _tempActor = new Actor();
            Sprites _tempSprite = new Sprites();
            Face _tempFace = new Face();
            Switch _tempSwitch = new Switch();
            Variable _tempVariable = new Variable();

            GResource _tempResource = new GResource();

            using (br = new BinaryReader(File.Open(path, FileMode.Open)))
            {
                obj.Name = br.ReadString();
                obj.Path = br.ReadString();
                obj.Author = br.ReadString();
                obj.Description = br.ReadString();
                obj.SubName = br.ReadString();
                obj.TileX = br.ReadInt32();
                obj.TileY = br.ReadInt32();
                obj.StartMap = br.ReadInt32();
                obj.StartX = br.ReadInt32();
                obj.StartY = br.ReadInt32();

                int max = br.ReadInt32();
                for (int i = 0; i < max; i++)
                {
                    _tempSwitch = new Switch();
                    _tempSwitch.Name = br.ReadString();

                    obj.MySwitch.Add(_tempSwitch);
                }

                max = br.ReadInt32();

                for (int i = 0; i < max; i++)
                {
                    _tempVariable = new Variable();
                    _tempVariable.Name = br.ReadString();

                    obj.MyVariable.Add(_tempVariable);
                }

                //Initial Party
                max = br.ReadInt32();
                for (int i = 0; i < max; i++)
                {
                    obj.InitialParty.Add(br.ReadInt32());
                }

                //Please keep all the non engine related stuff up here

                // From this point onward is all engine related stuff

                // Tile Engine
                max = br.ReadInt32();
                for (int i = 0; i < max; i++)
                {
                    _tempTileset = new Tileset();
                    _tempTileset.Name = br.ReadString();
                    _tempTileset.ID = br.ReadInt32();
                    obj.TM.myTileset.Add(_tempTileset);
                }

                max = br.ReadInt32();
                for (int i = 0; i < max; i++)
                {
                    _tempMap = new TileMap();
                    _tempMap.maxX = br.ReadInt32();
                    _tempMap.maxY = br.ReadInt32();

                    _tempMap.InitEvent();

                    _tempMap.Name = br.ReadString();
                    _tempMap.PlayerAbove = br.ReadInt32();

                    _tempMap.Block = new TileProperty[5];

                    for (int b = 0; b < 5; b++)
                    {
                        TileProperty _tempTileProperty = new TileProperty(_tempMap.maxX, _tempMap.maxY);
                        for (int x = 0; x < _tempMap.maxX; x++)
                            for (int y = 0; y < _tempMap.maxY; y++)
                                _tempTileProperty.MyLayer[x, y] = br.ReadByte();

                        _tempMap.Block[b] = _tempTileProperty;
                    }

                    int secmax = br.ReadInt32();
                    for (int l = 0; l < secmax; l++)
                    {
                        _tempLayer = new TileLayer();
                        _tempLayer.Name = br.ReadString();
                        _tempLayer.Opacity = br.ReadInt32();
                        _tempLayer.Order = br.ReadInt32();
                        _tempLayer.Visible = br.ReadBoolean();

                        int thimax = br.ReadInt32();
                        for (int t = 0; t < thimax; t++)
                        {
                            _tempTile = new Tile();
                            _tempTile.Width = br.ReadInt32();
                            _tempTile.Height = br.ReadInt32();
                            _tempTile.TS = br.ReadInt32();
                            _tempTile.Opacity = br.ReadInt32();
                            _tempTile.plcX = br.ReadInt32();
                            _tempTile.plcY = br.ReadInt32();
                            _tempTile.srcX = br.ReadInt32();
                            _tempTile.srcY = br.ReadInt32();

                            _tempLayer.addTile(_tempTile);
                        }

                        thimax = br.ReadInt32();
                        for (int ml = 0; ml < thimax; ml++)
                        {
                            _tempMiniLayer = new TileLayer();
                            _tempMiniLayer.Name = br.ReadString();
                            _tempMiniLayer.Opacity = br.ReadInt32();
                            _tempMiniLayer.Order = br.ReadInt32();
                            _tempMiniLayer.Visible = br.ReadBoolean();

                            int foumax = br.ReadInt32();
                            for (int t = 0; t < foumax; t++)
                            {
                                _tempTile = new Tile();
                                _tempTile.Width = br.ReadInt32();
                                _tempTile.Height = br.ReadInt32();
                                _tempTile.TS = br.ReadInt32();
                                _tempTile.Opacity = br.ReadInt32();
                                _tempTile.plcX = br.ReadInt32();
                                _tempTile.plcY = br.ReadInt32();
                                _tempTile.srcX = br.ReadInt32();
                                _tempTile.srcY = br.ReadInt32();

                                _tempMiniLayer.addTile(_tempTile);
                            }

                            _tempLayer.MiniLayer.Add(_tempMiniLayer);
                        }

                        _tempMap.myLayer.Add(_tempLayer);
                    }

                    for (int x = 0; x < _tempMap.maxX; x++)
                    {
                        for (int y = 0; y < _tempMap.maxY; y++)
                        {
                            int count = br.ReadInt32();
                            for (int c = 0; c < count; c++)
                                LoadEvent(obj, _tempMap.EM[x, y].MyEvent);
                        }
                    }

                    obj.TM.myMap.Add(_tempMap);
                }

                // Graphic Manager
                max = br.ReadInt32();
                for (int i = 0; i < max; i++)
                {
                    _tempResource = new GResource();

                    _tempResource.Path = br.ReadString();
                    _tempResource.Type = br.ReadInt32();

                    obj.GM.myResource.Add(_tempResource);
                }

                // Actor Manager
                max = br.ReadInt32();
                for (int i = 0; i < max; i++)
                {
                    _tempActor = new Actor();
                    _tempActor.Name = br.ReadString();
                    _tempActor.Description = br.ReadString();
                    _tempActor.Level = br.ReadInt32();
                    _tempActor.Gender = br.ReadInt32();
                    _tempActor.Face = br.ReadInt32();
                    _tempActor.Sprite = br.ReadInt32();
                    _tempActor.Job = br.ReadInt32();
                    _tempActor.JobLevel = br.ReadInt32();
                    _tempActor.StatPoints = br.ReadInt32();

                    _tempActor.Stat = new int[br.ReadInt32()];
                    for (int s = 0; s < _tempActor.Stat.Length; s++)
                    {
                        _tempActor.Stat[s] = br.ReadInt32();
                    }

                    obj.AM.MyActor.Add(_tempActor);
                }

                max = br.ReadInt32();
                for (int i = 0; i < max; i++)
                {
                    _tempFace = new Face();
                    _tempFace.Name = br.ReadString();
                    _tempFace.ID = br.ReadInt32();

                    obj.AM.MyFace.Add(_tempFace);
                }

                max = br.ReadInt32();
                for (int i = 0; i < max; i++)
                {
                    _tempSprite = new Sprites();
                    _tempSprite.Name = br.ReadString();
                    _tempSprite.ID = br.ReadInt32();

                    obj.AM.MySprite.Add(_tempSprite);
                }
            }
        }
예제 #3
0
 public EditTileset(Tileset ts)
 {
     InitializeComponent();
     txtName.Text = ts.Name;
     t = ts;
 }