Ejemplo n.º 1
0
        public string GetParameter(int index, string s)
        {
            var b = ulong.TryParse(s, out var t);

            if (!b)
            {
                return(s);
            }

            //maybe t is common param?
            if (t > 0x00FFFFFFFFFFFFFF)
            {
                return(Common.GetParam(t));
            }

            if (!Parameters.ContainsKey(index))
            {
                return(s);
            }

            return(Parameters[index] switch
            {
                Parameter.None => s,
                Parameter.FaceKeyRegister => Common.GetFaceKey(t),
                Parameter.FloatRegister => "fp" + s,
                Parameter.GameKeyCode => Common.GetGameKey(t),
                Parameter.KeyCode => Common.GetKey(t),
                Parameter.Position => "pos" + s,
                Parameter.String => "s" + s,
                Parameter.InventorySlot => Common.GetInventorySlot(t),
                Parameter.Tooltip => Common.GetTooltip(t),
                Parameter.Color => Common.GetColor(t),
                Parameter.TextFlags => Common.DecompileTextFlags((uint)t),
                Parameter.Alpha => Common.GetAlpha(t),
                Parameter.MenuFlags => Menus.DecompileFlags(t),
                Parameter.TroopFlags => Troops.DecompileFlags((uint)t),
                Parameter.WeaponProficiency => Common.GetWeaponProficiency(t),
                Parameter.CharacterAttribute => Common.GetCharacterAttribute(t),
                Parameter.PartyFlags => Parties.DecompileFlags((uint)t),
                Parameter.AiBehavior => Parties.GetAiBehavior(t),
                Parameter.ItemProperty => Items.DecompileFlags(t),
                Parameter.ItemCapability => Items.DecompileCapabilities(t),
                Parameter.TroopIdentifier => Common.GetCommonIdentifier("trp", Common.Troops, t),
                Parameter.ItemIdentifier => Common.GetCommonIdentifier("itm", Common.Items, t),
                Parameter.PartyIdentifier => Common.GetCommonIdentifier("p", Common.Parties, t),
                Parameter.AnimationIdentifier => Common.GetCommonIdentifier("anim", Common.Animations, t),
                Parameter.ScenePropIdentifier => Common.GetCommonIdentifier("spr", Common.SceneProps, t),
                Parameter.SceneIdentifier => Common.GetCommonIdentifier("scn", Common.Scenes, t),
                Parameter.FactionIdentifier => Common.GetCommonIdentifier("fac", Common.Factions, t),
                Parameter.TableauMaterialIdentifier => Common.GetCommonIdentifier("tableau", Common.Tableaus, t),
                Parameter.QuestIdentifier => Common.GetCommonIdentifier("qst", Common.Factions, t),
                Parameter.PartyTemplateIdentifier => Common.GetCommonIdentifier("pt", Common.Factions, t),
                Parameter.InfoPageIdentifier => Common.GetCommonIdentifier("ip", Common.InfoPages, t),
                Parameter.SkillIdentifier => Common.GetCommonIdentifier("skl", Common.Skills, t),
                Parameter.MapIconIdentifier => Common.GetCommonIdentifier("icon", Common.MapIcons, t),
                Parameter.MeshIdentifier => Common.GetCommonIdentifier("mesh", Common.Meshes, t),
                Parameter.ItemType => Items.DecompileType(t),
                Parameter.SoundIdentifier => Common.GetCommonIdentifier("snd", Common.Sounds, t),
                Parameter.SoundFlags => Sounds.DecompileFlags((uint)t),
                Parameter.ScriptIdentifier => Common.GetCommonIdentifier("script", Common.Procedures, t),
                Parameter.ParticleSystemIdentifier => Common.GetCommonIdentifier("psys", Common.ParticleSystems, t),
                Parameter.AttributeIdentifier => Troops.DecompileCharacterAttribute((uint)t),
                Parameter.ItemModifier => Items.DecompileModifier((uint)t),
                Parameter.MenuIdentifier => Common.GetCommonIdentifier("mnu", Common.Menus, t),
                Parameter.PresentationIdentifier => Common.GetCommonIdentifier("prsnt", Common.Presentations, t),
                Parameter.TrackIdentifier => Common.GetCommonIdentifier("track", Common.Music, t),
                Parameter.MusicFlags => Music.DecompileFlags((uint)t),
                Parameter.EquipmentOverrideFlags => MissionTemplates.DecompileAlterFlags((uint)t),
                Parameter.MissionTemplateIdentifier => Common.GetCommonIdentifier("mt", Common.MissionTemplates, t),
                Parameter.SceneFlags => Scenes.DecompileFlags((uint)t),
                Parameter.SortMode => Common.DecompileSortMode(t),
                Parameter.SkinIdentifier => Common.GetCommonIdentifier("tf_", Common.Skins, t),
                _ => s,
            });