Exemple #1
0
        // For more information on bundling, visit http://go.microsoft.com/fwlink/?LinkId=301862
        public static void RegisterBundles(BundleCollection bundles)
        {
            var Context = new HttpContextWrapper(HttpContext.Current);

            bundles.Add(new ScriptBundle("~/Scripts/jquery").Include("~/Scripts/jquery-{version}.js"));

            SkinDefinition skindef = SkinDefinition.Load(Context);

            foreach (var script in skindef.scripts.Keys)
            {
                bundles.Add(new ScriptBundle(script).Include(skindef.scripts[script].ToArray()));
            }

            foreach (var css in skindef.css.Keys)
            {
                StyleBundle bundle = new StyleBundle(css);
                foreach (string file in skindef.css[css])
                {
                    bundle.Include(file, new CssRewriteUrlTransform());
                }
                bundles.Add(bundle);
            }

            if (!string.IsNullOrEmpty(skindef.layout))
            {
                SkinDefinition.CurrentLayout(Context, skindef.layout);
            }
        }
Exemple #2
0
 public UnifiedSetData()
 {
     UnifiedMode      = PageDefinition.UnifiedModeEnum.SkinDynamicContent;
     Popups           = false;
     UnifiedAnimation = 1000;
     PageList         = new List <string>();
     PageGuids        = new SerializableList <Guid>();
     PageSkin         = new SkinDefinition();
 }
Exemple #3
0
 public Model()
 {
     PageSkinReq   = new SkinDefinition();
     PageSkin      = new SkinDefinition();
     PageSkinRO    = new SkinDefinition();
     PopupSkinReq  = new SkinDefinition();
     PopupSkin     = new SkinDefinition();
     PopupSkinRO   = new SkinDefinition();
     ModuleSkins   = new SerializableList <SkinDefinition>();
     ModuleSkinsRO = new SerializableList <SkinDefinition>();
 }
Exemple #4
0
        private void LoadSkinDefinition(SkinDefinition skinDefinition)
        {
            _skinDefinition = new SkinDefinitionViewModel(_serviceLocator);

            var skinContent = skinDefinition.SkinContent;

            LoadTriggers(skinContent.Triggers);

            LoadArenas(skinContent.Arenas);
            LoadGamesGroupCollection("Top games", skinContent.TopGames, _skinDefinition.TopGames);
            LoadGamesGroupCollection("VIP games", skinContent.VipTopGames, _skinDefinition.VipGames);
            LoadLobbies(skinContent.Lobbies);
            LoadMyAccount(skinContent);
        }
Exemple #5
0
        private SkinDefinition BuildSkinDefinition()
        {
            var skinDefinition = new SkinDefinition();



            skinDefinition.SkinContent = new Interfaces.Entities.SkinContent();

            foreach (var arenaViewModel in SkinDefinition.Arenas)
            {
                skinDefinition.SkinContent.Arenas.Add(BuildArena(arenaViewModel));
            }


            foreach (var lobbyViewModel in SkinDefinition.Lobbies)
            {
                skinDefinition.SkinContent.Lobbies.Add(BuildLobby(lobbyViewModel));
            }


            foreach (var gamesGroupViewModel in SkinDefinition.TopGames)
            {
                skinDefinition.SkinContent.TopGames.Add(BuildGameGroupLayout(gamesGroupViewModel));
            }

            foreach (var gamesGroupViewModel in SkinDefinition.VipGames)
            {
                skinDefinition.SkinContent.VipTopGames.Add(BuildGameGroupLayout(gamesGroupViewModel));
            }

            foreach (var myAccountItemViewModel in SkinDefinition.MyAccount.Lobby)
            {
                skinDefinition.SkinContent.MyAccountLobby.Add(BuildMyAccountMenu(myAccountItemViewModel));
            }

            foreach (var myAccountItemViewModel in SkinDefinition.MyAccount.History)
            {
                skinDefinition.SkinContent.MyAccountHistory.Add(BuildMyAccountMenu(myAccountItemViewModel));
            }


            foreach (var triggerViewModel in SkinDefinition.Triggers)
            {
                skinDefinition.SkinContent.Triggers.Add(BuildTrigger(triggerViewModel));
            }

            return(skinDefinition);
        }
