Exemplo 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,
            });
Exemplo n.º 2
0
        public string GetParameter(int index, string s)
        {
            ulong t;
            var   b = ulong.TryParse(s, out t);

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

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

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

            switch (Parameters[index])
            {
            case Parameter.None:
                return(s);

            case Parameter.FaceKeyRegister:
                return(Common.GetFaceKey(t));

            case Parameter.FloatRegister:
                return("fp" + s);

            case Parameter.GameKeyCode:
                return(Common.GetGameKey(t));

            case Parameter.KeyCode:
                return(Common.GetKey(t));

            case Parameter.Position:
                return("pos" + s);

            case Parameter.String:
                return("s" + s);

            case Parameter.InventorySlot:
                return(Common.GetInventorySlot(t));

            case Parameter.Tooltip:
                return(Common.GetTooltip(t));

            case Parameter.Color:
                return(Common.GetColor(t));

            case Parameter.TextFlags:
                return(Common.DecompileTextFlags((uint)t));

            case Parameter.Alpha:
                return(Common.GetAlpha(t));

            case Parameter.MenuFlags:
                return(Menus.DecompileFlags(t));

            case Parameter.TroopFlags:
                return(Troops.DecompileFlags((uint)t));

            case Parameter.WeaponProficiency:
                return(Common.GetWeaponProficiency(t));

            case Parameter.CharacterAttribute:
                return(Common.GetCharacterAttribute(t));

            case Parameter.PartyFlags:
                return(Parties.DecompileFlags((uint)t));

            case Parameter.AiBehavior:
                return(Parties.GetAiBehavior(t));

            case Parameter.ItemProperty:
                return(Items.DecompileFlags(t));

            case Parameter.ItemCapability:
                return(Items.DecompileCapabilities(t));

            case Parameter.TroopIdentifier:
                return(Common.GetCommonIdentifier("trp", Common.Troops, t));

            case Parameter.ItemIdentifier:
                return(Common.GetCommonIdentifier("itm", Common.Items, t));

            case Parameter.PartyIdentifier:
                return(Common.GetCommonIdentifier("p", Common.Parties, t));

            case Parameter.AnimationIdentifier:
                return(Common.GetCommonIdentifier("anim", Common.Animations, t));

            case Parameter.ScenePropIdentifier:
                return(Common.GetCommonIdentifier("spr", Common.SceneProps, t));

            case Parameter.SceneIdentifier:
                return(Common.GetCommonIdentifier("scn", Common.Scenes, t));

            case Parameter.FactionIdentifier:
                return(Common.GetCommonIdentifier("fac", Common.Factions, t));

            case Parameter.TableauMaterialIdentifier:
                return(Common.GetCommonIdentifier("tableau", Common.Tableaus, t));

            case Parameter.QuestIdentifier:
                return(Common.GetCommonIdentifier("qst", Common.Factions, t));

            case Parameter.PartyTemplateIdentifier:
                return(Common.GetCommonIdentifier("pt", Common.Factions, t));

            case Parameter.InfoPageIdentifier:
                return(s);

            case Parameter.SkillIdentifier:
                return(Common.GetCommonIdentifier("skl", Common.Skills, t));

            case Parameter.MapIconIdentifier:
                return(Common.GetCommonIdentifier("icon", Common.MapIcons, t));

            case Parameter.MeshIdentifier:
                return(Common.GetCommonIdentifier("mesh", Common.Meshes, t));

            case Parameter.ItemType:
                return(Items.DecompileType(t));

            default:
                return(s);
            }
        }