示例#1
0
 public CharacterInstance(AdvCharacter chr, AdvData data)
     : base(chr)
 {
     Character = chr;
     mAdvData  = data;
     setName(chr.Name);
 }
示例#2
0
        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;
        }
示例#3
0
        public void removeCharacter(AdvCharacter chr)
        {
            ArrayList removes = new ArrayList();

            foreach (CharacterInstance inst in Characters)
            {
                if (inst.Character == chr)
                {
                    removes.Add(inst);
                }
            }
            foreach (CharacterInstance inst in removes)
            {
                removeCharacter(inst);
            }
        }
示例#4
0
        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();
        }