public void HandleInput(ScreenSystem.ScreenSystem.InputHelper input, GameTime gameTime) { // Mouse or touch on a menu item int hoverIndex = GetMenuEntryAt(input.Cursor); if (hoverIndex >= 0) { selectedEntry = hoverIndex; //debugScreen.AddDebugItem("BUTTON HOVER", "Index " + hoverIndex, XnaSwarmsData.Debug.DebugFlagType.Important); } else { selectedEntry = -1; } // Accept or cancel the menu? if (input.IsMenuSelect() && selectedEntry != -1) { if (menuEntries[selectedEntry].IsStable()) { controlClient.CreateStableSwarm(); } else if (menuEntries[selectedEntry].IsMutationGame()) { controlClient.CreateMutationSwarm(); } else if (menuEntries[selectedEntry].IsZoomIn()) { controlClient.ZoomIn(); } else if (menuEntries[selectedEntry].IsZoomOut()) { controlClient.ZoomOut(); } else if (menuEntries[selectedEntry].IsDebugger()) { debugScreen.SetVisiblity(); } else if (menuEntries[selectedEntry].IsSave()) { SaveSwarm(controlClient.SaveWorld()); UpdateLikedItemsUI(); } else if (menuEntries[selectedEntry].IsRecall1()) { allLikedItems[0].SaveWorldParameters = controlClient.SaveWorld(); controlClient.UpdatePopulation(allLikedItems[0], false); } else if (menuEntries[selectedEntry].IsRecall2()) { allLikedItems[1].SaveWorldParameters = controlClient.SaveWorld(); controlClient.UpdatePopulation(allLikedItems[1], false); } else if (menuEntries[selectedEntry].IsRecall3()) { allLikedItems[2].SaveWorldParameters = controlClient.SaveWorld(); controlClient.UpdatePopulation(allLikedItems[2], false); } else if (menuEntries[selectedEntry].IsRecall4()) { allLikedItems[3].SaveWorldParameters = controlClient.SaveWorld(); controlClient.UpdatePopulation(allLikedItems[3], false); } else if (menuEntries[selectedEntry].IsRecall5()) { allLikedItems[4].SaveWorldParameters = controlClient.SaveWorld(); controlClient.UpdatePopulation(allLikedItems[4], false); } else if (menuEntries[selectedEntry].IsRecall6()) { allLikedItems[5].SaveWorldParameters = controlClient.SaveWorld(); controlClient.UpdatePopulation(allLikedItems[5], false); } else if (menuEntries[selectedEntry].IsAudioPlay()) { controlClient.StartSoundEngine(); } else if (menuEntries[selectedEntry].IsAudioPause()) { controlClient.StopSoundEngine(); } else if (menuEntries[selectedEntry].IsAnalyze()) { controlClient.ToggleAnalyze(); } #if NETFX_CORE else if (menuEntries[selectedEntry].IsImportLikes()) { ImportSwarmSaveData(); } else if (menuEntries[selectedEntry].IsExportLikes()) { ExportSwarmSaveData(); } #endif } }