Example #1
0
        public void LoadData()
        {
            if (Loaded)
            {
                return;
            }
            if (LoadDacom)
            {
                Dacom = new DacomIni();
            }
            if (Freelancer.JsonResources != null)
            {
                Infocards = new InfocardManager(File.ReadAllText(Freelancer.JsonResources.Item1), File.ReadAllText(Freelancer.JsonResources.Item2));
            }
            else
            {
                Infocards = new InfocardManager(Freelancer.Resources);
            }
            //Build Universe
            var tSolar = new Thread(() =>
            {
                //Equipment
                Equipment = new EquipmentIni();
                foreach (var eq in Freelancer.EquipmentPaths)
                {
                    Equipment.AddEquipmentIni(eq, this);
                }
                Solar = new SolararchIni(Freelancer.SolarPath, this);
                if (Freelancer.StarsPath != null)
                {
                    Stars = new StararchIni(Freelancer.StarsPath);
                }
                else
                {
                    Stars = new StararchIni("DATA\\SOLAR\\stararch.ini");
                }
                Asteroids = new AsteroidArchIni();
                foreach (var ast in Freelancer.AsteroidPaths)
                {
                    Asteroids.AddFile(ast);
                }
                Loadouts = new LoadoutsIni();
                foreach (var lo in Freelancer.LoadoutPaths)
                {
                    Loadouts.AddLoadoutsIni(lo, this);
                }
            });
            var tUniverse = new Thread(() =>
            {
                Universe = new UniverseIni(Freelancer.UniversePath, this);
            });
            //Misc
            var tMisc = new Thread(() =>
            {
                //Graphs
                Graphs = new GraphIni();
                foreach (var g in Freelancer.GraphPaths)
                {
                    Graphs.AddGraphIni(g);
                }
                //Shapes
                EffectShapes = new TexturePanels(Freelancer.EffectShapesPath);
                //Effects
                Effects = new EffectsIni();
                foreach (var fx in Freelancer.EffectPaths)
                {
                    Effects.AddIni(fx);
                }
                //Mouse
                Mouse = new MouseIni(Freelancer.DataPath + "//mouse.ini");
                //Fonts
                RichFonts = new RichFontsIni();
                foreach (var rf in Freelancer.RichFontPaths)
                {
                    RichFonts.AddRichFontsIni(rf);
                }
                //PetalDb
                PetalDb = new PetalDbIni();
                foreach (var pt in Freelancer.PetalDbPaths)
                {
                    PetalDb.AddFile(pt);
                }
                //Hud
                Hud = new HudIni();
                Hud.AddIni(Freelancer.HudPath);
                //navbar.ini
                BaseNavBar = new BaseNavBarIni();
                //mbases.ini
                MBases = new MBasesIni();
                //fuses
                Fuses = new FuseIni();
                foreach (var fi in Freelancer.FusePaths)
                {
                    Fuses.AddFuseIni(fi);
                }
                //newchardb
                NewCharDB = new NewCharDBIni();
                foreach (var nc in Freelancer.NewCharDBPaths)
                {
                    NewCharDB.AddNewCharDBIni(nc);
                }
            });

            tMisc.Start();
            tSolar.Start();
            tUniverse.Start();
            Bodyparts = new BodypartsIni(Freelancer.BodypartsPath, this);
            Costumes  = new CostumesIni(Freelancer.CostumesPath, this);
            Audio     = new AudioIni();
            foreach (var snd in Freelancer.SoundPaths)
            {
                Audio.AddIni(snd, Freelancer);
            }
            Ships = new ShiparchIni();
            foreach (var shp in Freelancer.ShiparchPaths)
            {
                Ships.AddShiparchIni(shp, this);
            }
            Goods = new GoodsIni();
            foreach (var gd in Freelancer.GoodsPaths)
            {
                Goods.AddGoodsIni(gd);
            }
            Markets = new MarketsIni();
            foreach (var mkt in Freelancer.MarketsPaths)
            {
                Markets.AddMarketsIni(mkt);
            }
            foreach (var msn in missionFiles)
            {
                if (VFS.FileExists(Freelancer.DataPath + msn))
                {
                    Missions.Add(new Data.Missions.MissionIni(Freelancer.DataPath + msn));
                }
            }
            ContentDll = new ContentDll();
            if (VFS.FileExists("DLLS\\BIN\\content.dll"))
            {
                ContentDll.Load(VFS.GetPath("DLLS\\BIN\\content.dll"));
            }
            tSolar.Join();
            tMisc.Join();
            tUniverse.Join();
            if (!string.IsNullOrEmpty(Freelancer.DataVersion))
            {
                DataVersion = Freelancer.DataVersion;
            }
            else
            {
                DataVersion = "FL-1";
            }
            Loaded = true;
        }