示例#1
0
        public void LoadSnapshot(Snapshot snapshot)
        {
            // Load Global Variables
            foreach (String[] var in GameVariables)
            {
                int i = 0;
                foreach (String name in snapshot.GVName)
                {
                    if (name == var[0])
                        var[1] = snapshot.GVValue[i];

                    i++;
                }
            }
            // Load Object data
            foreach (SnapObject snapj in snapshot.snapjects)
            {
                Object obj = map.FindObject(snapj.name);
                if (obj != null)
                {
                    obj.color = snapj.color;
                    obj.imagenum = snapj.imagenum;
                    obj.opacity = snapj.opacity;
                    obj.rect = snapj.rect;
                    obj.visible = snapj.visible;
                    obj.walkable = snapj.walkable;

                    for (int i = 0; i < snapj.VBName.Count; i++)
                    {
                        foreach (Script scr in obj.scripts)
                        {
                            if (scr.Name == snapj.VBName[i])
                            {
                                scr.Active = snapj.VBactive[i];
                            }
                        }
                    }
                }
                else
                    Console.WriteLine("SNAPSHOT LOAD ERROR: Object wasn't found!");
            }

            // Load the player inventory
            player.InvList.Clear();
            foreach (Item item in snapshot.snapventory)
                player.InvList.Add(item);
        }
示例#2
0
        private void newsnapshotButton_Click(object sender, EventArgs e)
        {
            Snapshot newsnapshot = new Snapshot(game.GameVariables, game.map, game.map.Objects, game.player.InvList);

            game.Snapshots.Add(newsnapshot);

            UpdateEditor();
        }
示例#3
0
        public void LoadMap(String Filename, bool Startup = false)
        {
            map = (Maps)Maps.Load(Filename, typeof(Maps));

            if (map == null)
            {
                Console.WriteLine("Oh no, something went wrong with the map-file!");
                map = new Maps();
            }

            if (!Startup)
                map.LoadContent(this.Content);

            if (map.Objects.Count > 0)
            {
                foreach (Object obj in map.Objects)
                {
                    obj.LoadContent(this.Content);

                    if (obj.opacity > 1f)
                        obj.opacity = 1f;

                    if (obj.scripts.Count > 0)
                    {
                        foreach (Script script in obj.scripts)
                        {
                            if (script.Commands.Count > 0)
                            {
                                foreach (Command com in script.Commands)
                                {
                                    com.gui = gui;
                                }
                            }
                        }
                    }
                }

                if (!Startup)
                {
                    // If the map has a background song, play it now!
                    if (map.backgroundmusic != null)
                    {
                        //sound.LoadMusic(map.backgroundmusic, Content);    //It loads all the music at the beginning of the game anyway!
                        sound.PlayMusic(map.backgroundmusic);
                    }
                    else
                        sound.StopMusic();
                }

            }

            //Make a new instance of the scripthandler with the freshly loaded map
            scripthandler = new ScriptHandler(map, player, items, this);

            if (!Startup)
            {
                //Also make a snapshot right awayy
                Snapshot newsnapshot = new Snapshot(GameVariables, map, map.Objects);

                Snapshots.Add(newsnapshot);
            }

            Console.WriteLine("MAP LOCKED AND LOADED, SIR!");
        }