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, });
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); } }