Exemple #6
0
        public SkinConversionResult Convert(SkinDefinition skinDefinition)
        {
            UpdateGamesGroup(skinDefinition.SkinContent.TopGames, XmlNames.topGames, XmlNames.topGame);
            UpdateGamesGroup(skinDefinition.SkinContent.VipTopGames, XmlNames.vipGames, XmlNames.vipGame);
            UpdateArenas(skinDefinition.SkinContent);
            UpdateMyAccount(skinDefinition.SkinContent);

            var result = new List <ConvertedClientConfigurationFile>();

            UpdateTriggers(skinDefinition.SkinContent.Triggers).Do(file => result.Add(file));

            result.Add(new ConvertedClientConfigurationFile(_navigationPlan, _navigationPlanXml.ToString()));

            var games = AppendMissingGames(skinDefinition, result);

            return(new SkinConversionResult(result.ToArray(), games));
        }
Exemple #7
0
        public SkinConversionResult Convert(SkinDefinition skinDefinition)
        {
            var navigationPlanJson = JsonConvert.DeserializeObject <dynamic>(_navigationPlan.Content);
            var languageJson       = JsonConvert.DeserializeObject <dynamic>(_language.Content);


            UpdateGamesGroup(skinDefinition.SkinContent.TopGames, navigationPlanJson.navigationPlan, JsonNames.topGames);
            UpdateGamesGroup(skinDefinition.SkinContent.VipTopGames, navigationPlanJson.navigationPlan, JsonNames.vipGames);
            UpdateArenas(skinDefinition.SkinContent, navigationPlanJson.navigationPlan);
            UpdateMyAccount(skinDefinition.SkinContent, navigationPlanJson);
            UpdateTriggers(skinDefinition.SkinContent.Triggers, navigationPlanJson);

            var resultedFiles = new List <ConvertedClientConfigurationFile>();
            var newGames      = AppendMissingGames(skinDefinition, navigationPlanJson, languageJson);

            return(new SkinConversionResult(new ConvertedClientConfigurationFile[]
            {
                new ConvertedClientConfigurationFile(_navigationPlan, JsonConvert.SerializeObject(navigationPlanJson)),
                new ConvertedClientConfigurationFile(_language, JsonConvert.SerializeObject(languageJson))
            }
                                            , newGames));
        }
Exemple #8
0
        public Skin(Program P, IMyTextSurface surface, SurfaceMath surfaceMath, IMyTerminalBlock block, SkinDefinition skinDefinition, List <IMeter> meters)
        {
            this.P  = P;
            Surface = surface;
            SM      = surfaceMath;
            Block   = block;
            SkinDef = skinDefinition;
            Meters  = meters;

            foreach (var meter in SkinDef.meters)
            {
                //This data could also be acceses if meters.def was public.
                DataInUse |= meter.data;
            }

            //These 3 could be run every interation, but why?
            //On setup should be enough.
            Surface.ContentType = ContentType.SCRIPT;
            Surface.Script      = "";
            if (skinDefinition.backgroundColorSet)
            {
                Surface.ScriptBackgroundColor = skinDefinition.backgroundColor;
            }
        }
