protected override void Init() { Size = new Vector2 { X = 843, Y = 630 }; base.Init(); var actions = new Action[] { () => Data.TryAdd(SectionName.Header, Header.Create()), () => Data.TryAdd(SectionName.Footer, Footer.Create()), () => Data.TryAdd(SectionName.Clock, Clock.Create()), () => Data.TryAdd(SectionName.PartyGroup, PartyGroup.Create(Party.Create(), NonParty.Create())), () => { var keys = new[] { Strings.Name.SideMenu.Junction, Strings.Name.SideMenu.Item, Strings.Name.SideMenu.Magic, Strings.Name.SideMenu.GF, Strings.Name.SideMenu.Status, Strings.Name.SideMenu.Ability, Strings.Name.SideMenu.Switch, Strings.Name.SideMenu.Card, Strings.Name.SideMenu.Config, Strings.Name.SideMenu.Tutorial, Strings.Name.SideMenu.Save, Strings.Name.SideMenu.Battle }; var values = new[] { Strings.Description.SideMenu.Junction, Strings.Description.SideMenu.Item, Strings.Description.SideMenu.Magic, Strings.Description.SideMenu.GF, Strings.Description.SideMenu.Status, Strings.Description.SideMenu.Ability, Strings.Description.SideMenu.Switch, Strings.Description.SideMenu.Card, Strings.Description.SideMenu.Config, Strings.Description.SideMenu.Tutorial, Strings.Description.SideMenu.Save, Strings.Description.SideMenu.Battle }; if (keys.Distinct().Count() == keys.Length && values.Length == keys.Length) { Data.TryAdd(SectionName.SideMenu, SideMenu.Create((from i in Enumerable.Range(0, keys.Length) select i).ToDictionary(x => keys[x], x => values[x]))); } else { Data.TryAdd(SectionName.SideMenu, null); } } }; Memory.ProcessActions(actions); Func <bool> sideMenuInputs = null; if (Data[SectionName.SideMenu] != null) { sideMenuInputs = Data[SectionName.SideMenu].Inputs; } InputDict = new Dictionary <Mode, Func <bool> > { { Mode.ChooseItem, sideMenuInputs }, { Mode.ChooseChar, Data[SectionName.PartyGroup].Inputs }, }; SetMode((Mode)0); }