DummyState.cxx 962 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. #include "DummyState.hxx"
  2. #include "GameStateManager.hxx"
  3. #include "../SDLRenderer.hxx"
  4. void DummyState::on_enter(GameStateManager& gsm)
  5. {
  6. name_input_.set_value("");
  7. name_input_.set_focus(true);
  8. pause_button_.set_on_click([&gsm] {
  9. gsm.push_state(GameStates::MainMenu);
  10. });
  11. }
  12. void DummyState::on_leave()
  13. {
  14. SDL_StopTextInput();
  15. }
  16. void DummyState::on_event(GameStateManager& gsm, SDL_Event const& evt)
  17. {
  18. name_input_.on_event(evt);
  19. if (evt.type==SDL_KEYUP && evt.key.keysym.scancode==SDL_SCANCODE_ESCAPE)
  20. gsm.push_state(GameStates::MainMenu);
  21. }
  22. void DummyState::update(GameStateManager& gsm, std::chrono::milliseconds delta_time)
  23. {
  24. pause_button_.update();
  25. name_input_.update(delta_time);
  26. }
  27. void DummyState::render(SDLRenderer& renderer)
  28. {
  29. SDL_SetRenderDrawColor(renderer, 0, 0, 0, SDL_ALPHA_OPAQUE);
  30. SDL_RenderClear(renderer);
  31. pause_button_.render(renderer);
  32. name_input_.render(renderer);
  33. SDL_RenderPresent(renderer);
  34. }