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\Face\", txtName.Text + ".jrpf"))) { MessageBox.Show(@"You already have a face with the same name; 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; } _newF = new Face(Editor.Instance.curGame.GM.myResource.Count, txtName.Text); if (txtLocation.Text != Editor.Instance.curGame.Path + @"\Graphic\Face\" + txtName.Text + ".jrpf") { System.IO.File.Copy(txtLocation.Text, Editor.Instance.curGame.Path + @"\Graphic\Face\" + txtName.Text + ".jrpf", true); } _gr = new GResource(Editor.Instance.curGame.Path + @"\Graphic\Face\" + txtName.Text + ".jrpf"); _gr.Type = 0; Editor.Instance.curGame.GM.myResource.Add(_gr); Editor.Instance.DatabaseUpdate(); Editor.Instance.curGame.AM.MyFace.Add(_newF); Editor.Instance.graphicDatabase.UpdateDatabase(); Editor.Instance.ChangeMade = true; Editor.Instance.UpdateTitle(); Close(); }
// 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); } } }