💿🐜 Antkeeper source code https://antkeeper.com
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

88 lines
2.4 KiB

  1. /*
  2. * Copyright (C) 2017-2019 Christopher J. Howard
  3. *
  4. * This file is part of Antkeeper Source Code.
  5. *
  6. * Antkeeper Source Code is free software: you can redistribute it and/or modify
  7. * it under the terms of the GNU General Public License as published by
  8. * the Free Software Foundation, either version 3 of the License, or
  9. * (at your option) any later version.
  10. *
  11. * Antkeeper Source Code is distributed in the hope that it will be useful,
  12. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  13. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  14. * GNU General Public License for more details.
  15. *
  16. * You should have received a copy of the GNU General Public License
  17. * along with Antkeeper Source Code. If not, see <http://www.gnu.org/licenses/>.
  18. */
  19. #include "game.hpp"
  20. #include "debug/logger.hpp"
  21. #include "ui/ui.hpp"
  22. #include "resources/resource-manager.hpp"
  23. #include "menu.hpp"
  24. void Game::enterLanguageSelectState()
  25. {
  26. // Set fonts for language menu items
  27. for (std::size_t i = 0; i < languageCount; ++i)
  28. {
  29. MenuItem* item = languageMenuItems[i];
  30. item->setFont(languageSelectionFonts[i]);
  31. }
  32. // Re-string and resie UI
  33. restringUI();
  34. resizeUI(w, h);
  35. // Set menu font color
  36. menuItemActiveColor = languageMenuActiveColor;
  37. menuItemInactiveColor = languageMenuInactiveColor;
  38. menuSelectorImage->setTintColor(menuItemActiveColor);
  39. // Add background image
  40. uiRootElement->addChild(languageSelectBGImage);
  41. // Hide menu item selector
  42. menuSelectorImage->setVisible(false);
  43. // Open language menu
  44. openMenu(languageMenu, 0);
  45. // Disable non-system controls
  46. disableNonSystemControls();
  47. // Disable UI callbacks
  48. uiRootElement->setCallbacksEnabled(false);
  49. // Begin fade-in
  50. fadeIn(0.5f, {0, 0, 0},
  51. std::bind
  52. (
  53. [this]()
  54. {
  55. // Enable menu controls and UI callbacks
  56. menuControls.setCallbacksEnabled(true);
  57. uiRootElement->setCallbacksEnabled(true);
  58. }
  59. ));
  60. }
  61. void Game::exitLanguageSelectState()
  62. {
  63. // Remove background image
  64. uiRootElement->removeChild(languageSelectBGImage);
  65. // Close language select menu
  66. closeCurrentMenu();
  67. // Show menu item selector
  68. menuSelectorImage->setVisible(true);
  69. // Set standard menu item colors
  70. menuItemActiveColor = standardMenuActiveColor;
  71. menuItemInactiveColor = standardMenuInactiveColor;
  72. menuSelectorImage->setTintColor(menuItemActiveColor);
  73. }