Example #1
0
        private static void LoadEquip(Section sec, EquipTypes equipType)
        {
            var nickname = sec.GetFirstOf("nickname")[0];
            _log.NewMessage(LogType.Garbage, "Universe: Parsing equipment {0}", nickname);
            var hash = CreateID(nickname.ToLowerInvariant());

            // fail if equip already presents
            if (Gis.Equipment.FindByHash(hash) != null) return;

            var stIDSName = "";
            if (sec.ContainsAnyOf("ids_name", "strid_name"))
                stIDSName = GetIDSParm(sec.GetAnySetting("ids_name", "strid_name")[0]);

            // TODO: ignore empty IDS based on setting
            //if (stIDSName == "") return;

            var infocard = "";
            if (sec.ContainsAnyOf("ids_info"))
                infocard = GetIDSParm(sec.GetFirstOf("ids_info")[0]);

            float volume = 0;
            if (sec.ContainsAnyOf("volume"))
                volume = float.Parse(sec.GetFirstOf("volume")[0], Nfi);

            // Tested on Disco 4.87.6, no hits beyond this line.
            //var stIDSInfo1 = "";
            //if (sec.ContainsAnyOf("ids_info1","ids_short_name"))
            //    stIDSInfo1 = GetIDSParm(sec.GetAnySetting("ids_info1", "ids_short_name")[0]);

            // Careful with this one below!
            //if (stIDSInfo1 == "") return;
            //var stIDSInfo2 = "";
            //if (sec.ContainsAnyOf("ids_info2"))
            //    stIDSInfo2 = GetIDSParm(sec.GetFirstOf("ids_info2")[0]);

            //var stIDSInfo3 = "";
            //if (sec.ContainsAnyOf("ids_info3"))
            //    stIDSInfo3 = GetIDSParm(sec.GetFirstOf("ids_info3")[0]);

            //string keys = hash.ToString() + " 0x" + hash.ToString("X");

            var hpType = "";
            switch (equipType)
            {
                case EquipTypes.Engine:
                    if (sec.ContainsAnyOf("hp_type"))
                        hpType = sec.GetFirstOf("hp_type")[0];
                    break;
                case EquipTypes.Gun:
                    hpType = sec.GetFirstOf("hp_gun_type")[0];
                    equipType = HpMap[hpType];
                    break;
               case EquipTypes.ShieldGen:
                    hpType = sec.GetFirstOf("hp_type")[0];
                    equipType = HpMap[hpType];
                    break;
               case EquipTypes.CountermeasureDropper:
                    hpType = "hp_countermeasure_dropper";
                    break;
               case EquipTypes.Thruster:
                    hpType = "hp_thruster";
                    break;
                    case EquipTypes.Cargo:
                    break;
                default:
                    break;
            }
            // ReSharper disable RedundantArgumentName
            Gis.Equipment.AddEquipmentRow(
                Hash: hash,
                Type: equipType.ToString(),
                Hardpoint: hpType,
                Nickname: nickname,
                Name: stIDSName,
                Infocard: infocard,
                Volume: volume);
            // ReSharper restore RedundantArgumentName
        }
Example #2
0
        private static void LoadEquip(Section sec, EquipTypes equipType)
        {
            var nickname = sec.GetFirstOf("nickname")[0];

            _log.NewMessage(LogType.Garbage, "Universe: Parsing equipment {0}", nickname);
            var hash = CreateID(nickname.ToLowerInvariant());

            // fail if equip already presents
            if (Gis.Equipment.FindByHash(hash) != null)
            {
                return;
            }

            var stIDSName = "";

            if (sec.ContainsAnyOf("ids_name", "strid_name"))
            {
                stIDSName = GetIDSParm(sec.GetAnySetting("ids_name", "strid_name")[0]);
            }

            // TODO: ignore empty IDS based on setting
            //if (stIDSName == "") return;


            var infocard = "";

            if (sec.ContainsAnyOf("ids_info"))
            {
                infocard = GetIDSParm(sec.GetFirstOf("ids_info")[0]);
            }

            float volume = 0;

            if (sec.ContainsAnyOf("volume"))
            {
                volume = float.Parse(sec.GetFirstOf("volume")[0], Nfi);
            }


            // Tested on Disco 4.87.6, no hits beyond this line.
            //var stIDSInfo1 = "";
            //if (sec.ContainsAnyOf("ids_info1","ids_short_name"))
            //    stIDSInfo1 = GetIDSParm(sec.GetAnySetting("ids_info1", "ids_short_name")[0]);

            // Careful with this one below!
            //if (stIDSInfo1 == "") return;
            //var stIDSInfo2 = "";
            //if (sec.ContainsAnyOf("ids_info2"))
            //    stIDSInfo2 = GetIDSParm(sec.GetFirstOf("ids_info2")[0]);

            //var stIDSInfo3 = "";
            //if (sec.ContainsAnyOf("ids_info3"))
            //    stIDSInfo3 = GetIDSParm(sec.GetFirstOf("ids_info3")[0]);

            //string keys = hash.ToString() + " 0x" + hash.ToString("X");

            var hpType = "";

            switch (equipType)
            {
            case EquipTypes.Engine:
                if (sec.ContainsAnyOf("hp_type"))
                {
                    hpType = sec.GetFirstOf("hp_type")[0];
                }
                break;

            case EquipTypes.Gun:
                hpType    = sec.GetFirstOf("hp_gun_type")[0];
                equipType = HpMap[hpType];
                break;

            case EquipTypes.ShieldGen:
                hpType    = sec.GetFirstOf("hp_type")[0];
                equipType = HpMap[hpType];
                break;

            case EquipTypes.CountermeasureDropper:
                hpType = "hp_countermeasure_dropper";
                break;

            case EquipTypes.Thruster:
                hpType = "hp_thruster";
                break;

            case EquipTypes.Cargo:
                break;

            default:
                break;
            }
            // ReSharper disable RedundantArgumentName
            Gis.Equipment.AddEquipmentRow(
                Hash: hash,
                Type: equipType.ToString(),
                Hardpoint: hpType,
                Nickname: nickname,
                Name: stIDSName,
                Infocard: infocard,
                Volume: volume);
            // ReSharper restore RedundantArgumentName
        }