Exemple #9
0
        private SkinConversionResult.NewGameInformation[] AppendMissingGames(SkinDefinition skinDefinition, dynamic navigationPlanJson, dynamic languageJson)
        {
            var gamesProperties = (JObject)navigationPlanJson.navigationPlan.games.properties.gamesPropertiesList;

            var existingGames = new Dictionary <int, JToken>();

            foreach (JProperty prop in gamesProperties.Properties())
            {
                existingGames.Add(int.Parse(prop.Name), prop.Value);
            }

            var newGames = new List <SkinConversionResult.NewGameInformation>();

            foreach (var game in skinDefinition.SkinContent.Arenas.SelectMany(a => a.Layouts.SelectMany(l => l.Games)))
            {
                if (existingGames.ContainsKey(game.GameType))
                {
                    continue;
                }

                var resourcePrefix   = game.Name.Replace(" ", "_").Replace(".", "_") + "_" + game.GameType;
                var relativeImageUrl = $"navigation/media/icons/{game.GameType}/image.png";

                newGames.Add(new SkinConversionResult.NewGameInformation(game.GameType, game.Name, relativeImageUrl));

                AddToGamesModuleStorageIfNecessary(navigationPlanJson, game);

                dynamic newGameElement = new JObject();
                newGameElement.blockedGame        = new JArray(); //
                newGameElement.bonusGame          = false;        //
                newGameElement.eventType          = "GameLink";
                newGameElement.freeSpinGame       = false;        //
                newGameElement.gameBarLabelId     = resourcePrefix;
                newGameElement.gameHistoryLabelId = resourcePrefix;
                newGameElement.gameTagLabelId     = resourcePrefix;
                newGameElement.gameType           = game.GameType;
                newGameElement.groupId            = 30;
                newGameElement.height             = false;
                newGameElement.histGroup          = 12;
                newGameElement.historyDDLLabelId  = resourcePrefix;
                newGameElement.images             = new JArray(); //
                newGameElement.jackpotId          = 6006;         //
                newGameElement.lineSetThree       = false;        //
                newGameElement.lobbyLabelId       = resourcePrefix;

                newGameElement.maxBetDKK          = 300000;       //
                newGameElement.maxBetEUR          = 30000;        //
                newGameElement.maxBetGBP          = 30000;        //
                newGameElement.maxBetUSD          = 30000;        //
                newGameElement.maxPerSpotEUR      = 1000;         //
                newGameElement.maxPerSpotGBP      = 1000;         //
                newGameElement.maxPerSpotUSD      = 1000;         //
                newGameElement.minBetDKK          = 10;           //
                newGameElement.minBetEUR          = 1;            //
                newGameElement.minBetGBP          = 1;            //
                newGameElement.minBetUSD          = 1;            //
                newGameElement.mobileLabel        = false;        //
                newGameElement.multipliers        = false;        //
                newGameElement.numOfDecks         = 0;            //
                newGameElement.numOfLines         = 30;           //
                newGameElement.numOfReels         = 5;            //
                newGameElement.previewTemplateID  = 0;
                newGameElement.privateTable       = false;        //
                newGameElement.progressiveJackpot = false;        //
                newGameElement.resourcePrefix     = resourcePrefix;
                newGameElement.rouletteZeros      = 0;            //
                newGameElement.standardGame       = true;         //
                newGameElement.styles             = new JArray(); //
                newGameElement.tabLabelId         = resourcePrefix;
                newGameElement.toolTipLabelId     = resourcePrefix;
                newGameElement.videoSlot          = true; //
                newGameElement.width       = false;       //
                newGameElement.wrapperType = "GGPGAME";   //


                gamesProperties.Add(new JProperty(game.GameType.ToString(), newGameElement));


                var iconResources = (JObject)navigationPlanJson.navigationPlan.iconResources.images;
                iconResources.Add(new JProperty(resourcePrefix, new JValue(relativeImageUrl)));
                iconResources.Add(new JProperty(resourcePrefix + "Preview", new JValue(relativeImageUrl)));
                iconResources.Add(new JProperty(resourcePrefix + "Lobby", new JValue(relativeImageUrl)));
                iconResources.Add(new JProperty(resourcePrefix + "Small", new JValue(relativeImageUrl)));
                iconResources.Add(new JProperty(resourcePrefix + "FullBackground", new JValue(relativeImageUrl)));


                var     gamesTexts   = (JObject)languageJson.games;
                dynamic newGameTexts = new JObject();
                newGameTexts.html = false;
                newGameTexts.text = game.Name;
                gamesTexts.Add(new JProperty(resourcePrefix, newGameTexts));
            }

            return(newGames.ToArray());
        }
