public CharacterDlg(AdvCharacter chr, AdvData data) { InitializeComponent(); this.stateFrameImage1.ClientSizeChanged += new EventHandler(stateFrameImage1_ClientSizeChanged); mCharacter = chr; updateCharacter(); string[] labels = new string[36]; labels[0] = "Stand front"; labels[1] = "Stand back"; labels[2] = "Stand right"; labels[3] = "Walk front"; labels[4] = "Walk back"; labels[5] = "Walk right"; labels[6] = "Talk, Stand front"; labels[7] = "Talk, Stand back"; labels[8] = "Talk, Stand right"; labels[9] = "Talk, Walk front"; labels[10] = "Talk, Walk back"; labels[11] = "Talk, Walk right"; labels[12] = "Bored 1"; labels[13] = "Bored 2"; labels[14] = "Pickup front"; labels[15] = "Pickup right"; for (int i = 16; i < 36; ++i) { labels[i] = chr.getStateName(i); } this.font.Items.Add("Default"); for (int i = 0; i < data.Settings.Fonts.Count; ++i) { FontInfo fi = (FontInfo)data.Settings.Fonts[i]; this.font.Items.Add(fi.name + " (" + fi.size + ")"); } for (int i = 1; i < 10; ++i) { this.walkspeed.Items.Add(i); } this.stateFrameImage1.setStateLables(labels); this.stateFrameImage1.Data = chr; this.stateFrameImage1.BackgroundColor = data.Persistence.CharBackColor; this.text_color.BackColor = Color.FromArgb(Utilities.convertColor(chr.TextColor)); this.font.SelectedIndex = chr.Font; this.walksound.Text = chr.Walksound; this.walkspeed.SelectedIndex = chr.WalkSpeed - 1; this.nozoom.Checked = chr.NoZoom; this.leftanim.Checked = chr.RealLeftAnimations; this.memory_resistant.Checked = chr.MemoryReistent; this.ghostmode.Checked = chr.Ghost; this.startzoom.Value = chr.Zoom; mData = data; }
void writeObjects(Stream strm) { StreamWriter swr = new StreamWriter(strm, Encoding.GetEncoding(1252)); swr.WriteLine("3.6 Point&Click Project File. DO NOT MODIFY!!"); swr.WriteLine(); for (int i = 0; i < STATES_MAX; ++i) { for (int frames = 0; frames < FRAMES_MAX; ++frames) { string[] data = mData.Cursor.getFrame(i, frames); if (data != null) { swr.WriteLine(data[0]); } else { swr.WriteLine(); } } swr.WriteLine(mData.Cursor.getCommand(i) + 1); swr.WriteLine(mData.Cursor.getFPSDivider(i)); swr.WriteLine(mData.Cursor.getHotspot(i).x); swr.WriteLine(mData.Cursor.getHotspot(i).y); swr.WriteLine(mData.Cursor.getItemOffset(i).x); swr.WriteLine(mData.Cursor.getItemOffset(i).y); } foreach (KeyValuePair <string, Item> item in mData.Items) { swr.Write("//Item "); swr.WriteLine(item.Value.Name); for (int i = 0; i < STATES_MAX; ++i) { for (int frames = 0; frames < FRAMES_MAX; ++frames) { string[] data = item.Value.getFrame(i, frames); if (data != null) { swr.Write(data[0]); } //else // swr.Write(); swr.Write(';'); string scr = item.Value.getScript(i, frames); swr.WriteLine(scr != null ? scr.Replace(';', '\xaf') : ""); } swr.WriteLine(item.Value.getFPSDivider(i)); } } foreach (KeyValuePair <string, AdvObject> obj in mData.Objects) { swr.Write("//Object "); swr.WriteLine(obj.Value.Name); swr.WriteLine(obj.Value.getSize(0).x); swr.WriteLine(obj.Value.getSize(0).y); swr.WriteLine(obj.Value.Lighten ? -1 : 0); for (int i = 0; i < STATES_MAX; ++i) { for (int frames = 0; frames < FRAMES2_MAX; ++frames) { string[] data = obj.Value.getFrame(i, frames); if (data == null || data.Length == 0) { swr.WriteLine(); swr.WriteLine(); } else if (data.Length == 1) { swr.WriteLine(data[0]); swr.WriteLine(); } else { swr.WriteLine(data[0]); swr.WriteLine(data[1]); } swr.Write(obj.Value.getFramePartOffset(i, frames, 0).x); swr.Write(';'); swr.Write(obj.Value.getFramePartOffset(i, frames, 0).y); swr.Write(';'); swr.Write(obj.Value.getFramePartOffset(i, frames, 1).x); swr.Write(';'); swr.Write(obj.Value.getFramePartOffset(i, frames, 1).y); swr.Write(';'); string scr = obj.Value.getScript(i, frames); swr.WriteLine(scr != null ? scr.Replace(';', '\xaf') : ""); } swr.WriteLine(obj.Value.getFPSDivider(i)); } } foreach (KeyValuePair <string, AdvCharacter> charact in mData.Characters) { AdvCharacter chr = charact.Value; swr.Write("//Character "); swr.WriteLine(chr.Name); swr.WriteLine(chr.TextColor); swr.WriteLine(chr.WalkSpeed); swr.WriteLine(chr.NoZoom ? -1 : 0); swr.WriteLine(chr.RealLeftAnimations ? -1 : 0); swr.WriteLine(chr.MemoryReistent ? -1 : 0); swr.WriteLine(chr.Ghost ? -1 : 0); swr.WriteLine(chr.Walksound); for (int i = 0; i < 20; ++i) { swr.Write(chr.getStateName(16 + i, false)); swr.Write(';'); } swr.WriteLine(); swr.WriteLine(chr.Font); swr.WriteLine(chr.Zoom); for (int i = 0; i < CHAR_STATES_MAX; ++i) { swr.WriteLine(chr.getSize(i).x); swr.WriteLine(chr.getSize(i).y); swr.WriteLine(chr.getHotspot(i).x); swr.WriteLine(chr.getHotspot(i).y); for (int frames = 0; frames < FRAMES2_MAX; ++frames) { string[] data = chr.getFrame(i, frames); if (data == null || data.Length == 0) { swr.WriteLine(); swr.WriteLine(); } else if (data.Length == 1) { swr.WriteLine(data[0]); swr.WriteLine(); } else { swr.WriteLine(data[0]); swr.WriteLine(data[1]); } swr.Write(chr.getFramePartOffset(i, frames, 0).x); swr.Write(';'); swr.Write(chr.getFramePartOffset(i, frames, 0).y); swr.Write(';'); swr.Write(chr.getFramePartOffset(i, frames, 1).x); swr.Write(';'); swr.Write(chr.getFramePartOffset(i, frames, 1).y); swr.Write(';'); string scr = chr.getScript(i, frames); swr.WriteLine(scr != null ? scr.Replace(';', '\xaf') : ""); } swr.WriteLine(chr.getFPSDivider(i)); } } foreach (KeyValuePair <string, ArrayList> charact in mData.CharacterInstances) { foreach (CharacterInstance chr in charact.Value) { swr.Write("//Rcharacter "); swr.WriteLine(chr.Name); swr.WriteLine(chr.Character.Name); swr.WriteLine(chr.Room); swr.WriteLine(chr.RawPosition.x); swr.WriteLine(chr.RawPosition.y); swr.WriteLine(chr.LookDir); swr.WriteLine(chr.Unmovable ? 0 : -1); swr.WriteLine(chr.Locked ? -1 : 0); } } foreach (KeyValuePair <string, Room> rom in mData.Rooms) { Room room = rom.Value; swr.Write("//Room "); swr.WriteLine(room.Name); swr.WriteLine(room.Size.x); swr.WriteLine(room.Size.y); swr.WriteLine(room.ScrollOffset.x); swr.WriteLine(room.ScrollOffset.y); swr.WriteLine(room.Depthmap.x); swr.WriteLine(room.Depthmap.y); swr.WriteLine(room.Zoom); swr.WriteLine(room.Background); swr.WriteLine(room.ParallaxBackground); swr.WriteLine(room.DoubleWalkmap ? -1 : 0); swr.Write(room.Lighting.R); swr.Write(";"); swr.Write(room.Lighting.G); swr.Write(";"); swr.WriteLine(room.Lighting.B); for (int i = 0; i < FXSHAPES_MAX; ++i) { FxShape shape = (FxShape)room.FXShapes[i]; swr.Write(shape.Active ? -1 : 0); swr.Write(';'); swr.WriteLine(shape.DependingOnRoomPosition ? -1 : 0); swr.WriteLine((int)shape.Effect); swr.WriteLine(shape.Room); swr.WriteLine(shape.Depth); swr.WriteLine(shape.MirrorOffset.x); swr.WriteLine(shape.MirrorOffset.y); swr.WriteLine(shape.Strength); for (int pos = 0; pos < 4; ++pos) { swr.Write(shape.Positions[pos].x); swr.Write(';'); swr.Write(shape.Positions[pos].y); swr.Write(';'); } swr.WriteLine(); } //Inventory swr.WriteLine(room.HasInventory ? -1 : 0); swr.Write(room.InvPos.x); swr.Write(';'); swr.Write(room.InvPos.y); swr.Write(';'); swr.Write(room.InvSize.x); swr.Write(';'); swr.Write(room.InvSize.y); swr.Write(';'); System.Globalization.NumberFormatInfo info = new System.Globalization.NumberFormatInfo(); info.NumberDecimalSeparator = ","; swr.Write(String.Format(info, "{0:0.##############}", room.InvScale.x)); swr.Write(';'); swr.Write(String.Format(info, "{0:0.##############}", room.InvScale.y)); swr.Write(';'); swr.WriteLine(room.InvSpacing); //walkmap for (int i = 0; i <= room.Walkmap.GetUpperBound(0); ++i) { for (int j = 0; j <= room.Walkmap.GetUpperBound(1); ++j) { Room.WalkMapEntry entry = room.Walkmap[i, j]; swr.Write(entry.isFree ? 0 : 1); swr.Write(entry.hasScript ? 1 : 0); } } swr.WriteLine(); //objects foreach (ObjectInstance obj in room.Objects) { swr.Write(";;Roomobject "); swr.WriteLine(obj.Name); swr.WriteLine(obj.Object.Name); swr.WriteLine(obj.Position.x); swr.WriteLine(obj.Position.y); swr.WriteLine(obj.State); swr.WriteLine(obj.Layer); swr.WriteLine(obj.Depth / 2); swr.WriteLine(obj.Depth); swr.WriteLine(obj.Locked ? -1 : 0); } } swr.Flush(); }