Ejemplo n.º 1
0
        static void LoadGame()
        {
            if (Loaded)
            {
                return;
            }
            Loaded = true;

            Console.WriteLine("[kRPC testing tools]: Loading game \"" + Game + "\"");
            var gameObj = GamePersistence.LoadSFSFile(Save, Game);

            if (gameObj == null)
            {
                Console.WriteLine("[kRPC testing tools]: Failed to load game, got null when loading sfs file");
                return;
            }
            KSPUpgradePipeline.Process(gameObj, Game, LoadContext.SFS, OnLoadDialogPipelineFinished, OnLoadDialogPipelineError);
        }
Ejemplo n.º 2
0
        public static void Load(
            string saveDir, string file = "persistent",
            GameScenes startScene       = GameScenes.SPACECENTER, MonoBehaviourExtended logger = null)
        {
            _logger = logger;
            var node = GamePersistence.LoadSFSFile(file, saveDir);

            if (node == null)
            {
                LogDebug("Couldn't load sfs {0}, {1}", "default", "persistent");
                return;
            }

            // total HACK because I don't have python's functools.partial
            _startScene = startScene;
            KSPUpgradePipeline.Process(
                node, "persistent", SaveUpgradePipeline.LoadContext.SFS, OnLoadPipe, OnLoadPipeFail);
        }
Ejemplo n.º 3
0
        public static bool LoadGame(string filename)
        {
            ConfigNode configNode = GamePersistence.LoadSFSFile(filename, HighLogic.SaveFolder);

            if (configNode == null)
            {
                ScreenMessages.PostScreenMessage("<color=orange>Unable to load the save: " + filename, 5f, ScreenMessageStyle.UPPER_LEFT);
                return(false);
            }
            var v = NodeUtil.GetCfgVersion(configNode, LoadContext.SFS);

            KSPUpgradePipeline.Process(configNode, HighLogic.SaveFolder, LoadContext.SFS,
                                       node => onPipelineFinished(node, filename, v),
                                       (opt, node) =>
                                       ScreenMessages.PostScreenMessage(string.Format("<color=orange>Unable to load the save: {0}\n" +
                                                                                      "KSPUpgradePipeline finished with error.", filename),
                                                                        5f, ScreenMessageStyle.UPPER_LEFT));
            return(true);
        }
Ejemplo n.º 4
0
        private void LoadGame()
        {
            //load the game only the first time (i.e. at game start)
            if (loaded)
            {
                return;
            }
            loaded = true;
            //get the game and the save
            if (File.Exists(config))
            {
                var cfg = ConfigNode.Load(config);
                if (cfg != null)
                {
                    var val = cfg.GetValue("game");
                    if (val != null)
                    {
                        game = val;
                    }
                    val = cfg.GetValue("save");
                    if (val != null)
                    {
                        save = val;
                    }
                }
                else
                {
                    Log("Configuration file is empty: {0}", config);
                    return;
                }
            }
            else
            {
                Log("Configuration file not found: {0}", config);
                return;
            }
            var gameDir = Path.Combine(savesDir, game);

            if (!Directory.Exists(gameDir))
            {
                Log("No game directory: {0}", gameDir);
                return;
            }
            var saveFile = Path.Combine(gameDir, save + ".sfs");

            if (!File.Exists(saveFile))
            {
                Log("No such file: {0}", saveFile);
                return;
            }
            //load the game
            var game_node = GamePersistence.LoadSFSFile(save, game);

            if (game_node == null)
            {
                Log("Unable to load the save: {0}", saveFile);
                return;
            }
            Log("Loading: {0}/{1}", game, save);
            KSPUpgradePipeline.Process(game_node,
                                       game,
                                       LoadContext.SFS,
                                       OnLoadDialogPipelineFinished,
                                       (opt, n) => Log("KSPUpgradePipeline finished with error: {0}", saveFile));
        }