Exemple #10
0
        public async Task <ActionResult> Edit(FormCollection form)
        {
            bool require_restart = false;
            var  settings        = await db.AppSettings.ToListAsync();

            foreach (var setting in settings)
            {
                if (form.AllKeys.Contains(setting.Name))
                {
                    var normalizedValue = NullIfEmpty(form[setting.Name]);
                    if (!string.IsNullOrEmpty(normalizedValue))
                    {
                        if (setting.Kind == AppSetting.KindDirectory)
                        {
                            if (!ExistsDir(normalizedValue))
                            {
                                SetFailureMessage(normalizedValue + " does not exist.");
                                continue;
                            }
                        }
                        else
                        if (setting.Kind == AppSetting.KindNumber)
                        {
                            double doubleResult;
                            if (!double.TryParse(normalizedValue, out doubleResult))
                            {
                                SetFailureMessage(normalizedValue + string.Format(" is not a valid value for {0}.", setting.Name));
                                continue;
                            }
                        }
                        else
                        if (setting.Kind == AppSetting.KindFile)
                        {
                            if (!ExistsFile(normalizedValue))
                            {
                                SetFailureMessage(normalizedValue + " does not exist.");
                                continue;
                            }
                            else
                            if (setting.Name == Settings.kSkinDefinitionFile && setting.Value != normalizedValue)
                            {
                                try
                                {
                                    SkinDefinition skindef = SkinDefinition.Load(HttpContext.Server.MapPath(normalizedValue));
                                    settings.Find(s => s.Name == Settings.kDefaultPageLayout).Value = skindef.layout;
                                }
                                catch
                                {
                                    SetFailureMessage(normalizedValue + " is not a valid skin definition file.");
                                    continue;
                                }
                            }
                        }
                        if (setting.Name == Settings.kCreatePDFVersionsOfDocuments && normalizedValue == bool.TrueString)
                        {
                            if (!System.IO.File.Exists(Settings.ConvertPdfExe))
                            {
                                SetFailureMessage("Cannot enable PDF conversion because ConvertPdf.exe is missing.");
                                continue;
                            }
                            else
                            {
                                int exitcode = DocumentHelper.CheckConverterSetup(Settings.ConvertPdfExe, System.IO.Path.Combine(Settings.TempDir, "convertpdf.log"));
                                if (exitcode < 0)
                                {
                                    SetFailureMessage("(Error:{0}) Cannot enable PDF conversion because ConvertPdf.exe failed to run.", exitcode);
                                    continue;
                                }
                                else if ((exitcode & 7) != 7)
                                {
                                    SetFailureMessage("(Error:{0}) Cannot enable PDF conversion because the Microsoft Office installation is missing or incomplete.", exitcode);
                                    continue;
                                }
                            }
                        }
                    }
                    if (setting.Name == Settings.kSkinDefinitionFile && setting.Value != normalizedValue)
                    {
                        require_restart = true;
                    }
                    setting.Value           = normalizedValue;
                    db.Entry(setting).State = EntityState.Modified;
                }
            }

            await db.SaveChangesAsync();

            CacheHelper.ClearFromCache(HttpContext, typeof(Settings));
            SetSuccessMessage("Settings updated successfully!");

            if (require_restart)
            {
                HttpRuntime.UnloadAppDomain();
            }

            return(RedirectToAction("Index"));
        }
Exemple #11
0
 public SkinConversionResult Apply(SkinDefinition skinDefinition)
 {
     return(GetBuilder().Convert(skinDefinition));
 }
Exemple #12
0
        private SkinConversionResult.NewGameInformation[] AppendMissingGames(SkinDefinition skinDefinition, List <ConvertedClientConfigurationFile> files)
        {
            if (_gamesPropertiesXml == null)
            {
                return(new SkinConversionResult.NewGameInformation[0]);
            }

            var newGames           = new List <SkinConversionResult.NewGameInformation>();
            var iconResources      = _iconResourcesXml.Root.Element("icons");
            var gamesTextsElements = _gamesTextsXml.Root.Element(XmlNames.elements);
            var gamesXmlElement    = _gamesPropertiesXml.Root.Element(XmlNames.games);



            var existingGamesInGamesProperties = gamesXmlElement.Descendants(XmlNames.game).Select(element => element.GetAttributeValue <int>(XmlNames.gameType))
                                                 .Distinct()
                                                 .ToDictionary(gt => gt);



            foreach (var game in skinDefinition.SkinContent.Arenas.SelectMany(a => a.Layouts.SelectMany(l => l.Games))
                     .GroupBy(g => g.GameType)
                     .Select(g => g.First()))
            {
                if (existingGamesInGamesProperties.ContainsKey(game.GameType))
                {
                    continue;
                }

                var newGameXmlElement = new XElement(XmlNames.game);
                newGameXmlElement.AddOrUpdateAttributeValue(XmlNames.gameType, game.GameType);
                newGameXmlElement.AddOrUpdateAttributeValue(XmlNames.eventType, "GameLink");
                newGameXmlElement.AddOrUpdateAttributeValue("histGroup", 0);
                newGameXmlElement.AddOrUpdateAttributeValue("previewTemplateID", 0);
                newGameXmlElement.AddOrUpdateAttributeValue("groupId", 0);



                var resourcePrefix = game.Name.Replace(" ", "_") + "_" + game.GameType;
                newGameXmlElement.AddOrUpdateAttributeValue(XmlNames.resourcePrefix, resourcePrefix);
                newGameXmlElement.AddOrUpdateAttributeValue("toolTipLabelId", resourcePrefix);

                newGameXmlElement.AddOrUpdateAttributeValue("gameTagLabelId", resourcePrefix);
                newGameXmlElement.AddOrUpdateAttributeValue("lobbyLabelId", resourcePrefix);
                newGameXmlElement.AddOrUpdateAttributeValue("tabLabelId", resourcePrefix);
                newGameXmlElement.AddOrUpdateAttributeValue("gameBarLabelId", resourcePrefix);



                gamesXmlElement.Add(newGameXmlElement);

                var gameTextElement = new XElement(XmlNames.element);
                gameTextElement.AddOrUpdateAttributeValue(XmlNames.varName, resourcePrefix);
                gameTextElement.Value = game.Name;

                gamesTextsElements.Add(gameTextElement);


                string relativeImageUrl = $"navigation/media/icons/{game.GameType}/image.png";
                var    iconUrlElement   = new XElement(XmlNames.item);
                iconUrlElement.AddOrUpdateAttributeValue("name", resourcePrefix);
                iconUrlElement.AddOrUpdateAttributeValue("source", relativeImageUrl);
                iconResources.Add(iconUrlElement);

                iconUrlElement = new XElement(XmlNames.item);
                iconUrlElement.AddOrUpdateAttributeValue("name", resourcePrefix + "Preview");
                iconUrlElement.AddOrUpdateAttributeValue("source", relativeImageUrl);
                iconResources.Add(iconUrlElement);

                iconUrlElement = new XElement(XmlNames.item);
                iconUrlElement.AddOrUpdateAttributeValue("name", resourcePrefix + "Lobby");
                iconUrlElement.AddOrUpdateAttributeValue("source", relativeImageUrl);
                iconResources.Add(iconUrlElement);
                newGames.Add(new SkinConversionResult.NewGameInformation(game.GameType, game.Name, relativeImageUrl));
            }


            if (newGames.Count > 0)
            {
                files.Add(new ConvertedClientConfigurationFile(_gamesProperties, _gamesPropertiesXml.ToString()));
                files.Add(new ConvertedClientConfigurationFile(_gamesTexts, _gamesTextsXml.ToString()));
                files.Add(new ConvertedClientConfigurationFile(_iconResources, _iconResourcesXml.ToString()));
            }
            else
            {
                files.Add(new ConvertedClientConfigurationFile(_gamesProperties, null));
                files.Add(new ConvertedClientConfigurationFile(_gamesTexts, null));
                files.Add(new ConvertedClientConfigurationFile(_iconResources, null));
            }



            return(newGames.ToArray());
        }
Exemple #13
0
 public SkinConversionResult Convert(SkinDefinition skinDefinition)
 {
     return(this.Converter.Convert(skinDefinition));
 }
Exemple #14
0
 public SkinConversionResult Apply(SkinDefinition skinDefinition)
 {
     throw new NotSupportedException();
 }
Exemple #15
0
        /// <summary>
        /// Parses an IDE file from a byte array.
        /// </summary>
        /// <param name="data">The IDE data to read in an array of bytes.</param>
        /// <param name="errorCount">The number of errors.</param>
        public void Parse(byte[] data, out int errorCount)
        {
            string parserData = Encoding.UTF8.GetString(data);

            string[] lines = parserData.Split(new string[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries);
            string   mode  = null;

            errorCount = 0;

            foreach (string line in lines)
            {
                if (line.StartsWith("#", StringComparison.InvariantCultureIgnoreCase) ||
                    line.Trim().Length == 0)
                {
                    continue;
                }

                if (mode == null)
                {
                    if (line.StartsWith("objs", StringComparison.InvariantCultureIgnoreCase) ||
                        line.StartsWith("tobj", StringComparison.InvariantCultureIgnoreCase) ||
                        line.StartsWith("anim", StringComparison.InvariantCultureIgnoreCase) ||
                        line.StartsWith("cars", StringComparison.InvariantCultureIgnoreCase) ||
                        line.StartsWith("weap", StringComparison.InvariantCultureIgnoreCase) ||
                        line.StartsWith("peds", StringComparison.InvariantCultureIgnoreCase) ||
                        // unused
                        line.StartsWith("hier", StringComparison.InvariantCultureIgnoreCase) ||
                        line.StartsWith("path", StringComparison.InvariantCultureIgnoreCase) ||
                        line.StartsWith("2dfx", StringComparison.InvariantCultureIgnoreCase) ||
                        line.StartsWith("txdp", StringComparison.InvariantCultureIgnoreCase))
                    {
                        mode = line.Substring(0, 4).ToLowerInvariant();
                    }
                    continue;
                }
                else
                {
                    if (line.StartsWith("end", StringComparison.InvariantCultureIgnoreCase))
                    {
                        mode = null;
                        continue;
                    }

                    var parts = line.Split(new char[] { ',', ' ', '\t' }, StringSplitOptions.RemoveEmptyEntries);

                    for (int i = 0; i < parts.Length; i++)
                    {
                        parts[i] = parts[i].Trim(' ', '\t', '\r', ',');
                    }

                    try
                    {
                        if (mode == "objs")
                        {
                            var element = new ObjectsIDEElement();
                            if (parts.Length == 5)
                            {
                                element.Id                    = UInt32.Parse(parts[0]);
                                element.ModelName             = parts[1];
                                element.TextureDictionaryName = parts[2];
                                element.DrawDistance          = float.Parse(parts[3]);
                                element.Flags                 = (IDEFlags)UInt32.Parse(parts[4]);
                            }
                            else if (parts.Length == 6)
                            {
                                element.Id                    = UInt32.Parse(parts[0]);
                                element.ModelName             = parts[1];
                                element.TextureDictionaryName = parts[2];
                                element.DrawDistance          = float.Parse(parts[4]);
                                element.Flags                 = (IDEFlags)UInt32.Parse(parts[5]);
                            }
                            else if (parts.Length == 7)
                            {
                                element.Id                    = UInt32.Parse(parts[0]);
                                element.ModelName             = parts[1];
                                element.TextureDictionaryName = parts[2];
                                element.DrawDistance          = float.Parse(parts[5]);
                                element.Flags                 = (IDEFlags)UInt32.Parse(parts[6]);
                            }
                            else if (parts.Length >= 8)
                            {
                                element.Id                    = UInt32.Parse(parts[0]);
                                element.ModelName             = parts[1];
                                element.TextureDictionaryName = parts[2];
                                element.DrawDistance          = float.Parse(parts[6]);
                                element.Flags                 = (IDEFlags)UInt32.Parse(parts[7]);
                            }

                            var obj = new ObjectDefinition()
                            {
                                ModelName             = element.ModelName,
                                TextureDictionaryName = element.TextureDictionaryName
                            };
                            MasterDictionary.ObjectDefinitions.Add((int)element.Id, obj);
                        }
                        else if (mode == "tobj")
                        {
                            var element = new ObjectsIDEElement();
                            if (parts.Length == 7)
                            {
                                element.Id                    = UInt32.Parse(parts[0]);
                                element.ModelName             = parts[1];
                                element.TextureDictionaryName = parts[2];
                                element.DrawDistance          = float.Parse(parts[3]);
                                element.Flags                 = (IDEFlags)UInt32.Parse(parts[4]);
                                element.TimeOn                = UInt32.Parse(parts[5]);
                                element.TimeOff               = UInt32.Parse(parts[6]);
                            }
                            else if (parts.Length == 8)
                            {
                                element.Id                    = UInt32.Parse(parts[0]);
                                element.ModelName             = parts[1];
                                element.TextureDictionaryName = parts[2];
                                element.DrawDistance          = float.Parse(parts[3]);
                                element.Flags                 = (IDEFlags)UInt32.Parse(parts[5]);
                                element.TimeOn                = UInt32.Parse(parts[6]);
                                element.TimeOff               = UInt32.Parse(parts[7]);
                            }
                            else if (parts.Length == 9)
                            {
                                element.Id                    = UInt32.Parse(parts[0]);
                                element.ModelName             = parts[1];
                                element.TextureDictionaryName = parts[2];
                                element.DrawDistance          = float.Parse(parts[3]);
                                element.Flags                 = (IDEFlags)UInt32.Parse(parts[6]);
                                element.TimeOn                = UInt32.Parse(parts[7]);
                                element.TimeOff               = UInt32.Parse(parts[8]);
                            }
                            else if (parts.Length >= 10)
                            {
                                element.Id                    = UInt32.Parse(parts[0]);
                                element.ModelName             = parts[1];
                                element.TextureDictionaryName = parts[2];
                                element.DrawDistance          = float.Parse(parts[3]);
                                element.Flags                 = (IDEFlags)UInt32.Parse(parts[7]);
                                element.TimeOn                = UInt32.Parse(parts[8]);
                                element.TimeOff               = UInt32.Parse(parts[9]);
                            }

                            var obj = new ObjectDefinition()
                            {
                                ModelName             = element.ModelName,
                                TextureDictionaryName = element.TextureDictionaryName
                            };
                            MasterDictionary.ObjectDefinitions.Add((int)element.Id, obj);
                        }
                        else if (mode == "anim")
                        {
                            var element = new ObjectsIDEElement();
                            if (parts.Length >= 6)
                            {
                                element.Id                    = UInt32.Parse(parts[0]);
                                element.ModelName             = parts[1];
                                element.TextureDictionaryName = parts[2];
                                element.AnimationName         = parts[3];
                                element.DrawDistance          = float.Parse(parts[4]);
                                element.Flags                 = (IDEFlags)UInt32.Parse(parts[5]);
                            }

                            var obj = new ObjectDefinition()
                            {
                                ModelName             = element.ModelName,
                                TextureDictionaryName = element.TextureDictionaryName,
                                AnimationName         = element.AnimationName
                            };
                            MasterDictionary.ObjectDefinitions.Add((int)element.Id, obj);
                        }
                        else if (mode == "cars")
                        {
                            var element = new CarsIDEElement();
                            if (parts.Length >= 11)
                            {
                                element.Id                    = UInt32.Parse(parts[0]);
                                element.ModelName             = parts[1];
                                element.TextureDictionaryName = parts[2];
                                element.Type                  = VehicleTypeFromString(parts[3]);
                                element.Handling              = parts[4];
                                element.GXTKey                = parts[5];
                                element.Anims                 = parts[6];
                                element.Class                 = VehicleClassFromString(parts[7]);
                                element.Frequency             = parts[8];
                                element.Unknown               = parts[9];
                                element.Comprules             = parts[10];
                            }
                            if (parts.Length >= 15)
                            {
                                element.WheelId           = Int32.Parse(parts[11]);
                                element.WheelScaleFront   = float.Parse(parts[12]);
                                element.WheelScaleRear    = float.Parse(parts[13]);
                                element.WheelUpgradeClass = Int32.Parse(parts[14]);
                            }

                            var veh = new VehicleDefinition()
                            {
                                ModelName             = element.ModelName,
                                TextureDictionaryName = element.TextureDictionaryName,
                                Type            = element.Type,
                                WheelScaleFront = element.WheelScaleFront,
                                WheelScaleRear  = element.WheelScaleRear
                            };
                            MasterDictionary.VehicleDefinitions.Add((int)element.Id, veh);
                        }
                        else if (mode == "weap")
                        {
                            var element = new WeaponsIDEElement();
                            if (parts.Length >= 6)
                            {
                                element.Id                    = UInt32.Parse(parts[0]);
                                element.ModelName             = parts[1];
                                element.TextureDictionaryName = parts[2];
                                element.AnimationName         = parts[3];
                                element.MeshCount             = UInt32.Parse(parts[4]);
                                element.DrawDistance          = UInt32.Parse(parts[5]);
                            }

                            var wep = new WeaponDefinition()
                            {
                                ModelName             = element.ModelName,
                                TextureDictionaryName = element.TextureDictionaryName,
                                AnimationName         = element.AnimationName
                            };
                            MasterDictionary.WeaponDefinitions.Add((int)element.Id, wep);
                        }
                        else if (mode == "peds")
                        {
                            var element = new PedsIDEElement();
                            if (parts.Length >= 14)
                            {
                                element.Id                    = UInt32.Parse(parts[0]);
                                element.ModelName             = parts[1];
                                element.TextureDictionaryName = parts[2];
                                element.Type                  = PedestrianTypeFromString(parts[3]);
                                element.Behavior              = parts[4];
                                element.AnimationGroup        = parts[5];
                                element.CarsCanDrive          = parts[6];
                                element.Flags                 = UInt32.Parse(parts[7]);
                                element.AnimationFile         = parts[8];
                                element.Radio1                = UInt32.Parse(parts[9]);
                                element.Radio2                = UInt32.Parse(parts[10]);
                                element.VoiceArchive          = parts[11];
                                element.Voice1                = parts[12];
                                element.Voice2                = parts[13];
                            }

                            var skin = new SkinDefinition()
                            {
                                ModelName             = element.ModelName,
                                TextureDictionaryName = element.TextureDictionaryName,
                                AnimationGroupName    = element.AnimationGroup,
                                Type = element.Type
                            };
                            MasterDictionary.SkinDefinitions.Add((int)element.Id, skin);
                        }
                    }
                    catch
                    {
                        errorCount++;
                    }
                }
            }
        }